Valve on avannut uuden Shader-kääntäjän AMD GPU:ille

Valve Company ehdotti Mesa-kehittäjien postituslistalla on uusi Shader-kääntäjä ACO Vulkan kuljettajalle RADV, asemoitavissa vaihtoehtona AMDGPU Shader -kääntäjälle, jota käytetään OpenGL- ja Vulkan-ajureissa RadeonSI ja RADV AMD-grafiikkasiruille.
Kun testaus on saatu päätökseen ja toiminnallisuus on saatu päätökseen, ACO on tarkoitus tarjota sisällytettäväksi Mesan pääkoostumukseen.

Valven ehdottaman koodin tavoitteena on tarjota mahdollisimman optimaalinen koodintuotanto pelisovellusten varjostimille sekä saavuttaa erittäin suuri käännösnopeus. Mesan shader-kääntäjä käyttää LLVM-komponentteja, jotka eivät tarjoa haluttua käännösnopeutta eivätkä mahdollista ohjausvirtauksen täydellistä hallintaa, mikä on aiemmin aiheuttanut vakavia virheitä. Lisäksi LLVM:stä luopuminen mahdollistaa aggressiivisemman ristiriitaanalyysin ja rekisterikuorman tarkemman hallinnan, mikä mahdollistaa tehokkaampien suoritettavien tiedostojen luomisen.

ACO on kirjoitettu C++-kielellä, suunniteltu JIT-käännöksiä ajatellen, ja käyttää nopeita iteratiivisia tietorakenteita välttäen osoitinpohjaisia ​​rakenteita, kuten linkitettyjä listoja ja def-use -ketjuja. Välikoodin esitys perustuu kokonaan SSA (Static Single Assignment) ja mahdollistaa rekisterin allokoinnin laskemalla rekisterin tarkasti etukäteen varjostimesta riippuen.

Tällä hetkellä erillisissä AMD-grafiikkasuorittimissa (dGPU VI+) tuetaan vain pikselien (fragmenttien) ja laskennan varjostimia. ACO kuitenkin kerää jo oikein varjostimet kaikille testatuille peleille, mukaan lukien Shadow of the Tomb Raiderin ja Wolfenstein II:n monimutkaiset varjostimet. Testattavaksi ehdotettu ACO-prototyyppi on lähes kaksi kertaa nopeampi kuin AMDGPU-shader-kääntäjä käännösnopeuden suhteen ja osoittaa FPS-nopeuden lisääntymistä joissakin peleissä käytettäessä järjestelmiä, joissa on RADV-ohjain.

Valve on avannut uuden Shader-kääntäjän AMD GPU:ille

Valve on avannut uuden Shader-kääntäjän AMD GPU:ille

Lähde: opennet.ru

Lisää kommentti