Nvidia Rusty RedHat driver
Red Hat has started work on a Rust-based GSP-only driver for Nvidia GPUs.
On 20th March, Red Hat display driver software engineer Danilo Krummrich announced the creation of the Nova project, a Rust-based driver for Nvidia GPUs.
This is no doubt welcome news to users of the open source graphics driver Nouveau, given that last year its chief maintainer at Red Hat resigned from the project.
In the developer mailing list, Krummrich announced that Nova is intended to succeed Nouveau, with the aim to create a simplified, more modern driver: “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 solved with a workaround), and second, with a GSP-only driver, there is no need to maintain compatibility with pre-GSP code.”
Danilo also appreciated the virtual mountain to climb when it comes to Rust development, given the missing C binding abstractions for integral kernel infrastructure, such as device and driver abstractions. Currently, the project aims to start with a basic device/driver, DRM and PCI abstractions, along with a Nova stub driver to make use of them.
The benefits of a Rust-based driver include increased memory safety and potentially better performance, given features such as the language’s minimal runtime overhead.
Online reaction has been positive, but some Redditors point out that Nova isn’t the only drop-in replacement for Nouveau. Collabora has been working on its NVK open source Vulkan graphics driver since October 2022 and has recently promoted it to the stable channel, so it will be added to the Mesa 24.1 graphics stack.
View the current repository at https://gitlab. freedesktop.org/drm/nova/.