Don't want to see articles from a certain category? When logged in, go to your User Settings and adjust your feed in the Content Preferences section where you can block tags!
We do often include affiliate links to earn us some pennies. See more here.

Danilo Krummrich who is a Red Hat display driver team Software Engineer, announced the Nova project, a Rust-based GSP-only driver for Nvidia GPUs. Nova, in the long term, is intended to serve as the successor of Nouveau for GSP-firmware-based GPUs.

Quoting his email from the dri-devel mailist

With Nova we see the chance to significantly decrease the complexity of the driver compared to Nouveau for mainly two reasons. First, Nouveau's historic architecture, especially around nvif/nvkm, is rather complicated and inflexible and requires major rework to solve certain problems (such as locking hierarchy in VMM / MMU code for VM_BIND currently being solved with a workaround) and second, with a GSP-only driver there is no need to maintain compatibility with pre-GSP code.

Besides that, we also want to take the chance to contribute to the Rust efforts in the kernel and benefit from more memory safety offered by the Rust programming language. Ideally, all that leads to better maintainability and a driver that makes it easy for people to get involved into this project.

Please look at the full email for more details on this matter.

Nova is aiming to be a modern replacement for Nouveau and focus on developing a driver from the ground without the legacy that comes with that older opensource driver, and focusing on GPUs that are newer than the RTX 2000 series which have a better GSP(GPU System Processor) support, while non-GSP GPUs were always tricky to deal with. This driver will also indirectly boost the morale of those trying to develop Rust-based drivers for Linux by providing examples for those who want to be involved in developing kernel technology using that language.

That doesn't mean Nouveau will die soon, since it will still handle older GPUs that do not rely on GSP for hardware initialization and management, and we see a loot of improvement with NVK lately.

As for today, the Nova repository is looking really active and promising although the README file states that there is still a lot to be done until this driver can be considered ready for production use.

Article taken from GamingOnLinux.com.
25 Likes
About the author -
author picture
I'm an enthusiast of Linux on Laptops and Secure Boot related stuff. Playing exclusively on Linux since 2013. Played on Wine on dates that trace back to 2008 (Diablo 2, Lineage 2...). A troubleshooter that used to work with strace and it is now working with Kubernetes...
See more from me
26 comments
Page: 1/2»
  Go to:

Okay, I'm confused here - is this redundant with NVK and what other aspect of this vs NVK that I'm not understanding that would make the project make sense as it's own thing despite the great progress that NVK has made in recent months?
nwildner Mar 26
Quoting: fenglengshunOkay, I'm confused here - is this redundant with NVK and what other aspect of this vs NVK that I'm not understanding that would make the project make sense as it's own thing despite the great progress that NVK has made in recent months?

Not redundant. It is a "replacement" (read with a grain of salt here) for the nouveau driver, but focused on GSP enabled GPUS that don't have to deal with the legacy nouveau has to implement to handle older than RTX2000 series hardware.

It is a kernel driver(dri, pci, iomem, common abstractions for hardware) and not a translation layer or 3D API whatsoever.


Last edited by nwildner on 26 March 2024 at 1:57 pm UTC
Quoting: nwildnerNot redundant. It is a "replacement" (read with a grain of salt here) for the nouveau driver, but focused on GSP enabled GPUS that don't have to deal with the legacy nouveau has to implement to handle older than RTX2000 series hardware.

It is a kernel driver(dri, pci, iomem, common abstractions for hardware) and not a translation layer or 3D API whatsoever.
Hm... and the NVK isn't a kernel driver? I think it's in Mesa, so does that mean it's the userspace driver? Sorry, really don't know about the details - all I've been hearing is about how NVK is supposed to be a replacement for Nouveau.
ToddL Mar 26
I hope no one thinks Nova means "no go" in Spanish because if they can't get their replacement working out right, then you know the name sounds appropriate. However, I'm sure in due time, they'll sort it out and hopefully, make something better than Nouveau. Now, I must be feeling old because that name reminds me of the early 2000s with trying to get those Nvidia cards working on Linux with little success.
Shmerl Mar 26
Quoting: fenglengshunHm... and the NVK isn't a kernel driver? I think it's in Mesa, so does that mean it's the userspace driver? Sorry, really don't know about the details - all I've been hearing is about how NVK is supposed to be a replacement for Nouveau.

nvk is a Vulkan implementation that uses the kernel driver, so no, it's not a kernel driver itself. So it's either nvk + nouveau or nvk + nova.


