V kódovej báze, ktorá sa používa na vydanie Mesa 20.2, prepnúť RADV, Vulkan ovládač pre čipy AMD, na predvolenú konfiguráciu backendu na kompiláciu shaderov "" ktorý je vyvíjaný spoločnosťou Valve ako alternatíva k kompilátoru shaderov LLVM. Táto zmena prinesie zvýšený výkon hier a skráti čas ich spustenia. Pre návrat k starému backendu je predpokladaná premenná prostredia "RADV_DEBUG=llvm".
Prepnúť ovládač RADV na nový backend sa podarilo po dosiahnutí parity v ACO s funkčnosťou starého backendu vyvinutého spoločnosťou AMD pre ovládač AMDGPU, ktorý sa naďalej používa v OpenGL ovládači RadeonSI. Testovanie vykonané spoločnosťou Valve , ukazuje, že ACO takmer dvakrát prevyšuje kompilátor shaderov AMDGPU z hľadiska rýchlosti kompilácie a demonštruje zvýšenie FPS v niektorých hrách pri ich prevádzke na systémových prostrediach s ovládačom RADV.
Backend ACO sa zameriava na zabezpečenie generovania kódu, ktorý je čo najviac optimálny pre shadery herných aplikácií, ako aj na dosiahnutie veľmi vysokej rýchlosti kompilácie. ACO je napísané v jazyku C++, vyvíja sa s ohľadom na možnosť použitia pre JIT kompiláciu a používa rýchle štruktúry údajov na prehľadávanie, pričom sa vyhýba štruktúram založeným na ukazovateľoch. Medziľahlé reprezentácie kódu sú úplne založené na SSA (Static Single Assignment) a umožňujú presné rozdelenie registrov v závislosti od shaderu.
Doplnok: V súčasnosti ACO funguje iba pre Vulkan ovládač Mesa RADV. Avšak vývojári ACO , že ich ďalším krokom bude začať pracovať na rozšírení funkcií ACO s cieľom zabezpečiť podporu OpenGL ovládača RadeonSI, aby v budúcnosti mohol ACO nahradiť kompilátor shaderov LLVM aj pre tento ovládač.
Zdroj: opennet.ru
