Исправление драйвера Radeon Vulkan в Linux увеличило и производительность до 228%

Mesa 24.3 наконец-то исправила главную проблему с драйвером RADV (Radeon Vulkan), которая приводила к снижению производительности по сравнению с фирменным драйвером AMDVLK/AMDGPU-PRO Vulkan от AMD. Этот разрыв в производительности существовал почти 2 года, когда FSR 2 был включен в играх. Он был успешно исправлен командой Linux-драйверов Valve путем простой подстройки нескольких строк кода.

Заслуга принадлежит инженеру Сэмюэлю Питуазе, который, как сообщает Phoronix, выявил проблему и устранил ее, изменив менее дюжины строк кода. Для контекста, драйвер RADV — это драйвер Vulkan с открытым исходным кодом для графических процессоров AMD для ОС Linux. Открытый исходный код и открытость для сообщества привели к его возросшей популярности среди пользователей, но проблема раньше возникала при включении FSR 2 (FidelityFX Super Resolution 2).

Производительность была низкой по сравнению с драйвером AMDGPU-Pro, который оптимизирован самой AMD. Прошло почти 2 года, но исправления не было, пока Сэмюэль не определил основную причину проблемы. Это было связано с тем, как драйвер RADV обрабатывал отбраковку примитивов с определенными характеристиками в FSR 2. Проще говоря, отбраковка — это то, как ненужные примитивы, такие как треугольники и линии, отбрасываются перед рендерингом для повышения производительности за счет экономии энергии.

С драйвером AMDGPU-Pro это легко решается, поскольку драйвер отсеивает примитивы с нулем в позиции «W». RADV, с другой стороны, не делает того же самого, что приводит к дополнительным и ненужным вычислениям, которые замедляют производительность приложений FSR 2.

Как указал Сэмюэль, внесение изменений в код AMD NIR приводит к принудительному отсечению, когда позиция W равна нулю. Это помогло драйверу RADV достичь невероятного прироста производительности в 228% на графических процессорах RDNA 2 при включении FSR 2. Это улучшение будет доступно пользователям через официальный релиз и является частью Mesa 24.3-devel.

Комментарии: 32
Ваш комментарий

Вот что значит прямые руки и растут из правильного места ! Многим разработчикам их сейчас сильно не хватает !

11

база. особенно если посмотреть видосы, как чуваки первые резики на пс1 запихивали

3

10 строк поправить и герой. два года баг висел. кто-то скажет спасибо за 2 года фризов? не, ну а чо, потом же пофиксили.

1

Ты когда-ниьудь видел сколько строк кода в драйвере? В этом разобраться крайне сложно.

5

нужны прямые руки? это к питерцам)

1

а два года на это смотреть не сложно было? или сложность только в поиске бага, а не в его терпении?

два года не могли пофиксить элементарный W-position клиппинг в шейдер пайплайне. а потом приходит один чел и решает проблему через trivial NIR transformation. и ты мне будешь рассказывать про размер кодовой базы и комплексити? любой нормальный драйвер энжинир должен уметь дебажить vertex processing chain. а эти два года симулировали kernel panic. не надо оправдывать некомпетентность размером репозитория. напомни, кстати, сколько строк было в первом линуксе? весь драйвер это копипаста.

-1

ну кстати, есть шикарные кастомные дрова на карты уровня старых gcn и polaris, которые отлично подтягивают оптимизацию, производительность и стабильность на старых картах. вот в чем сила открытого кода драйверов. которые и по сей день обновляются. у нвидии так не сделаешь, сидя, условно, на gtx660 половина(условно) игр и не запуститься, тупо ругаясь на старую версию драйвера. даже на 780ти не все запустишь. плюс фср, который дает чуть ли не третью жизнь старым картам.

8

фср - костыль, а не третья жизнь. на нвидии старьё живёт дольше без всяких кастомов.

-15

Ага, поэтому генерацию кадров владельцы старого поколения видеокарт куртки вынуждены включать через FSR, а не DLSS ;) А ты хорош)

5

