1// Copyright 2020-2021 The Khronos Group Inc. 2// 3// SPDX-License-Identifier: CC-BY-4.0 4// Common Valid Usage 5// Common to structs taking VkPipelineStageFlags2KHR and VkAccessFlags2KHR parameters to define scopes 6// Set "stageMaskName" and "accessMaskName" attribute to the name of the stage and access mask to validate 7 * [[VUID-{refpage}-{accessMaskName}-03900]] 8 If pname:{accessMaskName} includes 9 ename:VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR, pname:{stageMaskName} 10 must: include ename:VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR, 11 ename:VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, 12 ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or 13 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR 14 * [[VUID-{refpage}-{accessMaskName}-03901]] 15 If pname:{accessMaskName} includes ename:VK_ACCESS_2_INDEX_READ_BIT_KHR, 16 pname:{stageMaskName} must: include 17 ename:VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR, 18 ename:VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR, 19 ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or 20 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR 21 * [[VUID-{refpage}-{accessMaskName}-03902]] 22 If pname:{accessMaskName} includes 23 ename:VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR, pname:{stageMaskName} 24 must: include ename:VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR, 25 ename:VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR, 26 ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or 27 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR 28 * [[VUID-{refpage}-{accessMaskName}-03903]] 29 If pname:{accessMaskName} includes 30 ename:VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR, pname:{stageMaskName} 31 must: include ename:VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR, 32 ename:VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI, 33 ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or 34 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR 35 * [[VUID-{refpage}-{accessMaskName}-03904]] 36 If pname:{accessMaskName} includes 37 ename:VK_ACCESS_2_UNIFORM_READ_BIT_KHR, pname:{stageMaskName} must: 38 include ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, 39 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the 40 etext:VK_PIPELINE_STAGE_*_SHADER_BIT stages 41 * [[VUID-{refpage}-{accessMaskName}-03905]] 42 If pname:{accessMaskName} includes 43 ename:VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR, pname:{stageMaskName} 44 must: include ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, 45 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the 46 etext:VK_PIPELINE_STAGE_*_SHADER_BIT stages 47 * [[VUID-{refpage}-{accessMaskName}-03906]] 48 If pname:{accessMaskName} includes 49 ename:VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR, pname:{stageMaskName} 50 must: include ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, 51 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the 52 etext:VK_PIPELINE_STAGE_*_SHADER_BIT stages 53 * [[VUID-{refpage}-{accessMaskName}-03907]] 54 If pname:{accessMaskName} includes 55 ename:VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR, pname:{stageMaskName} 56 must: include ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, 57 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the 58 etext:VK_PIPELINE_STAGE_*_SHADER_BIT stages 59 * [[VUID-{refpage}-{accessMaskName}-03908]] 60 If pname:{accessMaskName} includes 61 ename:VK_ACCESS_2_SHADER_READ_BIT_KHR, pname:{stageMaskName} must: 62 include ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, 63 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, 64 ename:VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or one 65 of the etext:VK_PIPELINE_STAGE_*_SHADER_BIT stages 66 * [[VUID-{refpage}-{accessMaskName}-03909]] 67 If pname:{accessMaskName} includes 68 ename:VK_ACCESS_2_SHADER_WRITE_BIT_KHR, pname:{stageMaskName} must: 69 include ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, 70 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the 71 etext:VK_PIPELINE_STAGE_*_SHADER_BIT stages 72 * [[VUID-{refpage}-{accessMaskName}-03910]] 73 If pname:{accessMaskName} includes 74 ename:VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR, pname:{stageMaskName} 75 must: include ename:VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR 76 ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or 77 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR 78 * [[VUID-{refpage}-{accessMaskName}-03911]] 79 If pname:{accessMaskName} includes 80 ename:VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR, pname:{stageMaskName} 81 must: include ename:VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR 82 ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or 83 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR 84 * [[VUID-{refpage}-{accessMaskName}-03912]] 85 If pname:{accessMaskName} includes 86 ename:VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR, 87 pname:{stageMaskName} must: include 88 ename:VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR, 89 ename:VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR, 90 ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or 91 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR 92 * [[VUID-{refpage}-{accessMaskName}-03913]] 93 If pname:{accessMaskName} includes 94 ename:VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR, 95 pname:{stageMaskName} must: include 96 ename:VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR, 97 ename:VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR, 98 ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or 99 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR 100 * [[VUID-{refpage}-{accessMaskName}-03914]] 101 If pname:{accessMaskName} includes 102 ename:VK_ACCESS_2_TRANSFER_READ_BIT_KHR, pname:{stageMaskName} must: 103 include ename:VK_PIPELINE_STAGE_2_COPY_BIT_KHR, 104 ename:VK_PIPELINE_STAGE_2_BLIT_BIT_KHR, 105 ename:VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR, 106 ename:VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR, 107 ename:VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or 108 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR 109 * [[VUID-{refpage}-{accessMaskName}-03915]] 110 If pname:{accessMaskName} includes 111 ename:VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR, pname:{stageMaskName} must: 112 include ename:VK_PIPELINE_STAGE_2_COPY_BIT_KHR, 113 ename:VK_PIPELINE_STAGE_2_BLIT_BIT_KHR, 114 ename:VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR, 115 ename:VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR, 116 ename:VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR, 117 ename:VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, or 118 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR 119 * [[VUID-{refpage}-{accessMaskName}-03916]] 120 If pname:{accessMaskName} includes ename:VK_ACCESS_2_HOST_READ_BIT_KHR, 121 pname:{stageMaskName} must: include 122 ename:VK_PIPELINE_STAGE_2_HOST_BIT_KHR 123 * [[VUID-{refpage}-{accessMaskName}-03917]] 124 If pname:{accessMaskName} includes ename:VK_ACCESS_2_HOST_WRITE_BIT_KHR, 125 pname:{stageMaskName} must: include 126 ename:VK_PIPELINE_STAGE_2_HOST_BIT_KHR 127ifdef::VK_EXT_conditional_rendering[] 128 * [[VUID-{refpage}-{accessMaskName}-03918]] 129 If pname:{accessMaskName} includes 130 ename:VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT, 131 pname:{stageMaskName} must: include 132 ename:VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT, 133 ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or 134 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR 135endif::VK_EXT_conditional_rendering[] 136ifdef::VK_EXT_fragment_density_map[] 137 * [[VUID-{refpage}-{accessMaskName}-03919]] 138 If pname:{accessMaskName} includes 139 ename:VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT, 140 pname:{stageMaskName} must: include 141 ename:VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT, 142 ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or 143 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR 144endif::VK_EXT_fragment_density_map[] 145ifdef::VK_EXT_transform_feedback[] 146 * [[VUID-{refpage}-{accessMaskName}-03920]] 147 If pname:{accessMaskName} includes 148 ename:VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT, 149 pname:{stageMaskName} must: include 150 ename:VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, 151 ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or 152 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR 153 * [[VUID-{refpage}-{accessMaskName}-04747]] 154 If pname:{accessMaskName} includes 155 ename:VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT, 156 pname:{stageMaskName} must: include 157 ename:VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR, 158 ename:VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, 159 ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or 160 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR 161 * [[VUID-{refpage}-{accessMaskName}-03922]] 162 If pname:{accessMaskName} includes 163 ename:VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT, 164 pname:{stageMaskName} must: include 165 ename:VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT, 166 ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or 167 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR 168endif::VK_EXT_transform_feedback[] 169ifdef::VK_NV_shading_rate_image[] 170 * [[VUID-{refpage}-{accessMaskName}-03923]] 171 If pname:{accessMaskName} includes 172 ename:VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV, pname:{stageMaskName} 173 must: include ename:VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV, 174 ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or 175 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR 176endif::VK_NV_shading_rate_image[] 177ifdef::VK_HUAWEI_invocation_mask[] 178 * [[VUID-{refpage}-{accessMaskName}-04994]] 179 If pname:{accessMaskName} includes 180 ename:VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI, pname:{stageMaskName} 181 must: include ename:VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI 182endif::VK_HUAWEI_invocation_mask[] 183ifdef::VK_NV_device_generated_commands[] 184 * [[VUID-{refpage}-{accessMaskName}-03924]] 185 If pname:{accessMaskName} includes 186 ename:VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV, pname:{stageMaskName} 187 must: include ename:VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or 188 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR 189 * [[VUID-{refpage}-{accessMaskName}-03925]] 190 If pname:{accessMaskName} includes 191 ename:VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV, pname:{stageMaskName} 192 must: include ename:VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV or 193 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR 194endif::VK_NV_device_generated_commands[] 195ifdef::VK_EXT_blend_operation_advanced[] 196 * [[VUID-{refpage}-{accessMaskName}-03926]] 197 If pname:{accessMaskName} includes 198 ename:VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT, 199 pname:{stageMaskName} must: include 200 ename:VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR 201 ename:VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR, or 202 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR 203endif::VK_EXT_blend_operation_advanced[] 204ifdef::VK_KHR_acceleration_structure,VK_NV_ray_tracing[] 205 * [[VUID-{refpage}-{accessMaskName}-03927]] 206 If pname:{accessMaskName} includes 207 ename:VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, 208 pname:{stageMaskName} must: include 209 ename:VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR, 210 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR, or one of the 211 etext:VK_PIPELINE_STAGE_*_SHADER_BIT stages 212 * [[VUID-{refpage}-{accessMaskName}-03928]] 213 If pname:{accessMaskName} includes 214 ename:VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR, 215 pname:{stageMaskName} must: include 216 ename:VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR or 217 ename:VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR 218ifndef::VK_KHR_ray_query[] 219ifdef::VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing[] 220 * [[VUID-{refpage}-{accessMaskName}-06254]] 221 If pname:{accessMaskName} includes 222 ename:VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, 223 pname:{stageMaskName} must: not include any of the 224 etext:VK_PIPELINE_STAGE_*_SHADER_BIT stages except 225 ename:VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR 226endif::VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing[] 227ifndef::VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing[] 228 * [[VUID-{refpage}-{accessMaskName}-06255]] 229 If pname:{accessMaskName} includes 230 ename:VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, 231 pname:{stageMaskName} must: not include any of the 232 etext:VK_PIPELINE_STAGE_*_SHADER_BIT stages 233endif::VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing[] 234endif::VK_KHR_ray_query[] 235ifdef::VK_KHR_ray_query[] 236ifdef::VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing[] 237 * [[VUID-{refpage}-{accessMaskName}-06256]] 238 If <<features-rayQuery,pname:rayQuery>> is not enabled and 239 pname:{accessMaskName} includes 240 ename:VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, 241 pname:{stageMaskName} must: not include any of the 242 etext:VK_PIPELINE_STAGE_*_SHADER_BIT stages except 243 ename:VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR 244endif::VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing[] 245ifndef::VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing[] 246 * [[VUID-{refpage}-{accessMaskName}-06257]] 247 If <<features-rayQuery,pname:rayQuery>> is not enabled and 248 pname:{accessMaskName} includes 249 ename:VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR, 250 pname:{stageMaskName} must: not include any of the 251 etext:VK_PIPELINE_STAGE_*_SHADER_BIT stages 252endif::VK_KHR_ray_tracing_pipeline,VK_NV_ray_tracing[] 253endif::VK_KHR_ray_query[] 254endif::VK_KHR_acceleration_structure,VK_NV_ray_tracing[] 255ifdef::VK_KHR_video_decode_queue[] 256 * [[VUID-{refpage}-{accessMaskName}-04858]] 257 If pname:{accessMaskName} includes 258 ename:VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR, pname:{stageMaskName} must: 259 include ename:VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR 260 * [[VUID-{refpage}-{accessMaskName}-04859]] 261 If pname:{accessMaskName} includes 262 ename:VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR, pname:{stageMaskName} 263 must: include ename:VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR 264endif::VK_KHR_video_decode_queue[] 265ifdef::VK_KHR_video_encode_queue[] 266 * [[VUID-{refpage}-{accessMaskName}-04860]] 267 If pname:{accessMaskName} includes 268 ename:VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR, pname:{stageMaskName} must: 269 include ename:VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR 270 * [[VUID-{refpage}-{accessMaskName}-04861]] 271 If pname:{accessMaskName} includes 272 ename:VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR, pname:{stageMaskName} 273 must: include ename:VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR 274endif::VK_KHR_video_encode_queue[] 275// Common Valid Usage 276