Mesa Vulkan Drivers Reach An Inflection Point: Idea Raised To Be More Like Gallium3D
With Mesa's Gallium3D architecture there are different state trackers like for VA-API and OpenGL that in turn run atop the different Gallium3D hardware drivers with an aim for common code re-use and making the most of capabilities for each of the drivers. With Mesa's Vulkan drivers there isn't quite that level of code sharing/re-use given Vulkan's low-level API approach, but now the idea is raised whether the Mesa Vulkan drivers may benefit from a more Gallium3D-like runtime.
Faith Ekstrand with Collabora raised the idea today on the Mesa mailing list over whether the current development model for Mesa Vulkan drivers is practical or if a more Gallium3D-like approach is more suited. When Vulkan started out drivers were much more thin and low-level but with time the Vulkan API feature set has built up. With time Mesa has added various layers and means of code sharing between Vulkan drivers.
Most recently are patches from Ekstrand for implementing the NVK driver with EXT_shader_object and graphics pipeline library (GPL) support while introducing a common framework to the run-time to make this work much easier moving forward. Explained in the merge request (MR):
In the mailing list proposal Ekstrand acknowledges this would be a rather fundamental shift for how the Vulkan run-time within Mesa works and with the ongoing work of the open-source NVIDIA (NVK) Vulkan driver is likely the first beneficiary of the work. This change in focus would largely be about Vulkan drivers becoming a back-end of the Vulkan run-time as opposed to selectively being a user of the common code/run-time.
Some interesting ideas were raised by Faith on the mailing list and it will be interesting to see over the weeks ahead how this will ultimately influence future development of the Mesa Vulkan drivers from Intel ANV to Radeon RADV to the new NVK driver as well as the various smaller Vulkan drivers within the Mesa codebase plus any future Vulkan drivers that may in turn have an easier time being brought up if these changes are implemented.
Faith Ekstrand with Collabora raised the idea today on the Mesa mailing list over whether the current development model for Mesa Vulkan drivers is practical or if a more Gallium3D-like approach is more suited. When Vulkan started out drivers were much more thin and low-level but with time the Vulkan API feature set has built up. With time Mesa has added various layers and means of code sharing between Vulkan drivers.
Most recently are patches from Ekstrand for implementing the NVK driver with EXT_shader_object and graphics pipeline library (GPL) support while introducing a common framework to the run-time to make this work much easier moving forward. Explained in the merge request (MR):
"My intention is for this MR to serve as the MR for the common Vulkan runtime code. I'll be pulling a bunch of the NVK bits out into a separate MR and merging them ahead of time, at which point I'll rebase this MR. I may also try to land some of the more clean-up type vulkan runtime patches separately, leaving the bulk of the shader object framework here."
In the mailing list proposal Ekstrand acknowledges this would be a rather fundamental shift for how the Vulkan run-time within Mesa works and with the ongoing work of the open-source NVIDIA (NVK) Vulkan driver is likely the first beneficiary of the work. This change in focus would largely be about Vulkan drivers becoming a back-end of the Vulkan run-time as opposed to selectively being a user of the common code/run-time.
Some interesting ideas were raised by Faith on the mailing list and it will be interesting to see over the weeks ahead how this will ultimately influence future development of the Mesa Vulkan drivers from Intel ANV to Radeon RADV to the new NVK driver as well as the various smaller Vulkan drivers within the Mesa codebase plus any future Vulkan drivers that may in turn have an easier time being brought up if these changes are implemented.
36 Comments