Vulkani juht kasutab nüüd Valve ACO-i ehituskeskkonda

Mesa 20.2 versiooni moodustamiseks kasutatud koodibaasis RADV-draiver, Vulkan AMD kiipide jaoks lülitati taustaprogrammile vaikimisi kompileerida varjundid »ACO«, välja töötanud Valve alternatiivina LLVM shaderi kompilaatorile.

See täpsustas muudatust tehti mängude tootlikkuse kasvu saavutamise lõpuks ja selle käivitamisaja lühendamine.

Muutus RADV-kontrollerist uue taustaprogrammini oli võimalik pärast ACO funktsionaalsuse pariteedi saavutamist vana AMD väljatöötatud taustaprogrammiga AMDGPU draiveri jaoks, mida kasutatakse jätkuvalt RadeonSI OpenGL draiveris.

Valve'i testimine näitas, et ACO on peaaegu kaks korda kiirem kui AMDGPU varjuri ehituse kompilaator ja see näitab mõnedes mängudes FPS-i kasvu RADV-draiveriga süsteemides töötades.

AMD OpenGL ja Vulkan draiverid kasutavad praegu varjutuskompilaatorit, mis on osa LLVM ülesvoolu projektist. See projekt on tohutu ja sellel on palju erinevaid eesmärke ning mängude varjutajate veebikogumik on vaid üks neist. 

See võib viia kompromissideni, kus mängude spetsiifilise funktsionaalsuse parandamine on keerulisem kui see oleks muidu, või kus LLVM-i arendajad muudega töötades sageli kogemata mängu spetsiifilisi funktsioone lõhuvad.

Backend ACO eesmärk on tagada koodi loomine kõige optimaalsemal viisil võimalik mängurakenduste varjutajatele ja saavutada väga suur kompileerimiskiirus.

ACO see on kirjutatud C ++ keeles, välja töötatud, pidades silmas JIT koostamise rakendatavust, ja kasutage kiireid andmekonstruktsioonide kordamiseks, vältides kursoripõhiseid struktuure nagu lingitud loendid ja stringid def-i kasutamisest. Koodi vahepealne esitus põhineb täielikult SSA-l (Single Static Allocation) ja võimaldab kirjete eraldamist, arvutades kirje varjutaja põhjal täpselt.

Koodi vahepealne esitus põhineb täielikult SSA-l (Single Static Allocation) ja võimaldab kirjete eraldamist, arvutades kirje varjutaja põhjal täpselt.

Praegu toetatakse ainult piksleid (killud) ja arvutage varjutajad diskreetsetes AMD GPU-des (dGPU VI +). Kuid ACO kogub juba korrektselt kõigi testitud mängude varjutajaid, sealhulgas Shadow of the Tomb Raideri ja Wolfenstein II kompleksseid varjundeid.

Kavandatud ACO prototüüp testi jaoks see on peaaegu kaks korda kiirem kui AMDGPU varjuri kompilaator ja näitab FPS-i kasvu mõnes mängus, kui seda kasutatakse RADV-kontrolleriga süsteemides.

Valve koodi kasutuselevõtu asjakohasuse mõistmiseks on oluline seda ette näha eesmärk on tagada võimalikult optimaalne koodi genereerimine nii mängurakenduste varjutajatele kui ka väga suur kompileerimiskiirus.

Mesas saadaval olev varjuri kompilaator kasutab LLVM-i komponente, mis ei võimalda saavutada soovitud kompileerimiskiirust ega võimalda juhtimisvoogu täielikult kontrollida, mis on minevikus juba põhjustanud tõsiseid vigu.

Lisaks LLVM-i vältimine võimaldab rakendada agressiivsemat analüüsi lahknevused ja peenem logikoormuse haldamine, võimaldades käivitatava faili genereerimist tõhusamalt.

Lõpuks on ka Oluline on märkida, et hetkel töötab ACO ainult Mesa RADV Vulkani kontrolleri jaoks. Kuid ACO arendajad on kinnitanud, et nende järgmine samm on hakata töötama ACO võimete laiendamise nimel, et toetada OpenGL RadeonSI draiverit, nii et tulevikus ja selle draiveri jaoks saaks ACO asendada LLVM-i vaikekompilaatori. .

Kui palju need, kes eelistavad jätkata varem kasutatud taustaprogrammiga LLVM shader-kompilaatorist saavad nad selle juurde tagasi pöörduda, nad peavad lihtsalt muutujat muutma.

Selle muutuse tegemiseks pakutav keskkonnamuutuja on "RADV_DEBUG = llvm".


Jäta oma kommentaar

Sinu e-postiaadressi ei avaldata. Kohustuslikud väljad on tähistatud *

*

*

  1. Andmete eest vastutab: Miguel Ángel Gatón
  2. Andmete eesmärk: Rämpsposti kontrollimine, kommentaaride haldamine.
  3. Seadustamine: teie nõusolek
  4. Andmete edastamine: andmeid ei edastata kolmandatele isikutele, välja arvatud juriidilise kohustuse alusel.
  5. Andmete salvestamine: andmebaas, mida haldab Occentus Networks (EL)
  6. Õigused: igal ajal saate oma teavet piirata, taastada ja kustutada.

  1.   Erinevad rasked DIJO

    Ja kuidas saab kasutaja valida, millise taustaprogrammiga mängu käivitada? Milliseid faile see peab muutma?