Исправление драйвера 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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Комментарий удален

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

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