Valve的Steam Deck是一个依赖预编译着色器的重度用户,可以获得更快的启动时间和更高效的手持游戏体验。但是,在出现错误并且需要对着色器编译器进行修复的情况下,Steam Deck没有一种直接的方法来正确处理这一问题。但随着Mesa RADV驱动程序代码中添加了新的旋钮,将有一些选项可以更好地处理这一问题。
在想要强制重新编译RADV着色器的情况下,即为了进行反向移植修复等,Mesa 24.0-devel中添加了一些新的DRIRC选项,可以轻松地强制针对特定游戏的重新编译。
Valve Linux图形驱动程序团队的多产RADV贡献者Samuel Pitoiset添加了新的DRIRC选项,以便在需要时更容易强制重新编译特定游戏着色器。他在代码中解释
合并
今天早上在Mesa Git上发布的:
radv:添加drirc选项以在需要时强制重新编译着色器
在Steam Deck上,着色器经过预编译以获得更好的性能(更少的停顿、更少的CPU使用等)。但是,当编译器修复程序需要后移植时,目前还没有办法正确处理。
这引入了3个drirc选项radv_override_{graphics,compute,ray_tracing}_shader_version以便在需要时强制驱动程序重新编译管道。默认情况下,所有管道的着色器版本均为0。
当为特定游戏设置了一个drirc时,RADV将只重新编译所有管道一次,并包含编译器修复程序(因为管道密钥不同)。
A nice, straight-forward improvement for RADV to better deal with shader issues on a per-game basis. This change will presumably be back-ported for SteamOS and be working its way to Steam Deck devices shortly. This is a change that is also beneficial to the Linux desktop/gaming at large.