Valve har öppnat en ny shader-kompilator för AMD GPU:er

Ventilföretag föreslog Mesa utvecklare e-postlista har en ny shader kompilator ACO för Vulkan-drivrutinen RADV, positionerbar som ett alternativ till AMDGPU shader-kompilatorn som används i OpenGL- och Vulkan-drivrutinerna RadeonSI och RADV för AMD-grafikchips.
När testningen är klar och funktionaliteten är klar, planeras ACO att erbjudas för inkludering i Mesa-huvudsammansättningen.

Valves föreslagna kod syftar till att ge kodgenerering som är så optimal som möjligt för spelapplikationsshaders, samt att uppnå mycket hög kompileringshastighet. Mesas shader-kompilator använder LLVM-komponenter, som inte ger den önskade kompileringshastigheten och inte tillåter full kontroll av kontrollflödet, vilket har orsakat allvarliga fel tidigare. Att gå bort från LLVM gör det dessutom möjligt att implementera mer aggressiv avvikelseanalys och finare kontroll av registerbelastningen, vilket gör att du kan generera mer effektiva körbara filer.

ACO är skriven i C++, designad med JIT-kompilering i åtanke, och använder snabba iterativa datastrukturer, och undviker pekarbaserade strukturer som länkade listor och def-use kedjor. Den mellanliggande kodrepresentationen är helt baserad på SSA (Static Single Assignment) och tillåter registerallokering genom att noggrant förberäkna registret beroende på shader.

För närvarande stöds endast pixel (fragment) och beräkningsskuggning på diskreta AMD GPU:er (dGPU VI+). ACO samlar dock redan korrekt shaders för alla testade spel, inklusive komplexa shaders från Shadow of the Tomb Raider och Wolfenstein II. ACO-prototypen som föreslagits för testning ä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.

Valve har öppnat en ny shader-kompilator för AMD GPU:er

Valve har öppnat en ny shader-kompilator för AMD GPU:er

Källa: opennet.ru

Lägg en kommentar