Driverul RADV Vulkan a fost schimbat pentru a utiliza backend-ul de compilare ACO shader

În baza de cod folosită pentru a forma lansarea Mesa 20.2, implementate comutarea RADV, driverul Vulkan pentru cipurile AMD, pentru a utiliza backend-ul implicit pentru compilarea shader-urilor "ACO„, care este dezvoltat de Valve ca alternativă la compilatorul de shader LLVM. Această schimbare va duce la creșterea performanței jocului și la reducerea timpului de lansare. Pentru a returna vechiul backend, este furnizată variabila de mediu „RADV_DEBUG=llvm”.

Comutarea driverului RADV la noul backend a devenit posibilă după ce ACO a atins paritatea în funcționalitate cu vechiul backend dezvoltat de AMD pentru driverul AMDGPU, care continuă să fie utilizat în driverul RadeonSI OpenGL. Testare prin valvă a relevatcă ACO este aproape de două ori mai rapid decât compilatorul de shader AMDGPU în ceea ce privește viteza de compilare și demonstrează o creștere a FPS-ului în unele jocuri atunci când rulează pe sisteme cu driverul RADV.

Driverul RADV Vulkan a fost schimbat pentru a utiliza backend-ul de compilare ACO shader

Driverul RADV Vulkan a fost schimbat pentru a utiliza backend-ul de compilare ACO shader

Backend-ul ACO are ca scop furnizarea de generare de cod cât mai optimă pentru aplicațiile de umbrire de jocuri, precum și atingerea unei viteze foarte mari de compilare. ACO este scris în C++, proiectat având în vedere compilarea JIT și utilizează structuri de date iterative rapide, evitând structurile bazate pe pointeri. Reprezentarea intermediară a codului se bazează în întregime pe SSA (Static Single Assignment) și permite alocarea registrului prin precalcularea precisă a registrului în funcție de shader.

Adăugare: În acest moment, ACO funcționează doar pentru driverul Mesa RADV Vulkan. Dar dezvoltatorii ACO confirmatcă următorul lor pas va fi să înceapă să lucreze la extinderea capabilităților ACO pentru a sprijini driverul RadeonSI OpenGL, astfel încât, în viitor, pentru acest driver, ACO să poată înlocui compilatorul de shader LLVM implicit.

Sursa: opennet.ru

Adauga un comentariu