Last edited by Shmerl on 26 March 2024 at 3:21 pm UTC
Quoting: nwildner
Quoting: fenglengshunOkay, I'm confused here - is this redundant with NVK and what other aspect of this vs NVK that I'm not understanding that would make the project make sense as it's own thing despite the great progress that NVK has made in recent months?

Not redundant. It is a "replacement" (read with a grain of salt here) for the nouveau driver, but focused on GSP enabled GPUS that don't have to deal with the legacy nouveau has to implement to handle older than RTX2000 series hardware.

It is a kernel driver(dri, pci, iomem, common abstractions for hardware) and not a translation layer or 3D API whatsoever.
Nice hat!
elgatil Mar 26
Quoting: Shmerl
Quoting: fenglengshunHm... and the NVK isn't a kernel driver? I think it's in Mesa, so does that mean it's the userspace driver? Sorry, really don't know about the details - all I've been hearing is about how NVK is supposed to be a replacement for Nouveau.

nvk is a Vulkan implementation that uses the kernel driver, so no, it's not a kernel driver itself. So it's either nvk + nouveau or nvk + nova.

Or NVK + Zink, which at this point seems the efficient solution. I do not know, I cannot bring myself to be interested in this project
Quoting: elgatil
Quoting: Shmerl
Quoting: fenglengshunHm... and the NVK isn't a kernel driver? I think it's in Mesa, so does that mean it's the userspace driver? Sorry, really don't know about the details - all I've been hearing is about how NVK is supposed to be a replacement for Nouveau.

nvk is a Vulkan implementation that uses the kernel driver, so no, it's not a kernel driver itself. So it's either nvk + nouveau or nvk + nova.

Or NVK + Zink, which at this point seems the efficient solution. I do not know, I cannot bring myself to be interested in this project
I . . . didn't think Zink was a driver either?
melkemind Mar 26
View PC info
  • Supporter
Quoting: elgatil
Quoting: Shmerl
Quoting: fenglengshunHm... and the NVK isn't a kernel driver? I think it's in Mesa, so does that mean it's the userspace driver? Sorry, really don't know about the details - all I've been hearing is about how NVK is supposed to be a replacement for Nouveau.

nvk is a Vulkan implementation that uses the kernel driver, so no, it's not a kernel driver itself. So it's either nvk + nouveau or nvk + nova.

Or NVK + Zink, which at this point seems the efficient solution. I do not know, I cannot bring myself to be interested in this project

All this proves is that Free and Open Source Software has a naming problem. I still don't quite understand why people talk about Radv and amdvlk all the time but I've never found either on my AMD system. Having a bunch of names and alternate names for things just makes the barrier for entry that much harder for new users, especially for people coming over from the Steam Deck and trying Linux for the first time.
Pikolo Mar 26
[quote=Purple Library Guy]
Quoting: elgatil
Quoting: Shmerl
Quoting: fenglengshunHm... and the NVK isn't a kernel driver? I think it's in Mesa, so does that mean it's the userspace driver? Sorry, really don't know about the details - all I've been hearing is about how NVK is supposed to be a replacement for Nouveau.

nvk is a Vulkan implementation that uses the kernel driver, so no, it's not a kernel driver itself. So it's either nvk + nouveau or nvk + nova.

Or NVK + Zink, which at this point seems the efficient solution. I do not know, I cannot bring myself to be interested in this project
Stricly speaking it would be Nova + nvk + zink.
Nova controlling the GPU directly, NVK using Nova to run Vulkan on the GPU, and Zink running OpenGL on Vulkan.
nyanbinary Mar 26
AMD Rust Driver when
sarmad Mar 26
Quoting: nyanbinaryAMD Rust Driver when

Rust on its own is not enough reason to re-write the driver. Nova isn't being re-written just for the sake of writing it in Rust. If the AMD driver is already in good shape then it doesn't need to be re-written in Rust. Rust doesn't give the user any benefit, it only gives the developer the benefit of needing less effort to write good code, but that less efforts is still more efforts than not re-writing at all.
radube Mar 26
Quoting: ToddLI hope no one thinks Nova means "no go" in Spanish because if they can't get their replacement working out right, then you know the name sounds appropriate. However, I'm sure in due time, they'll sort it out and hopefully, make something better than Nouveau. Now, I must be feeling old because that name reminds me of the early 2000s with trying to get those Nvidia cards working on Linux with little success.

I suppose you are sarcastic about the "no go" driver, but just for the record to mention:

Nova means "New" (female gendered) in several Indo-european languages, same like Nouveau which means "New" (male gendered) in French.
bonkmaykr Mar 26
Lots of exciting news for GeForce this year isn't there?

