NVK, an open driver for NVIDIA graphics cards, supports Vulkan 1.0

The Khronos consortium, which develops graphics standards, has recognized the full compatibility of the open NVK driver for NVIDIA video cards with the Vulkan 1.0 specification. The driver has successfully passed all tests from the CTS (Kronos Conformance Test Suite) and is included in the list of certified drivers. Certification has been completed for NVIDIA GPUs based on the Turing microarchitecture (TITAN RTX, GeForce RTX 2060/2070/2080, GeForce GTX 1660, Quadro RTX 3000-8000, Quadro T1000/T2000). The test was performed in an environment with the Linux kernel 6.5, X.Org X Server 1.20.14, XWayland 22.1.9 and GNOME Shell 44.4. Obtaining the certificate allows you to officially declare compatibility with graphics standards and use the associated Khronos trademarks.

The NVK driver was built from scratch by a team including Karol Herbst (Nouveau developer at Red Hat), David Airlie (DRM maintainer at Red Hat), and Jason Ekstrand (active Mesa developer at Collabora). When creating the driver, the developers used official header files and open kernel modules published by NVIDIA. The NVK code used some basic components of the Nouveau OpenGL driver in some places, but due to the differences in the names in the NVIDIA header files and the reverse-engineered names in Nouveau, direct borrowing of the code is difficult and for the most part many things had to be rethought and implemented from scratch .

Development was carried out with an eye to creating a new reference Vulkan driver for Mesa, the code of which could be borrowed when creating other drivers. To do this, when working on the NVK driver, they tried to take into account all the existing experience in developing Vulkan drivers, maintain the code base in optimal form and minimize the transfer of code from other Vulkan drivers, doing as it should be for optimal and high-quality work, and not blindly copying how done in other drivers. The driver is already included in Mesa, and the necessary changes to the Nouveau DRM driver API are included in the Linux 6.6 kernel.

Among the changes in the announcement, Mesa also notes the adoption of a new backend compiler for NVK, written in the Rust language and solving problems in the old compiler that interfered with the passage of Kronos texts, as well as eliminating some fundamental limitations of the architecture that could not be corrected without a complete rework of the old compiler. Among the plans for the future, the addition of GPU support based on the Maxwell microarchitecture and the implementation of full support for the Vulkan 1.3 API are mentioned in the new backend.

Source: opennet.ru

Add a comment