Is-sewwieq RADV Vulkan inbidel biex juża l-backend tal-kompilazzjoni tax-shader ACO

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

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

Is-sewwieq RADV Vulkan inbidel biex juża l-backend tal-kompilazzjoni tax-shader ACO

Is-sewwieq RADV Vulkan inbidel biex juża l-backend tal-kompilazzjoni tax-shader ACO

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

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

Sors: opennet.ru

Żid kumment