RADV Vulkan draiveris ir pārslēgts, lai izmantotu ACO shadera kompilācijas aizmuguri

Kodu bāzē, ko izmanto, lai izveidotu Mesa 20.2 laidienu, īstenota pārslēgt RADV, Vulkan draiveri AMD mikroshēmām, lai izmantotu noklusējuma aizmuguri ēnotāju kompilēšanai.ACO“, ko Valve izstrādā kā alternatīvu LLVM ēnotāju kompilatoram. Šīs izmaiņas uzlabos spēles veiktspēju un samazinās palaišanas laiku. Lai atgrieztu veco aizmugursistēmu, tiek nodrošināts vides mainīgais “RADV_DEBUG=llvm”.

RADV draivera pārslēgšana uz jauno aizmugursistēmu kļuva iespējama pēc tam, kad ACO sasniedza funkcionalitātes paritāti ar veco aizmugursistēmu, ko AMD izstrādāja AMDGPU draiverim, kas joprojām tiek izmantots RadeonSI OpenGL draiverī. Testēšana ar Valve parādījaka ACO ir gandrīz divas reizes ātrāks par AMDGPU ēnotāju kompilatoru kompilācijas ātruma ziņā un parāda FPS pieaugumu dažās spēlēs, ja tās darbojas sistēmās ar RADV draiveri.

RADV Vulkan draiveris ir pārslēgts, lai izmantotu ACO shadera kompilācijas aizmuguri

RADV Vulkan draiveris ir pārslēgts, lai izmantotu ACO shadera kompilācijas aizmuguri

ACO aizmugure ir paredzēta, lai nodrošinātu pēc iespējas optimālāku koda ģenerēšanu spēļu aplikāciju ēnotājiem, kā arī sasniegtu ļoti lielu kompilācijas ātrumu. ACO ir rakstīts C++ valodā, izstrādāts, paturot prātā JIT kompilāciju, un izmanto ātras iteratīvas datu struktūras, izvairoties no uz rādītājiem balstītām struktūrām. Koda starpposma attēlojums ir pilnībā balstīts uz SSA (Static Single Assignment) un ļauj piešķirt reģistru, precīzi iepriekš aprēķinot reģistru atkarībā no ēnotāja.

Papildinājums: Šobrīd ACO darbojas tikai Mesa RADV Vulkan draiverim. Bet ACO izstrādātāji apstiprinājaka viņu nākamais solis būs sākt darbu pie ACO iespēju paplašināšanas, lai atbalstītu RadeonSI OpenGL draiveri, lai nākotnē šim draiverim ACO varētu aizstāt noklusējuma LLVM ēnotāja kompilatoru.

Avots: opennet.ru

Pievieno komentāru