- Jason Ekstrand from Collabora has announced a new open-source Vulkan driver to be shipped with Mesa for Nvidia hardware.
- The new driver was almost written from scratch, just having a little bit of copy-paste from Nouveau, which is a reverse-engineered open-source Nvidia driver.
- The development of the NVK driver is currently going pretty well; they have managed to pass 98% in Vulkan CTS with a very basic feature set.
Nvidia hardware drivers for Linux have been a bit problematic for a while, thanks to the company’s preferences for open-source. However, Nvidia decided to publish open-source GPU kernel modules earlier this year. We had the reverse-engineered Nouveau driver option as well, but it is buggy and missing some important features as well. Additionally, Nouveau does not support all of the Nvidia hardware. It was quite certain that Nvidia hardware needed a new open-source driver, and Jason Ekstrand from Collabora delivers some good news about it.
NVK – the new open-source Nvidia Vulkan driver
Jason Ekstrand has announced that he has been working on the brand new, open-source Vulkan driver for Nvidia GPUs in Mesa, named NVK. NVK was written from scratch almost entirely except for a little bit of copy-pastes from Nouveau driver and by using the new official headers from Nvidia. According to the post, Ekstrand expects NVK to be what RADV means for AMD Radeon GPU hardware, for Nvidia-based hardware of course.
The development of NVK is ongoing for only a few months, yet the team behind Ekstrand managed to take huge steps in the development. Currently, the driver can pass 98% of the Vulkan CTS with a very basic feature set. NVK will support the newer cards as well; Ekstrand state that they are targeting Turing (RTX 2000 series) and later graphics cards. He said they will support Ada (RTX 4000 series) and they have patches for Kepler (GTX 600 and some of GTX 700 series), Maxwell (some of GTX 700, GTX 800M, and GTX 900 series), and Pascal (GTX 1000 series) cards.
NVK driver will be upstreamed into Mesa later because they need a new kernel uAPI to support Vulkan properly and the developers want to avoid supporting Nouveau uAPI for the next five years. Currently, the driver is available for building and trying. But you should be aware that it is in alpha quality.
Additionally, you can also support the development of NVK by contributing. You can find and file merge requests by following the link below: