Деградация AMD как производителя видеокарт и почему у Radeon нет потенциала - Часть 4

ATI (с 2006 года AMD) выпускала графические ускорители с 1986 года, однако до сих пор лидером в области заслуженно является NVIDIA, первые видеокарты которой появились лишь в 1995 году.
3 июля 2024, среда 10:17
Hard-Workshop для раздела Блоги

К чему такое краткое описание? А к тому, что ATI/AMD до сих пор не смогли выпустить ничего действительно качественного из видеокарт, вечно какие-то проблемы на ровном месте и урезание функционала...

Деградация AMD как производителя видеокарт и почему у Radeon нет потенциала:

- Часть 1

- Часть 2

- Часть 3

И вот, пришло время продолжить цикл статей про деградацию AMD как производителя видеокарт, и пусть фанаты "красного лагеря" верещат хоть на весь мир, мол, всё неправда, автор проплачен и т.п. бред...

Сейчас мы будем смотреть в лицо фактам, а не каким-то там воплям в стиле - "у всех всё нормально, просто руки не руки, мозги не мозги" и т.п.

-

OpenGL

Начнём с поверхностной оценки, с количества расширений OpenGL, сразу замечу, WGL - расширения только для Windows, GLX - только для Linux (X Server):

Что можно сразу отметить? Правильно, феноменальную стабильность NVIDIA, ведь как было 389 расширений GL, так и осталось, даже несмотря на работу через Wine Proton, только в 555 версии драйвера добавили какое-то одно расширение, но это посмотрим позже.

Насчёт WGL расширений ничего не скажу, ибо актуальная информация с GTX 1070 была собрана в среде Linux, а через Wine Proton доходит до GPU Caps Viewer всего 18 расширений, но GLX расширений 33 штуки, что соотносится с количеством WGL расширений в 2021 году.

Судя по этой поверхностной информации, NVIDIA ничего не потеряла со временем в плане OpenGL, а то и набрала нового, но что там у AMD... Да ничего нового у "красных", с драйверами 2021-2022 годов творится какой-то хаос, то удаляют расширения, то добавляют новые, как говорится - тяп ляп и в продакшн.

Безусловно, расширения могут зависеть от самих видеокарт, но как объяснить тот факт, что гораздо более новая RX 6900 XT с драйверами 2024 года имеет всего 291-292 расширения GL? Даже у RX 560 в 2021 году было 302 расширения, неужели новые видеокарты AMD настолько говно, что в плане функционала уступают какой-то там старой RX 560? Или может дело в драйверах таки...

Про RX 5600M в среде Linux с AMDGPU драйвером (Mesa 23.1, 2023 год) я вообще молчу, там полное фиаско, всего 233 расширения GL, это просто позор какой-то, ибо даже у древней GTX 460 в 2011 году было целых 250 расширений GL, хотя и версия всего 4.1:

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

Хотя я и сам постоянно сталкивался с проблемами в среде Linux, в любой момент могло залить монитор артефактами и система зависала, даже если карты полностью исправны, разумеется, такое происходило только когда в слот PCI-E установлено AMD вместо видеокарты, хорошо что сейчас у меня NVIDIA, и такого дерьма не происходит на ровном месте:

Я уже молчу о проблемах переключения GPU в ноутбуках если один из чипов (или оба) от AMD, например процессор AMD Ryzen нагадил своей встроенной графикой, потому я 10 раз подумаю перед выбором ноутбука, в котором есть хоть что-то от AMD, в приоритете будет Intel+NVIDIA, без вариантов, настолько AMD меня достала своими кривыми поделками...

Ну да ладно, пора бы перейти к расширенному сравнению возможностей OpenGL.

-

--

OpenGL - расширенное сравнение

Начнём.

Драйверы NVIDIA, как всегда, сама стабильность и "база", практически все возможности сохранились со времён 2021 года, ну разве что Geometry Shader Texture Units имеют значение 0 в среде Linux, но это скорее всего проблема Wine Proton, а не драйвера, такое уже бывало с OpenCL.

