កម្មវិធីបញ្ជា RADV Vulkan ត្រូវបានប្តូរទៅប្រើកម្មវិធីខាងក្រោយការចងក្រង ACO shader

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

Переключение драйвера RADV на новый бэкенд стало возможным после достижении в ACO паритета по функциональности со старым бэкендом, разработанным AMD для драйвера AMDGPU, который продолжает применяться в OpenGL-драйвере RadeonSI. Проведённое компанией Valve тестирование បានបង្ហាញឱ្យដឹង, что ACO почти в два раза превосходит компилятор шейдеров AMDGPU по скорости компиляции и демонстрирует увеличение FPS в некоторых играх, при их работе на системах с драйвером RADV.

កម្មវិធីបញ្ជា RADV Vulkan ត្រូវបានប្តូរទៅប្រើកម្មវិធីខាងក្រោយការចងក្រង ACO shader

កម្មវិធីបញ្ជា RADV Vulkan ត្រូវបានប្តូរទៅប្រើកម្មវិធីខាងក្រោយការចងក្រង ACO shader

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

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

ប្រភព: opennet.ru

បន្ថែមមតិយោបល់