I kodbasen som används för att skapa Mesa version 20.2, en omställning av RADV, Vulkan-drivrutinen för AMD-chips, till att som standard använda backend för kompilering av shader «», som utvecklas av Valve som ett alternativ till LLVM shaderkompilatorn. Den angivna ändringen kommer att leda till förbättrad spelprestanda och kortare laddningstider. För att återgå till den gamla backend finns en miljövariabel «RADV_DEBUG=llvm».
Övergången av RADV-drivrutinen till den nya backend möjliggjordes efter att ACO uppnått funktionsparitet med den äldre backend som AMD utvecklat för AMDGPU-drivrutinen, som fortsatt används i OpenGL-drivrutinen RadeonSI. Den testning som genomförts av Valve , visar att ACO nästan dubbelt så snabbt överträffar AMDGPU shaderkompilatorn i kompilationshastighet och ökar FPS i vissa spel när de körs på system med RADV-drivrutinen.
ACO backend syftar till att säkerställa att kodgenereringen är så optimal som möjligt för shader-koden i spelapplikationer, samt att uppnå en mycket hög kompilationshastighet. ACO är skrivet i C++, utvecklas med tanke på möjligheten för JIT-kompilering och använder snabba datastrukturer för genomsökning, utan att förlita sig på pekarbaserade strukturer. Den mellanliggande kodrepresentationen baseras helt på SSA (Static Single Assignment) och möjliggör registerallokering genom att noggrant förberäkna registret baserat på shadern.
Tillägg: För närvarande fungerar ACO endast för Vulkan-drivrutinen Mesa RADV. Men utvecklarna av ACO , har meddelat att deras nästa steg kommer att vara att påbörja arbetet med att utöka ACO:s möjligheter för att stödja OpenGL-drivrutinen RadeonSI, så att ACO även i framtiden kan ersätta LLVM shaderkompilatorn som standard för denna drivrutin.
Källa: opennet.ru
