|
Marek Olšák, разработчик видеодрайверов из компании AMD, добавил в кодовую базу Mesa изменение, переводящее драйвер RadeonSI на использование по умолчанию промежуточного представления (IR) шейдеров NIR и бэкенда компиляции шейдеров ACO, развиваемого компанией Valve в качестве альтернативы компилятору шейдеров LLVM. Бэкенд ACO нацелен на обеспечение генерации кода, насколько это возможно оптимального для шейдеров игровых приложений, а также на достижение очень высокой скорости компиляции.
Применение ACO даёт возможность повысить скорость компиляции шейдеров, снизить потребление памяти, сократить размер бинарного представления шейдеров и генерировать более оптимизированный код. По сравнению с LLVM применение бэкенда ACO позволило до 8 раз снизить время компиляции шейдеров, что заметно сокращает время запуска программ. При этом ACO использует меньше регистров SGPR/VGPR (Scalar/Vector General Purpose Register), что снижает необходимость выполнения ресурсоёмких операций вытеснения регистров в память (spilling) в случае нехватки доступных регистров.
|