Vulkan-драйвер RADV переведений на використання бекенду компіляції шейдерів ACO

Alex Alex 26 червня 2020
Vulkan-драйвер RADV переведений на використання бекенду компіляції шейдерів ACO

У кодовій базі, що використовується для формування випуску Mesa 20.2, виконако перемикання RADV, Vulkan-драйвера для чіпів AMD, на використання за замовчуванням бекенду для компіляції шейдерів "ACO", який розвивається компанією Valve в якості альтернативи компілятору шейдерів LLVM. Зазначена зміна не призведе до збільшення продуктивності ігор і скорочення часу їх запуску. Для повернення старого бекенду передбачена змінна оточення "RADV_DEBUG=llvm".

Перемикання драйвера RADV на новий бекенд стало можливим після досягнення ACO паритету по функціональності зі старим бекендом, розробленим для драйвера AMD AMDGPU, який продовжує застосовуватися в OpenGL-драйвері RadeonSI. Проведене компанією Valve тестування показало, що ACO майже у два рази перевершує компілятор шейдерів AMDGPU по швидкості компіляції та демонструє збільшення FPS в деяких іграх, при їх роботі на системах з драйвером RADV. Vulkan-драйвер RADV переведений на використання бекенду компіляції шейдерів ACO

Бекенд ACO націлений на забезпечення генерації коду, наскільки це можливо оптимального для шейдерів ігрових додатків, а також на досягнення дуже високої швидкості компіляції. ACO написаний на мові С++, розробляється з огляду на можливість застосування для JIT-компіляції та використовує швидкі для перебору структури даних, уникаючи структур на основі покажчиків. Проміжне представлення коду повністю ґрунтується на SSA (Static Single Assignment) і дозволяє виконувати розподіл регістрів, точно попередньо обчислюючи регістр залежно від шейдера.

Коментарі (0)

    Ще немає коментарів

Щоб залишити коментар необхідно авторизуватися.