Open-Source NVIDIA Outlook Brighter Due To GSP Firmware, But Major Challenges Remain
In particular, David Airlie's talk focused on how NVIDIA's new open-source GPU kernel driver and GSP firmware has shaken things up this year. While the Nouveau driver's performance has been in an utter mess since the GTX 900 series due to signed firmware and Nouveau lacking PMU access / re-clocking support, the GPU System Processor (GSP) firmware for RTX 2000 "Turing" GPUs and newer gives some new hope on the open-source NVIDIA front.
NVIDIA's Open GPU Kernel Driver still isn't in shape for upstreaming, but the availability of the GSP firmware and that containing most of the proprietary functionality, there aren't "secrets" any longer within the kernel driver. Adding that GSP firmware support to the Nouveau driver or a hypothetical new open-source kernel driver that is suitable for upstream could be what may lead to a brighter open-source NVIDIA driver future.
While the open-source driver leveraging the NVIDIA GSP firmware blob is hopeful since the re-clocking headaches can be avoided, there still are current limitations around the growing size of the GPU firmware files and that the firmware ABI isn't yet stable. NVIDIA will need to commit to a stable GSP firmware ABI before any kernel driver can be upstreamed.
The distinguished Red Hat engineer also commented on the Nouveau driver supporting OpenGL 4.5 albeit lacking a CTS result for official conformance. The OpenGL driver also hasn't been well optimized over the re-clocking limitations.
The other recent improvement in the open-source NVIDIA world has been work getting started on an open-source Vulkan driver "NVK". On the NVK Vulkan driver front, Airlie says it currently passes around 85% of the Vulkan 1.0 conformance test suite. However, new user-space APIs by the Nouveau DRM kernel driver will be necessary before the Vulkan driver can be full-functioning.
New user-space APIs for the Nouveau kernel driver are needed around splitting the buffer object and virtual memory addressing management, synchronization object "syncobj" handling, and a VM_BIND/exec API.
Those wanting to watch Airlie's entire presentation on the open-source NVIDIA "Nouveau" driver state for 2022 can find it embedded below.