Red Hat began work on the project nova, a new open driver for NVIDIA GPUs. This driver, developed as part of the Linux kernel, utilizes the DRM subsystem for GPU initialization and control operations. The project aims to build upon the existing Nouveau driver for NVIDIA GPUs with GSP (GPU System Processor) found in the GeForce RTX 2000 series based on the Turing microarchitecture, potentially replacing Nouveau in the long run.
The driver’s code is written in Rust and makes use of various layers for video driver development in this language. Components like abstractions from the rust-device branch, PCI handling from the rust-pci branch, and DRM subsystems like DRM and GEM from the rust-drm branch are utilized in developing the rust-DRM-SAHI drivers for Apple M1 and M2 GPU chips.
The decision to create a new driver was fueled by the desire to simplify compared to the Nouveau driver. By leveraging existing handlers provided by GSP firmware, the Nova driver aims to eliminate unnecessary complexities present in Nouveau due to the need to support older NVIDIA GPUs. This focus on developing from scratch with GSP support from the beginning allows Nova to avoid the merging of code for old and new GPUs, streamlining the driver development process.