În baza de cod utilizată pentru generarea versiunii Mesa 20.2, comutarea RADV, driverul Vulkan pentru cipurile AMD, pe utilizarea implicită a backend-ului pentru compilarea shaderelor „„, care este dezvoltat de Valve ca alternativă la compilatorul de shadere LLVM. Această modificare va conduce la creșterea performanței jocurilor și la reducerea timpului de încărcare. Pentru a reveni la vechiul backend, este disponibilă o variabilă de mediu „RADV_DEBUG=llvm”.
Comutarea driverului RADV la noul backend a devenit posibilă după ce ACO a atins paritatea funcționalității cu vechiul backend dezvoltat de AMD pentru driverul AMDGPU, care continuă să fie utilizat în driverul OpenGL RadeonSI. Testarea efectuată de Valve , arată că ACO este aproape de două ori mai rapid decât compilatorul de shadere AMDGPU în ceea ce privește viteza de compilare și demonstrează o creștere a FPS-ului în unele jocuri atunci când sunt rulate pe sisteme cu driverul RADV.
Backend-ul ACO este orientat către asigurarea generării de cod cât mai optim pentru shaderele aplicațiilor de jocuri, precum și atingerea unei viteze de compilare foarte mari. ACO este scris în C++, fiind dezvoltat având în vedere aplicabilitatea pentru JIT-compilare și folosește structuri de date rapide pentru iterație, evitând structuri bazate pe pointeri. Reprezentarea intermediară a codului se bazează complet pe SSA (Static Single Assignment) și permite distribuirea registrelor, calculând cu precizie registrul în funcție de shader.
Anexă: În prezent, ACO funcționează doar pentru driverul Vulkan Mesa RADV. Dar dezvoltatorii ACO , au declarat că următorul lor pas va fi să înceapă lucrările pentru extinderea funcționalităților ACO pentru a asigura suport pentru driverul OpenGL RadeonSI, astfel încât în viitor ACO să poată înlocui compilatorul de shadere LLVM și pentru acest driver.
Sursa: opennet.ro
