Ing basis kode sing digunakake kanggo mbentuk versi Mesa 20.2, driver RADV, Vulkan kanggo Kripik AMD diuripake kanggo backend gawan kanggo nyusun shader »ACO«, dikembangake dening Valve minangka alternatif kanggo kompilator shader LLVM.
Pangowahan kasebut rampung kanthi pungkasan entuk paningkatan produktivitas game lan pangirangan nalika mbukak.
Pangowahane saka kontroler RADV menyang backend anyar bisa ditindakake sawise entuk paritas ing fungsi ACO kanthi backend AMD sing wis lawas kanggo driver AMDGPU, sing terus digunakake ing driver RadeonSI OpenGL.
Tes dening Valve nuduhake manawa ACO meh kaping pindho luwih cepet tinimbang kompartemen AMDGPU shader build compiler lan nduduhake kenaikan FPS ing sawetara game nalika mlaku ing sistem karo driver RADV.
Driver AMD OpenGL lan Vulkan saiki nggunakake compiler shader sing dadi bagean saka proyek hulu LLVM. Proyek kasebut pancen gedhe lan duwe macem-macem tujuan, lan kompilasi game online minangka salah sawijining.
Iki bisa nyebabake perdagangan pangembangan, nalika ningkatake fungsionalitas khusus game luwih angel tinimbang sing bakal ditindakake, utawa ing endi fitur spesifik game asring dilanggar dening pangembang LLVM sing nggarap prekara liyane.
Backend saka ACO tujuane supaya kode kasebut digawe kanthi cara sing paling optimal bisa kanggo shader app game lan entuk kacepetan kompilasi sing dhuwur banget.
Aco ditulis ing C ++, dikembangake ngelingi aplikasi kanggo kompilasi JIT, lan gunakake sing cepet kanggo ngetrapake struktur data, ngindhari struktur adhedhasar pitunjuk kaya dhaptar sing gegandhengan lan senar saka nggunakake def. Perwakilan penengah saka kode kasebut rampung adhedhasar SSA (Alokasi Statis Tunggal) lan ngidini alokasi cathetan, kanthi tepat ngitung rekor adhedhasar shader.
Perwakilan penengah saka kode kasebut rampung adhedhasar SSA (Alokasi Statis Tunggal) lan ngidini alokasi cathetan, kanthi tepat ngitung rekor adhedhasar shader.
Saiki mung piksel sing didhukung (pecahan) lan ngitung shader ing GPU AMD diskrit (dGPU VI +). Nanging, ACO wis nglumpukake shader kanthi bener kanggo kabeh game sing diuji, kalebu shader kompleks saka Shadow of the Tomb Raider lan Wolfenstein II.
Prototipe ACO sing diusulake kanggo tes meh kaping pindho luwih cepet tinimbang kompiler shader AMDGPU lan nduduhake kenaikan FPS ing sawetara game nalika mbukak sistem nganggo kontrol RADV.
Kanggo ngerteni luwih akeh babagan relevansi nggunakake kode Valve, luwih penting sadurunge tujuane kanggo njamin generasi kode sing paling optimal kanggo shader aplikasi game, uga kacepetan kompilasi sing dhuwur banget.
Compiler shader sing kasedhiya ing Mesa nggunakake komponen LLVM, sing ora ngidini tekan kacepetan kompilasi sing dipengini lan ora ngidini kontrol lengkap aliran kontrol, sing sadurunge wis nyebabake kesalahan serius.
Uga, ngindhari LLVM bisa ngetrapake analisis sing luwih agresif bedane lan manajemen mbukak log sing luwih apik, supaya bisa ngasilake generasi file sing luwih efisien.
Pungkasane, uga Penting, dicathet yen ing saiki ACO mung bisa digunakake kanggo kontrol Mesa RADV Vulkan. Nanging pangembang ACO wis negesake manawa langkah sabanjure yaiku miwiti ngupayakake kemampuan ACO kanggo ndhukung driver OpenGL RadeonSI, saengga lan kanggo driver iki, ACO bisa ngganti kompiler LLVM shader.
Pinten wong-wong sing seneng terus nganggo backend sing digunakake sadurunge saka kompiler LLVM shader, bisa bali maneh, mung kudu ngganti variabel.
Variabel lingkungan sing diwenehake kanggo nggawe pangowahan kasebut yaiku "RADV_DEBUG = llvm".
Komentar, ninggalake sampeyan
Lan kepiye pangguna milih backend kanggo mbukak game? File apa sing kudu diowahi?