A 20.2-es Mesa kiadásának előállításához használt kódalapban a RADV, az AMD chipjeihez készült Vulkan meghajtó átállítása az "" házon belüli shader fordító használatára, amelyet a Valve fejleszt alternatívaként az LLVM shader fordítóhoz. Ez a változtatás a játékok teljesítményének növekedéséhez és a betöltési idők csökkentéséhez vezet. A régi backendhez való visszatéréshez szükséges környezeti változó: "RADV_DEBUG=llvm".
A RADV meghajtó új backendre történő átállása akkor vált lehetővé, amikor az ACO elérte a funkciók parity-ját a régi AMD által fejlesztett backendhez képest, amely továbbra is alkalmazásban van az OpenGL RadeonSI meghajtóban. A Valve által végzett tesztelés , hogy az ACO majdnem kétszer olyan gyorsan fordít, mint az AMDGPU shader fordítója, és néhány játék esetében FPS növekedést mutat a RADV meghajtóval működő rendszereken.
Az ACO backend célja, hogy a lehető legoptimálisabb kódot generálja a játékalkalmazások shaderjeihez, valamint hogy nagyon magas fordítási sebességet érjen el. Az ACO C++ nyelven íródott, figyelembe veszi a JIT fordítás lehetőségét, és gyors, könnyen kereshető adatstruktúrákat használ, elkerülve a mutatóalapú struktúrákat. A kód köztes reprezentációja teljes mértékben SSA (Statikus Egységes Attribúció) alapú, lehetővé téve a regiszterek pontos előrelátott kiszámítását a shader függvényében.
Megjegyzés: Jelenleg az ACO csak a Vulkan Mesa RADV meghajtón működik. De az ACO fejlesztői , hogy a következő lépésük az lesz, hogy elkezdik az ACO képességeinek bővítését az OpenGL RadeonSI meghajtó támogatásának biztosítása érdekében, hogy a jövőben az ACO alapértelmezett shader fordítóként helyettesíthesse a LLVM-t ezen a meghajtón is.
Forrás: opennet.ru
