Intel Lands Initial Code For Mesh Shaders Within Mesa

Written by Michael Larabel in Intel on 28 August 2021 at 07:00 AM EDT. Add A Comment
In preparation for the support within their Vulkan driver, the Intel-led effort for preparing mesh shader support within Mesa's NIR and SPIR-V code has now been merged.

The Mesa NIR/SPIR-V changes for supporting mesh shaders as outlined via the SPV_NV_mesh_shader extension have been merged with the exception of multi-view support not being ready yet. The SPV_NV_mesh_shader extension is about exposing GLSL GL_NV_mesh_shader support in turn with support for the new task and mesh shader types.
This extension provides a new mechanism allowing applications to use two new programmable shader types -- the task and mesh shader -- to generate collections of geometric primitives to be processed by fixed-function primitive assembly and rasterization logic. When the task and mesh shaders are drawn, they replace the standard programmable vertex processing pipeline, including vertex array attribute fetching, vertex shader processing, tessellation, and the geometry shader processing.

NVIDIA has supported mesh shaders since Turing and AMD can support mesh shaders with RDNA2 GPUs albeit we hadn't seen their open-source driver support for them yet. It's with Intel's upcoming Xe HPG gaming graphics card where Intel is also expected to have the necessary hardware support for mesh shaders. Mesh shader support for Xe HPG was previously hinted at by Raja Koduri.

Now the NIR/SPIR-V changes are in place for allowing mesh shaders via SPV_NV_mesh_shader / GL_NV_mesh_shader with this merge request that landed in Mesa 21.3-devel after being open for the past three months. The Intel ANV driver will still need to advertise the mesh/task shader stage support but at least the foundation is getting into place, similar to Intel's ongoing work for Vulkan ray-tracing support for Xe HPG as well. With this mesh shader NIR/SPIR-V work being in common code, this may help along RADV as well in ultimately supporting mesh shaders for Radeon RX 6000 series hardware.
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