Ovladač RADV Vulkan byl přepnut na použití backendu kompilace shaderů ACO

V kódové základně použité k vytvoření vydání Mesa 20.2, implementováno přepnutí RADV, ovladače Vulkan pro čipy AMD, pro použití výchozího backendu pro kompilaci shaderů "ACO“, který je vyvíjen společností Valve jako alternativa ke kompilátoru shaderů LLVM. Tato změna povede ke zvýšení výkonu hry a zkrácení doby spuštění. Chcete-li vrátit starý backend, je k dispozici proměnná prostředí „RADV_DEBUG=llvm“.

Přepnutí ovladače RADV na nový backend bylo možné poté, co ACO dosáhlo stejné funkčnosti se starým backendem vyvinutým AMD pro ovladač AMDGPU, který se nadále používá v ovladači RadeonSI OpenGL. Testování od Valve odhalenože ACO je z hlediska rychlosti kompilace téměř dvakrát rychlejší než kompilátor shaderu AMDGPU a ukazuje zvýšení FPS v některých hrách při běhu na systémech s ovladačem RADV.

Ovladač RADV Vulkan byl přepnut na použití backendu kompilace shaderů ACO

Ovladač RADV Vulkan byl přepnut na použití backendu kompilace shaderů ACO

Backend ACO je zaměřen na poskytování generování kódu, který je co nejoptimálnější pro shadery herních aplikací, a také na dosažení velmi vysoké rychlosti kompilace. ACO je napsáno v C++, navrženo s ohledem na kompilaci JIT a používá rychlé iterativní datové struktury, které se vyhýbají strukturám založeným na ukazatelích. Mezilehlá reprezentace kódu je zcela založena na SSA (Static Single Assignment) a umožňuje alokaci registrů přesným předpočítáním registru v závislosti na shaderu.

Doplnění: V současné době ACO funguje pouze pro řidiče Mesa RADV Vulkan. Ale vývojáři ACO potvrzenože jejich dalším krokem bude zahájení práce na rozšíření schopností ACO o podporu ovladače RadeonSI OpenGL, aby v budoucnu mohlo ACO u tohoto ovladače nahradit výchozí kompilátor shaderu LLVM.

Zdroj: opennet.ru

Přidat komentář