Ajokarê RADV Vulkan hate guheztin da ku pişta berhevkirina shader ACO bikar bîne

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

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

Ajokarê RADV Vulkan hate guheztin da ku pişta berhevkirina shader ACO bikar bîne

Ajokarê RADV Vulkan hate guheztin da ku pişta berhevkirina shader ACO bikar bîne

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

Дополнение: На данный момент ACO работает только для Vulkan-драйвера Mesa RADV. Но разработчики ACO pejirandin, что их следующим шагом будет начало работы над расширением возможностей ACO для обеспечения поддержки OpenGL-драйвера RadeonSI, чтобы в будущем и для этого драйвера ACO смог заменить собой по умолчанию компилятор шэйдеров LLVM.

Source: opennet.ru

Add a comment