Valve ir atvēris jaunu ēnotāju kompilatoru AMD GPU

Vārstu uzņēmums ieteikts Mesa izstrādātāju adresātu sarakstam ir jauns ēnotāju kompilators ACO Vulkan vadītājam RADV, pozicionējams kā alternatīvu AMDGPU ēnotāju kompilatoram, ko izmanto OpenGL un Vulkan draiveros RadeonSI un RADV AMD grafikas mikroshēmām.
Kad testēšana būs pabeigta un funkcionalitāte pabeigta, ACO plānots piedāvāt iekļaušanai galvenajā Mesa sastāvā.

Valve piedāvātā koda mērķis ir nodrošināt pēc iespējas optimālāku koda ģenerēšanu spēļu aplikāciju ēnotājiem, kā arī sasniegt ļoti lielu kompilācijas ātrumu. Mesa shader kompilators izmanto LLVM komponentus, kas nenodrošina vēlamo kompilācijas ātrumu un neļauj pilnībā kontrolēt vadības plūsmu, kas agrāk radījusi nopietnas kļūdas. Turklāt, pārejot no LLVM, ir iespējams ieviest agresīvāku neatbilstību analīzi un precīzāku reģistru slodzes kontroli, kas ļauj ģenerēt efektīvākus izpildāmos failus.

ACO ir rakstīts C++ valodā, izstrādāts, paturot prātā JIT kompilāciju, un izmanto ātras iteratīvas datu struktūras, izvairoties no uz rādītājiem balstītām struktūrām, piemēram, saistītiem sarakstiem un def-use ķēdēm. Starpposma koda attēlojums ir pilnībā balstīts uz SSA (Static Single Assignment) un ļauj piešķirt reģistru, precīzi iepriekš aprēķinot reģistru atkarībā no ēnotāja.

Pašlaik diskrētos AMD GPU (dGPU VI+) tiek atbalstīti tikai pikseļu (fragmentu) un skaitļošanas ēnotāji. Tomēr ACO jau pareizi savāc ēnotājus visām pārbaudītajām spēlēm, ieskaitot sarežģītos ēnotājus no Shadow of the Tomb Raider un Wolfenstein II. Testēšanai piedāvātais ACO prototips ir gandrīz divreiz ātrāks par AMDGPU ēnotāju kompilatoru kompilācijas ātruma ziņā un parāda FPS pieaugumu dažās spēlēs, ja tās darbojas sistēmās ar RADV draiveri.

Valve ir atvēris jaunu ēnotāju kompilatoru AMD GPU

Valve ir atvēris jaunu ēnotāju kompilatoru AMD GPU

Avots: opennet.ru

Pievieno komentāru