Vulkan-драйвер RADV переведён на использование бэкенда компиляции шейдеров ACO

26 июня 2020 года

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

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

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

Источники

править
 
 
Creative Commons
Эта статья содержит материалы из статьи «Vulkan-драйвер RADV переведён на использование бэкенда компиляции шейдеров ACO», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.