I remember it was just a couple of years ago you couldn't connect more than one monitor to a Pascal card without KDE Plasma burning itself alive (in my experience). Wouldn't be shocked if we had a pretty competent, complete open source driver stack close to Radeon's within the next 4 years.
I see there is some confusion about the Nova/Nouveau + NVK + Zink/Nouveau NVIDIA driver situation.

You see, it's actually really simple.

Graphics drivers always come in pairs, you see: there's a kernel driver, and then there's a userspace driver that sits on top of the kernel driver. First, we had the Nouveau kernel driver, which was a reverse-engineered open source driver alternative to the proprietary NVIDIA driver (it does not have a name). The proprietary NVIDIA driver, to keep things simple, is both the kernel and userspace driver in one. So, by itself, the Nouveau kernel driver is not useful, which is why it needs a userspace driver. To keep things simple, it was also called "Nouveau". It handled OpenGL calls.

Many years later, NVIDIA open sourced the kernel driver of their proprietary stack, often referred to as "open kernel modules". So now they have two drivers too!

Now we have NVK, which is a userspace driver just for Vulkan. Then Zink was written (which afaik was also being used for AMD) for the OpenGL calls, but what it really does is convert the OpenGL calls to Vulkan calls, which ends up being both faster than writing a new OpenGL driver and actually faster in performance because Vulkan is apparently the panacea to almost every problem on Linux.

So you can have a few stacks:

Nouveau (kernel) + Nouveau (userspace)
Nouveau (kernel) + NVK + Zink
Nova + NVK + Zink
NVIDIA (proprietary kernel) + NVIDIA (proprietary userspace)
NVIDIA (open modules) + NVIDIA (proprietary userspace)

The open modules are also "out of tree", which means they will never be mainlined like Nouveau, so they are no easier to install than the proprietary modules, and offer the same performance.

However, be careful! You can't combine the open modules from NVIDIA with Nouveau userspace or NVK + Zink. The open kernel modules only work with the proprietary driver.

I wonder if you could combine Nouveau (kernel) with NVK and Nouveau (userspace). Food for thought!

Then there's the GSP firmware for the GPUs. This is what will allow NVK to support HDMI 2.1+, because that code is inside the firmware. I think. I don't know anymore.

I get the distinct feeling I'm missing something...

Oh, and I almost certainly got the stuff about Zink wrong. I think that had something to do with converting the OpenGL code on the Nouveau userspace driver to Vulkan or something..?


Last edited by pleasereadthemanual on 27 March 2024 at 12:51 am UTC
Pengling Mar 27
Quoting: pleasereadthemanualGraphics drivers always come in pairs, you see:
So they're like the Sith, then?
Shmerl Mar 27
Though I'd say they need part 3 with mapping that theory to practical pieces with names like amdgpu + radv or nova + nvk and so on, lol. That would help those who are fuzzy on this.

Very roughly, when you see some name just try to figure out whether it refers to the kernel or userpsace component. That would help narrow down understanding what it's for.


Last edited by Shmerl on 27 March 2024 at 1:05 am UTC
Quoting: radube
Quoting: ToddLI hope no one thinks Nova means "no go" in Spanish because if they can't get their replacement working out right, then you know the name sounds appropriate. However, I'm sure in due time, they'll sort it out and hopefully, make something better than Nouveau. Now, I must be feeling old because that name reminds me of the early 2000s with trying to get those Nvidia cards working on Linux with little success.

I suppose you are sarcastic about the "no go" driver, but just for the record to mention:

Nova means "New" (female gendered) in several Indo-european languages, same like Nouveau which means "New" (male gendered) in French.
I look forward to the eventual replacements Nuevo, Nieuw, Nou, Novu, Neu, Nua…
Eike Mar 27
View PC info
  • Supporter Plus
Quoting: pleasereadthemanualYou see, it's actually really simple.

(...writes a manual...)

Quoting: pleasereadthemanualI get the distinct feeling I'm missing something...

(Serious) question: Mesa?


Last edited by Eike on 27 March 2024 at 4:56 pm UTC
While you're here, please consider supporting GamingOnLinux on:

Reward Tiers: Patreon. Plain Donations: PayPal.

This ensures all of our main content remains totally free for everyone! Patreon supporters can also remove all adverts and sponsors! Supporting us helps bring good, fresh content. Without your continued support, we simply could not continue!

You can find even more ways to support us on this dedicated page any time. If you already are, thank you!
Login / Register