Nouveau Kernel Driver Patches Begin Preparing For "NVK" Open-Source Vulkan Support

Written by Michael Larabel in Nouveau on 18 January 2023 at 06:30 AM EST. 44 Comments
Over the past year NVK has taken shape as a -- currently out-of-tree -- Mesa Vulkan driver for supporting NVIDIA graphics hardware. This open-source NVIDIA Vulkan driver is inching closer to the point of being upstreamed into Mesa, but before it's usable for gamers/enthusiasts there is kernel work that must happen too.

Most notable before the NVK Vulkan driver is usable for gaming or any serious work is that the Nouveau DRM kernel driver needs to get its re-clocking situation sorted out... Right now the Nouveau DRM kernel driver is bound with the GeForce GTX 900 series and later to running at the very low boot-clock speeds and can't be re-clocked to the higher performance states. So right now both the Nouveau Gallium3D OpenGL and in-development NVK user-space drivers will find the Nouveau performance is an awful, hot mess.

The Nouveau DRM driver though is working to adapt support for NVIDIA's GPU System Processor (GSP) found in the GeForce RTX 20 series and newer. That GSP usage is similar to what is used by the NVIDIA Open GPU Kernel Driver that was open-sourced by NVIDIA last May. By leveraging the GSP they will hopefully have an easier driver handling experience and ideally get re-clocking / performance state management all sorted out for the RTX 20 series and newer.

The Nouveau re-clocking challenges has been the biggest open-source NVIDIA driver struggle for years.

Besides this years-long battle around re-clocking, the other item on the kernel side that's been a blocker for NVK has been needing to introduce some new kernel interfaces for better dealing with Vulkan. Much of the Nouveau DRM driver's kernel interfaces were designed years ago around the needs of OpenGL and the hardware capabilities at the time. Today there is a patch series by Red Hat engineer Danilo Krummrich working on making some of those kernel driver changes for adapting to Vulkan needs.

Danilo Krummrich posted a set of patches this morning around DRM GPUVA management and Nouveau user-space API additions. The focus is on being able to support the requirements of Vulkan's sparse bindings and sparse residency. As part of this Nouveau driver work is also introducing a common DRM GPUVA manager for DRM core that can be used to keep track of GPU virtual address mappings in a more generic way.

The 14 patches adapting the Nouveau UAPI for Vulkan sparse bindings and residency needs as well as introducing the generic DRM GPUVA manager are now awaiting review. There is already this pending code by David Airlie for making use of the new user-space API features by the NVK driver to enable synchronization objects and timeline semaphores.
Related News
About The Author
Michael Larabel

Michael Larabel is the principal author of and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 20,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and automated benchmarking software. He can be followed via Twitter, LinkedIn, or contacted via

Popular News This Week