Valve 為 AMD GPU 開放了新的著色器編譯器

閥門公司 建議 Mesa 開發者郵件清單有一個新的著色器編譯器 ACO 對於 Vulkan 驅動程式 RADV, 可定位的 作為 AMD 圖形晶片的 OpenGL 和 Vulkan 驅動程式 RadeonSI 和 RADV 中使用的 AMDGPU 著色器編譯器的替代方案。
一旦測試完成且功能最終確定,ACO 計劃包含在主要的 Mesa 組合中。

Valve 提議的程式碼旨在為遊戲應用程式著色器提供盡可能最佳的程式碼生成,並實現非常高的編譯速度。 Mesa的著色器編譯器使用LLVM元件,它不能提供所需的編譯速度且不允許完全控制流,這在過去導致了嚴重的錯誤。此外,擺脫 LLVM 可以實現更積極的差異分析和更精細的暫存器負載控制,從而使您能夠產生更有效率的可執行檔。

ACO 用 C++ 編寫,設計時考慮到了 JIT 編譯,並使用快速迭代資料結構,避免了基於指標的結構,例如鍊錶和 def-use 鏈。中間代碼表示完全基於 公共福利金 (靜態單一分配)並允許透過根據著色器準確地預先計算暫存器來分配暫存器。

目前,獨立 AMD GPU (dGPU VI+) 僅支援像素(片段)和運算著色器。然而,ACO 已經正確收集了所有測試遊戲的著色器,包括《古墓奇兵:暗影》和《德軍總部 II》中的複雜著色器。提議用於測試的 ACO 原型在編譯速度方面幾乎是 AMDGPU 著色器編譯器的兩倍,並且在使用 RADV 驅動程式的系統上運行時,某些遊戲的 FPS 有所提高。

Valve 為 AMD GPU 開放了新的著色器編譯器

Valve 為 AMD GPU 開放了新的著色器編譯器

來源: opennet.ru

添加評論