ты не понимаешь разницу между темпоральным апскейлером с интерполяцией и тензорными вычислениями на специализированных CUDA ядрах. FSR - это пространственный апскейлинг с постпроцессингом, который работает на любом растеризаторе. DLSS требует тензорных операций, которые физически невозможны без специализированной микроархитектуры Turing и выше.

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

адекватные юзеры апгрейдят железо под новые технологии, а не пытаются реанимировать устаревшие GCN через костыльный ресемплинг.

-2
артефакты темпоральной реконструкции, гостинг на движущихся объектах и деградация соотношения качества/производительности на низких разрешениях - это фундаментальные проблемы AMD

Все бы хорошо, но у меня до этого была долгое время 4080 и все что ты описал есть и на DLSS + это не отменяет того факта что ты комментом выше не прав, так как владельцы 3000-ой серии не перестали включать FSR) Плюс DLSS 3 может работать на 3000-ой серии хоть и не так хорошо,со слов самой куртки, но как видим кроме как поводить по губам владельцев старых карт нвидиа больше делать ничего не захотела) И с DLSS 4 будет также)

1

в 4000 серии стоят специальные блоки для Optical Flow Accelerator, которых физически нет в 3000. это как спрашивать почему ray tracing не работает на gtx 1080. потому что нет RT ядер, очевидно же.

0

Ещё бы новый драйвер на пк Радеоны поправили. Приходится сидеть на старом январьском драйвере, ибо на новом постоянно ошибка " Ожидание отклика драйвера " RX 7800XT

1

На видеокартах Polaris только старый видеодрайвер AMD летний 2022 года нормально работает там в играх на OpenGL. На новых дровах AMD проблема с шейдерами. И то не во всех играх на OpenGL. Не только эмуляторы. И сами игры некоторые тоже. С DirectX и Vulcan всё хорошо с производительностью тоже. Проблема вполне известная. Но годами, в драйверах AMD пару лет. Почему-то её не исправляют. Закрывают на это глаза

0

у меня например была проблема с видеокартой нв 690 жтх. я хотел поиграть некую казуальную игру и у меня там были артефакты я запустил еще какуюто то игру и там были артефакты и я понял что все игры на юнити какой то старойверсии имеют эту проблему.
еще я помню кроче хотел поиграть в игру девочка и единорог. но я был не так прост как дрейк фес и у меня был радеон 4870х2 кажется икакято другая видеокарта и там были артефакты низкой точности буфера и возможно порядка сортировки буфера глубины. я поставил на игру енб игра исправилась но стала вылетать. возможно она и так вылетала.
так что наверно дело всетаки с кривыми драйверами.
еще помница нв долга не исправляла проблемсы с плх мат платами и слайчиком.

0

А тем временем Администрация команды разработчиков Linux "увольняет" по национальному признаку, а именно Руссов. Если пасспорт Российский и/или человек сам по себе Рус - его выгоняют. Блокируют все его аккаунты связанные с доступом к платформе разработчиков и всё.

Линукс стал платформой нацизма - к сожалению!

1

Скорее всего производительность увеличена в каком-то специфичном сценарии. Точно не в играх. 228% это уж слишком много. ФСР в играх столько физически не даст.

0

ничего не понятно, но очень интересно!
А можно для тупых (для меня) в каких ситуациях производительность возрастает?
На стимдеке какой-то эффект есть? Может в играх на вулкане?
Обьясните плез

-2

Включаешь FSR2 в настройках и проверяешь.

0

забыл уточнить что это для линуксоидов

1

В новости про винду ни слова...если что.

0

Ну вот, а то ноют обычно UE5 г*вно движок, г*вно движок, подождите 2 года и программисты из Индии за пачку масла тоже научатся его кодить и наконец игры на нем перестанут лагать и фризить :D

-3

UE5 и вправду г*внодвижок.

0

deadbrain те кто так говорит, потому что инструмент не виноват, если за него кривые руки берутся, тем более которым платят 3 копейки в час.

0

Ребята из АМД которые теперь не смогут продать своё новое поколение железа с +5% производительности:

-6