RADV Vulkan drayveri ACO shader kompilyatsiyasi backendidan foydalanishga o'tkazildi

Mesa 20.2 versiyasini yaratish uchun ishlatiladigan kodlar bazasida, amalga oshirildi RADV, AMD chiplari uchun Vulkan drayverini o'zgartirish, shaderlarni kompilyatsiya qilish uchun standart backenddan foydalanish "ACOβ€œ, bu Valve tomonidan LLVM shader kompilyatoriga muqobil sifatida ishlab chiqilmoqda. Ushbu o'zgarish o'yin samaradorligini oshirishga va ishga tushirish vaqtini qisqartirishga olib keladi. Eski backendni qaytarish uchun "RADV_DEBUG=llvm" muhit o'zgaruvchisi taqdim etiladi.

RADV drayverini yangi backendga almashtirish ACO AMD tomonidan RadeonSI OpenGL drayverida foydalanishda davom etayotgan AMDGPU drayveri uchun ishlab chiqilgan eski backend bilan funksionallik jihatidan tenglikka erishgandan keyin mumkin bo'ldi. Valve tomonidan sinov ko'rsatdiACO kompilyatsiya tezligi bo'yicha AMDGPU shader kompilyatoridan deyarli ikki baravar tezroq va RADV drayveri bilan tizimlarda ishlaganda ba'zi o'yinlarda FPS o'sishini namoyish etadi.

RADV Vulkan drayveri ACO shader kompilyatsiyasi backendidan foydalanishga o'tkazildi

RADV Vulkan drayveri ACO shader kompilyatsiyasi backendidan foydalanishga o'tkazildi

ACO backend o'yin ilovalari shaderlari uchun iloji boricha optimal bo'lgan kod ishlab chiqarishni ta'minlashga, shuningdek, juda yuqori kompilyatsiya tezligiga erishishga qaratilgan. ACO C++ tilida yozilgan bo'lib, JIT kompilyatsiyasini hisobga olgan holda ishlab chiqilgan va ko'rsatkichga asoslangan tuzilmalardan qochib, tez iterativ ma'lumotlar tuzilmalaridan foydalanadi. Kodning oraliq ko'rinishi butunlay SSA (Statik yagona tayinlash) ga asoslangan va shaderga qarab registrni aniq oldindan hisoblash orqali registrni ajratish imkonini beradi.

Qo'shimcha: Ayni paytda ACO faqat Mesa RADV Vulkan drayveri uchun ishlaydi. Ammo ACO ishlab chiquvchilari tasdiqladiularning keyingi qadami RadeonSI OpenGL drayverini qo'llab-quvvatlash uchun ACO imkoniyatlarini kengaytirish bo'yicha ishlarni boshlash bo'ladi, shunda kelajakda ushbu drayver uchun ACO standart LLVM shader kompilyatorini almashtirishi mumkin.

Manba: opennet.ru

a Izoh qo'shish