VkPhysicalDeviceMeshShaderFeaturesEXT(3)

# VkPhysicalDeviceMeshShaderFeaturesEXT(3) Manual Page

## Name

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

Loading… please wait.

## 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;

## Members

- `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

## Description

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
  `sType` must be `VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT`

## See Also

VK_EXT_mesh_shader, `VkBool32`, VkStructureType

## 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

Copyright 2014-2022 The Khronos Group Inc.

SPDX-License-Identifier: CC-BY-4.0