The Khronos Group, which develops graphics standards, has recognized the full compatibility of the open NVK driver with the Vulkan 1.4 specification on systems with NVIDIA GPUs based on the Maxwell (GTX 700/800/900), Pascal (GTX 1000), and Volta (TITAN V) microarchitectures. The driver successfully passed all tests from the CTS (Khronos Conformance Test Suite) and is included in the list of certified drivers. Obtaining certification allows for official claims of compatibility with graphics standards and the use of associated Khronos trademarks.
Starting with Mesa 25.1, the NVK Vulkan driver will be used by default for NVIDIA Maxwell, Pascal, and Volta GPUs. In Mesa 25.2, OpenGL support for the specified GPUs will be switched by default from the Nouveau driver to Zink in conjunction with the NVK Vulkan driver. Zink provides an OpenGL 4.6 implementation on top of Vulkan, enabling hardware-accelerated OpenGL on devices that support the Vulkan API. Zink's performance is close to that of native OpenGL implementations.
Previously, NVK's compatibility with Vulkan 1.4 was only ensured for new NVIDIA GPUs based on Turing (GeForce GTX 16xx, RTX 20xx, and Quadro RTX series), Ampere (GeForce RTX 30xx and RTX A2000/4000/5000/6000 series), and Ada (GeForce RTX 4xxx, RTX 4000 SFF, RTX 4xxx/5000/6000 Ada series). Work is underway to add support for GPUs based on the Kepler and Fermi microarchitectures to NVK, but their support will be limited to Vulkan 1.2 at most due to hardware constraints.
The NVK driver was built from scratch by a team that includes Karol Herbst (Nouveau developer at Red Hat), David Airlie (DRM subsystem maintainer at Red Hat), and Jason/Faith Ekstrand (active Mesa developer at Collabora). In creating the driver, the developers used official header files and open kernel modules released by NVIDIA. The NVK code occasionally utilized basic components from the OpenGL Nouveau driver, but due to differences in naming between NVIDIA's header files and those from Nouveau, obtained through reverse engineering, direct code borrowing was complicated, and in most cases, many aspects had to be rethought and implemented from scratch.
Development was carried out with the aim of creating a new reference Vulkan driver for Mesa, the code of which can be borrowed when creating other drivers. For this, while working on the NVK driver, we tried to consider all existing experience in Vulkan driver development, maintain the codebase in optimal condition, and minimize code transfer from other Vulkan drivers, doing what is necessary for optimal and quality performance rather than blindly copying how it is done in other drivers.
Source: opennet.ru
