We're hiring!
*

NVK Has landed!

Faith Ekstrand avatar

Faith Ekstrand
August 04, 2023

Share this post:

Reading time:

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!

What is NVK?

NVK is a new fully open-source Vulkan driver for Nvidia hardware.

What hardware does NVK support?

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.

What Linux kernel versions does NVK support?

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.

Does this mean NVK is finished?

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.

Can I use NVK today?

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.

Do any games work?

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.

Where do I file bugs?

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.

How do I help?

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!

What Vulkan version does NVK support?

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.

Is NVK a conformant Vulkan implementation?

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.

 

Comments (0)


Add a Comment






Allowed tags: <b><i><br>Add a new comment:


 

Search the newsroom

Latest News & Events

Academically inclining at NeurIPS 2024

09/12/2024

Collabora will be at NeurIPs this week to dive into the latest academic findings in machine learning and research advancements that are…

Apertis v2024: the new Bookworm-based release for industrial embedded devices

05/12/2024

Now based on Debian Bookworm, Apertis is a collaborative OS platform that includes an operating system, but also tools and cloud services…

Initial upstream support for the Rockchip RK3576

03/12/2024

Initial support for Rockchip's RK3576, a new SoC introduced earlier this year, has landed in Linux kernel 6.12. With the main target being…

Open Since 2005 logo

Our website only uses a strictly necessary session cookie provided by our CMS system. To find out more please follow this link.

Collabora Limited © 2005-2024. All rights reserved. Privacy Notice. Sitemap.