NVK, an open-source Vulkan driver for NVIDIA graphics cards, has been unveiled

Collabora has released NVK, a new open source driver for Mesa implementing the Vulkan graphics API for NVIDIA graphics cards. The driver is written from scratch using official header files and open kernel modules published by NVIDIA. The driver code is open source under the MIT license. The driver only supports GPUs based on Turing and Ampere microarchitectures released since September 2018.

The project is being developed by a team that includes Karol Herbst, Nouveau developer at Red Hat, David Airlie, DRM subsystem maintainer at Red Hat, and Jason Ekstrand, active Mesa developer at Collabora. When developing a new driver, the basic components of the Nouveau OpenGL driver are used in places, but due to the differences in the names in the NVIDIA header files and the reverse engineering names in Nouveau, direct code borrowing is difficult and for the most part it was necessary to rethink many things and implement them with zero.

Development is also underway with an eye to creating a new reference Vulkan driver for Mesa, whose code can be borrowed when creating other drivers. To do this, when working on the NVK driver, we tried to take into account all the available experience in developing Vulkan drivers, maintain the code base in an optimal form and minimize the transfer of code from other Vulkan drivers, doing what should be done for optimal and high-quality work, and not blindly copying what is done in other drivers.

The NVK driver has only been under development for a few months, so its functionality is limited. The driver successfully passes 98% of the checks when running 10% of the tests from the Vulkan CTS (Compatibility Test Suite). In general, driver readiness is estimated at 20-25% of the functionality of ANV and RADV drivers. In terms of hardware support, the driver is currently limited to cards based on Turing and Ampere microarchitectures. Work is underway on patches to support Kepler, Maxwell and Pascal GPUs, but they are not ready yet.

In the long term, the NVK driver for NVIDIA graphics cards is expected to reach a level of quality and functionality similar to the RADV driver for AMD cards. After the NVK driver is ready, the shared libraries created during its development can be used to improve the Nouveau OpenGL driver for NVIDIA video cards. The possibility of using the Zink project to implement a full-fledged OpenGL driver for NVIDIA video cards that works through call translation to the Vulkan API is also being considered.

Source: opennet.ru

Add a comment