Valve har afsløret en ny shader-compiler til AMD GPU'er

Ventilfirma foreslået ny shader-compiler på Mesa-udviklermailingliste ACO til RADV Vulkan-driveren, placeret som et alternativ til AMDGPU shader-kompileren, der bruges i RadeonSI- og RADV OpenGL- og Vulkan-driverne til AMD-grafikchips.
Efter afprøvning er afsluttet, og funktionaliteten er forfinet, planlægges ACO at blive tilbudt til inklusion i hovedsammensætningen af ​​Mesa.

Valves foreslåede kode har til formål at sikre, at kodegenerering er så optimal som muligt for spilapplikationsskyggere, samt at opnå meget høje kompileringshastigheder. Mesas shader-kompiler bruger LLVM-komponenter, der ikke opnår den ønskede kompileringshastighed og ikke tillader fuld kontrol af flowkontrol, hvilket allerede har forårsaget alvorlige fejl tidligere. Derudover giver det at flytte væk fra LLVM mulighed for mere aggressiv uoverensstemmelsesanalyse og mere finkornet kontrol over registerindlæsning, hvilket gør det muligt at generere mere effektive eksekverbare filer.

ACO er skrevet i C++, designet med JIT-kompilering i tankerne og bruger datastrukturer, der hurtigt kan gentages, og undgår pointer-baserede strukturer såsom linkede lister og def-use kæder. Mellemkoderepræsentation er udelukkende baseret på SSA (Static Single Assignment) og giver dig mulighed for at udføre registerallokering ved nøjagtigt at forudberegne registret afhængigt af shaderen.

I øjeblikket understøttes kun pixel (fragment) og compute shaders på diskrete AMD GPU'er (dGPU VI+). ACO bygger dog allerede korrekt shaders til alle testede spil, inklusive komplekse shaders fra Shadow of the Tomb Raider og Wolfenstein II. ACO-prototypen, der foreslås til test, er næsten dobbelt så hurtig som AMDGPU shader-kompileren og demonstrerer en stigning i FPS i nogle spil, når de kører på systemer med RADV-driveren.

Valve har afsløret en ny shader-compiler til AMD GPU'er

Valve har afsløret en ny shader-compiler til AMD GPU'er

Kilde: opennet.ru

Tilføj en kommentar