Open-source AMD Radeon Vulkan Driver to begin support for NVIDIA DGCs

AMD's Radeon GPUs To Get Major Graphics Performance Boost in OpenGL Thanks To Upcoming Windows 11 22H2 Drivers 2

The AMD Radeon Vulkan driver "RADV" for open-source graphics has recently included support for the VK_NV_device_generated_commands extension in Mesa 22.2. The extension, created by NVIDIA, has been active for two years, allowing the graphics card to produce rendering commands via the hardware instead of only relying on software.

AMD RADV Radeon Vulkan driver begins support for device-generated commands through NVIDIA GPUs

Michael Larabel of open-source website Phoronix reported the recent inclusion into Mesa 22.2. NVIDIA coded the VK_NV_device_generated_commands to now produce "device-generated commands to overcome the readback latency and inefficiencies when relying on the CPU for specific command generation work," reports Larabel. Device Generated Commands, or DGC for short, also aid in situations where the graphics card hardware can process a more extensive section of the global scene to alter the shaders "on a per-draw basis."

Related StoryHassan Mujtaba
NVIDIA & AMD GPU Prices Expected To Fall Further By End of August, Green Team To Issue Aggressive Cuts To Clear Inventory
A visual example of device-generated commands for the recent RADV merge. Source: NVIDIA via Phoronix.

The NVIDIA blog post from March 2020 summarizes the Vulkan extension recently added to Mesa 22.2.

With general advances in programmable shading, the GPU can take on an ever-increasing set of responsibilities for rendering, by computing supplemental data and allowing a greater variety of rendering algorithms to be implemented. However, when it comes to setting up state for draw calls, the decisions must primarily be made on the CPU. Therefore, explicit synchronization or working from past frame’s results was necessary. Device-generated commands remove this readback latency and overcome existing inefficiencies.

— NVIDIA Developer blog from March 17, 2020

The extension VK_NV_device_generated_commands has purposely seen use since its origins in NVIDIA's own GPU driver, but we are now seeing that the AMD Radeon Vulkan driver in Mesa 22.2 supports Radeon graphics cards as well. Phoronix notes that:

No feature is free of trade-offs. A device-generation approach means that some driver-side optimizations may not apply. Furthermore, the generation process can add to the overall frame time, in cases where the CPU is able to record commands without affecting the GPU time. Finally, it requires additional GPU memory.

In summary, the goal of this extension is primarily to reduce the amount of actual work done on the GPU, by making decisions on the device about what and how work is generated. It is not about off-loading command generation from CPU to the GPU in general.

Bas Nieuwenhuizen, co-creator of the RADV driver, was one of the developers working on the current merge. Larabel points out that the extension may be beneficial "for VKD3D support in handling D3D12's ExecuteIndirect functionality."

News Sources: Phoronix, NVIDIA Developer Blog,

WccfTech Tv
Subscribe
Filter videos by
Order