NVK Driver Lands New Platform Abstraction - Working Toward Allowing Other Kernel Drivers
Merged for Mesa 24.2 is a massive set of patches providing a new platform abstraction for NVK, the open-source NVIDIA Vulkan driver. With this new platform abstraction it begins to open the door toward running the NVK driver on alternative kernel (DRM) drivers.
Faith Ekstrand of Collabora has been working through the nearly four dozen patches touching several thousand lines of code for NVK. Faith explains in the merge request of this new NVK platform abstraction:
This platform abstraction is important for being able to run on other kernel drivers should new winsys implementations materialize. This is important given that the Rust-written "NOVA" kernel driver is materializing as a modern Direct Rendering Manager driver leveraging the NVIDIA GPU System Processor (GSP) in aiming for nice support of RTX 20 "Turing" GPUs and later. This platform abstraction will be utilized when it comes to enabling NOVA kernel driver support by this Vulkan driver and potentially even if Mesa developers pursue trying to get NVK running atop NVIDIA's open-source but out-of-tree kernel driver.
All of this new platform abstraction code for NVK is now in Mesa Git ahead of Mesa 24.2-devel that should debut in August.
Faith Ekstrand of Collabora has been working through the nearly four dozen patches touching several thousand lines of code for NVK. Faith explains in the merge request of this new NVK platform abstraction:
"This MR totally refactors NVK to use a new, fully pluggable platform abstraction. This abstraction doesn't leak any DRM or nouveau.ko details into the driver, allowing us to potentially add winsys implementations to run on other kernels. It also provides a nice cleanup of a number of the interfaces. As a side-effect, the arbitrary limits we had before on bind, signal, and wait counts are now gone. The new code handles arbitrarily many of these."
This platform abstraction is important for being able to run on other kernel drivers should new winsys implementations materialize. This is important given that the Rust-written "NOVA" kernel driver is materializing as a modern Direct Rendering Manager driver leveraging the NVIDIA GPU System Processor (GSP) in aiming for nice support of RTX 20 "Turing" GPUs and later. This platform abstraction will be utilized when it comes to enabling NOVA kernel driver support by this Vulkan driver and potentially even if Mesa developers pursue trying to get NVK running atop NVIDIA's open-source but out-of-tree kernel driver.
All of this new platform abstraction code for NVK is now in Mesa Git ahead of Mesa 24.2-devel that should debut in August.
12 Comments