Recently reported by Michael Larabel of Phoronix, Mesa 22.3 received the RADV, or Radeon Vulkan Driver, adding support for the mesh shader extension VK_EXT_mesh_shader, which utilizes the newest Vulkan 1.3.226 framework.
Vulkan 1.3.226 introduces new Mesh Shader support & is published in the latest Radeon Vulkan Driver "RADV" for the upcoming Mesa 22.3
Vulkan's newest VK_EXT_mesh_shader is a cross-vendor mesh shading extension replacing the current NVIDIA vendor-centric extension. The graphics extension allows applications to create gathered sections of "geometric primitives" through program-controlled mesh shading. Vulkan's mesh shaders are an alternative to the shading pipeline as a programmable primitive.
During the initial launch, NVIDIA published a new Vulkan beta driver for Windows and Linux that included the EXT_mesh_shader support. The open-source ANV driver by Intel received support last weekend. With this week, we are now beginning with AMD updating their mesh shading support within Mesa's unreleased next-gen version.
Note that this support is experimental and only enabled via the RADV_PERFTEST=ext_ms environment variable. This is because it can't work safely without "gang submit" implemented in the AMDGPU driver in the Linux kernel. Without gang submission, this can deadlock your GPU when multiple processes use task shaders simultaneously. Gang submits is currently under development by the AMDGPU developers.
Interestingly, the VK_EXT_mesh_shader extension is programmed and coded by Valve's group of open-source developers who also worked on RADV before the specifications were published. During that time, the developers were actively patching the enablement for Vulkan's mesh shader. Once published, the team created a new merge request. Now that the new code is through the review process, AMD merged RADV support into the Mesa 22.3 release in the first part of next year.
The Radeon RADV mesh shader support demands the use of RDNA 2 architecture or newer. Larabel mentions that the latest Vulkan mesh shader support will require changing the RADV_PERFTEST=ext_ms environment variable within the Mesa Git. The request below briefly explains the treatment of the newest mesh shader support, hinting that the support is currently in an experimental state until AMD's open-source AMDGPU kernel driver capability surrounding the gang submit is readied.
News Source: Phoronix