Gonilnik Vulkan zdaj uporablja Valveov ACO build backkend

V osnovi kode, ki se uporablja za oblikovanje različice Mesa 20.2, gonilnik RADV, Vulkan za čipe AMD preusmerjen na backend privzeto za prevajanje senčniki »ACO«, ki jih je razvil Valve kot alternativa prevajalniku senčil LLVM.

Ta določena sprememba je bilo opravljeno s koncem povečanja produktivnosti iger in zmanjšanje časa izstrelitve.

Sprememba od krmilnika RADV do novega zaledja je bilo mogoče po doseganju enakovrednosti v funkcionalnosti ACO s starim AMD-jevim razvitim zaledjem za gonilnik AMDGPU, ki se še naprej uporablja v gonilniku RadeonSI OpenGL.

Testiranje s strani Valve je pokazalo, da je ACO skoraj dvakrat hitrejši od AMDGPU-jevega prevajalnika gradnikov senčnikov in kaže povečanje števila FPS v nekaterih igrah, ko teče v sistemih z gonilnikom RADV.

Gonilniki AMD OpenGL in Vulkan trenutno uporabljajo prevajalnik osenčevalnikov, ki je del predhodnega projekta LLVM. Ta projekt je ogromen in ima veliko različnih ciljev, spletna kompilacija igralnih senčnikov pa je le eden izmed njih. 

To lahko pripelje do razvojnih kompromisov, kjer je izboljšanje funkcionalnosti, značilne za igro, težje, kot bi bilo sicer, ali pa razvijalci LLVM, ki se ukvarjajo z drugimi stvarmi, značilnosti iger pogosto po naključju zlomijo.

Zaledje Cilj ACO je zagotoviti, da se koda generira na najbolj optimalen način možno za senčnike aplikacij za igre in doseči zelo visoko hitrost prevajanja.

ACO napisano je v jeziku C ++, razvit ob upoštevanju uporabnosti za kompilacijo JIT, in uporabite hitre, da prelistate podatkovne strukture, izogibanje strukturi, ki temelji na kazalcih, kot so povezani seznami in nizi, pri uporabi def. Vmesna predstavitev kode v celoti temelji na SSA (Single Static Allocation) in omogoča dodeljevanje zapisov, natančen izračun zapisa na podlagi senčnika.

Vmesna predstavitev kode v celoti temelji na SSA (Single Static Allocation) in omogoča dodelitev zapisov, natančno izračunavanje zapisa na podlagi senčnika.

Trenutno so podprte samo slikovne pike (drobci) in izračunajte senčnike na diskretnih grafičnih procesorjih AMD (dGPU VI +). Vendar ACO že pravilno zbira senčnike za vse preizkušene igre, vključno s kompleksnimi senčniki iz Shadow of the Tomb Raider in Wolfenstein II.

Predlagani prototip ACO za test je skoraj dvakrat hitrejši od prevajalnika osenčenj AMDGPU in kaže povečanje števila sličic v sekundo v nekaterih igrah, ko se tečejo v sistemih s krmilnikom RADV.

Če želite razumeti nekaj več o pomembnosti sprejemanja kode Valve, je pomembno, da to poudarite cilj je zagotoviti čim bolj optimalno generiranje kode za senčila aplikacij za igre, pa tudi zelo visoko hitrost prevajanja.

Prevajalnik senčil, ki je na voljo v Mesi, uporablja komponente LLVM, Ne omogočajo doseganja želene hitrosti prevajanja in ne omogočajo popolnega nadzora nad regulacijskim tokom, ki je v preteklosti že povzročal resne napake.

Poleg tega, izogibanje LLVM omogoča izvajanje bolj agresivne analize neskladja in natančnejše upravljanje nalaganja dnevnika, kar omogoča učinkovitejše ustvarjanje izvršljivih datotek.

Končno je tudi Pomembno je omeniti, da trenutno ACO deluje samo za krmilnik Mesa RADV Vulkan. Toda razvijalci ACO so potrdili, da bo njihov naslednji korak začetek dela na razširitvi zmogljivosti ACO za podporo gonilnika OpenGL RadeonSI, tako da bo ACO v prihodnosti in za ta gonilnik lahko nadomestil privzeti prevajalnik senčnikov LLVM.

Koliko tisti, ki raje nadaljujejo z zaledjem, ki je bil prej uporabljen iz prevajalnika osenčevalnikov LLVM se lahko vrnejo nanj, spremeniti morajo samo spremenljivko.

Spremenljivka okolja, ki je na voljo za izvedbo te spremembe, je "RADV_DEBUG = llvm".


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Za podatke odgovoren: Miguel Ángel Gatón
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.

  1.   VaryHeavy je dejal

    In kako uporabnik izbere, s katerim backendom bo zagnal igro? Katere datoteke mora spremeniti?