Компания NVIDIA продолжает демонстрировать свою приверженность открытому исходному коду и сообществу Linux, вносит важный вклад в развитие драйвера Vulkan с открытым исходным кодом NVK (NVIDIA Vulkan). На этот раз разработчик NVIDIA Артур Хьюиллет (Arthur Huillet) открыл запрос на слияние (merge request) под названием "nvk: implement conservative rasterization (all GPUs)", который реализует поддержку расширения VK_EXT_conservative_rasterization во всех графических процессорах NVIDIA, совместимых с Vulkan.
Консервативная растеризация - это техника рендеринга, которая гарантирует, что все пиксели, затронутые примитивом, будут раскрашены, даже если они находятся на границах примитива. Эта функция является частью требований для поддержки Direct3D Feature Level 12.1 в VKD3D-Proton, что позволит лучше запускать Windows-игры и приложения на Linux с использованием Vulkan.
Работа Артура Хьюиллета основана на предыдущих усилиях разработчика Бенджамина Ли (Benjamin Lee) (коммит !25668), который реализовал первоначальную версию консервативной растеризации. Однако, тот коммит содержал некоторые ошибки и был ограничен поддержкой только архитектур GPU, начиная с Volta. Артур Хьюиллет взял на себя задачу исправить ошибки и расширить поддержку консервативной растеризации на все графические процессоры NVIDIA.
Хотя, первоначальные результаты тестирования на GPU серии AD102 (архитектура Ampere) показали, что только 2,1% тестов, связанных с консервативной растеризацией, прошли успешно, а 97,9% не поддерживались, это было ожидаемо, учитывая, что функция находилась на ранней стадии внедрения.
После объединения исправлений Артура Хьюиллета и оригинального коммита Бенджамина Ли, а также тщательного тестирования, консервативная растеризация теперь полностью поддерживается во всех GPU NVIDIA, совместимых с Vulkan. Это позволит разработчикам игр и приложений, использующих Vulkan, использовать преимущества этой функции для улучшения визуального качества своих продуктов на всех совместимых GPU NVIDIA.
Вклад Артура Хьюиллета в реализацию консервативной растеризации является не единственным примером участия NVIDIA в развитии драйверов с открытым исходным кодом. Ранее уже был замечен другой разработчик NVIDIA, вносящий свой вклад в Nouveau - открытый драйвер для графических процессоров NVIDIA.
Эти события вселяют надежду на то, что NVIDIA станет более активно сотрудничать с сообществом открытого исходного кода, что в конечном итоге принесет пользу всем пользователям Linux. Если AMD, Intel и NVIDIA будут иметь хорошие драйверы с открытым исходным кодом для Linux, это может стать поворотным моментом для игр и приложений на этой платформе.
Наличие высокопроизводительных, стабильных и совместимых графических драйверов с открытым исходным кодом может значительно повысить привлекательность Linux для разработчиков и геймеров. Хотя путь к этой цели может быть долгим, каждый шаг, подобный вкладу Артура Хьюиллета, приближает нас к ней.
Сообщество Linux с нетерпением ждет дальнейших положительных изменений и вкладов от NVIDIA и других производителей аппаратного обеспечения. Эти усилия помогут создать более полную и совместимую экосистему для игр и приложений на платформе Linux, что в конечном итоге принесет пользу всем пользователям.
nvk: implement conservative rasterization (all GPUs): https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/28937
nvk: implement VK_EXT_conservative_rasterization (коммит !25668): https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25668