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