| // Copyright 2019-2021 The Khronos Group Inc. |
| // |
| // SPDX-License-Identifier: CC-BY-4.0 |
| |
| // Common Valid Usage |
| // Common to VkPipelineStageFlags parameters |
| // Set "stageMaskName" attribute to the name of the stage mask to validate |
| * [[VUID-{refpage}-{stageMaskName}-04090]] |
| If the <<features-geometryShader,geometry shaders>> feature is not |
| enabled, pname:{stageMaskName} must: not contain |
| ename:VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT |
| * [[VUID-{refpage}-{stageMaskName}-04091]] |
| If the <<features-tessellationShader,tessellation shaders>> feature is |
| not enabled, pname:{stageMaskName} must: not contain |
| ename:VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT or |
| ename:VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT |
| ifdef::VK_EXT_conditional_rendering[] |
| * [[VUID-{refpage}-{stageMaskName}-04092]] |
| If the <<features-conditionalRendering,conditional rendering>> feature |
| is not enabled, pname:{stageMaskName} must: not contain |
| ename:VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT |
| endif::VK_EXT_conditional_rendering[] |
| ifdef::VK_EXT_fragment_density_map[] |
| * [[VUID-{refpage}-{stageMaskName}-04093]] |
| If the <<features-fragmentDensityMap,fragment density map>> feature is |
| not enabled, pname:{stageMaskName} must: not contain |
| ename:VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT |
| endif::VK_EXT_fragment_density_map[] |
| ifdef::VK_EXT_transform_feedback[] |
| * [[VUID-{refpage}-{stageMaskName}-04094]] |
| If the <<features-transformFeedback,transform feedback>> feature is not |
| enabled, pname:{stageMaskName} must: not contain |
| ename:VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT |
| endif::VK_EXT_transform_feedback[] |
| ifdef::VK_NV_mesh_shader[] |
| * [[VUID-{refpage}-{stageMaskName}-04095]] |
| If the <<features-meshShader,mesh shaders>> feature is not enabled, |
| pname:{stageMaskName} must: not contain |
| ename:VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV |
| * [[VUID-{refpage}-{stageMaskName}-04096]] |
| If the <<features-taskShader,task shaders>> feature is not enabled, |
| pname:{stageMaskName} must: not contain |
| ename:VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV |
| endif::VK_NV_mesh_shader[] |
| ifdef::VK_NV_shading_rate_image[] |
| * [[VUID-{refpage}-{stageMaskName}-04097]] |
| If the <<features-shadingRateImage,shading rate image>> feature is not |
| enabled, pname:{stageMaskName} must: not contain |
| ename:VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV |
| endif::VK_NV_shading_rate_image[] |
| * [[VUID-{refpage}-{stageMaskName}-04098]] |
| Any pipeline stage included in pname:{stageMaskName} must: be supported |
| by the capabilities of the queue family specified by the |
| pname:queueFamilyIndex member of the slink:VkCommandPoolCreateInfo |
| structure that was used to create the sname:VkCommandPool that |
| pname:commandBuffer was allocated from, as specified in the |
| <<synchronization-pipeline-stages-supported, table of supported pipeline |
| stages>> |
| ifdef::VK_KHR_synchronization2[] |
| * [[VUID-{refpage}-{stageMaskName}-03937]] |
| If the <<features-synchronization2, pname:synchronization2>> feature is |
| not enabled, pname:{stageMaskName} must: not be `0` |
| endif::VK_KHR_synchronization2[] |
| ifndef::VK_KHR_synchronization2[] |
| * [[VUID-{refpage}-{stageMaskName}-04996]] |
| pname:{stageMaskName} must: not be `0` |
| endif::VK_KHR_synchronization2[] |
| // Common Valid Usage |