Исправление драйвера RADV обеспечивает невероятный прирост производительности на оборудовании RDNA 2 с использованием FSR 2, сокращая разрыв в производительности, существовавший в течение двух лет.
Инженер Valve исправил проблемы с драйвером RADV, переработав всего десять строк кода, чтобы обеспечить прирост производительности на 228% в играх FSR2
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. Проще говоря, отбраковка — это то, как ненужные примитивы, такие как треугольники и линии, отбрасываются перед рендерингом для повышения производительности за счет экономии энергии.
Похоже, что аппаратное обеспечение с фиксированной функцией очень медленно отсеивает примитивы с нулевым pos.w, но отсечение на основе шейдеров очень помогает.
Это устраняет огромный разрыв в производительности демоверсии FSR2 по сравнению с AMDGPU-PRO, +228% на RDNA2.
— Самюэль Питуаз (Фото: Phoronix)
С драйвером AMDGPU-Pro это легко решается, поскольку драйвер отсеивает примитивы с нулем в позиции «W». RADV, с другой стороны, не делает того же самого, что приводит к дополнительным и ненужным вычислениям, которые замедляют производительность приложений FSR 2.
Как указал Сэмюэль, внесение изменений в код AMD NIR приводит к принудительному отсечению, когда позиция W равна нулю. Это помогло драйверу RADV достичь невероятного прироста производительности в 228% на графических процессорах RDNA 2 при включении FSR 2. Это улучшение будет доступно пользователям через официальный релиз и является частью Mesa 24.3-devel.
0 Комментариев