Structures

VkPhysicalDeviceMeshShaderFeaturesEXT

Structure describing mesh shading features that can be supported by an implementation

The VkPhysicalDeviceMeshShaderFeaturesEXT structure is defined as:

typedef struct VkPhysicalDeviceMeshShaderFeaturesEXT {
    VkStructureType sType;
    void* pNext;
    VkBool32 taskShader;
    VkBool32 meshShader;
    VkBool32 multiviewMeshShader;
    VkBool32 primitiveFragmentShadingRateMeshShader;
    VkBool32 meshShaderQueries;
} VkPhysicalDeviceMeshShaderFeaturesEXT;
  • sType is a VkStructureType value identifying 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::primitiveFragmentShadingRatemust also be enabled

Valid Usage (Implicit)

VUID-VkPhysicalDeviceMeshShaderFeaturesEXT-sType-sType

sType must be VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT