Kwisisekelo sekhodi esetshenziselwe ukwakha uhlobo lweMesa 20.2, umshayeli we-RADV, IVulkan yamachips we-AMD ishintshele emuva okuzenzakalelayo ukuhlanganisa izithunzi »ACO«, ithuthukiswe yiValve njengenye indlela eya kusihlanganisi se-LLVM shader.
Lolu shintsho olucacisiwe kwenziwa ekugcineni kokuthola ukwanda komkhiqizo wemidlalo kanye nokwehliswa kwesikhathi sokwethulwa kwayo.
Ushintsho kusuka kusilawuli se-RADV kuya emuva okusha yenziwe yaba nokwenzeka ngemuva kokufinyelela ebunyeni ekusebenzeni kwe-ACO nge-AMD yakudala eyakhiwe emuva kumshayeli we-AMDGPU, oqhubeka nokusetshenziswa kumshayeli weRadeonSI OpenGL.
Ukuhlolwa yiValve kukhombisile ukuthi i-ACO icishe iphindwe kabili kune-AMDGPU shader build compiler futhi ikhombise ukwanda kwe-FPS kweminye imidlalo lapho isebenza kumasistimu nomshayeli we-RADV.
Abashayeli be-AMD OpenGL nabakwaVulkan njengamanje basebenzisa i-shader compiler eyingxenye yephrojekthi ephezulu ye-LLVM. Leyo projekthi inkulu futhi inezinhloso eziningi ezahlukahlukene, futhi ukuhlanganiswa online kwe-shader yomdlalo kungenye yazo.
Lokho kungaholela ekuthuthukisweni kwe-tradeoffs, lapho ukuthuthukisa ukusebenza okuqondene nomdlalo kunzima kakhulu kunalokho obekungaba ngenye indlela, noma lapho izici eziqondene nomdlalo zivame ukuphulwa ngengozi ngonjiniyela be-LLVM abasebenza kwezinye izinto.
Ukubuyela emuva kwe- I-ACO ihlose ukuqinisekisa ukuthi ikhodi yenziwe ngendlela efaneleke kakhulu kungenzeka ama-shader app app futhi uzuze isivinini sokuhlanganiswa okuphezulu kakhulu.
Aco kubhalwe ku-C ++, kuthuthukiswe ukugcina engqondweni ukusetshenziswa kokuhlanganiswa kwe-JIT, bese usebenzisa ezisheshayo ukwehlisa ukwakheka kwedatha, ukugwema izakhiwo ezenzelwe ukukhomba njengezinhlu ezixhunyiwe nezintambo ekusebenziseni i-def. Ukumelwa okuphakathi kwamakhodi kususelwa ngokuphelele ku-SSA (Ukwabiwa Okumile Okodwa) futhi kuvumela ukwabiwa kwamarekhodi, ukubalwa ngokunembile kwerekhodi ngokususelwa kusifisi.
Ukumelwa okuphakathi kwamakhodi kususelwa ngokuphelele ku-SSA (Ukwabiwa Okumile Okodwa) futhi kuvumela ukwabiwa kwamarekhodi, ukubalwa ngokunembile kwerekhodi ngokususelwa kusifisi.
Okwamanje kuphela amaphikseli asekelwayo (izingcezu) bese ubala ama-shader kuma-AMD GPU ahlukile (i-dGPU VI +). Kodwa-ke, i-ACO isivele iqoqa izithunzi kuyo yonke imidlalo evivinyiwe, kufaka phakathi izithunzi eziyinkimbinkimbi ezivela eShadow of the Tomb Raider naseWolfenstein II.
Uhlobo oluhlongozwayo lwe-ACO isivivinyo icishe iphindwe kabili kunesihlanganisi se-AMDGPU shader futhi kukhombisa ukwanda kwe-FPS kweminye imidlalo lapho kusebenza kuzinhlelo zesilawuli se-RADV.
Ukuqonda okwengeziwe ngokubaluleka kokuthola ikhodi yeValve, kubalulekile ukukubeka ngaphambili lokho inhloso ukuqinisekisa ukukhiqizwa kwekhodi elilungile kakhulu okwe-app shaders, kanye nesivinini esikhulu sokuhlanganiswa.
Isihlanganisi se-shader esitholakala ku-Mesa sisebenzisa izinto ze-LLVM, Abavumeli ukufeza isivinini sokuhlanganiswa okufunwayo futhi abavumeli ukulawulwa okugcwele kokugeleza kokulawula, okwedlule okuvele kudale amaphutha amakhulu.
Futhi, ukugwema i-LLVM kwenza kube nokwenzeka ukusebenzisa uhlaziyo olunolaka kakhulu ukungafani kanye nokuphathwa okulula kwe-log, okuvumela ukukhiqizwa kwamafayela okuphumelelayo.
Ekugcineni, futhi Kubalulekile ukuqaphela ukuthi okwamanje i-ACO isebenza kuphela kumlawuli we-Mesa RADV Vulkan. Kepha abathuthukisi be-ACO baqinisekisile ukuthi isinyathelo sabo esilandelayo kuzoba ukuqala ukusebenza ekwandiseni amandla e-ACO ukuxhasa umshayeli we-OpenGL RadeonSI, ukuze esikhathini esizayo nakulo mshayeli, i-ACO ithathe isikhundla se-LLVM shader compiler ezenzakalelayo.
Malini labo abakhetha ukuqhubeka ne-backend ebisetshenziswa phambilini kusuka ku-LLVM shader compiler, bangabuyela kuyo, kufanele nje bashintshe okuguqukayo.
Ukuhluka kwemvelo okunikezwe ukwenza lolu shintsho kungukuthi "RADV_DEBUG = llvm".
Futhi umsebenzisi ukhetha kanjani ukuthi iyiphi i-backend yokuqalisa umdlalo nayo? Yimaphi amafayela okufanele uwaguqule?