Valve on avanud AMD GPU-de jaoks uue varjundikompilaatori

Ventiili ettevõte soovitas Mesa arendajate meililistil on uus varjundikompilaator ACO Vulkani juhi RADV jaoks, positsioneeritav alternatiivina AMDGPU varjundikompilaatorile, mida kasutatakse OpenGL-i ja Vulkani draiverites RadeonSI ja RADV AMD graafikakiipide jaoks.
Kui testimine on lõppenud ja funktsionaalsus on lõpule viidud, plaanitakse ACO-d lisada Mesa põhikoosseisu.

Valve pakutud koodi eesmärk on pakkuda mängurakenduste varjutajate jaoks võimalikult optimaalset koodi genereerimist, samuti saavutada väga kõrge kompileerimiskiirus. Mesa varjundikompilaator kasutab LLVM-i komponente, mis ei taga soovitud kompileerimiskiirust ega võimalda varem tõsiseid vigu põhjustanud juhtvoogu täielikult kontrollida. Lisaks võimaldab LLVM-ist eemaldumine rakendada agressiivsemat lahknevusanalüüsi ja registrikoormuse peenemat kontrolli, mis võimaldab genereerida tõhusamaid käivitatavaid faile.

ACO on kirjutatud C++ keeles, loodud JIT-i kompileerimist silmas pidades ning kasutab kiireid iteratiivseid andmestruktuure, vältides osutipõhiseid struktuure, nagu lingitud loendid ja def-use ahelad. Vahepealne koodi esitus põhineb täielikult S.S.A. (Static Single Assignment) ja võimaldab registrit jaotada, arvutades registri täpselt sõltuvalt varjutajast.

Praegu toetavad diskreetsed AMD GPU-d (dGPU VI+) ainult pikslite (fragmentide) ja arvutusvarjundeid. Kuid ACO kogub juba õigesti varjutajaid kõigi testitud mängude jaoks, sealhulgas Shadow of the Tomb Raideri ja Wolfenstein II keerukate varjundite jaoks. Testimiseks pakutav ACO prototüüp on kompileerimiskiiruselt peaaegu kaks korda kiirem kui AMDGPU varjundikompilaator ja näitab mõne mängu FPS-i suurenemist, kui see töötab RADV-draiveriga süsteemides.

Valve on avanud AMD GPU-de jaoks uue varjundikompilaatori

Valve on avanud AMD GPU-de jaoks uue varjundikompilaatori

Allikas: opennet.ru

Lisa kommentaar