Драйвер Vulkan тепер використовує серверну основу збірки ACO Valve

У кодовій основі, яка використовується для формування версії Mesa 20.2, драйвер RADV, Вулкан для чіпів AMD перейшов на бекенд за замовчуванням для компіляції шейдери »ACO«, розроблені Valve як альтернатива компілятору шейдерів LLVM.

Ця конкретна зміна було зроблено в кінці отримання збільшення продуктивності ігор і скорочення часу запуску.

Зміна від контролера RADV до нового серверного сервера стало можливим після досягнення паритету в функціональності ACO зі старим серверним процесором AMD для драйвера AMDGPU, який продовжує використовуватися в драйвері RadeonSI OpenGL.

Тестування Valve показало, що ACO майже вдвічі швидший за компілятор побудови шейдерів AMDGPU і демонструє збільшення частоти кадрів у секунду в деяких іграх при роботі на системах з драйвером RADV.

В даний час драйвери AMD OpenGL та Vulkan використовують компілятор шейдерів, який є частиною проекту LLVM upstream. Цей проект величезний і має безліч різних цілей, і онлайн-компіляція ігрових шейдерів - лише одна з них. 

Це може призвести до компромісних варіантів розробки, де вдосконалення специфічної для гри функціональності є складнішим, ніж це було б інакше, або де особливості ігрових функцій часто випадково порушуються розробниками LLVM, які працюють над іншими речами.

Бекенд ACO прагне забезпечити генерацію коду найбільш оптимальним способом можливо для ігрових шейдерів додатків і досягати дуже високої швидкості компіляції.

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

Проміжне представлення коду повністю базується на SSA (Single Static Allocation) і дозволяє розподіляти записи, точно обчислюючи запис на основі шейдера.

Наразі підтримуються лише пікселі (фрагменти) і обчислювати шейдери на дискретних графічних процесорах AMD (dGPU VI +). Однак ACO вже правильно збирає шейдери для всіх тестованих ігор, включаючи складні шейдери від Shadow of the Tomb Raider та Wolfenstein II.

Пропонований прототип ACO для тесту це майже вдвічі швидше, ніж компілятор шейдерів AMDGPU і демонструє збільшення частоти кадрів в секунду в деяких іграх при запуску в системах з контролером RADV.

Щоб зрозуміти трохи більше про актуальність прийняття коду Valve, важливо це зробити на перший план мета полягає в тому, щоб гарантувати максимально оптимальне формування коду для шейдерів ігрових додатків, а також дуже високу швидкість компіляції.

Компілятор шейдерів, доступний у Mesa, використовує компоненти LLVM, які не дозволяють досягти бажаної швидкості компіляції та не дозволяють повноцінно керувати потоком управління, що в минулому вже спричиняло серйозні помилки.

Крім того, уникнення LLVM дозволяє здійснити більш агресивний аналіз розбіжності та більш точне управління навантаженням журналу, що дозволяє більш ефективно генерувати виконувані файли.

Нарешті, це теж Важливо зазначити, що на даний момент ACO працює лише для контролера Mesa RADV Vulkan. Але розробники ACO підтвердили, що їх наступним кроком буде початок роботи над розширенням можливостей ACO для підтримки драйвера OpenGL RadeonSI, щоб у майбутньому ACO міг замінити компілятор шейдерів LLVM за замовчуванням.

Скільки тим, хто вважає за краще продовжувати роботу з бекендом, який використовувався раніше із компілятора шейдерів LLVM вони можуть повернутися до нього, їм просто потрібно змінити змінну.

Змінна середовища, яка надається для внесення цієї зміни, є "RADV_DEBUG = llvm".


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.

  1.   ВаріХеві - сказав він

    І як користувач вибирає, з яким серверним сервером запускати гру? Які файли він повинен змінити?