А вот AMD традиционно пляшет как попало, причём драйвер AMDGPU / MESA 23.1 является самым ущербным из всех...

Можно конечно пытаться списывать все проблемы на Wine Proton, якобы из-за него у AMD драйверов под линуксом всё намного хуже, чем под Windows, но с драйвером NVIDIA практически всё нормально даже при работе через Wine Proton, так что аргументы вроде "это всё из-за wine" автоматически пролетают мимо:

Да, нулевой "Geometry Shader Texture Units" в среде Linux можно списать на проблемы Wine Proton, и всё на этом собственно.

Особо важный для игр параметр "Max Texture Size" у AMD традиционно остаётся на уровне 16384 - а это проблемы с HD текстурами в Minecraft, да и в любой другой игре, что попытается использовать текстуру более 16384 по одной из сторон, у NVIDIA этот лимит на уровне 32768.

Почему это проблема для AMD? Ведь никто особо не делал 16384 текстуры для Minecraft, это чистое безумие ведь! А дело в том, что Minecraft раньше использовал атлас текстур, т.е. на одном изображении много текстур, и это становилось проблемой для AMD.

Раньше никто особо не заботился о меньшинстве владельцев видеокарт AMD, и создатели текстур нередко выходили за лимит 16384 по одной из сторон атласа, что было занозой в заднице у владельцев Radeon и приводило к падению игры, ведь драйвер AMD не способен обработать такие размеры, обычно лимиты превышались текстурой анимации воды и лавы уже при размере 1024х1024, ну а владельцы видеокарт NVIDIA особо не парились, ибо NVIDIA переваривала всё что подавали:

Параметр "Max Viewport Size" у AMD так же на уровне 16384, когда у NVIDIA все 32768, проще говоря - AMD не сможет прыгнуть по разрешению экрана/рендера выше, чем 16384х16384, а вот NVIDIA сможет без каких-либо изменений по лимитам.

Что до RX 6900 XT, тут отмечу снизившийся размер "Max Varying Float" до 64, так же "Vertex / Fragment / Geometry Uniform Components" понизились с 16384 до 8000, последнее всё равно больше, чем у NVIDIA, но всё же деградация на лицо, причём неуклюжая (почему не 8192 а 8000? Лень было нажать две кнопки?).

Хотя увеличились "Vertex / Fragment / Geometry Bindable Uniforms" до 36, но даже не знаю, радоваться этому или как вообще, ведь у NVIDIA всего 14, и хватает, лучше бы увеличили максимальный размер текстур, гораздо больше реальной пользы было бы.

Ещё вопросы вызывает максимальное количество динамических источников света (Max Dynamic Lights), у RX 5600M / Vega 8 / RX 6900 XT их вообще 0, хотя с драйвером AMDGPU традиционно 8 штук, как и положено, в общем странный момент.

Точно, совсем забыл, может оно действительно никому не нужно было, но AMD потеряла формат сжатия текстур "ATI 3Dc", а потом человек пытается поиграть в какую-нибудь игру, использующую данное расширение при обнаружении "родной" видеокарты, и благополучно упадёт с ошибкой...

Орать на разработчиков игры, чтобы бежали переписывать всё под новые драйверы AMD? Кому оно надо? Заниматься этим мракобесием характерным для вечно недоразвитых и кривых линуксов, когда нужно постоянно всё переписывать под новые версии зависимостей... Да и не факт, что разработчики вообще помнят о той самой игре, что поломалась благодаря обрезке функционала в драйверах.

Большинство игр просто разработано и работают благодаря тому, что Microsoft до последнего старается не ломать обратную совместимость своих ОС, как и NVIDIA, до сих пор поддерживает даже очень старый функционал, пока AMD всё ломает направо и налево.

Ладно, что там дальше... Ах, да, расширения GL нужно сравнить, но боюсь это будет неадекватных размеров таблица, что же делать...

Точно, нужно найти расширение, что было добавлено в 555 драйвере NVIDIA, и вот оно, расширение "GL_NV_gpu_program_multiview":

