A RADV Vulkan illesztőprogramja át lett állítva az ACO shader összeállítási háttérrendszer használatára

A Mesa 20.2 kiadás létrehozásához használt kódbázisban végrehajtva a RADV, az AMD chipek Vulkan illesztőprogramjának váltása, hogy az alapértelmezett háttérprogramot használja a shader-ek fordításához.ACO“, amelyet a Valve fejleszt az LLVM shader fordító alternatívájaként. Ez a változás megnöveli a játék teljesítményét és csökkenti az indítási időt. A régi háttérrendszer visszaállításához a „RADV_DEBUG=llvm” környezeti változó áll rendelkezésre.

A RADV-illesztőprogram átváltása az új háttérrendszerre azután vált lehetővé, hogy az ACO elérte a funkcionalitás egyenlőségét az AMD által az AMDGPU-illesztőprogramhoz fejlesztett régi háttérprogrammal, amelyet továbbra is a RadeonSI OpenGL-illesztőprogramban használnak. Tesztelés a Valve által kiderülthogy az ACO majdnem kétszer olyan gyors, mint az AMDGPU shader fordító a fordítási sebességet tekintve, és egyes játékokban FPS növekedést mutat, ha RADV-illesztőprogramot tartalmazó rendszereken fut.

A RADV Vulkan illesztőprogramja át lett állítva az ACO shader összeállítási háttérrendszer használatára

A RADV Vulkan illesztőprogramja át lett állítva az ACO shader összeállítási háttérrendszer használatára

Az ACO háttérrendszer célja, hogy a lehető legoptimálisabb kódgenerálást biztosítsa a játékalkalmazás-shaderek számára, valamint nagyon magas fordítási sebességet érjen el. Az ACO C++ nyelven íródott, a JIT fordítást szem előtt tartva, és gyors iteratív adatstruktúrákat használ, elkerülve a mutatóalapú struktúrákat. A kód köztes megjelenítése teljes mértékben az SSA-n (Static Single Assignment) alapul, és lehetővé teszi a regiszterek kiosztását a regiszter pontos előre kiszámításával a shadertől függően.

Kiegészítés: Jelenleg az ACO csak a Mesa RADV Vulkan driverrel működik. De az ACO fejlesztők megerősített, hogy a következő lépés az ACO képességeinek bővítése, hogy támogatást nyújtson a RadeonSI OpenGL illesztőprogramhoz, hogy a jövőben az ACO leválthassa az alapértelmezett LLVM shader fordítót.

Forrás: opennet.ru

Hozzászólás