Найти тему
OVERCLOCKERS.RU

Как разработчики доломали llvmpipe в составе Mesa3D, или почему Open Source нежизнеспособен

Что за проект Mesa3D? Mesa3D это свободная реализация таких графических API как OpenGL, Vulkan и т.п.:

-2

И как сказано в кратком описании официального веб сайта - проект Mesa официально поддерживается компанией AMD...

Ну поддерживается Mesa компанией AMD, что такого? А я скажу что это плохо, очень плохо! Ведь за что бы AMD не бралась - всё получается кривым мусором... AMD не способна даже адекватные автономные установочные пакеты драйверов для своих видеокарт выпустить под Linux, кормят пользователей убогими мета пакетами, что непригодны для установки без быстрого и стабильного доступа к интернету, а ещё в два счёта могут привести к такому явлению как "ад зависимостей":

-3

Да и вырезание функционала из драйверов обычная практика у AMD, я ещё припомню принудительно отключенный OpenCL для Radeon HD 5000-6000 в драйвере Crimson, и принудительно отключенные асинхронные вычисления для видеокарт GCN 1.0 (HD 7750/7850 и их ребренды), не путать с GCN 1.1 (HD 7950/7970), и это только навскидку...

-4

А потом у людей вот такое дерьмо в играх происходит, спасибо AMD за "качественные" драйверы, что даже в среде Linux являются кривым мусором:

-5

Но вернёмся к Mesa3D, ранее уже было выяснено, что Mesa3D до версии 21.3.0 прекрасно работала, а после начался откровенный треш и угар:

-6

Но сейчас я обратил внимание на тот факт, что AMD взялась за проект Mesa3D, и теперь эта вся ситуация выглядит не такой уж и странной, ведь за что бы AMD не бралась...

Как думаете, у разработчиков Mesa3D прибавилось ума при официальной поддержке AMD? Взялись за голову и начали чинить то, что наглым образом поломали? Конечно же нет! Они просто доломали, что и так было поломано!

Причём помимо драйвера llvmpipe они умудрились ещё сломать и драйверы softpipe/zink!

-7

Это так в духе AMD... Ну да ладно, я обычно не привык всецело полагаться на слова, даже если они прописаны в известном репозитории, потому решил проверить, действительно ли разработчики Mesa3D при официальной поддержке AMD окончательно доломали что и так едва работало начиная с Mesa3D версии 21.3.0.

Разворачиваю Windows 7 в виртуальной машине, ибо моя цель - драйвер llvmpipe, копирую ChimbaBench и игру SuperTuxCart:

-8

Подготавливаю BAT файлы, в которых прописываю переменную GALLIUM_DRIVER=llvmpipe, без этого Mesa3D может что угодно творить на своё усмотрение:

-9

Первым делом пробую запускать приложения без Mesa3D, ожидаемо ChimbaBench не запустился:

-10

А вот SuperTuxCart запустился, правда поругался на отсутствие драйвера видеокарты, судя по всему в этой игре уже встроен программный растеризатор, но справляется со своей работой он паршиво, мини карту вообще разнесло на четверть экрана:

Вот так должна выглядеть игра с правильно работающим драйвером:

-12

Ну да ладно, пора забросить файлы Mesa3D, и тут вспомнил, что не выйдет к батнику подсунуть библиотеки, нужно к исполняемому файлу подбрасывать, потому перешёл в папку с исполняемым файлом игры:

-13

Копирую библиотеки 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.

-21