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