Обход регресии для MESA R600 NIR->TGSI
Имея у себя в системе версию MESA
близкую к 22.2.4
, вы можете получить в некоторых приложениях графические артефакты или полную неработоспособность графики, при этом всё иное будет функционировать нормально.
Одной из причин может быть регрессия бекенда TGSI
. Если в более ранних версиях MESA
шейдеры OpenGL
транслировались напрямую — GLSL->TGSI
, то сейчас это происходит как GLSL->NIR->TGSI
, что может привести к сломанной графике в приложениях. Начиная с версии MESA
23.3
TGSI
будет полностью удалён и останется только NIR
, проблема ретрансляции GLSL
должна будет исчезнуть, а вместе с ней и проблемы с графикой.
Тем не менее, в случае возникновения внезапных артефактов или подобного и в случае появления в сообщениях программы, запущенной через терминал, чего-то вроде
EE ../src/gallium/drivers/r600/r600_state_common.c:961 r600_shader_select - Failed to build shader variant (type=1) -1
прежде чем искать ошибку в оборудовании или конечной программе, попробуйте использовать переменную окружения export R600_DEBUG=nir
с заданным бекендом NIR
по умолчанию.
И противоположная ситуация: в случае проблем с NIR
, а они имеют место быть, попробуйте использовать бекенд TGSI
, пока это представляется возможным, через export R600_DEBUG=use_tgsi
.
Подробности в багтрекере MESA:
https://gitlab.freedesktop.org/mesa/mesa/-/issues/7780