Check out our Monthly Survey Page to see what our users are running.
We do often include affiliate links to earn us some pennies. See more here.

Nova, a Rust-based Linux driver for NVIDIA GPUs announced

By - | Views: 48,473

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 and 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: «3/3
  Go to:

Quoting: Eike
Quoting: pleasereadthemanualYou see, it's actually really simple.

(...writes a manual...)


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

(Serious) question: Mesa?
Probably!
benstor214 Mar 28
View PC info
  • Supporter
Ok, gentlemen! Let’s have at it: What’s mesa? (serious question)
Eike Mar 28
View PC info
  • Supporter Plus
Quoting: benstor214Ok, gentlemen! Let’s have at it: What’s mesa? (serious question)

... and is it using Nouveau? Or is Nouveau a part of it?
benstor214 Mar 28
View PC info
  • Supporter
Are you saying that I am off topic? Rude!
Eike Mar 28
View PC info
  • Supporter Plus
Quoting: benstor214Are you saying that I am off topic? Rude!

Erm?!? No, not at all, my question was a serious one!

Man, how little my knowledge about all this is...
Quoting: Eike
Quoting: benstor214Are you saying that I am off topic? Rude!

Erm?!? No, not at all, my question was a serious one!

Man, how little my knowledge about all this is...

All good! (please note, I'm not an expert and haven't messed with anything GPU releated, this is just by doing some brief research on the internet)

Mesa is an open source implementation of OpenGL, Vulkan and other GPU APIs like Video Encode and Decode via "VDPAU" and "VA-API" or compute. It resides at the user level and provides a vendor neutral implementation of these APIs, plus provides various collections of tools.

However to do this it has drivers specific for each vendor to handle stuff like Vulkan, this is where projects like NVK come in. They implement a way of handling Vulkan instructions then passing it to the kernel (which will then pass to the kernel driver) and does things like Shader Compilation (which is typically hardware specific).

A Kernel Driver like Nova handles the linux kernel interaction with the GPU, the loading of firmware, and provides instructions to that firmware and from it. It also talks to the Mesa Driver.

Basically the idea here is to make sure NVK and Nova work on new GPUs as ideally as possible without the technical debt that has built up from the likely hackily built Noveau driver (which itself two drivers, a kernel and mesa driver).
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


Or login with...
Sign in with Steam Sign in with Google
Social logins require cookies to stay logged in.