Ovládač RADV Vulkan bol zmenený tak, aby používal backend kompilácie shaderov ACO

V kódovej základni použitej na vytvorenie vydania Mesa 20.2, implementovaná prepnutie RADV, ovládača Vulkan pre čipy AMD, na použitie predvoleného backendu na kompiláciu shaderov "ACO“, ktorý vyvíja spoločnosť Valve ako alternatívu ku kompilátoru shaderov LLVM. Táto zmena povedie k zvýšeniu výkonu hry a skráteniu času spustenia. Na vrátenie starého backendu je poskytnutá premenná prostredia „RADV_DEBUG=llvm“.

Prepnutie ovládača RADV na nový backend sa stalo možným po tom, čo ACO dosiahlo paritu funkčnosti so starým backendom vyvinutým AMD pre ovládač AMDGPU, ktorý sa naďalej používa v ovládači RadeonSI OpenGL. Testovanie spoločnosťou Valve odhaliliže ACO je takmer dvakrát rýchlejší ako kompilátor shadera AMDGPU z hľadiska rýchlosti kompilácie a ukazuje zvýšenie FPS v niektorých hrách pri spustení na systémoch s ovládačom RADV.

Ovládač RADV Vulkan bol zmenený tak, aby používal backend kompilácie shaderov ACO

Ovládač RADV Vulkan bol zmenený tak, aby používal backend kompilácie shaderov ACO

Backend ACO je zameraný na poskytovanie generovania kódu, ktorý je čo najoptimálnejší pre shadery herných aplikácií, ako aj na dosiahnutie veľmi vysokej rýchlosti kompilácie. ACO je napísané v C++, navrhnuté s ohľadom na kompiláciu JIT a používa rýchle iteračné dátové štruktúry, pričom sa vyhýba štruktúram založeným na ukazovateľoch. Stredná reprezentácia kódu je úplne založená na SSA (Static Single Assignment) a umožňuje pridelenie registra presným predbežným výpočtom registra v závislosti od shadera.

Doplnenie: V súčasnosti ACO funguje len pre vodiča Mesa RADV Vulkan. Ale vývojári ACO potvrdené, že ich ďalším krokom bude začať pracovať na rozšírení možností ACO na poskytovanie podpory pre ovládač RadeonSI OpenGL, aby v budúcnosti pre tento ovládač mohol ACO nahradiť predvolený kompilátor shadera LLVM.

Zdroj: opennet.ru

Pridať komentár