Судя по всему, это расширение появилось ещё в 551 драйвере Windows и 550.40.55 Linux, хотя у меня сейчас 550.54.15 Linux версия драйвера, и этого расширения нет... Наверное просто неточность в посте на форуме:

Ещё посмотрим на новое расширение в драйвере AMD 24.6.1, это "GL_EXT_shader_image_load_formatted":

Оно кстати есть среди расширений драйвера NVIDIA 550 версии, и оно есть даже в драйвере NVIDIA 461.40! Да уж... Получается AMD только в последнем драйвере 24.6.1 (2024 года) добавили расширение, которое уже было и поддерживалось драйверами NVIDIA аж в 2021 году...

Как минимум три года понадобилось AMD, чтобы добавить это несчастное расширение, уже давно присутствующее в драйверах NVIDIA... Не знаю что тут сказать, у меня нет слов.

Хотя я тут подумал, а почему бы не поискать в целом по расширению? И да, оно есть только в отчётах на GTX 1070 с драйверами 2021 и 2024 года, в самом последнем драйвере 24.6.1 с RX 6900 XT и в драйвере AMDGPU/MESA 23.1 с RX 5600M, всё, больше нигде не нашлось:

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

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

-

OpenGL - расширения

Отсортировал значит расширения GL, и получилась следующая картина:

Общие для всех расширения перенёс в отдельную колонку, там нечего смотреть.

Теперь посмотрим на расширения "GL_ARB"... И первое, что бросается в глаза, это стабильность драйверов NVIDIA, ни одного расширения из этой группы не было удалено с 2021 по 2024 год, и добавлено тоже.

А вот у AMD настоящая свистопляска, в 2021 году было 34 расширения, в 2022 году добавили одно, и стало 35 расширений, в 2024 году стало 40 расширений, однако есть нюансы...

В общей сложности с 2022 по 2024 год AMD потеряла 5 расширений GL_ARB, зато добавили 10 расширений, только 8 из добавленных расширений уже существовали в драйвере NVIDIA 2021 года, то есть из действительно новых расширений добавили только два - "GL_ARB_texture_multisample_no_array" и "GL_ARB_transform_feedback".

Конечно, если смотреть только на количество расширений, можно сказать, мол, у RX 6900 XT с драйвером 2024 года на 5 расширений больше стало, чем было у видеокарт с драйверами 2022 года! Но проблема в том, что добавили на самом деле 10 расширений, и самое страшное в этой ситуации - 5 потерянных расширений, что могли использоваться в каких-либо играх/приложениях...

Про расхваленный "красными" фанатами драйвер AMDGPU / MESA 23.1 в среде Linux я вообще молчу, это тотальное днище, увы.

Далее идёт группа "GL_EXT", и тут тоже много интересного можно заметить:

Для начала отметим стабильность драйверов NVIDIA, только 2 расширения зависимых от платформы (Windows / Linux) претерпели изменения, в остальное железобетонная стабильность, собственно именно поэтому большинство ориентируется на NVIDIA при разработке софта и игр.

У AMD тем временем классический хаос, расширений вроде и прибавилось на две штуки по отношению к драйверам 2022 года, но на самом деле драйвер AMD 2024 года потерял целых 3 расширения...

AMDGPU / MESA 23.1 традиционно на дне в плане функционала, ничего нового, впрочем, оно сразу было ясно, что встроенные в линуксы драйверы AMD - мусор.

Дальше пойдут GL_NV, GL_NVX и прочее:

Тут NVIDIA уже удалила 3 расширения NVX, но добавила 5 расширений NV, в остальном сама стабильность (одно расширение доступное только для Windows не считаем).

Тем временем у AMD просто хаос и неразбериха, да, в драйвере 2024 года добавили 1 расширение NV, но потеряли 4 расширения... Ну а в зоне GL_KHR "красные" в 2024 году наконец догнали NVIDIA 2021 года, но смотря на всё остальное - вряд ли это можно назвать прогрессом...

