用于开源图形的AMDRadeonVulkan驱动程序“RADV”最近在Mesa22.2中包含了对VK_NV_device_generated_commands扩展的支持。由NVIDIA创建的扩展程序已经活跃了两年,它允许显卡通过硬件而不是仅仅依赖软件来生成渲染命令。
VK_NV_device_generated_commands进行了编码,现在可以生成“设备生成的命令,以克服依赖CPU进行特定命令生成工作时的回读延迟和低效率,”Larabel报道。设备生成命令(简称DGC)也有助于显卡硬件可以处理更广泛的全局场景部分以“基于每次绘制”更改着色器。
NVIDIAGeForceRTX4090显卡在3DMarkTimeSpyExtreme基准测试中几乎是RTX3090的两倍,声
随着可编程着色的普遍进步,GPU可以通过计算补充数据并允许实现更多种类的渲染算法来承担越来越多的渲染职责。但是,在为绘制调用设置状态时,必须主要在CPU上做出决定。因此,明确的同步或从过去帧的结果工作是必要的。设备生成的命令消除了这种回读延迟并克服了现有的低效率问题。
—2020年3月17日的NVIDIA开发人员博客
扩展VK_NV_device_generated_commands自从它起源于NVIDIA自己的GPU驱动程序以来就被有意使用,但我们现在看到Mesa22.2中的AMDRadeonVulkan驱动程序也支持Radeon显卡。Phoronix指出:
没有任何功能是不折不扣的。设备生成方法意味着某些驱动程序端优化可能不适用。此外,在CPU能够在不影响GPU时间的情况下记录命令的情况下,生成过程可以增加整体帧时间。最后,它需要额外的GPU内存。
总之,此扩展的目标主要是减少在GPU上完成的实际工作量,方法是在设备上决定生成什么以及如何生成工作。通常,这不是将命令生成从CPU卸载到GPU。
BasNieuwenhuizen是RADV驱动程序的共同创建者,他是致力于当前合并的开发人员之一。Larabel指出,该扩展可能有益于“VKD3D支持处理D3D12的ExecuteIndirect功能”。