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.
Источник: www.playground.ru