RADV Vulkan-drivrutinen har bytts till att använda ACO shader-kompileringsbackend

I kodbasen som användes för att bilda Mesa 20.2-versionen, genomförs byta RADV, Vulkan-drivrutinen för AMD-chips, för att använda standardbackend för att kompilera shaders "ACO", som utvecklas av Valve som ett alternativ till LLVM shader-kompilatorn. Denna förändring kommer att leda till ökad spelprestanda och minskad lanseringstid. För att returnera den gamla backend, tillhandahålls miljövariabeln "RADV_DEBUG=llvm".

Att byta RADV-drivrutinen till den nya backend-enheten blev möjlig efter att ACO uppnått paritet i funktionalitet med den gamla backend som utvecklats av AMD för AMDGPU-drivrutinen, som fortsätter att användas i RadeonSI OpenGL-drivrutinen. Testning med ventil avslöjadeatt ACO är nästan dubbelt så snabb som AMDGPU shader-kompilatorn när det gäller kompileringshastighet och visar en ökning av FPS i vissa spel när de körs på system med RADV-drivrutinen.

RADV Vulkan-drivrutinen har bytts till att använda ACO shader-kompileringsbackend

RADV Vulkan-drivrutinen har bytts till att använda ACO shader-kompileringsbackend

ACO backend syftar till att ge kodgenerering som är så optimal som möjligt för spelapplikationsshaders, samt att uppnå mycket hög kompileringshastighet. ACO är skrivet i C++, designat med JIT-kompilering i åtanke, och använder snabba iterativa datastrukturer och undviker pekarbaserade strukturer. Den mellanliggande representationen av koden är helt baserad på SSA (Static Single Assignment) och tillåter registerallokering genom att noggrant förberäkna registret beroende på shader.

Tillägg: För tillfället fungerar ACO endast för Mesa RADV Vulkan-drivrutinen. Men ACO-utvecklare bekräftadatt deras nästa steg kommer att vara att påbörja arbetet med att utöka ACO:s kapacitet för att stödja RadeonSI OpenGL-drivrutinen, så att ACO i framtiden, för denna drivrutin, kan ersätta standard LLVM shader-kompilatorn.

Källa: opennet.ru

Lägg en kommentar