V kódové základně použité pro sestavení vydání Mesa 20.2, přepnutí RADV, Vulkan ovladače pro čipy AMD, na výchozí použití backendu pro kompilaci shaderů „«, který je vyvíjen společností Valve jako alternativa ke kompilátoru shaderů LLVM. Změna povede ke zvýšení výkonu her a zkrácení doby jejich spuštění. Pro vrácení starého backendu je k dispozici proměnná prostředí „RADV_DEBUG=llvm“.
Přepnutí ovladače RADV na nový backend bylo možné po dosažení paritní funkčnosti v ACO ve srovnání se starým backendem, který vyvinula AMD pro ovladač AMDGPU, jenž se nadále používá v OpenGL ovladači RadeonSI. Testování provedené společností Valve , ukázalo, že ACO téměř dvakrát překonává kompilátor shaderů AMDGPU co do rychlosti kompilace a vykazuje zvýšení FPS v některých hrách při jejich provozu na systémech s ovladačem RADV.
Backend ACO je zaměřen na poskytování co nejoptimálnějšího generování kódu pro shadery herních aplikací a také na dosažení velmi vysoké rychlosti kompilace. ACO je napsán v jazyce C++, vyvíjený s ohledem na možnost použití pro JIT-kompilaci a využívá rychlé struktury dat, vyhýbající se strukturám na bázi ukazatelů. Mezisouborové představení kódu je plně založeno na SSA (Static Single Assignment) a umožňuje provádět alokaci registrů, přesně předvýpočtem registru na základě shaderu.
Doplňující informace: V současnosti ACO funguje pouze pro Vulkan ovladač Mesa RADV. Ale vývojáři ACO , že jejich dalším krokem bude začít pracovat na rozšíření možností ACO pro podporu OpenGL ovladače RadeonSI, aby v budoucnosti mohl ACO nahradit jako výchozí kompilátor shaderů LLVM i pro tento ovladač.
Zdroj: opennet.ru
