RADV Vulkan tvarkyklė perjungė naudoti ACO Shader kompiliavimo užpakalinę programą

Kodų bazėje, naudojamoje kuriant Mesa 20.2 leidimą, įgyvendinta perjungti RADV, Vulkan tvarkyklę, skirtą AMD lustams, naudoti numatytąją užpakalinę programą šešėliams sudaryti.ACO“, kurį „Valve“ kuria kaip alternatyvą LLVM šešėlių kompiliatoriui. Šis pakeitimas padidins žaidimo našumą ir sumažins paleidimo laiką. Norint grąžinti seną užpakalinę programą, pateikiamas aplinkos kintamasis „RADV_DEBUG=llvm“.

Perjungti RADV tvarkyklę į naują užpakalinę dalį tapo įmanoma po to, kai ACO pasiekė funkcionalumo lygiavertiškumą su sena AMD sukurta AMDGPU tvarkykle, kuri ir toliau naudojama RadeonSI OpenGL tvarkyklėje. Testavimas Valve parodėkad ACO yra beveik dvigubai greitesnis už AMDGPU šešėlių kompiliatorių kompiliavimo greičiu ir demonstruoja FPS padidėjimą kai kuriuose žaidimuose, kai jie veikia sistemose su RADV tvarkykle.

RADV Vulkan tvarkyklė perjungė naudoti ACO Shader kompiliavimo užpakalinę programą

RADV Vulkan tvarkyklė perjungė naudoti ACO Shader kompiliavimo užpakalinę programą

ACO užpakalinė programa skirta užtikrinti kuo optimalesnį kodų generavimą žaidimų programų šešėliams, taip pat pasiekti labai didelį kompiliavimo greitį. ACO yra parašyta C++ kalba, sukurta atsižvelgiant į JIT kompiliavimą ir naudoja greitas pasikartojančias duomenų struktūras, vengiant rodyklėmis pagrįstų struktūrų. Tarpinis kodo pateikimas yra visiškai pagrįstas SSA (Static Single Assignment) ir leidžia paskirstyti registrą tiksliai iš anksto apskaičiuojant registrą, atsižvelgiant į šešėlį.

Papildymas: šiuo metu ACO veikia tik Mesa RADV Vulkan tvarkyklei. Tačiau ACO kūrėjai patvirtinokad kitas jų žingsnis bus pradėti plėtoti ACO galimybes, kad palaikytų RadeonSI OpenGL tvarkyklę, kad ateityje šiai tvarkyklei ACO galėtų pakeisti numatytąjį LLVM šešėlių kompiliatorių.

Šaltinis: opennet.ru

Добавить комментарий