Драйвер Vulkan теперь использует серверную часть сборки ACO от Valve

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

Это указанное изменение было сделано с получением прибавки продуктивности игр и сокращение времени его запуска.

Перемена от контроллера RADV к новому бэкэнду стало возможным после достижения паритета функциональности ACO со старым бэкэндом, разработанным AMD для драйвера AMDGPU, который продолжает использоваться в драйвере RadeonSI OpenGL.

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

В драйверах AMD OpenGL и Vulkan в настоящее время используется компилятор шейдеров, который является частью восходящего проекта LLVM. Этот проект огромен и преследует множество различных целей, и онлайн-компиляция игровых шейдеров - лишь одна из них. 

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

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

АКН он написан на C ++, разработан с учетом применимости для JIT-компиляции, и используйте быстрые для перебора структур данных, избегая использования структур, основанных на указателях, таких как связанные списки и строки, def. Промежуточное представление кода полностью основано на SSA (Single Static Allocation) и позволяет размещать записи, точно вычисляя запись на основе шейдера.

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

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

Предлагаемый прототип АСО для теста он почти в два раза быстрее компилятора шейдеров AMDGPU и демонстрирует увеличение FPS в некоторых играх при запуске на системах с контроллером 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.   ВариХэви сказал

    И как пользователь выбирает, на каком сервере запускать игру? Какие файлы нужно изменить?