RadeonSI может начать использовать компилятор ACO от Valve для определенных шейдеров

MESA

Начиная с 15 мая в новой версии Mesa 23.2-devel, опция переменной окружения AMD_DEBUG=useaco теперь доступна для указания драйверу RadeonSI Gallium3D использовать компилятор шейдеров Valve ACO, а не компилятор шейдеров AMDGPU LLVM для поддерживаемых типов шейдеров.

Valve потратила годы на работу над внутренним компилятором ACO в качестве более быстрой альтернативы официальному шейдерному компилятору AMD на базе LLVM, используемому в RadeonSI, ранее в RADV, а также в вычислительном стеке ROCm и др. Внутренний компилятор ACO сыграл важную роль в успехе драйвера RADV и сделал его отличным драйвером для Linux-геймеров на Steam Deck и тех, кто на настольных компьютерах Linux пользуется графикой Radeon с открытым исходным кодом.

В течение многих лет велись разговоры о том, чтобы привнести ACO в RadeonSI, и это постепенно происходит. Благодаря этому запросу на слияние от Qiang Yu последняя часть головоломки собралась вместе, позволяя включить компилятор ACO с опцией AMD_DEBUG=useaco для поддерживаемых типов шейдеров.

Но с этим первоначальным слиянием поддержка компилятора ACO в RadeonSI будет только для монолитных пиксельных шейдеров. Цян объяснил в MR:
«Компиляция ACO может быть включена с помощью AMD_DEBUG=useaco. В настоящее время поддерживается только монолитный PS. Было бы огромным изменением перевести все шейдеры на ACO сразу, поэтому я планирую включать их по одному для более легкого анализа и отладки».

Он проработал известные регрессии, которые изначально были у компилятора ACO с пиксельными шейдерами по сравнению с бэкендом компилятора LLVM.

Приятно видеть эту последнюю партию кода ACO + RadeonSI — несколько сотен строк нового кода. Надеюсь, в скором времени больше типов шейдеров начнут работать в ACO с RadeonSI. Другие работы по ACO для Mesa можно найти по этому запросу на GitLab.

Один мальчик подписался на телеграм-канал Игры в Linux и получил бесплатную игру в Steam! Новости из мира игр в Linux, свежие обзоры игр и полезные инструкции всегда под рукой!

Источник
Константин Дьяченко

Автор и основатель сайта Игры в Linux с 2010 года. Пользователь Linux с 2002. Старый злобный сисадмин с 1997.

Если Вам интересна тематика сайта и вы хотите каким-то образом поучаствовать в жизни сайта и его сообществ - напишите мне! Все контакты в разделе о сайте.

Игры в Linux
Добавить комментарий

Поля email и сайт не являются обязательными. Оставляя комментарий вы соглашаетесь с политикой конфиденциальности сайта.