1// Copyright 2019-2023 The Khronos Group Inc. 2// 3// SPDX-License-Identifier: CC-BY-4.0 4 5// Common Valid Usage 6// Common to all drawing commands 7include::{chapters}/commonvalidity/draw_dispatch_common.adoc[] 8 * [[VUID-{refpage}-renderPass-02684]] 9 The current render pass must: be <<renderpass-compatibility,compatible>> 10 with the pname:renderPass member of the 11 sname:VkGraphicsPipelineCreateInfo structure specified when creating the 12 sname:VkPipeline bound to ename:VK_PIPELINE_BIND_POINT_GRAPHICS 13 * [[VUID-{refpage}-subpass-02685]] 14 The subpass index of the current render pass must: be equal to the 15 pname:subpass member of the sname:VkGraphicsPipelineCreateInfo structure 16 specified when creating the sname:VkPipeline bound to 17 ename:VK_PIPELINE_BIND_POINT_GRAPHICS 18 * [[VUID-{refpage}-None-07748]] 19 If any shader statically accesses an input attachment, a valid 20 descriptor must: be bound to the pipeline via a descriptor set 21 * [[VUID-{refpage}-OpTypeImage-07468]] 22 If any shader executed by this pipeline accesses an code:OpTypeImage 23 variable with a code:Dim operand of code:SubpassData, it must: be 24 decorated with an code:InputAttachmentIndex that corresponds to a valid 25 input attachment in the current subpass 26 * [[VUID-{refpage}-None-07469]] 27 Input attachment views accessed in a subpass must: be created with the 28 same elink:VkFormat as the corresponding subpass definition, and be 29 created with a slink:VkImageView that is compatible with the attachment 30 referenced by the subpass' 31 pname:pInputAttachments[code:InputAttachmentIndex] in the currently 32 bound slink:VkFramebuffer as specified by 33 <<compatibility-inputattachment,Fragment Input Attachment 34 Compatibility>> 35 * [[VUID-{refpage}-None-06537]] 36 Memory backing image subresources used as attachments in the current 37 render pass must: not be written in any way other than as an attachment 38 by this command 39 * [[VUID-{refpage}-None-09000]] 40 If a color attachment is written by any prior command in this subpass or 41 by the load, store, or resolve operations for this subpass, 42ifdef::VK_EXT_attachment_feedback_loop_layout[] 43 it is not in the 44 ename:VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, 45 and 46ifdef::VK_EXT_attachment_feedback_loop_dynamic_state[] 47 either: 48 ** {empty} 49endif::VK_EXT_attachment_feedback_loop_dynamic_state[] 50 the ename:VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT is 51 set on the currently bound pipeline 52ifdef::VK_EXT_attachment_feedback_loop_dynamic_state[] 53 or 54 ** the last call to flink:vkCmdSetAttachmentFeedbackLoopEnableEXT included 55 ename:VK_IMAGE_ASPECT_COLOR_BIT and 56ifdef::VK_EXT_shader_object[] 57 *** there is no currently bound graphics pipeline or 58endif::VK_EXT_shader_object[] 59 *** the currently bound graphics pipeline was created with 60 ename:VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT 61endif::VK_EXT_attachment_feedback_loop_dynamic_state[] 62endif::VK_EXT_attachment_feedback_loop_layout[] 63 it must: not be accessed in any way other than as an attachment by this 64 command 65 * [[VUID-{refpage}-None-09001]] 66 If a depth attachment is written by any prior command in this subpass or 67 by the load, store, or resolve operations for this subpass, 68ifdef::VK_EXT_attachment_feedback_loop_layout[] 69 it is not in the 70 ename:VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, 71 and 72ifdef::VK_EXT_attachment_feedback_loop_dynamic_state[] 73 either: 74 ** {empty} 75endif::VK_EXT_attachment_feedback_loop_dynamic_state[] 76 the 77 ename:VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT 78 is set on the currently bound pipeline 79ifdef::VK_EXT_attachment_feedback_loop_dynamic_state[] 80 or 81 ** the last call to flink:vkCmdSetAttachmentFeedbackLoopEnableEXT included 82 ename:VK_IMAGE_ASPECT_DEPTH_BIT and 83ifdef::VK_EXT_shader_object[] 84 *** there is no currently bound graphics pipeline or 85endif::VK_EXT_shader_object[] 86 *** the currently bound graphics pipeline was created with 87 ename:VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT 88endif::VK_EXT_attachment_feedback_loop_dynamic_state[] 89endif::VK_EXT_attachment_feedback_loop_layout[] 90 it must: not be accessed in any way other than as an attachment by this 91 command 92 * [[VUID-{refpage}-None-09002]] 93 If a stencil attachment is written by any prior command in this subpass 94 or by the load, store, or resolve operations for this subpass, 95ifdef::VK_EXT_attachment_feedback_loop_layout[] 96 it is not in the 97 ename:VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT image layout, 98 and 99ifdef::VK_EXT_attachment_feedback_loop_dynamic_state[] 100 either: 101 ** {empty} 102endif::VK_EXT_attachment_feedback_loop_dynamic_state[] 103 the 104 ename:VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT 105 is set on the currently bound pipeline 106ifdef::VK_EXT_attachment_feedback_loop_dynamic_state[] 107 or 108 ** the last call to flink:vkCmdSetAttachmentFeedbackLoopEnableEXT included 109 ename:VK_IMAGE_ASPECT_STENCIL_BIT and 110ifdef::VK_EXT_shader_object[] 111 *** there is no currently bound graphics pipeline or 112endif::VK_EXT_shader_object[] 113 *** the currently bound graphics pipeline was created with 114 ename:VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT 115endif::VK_EXT_attachment_feedback_loop_dynamic_state[] 116endif::VK_EXT_attachment_feedback_loop_layout[] 117 it must: not be accessed in any way other than as an attachment by this 118 command 119ifdef::VK_EXT_attachment_feedback_loop_layout[] 120 * [[VUID-{refpage}-None-09003]] 121 If an attachment is written by any prior command in this subpass or by 122 the load, store, or resolve operations for this subpass, it must: not be 123 accessed in any way other than as an attachment, storage image, or 124 sampled image by this command 125endif::VK_EXT_attachment_feedback_loop_layout[] 126 * [[VUID-{refpage}-None-06539]] 127 If any previously recorded command in the current subpass accessed an 128 image subresource used as an attachment in this subpass in any way other 129 than as an attachment, this command must: not write to that image 130 subresource as an attachment 131 * [[VUID-{refpage}-None-06886]] 132 If the current render pass instance uses a depth/stencil attachment with 133 a read-only layout for the depth aspect, <<fragops-depth-write, depth 134 writes>> must: be disabled 135 * [[VUID-{refpage}-None-06887]] 136 If the current render pass instance uses a depth/stencil attachment with 137 a read-only layout for the stencil aspect, both front and back 138 pname:writeMask are not zero, and stencil test is enabled, 139 <<fragops-stencil, all stencil ops>> must: be ename:VK_STENCIL_OP_KEEP 140 * [[VUID-{refpage}-None-07831]] 141 If the bound graphics pipeline state was created with the 142 ename:VK_DYNAMIC_STATE_VIEWPORT dynamic state enabled then 143 flink:vkCmdSetViewport must: have been called in the current command 144 buffer prior to this drawing command 145 * [[VUID-{refpage}-None-07832]] 146 If the bound graphics pipeline state was created with the 147 ename:VK_DYNAMIC_STATE_SCISSOR dynamic state enabled then 148 flink:vkCmdSetScissor must: have been called in the current command 149 buffer prior to this drawing command 150 * [[VUID-{refpage}-None-07833]] 151 If the bound graphics pipeline state was created with the 152 ename:VK_DYNAMIC_STATE_LINE_WIDTH dynamic state enabled then 153 flink:vkCmdSetLineWidth must: have been called in the current command 154 buffer prior to this drawing command 155ifdef::VK_EXT_shader_object[] 156 * [[VUID-{refpage}-None-08617]] 157 If a shader object is bound to any graphics stage, and the most recent 158 call to flink:vkCmdSetRasterizerDiscardEnable in the current command 159 buffer set pname:rasterizerDiscardEnable to ename:VK_FALSE, and the most 160 recent call to flink:vkCmdSetPolygonModeEXT in the current command 161 buffer set pname:polygonMode to ename:VK_POLYGON_MODE_LINE, 162 flink:vkCmdSetLineWidth must: have been called in the current command 163 buffer prior to this drawing command 164 * [[VUID-{refpage}-None-08618]] 165 If a shader object is bound to any graphics stage, and the most recent 166 call to flink:vkCmdSetRasterizerDiscardEnable in the current command 167 buffer set pname:rasterizerDiscardEnable to ename:VK_FALSE, and the most 168 recent call to flink:vkCmdSetPrimitiveTopology in the current command 169 buffer set pname:primitiveTopology to any line topology, 170 flink:vkCmdSetLineWidth must: have been called in the current command 171 buffer prior to this drawing command 172 * [[VUID-{refpage}-None-08619]] 173 If a shader object that outputs line primitives is bound to the 174 ename:VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or 175 ename:VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to 176 flink:vkCmdSetRasterizerDiscardEnable in the current command buffer set 177 pname:rasterizerDiscardEnable to ename:VK_FALSE, flink:vkCmdSetLineWidth 178 must: have been called in the current command buffer prior to this 179 drawing command 180endif::VK_EXT_shader_object[] 181 * [[VUID-{refpage}-None-07834]] 182 If the bound graphics pipeline state was created with the 183 ename:VK_DYNAMIC_STATE_DEPTH_BIAS dynamic state enabled then 184 flink:vkCmdSetDepthBias 185ifdef::VK_EXT_depth_bias_control[] 186 or flink:vkCmdSetDepthBias2EXT 187endif::VK_EXT_depth_bias_control[] 188 must: have been called in the current command buffer prior to this 189 drawing command 190ifdef::VK_EXT_shader_object[] 191 * [[VUID-{refpage}-None-08620]] 192 If a shader object is bound to any graphics stage, and the most recent 193 call to flink:vkCmdSetRasterizerDiscardEnable in the current command 194 buffer set pname:rasterizerDiscardEnable to ename:VK_FALSE, and the most 195 recent call to flink:vkCmdSetDepthBiasEnable in the current command 196 buffer set pname:depthBiasEnable to ename:VK_TRUE, 197 flink:vkCmdSetDepthBias 198ifdef::VK_EXT_depth_bias_control[] 199 or flink:vkCmdSetDepthBias2EXT 200endif::VK_EXT_depth_bias_control[] 201 must: have been called in the current command buffer prior to this 202 drawing command 203endif::VK_EXT_shader_object[] 204 * [[VUID-{refpage}-None-07835]] 205 If the bound graphics pipeline state was created with the 206 ename:VK_DYNAMIC_STATE_BLEND_CONSTANTS dynamic state enabled then 207 flink:vkCmdSetBlendConstants must: have been called in the current 208 command buffer prior to this drawing command 209ifdef::VK_EXT_shader_object[] 210 * [[VUID-{refpage}-None-08621]] 211 If a shader object is bound to the ename:VK_SHADER_STAGE_FRAGMENT_BIT 212 stage, and the most recent call to flink:vkCmdSetRasterizerDiscardEnable 213 in the current command buffer set pname:rasterizerDiscardEnable to 214 ename:VK_FALSE, and the most recent call to 215 flink:vkCmdSetColorBlendEnableEXT in the current command buffer set any 216 element of pname:pColorBlendEnables to ename:VK_TRUE, and the most 217 recent call to flink:vkCmdSetColorBlendEquationEXT in the current 218 command buffer set the same element of pname:pColorBlendEquations to a 219 sname:VkColorBlendEquationEXT structure with any elink:VkBlendFactor 220 member with a value of ename:VK_BLEND_FACTOR_CONSTANT_COLOR, 221 ename:VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, 222 ename:VK_BLEND_FACTOR_CONSTANT_ALPHA, or 223 ename:VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA, 224 flink:vkCmdSetBlendConstants must: have been called in the current 225 command buffer prior to this drawing command 226endif::VK_EXT_shader_object[] 227 * [[VUID-{refpage}-None-07836]] 228 If the bound graphics pipeline state was created with the 229 ename:VK_DYNAMIC_STATE_DEPTH_BOUNDS dynamic state enabled, and if the 230 current pname:depthBoundsTestEnable state is ename:VK_TRUE, then 231 flink:vkCmdSetDepthBounds must: have been called in the current command 232 buffer prior to this drawing command 233ifdef::VK_EXT_shader_object[] 234 * [[VUID-{refpage}-None-08622]] 235 If a shader object is bound to any graphics stage, and the most recent 236 call to flink:vkCmdSetRasterizerDiscardEnable in the current command 237 buffer set pname:rasterizerDiscardEnable to ename:VK_FALSE, and the most 238 recent call to flink:vkCmdSetDepthBoundsTestEnable in the current 239 command buffer set pname:depthBoundsTestEnable to ename:VK_TRUE, then 240 flink:vkCmdSetDepthBounds must: have been called in the current command 241 buffer prior to this drawing command 242endif::VK_EXT_shader_object[] 243 * [[VUID-{refpage}-None-07837]] 244 If the bound graphics pipeline state was created with the 245 ename:VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK dynamic state enabled, and 246 if the current pname:stencilTestEnable state is ename:VK_TRUE, then 247 flink:vkCmdSetStencilCompareMask must: have been called in the current 248 command buffer prior to this drawing command 249ifdef::VK_EXT_shader_object[] 250 * [[VUID-{refpage}-None-08623]] 251 If a shader object is bound to any graphics stage, and the most recent 252 call to flink:vkCmdSetRasterizerDiscardEnable in the current command 253 buffer set pname:rasterizerDiscardEnable to ename:VK_FALSE, and the most 254 recent call to flink:vkCmdSetStencilTestEnable in the current command 255 buffer set pname:stencilTestEnable to ename:VK_TRUE, 256 flink:vkCmdSetStencilCompareMask must: have been called in the current 257 command buffer prior to this drawing command 258endif::VK_EXT_shader_object[] 259 * [[VUID-{refpage}-None-07838]] 260 If the bound graphics pipeline state was created with the 261 ename:VK_DYNAMIC_STATE_STENCIL_WRITE_MASK dynamic state enabled, and if 262 the current pname:stencilTestEnable state is ename:VK_TRUE, then 263 flink:vkCmdSetStencilWriteMask must: have been called in the current 264 command buffer prior to this drawing command 265ifdef::VK_EXT_shader_object[] 266 * [[VUID-{refpage}-None-08624]] 267 If a shader object is bound to any graphics stage, and the most recent 268 call to flink:vkCmdSetRasterizerDiscardEnable in the current command 269 buffer set pname:rasterizerDiscardEnable to ename:VK_FALSE, and the most 270 recent call to flink:vkCmdSetStencilTestEnable in the current command 271 buffer set pname:stencilTestEnable to ename:VK_TRUE, 272 flink:vkCmdSetStencilWriteMask must: have been called in the current 273 command buffer prior to this drawing command 274endif::VK_EXT_shader_object[] 275 * [[VUID-{refpage}-None-07839]] 276 If the bound graphics pipeline state was created with the 277 ename:VK_DYNAMIC_STATE_STENCIL_REFERENCE dynamic state enabled, and if 278 the current pname:stencilTestEnable state is ename:VK_TRUE, then 279 flink:vkCmdSetStencilReference must: have been called in the current 280 command buffer prior to this drawing command 281ifdef::VK_EXT_shader_object[] 282 * [[VUID-{refpage}-None-08625]] 283 If a shader object is bound to any graphics stage, and the most recent 284 call to flink:vkCmdSetRasterizerDiscardEnable in the current command 285 buffer set pname:rasterizerDiscardEnable to ename:VK_FALSE, and the most 286 recent call to flink:vkCmdSetStencilTestEnable in the current command 287 buffer set pname:stencilTestEnable to ename:VK_TRUE, 288 flink:vkCmdSetStencilReference must: have been called in the current 289 command buffer prior to this drawing command 290endif::VK_EXT_shader_object[] 291ifdef::VK_VERSION_1_1,VK_KHR_multiview[] 292 * [[VUID-{refpage}-maxMultiviewInstanceIndex-02688]] 293 If the draw is recorded in a render pass instance with multiview 294 enabled, the maximum instance index must: be less than or equal to 295 slink:VkPhysicalDeviceMultiviewProperties::pname:maxMultiviewInstanceIndex 296endif::VK_VERSION_1_1,VK_KHR_multiview[] 297ifdef::VK_EXT_sample_locations[] 298 * [[VUID-{refpage}-sampleLocationsEnable-02689]] 299 If the bound graphics pipeline was created with 300 slink:VkPipelineSampleLocationsStateCreateInfoEXT::pname:sampleLocationsEnable 301 set to ename:VK_TRUE and the current subpass has a depth/stencil 302 attachment, then that attachment must: have been created with the 303 ename:VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT bit set 304 * [[VUID-{refpage}-None-06666]] 305 If the bound graphics pipeline state was created with the 306 ename:VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT dynamic state enabled then 307 flink:vkCmdSetSampleLocationsEXT must: have been called in the current 308 command buffer prior to this drawing command 309ifdef::VK_EXT_shader_object[] 310 * [[VUID-{refpage}-None-08626]] 311 If a shader object is bound to any graphics stage, and the most recent 312 call to flink:vkCmdSetRasterizerDiscardEnable in the current command 313 buffer set pname:rasterizerDiscardEnable to ename:VK_FALSE, and the most 314 recent call to flink:vkCmdSetSampleLocationsEnableEXT in the current 315 command buffer set pname:sampleLocationsEnable to ename:VK_TRUE, then 316 flink:vkCmdSetSampleLocationsEXT must: have been called in the current 317 command buffer prior to this drawing command 318endif::VK_EXT_shader_object[] 319 * [[VUID-{refpage}-sampleLocationsPerPixel-07934]] 320 If the bound graphics pipeline state was created with the 321 ename:VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled, then the 322 pname:sampleLocationsPerPixel member of pname:pSampleLocationsInfo in 323 the last call to flink:vkCmdSetSampleLocationsEXT must: equal the 324 pname:rasterizationSamples member of the 325 slink:VkPipelineMultisampleStateCreateInfo structure the bound graphics 326 pipeline has been created with 327endif::VK_EXT_sample_locations[] 328ifdef::VK_VERSION_1_3,VK_EXT_extended_dynamic_state[] 329 * [[VUID-{refpage}-None-07840]] 330 If the bound graphics pipeline state was created with the 331 ename:VK_DYNAMIC_STATE_CULL_MODE dynamic state enabled then 332 flink:vkCmdSetCullMode must: have been called in the current command 333 buffer prior to this drawing command 334ifdef::VK_EXT_shader_object[] 335 * [[VUID-{refpage}-None-08627]] 336 If a shader object is bound to any graphics stage, and the most recent 337 call to flink:vkCmdSetRasterizerDiscardEnable in the current command 338 buffer set pname:rasterizerDiscardEnable to ename:VK_FALSE, then 339 flink:vkCmdSetCullMode must: have been called in the current command 340 buffer prior to this drawing command 341endif::VK_EXT_shader_object[] 342 * [[VUID-{refpage}-None-07841]] 343 If the bound graphics pipeline state was created with the 344 ename:VK_DYNAMIC_STATE_FRONT_FACE dynamic state enabled then 345 flink:vkCmdSetFrontFace must: have been called in the current command 346 buffer prior to this drawing command 347ifdef::VK_EXT_shader_object[] 348 * [[VUID-{refpage}-None-08628]] 349 If a shader object is bound to any graphics stage, and the most recent 350 call to flink:vkCmdSetRasterizerDiscardEnable in the current command 351 buffer set pname:rasterizerDiscardEnable to ename:VK_FALSE, then 352 flink:vkCmdSetFrontFace must: have been called in the current command 353 buffer prior to this drawing command 354endif::VK_EXT_shader_object[] 355 * [[VUID-{refpage}-None-07843]] 356 If the bound graphics pipeline state was created with the 357 ename:VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE dynamic state enabled then 358 flink:vkCmdSetDepthTestEnable must: have been called in the current 359 command buffer prior to this drawing command 360ifdef::VK_EXT_shader_object[] 361 * [[VUID-{refpage}-None-08629]] 362 If a shader object is bound to any graphics stage, and the most recent 363 call to flink:vkCmdSetRasterizerDiscardEnable in the current command 364 buffer set pname:rasterizerDiscardEnable to ename:VK_FALSE, then 365 flink:vkCmdSetDepthTestEnable must: have been called in the current 366 command buffer prior to this drawing command 367endif::VK_EXT_shader_object[] 368 * [[VUID-{refpage}-None-07844]] 369 If the bound graphics pipeline state was created with the 370 ename:VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE dynamic state enabled then 371 flink:vkCmdSetDepthWriteEnable must: have been called in the current 372 command buffer prior to this drawing command 373ifdef::VK_EXT_shader_object[] 374 * [[VUID-{refpage}-None-08630]] 375 If a shader object is bound to any graphics stage, and the most recent 376 call to flink:vkCmdSetRasterizerDiscardEnable in the current command 377 buffer set pname:rasterizerDiscardEnable to ename:VK_FALSE, then 378 flink:vkCmdSetDepthWriteEnable must: have been called in the current 379 command buffer prior to this drawing command 380endif::VK_EXT_shader_object[] 381 * [[VUID-{refpage}-None-07845]] 382 If the bound graphics pipeline state was created with the 383 ename:VK_DYNAMIC_STATE_DEPTH_COMPARE_OP dynamic state enabled then 384 flink:vkCmdSetDepthCompareOp must: have been called in the current 385 command buffer prior to this drawing command 386ifdef::VK_EXT_shader_object[] 387 * [[VUID-{refpage}-None-08631]] 388 If a shader object is bound to any graphics stage, and the most recent 389 call to flink:vkCmdSetRasterizerDiscardEnable in the current command 390 buffer set pname:rasterizerDiscardEnable to ename:VK_FALSE, and the most 391 recent call to flink:vkCmdSetDepthTestEnable in the current command 392 buffer set pname:depthTestEnable to ename:VK_TRUE, then 393 flink:vkCmdSetDepthCompareOp must: have been called in the current 394 command buffer prior to this drawing command 395endif::VK_EXT_shader_object[] 396 * [[VUID-{refpage}-None-07846]] 397 If the bound graphics pipeline state was created with the 398 ename:VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE dynamic state enabled 399 then flink:vkCmdSetDepthBoundsTestEnable must: have been called in the 400 current command buffer prior to this drawing command 401ifdef::VK_EXT_shader_object[] 402 * [[VUID-{refpage}-None-08632]] 403 If a shader object is bound to any graphics stage, and the 404 <<features-depthBounds, pname:depthBounds>> feature is enabled, and the 405 most recent call to flink:vkCmdSetRasterizerDiscardEnable in the current 406 command buffer set pname:rasterizerDiscardEnable to ename:VK_FALSE, then 407 the flink:vkCmdSetDepthBoundsTestEnable must: have been called in the 408 current command buffer prior to this drawing command 409endif::VK_EXT_shader_object[] 410 * [[VUID-{refpage}-None-07847]] 411 If the bound graphics pipeline state was created with the 412 ename:VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE dynamic state enabled then 413 flink:vkCmdSetStencilTestEnable must: have been called in the current 414 command buffer prior to this drawing command 415ifdef::VK_EXT_shader_object[] 416 * [[VUID-{refpage}-None-08633]] 417 If a shader object is bound to any graphics stage, and the most recent 418 call to flink:vkCmdSetRasterizerDiscardEnable in the current command 419 buffer set pname:rasterizerDiscardEnable to ename:VK_FALSE, then 420 flink:vkCmdSetStencilTestEnable must: have been called in the current 421 command buffer prior to this drawing command 422endif::VK_EXT_shader_object[] 423 * [[VUID-{refpage}-None-07848]] 424 If the bound graphics pipeline state was created with the 425 ename:VK_DYNAMIC_STATE_STENCIL_OP dynamic state enabled then 426 flink:vkCmdSetStencilOp must: have been called in the current command 427 buffer prior to this drawing command 428ifdef::VK_EXT_shader_object[] 429 * [[VUID-{refpage}-None-08634]] 430 If a shader object is bound to any graphics stage, and the most recent 431 call to flink:vkCmdSetRasterizerDiscardEnable in the current command 432 buffer set pname:rasterizerDiscardEnable to ename:VK_FALSE, and the most 433 recent call to flink:vkCmdSetStencilTestEnable in the current command 434 buffer set pname:stencilTestEnable to ename:VK_TRUE, then 435 flink:vkCmdSetStencilOp must: have been called in the current command 436 buffer prior to this drawing command 437endif::VK_EXT_shader_object[] 438 * [[VUID-{refpage}-viewportCount-03417]] 439 If the bound graphics pipeline state was created with the 440 ename:VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but 441 not the ename:VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, 442 then flink:vkCmdSetViewportWithCount must: have been called in the 443 current command buffer prior to this drawing command, and the 444 pname:viewportCount parameter of fname:vkCmdSetViewportWithCount must: 445 match the sname:VkPipelineViewportStateCreateInfo::pname:scissorCount of 446 the pipeline 447 * [[VUID-{refpage}-scissorCount-03418]] 448 If the bound graphics pipeline state was created with the 449 ename:VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT dynamic state enabled, but not 450 the ename:VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, 451 then flink:vkCmdSetScissorWithCount must: have been called in the 452 current command buffer prior to this drawing command, and the 453 pname:scissorCount parameter of fname:vkCmdSetScissorWithCount must: 454 match the sname:VkPipelineViewportStateCreateInfo::pname:viewportCount 455 of the pipeline 456 * [[VUID-{refpage}-viewportCount-03419]] 457 If the bound graphics pipeline state was created with both the 458 ename:VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT and 459 ename:VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic states enabled then 460 both flink:vkCmdSetViewportWithCount and flink:vkCmdSetScissorWithCount 461 must: have been called in the current command buffer prior to this 462 drawing command, and the pname:viewportCount parameter of 463 fname:vkCmdSetViewportWithCount must: match the pname:scissorCount 464 parameter of fname:vkCmdSetScissorWithCount 465ifdef::VK_EXT_shader_object[] 466 * [[VUID-{refpage}-None-08635]] 467 If a shader object is bound to any graphics stage, then both 468 flink:vkCmdSetViewportWithCount and flink:vkCmdSetScissorWithCount must: 469 have been called in the current command buffer prior to this drawing 470 command, and the pname:viewportCount parameter of 471 fname:vkCmdSetViewportWithCount must: match the pname:scissorCount 472 parameter of fname:vkCmdSetScissorWithCount 473endif::VK_EXT_shader_object[] 474ifdef::VK_NV_clip_space_w_scaling[] 475 * [[VUID-{refpage}-viewportCount-04137]] 476 If the bound graphics pipeline state was created with the 477 ename:VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but 478 not the ename:VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic state 479 enabled, then the bound graphics pipeline must: have been created with 480 slink:VkPipelineViewportWScalingStateCreateInfoNV::pname:viewportCount 481 greater or equal to the pname:viewportCount parameter in the last call 482 to flink:vkCmdSetViewportWithCount 483 * [[VUID-{refpage}-viewportCount-04138]] 484 If the bound graphics pipeline state was created with the 485 ename:VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and 486 ename:VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV dynamic states enabled then 487 the pname:viewportCount parameter in the last call to 488 flink:vkCmdSetViewportWScalingNV must: be greater than or equal to the 489 pname:viewportCount parameter in the last call to 490 flink:vkCmdSetViewportWithCount 491ifdef::VK_EXT_shader_object[] 492 * [[VUID-{refpage}-None-09232]] 493 If the `apiext:VK_NV_clip_space_w_scaling` extension is enabled, and a 494 shader object is bound to any graphics stage, and the most recent call 495 to flink:vkCmdSetViewportWScalingEnableNV in the current command buffer 496 set pname:viewportWScalingEnable to ename:VK_TRUE, then 497 flink:vkCmdSetViewportWScalingNV must: have been called in the current 498 command buffer prior to this drawing command 499 * [[VUID-{refpage}-None-08636]] 500 If the `apiext:VK_NV_clip_space_w_scaling` extension is enabled, and a 501 shader object is bound to any graphics stage, and the most recent call 502 to flink:vkCmdSetViewportWScalingEnableNV in the current command buffer 503 set pname:viewportWScalingEnable to ename:VK_TRUE, then the 504 pname:viewportCount parameter in the last call to 505 flink:vkCmdSetViewportWScalingNV must: be greater than or equal to the 506 pname:viewportCount parameter in the last call to 507 flink:vkCmdSetViewportWithCount 508endif::VK_EXT_shader_object[] 509endif::VK_NV_clip_space_w_scaling[] 510ifdef::VK_NV_shading_rate_image[] 511 * [[VUID-{refpage}-viewportCount-04139]] 512 If the bound graphics pipeline state was created with the 513 ename:VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but 514 not the ename:VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic 515 state enabled, then the bound graphics pipeline must: have been created 516 with 517 slink:VkPipelineViewportShadingRateImageStateCreateInfoNV::pname:viewportCount 518 greater or equal to the pname:viewportCount parameter in the last call 519 to flink:vkCmdSetViewportWithCount 520 * [[VUID-{refpage}-viewportCount-04140]] 521 If the bound graphics pipeline state was created with the 522 ename:VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and 523 ename:VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV dynamic states 524 enabled then the pname:viewportCount parameter in the last call to 525 flink:vkCmdSetViewportShadingRatePaletteNV must: be greater than or 526 equal to the pname:viewportCount parameter in the last call to 527 flink:vkCmdSetViewportWithCount 528ifdef::VK_EXT_shader_object[] 529 * [[VUID-{refpage}-shadingRateImage-09233]] 530 If the <<features-shadingRateImage, pname:shadingRateImage>> feature is 531 enabled, and a shader object is bound to any graphics stage, and the 532 most recent call to flink:vkCmdSetRasterizerDiscardEnable in the current 533 command buffer set pname:rasterizerDiscardEnable to ename:VK_FALSE, then 534 flink:vkCmdSetCoarseSampleOrderNV must: have been called in the current 535 command buffer prior to this drawing command 536 * [[VUID-{refpage}-shadingRateImage-09234]] 537 If the <<features-shadingRateImage, pname:shadingRateImage>> feature is 538 enabled, and a shader object is bound to any graphics stage, and the 539 most recent call to flink:vkCmdSetRasterizerDiscardEnable in the current 540 command buffer set pname:rasterizerDiscardEnable to ename:VK_FALSE, and 541 the most recent call to flink:vkCmdSetShadingRateImageEnableNV in the 542 current command buffer set pname:shadingRateImageEnable to 543 ename:VK_TRUE, then flink:vkCmdSetViewportShadingRatePaletteNV must: 544 have been called in the current command buffer prior to this drawing 545 command 546 * [[VUID-{refpage}-None-08637]] 547 If the <<features-shadingRateImage, pname:shadingRateImage>> feature is 548 enabled, and a shader object is bound to any graphics stage, and the 549 most recent call to flink:vkCmdSetRasterizerDiscardEnable in the current 550 command buffer set pname:rasterizerDiscardEnable to ename:VK_FALSE, and 551 the most recent call to flink:vkCmdSetShadingRateImageEnableNV in the 552 current command buffer set pname:shadingRateImageEnable to 553 ename:VK_TRUE, then the pname:viewportCount parameter in the last call 554 to flink:vkCmdSetViewportShadingRatePaletteNV must: be greater than or 555 equal to the pname:viewportCount parameter in the last call to 556 flink:vkCmdSetViewportWithCount 557endif::VK_EXT_shader_object[] 558endif::VK_NV_shading_rate_image[] 559ifdef::VK_NV_viewport_swizzle[] 560 * [[VUID-{refpage}-VkPipelineVieportCreateInfo-04141]] 561 If the bound graphics pipeline state was created with the 562 ename:VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a 563 slink:VkPipelineViewportSwizzleStateCreateInfoNV structure chained from 564 slink:VkPipelineViewportStateCreateInfo, then the bound graphics 565 pipeline must: have been created with 566 slink:VkPipelineViewportSwizzleStateCreateInfoNV::pname:viewportCount 567 greater or equal to the pname:viewportCount parameter in the last call 568 to flink:vkCmdSetViewportWithCount 569endif::VK_NV_viewport_swizzle[] 570ifdef::VK_NV_scissor_exclusive[] 571 * [[VUID-{refpage}-VkPipelineVieportCreateInfo-04142]] 572 If the bound graphics pipeline state was created with the 573 ename:VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled and a 574 slink:VkPipelineViewportExclusiveScissorStateCreateInfoNV structure 575 chained from slink:VkPipelineViewportStateCreateInfo, then the bound 576 graphics pipeline must: have been created with 577 slink:VkPipelineViewportExclusiveScissorStateCreateInfoNV::pname:exclusiveScissorCount 578 greater or equal to the pname:viewportCount parameter in the last call 579 to flink:vkCmdSetViewportWithCount 580 * [[VUID-{refpage}-None-07878]] 581 If the bound graphics pipeline state was created with the 582 ename:VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV dynamic state enabled 583 then flink:vkCmdSetExclusiveScissorEnableNV must: have been called in 584 the current command buffer prior to this drawing command 585 * [[VUID-{refpage}-None-07879]] 586 If the bound graphics pipeline state was created with the 587 ename:VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV dynamic state enabled then 588 flink:vkCmdSetExclusiveScissorNV must: have been called in the current 589 command buffer prior to this drawing command 590ifdef::VK_EXT_shader_object[] 591 * [[VUID-{refpage}-exclusiveScissor-09235]] 592 If the <<features-exclusiveScissor, pname:exclusiveScissor>> feature is 593 enabled, and a shader object is bound to any graphics stage, then 594 flink:vkCmdSetExclusiveScissorEnableNV must: have been called in the 595 current command buffer prior to this drawing command 596 * [[VUID-{refpage}-None-08638]] 597 If the <<features-exclusiveScissor, pname:exclusiveScissor>> feature is 598 enabled, and a shader object is bound to any graphics stage, and the 599 most recent call to flink:vkCmdSetExclusiveScissorEnableNV in the 600 current command buffer set any element of pname:pExclusiveScissorEnables 601 to ename:VK_TRUE, then flink:vkCmdSetExclusiveScissorNV must: have been 602 called in the current command buffer prior to this drawing command 603endif::VK_EXT_shader_object[] 604endif::VK_NV_scissor_exclusive[] 605endif::VK_VERSION_1_3,VK_EXT_extended_dynamic_state[] 606ifdef::VK_VERSION_1_3,VK_EXT_extended_dynamic_state2[] 607 * [[VUID-{refpage}-None-04876]] 608 If the bound graphics pipeline state was created with the 609 ename:VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE dynamic state enabled 610 then flink:vkCmdSetRasterizerDiscardEnable must: have been called in the 611 current command buffer prior to this drawing command 612ifdef::VK_EXT_shader_object[] 613 * [[VUID-{refpage}-None-08639]] 614 If a shader object is bound to any graphics stage, then 615 flink:vkCmdSetRasterizerDiscardEnable must: have been called in the 616 current command buffer prior to this drawing command 617endif::VK_EXT_shader_object[] 618 * [[VUID-{refpage}-None-04877]] 619 If the bound graphics pipeline state was created with the 620 ename:VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE dynamic state enabled then 621 flink:vkCmdSetDepthBiasEnable must: have been called in the current 622 command buffer prior to this drawing command 623ifdef::VK_EXT_shader_object[] 624 * [[VUID-{refpage}-None-08640]] 625 If a shader object is bound to any graphics stage, and the most recent 626 call to flink:vkCmdSetRasterizerDiscardEnable in the current command 627 buffer set pname:rasterizerDiscardEnable to ename:VK_FALSE, then 628 flink:vkCmdSetDepthBiasEnable must: have been called in the current 629 command buffer prior to this drawing command 630endif::VK_EXT_shader_object[] 631ifdef::VK_EXT_extended_dynamic_state2[] 632 * [[VUID-{refpage}-logicOp-04878]] 633 If the bound graphics pipeline state was created with the 634 ename:VK_DYNAMIC_STATE_LOGIC_OP_EXT dynamic state enabled then 635 flink:vkCmdSetLogicOpEXT must: have been called in the current command 636 buffer prior to this drawing command and the pname:logicOp must: be a 637 valid elink:VkLogicOp value 638ifdef::VK_EXT_shader_object[] 639 * [[VUID-{refpage}-None-08641]] 640 If a shader object is bound to the ename:VK_SHADER_STAGE_FRAGMENT_BIT 641 stage, and the most recent call to flink:vkCmdSetRasterizerDiscardEnable 642 in the current command buffer set pname:rasterizerDiscardEnable to 643 ename:VK_FALSE, and the most recent call to 644 flink:vkCmdSetLogicOpEnableEXT set pname:logicOpEnable to ename:VK_TRUE, 645 then flink:vkCmdSetLogicOpEXT must: have been called in the current 646 command buffer prior to this drawing command and the pname:logicOp must: 647 be a valid elink:VkLogicOp value 648endif::VK_EXT_shader_object[] 649endif::VK_EXT_extended_dynamic_state2[] 650endif::VK_VERSION_1_3,VK_EXT_extended_dynamic_state2[] 651ifdef::VK_KHR_fragment_shading_rate[] 652ifdef::VK_VERSION_1_3,VK_EXT_extended_dynamic_state[] 653 * [[VUID-{refpage}-primitiveFragmentShadingRateWithMultipleViewports-04552]] 654 If the <<limits-primitiveFragmentShadingRateWithMultipleViewports, 655 pname:primitiveFragmentShadingRateWithMultipleViewports>> limit is not 656 supported, the bound graphics pipeline was created with the 657 ename:VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, and 658 any of the shader stages of the bound graphics pipeline write to the 659 code:PrimitiveShadingRateKHR built-in, then 660 flink:vkCmdSetViewportWithCount must: have been called in the current 661 command buffer prior to this drawing command, and the 662 pname:viewportCount parameter of fname:vkCmdSetViewportWithCount must: 663 be `1` 664ifdef::VK_EXT_shader_object[] 665 * [[VUID-{refpage}-primitiveFragmentShadingRateWithMultipleViewports-08642]] 666 If the <<limits-primitiveFragmentShadingRateWithMultipleViewports, 667 pname:primitiveFragmentShadingRateWithMultipleViewports>> limit is not 668 supported, and any shader object bound to a graphics stage writes to the 669 code:PrimitiveShadingRateKHR built-in, then 670 flink:vkCmdSetViewportWithCount must: have been called in the current 671 command buffer prior to this drawing command, and the 672 pname:viewportCount parameter of fname:vkCmdSetViewportWithCount must: 673 be `1` 674endif::VK_EXT_shader_object[] 675endif::VK_VERSION_1_3,VK_EXT_extended_dynamic_state[] 676endif::VK_KHR_fragment_shading_rate[] 677 * [[VUID-{refpage}-blendEnable-04727]] 678 If rasterization is not disabled in the bound graphics pipeline, then 679 for each color attachment in the subpass, if the corresponding image 680 view's <<resources-image-view-format-features,format features>> do not 681 contain ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the 682 pname:blendEnable member of the corresponding element of the 683 pname:pAttachments member of pname:pColorBlendState must: be 684 ename:VK_FALSE 685ifdef::VK_EXT_shader_object[] 686 * [[VUID-{refpage}-None-08643]] 687 If a shader object is bound to the ename:VK_SHADER_STAGE_FRAGMENT_BIT 688 stage, and the most recent call to flink:vkCmdSetRasterizerDiscardEnable 689 in the current command buffer set pname:rasterizerDiscardEnable to 690 ename:VK_FALSE, then for each color attachment in the render pass, if 691 the corresponding image view's 692 <<resources-image-view-format-features,format features>> do not contain 693 ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT, then the 694 corresponding member of pname:pColorBlendEnables in the most recent call 695 to fname:vkCmdSetColorBlendEnableEXT in the current command buffer that 696 affected that attachment index must: have been ename:VK_FALSE 697endif::VK_EXT_shader_object[] 698ifdef::VK_EXT_multisampled_render_to_single_sampled[] 699 * [[VUID-{refpage}-multisampledRenderToSingleSampled-07284]] 700 If rasterization is not disabled in the bound graphics pipeline, and 701 none of the `apiext:VK_AMD_mixed_attachment_samples` extension, the 702 `apiext:VK_NV_framebuffer_mixed_samples` extension, or the 703 <<features-multisampledRenderToSingleSampled, 704 pname:multisampledRenderToSingleSampled>> feature is enabled, then 705 pname:rasterizationSamples for the currently bound graphics pipeline 706 must: be the same as the current subpass color and/or depth/stencil 707 attachments 708ifdef::VK_EXT_shader_object[] 709 * [[VUID-{refpage}-None-08644]] 710 If a shader object is bound to any graphics stage, and the most recent 711 call to flink:vkCmdSetRasterizerDiscardEnable in the current command 712 buffer set pname:rasterizerDiscardEnable to ename:VK_FALSE, and none of 713 the `apiext:VK_AMD_mixed_attachment_samples` extension, the 714 `apiext:VK_NV_framebuffer_mixed_samples` extension, or the 715 <<features-multisampledRenderToSingleSampled, 716 pname:multisampledRenderToSingleSampled>> feature is enabled, then the 717 most recent call to flink:vkCmdSetRasterizationSamplesEXT in the current 718 command buffer must: have set pname:rasterizationSamples to be the same 719 as the number of samples for the current render pass color and/or 720 depth/stencil attachments 721endif::VK_EXT_shader_object[] 722endif::VK_EXT_multisampled_render_to_single_sampled[] 723ifndef::VK_EXT_multisampled_render_to_single_sampled[] 724 * [[VUID-{refpage}-rasterizationSamples-04740]] 725 If rasterization is not disabled in the bound graphics pipeline, and 726 neither the `apiext:VK_AMD_mixed_attachment_samples` nor the 727 `apiext:VK_NV_framebuffer_mixed_samples` extensions are enabled, then 728 pname:rasterizationSamples for the currently bound graphics pipeline 729 must: be the same as the current subpass color and/or depth/stencil 730 attachments 731ifdef::VK_EXT_shader_object[] 732 * [[VUID-{refpage}-None-08645]] 733 If a shader object is bound to any graphics stage, and the most recent 734 call to flink:vkCmdSetRasterizerDiscardEnable in the current command 735 buffer set pname:rasterizerDiscardEnable to ename:VK_FALSE, and neither 736 the `apiext:VK_AMD_mixed_attachment_samples` nor the 737 `apiext:VK_NV_framebuffer_mixed_samples` extensions are enabled, then 738 the most recent call to flink:vkCmdSetRasterizationSamplesEXT in the 739 current command buffer must: have set pname:rasterizationSamples to be 740 the same as the number of samples for the current render pass color 741 and/or depth/stencil attachments 742endif::VK_EXT_shader_object[] 743endif::VK_EXT_multisampled_render_to_single_sampled[] 744ifdef::VK_VERSION_1_3,VK_KHR_dynamic_rendering[] 745ifdef::VK_EXT_shader_object[] 746 * [[VUID-{refpage}-None-08876]] 747 If a shader object is bound to any graphics stage, the current render 748 pass instance must: have been begun with flink:vkCmdBeginRendering 749endif::VK_EXT_shader_object[] 750 * [[VUID-{refpage}-imageView-06172]] 751 If the current render pass instance was begun with 752 flink:vkCmdBeginRendering, the pname:imageView member of 753 pname:pDepthAttachment is not dlink:VK_NULL_HANDLE, and the pname:layout 754 member of pname:pDepthAttachment is 755 ename:VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command 756 must: not write any values to the depth attachment 757 * [[VUID-{refpage}-imageView-06173]] 758 If the current render pass instance was begun with 759 flink:vkCmdBeginRendering, the pname:imageView member of 760 pname:pStencilAttachment is not dlink:VK_NULL_HANDLE, and the 761 pname:layout member of pname:pStencilAttachment is 762 ename:VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL, this command 763 must: not write any values to the stencil attachment 764ifdef::VK_VERSION_1_1,VK_KHR_maintenance2[] 765 * [[VUID-{refpage}-imageView-06174]] 766 If the current render pass instance was begun with 767 flink:vkCmdBeginRendering, the pname:imageView member of 768 pname:pDepthAttachment is not dlink:VK_NULL_HANDLE, and the pname:layout 769 member of pname:pDepthAttachment is 770 ename:VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, this 771 command must: not write any values to the depth attachment 772 * [[VUID-{refpage}-imageView-06175]] 773 If the current render pass instance was begun with 774 flink:vkCmdBeginRendering, the pname:imageView member of 775 pname:pStencilAttachment is not dlink:VK_NULL_HANDLE, and the 776 pname:layout member of pname:pStencilAttachment is 777 ename:VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, this 778 command must: not write any values to the stencil attachment 779endif::VK_VERSION_1_1,VK_KHR_maintenance2[] 780ifdef::VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts[] 781 * [[VUID-{refpage}-imageView-06176]] 782 If the current render pass instance was begun with 783 flink:vkCmdBeginRendering, the pname:imageView member of 784 pname:pDepthAttachment is not dlink:VK_NULL_HANDLE, and the pname:layout 785 member of pname:pDepthAttachment is 786 ename:VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL, this command must: not 787 write any values to the depth attachment 788 * [[VUID-{refpage}-imageView-06177]] 789 If the current render pass instance was begun with 790 flink:vkCmdBeginRendering, the pname:imageView member of 791 pname:pStencilAttachment is not dlink:VK_NULL_HANDLE, and the 792 pname:layout member of pname:pStencilAttachment is 793 ename:VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL, this command must: not 794 write any values to the stencil attachment 795endif::VK_VERSION_1_2,VK_KHR_separate_depth_stencil_layouts[] 796 * [[VUID-{refpage}-viewMask-06178]] 797 If the current render pass instance was begun with 798 flink:vkCmdBeginRendering, the currently bound graphics pipeline must: 799 have been created with a 800 slink:VkPipelineRenderingCreateInfo::pname:viewMask equal to 801 slink:VkRenderingInfo::pname:viewMask 802 * [[VUID-{refpage}-colorAttachmentCount-06179]] 803 If the current render pass instance was begun with 804 flink:vkCmdBeginRendering, the currently bound graphics pipeline must: 805 have been created with a 806 slink:VkPipelineRenderingCreateInfo::pname:colorAttachmentCount equal to 807 slink:VkRenderingInfo::pname:colorAttachmentCount 808ifndef::VK_EXT_dynamic_rendering_unused_attachments[] 809 * [[VUID-{refpage}-colorAttachmentCount-06180]] 810 If the current render pass instance was begun with 811 flink:vkCmdBeginRendering and 812 slink:VkRenderingInfo::pname:colorAttachmentCount greater than `0`, then 813 each element of the slink:VkRenderingInfo::pname:pColorAttachments array 814 with a pname:imageView not equal to dlink:VK_NULL_HANDLE must: have been 815 created with a elink:VkFormat equal to the corresponding element of 816 slink:VkPipelineRenderingCreateInfo::pname:pColorAttachmentFormats used 817 to create the currently bound graphics pipeline 818 * [[VUID-{refpage}-colorAttachmentCount-07616]] 819 If the current render pass instance was begun with 820 flink:vkCmdBeginRendering and 821 slink:VkRenderingInfo::pname:colorAttachmentCount greater than `0`, then 822 each element of the slink:VkRenderingInfo::pname:pColorAttachments array 823 with a pname:imageView equal to dlink:VK_NULL_HANDLE must: have the 824 corresponding element of 825 slink:VkPipelineRenderingCreateInfo::pname:pColorAttachmentFormats used 826 to create the currently bound pipeline equal to 827 ename:VK_FORMAT_UNDEFINED 828endif::VK_EXT_dynamic_rendering_unused_attachments[] 829ifdef::VK_EXT_dynamic_rendering_unused_attachments[] 830 * [[VUID-{refpage}-dynamicRenderingUnusedAttachments-08910]] 831 If the <<features-dynamicRenderingUnusedAttachments, 832 pname:dynamicRenderingUnusedAttachments>> feature is not enabled, and 833 the current render pass instance was begun with 834 flink:vkCmdBeginRendering and 835 slink:VkRenderingInfo::pname:colorAttachmentCount greater than `0`, then 836 each element of the slink:VkRenderingInfo::pname:pColorAttachments array 837 with a pname:imageView not equal to dlink:VK_NULL_HANDLE must: have been 838 created with a elink:VkFormat equal to the corresponding element of 839 slink:VkPipelineRenderingCreateInfo::pname:pColorAttachmentFormats used 840 to create the currently bound graphics pipeline 841 * [[VUID-{refpage}-dynamicRenderingUnusedAttachments-08911]] 842 If the <<features-dynamicRenderingUnusedAttachments, 843 pname:dynamicRenderingUnusedAttachments>> feature is enabled, and the 844 current render pass instance was begun with flink:vkCmdBeginRendering 845 and slink:VkRenderingInfo::pname:colorAttachmentCount greater than `0`, 846 then each element of the slink:VkRenderingInfo::pname:pColorAttachments 847 array with a pname:imageView not equal to dlink:VK_NULL_HANDLE must: 848 have been created with a elink:VkFormat equal to the corresponding 849 element of 850 slink:VkPipelineRenderingCreateInfo::pname:pColorAttachmentFormats used 851 to create the currently bound graphics pipeline, or the corresponding 852 element of 853 slink:VkPipelineRenderingCreateInfo::pname:pColorAttachmentFormats, if 854 it exists, must: be ename:VK_FORMAT_UNDEFINED 855 * [[VUID-{refpage}-dynamicRenderingUnusedAttachments-08912]] 856 If the <<features-dynamicRenderingUnusedAttachments, 857 pname:dynamicRenderingUnusedAttachments>> feature is not enabled, and 858 the current render pass instance was begun with 859 flink:vkCmdBeginRendering and 860 slink:VkRenderingInfo::pname:colorAttachmentCount greater than `0`, then 861 each element of the slink:VkRenderingInfo::pname:pColorAttachments array 862 with a pname:imageView equal to dlink:VK_NULL_HANDLE must: have the 863 corresponding element of 864 slink:VkPipelineRenderingCreateInfo::pname:pColorAttachmentFormats used 865 to create the currently bound pipeline equal to 866 ename:VK_FORMAT_UNDEFINED 867endif::VK_EXT_dynamic_rendering_unused_attachments[] 868ifdef::VK_ANDROID_external_format_resolve[] 869 * [[VUID-{refpage}-colorAttachmentCount-09362]] 870 If the current render pass instance was begun with 871 flink:vkCmdBeginRendering, with a 872 slink:VkRenderingInfo::pname:colorAttachmentCount equal to `1`, 873ifdef::VK_EXT_shader_object[] 874 there is no shader object bound to any graphics stage, 875endif::VK_EXT_shader_object[] 876 and a color attachment with a resolve mode of 877 ename:VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element 878 of the slink:VkRenderingInfo::pname:pColorAttachments array with a 879 pname:resolveImageView not equal to dlink:VK_NULL_HANDLE must: have been 880 created with an image created with a 881 slink:VkExternalFormatANDROID::pname:externalFormat value equal to the 882 slink:VkExternalFormatANDROID::pname:externalFormat value used to create 883 the currently bound graphics pipeline 884 * [[VUID-{refpage}-None-09363]] 885 If 886ifdef::VK_EXT_shader_object[] 887 there is no shader object bound to any graphics stage, 888endif::VK_EXT_shader_object[] 889 the current render pass instance was begun with 890 flink:vkCmdBeginRendering and a 891 slink:VkRenderingInfo::pname:colorAttachmentCount equal to `1`, and a 892 color attachment with a resolve mode of 893 ename:VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, each element 894 of the slink:VkRenderingInfo::pname:pColorAttachments array with a 895 pname:imageView not equal to dlink:VK_NULL_HANDLE must: have been 896 created with an image created with a 897 slink:VkExternalFormatANDROID::pname:externalFormat value equal to the 898 slink:VkExternalFormatANDROID::pname:externalFormat value used to create 899 the currently bound graphics pipeline 900ifdef::VK_EXT_extended_dynamic_state3[] 901 * [[VUID-{refpage}-None-09364]] 902 If the current render pass instance was begun with 903 flink:vkCmdBeginRendering, 904ifdef::VK_EXT_shader_object[] 905 there is no shader object bound to any graphics stage, 906endif::VK_EXT_shader_object[] 907 and the currently bound graphics pipeline was created with a non-zero 908 slink:VkExternalFormatANDROID::pname:externalFormat value and with the 909 ename:VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled, 910 then flink:vkCmdSetColorBlendEnableEXT must: have set the blend enable 911 to ename:VK_FALSE prior to this drawing command 912 * [[VUID-{refpage}-None-09365]] 913 If the current render pass instance was begun with 914 flink:vkCmdBeginRendering, 915ifdef::VK_EXT_shader_object[] 916 there is no shader object bound to any graphics stage, 917endif::VK_EXT_shader_object[] 918 and the currently bound graphics pipeline was created with a non-zero 919 slink:VkExternalFormatANDROID::pname:externalFormat value and with the 920 ename:VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled, 921 then flink:vkCmdSetRasterizationSamplesEXT must: have set 922 pname:rasterizationSamples to ename:VK_SAMPLE_COUNT_1_BIT prior to this 923 drawing command 924ifdef::VK_EXT_shader_object[] 925 * [[VUID-{refpage}-None-09366]] 926 If there is a shader object bound to any graphics stage, and the current 927 render pass includes a color attachment that uses the 928 ename:VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, 929 then flink:vkCmdSetColorBlendEnableEXT must: have set blend enable to 930 ename:VK_FALSE prior to this drawing command 931 * [[VUID-{refpage}-rasterizationSamples-09367]] 932 If there is a shader object bound to any graphics stage, and the current 933 render pass includes a color attachment that uses the 934 ename:VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, 935 then flink:vkCmdSetRasterizationSamplesEXT must: have set 936 pname:rasterizationSamples to ename:VK_SAMPLE_COUNT_1_BIT prior to this 937 drawing command 938endif::VK_EXT_shader_object[] 939endif::VK_EXT_extended_dynamic_state3[] 940ifdef::VK_KHR_fragment_shading_rate[] 941 * [[VUID-{refpage}-None-09368]] 942 If the current render pass instance was begun with 943 flink:vkCmdBeginRendering, 944ifdef::VK_EXT_shader_object[] 945 there is no shader object bound to any graphics stage, 946endif::VK_EXT_shader_object[] 947 and the currently bound graphics pipeline was created with a non-zero 948 slink:VkExternalFormatANDROID::pname:externalFormat value and with the 949 ename:VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, 950 then flink:vkCmdSetFragmentShadingRateKHR must: have set 951 pname:pFragmentSize->width to `1` prior to this drawing command 952 * [[VUID-{refpage}-None-09369]] 953 If the current render pass instance was begun with 954 flink:vkCmdBeginRendering, 955ifdef::VK_EXT_shader_object[] 956 there is no shader object bound to any graphics stage, 957endif::VK_EXT_shader_object[] 958 and the currently bound graphics pipeline was created with a non-zero 959 slink:VkExternalFormatANDROID::pname:externalFormat value and with the 960 ename:VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR dynamic state enabled, 961 then flink:vkCmdSetFragmentShadingRateKHR must: have set 962 pname:pFragmentSize->height to `1` prior to this drawing command 963ifdef::VK_EXT_shader_object[] 964 * [[VUID-{refpage}-pFragmentSize-09370]] 965 If there is a shader object bound to any graphics stage, and the current 966 render pass includes a color attachment that uses the 967 ename:VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, 968 then flink:vkCmdSetFragmentShadingRateKHR must: have set 969 pname:pFragmentSize->width to `1` prior to this drawing command 970 * [[VUID-{refpage}-pFragmentSize-09371]] 971 If there is a shader object bound to any graphics stage, and the current 972 render pass includes a color attachment that uses the 973 ename:VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID resolve mode, 974 then flink:vkCmdSetFragmentShadingRateKHR must: have set 975 pname:pFragmentSize->height to `1` prior to this drawing command 976endif::VK_EXT_shader_object[] 977endif::VK_KHR_fragment_shading_rate[] 978endif::VK_ANDROID_external_format_resolve[] 979ifdef::VK_EXT_color_write_enable[] 980 * [[VUID-{refpage}-None-07749]] 981 If the bound graphics pipeline state was created with the 982 ename:VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then 983 flink:vkCmdSetColorWriteEnableEXT must: have been called in the current 984 command buffer prior to this drawing command 985ifdef::VK_EXT_shader_object[] 986 * [[VUID-{refpage}-None-08646]] 987 If the <<features-colorWriteEnable, pname:colorWriteEnable>> feature is 988 enabled on the device, and a shader object is bound to the 989 ename:VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to 990 flink:vkCmdSetRasterizerDiscardEnable in the current command buffer set 991 pname:rasterizerDiscardEnable to ename:VK_FALSE, then 992 flink:vkCmdSetColorWriteEnableEXT must: have been called in the current 993 command buffer prior to this drawing command 994endif::VK_EXT_shader_object[] 995 * [[VUID-{refpage}-attachmentCount-07750]] 996 If the bound graphics pipeline state was created with the 997 ename:VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT dynamic state enabled then 998 the pname:attachmentCount parameter of fname:vkCmdSetColorWriteEnableEXT 999 must: be greater than or equal to the 1000 sname:VkPipelineColorBlendStateCreateInfo::pname:attachmentCount of the 1001 currently bound graphics pipeline 1002ifdef::VK_EXT_shader_object[] 1003 * [[VUID-{refpage}-None-08647]] 1004 If the <<features-colorWriteEnable, pname:colorWriteEnable>> feature is 1005 enabled on the device, and a shader object is bound to the 1006 ename:VK_SHADER_STAGE_FRAGMENT_BIT stage, and the most recent call to 1007 flink:vkCmdSetRasterizerDiscardEnable in the current command buffer set 1008 pname:rasterizerDiscardEnable to ename:VK_FALSE, then the 1009 pname:attachmentCount parameter of most recent call to 1010 fname:vkCmdSetColorWriteEnableEXT in the current command buffer must: be 1011 greater than or equal to the number of color attachments in the current 1012 render pass instance 1013endif::VK_EXT_shader_object[] 1014endif::VK_EXT_color_write_enable[] 1015ifdef::VK_EXT_discard_rectangles[] 1016 * [[VUID-{refpage}-None-07751]] 1017 If the bound graphics pipeline state was created with the 1018 ename:VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT dynamic state enabled then 1019 flink:vkCmdSetDiscardRectangleEXT must: have been called in the current 1020 command buffer prior to this drawing command for each discard rectangle 1021 in 1022 slink:VkPipelineDiscardRectangleStateCreateInfoEXT::pname:discardRectangleCount 1023 * [[VUID-{refpage}-None-07880]] 1024 If the bound graphics pipeline state was created with the 1025 ename:VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT dynamic state 1026 enabled then flink:vkCmdSetDiscardRectangleEnableEXT must: have been 1027 called in the current command buffer prior to this drawing command 1028ifdef::VK_EXT_shader_object[] 1029 * [[VUID-{refpage}-rasterizerDiscardEnable-09236]] 1030 If the `apiext:VK_EXT_discard_rectangles` extension is enabled, and a 1031 shader object is bound to any graphics stage, and the most recent call 1032 to flink:vkCmdSetRasterizerDiscardEnable in the current command buffer 1033 set pname:rasterizerDiscardEnable to ename:VK_FALSE, and the most recent 1034 call to flink:vkCmdSetDiscardRectangleEnableEXT in the current command 1035 buffer set pname:discardRectangleEnable to ename:VK_TRUE, then 1036 flink:vkCmdSetDiscardRectangleEXT must: have been called in the current 1037 command buffer prior to this drawing command 1038 * [[VUID-{refpage}-None-08648]] 1039 If the `apiext:VK_EXT_discard_rectangles` extension is enabled, and a 1040 shader object is bound to any graphics stage, and the most recent call 1041 to flink:vkCmdSetRasterizerDiscardEnable in the current command buffer 1042 set pname:rasterizerDiscardEnable to ename:VK_FALSE, then 1043 flink:vkCmdSetDiscardRectangleEnableEXT must: have been called in the 1044 current command buffer prior to this drawing command 1045endif::VK_EXT_shader_object[] 1046 * [[VUID-{refpage}-None-07881]] 1047 If the bound graphics pipeline state was created with the 1048 ename:VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT dynamic state enabled 1049 then flink:vkCmdSetDiscardRectangleModeEXT must: have been called in the 1050 current command buffer prior to this drawing command 1051ifdef::VK_EXT_shader_object[] 1052 * [[VUID-{refpage}-None-08649]] 1053 If the `apiext:VK_EXT_discard_rectangles` extension is enabled, and a 1054 shader object is bound to any graphics stage, and the most recent call 1055 to flink:vkCmdSetRasterizerDiscardEnable in the current command buffer 1056 set pname:rasterizerDiscardEnable to ename:VK_FALSE, and the most recent 1057 call to flink:vkCmdSetDiscardRectangleEnableEXT in the current command 1058 buffer set pname:discardRectangleEnable to ename:VK_TRUE, then 1059 flink:vkCmdSetDiscardRectangleModeEXT must: have been called in the 1060 current command buffer prior to this drawing command 1061endif::VK_EXT_shader_object[] 1062endif::VK_EXT_discard_rectangles[] 1063ifndef::VK_EXT_dynamic_rendering_unused_attachments[] 1064 * [[VUID-{refpage}-pDepthAttachment-06181]] 1065 If the current render pass instance was begun with 1066 flink:vkCmdBeginRendering and 1067 slink:VkRenderingInfo::pname:pDepthAttachment->imageView was not 1068 dlink:VK_NULL_HANDLE, the value of 1069 slink:VkPipelineRenderingCreateInfo::pname:depthAttachmentFormat used to 1070 create the currently bound graphics pipeline must: be equal to the 1071 elink:VkFormat used to create 1072 slink:VkRenderingInfo::pname:pDepthAttachment->imageView 1073 * [[VUID-{refpage}-pDepthAttachment-07617]] 1074 If the current render pass instance was begun with 1075 flink:vkCmdBeginRendering and 1076 slink:VkRenderingInfo::pname:pDepthAttachment->imageView was 1077 dlink:VK_NULL_HANDLE, the value of 1078 slink:VkPipelineRenderingCreateInfo::pname:depthAttachmentFormat used to 1079 create the currently bound graphics pipeline must: be equal to 1080 ename:VK_FORMAT_UNDEFINED 1081endif::VK_EXT_dynamic_rendering_unused_attachments[] 1082ifdef::VK_EXT_dynamic_rendering_unused_attachments[] 1083 * [[VUID-{refpage}-dynamicRenderingUnusedAttachments-08913]] 1084 If the current render pass instance was begun with 1085 flink:vkCmdBeginRendering, the 1086 <<features-dynamicRenderingUnusedAttachments,pname:dynamicRenderingUnusedAttachments>> 1087 feature is not enabled, and 1088 slink:VkRenderingInfo::pname:pDepthAttachment->imageView was 1089 dlink:VK_NULL_HANDLE, the value of 1090 slink:VkPipelineRenderingCreateInfo::pname:depthAttachmentFormat used to 1091 create the currently bound graphics pipeline must: be equal to 1092 ename:VK_FORMAT_UNDEFINED 1093 * [[VUID-{refpage}-dynamicRenderingUnusedAttachments-08914]] 1094 If current render pass instance was begun with 1095 flink:vkCmdBeginRendering, the 1096 <<features-dynamicRenderingUnusedAttachments,pname:dynamicRenderingUnusedAttachments>> 1097 feature is not enabled, and 1098 slink:VkRenderingInfo::pname:pDepthAttachment->imageView was not 1099 dlink:VK_NULL_HANDLE, the value of 1100 slink:VkPipelineRenderingCreateInfo::pname:depthAttachmentFormat used to 1101 create the currently bound graphics pipeline must: be equal to the 1102 elink:VkFormat used to create 1103 slink:VkRenderingInfo::pname:pDepthAttachment->imageView 1104 * [[VUID-{refpage}-dynamicRenderingUnusedAttachments-08915]] 1105 If the current render pass instance was begun with 1106 flink:vkCmdBeginRendering, the 1107 <<features-dynamicRenderingUnusedAttachments, 1108 pname:dynamicRenderingUnusedAttachments>> feature is enabled, 1109 slink:VkRenderingInfo::pname:pDepthAttachment->imageView was not 1110 dlink:VK_NULL_HANDLE, and the value of 1111 slink:VkPipelineRenderingCreateInfo::pname:depthAttachmentFormat used to 1112 create the currently bound graphics pipeline was not equal to the 1113 elink:VkFormat used to create 1114 slink:VkRenderingInfo::pname:pDepthAttachment->imageView, the value of 1115 the format must: be ename:VK_FORMAT_UNDEFINED 1116endif::VK_EXT_dynamic_rendering_unused_attachments[] 1117ifndef::VK_EXT_dynamic_rendering_unused_attachments[] 1118 * [[VUID-{refpage}-pStencilAttachment-06182]] 1119 If the current render pass instance was begun with 1120 flink:vkCmdBeginRendering and 1121 slink:VkRenderingInfo::pname:pStencilAttachment->imageView was not 1122 dlink:VK_NULL_HANDLE, the value of 1123 slink:VkPipelineRenderingCreateInfo::pname:stencilAttachmentFormat used 1124 to create the currently bound graphics pipeline must: be equal to the 1125 elink:VkFormat used to create 1126 slink:VkRenderingInfo::pname:pStencilAttachment->imageView 1127 * [[VUID-{refpage}-pStencilAttachment-07618]] 1128 If the current render pass instance was begun with 1129 flink:vkCmdBeginRendering and 1130 slink:VkRenderingInfo::pname:pStencilAttachment->imageView was 1131 dlink:VK_NULL_HANDLE, the value of 1132 slink:VkPipelineRenderingCreateInfo::pname:stencilAttachmentFormat used 1133 to create the currently bound graphics pipeline must: be equal to 1134 ename:VK_FORMAT_UNDEFINED 1135endif::VK_EXT_dynamic_rendering_unused_attachments[] 1136ifdef::VK_EXT_dynamic_rendering_unused_attachments[] 1137 * [[VUID-{refpage}-dynamicRenderingUnusedAttachments-08916]] 1138 If the current render pass instance was begun with 1139 flink:vkCmdBeginRendering, the 1140 <<features-dynamicRenderingUnusedAttachments,pname:dynamicRenderingUnusedAttachments>> 1141 feature is not enabled, and 1142 slink:VkRenderingInfo::pname:pStencilAttachment->imageView was 1143 dlink:VK_NULL_HANDLE, the value of 1144 slink:VkPipelineRenderingCreateInfo::pname:stencilAttachmentFormat used 1145 to create the currently bound graphics pipeline must: be equal to 1146 ename:VK_FORMAT_UNDEFINED 1147 * [[VUID-{refpage}-dynamicRenderingUnusedAttachments-08917]] 1148 If current render pass instance was begun with 1149 flink:vkCmdBeginRendering, the 1150 <<features-dynamicRenderingUnusedAttachments,pname:dynamicRenderingUnusedAttachments>> 1151 feature is not enabled, and 1152 slink:VkRenderingInfo::pname:pStencilAttachment->imageView was not 1153 dlink:VK_NULL_HANDLE, the value of 1154 slink:VkPipelineRenderingCreateInfo::pname:stencilAttachmentFormat used 1155 to create the currently bound graphics pipeline must: be equal to the 1156 elink:VkFormat used to create 1157 slink:VkRenderingInfo::pname:pStencilAttachment->imageView 1158 * [[VUID-{refpage}-dynamicRenderingUnusedAttachments-08918]] 1159 If the current render pass instance was begun with 1160 flink:vkCmdBeginRendering, the 1161 <<features-dynamicRenderingUnusedAttachments, 1162 pname:dynamicRenderingUnusedAttachments>> feature is enabled, 1163 slink:VkRenderingInfo::pname:pStencilAttachment->imageView was not 1164 dlink:VK_NULL_HANDLE, and the value of 1165 slink:VkPipelineRenderingCreateInfo::pname:stencilAttachmentFormat used 1166 to create the currently bound graphics pipeline was not equal to the 1167 elink:VkFormat used to create 1168 slink:VkRenderingInfo::pname:pStencilAttachment->imageView, the value of 1169 the format must: be ename:VK_FORMAT_UNDEFINED 1170endif::VK_EXT_dynamic_rendering_unused_attachments[] 1171ifdef::VK_KHR_fragment_shading_rate[] 1172 * [[VUID-{refpage}-imageView-06183]] 1173 If the current render pass instance was begun with 1174 flink:vkCmdBeginRendering and 1175 slink:VkRenderingFragmentShadingRateAttachmentInfoKHR::pname:imageView 1176 was not dlink:VK_NULL_HANDLE, the currently bound graphics pipeline 1177 must: have been created with 1178 ename:VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR 1179endif::VK_KHR_fragment_shading_rate[] 1180ifdef::VK_EXT_fragment_density_map[] 1181 * [[VUID-{refpage}-imageView-06184]] 1182 If the current render pass instance was begun with 1183 flink:vkCmdBeginRendering and 1184 slink:VkRenderingFragmentDensityMapAttachmentInfoEXT::pname:imageView 1185 was not dlink:VK_NULL_HANDLE, the currently bound graphics pipeline 1186 must: have been created with 1187 ename:VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT 1188endif::VK_EXT_fragment_density_map[] 1189ifdef::VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples[] 1190 * [[VUID-{refpage}-colorAttachmentCount-06185]] 1191 If the currently bound pipeline was created with a 1192 slink:VkAttachmentSampleCountInfoAMD or 1193 slink:VkAttachmentSampleCountInfoNV structure, and the current render 1194 pass instance was begun with flink:vkCmdBeginRendering with a 1195 slink:VkRenderingInfo::pname:colorAttachmentCount parameter greater than 1196 `0`, then each element of the 1197 slink:VkRenderingInfo::pname:pColorAttachments array with a 1198 pname:imageView not equal to dlink:VK_NULL_HANDLE must: have been 1199 created with a sample count equal to the corresponding element of the 1200 pname:pColorAttachmentSamples member of 1201 slink:VkAttachmentSampleCountInfoAMD or 1202 slink:VkAttachmentSampleCountInfoNV used to create the currently bound 1203 graphics pipeline 1204 * [[VUID-{refpage}-pDepthAttachment-06186]] 1205 If the current render pass instance was begun with 1206 flink:vkCmdBeginRendering, the currently bound pipeline was created with 1207 a slink:VkAttachmentSampleCountInfoAMD or 1208 slink:VkAttachmentSampleCountInfoNV structure, and 1209 slink:VkRenderingInfo::pname:pDepthAttachment->imageView was not 1210 dlink:VK_NULL_HANDLE, the value of the 1211 pname:depthStencilAttachmentSamples member of 1212 slink:VkAttachmentSampleCountInfoAMD or 1213 slink:VkAttachmentSampleCountInfoNV used to create the currently bound 1214 graphics pipeline must: be equal to the sample count used to create 1215 slink:VkRenderingInfo::pname:pDepthAttachment->imageView 1216 * [[VUID-{refpage}-pStencilAttachment-06187]] 1217 If the current render pass instance was begun with 1218 flink:vkCmdBeginRendering, the currently bound pipeline was created with 1219 a slink:VkAttachmentSampleCountInfoAMD or 1220 slink:VkAttachmentSampleCountInfoNV structure, and 1221 slink:VkRenderingInfo::pname:pStencilAttachment->imageView was not 1222 dlink:VK_NULL_HANDLE, the value of the 1223 pname:depthStencilAttachmentSamples member of 1224 slink:VkAttachmentSampleCountInfoAMD or 1225 slink:VkAttachmentSampleCountInfoNV used to create the currently bound 1226 graphics pipeline must: be equal to the sample count used to create 1227 slink:VkRenderingInfo::pname:pStencilAttachment->imageView 1228ifdef::VK_EXT_multisampled_render_to_single_sampled[] 1229 * [[VUID-{refpage}-multisampledRenderToSingleSampled-07285]] 1230 If the currently bound pipeline was created without a 1231 slink:VkAttachmentSampleCountInfoAMD or 1232 slink:VkAttachmentSampleCountInfoNV structure, and the 1233 <<features-multisampledRenderToSingleSampled, 1234 pname:multisampledRenderToSingleSampled>> feature is not enabled, and 1235 the current render pass instance was begun with 1236 flink:vkCmdBeginRendering with a 1237 slink:VkRenderingInfo::pname:colorAttachmentCount parameter greater than 1238 `0`, then each element of the 1239 slink:VkRenderingInfo::pname:pColorAttachments array with a 1240 pname:imageView not equal to dlink:VK_NULL_HANDLE must: have been 1241 created with a sample count equal to the value of 1242 pname:rasterizationSamples for the currently bound graphics pipeline 1243 * [[VUID-{refpage}-multisampledRenderToSingleSampled-07286]] 1244 If the current render pass instance was begun with 1245 flink:vkCmdBeginRendering, the currently bound pipeline was created 1246 without a slink:VkAttachmentSampleCountInfoAMD or 1247 slink:VkAttachmentSampleCountInfoNV structure, and the 1248 <<features-multisampledRenderToSingleSampled, 1249 pname:multisampledRenderToSingleSampled>> feature is not enabled, and 1250 slink:VkRenderingInfo::pname:pDepthAttachment->imageView was not 1251 dlink:VK_NULL_HANDLE, the value of pname:rasterizationSamples for the 1252 currently bound graphics pipeline must: be equal to the sample count 1253 used to create slink:VkRenderingInfo::pname:pDepthAttachment->imageView 1254 * [[VUID-{refpage}-multisampledRenderToSingleSampled-07287]] 1255 If the current render pass instance was begun with 1256 flink:vkCmdBeginRendering, the currently bound pipeline was created 1257 without a slink:VkAttachmentSampleCountInfoAMD or 1258 slink:VkAttachmentSampleCountInfoNV structure, and the 1259 <<features-multisampledRenderToSingleSampled, 1260 pname:multisampledRenderToSingleSampled>> feature is not enabled, and 1261 slink:VkRenderingInfo::pname:pStencilAttachment->imageView was not 1262 dlink:VK_NULL_HANDLE, the value of pname:rasterizationSamples for the 1263 currently bound graphics pipeline must: be equal to the sample count 1264 used to create 1265 slink:VkRenderingInfo::pname:pStencilAttachment->imageView 1266 * [[VUID-{refpage}-pNext-07935]] 1267 If this command has been called inside a render pass instance started 1268 with flink:vkCmdBeginRendering, and the pname:pNext chain of 1269 slink:VkRenderingInfo includes a 1270 slink:VkMultisampledRenderToSingleSampledInfoEXT structure with 1271 pname:multisampledRenderToSingleSampledEnable equal to ename:VK_TRUE, 1272 then the value of pname:rasterizationSamples for the currently bound 1273 graphics pipeline must: be equal to 1274 slink:VkMultisampledRenderToSingleSampledInfoEXT::pname:rasterizationSamples 1275endif::VK_EXT_multisampled_render_to_single_sampled[] 1276ifndef::VK_EXT_multisampled_render_to_single_sampled[] 1277 * [[VUID-{refpage}-colorAttachmentCount-06188]] 1278 If the currently bound pipeline was created without a 1279 slink:VkAttachmentSampleCountInfoAMD or 1280 slink:VkAttachmentSampleCountInfoNV structure, and the current render 1281 pass instance was begun with flink:vkCmdBeginRendering with a 1282 slink:VkRenderingInfo::pname:colorAttachmentCount parameter greater than 1283 `0`, then each element of the 1284 slink:VkRenderingInfo::pname:pColorAttachments array with a 1285 pname:imageView not equal to dlink:VK_NULL_HANDLE must: have been 1286 created with a sample count equal to the value of 1287 pname:rasterizationSamples for the currently bound graphics pipeline 1288 * [[VUID-{refpage}-pDepthAttachment-06189]] 1289 If the current render pass instance was begun with 1290 flink:vkCmdBeginRendering, the currently bound pipeline was created 1291 without a slink:VkAttachmentSampleCountInfoAMD or 1292 slink:VkAttachmentSampleCountInfoNV structure, and 1293 slink:VkRenderingInfo::pname:pDepthAttachment->imageView was not 1294 dlink:VK_NULL_HANDLE, the value of pname:rasterizationSamples for the 1295 currently bound graphics pipeline must: be equal to the sample count 1296 used to create slink:VkRenderingInfo::pname:pDepthAttachment->imageView 1297 * [[VUID-{refpage}-pStencilAttachment-06190]] 1298 If the current render pass instance was begun with 1299 flink:vkCmdBeginRendering, the currently bound pipeline was created 1300 without a slink:VkAttachmentSampleCountInfoAMD or 1301 slink:VkAttachmentSampleCountInfoNV structure, and 1302 slink:VkRenderingInfo::pname:pStencilAttachment->imageView was not 1303 dlink:VK_NULL_HANDLE, the value of pname:rasterizationSamples for the 1304 currently bound graphics pipeline must: be equal to the sample count 1305 used to create 1306 slink:VkRenderingInfo::pname:pStencilAttachment->imageView 1307endif::VK_EXT_multisampled_render_to_single_sampled[] 1308 * [[VUID-{refpage}-renderPass-06198]] 1309 If the current render pass instance was begun with 1310 flink:vkCmdBeginRendering, the currently bound pipeline must: have been 1311 created with a slink:VkGraphicsPipelineCreateInfo::pname:renderPass 1312 equal to dlink:VK_NULL_HANDLE 1313endif::VK_AMD_mixed_attachment_samples,VK_NV_framebuffer_mixed_samples[] 1314 * [[VUID-{refpage}-pColorAttachments-08963]] 1315 If the current render pass instance was begun with 1316 flink:vkCmdBeginRendering, there is a graphics pipeline bound with a 1317 fragment shader that statically writes to a color attachment, the color 1318 write mask is not zero, color writes are enabled, and the corresponding 1319 element of the slink:VkRenderingInfo::pname:pColorAttachments->imageView 1320 was not dlink:VK_NULL_HANDLE, then the corresponding element of 1321 slink:VkPipelineRenderingCreateInfo::pname:pColorAttachmentFormats used 1322 to create the pipeline must: not be ename:VK_FORMAT_UNDEFINED 1323 * [[VUID-{refpage}-pDepthAttachment-08964]] 1324 If the current render pass instance was begun with 1325 flink:vkCmdBeginRendering, there is a graphics pipeline bound, depth 1326 test is enabled, depth write is enabled, and the 1327 slink:VkRenderingInfo::pname:pDepthAttachment->imageView was not 1328 dlink:VK_NULL_HANDLE, then the 1329 slink:VkPipelineRenderingCreateInfo::pname:depthAttachmentFormat used to 1330 create the pipeline must: not be ename:VK_FORMAT_UNDEFINED 1331 * [[VUID-{refpage}-pStencilAttachment-08965]] 1332 If the current render pass instance was begun with 1333 flink:vkCmdBeginRendering, there is a graphics pipeline bound, stencil 1334 test is enabled and the 1335 slink:VkRenderingInfo::pname:pStencilAttachment->imageView was not 1336 dlink:VK_NULL_HANDLE, then the 1337 slink:VkPipelineRenderingCreateInfo::pname:stencilAttachmentFormat used 1338 to create the pipeline must: not be ename:VK_FORMAT_UNDEFINED 1339endif::VK_VERSION_1_3,VK_KHR_dynamic_rendering[] 1340ifdef::VK_EXT_primitives_generated_query[] 1341 * [[VUID-{refpage}-primitivesGeneratedQueryWithRasterizerDiscard-06708]] 1342 If the <<features-primitivesGeneratedQueryWithRasterizerDiscard, 1343 pname:primitivesGeneratedQueryWithRasterizerDiscard>> feature is not 1344 enabled and the ename:VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is 1345 active, <<primsrast-discard,rasterization discard>> must: not be enabled 1346ifdef::VK_EXT_transform_feedback[] 1347 * [[VUID-{refpage}-primitivesGeneratedQueryWithNonZeroStreams-06709]] 1348 If the <<features-primitivesGeneratedQueryWithNonZeroStreams, 1349 pname:primitivesGeneratedQueryWithNonZeroStreams>> feature is not 1350 enabled and the ename:VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is 1351 active, the bound graphics pipeline must: not have been created with a 1352 non-zero value in 1353 sname:VkPipelineRasterizationStateStreamCreateInfoEXT::pname:rasterizationStream 1354endif::VK_EXT_transform_feedback[] 1355endif::VK_EXT_primitives_generated_query[] 1356ifdef::VK_EXT_extended_dynamic_state3,VK_EXT_shader_object[] 1357ifdef::VK_EXT_extended_dynamic_state3[] 1358 * [[VUID-{refpage}-None-07619]] 1359 If the bound graphics pipeline state was created with the 1360 ename:VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT dynamic state 1361 enabled then flink:vkCmdSetTessellationDomainOriginEXT must: have been 1362 called in the current command buffer prior to this drawing command 1363 * [[VUID-{refpage}-None-07620]] 1364 If the bound graphics pipeline state was created with the 1365 ename:VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT dynamic state enabled then 1366 flink:vkCmdSetDepthClampEnableEXT must: have been called in the current 1367 command buffer prior to this drawing command 1368endif::VK_EXT_extended_dynamic_state3[] 1369ifdef::VK_EXT_shader_object[] 1370 * [[VUID-{refpage}-None-09237]] 1371 If a shader object is bound to the 1372 ename:VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT stage, then 1373 flink:vkCmdSetTessellationDomainOriginEXT must: have been called in the 1374 current command buffer prior to this drawing command 1375 * [[VUID-{refpage}-None-08650]] 1376 If the <<features-depthClamp, pname:depthClamp>> feature is enabled, and 1377 a shader object is bound to any graphics stage, and the most recent call 1378 to flink:vkCmdSetRasterizerDiscardEnable in the current command buffer 1379 set pname:rasterizerDiscardEnable to ename:VK_FALSE, then 1380 flink:vkCmdSetDepthClampEnableEXT must: have been called in the current 1381 command buffer prior to this drawing command 1382endif::VK_EXT_shader_object[] 1383ifdef::VK_EXT_extended_dynamic_state3[] 1384 * [[VUID-{refpage}-None-07621]] 1385 If the bound graphics pipeline state was created with the 1386 ename:VK_DYNAMIC_STATE_POLYGON_MODE_EXT dynamic state enabled then 1387 flink:vkCmdSetPolygonModeEXT must: have been called in the current 1388 command buffer prior to this drawing command 1389endif::VK_EXT_extended_dynamic_state3[] 1390ifdef::VK_EXT_shader_object[] 1391 * [[VUID-{refpage}-None-08651]] 1392 If a shader object is bound to any graphics stage, and the most recent 1393 call to flink:vkCmdSetRasterizerDiscardEnable in the current command 1394 buffer set pname:rasterizerDiscardEnable to ename:VK_FALSE, then 1395 flink:vkCmdSetPolygonModeEXT must: have been called in the current 1396 command buffer prior to this drawing command 1397endif::VK_EXT_shader_object[] 1398ifdef::VK_EXT_extended_dynamic_state3[] 1399 * [[VUID-{refpage}-None-07622]] 1400 If the bound graphics pipeline state was created with the 1401 ename:VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT dynamic state enabled 1402 then flink:vkCmdSetRasterizationSamplesEXT must: have been called in the 1403 current command buffer prior to this drawing command 1404endif::VK_EXT_extended_dynamic_state3[] 1405ifdef::VK_EXT_shader_object[] 1406 * [[VUID-{refpage}-None-08652]] 1407 If a shader object is bound to any graphics stage, and the most recent 1408 call to flink:vkCmdSetRasterizerDiscardEnable in the current command 1409 buffer set pname:rasterizerDiscardEnable to ename:VK_FALSE, then 1410 flink:vkCmdSetRasterizationSamplesEXT must: have been called in the 1411 current command buffer prior to this drawing command 1412endif::VK_EXT_shader_object[] 1413ifdef::VK_EXT_extended_dynamic_state3[] 1414 * [[VUID-{refpage}-None-07623]] 1415 If the bound graphics pipeline state was created with the 1416 ename:VK_DYNAMIC_STATE_SAMPLE_MASK_EXT dynamic state enabled then 1417 flink:vkCmdSetSampleMaskEXT must: have been called in the current 1418 command buffer prior to this drawing command 1419endif::VK_EXT_extended_dynamic_state3[] 1420ifdef::VK_EXT_shader_object[] 1421 * [[VUID-{refpage}-None-08653]] 1422 If a shader object is bound to any graphics stage, and the most recent 1423 call to flink:vkCmdSetRasterizerDiscardEnable in the current command 1424 buffer set pname:rasterizerDiscardEnable to ename:VK_FALSE, then 1425 flink:vkCmdSetSampleMaskEXT must: have been called in the current 1426 command buffer prior to this drawing command 1427endif::VK_EXT_shader_object[] 1428ifdef::VK_EXT_extended_dynamic_state3[] 1429 * [[VUID-{refpage}-None-07624]] 1430 If the bound graphics pipeline state was created with the 1431 ename:VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state 1432 enabled then flink:vkCmdSetAlphaToCoverageEnableEXT must: have been 1433 called in the current command buffer prior to this drawing command 1434 * [[VUID-{refpage}-alphaToCoverageEnable-08919]] 1435 If the bound graphics pipeline state was created with the 1436 ename:VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT dynamic state 1437 enabled, and pname:alphaToCoverageEnable was ename:VK_TRUE in the last 1438 call to flink:vkCmdSetAlphaToCoverageEnableEXT, then the 1439 <<interfaces-fragmentoutput, Fragment Output Interface>> must: contain a 1440 variable for the alpha code:Component word in code:Location 0 at 1441 code:Index 0 1442endif::VK_EXT_extended_dynamic_state3[] 1443ifdef::VK_EXT_shader_object[] 1444 * [[VUID-{refpage}-None-08654]] 1445 If a shader object is bound to any graphics stage, and the most recent 1446 call to flink:vkCmdSetRasterizerDiscardEnable in the current command 1447 buffer set pname:rasterizerDiscardEnable to ename:VK_FALSE, then 1448 flink:vkCmdSetAlphaToCoverageEnableEXT must: have been called in the 1449 current command buffer prior to this drawing command 1450 * [[VUID-{refpage}-alphaToCoverageEnable-08920]] 1451 If a shader object is bound to any graphics stage, and the most recent 1452 call to flink:vkCmdSetAlphaToCoverageEnableEXT in the current command 1453 buffer set pname:alphaToCoverageEnable to ename:VK_TRUE, then the 1454 <<interfaces-fragmentoutput, Fragment Output Interface>> must: contain a 1455 variable for the alpha code:Component word in code:Location 0 at 1456 code:Index 0 1457endif::VK_EXT_shader_object[] 1458ifdef::VK_EXT_extended_dynamic_state3[] 1459 * [[VUID-{refpage}-None-07625]] 1460 If the bound graphics pipeline state was created with the 1461 ename:VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT dynamic state enabled 1462 then flink:vkCmdSetAlphaToOneEnableEXT must: have been called in the 1463 current command buffer prior to this drawing command 1464endif::VK_EXT_extended_dynamic_state3[] 1465ifdef::VK_EXT_shader_object[] 1466 * [[VUID-{refpage}-None-08655]] 1467 If the <<features-alphaToOne, pname:alphaToOne>> feature is enabled, and 1468 a shader object is bound to any graphics stage, and the most recent call 1469 to flink:vkCmdSetRasterizerDiscardEnable in the current command buffer 1470 set pname:rasterizerDiscardEnable to ename:VK_FALSE, then 1471 flink:vkCmdSetAlphaToOneEnableEXT must: have been called in the current 1472 command buffer prior to this drawing command 1473endif::VK_EXT_shader_object[] 1474ifdef::VK_EXT_extended_dynamic_state3[] 1475 * [[VUID-{refpage}-None-07626]] 1476 If the bound graphics pipeline state was created with the 1477 ename:VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT dynamic state enabled then 1478 flink:vkCmdSetLogicOpEnableEXT must: have been called in the current 1479 command buffer prior to this drawing command 1480endif::VK_EXT_extended_dynamic_state3[] 1481ifdef::VK_EXT_shader_object[] 1482 * [[VUID-{refpage}-None-08656]] 1483 If the <<features-logicOp, pname:logicOp>> feature is enabled, and a 1484 shader object is bound to the ename:VK_SHADER_STAGE_FRAGMENT_BIT stage, 1485 and the most recent call to flink:vkCmdSetRasterizerDiscardEnable in the 1486 current command buffer set pname:rasterizerDiscardEnable to 1487 ename:VK_FALSE, then flink:vkCmdSetLogicOpEnableEXT must: have been 1488 called in the current command buffer prior to this drawing command 1489endif::VK_EXT_shader_object[] 1490ifdef::VK_EXT_extended_dynamic_state3[] 1491 * [[VUID-{refpage}-None-07627]] 1492 If the bound graphics pipeline state was created with the 1493 ename:VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then 1494 flink:vkCmdSetColorBlendEnableEXT must: have been called in the current 1495 command buffer prior to this drawing command 1496endif::VK_EXT_extended_dynamic_state3[] 1497ifdef::VK_EXT_shader_object[] 1498 * [[VUID-{refpage}-None-08657]] 1499 If a shader object is bound to the ename:VK_SHADER_STAGE_FRAGMENT_BIT 1500 stage, and the most recent call to flink:vkCmdSetRasterizerDiscardEnable 1501 in the current command buffer set pname:rasterizerDiscardEnable to 1502 ename:VK_FALSE, then flink:vkCmdSetColorBlendEnableEXT must: have been 1503 called in the current command buffer prior to this drawing command 1504endif::VK_EXT_shader_object[] 1505ifdef::VK_EXT_extended_dynamic_state3[] 1506 * [[VUID-{refpage}-None-07628]] 1507 If the bound graphics pipeline state was created with the 1508 ename:VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled 1509 then flink:vkCmdSetColorBlendEquationEXT must: have been called in the 1510 current command buffer prior to this drawing command 1511endif::VK_EXT_extended_dynamic_state3[] 1512ifdef::VK_EXT_shader_object[] 1513 * [[VUID-{refpage}-None-08658]] 1514 If a shader object is bound to the ename:VK_SHADER_STAGE_FRAGMENT_BIT 1515 stage, and the most recent call to flink:vkCmdSetRasterizerDiscardEnable 1516 in the current command buffer set pname:rasterizerDiscardEnable to 1517 ename:VK_FALSE, and the most recent call to 1518 flink:vkCmdSetColorBlendEnableEXT for any attachment set that 1519 attachment's value in pname:pColorBlendEnables to ename:VK_TRUE, then 1520 flink:vkCmdSetColorBlendEquationEXT must: have been called in the 1521 current command buffer prior to this drawing command 1522endif::VK_EXT_shader_object[] 1523ifdef::VK_EXT_extended_dynamic_state3[] 1524 * [[VUID-{refpage}-None-07629]] 1525 If the bound graphics pipeline state was created with the 1526 ename:VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then 1527 flink:vkCmdSetColorWriteMaskEXT must: have been called in the current 1528 command buffer prior to this drawing command 1529endif::VK_EXT_extended_dynamic_state3[] 1530ifdef::VK_EXT_shader_object[] 1531 * [[VUID-{refpage}-None-08659]] 1532 If a shader object is bound to the ename:VK_SHADER_STAGE_FRAGMENT_BIT 1533 stage, and the most recent call to flink:vkCmdSetRasterizerDiscardEnable 1534 in the current command buffer set pname:rasterizerDiscardEnable to 1535 ename:VK_FALSE, then flink:vkCmdSetColorWriteMaskEXT must: have been 1536 called in the current command buffer prior to this drawing command 1537endif::VK_EXT_shader_object[] 1538ifdef::VK_EXT_transform_feedback[] 1539ifdef::VK_EXT_extended_dynamic_state3[] 1540 * [[VUID-{refpage}-None-07630]] 1541 If the bound graphics pipeline state was created with the 1542 ename:VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT dynamic state enabled 1543 then flink:vkCmdSetRasterizationStreamEXT must: have been called in the 1544 current command buffer prior to this drawing command 1545endif::VK_EXT_extended_dynamic_state3[] 1546ifdef::VK_EXT_shader_object[] 1547 * [[VUID-{refpage}-None-08660]] 1548 If the <<features-geometryStreams, pname:geometryStreams>> feature is 1549 enabled, and a shader object is bound to the 1550 ename:VK_SHADER_STAGE_GEOMETRY_BIT stage, then 1551 flink:vkCmdSetRasterizationStreamEXT must: have been called in the 1552 current command buffer prior to this drawing command 1553endif::VK_EXT_shader_object[] 1554endif::VK_EXT_transform_feedback[] 1555ifdef::VK_EXT_conservative_rasterization[] 1556ifdef::VK_EXT_extended_dynamic_state3[] 1557 * [[VUID-{refpage}-None-07631]] 1558 If the bound graphics pipeline state was created with the 1559 ename:VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state 1560 enabled then flink:vkCmdSetConservativeRasterizationModeEXT must: have 1561 been called in the current command buffer prior to this drawing command 1562endif::VK_EXT_extended_dynamic_state3[] 1563ifdef::VK_EXT_shader_object[] 1564 * [[VUID-{refpage}-None-08661]] 1565 If the `apiext:VK_EXT_conservative_rasterization` extension is enabled, 1566 and a shader object is bound to any graphics stage, and the most recent 1567 call to flink:vkCmdSetRasterizerDiscardEnable in the current command 1568 buffer set pname:rasterizerDiscardEnable to ename:VK_FALSE, then 1569 flink:vkCmdSetConservativeRasterizationModeEXT must: have been called in 1570 the current command buffer prior to this drawing command 1571endif::VK_EXT_shader_object[] 1572ifdef::VK_EXT_extended_dynamic_state3[] 1573 * [[VUID-{refpage}-None-07632]] 1574 If the bound graphics pipeline state was created with the 1575 ename:VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT dynamic 1576 state enabled then flink:vkCmdSetExtraPrimitiveOverestimationSizeEXT 1577 must: have been called in the current command buffer prior to this 1578 drawing command 1579endif::VK_EXT_extended_dynamic_state3[] 1580ifdef::VK_EXT_shader_object[] 1581 * [[VUID-{refpage}-None-08662]] 1582 If the `apiext:VK_EXT_conservative_rasterization` extension is enabled, 1583 and a shader object is bound to any graphics stage, and the most recent 1584 call to flink:vkCmdSetRasterizerDiscardEnable in the current command 1585 buffer set pname:rasterizerDiscardEnable to ename:VK_FALSE, and the most 1586 recent call to flink:vkCmdSetConservativeRasterizationModeEXT in the 1587 current command buffer set pname:conservativeRasterizationMode to 1588 ename:VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT, then 1589 flink:vkCmdSetExtraPrimitiveOverestimationSizeEXT must: have been called 1590 in the current command buffer prior to this drawing command 1591endif::VK_EXT_shader_object[] 1592endif::VK_EXT_conservative_rasterization[] 1593ifdef::VK_EXT_depth_clip_enable[] 1594ifdef::VK_EXT_extended_dynamic_state3[] 1595 * [[VUID-{refpage}-None-07633]] 1596 If the bound graphics pipeline state was created with the 1597 ename:VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT dynamic state enabled then 1598 flink:vkCmdSetDepthClipEnableEXT must: have been called in the current 1599 command buffer prior to this drawing command 1600endif::VK_EXT_extended_dynamic_state3[] 1601ifdef::VK_EXT_shader_object[] 1602 * [[VUID-{refpage}-None-08663]] 1603 If the <<features-depthClipEnable, pname:depthClipEnable>> feature is 1604 enabled, and a shader object is bound to any graphics stage, then 1605 flink:vkCmdSetDepthClipEnableEXT must: have been called in the current 1606 command buffer prior to this drawing command 1607endif::VK_EXT_shader_object[] 1608endif::VK_EXT_depth_clip_enable[] 1609ifdef::VK_EXT_sample_locations[] 1610ifdef::VK_EXT_extended_dynamic_state3[] 1611 * [[VUID-{refpage}-None-07634]] 1612 If the bound graphics pipeline state was created with the 1613 ename:VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT dynamic state enabled 1614 then flink:vkCmdSetSampleLocationsEnableEXT must: have been called in 1615 the current command buffer prior to this drawing command 1616endif::VK_EXT_extended_dynamic_state3[] 1617ifdef::VK_EXT_shader_object[] 1618 * [[VUID-{refpage}-None-08664]] 1619 If the `apiext:VK_EXT_sample_locations` extension is enabled, and a 1620 shader object is bound to any graphics stage, and the most recent call 1621 to flink:vkCmdSetRasterizerDiscardEnable in the current command buffer 1622 set pname:rasterizerDiscardEnable to ename:VK_FALSE, then 1623 flink:vkCmdSetSampleLocationsEnableEXT must: have been called in the 1624 current command buffer prior to this drawing command 1625endif::VK_EXT_shader_object[] 1626endif::VK_EXT_sample_locations[] 1627ifdef::VK_EXT_blend_operation_advanced[] 1628 * [[VUID-{refpage}-None-07635]] 1629 If the bound graphics pipeline state was created with the 1630 ename:VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled 1631 then flink:vkCmdSetColorBlendAdvancedEXT must: have been called in the 1632 current command buffer prior to this drawing command 1633ifdef::VK_EXT_shader_object[] 1634 * [[VUID-{refpage}-rasterizerDiscardEnable-09416]] 1635 If the `apiext:VK_EXT_blend_operation_advanced` extension is enabled, 1636 and a shader object is bound to the ename:VK_SHADER_STAGE_FRAGMENT_BIT 1637 stage, and the most recent call to flink:vkCmdSetRasterizerDiscardEnable 1638 in the current command buffer set pname:rasterizerDiscardEnable to 1639 ename:VK_FALSE, then at least one of flink:vkCmdSetColorBlendEquationEXT 1640 and flink:vkCmdSetColorBlendAdvancedEXT must: have been called in the 1641 current command buffer prior to this drawing command 1642endif::VK_EXT_shader_object[] 1643endif::VK_EXT_blend_operation_advanced[] 1644ifdef::VK_EXT_provoking_vertex[] 1645ifdef::VK_EXT_extended_dynamic_state3[] 1646 * [[VUID-{refpage}-None-07636]] 1647 If the bound graphics pipeline state was created with the 1648 ename:VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT dynamic state enabled 1649 then flink:vkCmdSetProvokingVertexModeEXT must: have been called in the 1650 current command buffer prior to this drawing command 1651endif::VK_EXT_extended_dynamic_state3[] 1652ifdef::VK_EXT_shader_object[] 1653 * [[VUID-{refpage}-None-08665]] 1654 If the `apiext:VK_EXT_provoking_vertex` extension is enabled, and a 1655 shader object is bound to the ename:VK_SHADER_STAGE_VERTEX_BIT stage, 1656 and the most recent call to flink:vkCmdSetRasterizerDiscardEnable in the 1657 current command buffer set pname:rasterizerDiscardEnable to 1658 ename:VK_FALSE, then flink:vkCmdSetProvokingVertexModeEXT must: have 1659 been called in the current command buffer prior to this drawing command 1660endif::VK_EXT_shader_object[] 1661endif::VK_EXT_provoking_vertex[] 1662ifdef::VK_EXT_line_rasterization[] 1663ifdef::VK_EXT_extended_dynamic_state3[] 1664 * [[VUID-{refpage}-None-07637]] 1665 If the bound graphics pipeline state was created with the 1666 ename:VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic state enabled 1667 then flink:vkCmdSetLineRasterizationModeEXT must: have been called in 1668 the current command buffer prior to this drawing command 1669endif::VK_EXT_extended_dynamic_state3[] 1670ifdef::VK_EXT_shader_object[] 1671 * [[VUID-{refpage}-None-08666]] 1672 If the `apiext:VK_EXT_line_rasterization` extension is enabled, and a 1673 shader object is bound to any graphics stage, and the most recent call 1674 to flink:vkCmdSetRasterizerDiscardEnable in the current command buffer 1675 set pname:rasterizerDiscardEnable to ename:VK_FALSE, and the most recent 1676 call to flink:vkCmdSetPolygonModeEXT in the current command buffer set 1677 pname:polygonMode to ename:VK_POLYGON_MODE_LINE, then 1678 flink:vkCmdSetLineRasterizationModeEXT must: have been called in the 1679 current command buffer prior to this drawing command 1680 * [[VUID-{refpage}-None-08667]] 1681 If the `apiext:VK_EXT_line_rasterization` extension is enabled, and a 1682 shader object is bound to the ename:VK_SHADER_STAGE_VERTEX_BIT stage, 1683 and the most recent call to flink:vkCmdSetRasterizerDiscardEnable in the 1684 current command buffer set pname:rasterizerDiscardEnable to 1685 ename:VK_FALSE, and the most recent call to 1686 flink:vkCmdSetPrimitiveTopology in the current command buffer set 1687 pname:primitiveTopology to any line topology, then 1688 flink:vkCmdSetLineRasterizationModeEXT must: have been called in the 1689 current command buffer prior to this drawing command 1690 * [[VUID-{refpage}-None-08668]] 1691 If the `apiext:VK_EXT_line_rasterization` extension is enabled, and a 1692 shader object that outputs line primitives is bound to the 1693 ename:VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or 1694 ename:VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to 1695 flink:vkCmdSetRasterizerDiscardEnable in the current command buffer set 1696 pname:rasterizerDiscardEnable to ename:VK_FALSE, then 1697 flink:vkCmdSetLineRasterizationModeEXT must: have been called in the 1698 current command buffer prior to this drawing command 1699endif::VK_EXT_shader_object[] 1700ifdef::VK_EXT_extended_dynamic_state3[] 1701 * [[VUID-{refpage}-None-07638]] 1702 If the bound graphics pipeline state was created with the 1703 ename:VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT dynamic state enabled 1704 then flink:vkCmdSetLineStippleEnableEXT must: have been called in the 1705 current command buffer prior to this drawing command 1706endif::VK_EXT_extended_dynamic_state3[] 1707ifdef::VK_EXT_shader_object[] 1708 * [[VUID-{refpage}-None-08669]] 1709 If the `apiext:VK_EXT_line_rasterization` extension is enabled, and a 1710 shader object is bound to any graphics stage, and the most recent call 1711 to flink:vkCmdSetRasterizerDiscardEnable in the current command buffer 1712 set pname:rasterizerDiscardEnable to ename:VK_FALSE, and the most recent 1713 call to flink:vkCmdSetPolygonModeEXT in the current command buffer set 1714 pname:polygonMode to ename:VK_POLYGON_MODE_LINE, then 1715 flink:vkCmdSetLineStippleEnableEXT must: have been called in the current 1716 command buffer prior to this drawing command 1717 * [[VUID-{refpage}-None-08670]] 1718 If the `apiext:VK_EXT_line_rasterization` extension is enabled, and a 1719 shader object is bound to the ename:VK_SHADER_STAGE_VERTEX_BIT stage, 1720 and the most recent call to flink:vkCmdSetRasterizerDiscardEnable in the 1721 current command buffer set pname:rasterizerDiscardEnable to 1722 ename:VK_FALSE, and the most recent call to 1723 flink:vkCmdSetPrimitiveTopology in the current command buffer set 1724 pname:primitiveTopology to any line topology, then 1725 flink:vkCmdSetLineStippleEnableEXT must: have been called in the current 1726 command buffer prior to this drawing command 1727 * [[VUID-{refpage}-None-08671]] 1728 If the `apiext:VK_EXT_line_rasterization` extension is enabled, and a 1729 shader object that outputs line primitives is bound to the 1730 ename:VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or 1731 ename:VK_SHADER_STAGE_GEOMETRY_BIT stage, and the most recent call to 1732 flink:vkCmdSetRasterizerDiscardEnable in the current command buffer set 1733 pname:rasterizerDiscardEnable to ename:VK_FALSE, then 1734 flink:vkCmdSetLineStippleEnableEXT must: have been called in the current 1735 command buffer prior to this drawing command 1736endif::VK_EXT_shader_object[] 1737ifdef::VK_EXT_extended_dynamic_state3[] 1738 * [[VUID-{refpage}-None-07849]] 1739 If the bound graphics pipeline state was created with the 1740 ename:VK_DYNAMIC_STATE_LINE_STIPPLE_EXT dynamic state enabled then 1741 flink:vkCmdSetLineStippleEXT must: have been called in the current 1742 command buffer prior to this drawing command 1743endif::VK_EXT_extended_dynamic_state3[] 1744ifdef::VK_EXT_shader_object[] 1745 * [[VUID-{refpage}-None-08672]] 1746 If the `apiext:VK_EXT_line_rasterization` extension is enabled, and a 1747 shader object is bound to any graphics stage, and the most recent call 1748 to flink:vkCmdSetRasterizerDiscardEnable in the current command buffer 1749 set pname:rasterizerDiscardEnable to ename:VK_FALSE, and the most recent 1750 call to flink:vkCmdSetLineStippleEnableEXT in the current command buffer 1751 set pname:stippledLineEnable to ename:VK_TRUE, then 1752 flink:vkCmdSetLineStippleEXT must: have been called in the current 1753 command buffer prior to this drawing command 1754endif::VK_EXT_shader_object[] 1755endif::VK_EXT_line_rasterization[] 1756ifdef::VK_EXT_depth_clip_control[] 1757ifdef::VK_EXT_extended_dynamic_state3[] 1758 * [[VUID-{refpage}-None-07639]] 1759 If the bound graphics pipeline state was created with the 1760 ename:VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT dynamic state 1761 enabled then flink:vkCmdSetDepthClipNegativeOneToOneEXT must: have been 1762 called in the current command buffer prior to this drawing command 1763endif::VK_EXT_extended_dynamic_state3[] 1764ifdef::VK_EXT_shader_object[] 1765 * [[VUID-{refpage}-None-08673]] 1766 If the <<features-depthClipControl, pname:depthClipControl>> feature is 1767 enabled, and a shader object is bound to any graphics stage, then 1768 flink:vkCmdSetDepthClipNegativeOneToOneEXT must: have been called in the 1769 current command buffer prior to this drawing command 1770endif::VK_EXT_shader_object[] 1771endif::VK_EXT_depth_clip_control[] 1772ifdef::VK_NV_clip_space_w_scaling[] 1773ifdef::VK_EXT_extended_dynamic_state3[] 1774 * [[VUID-{refpage}-None-07640]] 1775 If the bound graphics pipeline state was created with the 1776 ename:VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV dynamic state 1777 enabled then flink:vkCmdSetViewportWScalingEnableNV must: have been 1778 called in the current command buffer prior to this drawing command 1779endif::VK_EXT_extended_dynamic_state3[] 1780ifdef::VK_EXT_shader_object[] 1781 * [[VUID-{refpage}-None-08674]] 1782 If the `apiext:VK_NV_clip_space_w_scaling` extension is enabled, and a 1783 shader object is bound to any graphics stage, then 1784 flink:vkCmdSetViewportWScalingEnableNV must: have been called in the 1785 current command buffer prior to this drawing command 1786endif::VK_EXT_shader_object[] 1787endif::VK_NV_clip_space_w_scaling[] 1788ifdef::VK_NV_viewport_swizzle[] 1789ifdef::VK_EXT_extended_dynamic_state3[] 1790 * [[VUID-{refpage}-None-07641]] 1791 If the bound graphics pipeline state was created with the 1792 ename:VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state enabled then 1793 flink:vkCmdSetViewportSwizzleNV must: have been called in the current 1794 command buffer prior to this drawing command 1795endif::VK_EXT_extended_dynamic_state3[] 1796ifdef::VK_EXT_shader_object[] 1797 * [[VUID-{refpage}-None-08675]] 1798 If the `apiext:VK_NV_viewport_swizzle` extension is enabled, and a 1799 shader object is bound to any graphics stage, then 1800 flink:vkCmdSetViewportSwizzleNV must: have been called in the current 1801 command buffer prior to this drawing command 1802endif::VK_EXT_shader_object[] 1803endif::VK_NV_viewport_swizzle[] 1804ifdef::VK_NV_fragment_coverage_to_color[] 1805ifdef::VK_EXT_extended_dynamic_state3[] 1806 * [[VUID-{refpage}-None-07642]] 1807 If the bound graphics pipeline state was created with the 1808 ename:VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV dynamic state enabled 1809 then flink:vkCmdSetCoverageToColorEnableNV must: have been called in the 1810 current command buffer prior to this drawing command 1811endif::VK_EXT_extended_dynamic_state3[] 1812ifdef::VK_EXT_shader_object[] 1813 * [[VUID-{refpage}-None-08676]] 1814 If the `apiext:VK_NV_fragment_coverage_to_color` extension is enabled, 1815 and a shader object is bound to the ename:VK_SHADER_STAGE_FRAGMENT_BIT 1816 stage, and the most recent call to flink:vkCmdSetRasterizerDiscardEnable 1817 in the current command buffer set pname:rasterizerDiscardEnable to 1818 ename:VK_FALSE, then flink:vkCmdSetCoverageToColorEnableNV must: have 1819 been called in the current command buffer prior to this drawing command 1820endif::VK_EXT_shader_object[] 1821ifdef::VK_EXT_extended_dynamic_state3[] 1822 * [[VUID-{refpage}-None-07643]] 1823 If the bound graphics pipeline state was created with the 1824 ename:VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV dynamic state 1825 enabled then flink:vkCmdSetCoverageToColorLocationNV must: have been 1826 called in the current command buffer prior to this drawing command 1827endif::VK_EXT_extended_dynamic_state3[] 1828ifdef::VK_EXT_shader_object[] 1829 * [[VUID-{refpage}-None-08677]] 1830 If the `apiext:VK_NV_fragment_coverage_to_color` extension is enabled, 1831 and a shader object is bound to the ename:VK_SHADER_STAGE_FRAGMENT_BIT 1832 stage, and the most recent call to flink:vkCmdSetRasterizerDiscardEnable 1833 in the current command buffer set pname:rasterizerDiscardEnable to 1834 ename:VK_FALSE, and the most recent call to 1835 flink:vkCmdSetCoverageToColorEnableNV in the current command buffer set 1836 pname:coverageToColorEnable to ename:VK_TRUE, then 1837 flink:vkCmdSetCoverageToColorLocationNV must: have been called in the 1838 current command buffer prior to this drawing command 1839endif::VK_EXT_shader_object[] 1840endif::VK_NV_fragment_coverage_to_color[] 1841ifdef::VK_NV_framebuffer_mixed_samples[] 1842ifdef::VK_EXT_extended_dynamic_state3[] 1843 * [[VUID-{refpage}-None-07644]] 1844 If the bound graphics pipeline state was created with the 1845 ename:VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV dynamic state enabled 1846 then flink:vkCmdSetCoverageModulationModeNV must: have been called in 1847 the current command buffer prior to this drawing command 1848endif::VK_EXT_extended_dynamic_state3[] 1849ifdef::VK_EXT_shader_object[] 1850 * [[VUID-{refpage}-None-08678]] 1851 If the `apiext:VK_NV_framebuffer_mixed_samples` extension is enabled, 1852 and a shader object is bound to any graphics stage, and the most recent 1853 call to flink:vkCmdSetRasterizerDiscardEnable in the current command 1854 buffer set pname:rasterizerDiscardEnable to ename:VK_FALSE, then 1855 flink:vkCmdSetCoverageModulationModeNV must: have been called in the 1856 current command buffer prior to this drawing command 1857endif::VK_EXT_shader_object[] 1858ifdef::VK_EXT_extended_dynamic_state3[] 1859 * [[VUID-{refpage}-None-07645]] 1860 If the bound graphics pipeline state was created with the 1861 ename:VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV dynamic state 1862 enabled then flink:vkCmdSetCoverageModulationTableEnableNV must: have 1863 been called in the current command buffer prior to this drawing command 1864endif::VK_EXT_extended_dynamic_state3[] 1865ifdef::VK_EXT_shader_object[] 1866 * [[VUID-{refpage}-None-08679]] 1867 If the `apiext:VK_NV_framebuffer_mixed_samples` extension is enabled, 1868 and a shader object is bound to any graphics stage, and the most recent 1869 call to flink:vkCmdSetRasterizerDiscardEnable in the current command 1870 buffer set pname:rasterizerDiscardEnable to ename:VK_FALSE, and the most 1871 recent call to flink:vkCmdSetCoverageModulationModeNV in the current 1872 command buffer set coverageModulationMode to any value other than 1873 ename:VK_COVERAGE_MODULATION_MODE_NONE_NV, then 1874 flink:vkCmdSetCoverageModulationTableEnableNV must: have been called in 1875 the current command buffer prior to this drawing command 1876endif::VK_EXT_shader_object[] 1877ifdef::VK_EXT_extended_dynamic_state3[] 1878 * [[VUID-{refpage}-None-07646]] 1879 If the bound graphics pipeline state was created with the 1880 ename:VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV dynamic state 1881 enabled then flink:vkCmdSetCoverageModulationTableNV must: have been 1882 called in the current command buffer prior to this drawing command 1883endif::VK_EXT_extended_dynamic_state3[] 1884ifdef::VK_EXT_shader_object[] 1885 * [[VUID-{refpage}-None-08680]] 1886 If the `apiext:VK_NV_framebuffer_mixed_samples` extension is enabled, 1887 and a shader object is bound to any graphics stage, and the most recent 1888 call to flink:vkCmdSetRasterizerDiscardEnable in the current command 1889 buffer set pname:rasterizerDiscardEnable to ename:VK_FALSE, and the most 1890 recent call to flink:vkCmdSetCoverageModulationTableEnableNV in the 1891 current command buffer set pname:coverageModulationTableEnable to 1892 ename:VK_TRUE, then flink:vkCmdSetCoverageModulationTableNV must: have 1893 been called in the current command buffer prior to this drawing command 1894endif::VK_EXT_shader_object[] 1895endif::VK_NV_framebuffer_mixed_samples[] 1896ifdef::VK_NV_shading_rate_image[] 1897ifdef::VK_EXT_extended_dynamic_state3[] 1898 * [[VUID-{refpage}-None-07647]] 1899 If the bound graphics pipeline state was created with the 1900 ename:VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV dynamic state 1901 enabled then flink:vkCmdSetShadingRateImageEnableNV must: have been 1902 called in the current command buffer prior to this drawing command 1903endif::VK_EXT_extended_dynamic_state3[] 1904ifdef::VK_EXT_shader_object[] 1905 * [[VUID-{refpage}-pipelineFragmentShadingRate-09238]] 1906 If the <<features-pipelineFragmentShadingRate, 1907 pname:pipelineFragmentShadingRate>> feature is enabled, and a shader 1908 object is bound to the ename:VK_SHADER_STAGE_FRAGMENT_BIT stage, and the 1909 most recent call to flink:vkCmdSetRasterizerDiscardEnable in the current 1910 command buffer set rasterizerDiscardEnable to ename:VK_FALSE, then 1911 flink:vkCmdSetFragmentShadingRateKHR must: have been called in the 1912 current command buffer prior to this drawing command 1913 * [[VUID-{refpage}-None-08681]] 1914 If the <<features-shadingRateImage, pname:shadingRateImage>> feature is 1915 enabled, and a shader object is bound to any graphics stage, and the 1916 most recent call to flink:vkCmdSetRasterizerDiscardEnable in the current 1917 command buffer set pname:rasterizerDiscardEnable to ename:VK_FALSE, then 1918 flink:vkCmdSetShadingRateImageEnableNV must: have been called in the 1919 current command buffer prior to this drawing command 1920endif::VK_EXT_shader_object[] 1921endif::VK_NV_shading_rate_image[] 1922ifdef::VK_NV_representative_fragment_test[] 1923ifdef::VK_EXT_extended_dynamic_state3[] 1924 * [[VUID-{refpage}-None-07648]] 1925 If the bound graphics pipeline state was created with the 1926 ename:VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV dynamic 1927 state enabled then flink:vkCmdSetRepresentativeFragmentTestEnableNV 1928 must: have been called in the current command buffer prior to this 1929 drawing command 1930endif::VK_EXT_extended_dynamic_state3[] 1931ifdef::VK_EXT_shader_object[] 1932 * [[VUID-{refpage}-None-08682]] 1933 If the <<features-representativeFragmentTest, 1934 pname:representativeFragmentTest>> feature is enabled, and a shader 1935 object is bound to any graphics stage, and the most recent call to 1936 flink:vkCmdSetRasterizerDiscardEnable in the current command buffer set 1937 pname:rasterizerDiscardEnable to ename:VK_FALSE, then 1938 flink:vkCmdSetRepresentativeFragmentTestEnableNV must: have been called 1939 in the current command buffer prior to this drawing command 1940endif::VK_EXT_shader_object[] 1941endif::VK_NV_representative_fragment_test[] 1942ifdef::VK_NV_coverage_reduction_mode[] 1943ifdef::VK_EXT_extended_dynamic_state3[] 1944 * [[VUID-{refpage}-None-07649]] 1945 If the bound graphics pipeline state was created with the 1946 ename:VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV dynamic state enabled 1947 then flink:vkCmdSetCoverageReductionModeNV must: have been called in the 1948 current command buffer prior to this drawing command 1949endif::VK_EXT_extended_dynamic_state3[] 1950ifdef::VK_EXT_shader_object[] 1951 * [[VUID-{refpage}-None-08683]] 1952 If the <<features-coverageReductionMode, pname:coverageReductionMode>> 1953 feature is enabled, and a shader object is bound to any graphics stage, 1954 and the most recent call to flink:vkCmdSetRasterizerDiscardEnable in the 1955 current command buffer set pname:rasterizerDiscardEnable to 1956 ename:VK_FALSE, then flink:vkCmdSetCoverageReductionModeNV must: have 1957 been called in the current command buffer prior to this drawing command 1958endif::VK_EXT_shader_object[] 1959endif::VK_NV_coverage_reduction_mode[] 1960 * [[VUID-{refpage}-pColorBlendEnables-07470]] 1961 If the bound graphics pipeline state was created with the 1962 ename:VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT state enabled and the last 1963 call to flink:vkCmdSetColorBlendEnableEXT set pname:pColorBlendEnables 1964 for any attachment to ename:VK_TRUE, then for those attachments in the 1965 subpass the corresponding image view's 1966 <<resources-image-view-format-features,format features>> must: contain 1967 ename:VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT 1968 * [[VUID-{refpage}-rasterizationSamples-07471]] 1969 If the bound graphics pipeline state was created with the 1970 ename:VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and the 1971 current subpass does not use any color and/or depth/stencil attachments, 1972 then the pname:rasterizationSamples in the last call to 1973 flink:vkCmdSetRasterizationSamplesEXT must: follow the rules for a 1974 <<renderpass-noattachments, zero-attachment subpass>> 1975 * [[VUID-{refpage}-samples-07472]] 1976 If the bound graphics pipeline state was created with the 1977 ename:VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state enabled and the 1978 ename:VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then 1979 the pname:samples parameter in the last call to 1980 flink:vkCmdSetSampleMaskEXT must: be greater or equal to the 1981 slink:VkPipelineMultisampleStateCreateInfo::pname:rasterizationSamples 1982 parameter used to create the bound graphics pipeline 1983 * [[VUID-{refpage}-samples-07473]] 1984 If the bound graphics pipeline state was created with the 1985 ename:VK_DYNAMIC_STATE_SAMPLE_MASK_EXT state and 1986 ename:VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, then 1987 the pname:samples parameter in the last call to 1988 flink:vkCmdSetSampleMaskEXT must: be greater or equal to the 1989 pname:rasterizationSamples parameter in the last call to 1990 flink:vkCmdSetRasterizationSamplesEXT 1991 * [[VUID-{refpage}-rasterizationSamples-07474]] 1992 If the bound graphics pipeline state was created with the 1993 ename:VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, and 1994 neither the `apiext:VK_AMD_mixed_attachment_samples` nor the 1995 `apiext:VK_NV_framebuffer_mixed_samples` extensions are enabled, then 1996 the pname:rasterizationSamples in the last call to 1997 flink:vkCmdSetRasterizationSamplesEXT must: be the same as the current 1998 subpass color and/or depth/stencil attachments 1999ifdef::VK_EXT_multisampled_render_to_single_sampled[] 2000 * [[VUID-{refpage}-None-09211]] 2001 If the bound graphics pipeline state was created with the 2002 ename:VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, 2003ifdef::VK_EXT_shader_object[] 2004 or a shader object is bound to any graphics stage, 2005endif::VK_EXT_shader_object[] 2006 and the current render pass instance includes a 2007 slink:VkMultisampledRenderToSingleSampledInfoEXT structure with 2008 pname:multisampledRenderToSingleSampledEnable equal to ename:VK_TRUE, 2009 then the pname:rasterizationSamples in the last call to 2010 flink:vkCmdSetRasterizationSamplesEXT must: be the same as the 2011 pname:rasterizationSamples member of that structure 2012endif::VK_EXT_multisampled_render_to_single_sampled[] 2013 * [[VUID-{refpage}-firstAttachment-07476]] 2014 If the bound graphics pipeline state was created with the 2015 ename:VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic state enabled then 2016 flink:vkCmdSetColorBlendEnableEXT must: have been called in the current 2017 command buffer prior to this drawing command, and the attachments 2018 specified by the pname:firstAttachment and pname:attachmentCount 2019 parameters of fname:vkCmdSetColorBlendEnableEXT calls must: specify an 2020 enable for all active color attachments in the current subpass 2021ifdef::VK_EXT_shader_object[] 2022 * [[VUID-{refpage}-rasterizerDiscardEnable-09417]] 2023 If a shader object is bound to the ename:VK_SHADER_STAGE_FRAGMENT_BIT 2024 stage, and the most recent call to flink:vkCmdSetRasterizerDiscardEnable 2025 in the current command buffer set pname:rasterizerDiscardEnable to 2026 ename:VK_FALSE, then flink:vkCmdSetColorBlendEnableEXT must: have been 2027 called in the current command buffer prior to this drawing command, and 2028 the attachments specified by the pname:firstAttachment and 2029 pname:attachmentCount parameters of fname:vkCmdSetColorBlendEnableEXT 2030 calls must: specify an enable for all active color attachments in the 2031 current subpass 2032endif::VK_EXT_shader_object[] 2033 * [[VUID-{refpage}-firstAttachment-07477]] 2034 If the bound graphics pipeline state was created with the 2035 ename:VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT dynamic state enabled 2036 then flink:vkCmdSetColorBlendEquationEXT must: have been called in the 2037 current command buffer prior to this drawing command, and the 2038 attachments specified by the pname:firstAttachment and 2039 pname:attachmentCount parameters of fname:vkCmdSetColorBlendEquationEXT 2040 calls must: specify the blend equations for all active color attachments 2041 in the current subpass where blending is enabled 2042ifdef::VK_EXT_shader_object[] 2043 * [[VUID-{refpage}-rasterizerDiscardEnable-09418]] 2044 If a shader object is bound to the ename:VK_SHADER_STAGE_FRAGMENT_BIT 2045 stage, and the most recent call to flink:vkCmdSetRasterizerDiscardEnable 2046 in the current command buffer set pname:rasterizerDiscardEnable to 2047 ename:VK_FALSE, then flink:vkCmdSetColorBlendEquationEXT must: have been 2048 called in the current command buffer prior to this drawing command, and 2049 the attachments specified by the pname:firstAttachment and 2050 pname:attachmentCount parameters of fname:vkCmdSetColorBlendEquationEXT 2051 calls must: specify the blend equations for all active color attachments 2052 in the current subpass where blending is enabled 2053endif::VK_EXT_shader_object[] 2054 * [[VUID-{refpage}-firstAttachment-07478]] 2055 If the bound graphics pipeline state was created with the 2056 ename:VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT dynamic state enabled then 2057 flink:vkCmdSetColorWriteMaskEXT must: have been called in the current 2058 command buffer prior to this drawing command, and the attachments 2059 specified by the pname:firstAttachment and pname:attachmentCount 2060 parameters of fname:vkCmdSetColorWriteMaskEXT calls must: specify the 2061 color write mask for all active color attachments in the current subpass 2062ifdef::VK_EXT_shader_object[] 2063 * [[VUID-{refpage}-rasterizerDiscardEnable-09419]] 2064 If a shader object is bound to the ename:VK_SHADER_STAGE_FRAGMENT_BIT 2065 stage, and the most recent call to flink:vkCmdSetRasterizerDiscardEnable 2066 in the current command buffer set pname:rasterizerDiscardEnable to 2067 ename:VK_FALSE, then flink:vkCmdSetColorWriteMaskEXT must: have been 2068 called in the current command buffer prior to this drawing command, and 2069 the attachments specified by the pname:firstAttachment and 2070 pname:attachmentCount parameters of fname:vkCmdSetColorWriteMaskEXT 2071 calls must: specify the color write mask for all active color 2072 attachments in the current subpass 2073endif::VK_EXT_shader_object[] 2074ifdef::VK_EXT_blend_operation_advanced[] 2075 * [[VUID-{refpage}-firstAttachment-07479]] 2076 If the bound graphics pipeline state was created with the 2077 ename:VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT dynamic state enabled 2078 then flink:vkCmdSetColorBlendAdvancedEXT must: have been called in the 2079 current command buffer prior to this drawing command, and the 2080 attachments specified by the pname:firstAttachment and 2081 pname:attachmentCount parameters of fname:vkCmdSetColorBlendAdvancedEXT 2082 calls must: specify the advanced blend equations for all active color 2083 attachments in the current subpass where blending is enabled 2084 * [[VUID-{refpage}-advancedBlendMaxColorAttachments-07480]] 2085 If the bound graphics pipeline state was created with the 2086 ename:VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT and 2087 ename:VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT dynamic states enabled and 2088 the last calls to flink:vkCmdSetColorBlendEnableEXT and 2089 flink:vkCmdSetColorBlendAdvancedEXT have enabled advanced blending, then 2090 the number of active color attachments in the current subpass must: not 2091 exceed <<limits-advancedBlendMaxColorAttachments, 2092 pname:advancedBlendMaxColorAttachments>> 2093endif::VK_EXT_blend_operation_advanced[] 2094ifdef::VK_EXT_transform_feedback[] 2095 * [[VUID-{refpage}-primitivesGeneratedQueryWithNonZeroStreams-07481]] 2096 If the <<features-primitivesGeneratedQueryWithNonZeroStreams, 2097 pname:primitivesGeneratedQueryWithNonZeroStreams>> feature is not 2098 enabled and the ename:VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT query is 2099 active, and the bound graphics pipeline was created with 2100 ename:VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT state enabled, the last 2101 call to flink:vkCmdSetRasterizationStreamEXT must: have set the 2102 pname:rasterizationStream to zero 2103endif::VK_EXT_transform_feedback[] 2104ifdef::VK_EXT_sample_locations[] 2105 * [[VUID-{refpage}-sampleLocationsPerPixel-07482]] 2106 If the bound graphics pipeline state was created with the 2107 ename:VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the 2108 ename:VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state disabled, then 2109 the pname:sampleLocationsPerPixel member of pname:pSampleLocationsInfo 2110 in the last call to flink:vkCmdSetSampleLocationsEXT must: equal the 2111 pname:rasterizationSamples member of the 2112 slink:VkPipelineMultisampleStateCreateInfo structure the bound graphics 2113 pipeline has been created with 2114 * [[VUID-{refpage}-sampleLocationsPerPixel-07483]] 2115 If the bound graphics pipeline state was created with the 2116 ename:VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the 2117 ename:VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, then the 2118 pname:sampleLocationsPerPixel member of pname:pSampleLocationsInfo in 2119 the last call to flink:vkCmdSetSampleLocationsEXT must: equal the 2120 pname:rasterizationSamples parameter of the last call to 2121 flink:vkCmdSetRasterizationSamplesEXT 2122 * [[VUID-{refpage}-sampleLocationsEnable-07484]] 2123 If 2124ifdef::VK_EXT_shader_object[] 2125 a shader object is bound to the ename:VK_SHADER_STAGE_FRAGMENT_BIT 2126 stage, or 2127endif::VK_EXT_shader_object[] 2128 the bound graphics pipeline was created with the 2129 ename:VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and 2130 pname:sampleLocationsEnable was ename:VK_TRUE in the last call to 2131 flink:vkCmdSetSampleLocationsEnableEXT, and the current subpass has a 2132 depth/stencil attachment, then that attachment must: have been created 2133 with the ename:VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT 2134 bit set 2135 * [[VUID-{refpage}-sampleLocationsEnable-07485]] 2136 If 2137ifdef::VK_EXT_shader_object[] 2138 a shader object is bound to the ename:VK_SHADER_STAGE_FRAGMENT_BIT 2139 stage, or 2140endif::VK_EXT_shader_object[] 2141 the bound graphics pipeline state was created with the 2142 ename:VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the 2143 ename:VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if 2144 pname:sampleLocationsEnable was ename:VK_TRUE in the last call to 2145 flink:vkCmdSetSampleLocationsEnableEXT, then the 2146 pname:sampleLocationsInfo.sampleLocationGridSize.width in the last call 2147 to flink:vkCmdSetSampleLocationsEXT must: evenly divide 2148 slink:VkMultisamplePropertiesEXT::pname:sampleLocationGridSize.width as 2149 returned by flink:vkGetPhysicalDeviceMultisamplePropertiesEXT with a 2150 pname:samples parameter equaling pname:rasterizationSamples 2151 * [[VUID-{refpage}-sampleLocationsEnable-07486]] 2152 If 2153ifdef::VK_EXT_shader_object[] 2154 a shader object is bound to the ename:VK_SHADER_STAGE_FRAGMENT_BIT 2155 stage, or 2156endif::VK_EXT_shader_object[] 2157 the bound graphics pipeline state was created with the 2158 ename:VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state enabled and the 2159 ename:VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if 2160 pname:sampleLocationsEnable was ename:VK_TRUE in the last call to 2161 flink:vkCmdSetSampleLocationsEnableEXT, then the 2162 pname:sampleLocationsInfo.sampleLocationGridSize.height in the last call 2163 to flink:vkCmdSetSampleLocationsEXT must: evenly divide 2164 slink:VkMultisamplePropertiesEXT::pname:sampleLocationGridSize.height as 2165 returned by flink:vkGetPhysicalDeviceMultisamplePropertiesEXT with a 2166 pname:samples parameter equaling pname:rasterizationSamples 2167 * [[VUID-{refpage}-sampleLocationsEnable-07487]] 2168 If 2169ifdef::VK_EXT_shader_object[] 2170 a shader object is bound to the ename:VK_SHADER_STAGE_FRAGMENT_BIT 2171 stage, or 2172endif::VK_EXT_shader_object[] 2173 the bound graphics pipeline state was created with the 2174 ename:VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, and if 2175 pname:sampleLocationsEnable was ename:VK_TRUE in the last call to 2176 flink:vkCmdSetSampleLocationsEnableEXT, the fragment shader code must: 2177 not statically use the extended instruction code:InterpolateAtSample 2178 * [[VUID-{refpage}-sampleLocationsEnable-07936]] 2179 If the bound graphics pipeline state was created with the 2180 ename:VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the 2181 ename:VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the 2182 pname:sampleLocationsEnable member of a 2183 slink:VkPipelineSampleLocationsStateCreateInfoEXT::pname:sampleLocationsEnable 2184 in the bound graphics pipeline is ename:VK_TRUE or 2185 ename:VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, 2186 pname:sampleLocationsInfo.sampleLocationGridSize.width must: evenly 2187 divide 2188 slink:VkMultisamplePropertiesEXT::pname:sampleLocationGridSize.width as 2189 returned by flink:vkGetPhysicalDeviceMultisamplePropertiesEXT with a 2190 pname:samples parameter equaling the value of pname:rasterizationSamples 2191 in the last call to flink:vkCmdSetRasterizationSamplesEXT 2192 * [[VUID-{refpage}-sampleLocationsEnable-07937]] 2193 If the bound graphics pipeline state was created with the 2194 ename:VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the 2195 ename:VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the 2196 pname:sampleLocationsEnable member of a 2197 slink:VkPipelineSampleLocationsStateCreateInfoEXT::pname:sampleLocationsEnable 2198 in the bound graphics pipeline is ename:VK_TRUE or 2199 ename:VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, 2200 pname:sampleLocationsInfo.sampleLocationGridSize.height must: evenly 2201 divide 2202 slink:VkMultisamplePropertiesEXT::pname:sampleLocationGridSize.height as 2203 returned by flink:vkGetPhysicalDeviceMultisamplePropertiesEXT with a 2204 pname:samples parameter equaling the value of pname:rasterizationSamples 2205 in the last call to flink:vkCmdSetRasterizationSamplesEXT 2206 * [[VUID-{refpage}-sampleLocationsEnable-07938]] 2207 If the bound graphics pipeline state was created with the 2208 ename:VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT state disabled and the 2209 ename:VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT state enabled, the 2210 pname:sampleLocationsEnable member of a 2211 slink:VkPipelineSampleLocationsStateCreateInfoEXT::pname:sampleLocationsEnable 2212 in the bound graphics pipeline is ename:VK_TRUE or 2213 ename:VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT state enabled, then, 2214 pname:sampleLocationsInfo.sampleLocationsPerPixel must: equal 2215 pname:rasterizationSamples in the last call to 2216 flink:vkCmdSetRasterizationSamplesEXT 2217endif::VK_EXT_sample_locations[] 2218ifdef::VK_NV_framebuffer_mixed_samples[] 2219 * [[VUID-{refpage}-coverageModulationTableEnable-07488]] 2220 If 2221ifdef::VK_EXT_shader_object[] 2222 a shader object is bound to any graphics stage or 2223endif::VK_EXT_shader_object[] 2224 the bound graphics pipeline state was created with the 2225 ename:VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV state 2226 enabled, and the last call to 2227 flink:vkCmdSetCoverageModulationTableEnableNV set 2228 pname:coverageModulationTableEnable to ename:VK_TRUE, then the 2229 pname:coverageModulationTableCount parameter in the last call to 2230 flink:vkCmdSetCoverageModulationTableNV must: equal the current 2231 pname:rasterizationSamples divided by the number of color samples in the 2232 current subpass 2233 * [[VUID-{refpage}-rasterizationSamples-07489]] 2234 If the `apiext:VK_NV_framebuffer_mixed_samples` extension is enabled, 2235 and if current subpass has a depth/stencil attachment and depth test, 2236 stencil test, or depth bounds test are enabled in the currently bound 2237 pipeline state, then the current pname:rasterizationSamples must: be the 2238 same as the sample count of the depth/stencil attachment 2239endif::VK_NV_framebuffer_mixed_samples[] 2240ifdef::VK_NV_fragment_coverage_to_color[] 2241 * [[VUID-{refpage}-coverageToColorEnable-07490]] 2242 If the bound graphics pipeline state was created with the 2243 ename:VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV state enabled and the 2244 last call to flink:vkCmdSetCoverageToColorEnableNV set the 2245 pname:coverageToColorEnable to ename:VK_TRUE, then the current subpass 2246 must: have a color attachment at the location selected by the last call 2247 to flink:vkCmdSetCoverageToColorLocationNV 2248 pname:coverageToColorLocation, with a elink:VkFormat of 2249 ename:VK_FORMAT_R8_UINT, ename:VK_FORMAT_R8_SINT, 2250 ename:VK_FORMAT_R16_UINT, ename:VK_FORMAT_R16_SINT, 2251 ename:VK_FORMAT_R32_UINT, or ename:VK_FORMAT_R32_SINT 2252ifdef::VK_EXT_shader_object[] 2253 * [[VUID-{refpage}-rasterizerDiscardEnable-09420]] 2254 If the `apiext:VK_NV_fragment_coverage_to_color` extension is enabled, 2255 and a shader object is bound to the ename:VK_SHADER_STAGE_FRAGMENT_BIT 2256 stage, and the most recent call to flink:vkCmdSetRasterizerDiscardEnable 2257 in the current command buffer set pname:rasterizerDiscardEnable to 2258 ename:VK_FALSE, and the last call to 2259 flink:vkCmdSetCoverageToColorEnableNV set the 2260 pname:coverageToColorEnable to ename:VK_TRUE, then the current subpass 2261 must: have a color attachment at the location selected by the last call 2262 to flink:vkCmdSetCoverageToColorLocationNV 2263 pname:coverageToColorLocation, with a elink:VkFormat of 2264 ename:VK_FORMAT_R8_UINT, ename:VK_FORMAT_R8_SINT, 2265 ename:VK_FORMAT_R16_UINT, ename:VK_FORMAT_R16_SINT, 2266 ename:VK_FORMAT_R32_UINT, or ename:VK_FORMAT_R32_SINT 2267endif::VK_EXT_shader_object[] 2268ifdef::VK_NV_coverage_reduction_mode[] 2269 * [[VUID-{refpage}-coverageReductionMode-07491]] 2270 If this `apiext:VK_NV_coverage_reduction_mode` extension is enabled, the 2271 bound graphics pipeline state was created with the 2272 ename:VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV and 2273 ename:VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT states enabled, the 2274 current coverage reduction mode pname:coverageReductionMode, then the 2275 current pname:rasterizationSamples, and the sample counts for the color 2276 and depth/stencil attachments (if the subpass has them) must: be a valid 2277 combination returned by 2278 flink:vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV 2279endif::VK_NV_coverage_reduction_mode[] 2280endif::VK_NV_fragment_coverage_to_color[] 2281ifdef::VK_NV_viewport_swizzle[] 2282 * [[VUID-{refpage}-viewportCount-07492]] 2283 If the bound graphics pipeline state was created with the 2284 ename:VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT dynamic state enabled, but 2285 not the ename:VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic state 2286 enabled, then the bound graphics pipeline must: have been created with 2287 slink:VkPipelineViewportSwizzleStateCreateInfoNV::pname:viewportCount 2288 greater or equal to the pname:viewportCount parameter in the last call 2289 to flink:vkCmdSetViewportWithCount 2290 * [[VUID-{refpage}-viewportCount-07493]] 2291 If the bound graphics pipeline state was created with the 2292 ename:VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT and 2293 ename:VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV dynamic states enabled then 2294 the pname:viewportCount parameter in the last call to 2295 flink:vkCmdSetViewportSwizzleNV must: be greater than or equal to the 2296 pname:viewportCount parameter in the last call to 2297 flink:vkCmdSetViewportWithCount 2298 * [[VUID-{refpage}-viewportCount-09421]] 2299 If the `apiext:VK_NV_viewport_swizzle` extension is enabled, and a 2300 shader object is bound to any graphics stage, then the 2301 pname:viewportCount parameter in the last call to 2302 flink:vkCmdSetViewportSwizzleNV must: be greater than or equal to the 2303 pname:viewportCount parameter in the last call to 2304 flink:vkCmdSetViewportWithCount 2305endif::VK_NV_viewport_swizzle[] 2306ifdef::VK_NV_framebuffer_mixed_samples[] 2307 * [[VUID-{refpage}-rasterizationSamples-07494]] 2308 If the `apiext:VK_NV_framebuffer_mixed_samples` extension is enabled, 2309 and if the current subpass has any color attachments and 2310 pname:rasterizationSamples of the last call to 2311 flink:vkCmdSetRasterizationSamplesEXT is greater than the number of 2312 color samples, then the pipeline pname:sampleShadingEnable must: be 2313 ename:VK_FALSE 2314endif::VK_NV_framebuffer_mixed_samples[] 2315ifdef::VK_EXT_line_rasterization[] 2316 * [[VUID-{refpage}-stippledLineEnable-07495]] 2317 If the bound graphics pipeline state was created with the 2318 ename:VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or 2319 ename:VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states 2320 enabled, and if the current pname:stippledLineEnable state is 2321 ename:VK_TRUE and the current pname:lineRasterizationMode state is 2322 ename:VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT, then the 2323 <<features-stippledRectangularLines, pname:stippledRectangularLines>> 2324 feature must: be enabled 2325 * [[VUID-{refpage}-stippledLineEnable-07496]] 2326 If the bound graphics pipeline state was created with the 2327 ename:VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or 2328 ename:VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states 2329 enabled, and if the current pname:stippledLineEnable state is 2330 ename:VK_TRUE and the current pname:lineRasterizationMode state is 2331 ename:VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT, then the 2332 <<features-stippledBresenhamLines, pname:stippledBresenhamLines>> 2333 feature must: be enabled 2334 * [[VUID-{refpage}-stippledLineEnable-07497]] 2335 If the bound graphics pipeline state was created with the 2336 ename:VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or 2337 ename:VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states 2338 enabled, and if the current pname:stippledLineEnable state is 2339 ename:VK_TRUE and the current pname:lineRasterizationMode state is 2340 ename:VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT, then the 2341 <<features-stippledSmoothLines, pname:stippledSmoothLines>> feature 2342 must: be enabled 2343 * [[VUID-{refpage}-stippledLineEnable-07498]] 2344 If the bound graphics pipeline state was created with the 2345 ename:VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT or 2346 ename:VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT dynamic states 2347 enabled, and if the current pname:stippledLineEnable state is 2348 ename:VK_TRUE and the current pname:lineRasterizationMode state is 2349 ename:VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT, then the 2350 <<features-stippledRectangularLines, pname:stippledRectangularLines>> 2351 feature must: be enabled and 2352 slink:VkPhysicalDeviceLimits::pname:strictLines must: be ename:VK_TRUE 2353endif::VK_EXT_line_rasterization[] 2354ifdef::VK_EXT_conservative_rasterization[] 2355 * [[VUID-{refpage}-conservativePointAndLineRasterization-07499]] 2356 If the bound graphics pipeline state was created with the 2357 ename:VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT dynamic state 2358 enabled, <<limits-conservativePointAndLineRasterization, 2359 pname:conservativePointAndLineRasterization>> is not supported, and the 2360 effective primitive topology output by the last pre-rasterization shader 2361 stage is a line or point, then the pname:conservativeRasterizationMode 2362 set by the last call to flink:vkCmdSetConservativeRasterizationModeEXT 2363 must: be ename:VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT 2364endif::VK_EXT_conservative_rasterization[] 2365endif::VK_EXT_extended_dynamic_state3,VK_EXT_shader_object[] 2366ifdef::VK_EXT_mesh_shader[] 2367 * [[VUID-{refpage}-stage-07073]] 2368 If the currently bound pipeline was created with the 2369 slink:VkPipelineShaderStageCreateInfo::pname:stage member of an element 2370 of slink:VkGraphicsPipelineCreateInfo::pname:pStages set to 2371 ename:VK_SHADER_STAGE_VERTEX_BIT, 2372 ename:VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT, 2373 ename:VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT or 2374 ename:VK_SHADER_STAGE_GEOMETRY_BIT, then <<queries-mesh-shader, Mesh 2375 Shader Queries>> must: not be active 2376endif::VK_EXT_mesh_shader[] 2377ifdef::VK_EXT_attachment_feedback_loop_dynamic_state[] 2378 * [[VUID-{refpage}-None-08877]] 2379 If the bound graphics pipeline state was created with the 2380 ename:VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT dynamic state 2381 flink:vkCmdSetAttachmentFeedbackLoopEnableEXT must: have been called in 2382 the current command buffer prior to this drawing command 2383endif::VK_EXT_attachment_feedback_loop_dynamic_state[] 2384ifdef::VK_NV_inherited_viewport_scissor[] 2385 * [[VUID-{refpage}-None-07850]] 2386 If dynamic state was inherited from 2387 slink:VkCommandBufferInheritanceViewportScissorInfoNV, it must: be set 2388 in the current command buffer prior to this drawing command 2389endif::VK_NV_inherited_viewport_scissor[] 2390ifdef::VK_EXT_shader_object[] 2391 * [[VUID-{refpage}-None-08684]] 2392 If there is no bound graphics pipeline, fname:vkCmdBindShadersEXT must: 2393 have been called in the current command buffer with pname:pStages with 2394 an element of ename:VK_SHADER_STAGE_VERTEX_BIT 2395 * [[VUID-{refpage}-None-08685]] 2396 If there is no bound graphics pipeline, and the 2397 <<features-tessellationShader, pname:tessellationShader>> feature is 2398 enabled, fname:vkCmdBindShadersEXT must: have been called in the current 2399 command buffer with pname:pStages with an element of 2400 ename:VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT 2401 * [[VUID-{refpage}-None-08686]] 2402 If there is no bound graphics pipeline, and the 2403 <<features-tessellationShader, pname:tessellationShader>> feature is 2404 enabled, fname:vkCmdBindShadersEXT must: have been called in the current 2405 command buffer with pname:pStages with an element of 2406 ename:VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT 2407 * [[VUID-{refpage}-None-08687]] 2408 If there is no bound graphics pipeline, and the 2409 <<features-geometryShader, pname:geometryShader>> feature is enabled, 2410 fname:vkCmdBindShadersEXT must: have been called in the current command 2411 buffer with pname:pStages with an element of 2412 ename:VK_SHADER_STAGE_GEOMETRY_BIT 2413 * [[VUID-{refpage}-None-08688]] 2414 If there is no bound graphics pipeline, fname:vkCmdBindShadersEXT must: 2415 have been called in the current command buffer with pname:pStages with 2416 an element of ename:VK_SHADER_STAGE_FRAGMENT_BIT 2417ifdef::VK_EXT_mesh_shader[] 2418 * [[VUID-{refpage}-None-08689]] 2419 If there is no bound graphics pipeline, and the <<features-taskShader, 2420 pname:taskShader>> feature is enabled, fname:vkCmdBindShadersEXT must: 2421 have been called in the current command buffer with pname:pStages with 2422 an element of ename:VK_SHADER_STAGE_TASK_BIT_EXT 2423 * [[VUID-{refpage}-None-08690]] 2424 If there is no bound graphics pipeline, and the <<features-meshShader, 2425 pname:meshShader>> feature is enabled, fname:vkCmdBindShadersEXT must: 2426 have been called in the current command buffer with pname:pStages with 2427 an element of ename:VK_SHADER_STAGE_MESH_BIT_EXT 2428endif::VK_EXT_mesh_shader[] 2429ifndef::VK_EXT_mesh_shader[] 2430ifdef::VK_NV_mesh_shader[] 2431 * [[VUID-{refpage}-None-08691]] 2432 If there is no bound graphics pipeline, and the <<features-taskShader, 2433 pname:taskShader>> feature is enabled, fname:vkCmdBindShadersEXT must: 2434 have been called in the current command buffer with pname:pStages with 2435 an element of ename:VK_SHADER_STAGE_TASK_BIT_NV 2436 * [[VUID-{refpage}-None-08692]] 2437 If there is no bound graphics pipeline, and the <<features-meshShader, 2438 pname:meshShader>> feature is enabled, fname:vkCmdBindShadersEXT must: 2439 have been called in the current command buffer with pname:pStages with 2440 an element of ename:VK_SHADER_STAGE_MESH_BIT_NV 2441endif::VK_NV_mesh_shader[] 2442endif::VK_EXT_mesh_shader[] 2443ifdef::VK_EXT_mesh_shader[] 2444 * [[VUID-{refpage}-None-08693]] 2445 If there is no bound graphics pipeline, and at least one of the 2446 <<features-taskShader, pname:taskShader>> and <<features-meshShader, 2447 pname:meshShader>> features is enabled, one of the 2448 ename:VK_SHADER_STAGE_VERTEX_BIT or ename:VK_SHADER_STAGE_MESH_BIT_EXT 2449 stages must: have a valid sname:VkShaderEXT bound, and the other must: 2450 have no sname:VkShaderEXT bound 2451 * [[VUID-{refpage}-None-08694]] 2452 If there is no bound graphics pipeline, and both the 2453 <<features-taskShader, pname:taskShader>> and <<features-meshShader, 2454 pname:meshShader>> features are enabled, and a valid sname:VkShaderEXT 2455 is bound the to the ename:VK_SHADER_STAGE_MESH_BIT_EXT stage, and that 2456 sname:VkShaderEXT was created without the 2457 ename:VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, a valid 2458 sname:VkShaderEXT must: be bound to the 2459 ename:VK_SHADER_STAGE_TASK_BIT_EXT stage 2460 * [[VUID-{refpage}-None-08695]] 2461 If there is no bound graphics pipeline, and both the 2462 <<features-taskShader, pname:taskShader>> and <<features-meshShader, 2463 pname:meshShader>> features are enabled, and a valid sname:VkShaderEXT 2464 is bound the to the ename:VK_SHADER_STAGE_MESH_BIT_EXT stage, and that 2465 sname:VkShaderEXT was created with the 2466 ename:VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT flag, there must: be no 2467 sname:VkShaderEXT bound to the ename:VK_SHADER_STAGE_TASK_BIT_EXT stage 2468 * [[VUID-{refpage}-None-08696]] 2469 If there is no bound graphics pipeline, and a valid sname:VkShaderEXT is 2470 bound to the ename:VK_SHADER_STAGE_VERTEX_BIT stage, there must: be no 2471 sname:VkShaderEXT bound to either the ename:VK_SHADER_STAGE_TASK_BIT_EXT 2472 stage or the ename:VK_SHADER_STAGE_MESH_BIT_EXT stage 2473endif::VK_EXT_mesh_shader[] 2474ifndef::VK_EXT_mesh_shader[] 2475 * [[VUID-{refpage}-None-08697]] 2476 If there is no bound graphics pipeline, a sname:VkShaderEXT must: be 2477 bound to the ename:VK_SHADER_STAGE_VERTEX_BIT stage 2478endif::VK_EXT_mesh_shader[] 2479 * [[VUID-{refpage}-None-08698]] 2480 If any graphics shader is bound which was created with the 2481 ename:VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, then all shaders created 2482 with the ename:VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag in the same 2483 flink:vkCreateShadersEXT call must: also be bound 2484 * [[VUID-{refpage}-None-08699]] 2485 If any graphics shader is bound which was created with the 2486 ename:VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag, any stages in between 2487 stages whose shaders which did not create a shader with the 2488 ename:VK_SHADER_CREATE_LINK_STAGE_BIT_EXT flag as part of the same 2489 flink:vkCreateShadersEXT call must: not have any sname:VkShaderEXT bound 2490 * [[VUID-{refpage}-None-08878]] 2491 All bound graphics shader objects must: have been created with identical 2492 or identically defined push constant ranges 2493 * [[VUID-{refpage}-None-08879]] 2494 All bound graphics shader objects must: have been created with identical 2495 or identically defined arrays of descriptor set layouts 2496ifdef::VK_ANDROID_external_format_resolve[] 2497 * [[VUID-{refpage}-colorAttachmentCount-09372]] 2498 If the current render pass instance was begun with 2499 flink:vkCmdBeginRendering and a 2500 slink:VkRenderingInfo::pname:colorAttachmentCount equal to `1`, a color 2501 attachment with a resolve mode of 2502 ename:VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID, and a fragment 2503 shader is bound, it must: not declare the code:DepthReplacing or 2504 code:StencilRefReplacingEXT execution modes 2505endif::VK_ANDROID_external_format_resolve[] 2506endif::VK_EXT_shader_object[] 2507ifdef::VK_EXT_attachment_feedback_loop_dynamic_state[] 2508 * [[VUID-{refpage}-None-08880]] 2509 If the <<features-attachmentFeedbackLoopDynamicState, 2510 attachmentFeedbackLoopDynamicState>> feature is enabled on the device, 2511 and a shader object is bound to the ename:VK_SHADER_STAGE_FRAGMENT_BIT 2512 stage, and the most recent call to flink:vkCmdSetRasterizerDiscardEnable 2513 in the current command buffer set pname:rasterizerDiscardEnable to 2514 ename:VK_FALSE, then flink:vkCmdSetAttachmentFeedbackLoopEnableEXT must: 2515 have been called in the current command buffer prior to this drawing 2516 command 2517endif::VK_EXT_attachment_feedback_loop_dynamic_state[] 2518ifdef::VK_EXT_shader_tile_image[] 2519 * [[VUID-{refpage}-pDynamicStates-08715]] 2520 If the bound graphics pipeline state includes a fragment shader stage, 2521 was created with ename:VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE set in 2522 slink:VkPipelineDynamicStateCreateInfo::pname:pDynamicStates, and the 2523 fragment shader declares the code:EarlyFragmentTests execution mode and 2524 uses code:OpDepthAttachmentReadEXT, the pname:depthWriteEnable parameter 2525 in the last call to flink:vkCmdSetDepthWriteEnable must: be 2526 ename:VK_FALSE 2527 * [[VUID-{refpage}-pDynamicStates-08716]] 2528 If the bound graphics pipeline state includes a fragment shader stage, 2529 was created with ename:VK_DYNAMIC_STATE_STENCIL_WRITE_MASK set in 2530 slink:VkPipelineDynamicStateCreateInfo::pname:pDynamicStates, and the 2531 fragment shader declares the code:EarlyFragmentTests execution mode and 2532 uses code:OpStencilAttachmentReadEXT, the pname:writeMask parameter in 2533 the last call to flink:vkCmdSetStencilWriteMask must: be `0` 2534endif::VK_EXT_shader_tile_image[] 2535ifdef::VK_EXT_extended_dynamic_state3,VK_EXT_shader_object[] 2536 * [[VUID-{refpage}-None-09116]] 2537 If 2538ifdef::VK_EXT_shader_object[] 2539 a shader object is bound to any graphics stage 2540endif::VK_EXT_shader_object[] 2541ifdef::VK_EXT_extended_dynamic_state3+VK_EXT_shader_object[or] 2542ifdef::VK_EXT_extended_dynamic_state3[] 2543 the currently bound graphics pipeline was created with 2544 ename:VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT, 2545endif::VK_EXT_extended_dynamic_state3[] 2546 and the format of any color attachment is 2547 ename:VK_FORMAT_E5B9G9R9_UFLOAT_PACK32, the corresponding element of the 2548 pname:pColorWriteMasks parameter of flink:vkCmdSetColorWriteMaskEXT 2549 must: either include all of ename:VK_COLOR_COMPONENT_R_BIT, 2550 ename:VK_COLOR_COMPONENT_G_BIT, and ename:VK_COLOR_COMPONENT_B_BIT, or 2551 none of them 2552endif::VK_EXT_extended_dynamic_state3,VK_EXT_shader_object[] 2553 * [[VUID-{refpage}-maxFragmentDualSrcAttachments-09239]] 2554 If <<framebuffer-blending,blending>> is enabled for any attachment where 2555 either the source or destination blend factors for that attachment 2556 <<framebuffer-dsb, use the secondary color input>>, the maximum value of 2557 code:Location for any output attachment <<shaders-staticuse, statically 2558 used>> in the code:Fragment {ExecutionModel} executed by this command 2559 must: be less than <<limits-maxFragmentDualSrcAttachments, 2560 pname:maxFragmentDualSrcAttachments>> 2561// Common Valid Usage 2562