Linux上的AMD显卡光线追踪性能一直备受关注。最近的一项代码更新通过优化着色器编译流程,显著提升了部分UE4游戏的光追体验,不仅编译速度大幅加快,还解决了恼人的运行卡顿问题。
智能速览
RADV驱动的新合并请求优化了光线追踪着色器编译。
部分UE4游戏的光线追踪管线编译速度提升高达10倍。
《幽灵线:东京》等游戏的编译卡顿问题已完全消失。
实测运行时性能提升,7900XTX在《幽灵线:东京》中帧数从30提升至40。
此优化主要针对使用多个任意命中着色器的游戏,如《赛博朋克2077》则不受影响。
精华内容
此次性能飞跃的核心,在于对光线追踪着色器编译方式的根本性重构,解决了长期存在的性能瓶颈。
编译提速十倍
Valve工程师Natalie Walk提交的代码变更,为Mesa的RADV驱动带来了显著改进。
对于使用虚幻4引擎的光线追踪游戏,例如《幽灵线:东京》和《死亡循环》,光线追踪(RT)管线的编译时间被大幅缩短。一个具体的案例显示,《幽灵线:东京》的重播捕获分析时间从4分20秒减少到仅需20秒,实现了数量级的提升。
更重要的是,这些游戏在编译新RT管线时出现的严重卡顿现象现已完全消失,极大改善了游戏流程的顺滑度。
帧率与性能实测
除了编译速度,应用程序的运行时性能也获得了显著增强。
根据作者的测试,在AMD Radeon RX 7900 XTX显卡上运行《幽灵线:东京》,光线追踪场景下的平均帧率(FPS)从30帧提升到了40帧。
这一提升使得在Linux平台下的游戏性能表现,基本追平了在Windows系统上的同等场景,缩小了跨平台游戏体验的差距。
技术实现原理
性能突破的关键在于改变了着色器的编译方式。先前的方法是将数百个着色器内联到一个“极其热的循环”中,这种做法被发现会影响性能。
新的代码通过使用函数调用来分离任意命中着色器的编译,避免了内联带来的性能开销。这一改动是基于此前合并到Mesa Git中的代码构建的,体现了驱动开发层面持续优化的思路。
适用范围与展望
需要注意的是,此次优化并非对所有光线追踪游戏都有效。其收益主要体现在那些使用多个任意命中着色器的游戏上,例如《幽灵线:东京》。
而对于像《赛博朋克2077》这类最多只使用一个任意命中着色器的游戏,则不会因此受益。目前代码仍在审核阶段,可能无法及时并入Mesa 26.0版本,但有望在后续的26.1版本中与用户见面。
此次代码更新是Linux游戏生态的重要进步,它从底层解决了特定游戏的光追痛点,展现了开源社区驱动的强大潜力。未来是否会有更多游戏因此受益?