Valve je odprl nov prevajalnik senčil za grafične procesorje AMD

Podjetje Valve predlagano Dopisni seznam za razvijalce Mesa ima nov prevajalnik senčil ACO za voznika Vulkan RADV, pozicioniran kot alternativa prevajalniku senčil AMDGPU, ki se uporablja v gonilnikih OpenGL in Vulkan RadeonSI in RADV za grafične čipe AMD.
Ko bo testiranje končano in funkcionalnost dokončana, bo ACO ponujen za vključitev v glavno sestavo Mesa.

Predlagana koda Valve je namenjena zagotavljanju generiranja kode, ki je čim bolj optimalna za senčnike aplikacij za igre, kot tudi doseganju zelo visoke hitrosti prevajanja. Prevajalnik senčil Mesa uporablja komponente LLVM, ki ne zagotavljajo želene hitrosti prevajanja in ne omogočajo popolnega nadzora nad krmilnim tokom, kar je v preteklosti povzročalo resne napake. Poleg tega odmik od LLVM omogoča izvajanje bolj agresivne analize neskladij in natančnejšega nadzora obremenitve registra, kar vam omogoča ustvarjanje učinkovitejših izvršljivih datotek.

ACO je napisan v C++, zasnovan z mislijo na prevajanje JIT in uporablja hitre iterativne podatkovne strukture, pri čemer se izogiba strukturam, ki temeljijo na kazalcih, kot so povezani seznami in verige def-use. Predstavitev vmesne kode v celoti temelji na SSA (Static Single Assignment) in omogoča dodelitev registra z natančnim predizračunom registra glede na senčnik.

Trenutno so na ločenih grafičnih procesorjih AMD (dGPU VI+) podprti samo slikovni senčniki (fragmenti) in računski senčniki. Vendar ACO že pravilno zbira shaderje za vse testirane igre, vključno s kompleksnimi shaderji iz Shadow of the Tomb Raider in Wolfenstein II. Prototip ACO, ki je bil predlagan za testiranje, je skoraj dvakrat hitrejši od prevajalnika senčil AMDGPU v smislu hitrosti prevajanja in kaže povečanje FPS v nekaterih igrah, ko se izvajajo v sistemih z gonilnikom RADV.

Valve je odprl nov prevajalnik senčil za grafične procesorje AMD

Valve je odprl nov prevajalnik senčil za grafične procesorje AMD

Vir: opennet.ru

Dodaj komentar