Что за проект Mesa3D? Mesa3D это свободная реализация таких графических API как OpenGL, Vulkan и т.п.:
И как сказано в кратком описании официального веб сайта - проект Mesa официально поддерживается компанией AMD...
Ну поддерживается Mesa компанией AMD, что такого? А я скажу что это плохо, очень плохо! Ведь за что бы AMD не бралась - всё получается кривым мусором... AMD не способна даже адекватные автономные установочные пакеты драйверов для своих видеокарт выпустить под Linux, кормят пользователей убогими мета пакетами, что непригодны для установки без быстрого и стабильного доступа к интернету, а ещё в два счёта могут привести к такому явлению как "ад зависимостей":
Да и вырезание функционала из драйверов обычная практика у AMD, я ещё припомню принудительно отключенный OpenCL для Radeon HD 5000-6000 в драйвере Crimson, и принудительно отключенные асинхронные вычисления для видеокарт GCN 1.0 (HD 7750/7850 и их ребренды), не путать с GCN 1.1 (HD 7950/7970), и это только навскидку...
А потом у людей вот такое дерьмо в играх происходит, спасибо AMD за "качественные" драйверы, что даже в среде Linux являются кривым мусором:
Но вернёмся к Mesa3D, ранее уже было выяснено, что Mesa3D до версии 21.3.0 прекрасно работала, а после начался откровенный треш и угар:
Но сейчас я обратил внимание на тот факт, что AMD взялась за проект Mesa3D, и теперь эта вся ситуация выглядит не такой уж и странной, ведь за что бы AMD не бралась...
Как думаете, у разработчиков Mesa3D прибавилось ума при официальной поддержке AMD? Взялись за голову и начали чинить то, что наглым образом поломали? Конечно же нет! Они просто доломали, что и так было поломано!
Причём помимо драйвера llvmpipe они умудрились ещё сломать и драйверы softpipe/zink!
Это так в духе AMD... Ну да ладно, я обычно не привык всецело полагаться на слова, даже если они прописаны в известном репозитории, потому решил проверить, действительно ли разработчики Mesa3D при официальной поддержке AMD окончательно доломали что и так едва работало начиная с Mesa3D версии 21.3.0.
Разворачиваю Windows 7 в виртуальной машине, ибо моя цель - драйвер llvmpipe, копирую ChimbaBench и игру SuperTuxCart:
Подготавливаю BAT файлы, в которых прописываю переменную GALLIUM_DRIVER=llvmpipe, без этого Mesa3D может что угодно творить на своё усмотрение:
Первым делом пробую запускать приложения без Mesa3D, ожидаемо ChimbaBench не запустился:
А вот SuperTuxCart запустился, правда поругался на отсутствие драйвера видеокарты, судя по всему в этой игре уже встроен программный растеризатор, но справляется со своей работой он паршиво, мини карту вообще разнесло на четверть экрана:
Вот так должна выглядеть игра с правильно работающим драйвером:
Ну да ладно, пора забросить файлы Mesa3D, и тут вспомнил, что не выйдет к батнику подсунуть библиотеки, нужно к исполняемому файлу подбрасывать, потому перешёл в папку с исполняемым файлом игры:
Копирую библиотеки Mesa3D 24.0.8, запускаю игру и получаю зависание. Ничего нового, драйвер llvmpipe так никто и не удосужился починить со времён версии 21.3.0:
Mesa3D версии 24.1.0 - всё то же самое:
Переходим к ChimbaBench с Mesa3D 24.1.0, и в консоли ошибка "Error initializing GLAD", таки разработчики при поддержке AMD действительно доломали что и так едва работало:
Удаляю самую новую версию библиотек и копирую Mesa3D 24.0.8, с ней ChimbaBench запустился, однако на тесте GPU Heavy зависает:
Разумеется с кривой Mesa3D разрабатываемой при поддержке AMD тест заработает, если отключить анизотропную фильтрацию, что значит поломали нечто связанное с анизотропией, но сути это не меняет:
Суть в том, что куда AMD не сунет свой нос - всё поломают.
А потом некоторые жалуются, почему это многие не любят AMD как производителя "железа" и драйверов... Хотя если подумать, в Open Source и без AMD вечно всё ломают.
Кстати, там же драйвер zink ещё поломали... Ладно, его всё равно в виртуальной машине не выйдет проверить, так что на этом закончим.
Хотя постойте, я же драйвер softpipe не проверил! Проверяю... И да, его тоже поломали, причём как в Mesa3D 24.1.0, так и в 24.0.8:
Увы, но разработчики Mesa3D при поддержке AMD только деградируют со временем, иначе я не могу это всё назвать.
Стоит ли говорить о жизнеспособности вещей, которые постоянно ломают и не ремонтируют...
Ну и конечно запускаю нативную версию игры в среде Linux со встроенной Mesa3D 23.1.2, хоть версия и не самая новая, но проблеме тоже подвержена, игра зависает на компиляции шейдеров, так что сказать что проблема только в Mesa скомпилированной под Windows уже не выйдет в попытках оправдать кривой хлам:
Собственно это неудивительно, что Mesa везде кривая, и в среде Windows, и в среде Linux, проект то один и тот же...
Благодарю за внимание, больше интересных статей в блоге Hard-Workshop.