August 04, 2023
As of today, NVK, the new Vulkan driver for Nvidia GPUs, has landed in the main Mesa branch and will be included as an experimental driver in the 23.3 release of Mesa. This is the culmination of over a year of work by myself (Faith Ekstrand) as well as Karol Herbst and Dave Airlie at Red Hat, and about a dozen community contributors. Special thanks also goes to Danilo Krummrich at Red Hat who has been hard at work building Nouveau kernel support for the new memory binding and execution API required by NVK.
What follows is a little Q&A to hopefully answer the most pressing questions people may have about the new driver. If you have other questions, feel free to reach out to me on Mastodon!
NVK is a new fully open-source Vulkan driver for Nvidia hardware.
We currently support Turing (RTX 20XX and GTX 16XX) and later GPUs. We plan to eventually support hardware as far back as Kepler (GeForce 600 and 700 series) but those are currently poorly tested at best and missing a few essential features.
NVK runs on the same Nouveau kernel driver as the old OpenGL drivers but it requires an entirely new userspace API. This API will be included in Linux 6.6 and later kernels. As of the writing of this post, the new API is staged in the drm-misc-next branch, awaiting the next pull from Linus.
No. Merging into Mesa/main is certainly a big milestone but NVK is nowhere near finished. It will take a long time before we get the bugs worked out and get a full feature set with reasonable performance. What it does mean is that we're pretty confident in the core of the driver and that we have a good base to build on going forward.
Absolutely! You may have to build your own kernel and Mesa but it's out there and you're more than welcome to play with it.
Yes. At this point, quite a few games have been shown running on NVK, both native and running through DXVK. We are not, however, yet to the point where you can run an arbitrary app and expect it to work properly.
NVK bugs can be filed in the Mesa issue tracker. However, right now there are enough missing features and known issues that a lot of apps won't work and we already know that. Please don't file "XYZ game doesn't play" issues just yet. We also aren't interested in issues on unsupported hardware. We already know it's broken. If there is a specific feature you know is missing or if you are reasonably sure you've found an actual driver bug, then go ahead and file an issue. We just have way more excited users than developers working on the driver and we don't want to flood the issue tracker.
If you do think you've found a legitimate bug, please provide as much information as possible in the report. Mesa git SHA, kernel version, and GPU information are all a must. If you didn't build Mesa yourself, please tell us where you got your build. If you have any hack patches or had to force-enable anything to get the app to work, provide that information as well.
Also, be patient. This is a very new driver. We aim to eventually get to the point where most apps work but it will take time. We also need to prioritize our work and do things in the order that makes sense so don't be surprised if your favorite feature doesn't get implemented as quickly as some other.
If you know how to write driver code or are able to learn, MRs are always appreciated. Now that we're no longer rebasing the main NVK branch every couple of weeks, it should be easier to have multiple developers working on the project at the same time.
If not, feel free to try out games and other apps and let us know how things are working. If you got your favorite game to play, don't be shy about it. Go ahead and brag about it on social media and tag me. We're not yet ready for a flood of game bug reports but we love seeing screenshots and videos when they do work!
We currently advertise Vulkan 1.0. We have most of the features required to support Vulkan 1.2 and many of the Vulkan 1.3 features, they're just advertised through extensions right now. This is because the order in which things got added to the Vulkan core API isn't necessarily the order it makes sense to implement them when writing a new driver from scratch. We'll hopefully be able to advertise Vulkan 1.2 or even 1.3 before too long.
No, not yet. We're still failing around 1000 Vulkan CTS tests with the current feature set. We certainly plan to fix the remaining bugs and submit conformance but it's not the highest priority right now.
Sunny Spain will have multimedia developers on speed dial next week for the 11th edition of the GStreamer Conference, taking place at the…
The world-renowned culinary scene in The City of Light will be getting a pack of different types of chefs next week for Kernel Recipes and…
Collabora is headed to Amsterdam! This year, we will be showcasing some of our recent work on the DAB protocol, as well as the software…