RADV驱动程序的修复在使用FSR 2的RDNA 2硬件上实现了令人难以置信的性能提升,缩小了存在了两年的性能差距。
Valve工程师通过重构仅十行代码解决RADV驱动程序的问题,实现了FSR2游戏中228%的性能提升
Mesa 24.3最终修复了RADV(Radeon Vulkan)驱动程序的主要问题,这导致其性能低于AMD自有的AMDVLK/AMDGPU-PRO Vulkan驱动程序。在游戏中启用FSR 2时,这一性能差距持续了近两年。Valve的Linux驱动团队通过调整几行代码成功解决了这个问题。
功劳归于工程师Samuel Pitoiset,据Phoronix报道,他识别了问题,并通过调整不到十行代码解决了这个问题。需要说明的是,RADV驱动程序是用于Linux操作系统的AMD GPU的开源Vulkan驱动程序。由于其开源和开放社区的特性,使其在用户中越来越受欢迎,但在启用FSR 2(FidelityFX Super Resolution 2)时曾出现过问题。
与AMD自己优化的AMDGPU-Pro驱动程序相比,性能较差。近两年过去了,但在Samuel识别出问题根源之前并没有解决方案。问题的根本原因是RADV驱动程序在处理FSR 2中特定特征的图元剔除时的表现。简单来说,剔除是指在渲染之前丢弃不必要的图元(如三角形和线条),以通过节省功耗来提高性能。
看起来固定功能硬件在剔除零位置W的图元时非常缓慢,但基于着色器的剔除帮助很大。
这修复了FSR2演示与AMDGPU-PRO之间的巨大性能差距,RDNA2上提升了228%。
–Samuel Pitoiset(来源:Phoronix)
图片来源:FreeDesktop
在AMDGPU-Pro驱动程序中,这一过程处理得非常简单,因为驱动程序会剔除W位置为零的图元。而RADV则没有这样做,导致额外且不必要的计算,降低了FSR 2应用程序的性能。
正如Samuel所指出的,调整AMD NIR代码在W位置为零时强制执行剔除。这帮助RADV驱动程序在启用FSR 2时在RDNA 2 GPU上实现了惊人的228%性能提升。这一改进将通过官方发布提供给用户,并且是Mesa 24.3-devel的一部分。
新闻来源:Phoronix