C Specification

The VkPhysicalDeviceMeshShaderFeaturesEXT structure is defined as:

// Provided by VK_EXT_mesh_shader
typedef struct VkPhysicalDeviceMeshShaderFeaturesEXT {
    VkStructureType    sType;
    void*              pNext;
    VkBool32           taskShader;
    VkBool32           meshShader;
    VkBool32           multiviewMeshShader;
    VkBool32           primitiveFragmentShadingRateMeshShader;
    VkBool32           meshShaderQueries;
} VkPhysicalDeviceMeshShaderFeaturesEXT;


  • sType is the type of this structure.

  • pNext is NULL or a pointer to a structure extending this structure.

  • taskShader specifies whether task shaders are supported. If this feature is not enabled, the VK_SHADER_STAGE_TASK_BIT_EXT and VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT enum values must not be used.

  • meshShader specifies whether mesh shaders are supported. If this feature is not enabled, the VK_SHADER_STAGE_MESH_BIT_EXT and VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT enum values must not be used.

  • multiviewMeshShader specifies whether the implementation supports multiview rendering within a render pass, with mesh shaders. If this feature is not enabled, then a pipeline compiled against a subpass with a non-zero view mask must not include a mesh shader.

  • primitiveFragmentShadingRateMeshShader indicates that the implementation supports the primitive fragment shading rate in mesh shaders.

  • meshShaderQueries indicates that the implementation supports creating query pools using the VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT query type and statistic queries containing the VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT and VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT flags


If the VkPhysicalDeviceMeshShaderFeaturesEXT structure is included in the pNext chain of the VkPhysicalDeviceFeatures2 structure passed to vkGetPhysicalDeviceFeatures2, it is filled in to indicate whether each corresponding feature is supported. VkPhysicalDeviceMeshShaderFeaturesEXT can also be used in the pNext chain of VkDeviceCreateInfo to selectively enable these features.

The corresponding features of the VkPhysicalDeviceMeshShaderFeaturesNV structure must match those in VkPhysicalDeviceMeshShaderFeaturesEXT.

Valid Usage
  • VUID-VkPhysicalDeviceMeshShaderFeaturesEXT-multiviewMeshShader-07032
    If multiviewMeshShader is enabled then VkPhysicalDeviceMultiviewFeaturesKHR::multiview must also be enabled

  • VUID-VkPhysicalDeviceMeshShaderFeaturesEXT-primitiveFragmentShadingRateMeshShader-07033
    If primitiveFragmentShadingRateMeshShader is enabled then VkPhysicalDeviceFragmentShadingRateFeaturesKHR::primitiveFragmentShadingRate must also be enabled

Valid Usage (Implicit)
  • VUID-VkPhysicalDeviceMeshShaderFeaturesEXT-sType-sType

See Also

Document Notes

For more information, see the Vulkan Specification

This page is extracted from the Vulkan Specification. Fixes and changes should be made to the Specification, not directly.

Copyright 2014-2023 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0