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