RADV Vulkan 驱动程序已切换为使用 ACO 着色器编译后端

在用于形成 Mesa 20.2 版本的代码库中, 执行 切换 RADV(AMD 芯片的 Vulkan 驱动程序)以使用默认后端来编译着色器”ACO“,它是由 Valve 开发的,作为 LLVM 着色器编译器的替代品。 此更改将提高游戏性能并缩短启动时间。 为了返回旧的后端,提供了环境变量“RADV_DEBUG=llvm”。

在 ACO 与 AMD 为 AMDGPU 驱动程序开发的旧后端(继续在 RadeonSI OpenGL 驱动程序中使用)实现功能对等后,将 RADV 驱动程序切换到新后端成为可能。 通过阀门测试 透露ACO 的编译速度几乎是 AMDGPU 着色器编译器的两倍,并且在使用 RADV 驱动程序的系统上运行时,某些游戏的 FPS 有所提高。

RADV Vulkan 驱动程序已切换为使用 ACO 着色器编译后端

RADV Vulkan 驱动程序已切换为使用 ACO 着色器编译后端

ACO 后端旨在为游戏应用程序着色器提供尽可能最佳的代码生成,并实现非常高的编译速度。 ACO 用 C++ 编写,设计时考虑了 JIT 编译,并使用快速迭代数据结构,避免基于指针的结构。 代码的中间表示完全基于SSA(静态单一分配),并允许根据着色器准确地预先计算寄存器来分配寄存器。

添加:目前,ACO 仅适用于 Mesa RADV Vulkan 驱动程序。 但ACO开发商 确认他们的下一步将是开始扩展 ACO 的功能以支持 RadeonSI OpenGL 驱动程序,以便将来对于该驱动程序,ACO 可以取代默认的 LLVM 着色器编译器。

来源: opennet.ru

添加评论