Intel's Vulkan Linux Driver Adds Experimental Mesh Shader Support For DG2/Alchemist
Mesh shaders combine vertex and primitive processing as a fundamental change to the graphics rendering pipeline. Mesh shaders with Vulkan currently work by means of NVIDIA's VK_NV_mesh_shader extension. As explained with the spec:
This extension provides a new mechanism allowing applications to generate collections of geometric primitives via programmable mesh shading. It is an alternative to the existing programmable primitive shading pipeline, which relied on generating input primitives by a fixed function assembler as well as fixed function vertex fetch.
There are new programmable shader types — the task and mesh shader — to generate these collections to be processed by fixed-function primitive assembly and rasterization logic. When task and mesh shaders are dispatched, they replace the core pre-rasterization stages, including vertex array attribute fetching, vertex shader processing, tessellation, and geometry shader processing.
NVIDIA has been supporting mesh shaders going back to their Turing GPUs. With the above graphic per NVIDIA is a look at the pipeline difference with mesh/task shaders.
AMD supports mesh shaders with their RDNA2 GPUs and now Intel with their upcoming DG2/Alchemist hardware can also handle mesh shaders. Back in December experimental mesh shaders for the Radeon RADV driver were merged into Mesa 22.0 while now there is also the experimental Intel ANV support.
Intel's open-source driver engineers have been working on mesh shader support for months while hitting Mesa 22.0-devel today were the changes to provide the working albeit experimental coverage.
This merge request is the big batch of 13 patches that get Vulkan mesh shader support working for Xe HP (DG2). The VK_NV_mesh_shader support though is hidden behind the "ANV_EXPERIMENTAL_NV_MESH_SHADER" environment variable for activation. Intel like AMD are waiting for hopefully an official (non-vendor prefix) Vulkan mesh shader extension they can better support. Hopefully it won't take too long before an official cross-vendor Vulkan mesh shader extension is published.