第一生活网

开源 AMD Radeon Vulkan 驱动程序开始支持 NVIDIA DGC

寿嘉勇
导读 用于开源图形的 AMD Radeon Vulkan 驱动程序RADV最近在 Mesa 22 2 中包含了对 VK_NV_device_generated_commands 扩展的支持。由

用于开源图形的 AMD Radeon Vulkan 驱动程序“RADV”最近在 Mesa 22.2 中包含了对 VK_NV_device_generated_commands 扩展的支持。由 NVIDIA 创建的扩展程序已经活跃了两年,它允许显卡通过硬件而不是仅仅依赖软件来生成渲染命令。

AMD RADV Radeon Vulkan 驱动程序开始支持通过 NVIDIA GPU 生成的设备命令

开源网站Phoronix的 Michael Larabel报告了最近被纳入 Mesa 22.2。NVIDIA 对 VK_NV_device_generated_commands 进行了编码,现在可以生成“设备生成的命令,以克服依赖 CPU 进行特定命令生成工作时的回读延迟和低效率,”Larabel 报道。设备生成命令(简称 DGC)也有助于显卡硬件可以处理更广泛的全局场景部分以“基于每次绘制”更改着色器。2020 年 3 月的NVIDIA 博客文章总结了最近添加到 Mesa 22.2 的 Vulkan 扩展。

随着可编程着色的普遍进步,GPU 可以通过计算补充数据并允许实现更多种类的渲染算法来承担越来越多的渲染职责。但是,在为绘制调用设置状态时,必须主要在 CPU 上做出决定。因此,明确的同步或从过去帧的结果工作是必要的。设备生成的命令消除了这种回读延迟并克服了现有的低效率问题。

— 2020 年 3 月 17 日的 NVIDIA 开发人员博客

扩展 VK_NV_device_generated_commands 自从它起源于 NVIDIA 自己的 GPU 驱动程序以来就被有意使用,但我们现在看到 Mesa 22.2 中的 AMD Radeon Vulkan 驱动程序也支持 Radeon 显卡。Phoronix 指出:

没有任何功能是不折不扣的。设备生成方法意味着某些驱动程序端优化可能不适用。此外,在 CPU 能够在不影响 GPU 时间的情况下记录命令的情况下,生成过程可以增加整体帧时间。最后,它需要额外的 GPU 内存。

总之,此扩展的目标主要是减少在 GPU 上完成的实际工作量,方法是在设备上决定生成什么以及如何生成工作。通常,这不是将命令生成从 CPU 卸载到 GPU。

Bas Nieuwenhuizen 是 RADV 驱动程序的共同创建者,他是致力于当前合并的开发人员之一。Larabel 指出,该扩展可能有益于“VKD3D 支持处理 D3D12 的 ExecuteIndirect 功能”。