Mesa's Lavapipe Adds Vulkan Task/Mesh Shader Support
David Airlie has managed to hack together task/mesh shader support inside Lavapipe, the CPU-based software Vulkan implementation inside Mesa.
Mesh shading for Vulkan is one of the exciting additions made last year to the spec with VK_EXT_mesh_shader and akin to functionality found already within DirectX 12. There is mesh shader support already within some hardware Vulkan drivers inside Mesa like RADV on capable GPUs, but a software implementation for Lavapipe was a bit tricky. Red Hat's David Airlie explained in the merge request:
This MR comes in at more than two thousand lines of new code and is now in Git for next quarter's Mesa 23.2 release.
Mesh shading for Vulkan is one of the exciting additions made last year to the spec with VK_EXT_mesh_shader and akin to functionality found already within DirectX 12. There is mesh shader support already within some hardware Vulkan drivers inside Mesa like RADV on capable GPUs, but a software implementation for Lavapipe was a bit tricky. Red Hat's David Airlie explained in the merge request:
"This adds VK_EXT_mesh_shader support to lavapipe by writing up some gallium interfaces for it and hooking it up inside llvmpipe as compute shader variants.
The outputs from the compute shaders are piped back into the draw module for clipping and stats collection.
Currently passes all CTS tests."
This MR comes in at more than two thousand lines of new code and is now in Git for next quarter's Mesa 23.2 release.
3 Comments