Valve har åpnet en ny shader-kompilator for AMD GPUer

Valve Company foreslått Mesa e-postliste for utviklere har en ny shader-kompilator ACO for Vulkan driver RADV, posisjonerbar som et alternativ til AMDGPU shader-kompilatoren brukt i OpenGL- og Vulkan-driverne RadeonSI og RADV for AMD-grafikkbrikker.
Når testingen er fullført og funksjonaliteten er fullført, er ACO planlagt å bli tilbudt for inkludering i Mesa-hovedsammensetningen.

Valves foreslåtte kode er rettet mot å gi kodegenerering som er så optimal som mulig for spillapplikasjonsskyggere, samt å oppnå svært høy kompileringshastighet. Mesas shader-kompilator bruker LLVM-komponenter, som ikke gir ønsket kompileringshastighet og ikke tillater full kontroll over kontrollflyten, noe som har forårsaket alvorlige feil tidligere. I tillegg gjør det å gå bort fra LLVM det mulig å implementere mer aggressiv avviksanalyse og finere kontroll av registerbelastning, som lar deg generere mer effektive kjørbare filer.

ACO er skrevet i C++, designet med tanke på JIT-kompilering, og bruker raske iterative datastrukturer, og unngår pekerbaserte strukturer som koblede lister og def-use kjeder. Mellomkoderepresentasjonen er helt basert på SSA (Static Single Assignment) og tillater registerallokering ved å forhåndsberegne registeret nøyaktig avhengig av skygge.

For øyeblikket støttes bare piksel (fragment) og dataskyggelegging på diskrete AMD GPUer (dGPU VI+). Imidlertid samler ACO allerede riktig shaders for alle testede spill, inkludert komplekse shaders fra Shadow of the Tomb Raider og Wolfenstein II. ACO-prototypen som er foreslått for testing, er nesten dobbelt så rask som AMDGPU shader-kompilatoren når det gjelder kompileringshastighet og demonstrerer en økning i FPS i noen spill når den kjøres på systemer med RADV-driveren.

Valve har åpnet en ny shader-kompilator for AMD GPUer

Valve har åpnet en ny shader-kompilator for AMD GPUer

Kilde: opennet.ru

Legg til en kommentar