Остались только GL_ATI / GL_AMD расширения, за NVIDIA всего одно уникальное расширение, но поддерживается испокон веков, оно же не поддерживается линуксоидными AMDGPU / MESA 23.1, потому не попало в список общих поддерживаемых расширений:

А вот у AMD опять всё очень неоднозначно, и это мягко говоря...

Драйверы AMD 2024 года деградировали настолько, что это заметно невооружённым глазом, в плане поддержки расширений GL_AMD новые драйверы AMD едва лучше ущербных AMDGPU / MESA 23.1, тут и сказать больше нечего, большинство функционала нещадно вырезано и потеряно, и если какой-то безумный разработчик игр успел задействовать вырезанные в 2024 году расширения, чтобы "оптимизировать игру под AMD", ну, моё ему сочувствие, больше нечего сказать.

-

--

---

Заключение

Что можно сказать про драйверы AMD на основе имеющихся данных? Правильно - хаос и недоразвитость.

Меня всегда забавляли люди говорящие что-то вроде "...просто не оптимизировали игру под AMD...", знакомая фраза, не правда ли?

Теперь вопрос! Как оптимизировать игру под AMD, если сама AMD постоянно кромсает свои драйверы, и ломает уже существующий функционал? Вот кто-нибудь смог бы построить дом на болоте глубиной 5 километров, которое состоит из нестабильных кочек, что постоянно проваливаются в глубину, а потом всплывают где попало? Чисто технически это можно конечно сделать, будет очень сложно и дорого, придётся заблокировать "всплывающие кочки" реализовав свою собственную стабильную платформу, но нужно ли оно разработчикам игр? Оптимизировать игры под вечно нестабильную и недоразвитую AMD? Я вот не вижу смысла это делать.

А ведь испокон веков ругали AMD за кривые драйверы, и жаловались на то, что игры перестают работать с новыми версиями драйверов, но AMD, судя по всему, плевать хотела на пользователей, иначе драйвер 2024 года не потерял бы функционал относительно драйверов 2021-2022 года.

Я искренне рад тому, что в 2020 году предпочёл купить для использования GTX 1070 вместо RX 580-590, иначе сейчас бы кусал локти с Radeon и танцевал с шаманским бубном вместо того, чтобы просто играть и использовать софт, например нейронные сети, ведь когда я генерировал изображения - владельцы AMD могли только слюни распускать, рассказывая сказки о том, какие у них прекрасные драйверы, а видеокарты вообще "на вырост" с "потенциалом", нужно просто немного подождать, ага...

Знаете где я видел потенциал видеокарт AMD? Не скажу! Это будет слишком неприлично.

А ведь кто-то скажет, мол, "да кому вообще нужные старые расширения?", или, что всякие Ray-Tracing это фигня, и вообще не нужно (непонятно ещё как это относится к сравнению драйверов), просто потому что AMD до сих пор не осилила эти технологии по-человечески... Так вот, можно ли сделать отражения без Ray-Tracing технологий нынешних? Безусловно можно, вспомните тот же Doom 3 и Blood Rayne 2, но никто не говорил, что это было легко сделать...

Ну а сейчас вот, пожалуйста, слева Ray-Tracing, справа... Ну как получилось у разработчиков:

Кто-то скажет, что во втором случае более мягкие отражения и всё такое, и кому-то даже понравится, но не мне, ибо я прекрасно вижу в намыленном SSR тянущиеся шлейфы от объектов, да и сами отражения неправильные по своей сути.

А если говорить относительно работы драйверов, тут всё очевидно, я и без Ray-Tracing прекрасно буду себя чувствовать, если производитель видеокарты обеспечит меня нормальными и функциональными драйверами, на которые действительно можно будет положиться при разработке чего-либо, и не бояться, что через год или два какая нибудь AMD решит всё поломать, просто потому что якобы "устарело".

Ладно, пора заканчивать.

Благодарю за внимание, больше интересных статей в блоге Hard-Workshop.