blob: 0e6c87674b6b9ddea26e328f9ad8d3fc8119eebb [file] [log] [blame]
Lionel Landwerlin2d9f5632022-01-08 01:12:47 +02001/* Copyright (c) 2015-2022 The Khronos Group Inc.
2 * Copyright (c) 2015-2022 Valve Corporation
3 * Copyright (c) 2015-2022 LunarG, Inc.
4 * Copyright (C) 2015-2022 Google Inc.
stusmithedc4e392021-12-24 15:22:16 +00005 * Modifications Copyright (C) 2020-2022 Advanced Micro Devices, Inc. All rights reserved.
Jasper St. Pierre512613a2019-04-08 16:25:23 -07006 *
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
10 *
11 * http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 *
19 * Author: Cody Northrop <cnorthrop@google.com>
20 * Author: Michael Lentine <mlentine@google.com>
21 * Author: Tobin Ehlis <tobine@google.com>
22 * Author: Chia-I Wu <olv@google.com>
23 * Author: Chris Forbes <chrisf@ijw.co.nz>
24 * Author: Mark Lobodzinski <mark@lunarg.com>
25 * Author: Ian Elliott <ianelliott@google.com>
26 * Author: Dave Houlton <daveh@lunarg.com>
27 * Author: Dustin Graves <dustin@lunarg.com>
28 * Author: Jeremy Hayes <jeremy@lunarg.com>
29 * Author: Jon Ashburn <jon@lunarg.com>
30 * Author: Karl Schultz <karl@lunarg.com>
31 * Author: Mark Young <marky@lunarg.com>
32 * Author: Mike Schuchardt <mikes@lunarg.com>
33 * Author: Mike Weiblen <mikew@lunarg.com>
34 * Author: Tony Barbour <tony@LunarG.com>
35 * Author: John Zulauf <jzulauf@lunarg.com>
36 * Author: Shannon McPherson <shannon@lunarg.com>
Jeremy Kniagere6827432020-04-01 09:05:56 -060037 * Author: Jeremy Kniager <jeremyk@lunarg.com>
Mark Lobodzinskiddf43612020-11-17 11:28:02 -070038 * Author: Nathaniel Cesario <nathaniel@lunarg.com>
Tobias Hector6663c9b2020-11-05 10:18:02 +000039 * Author: Tobias Hector <tobias.hector@amd.com>
Jasper St. Pierre512613a2019-04-08 16:25:23 -070040 */
41
Jasper St. Pierre512613a2019-04-08 16:25:23 -070042#include "chassis.h"
43#include "core_validation.h"
44
Spencer Fricke507600b2020-03-22 13:23:06 -070045// clang-format off
Mark Lobodzinskiddf43612020-11-17 11:28:02 -070046struct DispatchVuidsCmdDraw : DrawDispatchVuid {
47 DispatchVuidsCmdDraw() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -070048 pipeline_bound = "VUID-vkCmdDraw-None-02700";
49 dynamic_state = "VUID-vkCmdDraw-commandBuffer-02701";
50 vertex_binding = "VUID-vkCmdDraw-None-04007";
51 vertex_binding_null = "VUID-vkCmdDraw-None-04008";
52 compatible_pipeline = "VUID-vkCmdDraw-None-02697";
53 render_pass_compatible = "VUID-vkCmdDraw-renderPass-02684";
54 subpass_index = "VUID-vkCmdDraw-subpass-02685";
55 sample_location = "VUID-vkCmdDraw-sampleLocationsEnable-02689";
56 linear_sampler = "VUID-vkCmdDraw-magFilter-04553";
57 cubic_sampler = "VUID-vkCmdDraw-None-02692";
58 viewport_count = "VUID-vkCmdDraw-viewportCount-03417";
59 scissor_count = "VUID-vkCmdDraw-scissorCount-03418";
60 viewport_scissor_count = "VUID-vkCmdDraw-viewportCount-03419";
61 primitive_topology = "VUID-vkCmdDraw-primitiveTopology-03420";
62 corner_sampled_address_mode = "VUID-vkCmdDraw-flags-02696";
63 subpass_input = "VUID-vkCmdDraw-None-02686";
64 imageview_atomic = "VUID-vkCmdDraw-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -070065 push_constants_set = "VUID-vkCmdDraw-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +010066 image_subresources_render_pass_write = "VUID-vkCmdDraw-None-06537";
67 image_subresources_subpass_read = "VUID-vkCmdDraw-None-06538";
68 image_subresources_subpass_write = "VUID-vkCmdDraw-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -070069 descriptor_valid = "VUID-vkCmdDraw-None-02699";
70 sampler_imageview_type = "VUID-vkCmdDraw-None-02702";
71 sampler_implicitLod_dref_proj = "VUID-vkCmdDraw-None-02703";
72 sampler_bias_offset = "VUID-vkCmdDraw-None-02704";
73 vertex_binding_attribute = "VUID-vkCmdDraw-None-02721";
74 dynamic_state_setting_commands = "VUID-vkCmdDraw-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -070075 rasterization_samples = "VUID-vkCmdDraw-rasterizationSamples-04740";
Tony-LunarG13778ab2022-09-07 14:43:02 -060076 msrtss_rasterization_samples = "VUID-vkCmdDraw-multisampledRenderToSingleSampled-07284";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -070077 unprotected_command_buffer = "VUID-vkCmdDraw-commandBuffer-02707";
78 protected_command_buffer = "VUID-vkCmdDraw-commandBuffer-02712";
79 max_multiview_instance_index = "VUID-vkCmdDraw-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -070080 img_filter_cubic = "VUID-vkCmdDraw-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -070081 filter_cubic = "VUID-vkCmdDraw-filterCubic-02694";
82 filter_cubic_min_max = "VUID-vkCmdDraw-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +000083 viewport_count_primitive_shading_rate = "VUID-vkCmdDraw-primitiveFragmentShadingRateWithMultipleViewports-04552";
Vikram Kushwahaa57b0c32021-04-19 12:21:46 -070084 patch_control_points = "VUID-vkCmdDraw-None-04875";
85 rasterizer_discard_enable = "VUID-vkCmdDraw-None-04876";
86 depth_bias_enable = "VUID-vkCmdDraw-None-04877";
87 logic_op = "VUID-vkCmdDraw-logicOp-04878";
88 primitive_restart_enable = "VUID-vkCmdDraw-None-04879";
Piers Daniell924cd832021-05-18 13:48:47 -060089 vertex_input_binding_stride = "VUID-vkCmdDraw-pStrides-04884";
90 vertex_input = kVUID_Core_CmdDraw_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +020091 blend_enable = "VUID-vkCmdDraw-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +010092 color_write_enable = "VUID-vkCmdDraw-attachmentCount-06667";
Aaron Hagan92a44f82021-11-19 09:34:56 -050093 dynamic_rendering_view_mask = "VUID-vkCmdDraw-viewMask-06178";
94 dynamic_rendering_color_count = "VUID-vkCmdDraw-colorAttachmentCount-06179";
95 dynamic_rendering_color_formats = "VUID-vkCmdDraw-colorAttachmentCount-06180";
96 dynamic_rendering_depth_format = "VUID-vkCmdDraw-pDepthAttachment-06181";
97 dynamic_rendering_stencil_format = "VUID-vkCmdDraw-pStencilAttachment-06182";
98 dynamic_rendering_fsr = "VUID-vkCmdDraw-imageView-06183";
99 dynamic_rendering_fdm = "VUID-vkCmdDraw-imageView-06184";
Aaron Hagan09a0e172021-11-19 21:18:33 -0500100 dynamic_rendering_color_sample = "VUID-vkCmdDraw-colorAttachmentCount-06185";
101 dynamic_rendering_depth_sample = "VUID-vkCmdDraw-pDepthAttachment-06186";
102 dynamic_rendering_stencil_sample = "VUID-vkCmdDraw-pStencilAttachment-06187";
103 dynamic_rendering_multi_sample = "VUID-vkCmdDraw-colorAttachmentCount-06188";
Aaron Haganaca50442021-12-07 22:26:29 -0500104 dynamic_rendering_06189 = "VUID-vkCmdDraw-pDepthAttachment-06189";
105 dynamic_rendering_06190 = "VUID-vkCmdDraw-pStencilAttachment-06190";
106 dynamic_rendering_06198 = "VUID-vkCmdDraw-renderPass-06198";
Tony-LunarG13778ab2022-09-07 14:43:02 -0600107 dynamic_rendering_07285 = "VUID-vkCmdDraw-multisampledRenderToSingleSampled-07285";
108 dynamic_rendering_07286 = "VUID-vkCmdDraw-multisampledRenderToSingleSampled-07286";
109 dynamic_rendering_07287 = "VUID-vkCmdDraw-multisampledRenderToSingleSampled-07287";
Mike Schuchardt0e558a52022-08-18 15:14:51 -0700110 storage_image_read_without_format = "VUID-vkCmdDraw-OpTypeImage-07028";
111 storage_image_write_without_format = "VUID-vkCmdDraw-OpTypeImage-07027";
112 storage_texel_buffer_read_without_format = "VUID-vkCmdDraw-OpTypeImage-07030";
113 storage_texel_buffer_write_without_format = "VUID-vkCmdDraw-OpTypeImage-07029";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200114 depth_compare_sample = "VUID-vkCmdDraw-None-06479";
ziga-lunarg50188622022-03-26 01:18:32 +0100115 dynamic_sample_locations = "VUID-vkCmdDraw-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +0200116 primitives_generated = "VUID-vkCmdDraw-primitivesGeneratedQueryWithRasterizerDiscard-06708";
ziga-lunargf4068b12022-04-05 13:58:59 +0200117 primitives_generated_streams = "VUID-vkCmdDraw-primitivesGeneratedQueryWithNonZeroStreams-06709";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700118 }
119};
120
Tony-LunarG4490de42021-06-21 15:49:19 -0600121struct DispatchVuidsCmdDrawMultiEXT : DrawDispatchVuid {
122 DispatchVuidsCmdDrawMultiEXT() : DrawDispatchVuid() {
123 pipeline_bound = "VUID-vkCmdDrawMultiEXT-None-02700";
124 dynamic_state = "VUID-vkCmdDrawMultiEXT-commandBuffer-02701";
125 vertex_binding = "VUID-vkCmdDrawMultiEXT-None-04007";
126 vertex_binding_null = "VUID-vkCmdDrawMultiEXT-None-04008";
127 compatible_pipeline = "VUID-vkCmdDrawMultiEXT-None-02697";
128 render_pass_compatible = "VUID-vkCmdDrawMultiEXT-renderPass-02684";
129 subpass_index = "VUID-vkCmdDrawMultiEXT-subpass-02685";
130 sample_location = "VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-02689";
131 linear_sampler = "VUID-vkCmdDrawMultiEXT-magFilter-04553";
132 cubic_sampler = "VUID-vkCmdDrawMultiEXT-None-02692";
133 viewport_count = "VUID-vkCmdDrawMultiEXT-viewportCount-03417";
134 scissor_count = "VUID-vkCmdDrawMultiEXT-scissorCount-03418";
135 viewport_scissor_count = "VUID-vkCmdDrawMultiEXT-viewportCount-03419";
136 primitive_topology = "VUID-vkCmdDrawMultiEXT-primitiveTopology-03420";
137 corner_sampled_address_mode = "VUID-vkCmdDrawMultiEXT-flags-02696";
138 subpass_input = "VUID-vkCmdDrawMultiEXT-None-02686";
139 imageview_atomic = "VUID-vkCmdDrawMultiEXT-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700140 push_constants_set = "VUID-vkCmdDrawMultiEXT-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100141 image_subresources_render_pass_write = "VUID-vkCmdDrawMultiEXT-None-06537";
142 image_subresources_subpass_read = "VUID-vkCmdDrawMultiEXT-None-06538";
143 image_subresources_subpass_write = "VUID-vkCmdDrawMultiEXT-None-06539";
Tony-LunarG4490de42021-06-21 15:49:19 -0600144 descriptor_valid = "VUID-vkCmdDrawMultiEXT-None-02699";
145 sampler_imageview_type = "VUID-vkCmdDrawMultiEXT-None-02702";
146 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawMultiEXT-None-02703";
147 sampler_bias_offset = "VUID-vkCmdDrawMultiEXT-None-02704";
148 vertex_binding_attribute = "VUID-vkCmdDrawMultiEXT-None-02721";
149 dynamic_state_setting_commands = "VUID-vkCmdDrawMultiEXT-None-02859";
150 rasterization_samples = "VUID-vkCmdDrawMultiEXT-rasterizationSamples-04740";
Tony-LunarG13778ab2022-09-07 14:43:02 -0600151 msrtss_rasterization_samples = "VUID-vkCmdDrawMultiEXT-multisampledRenderToSingleSampled-07284";
Tony-LunarG4490de42021-06-21 15:49:19 -0600152 unprotected_command_buffer = "VUID-vkCmdDrawMultiEXT-commandBuffer-02707";
153 protected_command_buffer = "VUID-vkCmdDrawMultiEXT-commandBuffer-02712";
154 max_multiview_instance_index = "VUID-vkCmdDrawMultiEXT-maxMultiviewInstanceIndex-02688";
155 img_filter_cubic = "VUID-vkCmdDrawMultiEXT-None-02693";
156 filter_cubic = "VUID-vkCmdDrawMultiEXT-filterCubic-02694";
157 filter_cubic_min_max = "VUID-vkCmdDrawMultiEXT-filterCubicMinmax-02695";
158 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawMultiEXT-primitiveFragmentShadingRateWithMultipleViewports-04552";
159 patch_control_points = "VUID-vkCmdDrawMultiEXT-None-04875";
160 rasterizer_discard_enable = "VUID-vkCmdDrawMultiEXT-None-04876";
161 depth_bias_enable = "VUID-vkCmdDrawMultiEXT-None-04877";
162 logic_op = "VUID-vkCmdDrawMultiEXT-logicOp-04878";
163 primitive_restart_enable = "VUID-vkCmdDrawMultiEXT-None-04879";
164 vertex_input_binding_stride = "VUID-vkCmdDrawMultiEXT-pStrides-04884";
165 vertex_input = kVUID_Core_CmdDrawMultiEXT_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200166 blend_enable = "VUID-vkCmdDrawMultiEXT-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100167 color_write_enable = "VUID-vkCmdDrawMultiEXT-attachmentCount-06667";
Aaron Hagan92a44f82021-11-19 09:34:56 -0500168 dynamic_rendering_view_mask = "VUID-vkCmdDrawMultiEXT-viewMask-06178";
169 dynamic_rendering_color_count = "VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06179";
170 dynamic_rendering_color_formats = "VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06180";
171 dynamic_rendering_depth_format = "VUID-vkCmdDrawMultiEXT-pDepthAttachment-06181";
172 dynamic_rendering_stencil_format = "VUID-vkCmdDrawMultiEXT-pStencilAttachment-06182";
173 dynamic_rendering_fsr = "VUID-vkCmdDrawMultiEXT-imageView-06183";
174 dynamic_rendering_fdm = "VUID-vkCmdDrawMultiEXT-imageView-06184";
Aaron Hagan09a0e172021-11-19 21:18:33 -0500175 dynamic_rendering_color_sample = "VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06185";
176 dynamic_rendering_depth_sample = "VUID-vkCmdDrawMultiEXT-pDepthAttachment-06186";
177 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawMultiEXT-pStencilAttachment-06187";
178 dynamic_rendering_multi_sample = "VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06188";
Aaron Haganaca50442021-12-07 22:26:29 -0500179 dynamic_rendering_06189 = "VUID-vkCmdDrawMultiEXT-pDepthAttachment-06189";
180 dynamic_rendering_06190 = "VUID-vkCmdDrawMultiEXT-pStencilAttachment-06190";
181 dynamic_rendering_06198 = "VUID-vkCmdDrawMultiEXT-renderPass-06198";
Tony-LunarG13778ab2022-09-07 14:43:02 -0600182 dynamic_rendering_07285 = "VUID-vkCmdDrawMultiEXT-multisampledRenderToSingleSampled-07285";
183 dynamic_rendering_07286 = "VUID-vkCmdDrawMultiEXT-multisampledRenderToSingleSampled-07286";
184 dynamic_rendering_07287 = "VUID-vkCmdDrawMultiEXT-multisampledRenderToSingleSampled-07287";
Mike Schuchardt0e558a52022-08-18 15:14:51 -0700185 storage_image_read_without_format = "VUID-vkCmdDrawMultiEXT-OpTypeImage-07028";
186 storage_image_write_without_format = "VUID-vkCmdDrawMultiEXT-OpTypeImage-07027";
187 storage_texel_buffer_read_without_format = "VUID-vkCmdDrawMultiEXT-OpTypeImage-07030";
188 storage_texel_buffer_write_without_format = "VUID-vkCmdDrawMultiEXT-OpTypeImage-07029";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200189 depth_compare_sample = "VUID-vkCmdDrawMultiEXT-None-06479";
ziga-lunarg50188622022-03-26 01:18:32 +0100190 dynamic_sample_locations = "VUID-vkCmdDrawMultiEXT-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +0200191 primitives_generated = "VUID-vkCmdDrawMultiEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708";
ziga-lunargf4068b12022-04-05 13:58:59 +0200192 primitives_generated_streams = "VUID-vkCmdDrawMultiEXT-primitivesGeneratedQueryWithNonZeroStreams-06709";
Tony-LunarG4490de42021-06-21 15:49:19 -0600193 }
194};
195
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700196struct DispatchVuidsCmdDrawIndexed : DrawDispatchVuid {
197 DispatchVuidsCmdDrawIndexed() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700198 pipeline_bound = "VUID-vkCmdDrawIndexed-None-02700";
199 dynamic_state = "VUID-vkCmdDrawIndexed-commandBuffer-02701";
200 vertex_binding = "VUID-vkCmdDrawIndexed-None-04007";
201 vertex_binding_null = "VUID-vkCmdDrawIndexed-None-04008";
202 compatible_pipeline = "VUID-vkCmdDrawIndexed-None-02697";
203 render_pass_compatible = "VUID-vkCmdDrawIndexed-renderPass-02684";
204 subpass_index = "VUID-vkCmdDrawIndexed-subpass-02685";
205 sample_location = "VUID-vkCmdDrawIndexed-sampleLocationsEnable-02689";
206 linear_sampler = "VUID-vkCmdDrawIndexed-magFilter-04553";
207 cubic_sampler = "VUID-vkCmdDrawIndexed-None-02692";
208 viewport_count = "VUID-vkCmdDrawIndexed-viewportCount-03417";
209 scissor_count = "VUID-vkCmdDrawIndexed-scissorCount-03418";
210 viewport_scissor_count = "VUID-vkCmdDrawIndexed-viewportCount-03419";
211 primitive_topology = "VUID-vkCmdDrawIndexed-primitiveTopology-03420";
212 corner_sampled_address_mode = "VUID-vkCmdDrawIndexed-flags-02696";
213 subpass_input = "VUID-vkCmdDrawIndexed-None-02686";
214 imageview_atomic = "VUID-vkCmdDrawIndexed-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700215 push_constants_set = "VUID-vkCmdDrawIndexed-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100216 image_subresources_render_pass_write = "VUID-vkCmdDrawIndexed-None-06537";
217 image_subresources_subpass_read = "VUID-vkCmdDrawIndexed-None-06538";
218 image_subresources_subpass_write = "VUID-vkCmdDrawIndexed-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700219 descriptor_valid = "VUID-vkCmdDrawIndexed-None-02699";
220 sampler_imageview_type = "VUID-vkCmdDrawIndexed-None-02702";
221 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawIndexed-None-02703";
222 sampler_bias_offset = "VUID-vkCmdDrawIndexed-None-02704";
223 vertex_binding_attribute = "VUID-vkCmdDrawIndexed-None-02721";
224 dynamic_state_setting_commands = "VUID-vkCmdDrawIndexed-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700225 rasterization_samples = "VUID-vkCmdDrawIndexed-rasterizationSamples-04740";
Tony-LunarG13778ab2022-09-07 14:43:02 -0600226 msrtss_rasterization_samples = "VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07284";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700227 unprotected_command_buffer = "VUID-vkCmdDrawIndexed-commandBuffer-02707";
228 protected_command_buffer = "VUID-vkCmdDrawIndexed-commandBuffer-02712";
229 max_multiview_instance_index = "VUID-vkCmdDrawIndexed-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700230 img_filter_cubic = "VUID-vkCmdDrawIndexed-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700231 filter_cubic = "VUID-vkCmdDrawIndexed-filterCubic-02694";
232 filter_cubic_min_max = "VUID-vkCmdDrawIndexed-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000233 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawIndexed-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600234 patch_control_points = "VUID-vkCmdDrawIndexed-None-04875";
235 rasterizer_discard_enable = "VUID-vkCmdDrawIndexed-None-04876";
236 depth_bias_enable = "VUID-vkCmdDrawIndexed-None-04877";
237 logic_op = "VUID-vkCmdDrawIndexed-logicOp-04878";
238 primitive_restart_enable = "VUID-vkCmdDrawIndexed-None-04879";
239 vertex_input_binding_stride = "VUID-vkCmdDrawIndexed-pStrides-04884";
240 vertex_input = kVUID_Core_CmdDrawIndexed_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200241 blend_enable = "VUID-vkCmdDrawIndexed-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100242 color_write_enable = "VUID-vkCmdDrawIndexed-attachmentCount-06667";
Aaron Hagan92a44f82021-11-19 09:34:56 -0500243 dynamic_rendering_view_mask = "VUID-vkCmdDrawIndexed-viewMask-06178";
244 dynamic_rendering_color_count = "VUID-vkCmdDrawIndexed-colorAttachmentCount-06179";
245 dynamic_rendering_color_formats = "VUID-vkCmdDrawIndexed-colorAttachmentCount-06180";
246 dynamic_rendering_depth_format = "VUID-vkCmdDrawIndexed-pDepthAttachment-06181";
247 dynamic_rendering_stencil_format = "VUID-vkCmdDrawIndexed-pStencilAttachment-06182";
248 dynamic_rendering_fsr = "VUID-vkCmdDrawIndexed-imageView-06183";
249 dynamic_rendering_fdm = "VUID-vkCmdDrawIndexed-imageView-06184";
Aaron Hagan09a0e172021-11-19 21:18:33 -0500250 dynamic_rendering_color_sample = "VUID-vkCmdDrawIndexed-colorAttachmentCount-06185";
251 dynamic_rendering_depth_sample = "VUID-vkCmdDrawIndexed-pDepthAttachment-06186";
252 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawIndexed-pStencilAttachment-06187";
253 dynamic_rendering_multi_sample = "VUID-vkCmdDrawIndexed-colorAttachmentCount-06188";
Aaron Haganaca50442021-12-07 22:26:29 -0500254 dynamic_rendering_06189 = "VUID-vkCmdDrawIndexed-pDepthAttachment-06189";
255 dynamic_rendering_06190 = "VUID-vkCmdDrawIndexed-pStencilAttachment-06190";
256 dynamic_rendering_06198 = "VUID-vkCmdDrawIndexed-renderPass-06198";
Tony-LunarG13778ab2022-09-07 14:43:02 -0600257 dynamic_rendering_07285 = "VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07285";
258 dynamic_rendering_07286 = "VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07286";
259 dynamic_rendering_07287 = "VUID-vkCmdDrawIndexed-multisampledRenderToSingleSampled-07287";
Mike Schuchardt0e558a52022-08-18 15:14:51 -0700260 storage_image_read_without_format = "VUID-vkCmdDrawIndexed-OpTypeImage-07028";
261 storage_image_write_without_format = "VUID-vkCmdDrawIndexed-OpTypeImage-07027";
262 storage_texel_buffer_read_without_format = "VUID-vkCmdDrawIndexed-OpTypeImage-07030";
263 storage_texel_buffer_write_without_format = "VUID-vkCmdDrawIndexed-OpTypeImage-07029";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200264 depth_compare_sample = "VUID-vkCmdDrawIndexed-None-06479";
ziga-lunarg50188622022-03-26 01:18:32 +0100265 dynamic_sample_locations = "VUID-vkCmdDrawIndexed-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +0200266 primitives_generated = "VUID-vkCmdDrawIndexed-primitivesGeneratedQueryWithRasterizerDiscard-06708";
ziga-lunargf4068b12022-04-05 13:58:59 +0200267 primitives_generated_streams = "VUID-vkCmdDrawIndexed-primitivesGeneratedQueryWithNonZeroStreams-06709";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700268 }
269};
270
Tony-LunarG4490de42021-06-21 15:49:19 -0600271struct DispatchVuidsCmdDrawMultiIndexedEXT : DrawDispatchVuid {
272 DispatchVuidsCmdDrawMultiIndexedEXT() : DrawDispatchVuid() {
Lionel Landwerlin45e981c2021-12-07 15:29:40 +0200273 pipeline_bound = "VUID-vkCmdDrawMultiIndexedEXT-None-02700";
274 dynamic_state = "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02701";
275 vertex_binding = "VUID-vkCmdDrawMultiIndexedEXT-None-04007";
276 vertex_binding_null = "VUID-vkCmdDrawMultiIndexedEXT-None-04008";
277 compatible_pipeline = "VUID-vkCmdDrawMultiIndexedEXT-None-02697";
278 render_pass_compatible = "VUID-vkCmdDrawMultiIndexedEXT-renderPass-02684";
279 subpass_index = "VUID-vkCmdDrawMultiIndexedEXT-subpass-02685";
280 sample_location = "VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-02689";
281 linear_sampler = "VUID-vkCmdDrawMultiIndexedEXT-magFilter-04553";
282 cubic_sampler = "VUID-vkCmdDrawMultiIndexedEXT-None-02692";
283 viewport_count = "VUID-vkCmdDrawMultiIndexedEXT-viewportCount-03417";
284 scissor_count = "VUID-vkCmdDrawMultiIndexedEXT-scissorCount-03418";
285 viewport_scissor_count = "VUID-vkCmdDrawMultiIndexedEXT-viewportCount-03419";
286 primitive_topology = "VUID-vkCmdDrawMultiIndexedEXT-primitiveTopology-03420";
287 corner_sampled_address_mode = "VUID-vkCmdDrawMultiIndexedEXT-flags-02696";
288 subpass_input = "VUID-vkCmdDrawMultiIndexedEXT-None-02686";
289 imageview_atomic = "VUID-vkCmdDrawMultiIndexedEXT-None-02691";
290 push_constants_set = "VUID-vkCmdDrawMultiIndexedEXT-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100291 image_subresources_render_pass_write = "VUID-vkCmdDrawMultiIndexedEXT-None-06537";
292 image_subresources_subpass_read = "VUID-vkCmdDrawMultiIndexedEXT-None-06538";
293 image_subresources_subpass_write = "VUID-vkCmdDrawMultiIndexedEXT-None-06539";
Lionel Landwerlin45e981c2021-12-07 15:29:40 +0200294 descriptor_valid = "VUID-vkCmdDrawMultiIndexedEXT-None-02699";
295 sampler_imageview_type = "VUID-vkCmdDrawMultiIndexedEXT-None-02702";
296 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawMultiIndexedEXT-None-02703";
297 sampler_bias_offset = "VUID-vkCmdDrawMultiIndexedEXT-None-02704";
298 vertex_binding_attribute = "VUID-vkCmdDrawMultiIndexedEXT-None-02721";
299 dynamic_state_setting_commands = "VUID-vkCmdDrawMultiIndexedEXT-None-02859";
300 rasterization_samples = "VUID-vkCmdDrawMultiIndexedEXT-rasterizationSamples-04740";
Tony-LunarG13778ab2022-09-07 14:43:02 -0600301 msrtss_rasterization_samples = "VUID-vkCmdDrawMultiIndexedEXT-multisampledRenderToSingleSampled-07284";
Lionel Landwerlin45e981c2021-12-07 15:29:40 +0200302 unprotected_command_buffer = "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02707";
303 protected_command_buffer = "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02712";
304 max_multiview_instance_index = "VUID-vkCmdDrawMultiIndexedEXT-maxMultiviewInstanceIndex-02688";
305 img_filter_cubic = "VUID-vkCmdDrawMultiIndexedEXT-None-02693";
306 filter_cubic = "VUID-vkCmdDrawMultiIndexedEXT-filterCubic-02694";
307 filter_cubic_min_max = "VUID-vkCmdDrawMultiIndexedEXT-filterCubicMinmax-02695";
Tony-LunarG4490de42021-06-21 15:49:19 -0600308 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawMultiIndexedEXT-primitiveFragmentShadingRateWithMultipleViewports-04552";
Lionel Landwerlin45e981c2021-12-07 15:29:40 +0200309 patch_control_points = "VUID-vkCmdDrawMultiIndexedEXT-None-04875";
310 rasterizer_discard_enable = "VUID-vkCmdDrawMultiIndexedEXT-None-04876";
311 depth_bias_enable = "VUID-vkCmdDrawMultiIndexedEXT-None-04877";
312 logic_op = "VUID-vkCmdDrawMultiIndexedEXT-logicOp-04878";
313 primitive_restart_enable = "VUID-vkCmdDrawMultiIndexedEXT-None-04879";
314 vertex_input_binding_stride = "VUID-vkCmdDrawMultiIndexedEXT-pStrides-04884";
315 vertex_input = kVUID_Core_CmdDrawMultiIndexedEXT_VertexInput;
316 blend_enable = "VUID-vkCmdDrawMultiIndexedEXT-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100317 color_write_enable = "VUID-vkCmdDrawMultiIndexedEXT-attachmentCount-06667";
Lionel Landwerlin45e981c2021-12-07 15:29:40 +0200318 dynamic_rendering_view_mask = "VUID-vkCmdDrawMultiIndexedEXT-viewMask-06178";
319 dynamic_rendering_color_count = "VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06179";
320 dynamic_rendering_color_formats = "VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06180";
321 dynamic_rendering_depth_format = "VUID-vkCmdDrawMultiIndexedEXT-pDepthAttachment-06181";
322 dynamic_rendering_stencil_format = "VUID-vkCmdDrawMultiIndexedEXT-pStencilAttachment-06182";
323 dynamic_rendering_fsr = "VUID-vkCmdDrawMultiIndexedEXT-imageView-06183";
324 dynamic_rendering_fdm = "VUID-vkCmdDrawMultiIndexedEXT-imageView-06184";
325 dynamic_rendering_color_sample = "VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06185";
326 dynamic_rendering_depth_sample = "VUID-vkCmdDrawMultiIndexedEXT-pDepthAttachment-06186";
327 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawMultiIndexedEXT-pStencilAttachment-06187";
328 dynamic_rendering_multi_sample = "VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06188";
Mike Schuchardt0e558a52022-08-18 15:14:51 -0700329 dynamic_rendering_06189 = "VUID-vkCmdDrawMultiIndexedEXT-pDepthAttachment-06189";
330 dynamic_rendering_06190 = "VUID-vkCmdDrawMultiIndexedEXT-pStencilAttachment-06190";
331 dynamic_rendering_06198 = "VUID-vkCmdDrawMultiIndexedEXT-renderPass-06198";
Tony-LunarG13778ab2022-09-07 14:43:02 -0600332 dynamic_rendering_07285 = "VUID-vkCmdDrawMultiIndexedEXT-multisampledRenderToSingleSampled-07285";
333 dynamic_rendering_07286 = "VUID-vkCmdDrawMultiIndexedEXT-multisampledRenderToSingleSampled-07286";
334 dynamic_rendering_07287 = "VUID-vkCmdDrawMultiIndexedEXT-multisampledRenderToSingleSampled-07287";
Mike Schuchardt0e558a52022-08-18 15:14:51 -0700335 storage_image_read_without_format = "VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-07028";
336 storage_image_write_without_format = "VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-07027";
337 storage_texel_buffer_read_without_format = "VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-07030";
338 storage_texel_buffer_write_without_format = "VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-07029";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200339 depth_compare_sample = "VUID-vkCmdDrawMultiIndexedEXT-None-06479";
ziga-lunarg50188622022-03-26 01:18:32 +0100340 dynamic_sample_locations = "VUID-vkCmdDrawMultiIndexedEXT-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +0200341 primitives_generated = "VUID-vkCmdDrawMultiIndexedEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708";
ziga-lunargf4068b12022-04-05 13:58:59 +0200342 primitives_generated_streams = "VUID-vkCmdDrawMultiIndexedEXT-primitivesGeneratedQueryWithNonZeroStreams-06709";
Tony-LunarG4490de42021-06-21 15:49:19 -0600343 }
344};
345
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700346struct DispatchVuidsCmdDrawIndirect : DrawDispatchVuid {
347 DispatchVuidsCmdDrawIndirect() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700348 pipeline_bound = "VUID-vkCmdDrawIndirect-None-02700";
349 dynamic_state = "VUID-vkCmdDrawIndirect-commandBuffer-02701";
350 vertex_binding = "VUID-vkCmdDrawIndirect-None-04007";
351 vertex_binding_null = "VUID-vkCmdDrawIndirect-None-04008";
352 compatible_pipeline = "VUID-vkCmdDrawIndirect-None-02697";
353 render_pass_compatible = "VUID-vkCmdDrawIndirect-renderPass-02684";
354 subpass_index = "VUID-vkCmdDrawIndirect-subpass-02685";
355 sample_location = "VUID-vkCmdDrawIndirect-sampleLocationsEnable-02689";
356 linear_sampler = "VUID-vkCmdDrawIndirect-magFilter-04553";
357 cubic_sampler = "VUID-vkCmdDrawIndirect-None-02692";
358 indirect_protected_cb = "VUID-vkCmdDrawIndirect-commandBuffer-02711";
359 indirect_contiguous_memory = "VUID-vkCmdDrawIndirect-buffer-02708";
360 indirect_buffer_bit = "VUID-vkCmdDrawIndirect-buffer-02709";
361 viewport_count = "VUID-vkCmdDrawIndirect-viewportCount-03417";
362 scissor_count = "VUID-vkCmdDrawIndirect-scissorCount-03418";
363 viewport_scissor_count = "VUID-vkCmdDrawIndirect-viewportCount-03419";
364 primitive_topology = "VUID-vkCmdDrawIndirect-primitiveTopology-03420";
365 corner_sampled_address_mode = "VUID-vkCmdDrawIndirect-flags-02696";
366 subpass_input = "VUID-vkCmdDrawIndirect-None-02686";
367 imageview_atomic = "VUID-vkCmdDrawIndirect-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700368 push_constants_set = "VUID-vkCmdDrawIndirect-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100369 image_subresources_render_pass_write = "VUID-vkCmdDrawIndirect-None-06537";
370 image_subresources_subpass_read = "VUID-vkCmdDrawIndirect-None-06538";
371 image_subresources_subpass_write = "VUID-vkCmdDrawIndirect-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700372 descriptor_valid = "VUID-vkCmdDrawIndirect-None-02699";
373 sampler_imageview_type = "VUID-vkCmdDrawIndirect-None-02702";
374 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawIndirect-None-02703";
375 sampler_bias_offset = "VUID-vkCmdDrawIndirect-None-02704";
376 vertex_binding_attribute = "VUID-vkCmdDrawIndirect-None-02721";
377 dynamic_state_setting_commands = "VUID-vkCmdDrawIndirect-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700378 rasterization_samples = "VUID-vkCmdDrawIndirect-rasterizationSamples-04740";
Tony-LunarG13778ab2022-09-07 14:43:02 -0600379 msrtss_rasterization_samples = "VUID-vkCmdDrawIndirect-multisampledRenderToSingleSampled-07284";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700380 unprotected_command_buffer = "VUID-vkCmdDrawIndirect-commandBuffer-02707";
381 max_multiview_instance_index = "VUID-vkCmdDrawIndirect-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700382 img_filter_cubic = "VUID-vkCmdDrawIndirect-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700383 filter_cubic = "VUID-vkCmdDrawIndirect-filterCubic-02694";
384 filter_cubic_min_max = "VUID-vkCmdDrawIndirect-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000385 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawIndirect-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600386 patch_control_points = "VUID-vkCmdDrawIndirect-None-04875";
387 rasterizer_discard_enable = "VUID-vkCmdDrawIndirect-None-04876";
388 depth_bias_enable = "VUID-vkCmdDrawIndirect-None-04877";
389 logic_op = "VUID-vkCmdDrawIndirect-logicOp-04878";
390 primitive_restart_enable = "VUID-vkCmdDrawIndirect-None-04879";
391 vertex_input_binding_stride = "VUID-vkCmdDrawIndirect-pStrides-04884";
392 vertex_input = kVUID_Core_CmdDrawIndirect_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200393 blend_enable = "VUID-vkCmdDrawIndirect-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100394 color_write_enable = "VUID-vkCmdDrawIndirect-attachmentCount-06667";
Aaron Hagan92a44f82021-11-19 09:34:56 -0500395 dynamic_rendering_view_mask = "VUID-vkCmdDrawIndirect-viewMask-06178";
396 dynamic_rendering_color_count = "VUID-vkCmdDrawIndirect-colorAttachmentCount-06179";
397 dynamic_rendering_color_formats = "VUID-vkCmdDrawIndirect-colorAttachmentCount-06180";
398 dynamic_rendering_depth_format = "VUID-vkCmdDrawIndirect-pDepthAttachment-06181";
399 dynamic_rendering_stencil_format = "VUID-vkCmdDrawIndirect-pStencilAttachment-06182";
400 dynamic_rendering_fsr = "VUID-vkCmdDrawIndirect-imageView-06183";
401 dynamic_rendering_fdm = "VUID-vkCmdDrawIndirect-imageView-06184";
Aaron Hagan09a0e172021-11-19 21:18:33 -0500402 dynamic_rendering_color_sample = "VUID-vkCmdDrawIndirect-colorAttachmentCount-06185";
403 dynamic_rendering_depth_sample = "VUID-vkCmdDrawIndirect-pDepthAttachment-06186";
404 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawIndirect-pStencilAttachment-06187";
405 dynamic_rendering_multi_sample = "VUID-vkCmdDrawIndirect-colorAttachmentCount-06188";
Aaron Haganaca50442021-12-07 22:26:29 -0500406 dynamic_rendering_06189 = "VUID-vkCmdDrawIndirect-pDepthAttachment-06189";
407 dynamic_rendering_06190 = "VUID-vkCmdDrawIndirect-pStencilAttachment-06190";
408 dynamic_rendering_06198 = "VUID-vkCmdDrawIndirect-renderPass-06198";
Tony-LunarG13778ab2022-09-07 14:43:02 -0600409 dynamic_rendering_07285 = "VUID-vkCmdDrawIndirect-multisampledRenderToSingleSampled-07285";
410 dynamic_rendering_07286 = "VUID-vkCmdDrawIndirect-multisampledRenderToSingleSampled-07286";
411 dynamic_rendering_07287 = "VUID-vkCmdDrawIndirect-multisampledRenderToSingleSampled-07287";
Mike Schuchardt0e558a52022-08-18 15:14:51 -0700412 storage_image_read_without_format = "VUID-vkCmdDrawIndirect-OpTypeImage-07028";
413 storage_image_write_without_format = "VUID-vkCmdDrawIndirect-OpTypeImage-07027";
414 storage_texel_buffer_read_without_format = "VUID-vkCmdDrawIndirect-OpTypeImage-07030";
415 storage_texel_buffer_write_without_format = "VUID-vkCmdDrawIndirect-OpTypeImage-07029";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200416 depth_compare_sample = "VUID-vkCmdDrawIndirect-None-06479";
ziga-lunarg50188622022-03-26 01:18:32 +0100417 dynamic_sample_locations = "VUID-vkCmdDrawIndirect-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +0200418 primitives_generated = "VUID-vkCmdDrawIndirect-primitivesGeneratedQueryWithRasterizerDiscard-06708";
ziga-lunargf4068b12022-04-05 13:58:59 +0200419 primitives_generated_streams = "VUID-vkCmdDrawIndirect-primitivesGeneratedQueryWithNonZeroStreams-06709";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700420 }
421};
422
423struct DispatchVuidsCmdDrawIndexedIndirect : DrawDispatchVuid {
424 DispatchVuidsCmdDrawIndexedIndirect() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700425 pipeline_bound = "VUID-vkCmdDrawIndexedIndirect-None-02700";
426 dynamic_state = "VUID-vkCmdDrawIndexedIndirect-commandBuffer-02701";
427 vertex_binding = "VUID-vkCmdDrawIndexedIndirect-None-04007";
428 vertex_binding_null = "VUID-vkCmdDrawIndexedIndirect-None-04008";
429 compatible_pipeline = "VUID-vkCmdDrawIndexedIndirect-None-02697";
430 render_pass_compatible = "VUID-vkCmdDrawIndexedIndirect-renderPass-02684";
431 subpass_index = "VUID-vkCmdDrawIndexedIndirect-subpass-02685";
432 sample_location = "VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-02689";
433 linear_sampler = "VUID-vkCmdDrawIndexedIndirect-magFilter-04553";
434 cubic_sampler = "VUID-vkCmdDrawIndexedIndirect-None-02692";
435 indirect_protected_cb = "VUID-vkCmdDrawIndexedIndirect-commandBuffer-02711";
436 indirect_contiguous_memory = "VUID-vkCmdDrawIndexedIndirect-buffer-02708";
437 indirect_buffer_bit = "VUID-vkCmdDrawIndexedIndirect-buffer-02709";
438 viewport_count = "VUID-vkCmdDrawIndexedIndirect-viewportCount-03417";
439 scissor_count = "VUID-vkCmdDrawIndexedIndirect-scissorCount-03418";
440 viewport_scissor_count = "VUID-vkCmdDrawIndexedIndirect-viewportCount-03419";
441 primitive_topology = "VUID-vkCmdDrawIndexedIndirect-primitiveTopology-03420";
442 corner_sampled_address_mode = "VUID-vkCmdDrawIndexedIndirect-flags-02696";
443 subpass_input = "VUID-vkCmdDrawIndexedIndirect-None-02686";
444 imageview_atomic = "VUID-vkCmdDrawIndexedIndirect-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700445 push_constants_set = "VUID-vkCmdDrawIndexedIndirect-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100446 image_subresources_render_pass_write = "VUID-vkCmdDrawIndexedIndirect-None-06537";
447 image_subresources_subpass_read = "VUID-vkCmdDrawIndexedIndirect-None-06538";
448 image_subresources_subpass_write = "VUID-vkCmdDrawIndexedIndirect-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700449 descriptor_valid = "VUID-vkCmdDrawIndexedIndirect-None-02699";
450 sampler_imageview_type = "VUID-vkCmdDrawIndexedIndirect-None-02702";
451 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawIndexedIndirect-None-02703";
452 sampler_bias_offset = "VUID-vkCmdDrawIndexedIndirect-None-02704";
453 vertex_binding_attribute = "VUID-vkCmdDrawIndexedIndirect-None-02721";
454 dynamic_state_setting_commands = "VUID-vkCmdDrawIndexedIndirect-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700455 rasterization_samples = "VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-04740";
Tony-LunarG13778ab2022-09-07 14:43:02 -0600456 msrtss_rasterization_samples = "VUID-vkCmdDrawIndexedIndirect-multisampledRenderToSingleSampled-07284";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700457 unprotected_command_buffer = "VUID-vkCmdDrawIndexedIndirect-commandBuffer-02707";
458 max_multiview_instance_index = "VUID-vkCmdDrawIndexedIndirect-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700459 img_filter_cubic = "VUID-vkCmdDrawIndexedIndirect-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700460 filter_cubic = "VUID-vkCmdDrawIndexedIndirect-filterCubic-02694";
461 filter_cubic_min_max = "VUID-vkCmdDrawIndexedIndirect-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000462 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawIndexedIndirect-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600463 patch_control_points = "VUID-vkCmdDrawIndexedIndirect-None-04875";
464 rasterizer_discard_enable = "VUID-vkCmdDrawIndexedIndirect-None-04876";
465 depth_bias_enable = "VUID-vkCmdDrawIndexedIndirect-None-04877";
466 logic_op = "VUID-vkCmdDrawIndexedIndirect-logicOp-04878";
467 primitive_restart_enable = "VUID-vkCmdDrawIndexedIndirect-None-04879";
468 vertex_input_binding_stride = "VUID-vkCmdDrawIndexedIndirect-pStrides-04884";
469 vertex_input = kVUID_Core_CmdDrawIndexedIndirect_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200470 blend_enable = "VUID-vkCmdDrawIndexedIndirect-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100471 color_write_enable = "VUID-vkCmdDrawIndexedIndirect-attachmentCount-06667";
Aaron Hagan92a44f82021-11-19 09:34:56 -0500472 dynamic_rendering_view_mask = "VUID-vkCmdDrawIndexedIndirect-viewMask-06178";
473 dynamic_rendering_color_count = "VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06179";
474 dynamic_rendering_color_formats = "VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06180";
475 dynamic_rendering_depth_format = "VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-06181";
476 dynamic_rendering_stencil_format = "VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-06182";
477 dynamic_rendering_fsr = "VUID-vkCmdDrawIndexedIndirect-imageView-06183";
478 dynamic_rendering_fdm = "VUID-vkCmdDrawIndexedIndirect-imageView-06184";
Aaron Hagan09a0e172021-11-19 21:18:33 -0500479 dynamic_rendering_color_sample = "VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06185";
480 dynamic_rendering_depth_sample = "VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-06186";
481 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-06187";
482 dynamic_rendering_multi_sample = "VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06188";
Aaron Haganaca50442021-12-07 22:26:29 -0500483 dynamic_rendering_06189 = "VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-06189";
484 dynamic_rendering_06190 = "VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-06190";
485 dynamic_rendering_06198 = "VUID-vkCmdDrawIndexedIndirect-renderPass-06198";
Tony-LunarG13778ab2022-09-07 14:43:02 -0600486 dynamic_rendering_07285 = "VUID-vkCmdDrawIndexedIndirect-multisampledRenderToSingleSampled-07285";
487 dynamic_rendering_07286 = "VUID-vkCmdDrawIndexedIndirect-multisampledRenderToSingleSampled-07286";
488 dynamic_rendering_07287 = "VUID-vkCmdDrawIndexedIndirect-multisampledRenderToSingleSampled-07287";
Mike Schuchardt0e558a52022-08-18 15:14:51 -0700489 storage_image_read_without_format = "VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07028";
490 storage_image_write_without_format = "VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07027";
491 storage_texel_buffer_read_without_format = "VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07030";
492 storage_texel_buffer_write_without_format = "VUID-vkCmdDrawIndexedIndirect-OpTypeImage-07029";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200493 depth_compare_sample = "VUID-vkCmdDrawIndexedIndirect-None-06479";
ziga-lunarg50188622022-03-26 01:18:32 +0100494 dynamic_sample_locations = "VUID-vkCmdDrawIndexedIndirect-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +0200495 primitives_generated = "VUID-vkCmdDrawIndexedIndirect-primitivesGeneratedQueryWithRasterizerDiscard-06708";
ziga-lunargf4068b12022-04-05 13:58:59 +0200496 primitives_generated_streams = "VUID-vkCmdDrawIndexedIndirect-primitivesGeneratedQueryWithNonZeroStreams-06709";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700497 }
498};
499
500struct DispatchVuidsCmdDispatch : DrawDispatchVuid {
501 DispatchVuidsCmdDispatch() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700502 pipeline_bound = "VUID-vkCmdDispatch-None-02700";
Mark Lobodzinski02d37552020-12-28 13:29:46 -0700503 dynamic_state = "VUID-vkCmdDispatch-commandBuffer-02701";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700504 compatible_pipeline = "VUID-vkCmdDispatch-None-02697";
505 linear_sampler = "VUID-vkCmdDispatch-magFilter-04553";
506 cubic_sampler = "VUID-vkCmdDispatch-None-02692";
507 corner_sampled_address_mode = "VUID-vkCmdDispatch-flags-02696";
508 imageview_atomic = "VUID-vkCmdDispatch-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700509 push_constants_set = "VUID-vkCmdDispatch-maintenance4-06425";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700510 descriptor_valid = "VUID-vkCmdDispatch-None-02699";
511 sampler_imageview_type = "VUID-vkCmdDispatch-None-02702";
512 sampler_implicitLod_dref_proj = "VUID-vkCmdDispatch-None-02703";
513 sampler_bias_offset = "VUID-vkCmdDispatch-None-02704";
514 dynamic_state_setting_commands = "VUID-vkCmdDispatch-None-02859";
515 unprotected_command_buffer = "VUID-vkCmdDispatch-commandBuffer-02707";
516 protected_command_buffer = "VUID-vkCmdDispatch-commandBuffer-02712";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700517 img_filter_cubic = "VUID-vkCmdDispatch-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700518 filter_cubic = "VUID-vkCmdDispatch-filterCubic-02694";
519 filter_cubic_min_max = "VUID-vkCmdDispatch-filterCubicMinmax-02695";
Mike Schuchardt0e558a52022-08-18 15:14:51 -0700520 storage_image_read_without_format = "VUID-vkCmdDispatch-OpTypeImage-07028";
521 storage_image_write_without_format = "VUID-vkCmdDispatch-OpTypeImage-07027";
522 storage_texel_buffer_read_without_format = "VUID-vkCmdDispatch-OpTypeImage-07030";
523 storage_texel_buffer_write_without_format = "VUID-vkCmdDispatch-OpTypeImage-07029";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200524 depth_compare_sample = "VUID-vkCmdDispatch-None-06479";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700525 }
526};
527
528struct DispatchVuidsCmdDispatchIndirect : DrawDispatchVuid {
529 DispatchVuidsCmdDispatchIndirect() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700530 pipeline_bound = "VUID-vkCmdDispatchIndirect-None-02700";
Mark Lobodzinski02d37552020-12-28 13:29:46 -0700531 dynamic_state = "VUID-vkCmdDispatchIndirect-commandBuffer-02701";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700532 compatible_pipeline = "VUID-vkCmdDispatchIndirect-None-02697";
533 linear_sampler = "VUID-vkCmdDispatchIndirect-magFilter-04553";
534 cubic_sampler = "VUID-vkCmdDispatchIndirect-None-02692";
535 indirect_protected_cb = "VUID-vkCmdDispatchIndirect-commandBuffer-02711";
536 indirect_contiguous_memory = "VUID-vkCmdDispatchIndirect-buffer-02708";
537 indirect_buffer_bit = "VUID-vkCmdDispatchIndirect-buffer-02709";
538 corner_sampled_address_mode = "VUID-vkCmdDispatchIndirect-flags-02696";
539 imageview_atomic = "VUID-vkCmdDispatchIndirect-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700540 push_constants_set = "VUID-vkCmdDispatchIndirect-maintenance4-06425";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700541 descriptor_valid = "VUID-vkCmdDispatchIndirect-None-02699";
542 sampler_imageview_type = "VUID-vkCmdDispatchIndirect-None-02702";
543 sampler_implicitLod_dref_proj = "VUID-vkCmdDispatchIndirect-None-02703";
544 sampler_bias_offset = "VUID-vkCmdDispatchIndirect-None-02704";
545 dynamic_state_setting_commands = "VUID-vkCmdDispatchIndirect-None-02859";
546 unprotected_command_buffer = "VUID-vkCmdDispatchIndirect-commandBuffer-02707";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700547 img_filter_cubic = "VUID-vkCmdDispatchIndirect-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700548 filter_cubic = "VUID-vkCmdDispatchIndirect-filterCubic-02694";
549 filter_cubic_min_max = "VUID-vkCmdDispatchIndirect-filterCubicMinmax-02695";
Mike Schuchardt0e558a52022-08-18 15:14:51 -0700550 storage_image_read_without_format = "VUID-vkCmdDispatchIndirect-OpTypeImage-07028";
551 storage_image_write_without_format = "VUID-vkCmdDispatchIndirect-OpTypeImage-07027";
552 storage_texel_buffer_read_without_format = "VUID-vkCmdDispatchIndirect-OpTypeImage-07030";
553 storage_texel_buffer_write_without_format = "VUID-vkCmdDispatchIndirect-OpTypeImage-07029";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200554 depth_compare_sample = "VUID-vkCmdDispatchIndirect-None-06479";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700555 }
556};
557
558struct DispatchVuidsCmdDrawIndirectCount : DrawDispatchVuid {
559 DispatchVuidsCmdDrawIndirectCount() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700560 pipeline_bound = "VUID-vkCmdDrawIndirectCount-None-02700";
561 dynamic_state = "VUID-vkCmdDrawIndirectCount-commandBuffer-02701";
562 vertex_binding = "VUID-vkCmdDrawIndirectCount-None-04007";
563 vertex_binding_null = "VUID-vkCmdDrawIndirectCount-None-04008";
564 compatible_pipeline = "VUID-vkCmdDrawIndirectCount-None-02697";
565 render_pass_compatible = "VUID-vkCmdDrawIndirectCount-renderPass-02684";
566 subpass_index = "VUID-vkCmdDrawIndirectCount-subpass-02685";
567 sample_location = "VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-02689";
568 linear_sampler = "VUID-vkCmdDrawIndirectCount-magFilter-04553";
569 cubic_sampler = "VUID-vkCmdDrawIndirectCount-None-02692";
570 indirect_protected_cb = "VUID-vkCmdDrawIndirectCount-commandBuffer-02711";
571 indirect_contiguous_memory = "VUID-vkCmdDrawIndirectCount-buffer-02708";
sjfricke177bbb62022-06-02 17:37:03 +0900572 indirect_count_contiguous_memory = "VUID-vkCmdDrawIndirectCount-countBuffer-02714";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700573 indirect_buffer_bit = "VUID-vkCmdDrawIndirectCount-buffer-02709";
sjfricke177bbb62022-06-02 17:37:03 +0900574 indirect_count_buffer_bit = "VUID-vkCmdDrawIndirectCount-countBuffer-02715";
575 indirect_count_offset = "VUID-vkCmdDrawIndirectCount-countBufferOffset-04129";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700576 viewport_count = "VUID-vkCmdDrawIndirectCount-viewportCount-03417";
577 scissor_count = "VUID-vkCmdDrawIndirectCount-scissorCount-03418";
578 viewport_scissor_count = "VUID-vkCmdDrawIndirectCount-viewportCount-03419";
579 primitive_topology = "VUID-vkCmdDrawIndirectCount-primitiveTopology-03420";
580 corner_sampled_address_mode = "VUID-vkCmdDrawIndirectCount-flags-02696";
581 subpass_input = "VUID-vkCmdDrawIndirectCount-None-02686";
582 imageview_atomic = "VUID-vkCmdDrawIndirectCount-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700583 push_constants_set = "VUID-vkCmdDrawIndirectCount-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100584 image_subresources_render_pass_write = "VUID-vkCmdDrawIndirectCount-None-06537";
585 image_subresources_subpass_read = "VUID-vkCmdDrawIndirectCount-None-06538";
586 image_subresources_subpass_write = "VUID-vkCmdDrawIndirectCount-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700587 descriptor_valid = "VUID-vkCmdDrawIndirectCount-None-02699";
588 sampler_imageview_type = "VUID-vkCmdDrawIndirectCount-None-02702";
589 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawIndirectCount-None-02703";
590 sampler_bias_offset = "VUID-vkCmdDrawIndirectCount-None-02704";
591 vertex_binding_attribute = "VUID-vkCmdDrawIndirectCount-None-02721";
592 dynamic_state_setting_commands = "VUID-vkCmdDrawIndirectCount-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700593 rasterization_samples = "VUID-vkCmdDrawIndirectCount-rasterizationSamples-04740";
Tony-LunarG13778ab2022-09-07 14:43:02 -0600594 msrtss_rasterization_samples = "VUID-vkCmdDrawIndirectCount-multisampledRenderToSingleSampled-07284";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700595 unprotected_command_buffer = "VUID-vkCmdDrawIndirectCount-commandBuffer-02707";
596 max_multiview_instance_index = "VUID-vkCmdDrawIndirectCount-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700597 img_filter_cubic = "VUID-vkCmdDrawIndirectCount-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700598 filter_cubic = "VUID-vkCmdDrawIndirectCount-filterCubic-02694";
599 filter_cubic_min_max = "VUID-vkCmdDrawIndirectCount-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000600 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600601 patch_control_points = "VUID-vkCmdDrawIndirectCount-None-04875";
602 rasterizer_discard_enable = "VUID-vkCmdDrawIndirectCount-None-04876";
603 depth_bias_enable = "VUID-vkCmdDrawIndirectCount-None-04877";
604 logic_op = "VUID-vkCmdDrawIndirectCount-logicOp-04878";
605 primitive_restart_enable = "VUID-vkCmdDrawIndirectCount-None-04879";
606 vertex_input_binding_stride = "VUID-vkCmdDrawIndirectCount-pStrides-04884";
607 vertex_input = kVUID_Core_CmdDrawIndirectCount_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200608 blend_enable = "VUID-vkCmdDrawIndirectCount-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100609 color_write_enable = "VUID-vkCmdDrawIndirectCount-attachmentCount-06667";
stusmithedc4e392021-12-24 15:22:16 +0000610 dynamic_rendering_view_mask = "VUID-vkCmdDrawIndirectCount-viewMask-06178";
611 dynamic_rendering_color_count = "VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06179";
612 dynamic_rendering_color_formats = "VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06180";
613 dynamic_rendering_depth_format = "VUID-vkCmdDrawIndirectCount-pDepthAttachment-06181";
614 dynamic_rendering_stencil_format = "VUID-vkCmdDrawIndirectCount-pStencilAttachment-06182";
615 dynamic_rendering_fsr = "VUID-vkCmdDrawIndirectCount-imageView-06183";
616 dynamic_rendering_fdm = "VUID-vkCmdDrawIndirectCount-imageView-06184";
617 dynamic_rendering_color_sample = "VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06185";
618 dynamic_rendering_depth_sample = "VUID-vkCmdDrawIndirectCount-pDepthAttachment-06186";
619 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawIndirectCount-pStencilAttachment-06187";
620 dynamic_rendering_multi_sample = "VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06188";
621 dynamic_rendering_06189 = "VUID-vkCmdDrawIndirectCount-pDepthAttachment-06189";
622 dynamic_rendering_06190 = "VUID-vkCmdDrawIndirectCount-pStencilAttachment-06190";
623 dynamic_rendering_06198 = "VUID-vkCmdDrawIndirectCount-renderPass-06198";
Tony-LunarG13778ab2022-09-07 14:43:02 -0600624 dynamic_rendering_07285 = "VUID-vkCmdDrawIndirectCount-multisampledRenderToSingleSampled-07285";
625 dynamic_rendering_07286 = "VUID-vkCmdDrawIndirectCount-multisampledRenderToSingleSampled-07286";
626 dynamic_rendering_07287 = "VUID-vkCmdDrawIndirectCount-multisampledRenderToSingleSampled-07287";
Mike Schuchardt0e558a52022-08-18 15:14:51 -0700627 storage_image_read_without_format = "VUID-vkCmdDrawIndirectCount-OpTypeImage-07028";
628 storage_image_write_without_format = "VUID-vkCmdDrawIndirectCount-OpTypeImage-07027";
629 storage_texel_buffer_read_without_format = "VUID-vkCmdDrawIndirectCount-OpTypeImage-07030";
630 storage_texel_buffer_write_without_format = "VUID-vkCmdDrawIndirectCount-OpTypeImage-07029";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200631 depth_compare_sample = "VUID-vkCmdDrawIndirectCount-None-06479";
ziga-lunarg50188622022-03-26 01:18:32 +0100632 dynamic_sample_locations = "VUID-vkCmdDrawIndirectCount-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +0200633 primitives_generated = "VUID-vkCmdDrawIndirectCount-primitivesGeneratedQueryWithRasterizerDiscard-06708";
ziga-lunargf4068b12022-04-05 13:58:59 +0200634 primitives_generated_streams = "VUID-vkCmdDrawIndirectCount-primitivesGeneratedQueryWithNonZeroStreams-06709";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700635 }
636};
637
638struct DispatchVuidsCmdDrawIndexedIndirectCount : DrawDispatchVuid {
639 DispatchVuidsCmdDrawIndexedIndirectCount() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700640 pipeline_bound = "VUID-vkCmdDrawIndexedIndirectCount-None-02700";
641 dynamic_state = "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02701";
642 vertex_binding = "VUID-vkCmdDrawIndexedIndirectCount-None-04007";
643 vertex_binding_null = "VUID-vkCmdDrawIndexedIndirectCount-None-04008";
644 compatible_pipeline = "VUID-vkCmdDrawIndexedIndirectCount-None-02697";
645 render_pass_compatible = "VUID-vkCmdDrawIndexedIndirectCount-renderPass-02684";
646 subpass_index = "VUID-vkCmdDrawIndexedIndirectCount-subpass-02685";
647 sample_location = "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-02689";
648 linear_sampler = "VUID-vkCmdDrawIndexedIndirectCount-magFilter-04553";
649 cubic_sampler = "VUID-vkCmdDrawIndexedIndirectCount-None-02692";
650 indirect_protected_cb = "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02711";
651 indirect_contiguous_memory = "VUID-vkCmdDrawIndexedIndirectCount-buffer-02708";
sjfricke177bbb62022-06-02 17:37:03 +0900652 indirect_count_contiguous_memory = "VUID-vkCmdDrawIndexedIndirectCount-countBuffer-02714";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700653 indirect_buffer_bit = "VUID-vkCmdDrawIndexedIndirectCount-buffer-02709";
sjfricke177bbb62022-06-02 17:37:03 +0900654 indirect_count_buffer_bit = "VUID-vkCmdDrawIndexedIndirectCount-countBuffer-02715";
655 indirect_count_offset = "VUID-vkCmdDrawIndexedIndirectCount-countBufferOffset-04129";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700656 viewport_count = "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-03417";
657 scissor_count = "VUID-vkCmdDrawIndexedIndirectCount-scissorCount-03418";
658 viewport_scissor_count = "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-03419";
659 primitive_topology = "VUID-vkCmdDrawIndexedIndirectCount-primitiveTopology-03420";
660 corner_sampled_address_mode = "VUID-vkCmdDrawIndexedIndirectCount-flags-02696";
661 subpass_input = "VUID-vkCmdDrawIndexedIndirectCount-None-02686";
662 imageview_atomic = "VUID-vkCmdDrawIndexedIndirectCount-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700663 push_constants_set = "VUID-vkCmdDrawIndexedIndirectCount-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100664 image_subresources_render_pass_write = "VUID-vkCmdDrawIndexedIndirectCount-None-06537";
665 image_subresources_subpass_read = "VUID-vkCmdDrawIndexedIndirectCount-None-06538";
666 image_subresources_subpass_write = "VUID-vkCmdDrawIndexedIndirectCount-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700667 descriptor_valid = "VUID-vkCmdDrawIndexedIndirectCount-None-02699";
668 sampler_imageview_type = "VUID-vkCmdDrawIndexedIndirectCount-None-02702";
669 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawIndexedIndirectCount-None-02703";
670 sampler_bias_offset = "VUID-vkCmdDrawIndexedIndirectCount-None-02704";
671 vertex_binding_attribute = "VUID-vkCmdDrawIndexedIndirectCount-None-02721";
672 dynamic_state_setting_commands = "VUID-vkCmdDrawIndexedIndirectCount-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700673 rasterization_samples = "VUID-vkCmdDrawIndexedIndirectCount-rasterizationSamples-04740";
Tony-LunarG13778ab2022-09-07 14:43:02 -0600674 msrtss_rasterization_samples = "VUID-vkCmdDrawIndexedIndirectCount-multisampledRenderToSingleSampled-07284";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700675 unprotected_command_buffer = "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02707";
676 max_multiview_instance_index = "VUID-vkCmdDrawIndexedIndirectCount-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700677 img_filter_cubic = "VUID-vkCmdDrawIndexedIndirectCount-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700678 filter_cubic = "VUID-vkCmdDrawIndexedIndirectCount-filterCubic-02694";
679 filter_cubic_min_max = "VUID-vkCmdDrawIndexedIndirectCount-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000680 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawIndexedIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600681 patch_control_points = "VUID-vkCmdDrawIndexedIndirectCount-None-04875";
682 rasterizer_discard_enable = "VUID-vkCmdDrawIndexedIndirectCount-None-04876";
683 depth_bias_enable = "VUID-vkCmdDrawIndexedIndirectCount-None-04877";
684 logic_op = "VUID-vkCmdDrawIndexedIndirectCount-logicOp-04878";
685 primitive_restart_enable = "VUID-vkCmdDrawIndexedIndirectCount-None-04879";
686 vertex_input_binding_stride = "VUID-vkCmdDrawIndexedIndirectCount-pStrides-04884";
687 vertex_input = kVUID_Core_CmdDrawIndexedIndirectCount_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200688 blend_enable = "VUID-vkCmdDrawIndexedIndirectCount-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100689 color_write_enable = "VUID-vkCmdDrawIndexedIndirectCount-attachmentCount-06667";
Aaron Haganaca50442021-12-07 22:26:29 -0500690 dynamic_rendering_view_mask = "VUID-vkCmdDrawIndexedIndirectCount-viewMask-06178";
691 dynamic_rendering_color_count = "VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06179";
692 dynamic_rendering_color_formats = "VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06180";
693 dynamic_rendering_depth_format = "VUID-vkCmdDrawIndexedIndirectCount-pDepthAttachment-06181";
694 dynamic_rendering_stencil_format = "VUID-vkCmdDrawIndexedIndirectCount-pStencilAttachment-06182";
695 dynamic_rendering_fsr = "VUID-vkCmdDrawIndexedIndirectCount-imageView-06183";
696 dynamic_rendering_fdm = "VUID-vkCmdDrawIndexedIndirectCount-imageView-06184";
697 dynamic_rendering_color_sample = "VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06185";
698 dynamic_rendering_depth_sample = "VUID-vkCmdDrawIndexedIndirectCount-pDepthAttachment-06186";
699 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawIndexedIndirectCount-pStencilAttachment-06187";
700 dynamic_rendering_multi_sample = "VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06188";
701 dynamic_rendering_06189 = "VUID-vkCmdDrawIndexedIndirectCount-pDepthAttachment-06189";
702 dynamic_rendering_06190 = "VUID-vkCmdDrawIndexedIndirectCount-pStencilAttachment-06190";
703 dynamic_rendering_06198 = "VUID-vkCmdDrawIndexedIndirectCount-renderPass-06198";
Tony-LunarG13778ab2022-09-07 14:43:02 -0600704 dynamic_rendering_07285 = "VUID-vkCmdDrawIndexedIndirectCount-multisampledRenderToSingleSampled-07285";
705 dynamic_rendering_07286 = "VUID-vkCmdDrawIndexedIndirectCount-multisampledRenderToSingleSampled-07286";
706 dynamic_rendering_07287 = "VUID-vkCmdDrawIndexedIndirectCount-multisampledRenderToSingleSampled-07287";
Mike Schuchardt0e558a52022-08-18 15:14:51 -0700707 storage_image_read_without_format = "VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-07028";
708 storage_image_write_without_format = "VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-07027";
709 storage_texel_buffer_read_without_format = "VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-07030";
710 storage_texel_buffer_write_without_format = "VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-07029";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200711 depth_compare_sample = "VUID-vkCmdDrawIndexedIndirectCount-None-06479";
ziga-lunarg50188622022-03-26 01:18:32 +0100712 dynamic_sample_locations = "VUID-vkCmdDrawIndexedIndirectCount-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +0200713 primitives_generated = "VUID-vkCmdDrawIndexedIndirectCount-primitivesGeneratedQueryWithRasterizerDiscard-06708";
ziga-lunargf4068b12022-04-05 13:58:59 +0200714 primitives_generated_streams = "VUID-vkCmdDrawIndexedIndirectCount-primitivesGeneratedQueryWithNonZeroStreams-06709";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700715 }
716};
717
718struct DispatchVuidsCmdTraceRaysNV: DrawDispatchVuid {
719 DispatchVuidsCmdTraceRaysNV() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700720 pipeline_bound = "VUID-vkCmdTraceRaysNV-None-02700";
721 dynamic_state = "VUID-vkCmdTraceRaysNV-commandBuffer-02701";
722 compatible_pipeline = "VUID-vkCmdTraceRaysNV-None-02697";
723 linear_sampler = "VUID-vkCmdTraceRaysNV-magFilter-04553";
724 cubic_sampler = "VUID-vkCmdTraceRaysNV-None-02692";
725 corner_sampled_address_mode = "VUID-vkCmdTraceRaysNV-flags-02696";
726 imageview_atomic = "VUID-vkCmdTraceRaysNV-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700727 push_constants_set = "VUID-vkCmdTraceRaysNV-maintenance4-06425";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700728 descriptor_valid = "VUID-vkCmdTraceRaysNV-None-02699";
729 sampler_imageview_type = "VUID-vkCmdTraceRaysNV-None-02702";
730 sampler_implicitLod_dref_proj = "VUID-vkCmdTraceRaysNV-None-02703";
731 sampler_bias_offset = "VUID-vkCmdTraceRaysNV-None-02704";
732 dynamic_state_setting_commands = "VUID-vkCmdTraceRaysNV-None-02859";
733 unprotected_command_buffer = "VUID-vkCmdTraceRaysNV-commandBuffer-02707";
sfricke-samsunga3c47d12021-09-30 13:34:54 -0700734 ray_query_protected_cb = "VUID-vkCmdTraceRaysNV-commandBuffer-04624";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700735 img_filter_cubic = "VUID-vkCmdTraceRaysNV-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700736 filter_cubic = "VUID-vkCmdTraceRaysNV-filterCubic-02694";
737 filter_cubic_min_max = "VUID-vkCmdTraceRaysNV-filterCubicMinmax-02695";
Mike Schuchardt0e558a52022-08-18 15:14:51 -0700738 storage_image_read_without_format = "VUID-vkCmdTraceRaysNV-OpTypeImage-07028";
739 storage_image_write_without_format = "VUID-vkCmdTraceRaysNV-OpTypeImage-07027";
740 storage_texel_buffer_read_without_format = "VUID-vkCmdTraceRaysNV-OpTypeImage-07030";
741 storage_texel_buffer_write_without_format = "VUID-vkCmdTraceRaysNV-OpTypeImage-07029";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200742 depth_compare_sample = "VUID-vkCmdTraceRaysNV-None-06479";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700743 }
744};
745
746struct DispatchVuidsCmdTraceRaysKHR: DrawDispatchVuid {
747 DispatchVuidsCmdTraceRaysKHR() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700748 pipeline_bound = "VUID-vkCmdTraceRaysKHR-None-02700";
749 dynamic_state = "VUID-vkCmdTraceRaysKHR-commandBuffer-02701";
750 compatible_pipeline = "VUID-vkCmdTraceRaysKHR-None-02697";
751 linear_sampler = "VUID-vkCmdTraceRaysKHR-magFilter-04553";
752 cubic_sampler = "VUID-vkCmdTraceRaysKHR-None-02692";
753 corner_sampled_address_mode = "VUID-vkCmdTraceRaysKHR-flags-02696";
754 imageview_atomic = "VUID-vkCmdTraceRaysKHR-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700755 push_constants_set = "VUID-vkCmdTraceRaysKHR-maintenance4-06425";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700756 descriptor_valid = "VUID-vkCmdTraceRaysKHR-None-02699";
757 sampler_imageview_type = "VUID-vkCmdTraceRaysKHR-None-02702";
758 sampler_implicitLod_dref_proj = "VUID-vkCmdTraceRaysKHR-None-02703";
759 sampler_bias_offset = "VUID-vkCmdTraceRaysKHR-None-02704";
760 dynamic_state_setting_commands = "VUID-vkCmdTraceRaysKHR-None-02859";
761 unprotected_command_buffer = "VUID-vkCmdTraceRaysKHR-commandBuffer-02707";
Mike Schuchardt840f1252022-05-11 11:31:25 -0700762 ray_query_protected_cb = "VUID-vkCmdTraceRaysKHR-commandBuffer-03635";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700763 img_filter_cubic = "VUID-vkCmdTraceRaysKHR-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700764 filter_cubic = "VUID-vkCmdTraceRaysKHR-filterCubic-02694";
765 filter_cubic_min_max = "VUID-vkCmdTraceRaysKHR-filterCubicMinmax-02695";
Mike Schuchardt0e558a52022-08-18 15:14:51 -0700766 storage_image_read_without_format = "VUID-vkCmdTraceRaysKHR-OpTypeImage-07028";
767 storage_image_write_without_format = "VUID-vkCmdTraceRaysKHR-OpTypeImage-07027";
768 storage_texel_buffer_read_without_format = "VUID-vkCmdTraceRaysKHR-OpTypeImage-07030";
769 storage_texel_buffer_write_without_format = "VUID-vkCmdTraceRaysKHR-OpTypeImage-07029";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200770 depth_compare_sample = "VUID-vkCmdTraceRaysKHR-None-06479";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700771 }
772};
773
774struct DispatchVuidsCmdTraceRaysIndirectKHR: DrawDispatchVuid {
775 DispatchVuidsCmdTraceRaysIndirectKHR() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700776 pipeline_bound = "VUID-vkCmdTraceRaysIndirectKHR-None-02700";
777 dynamic_state = "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-02701";
778 compatible_pipeline = "VUID-vkCmdTraceRaysIndirectKHR-None-02697";
779 linear_sampler = "VUID-vkCmdTraceRaysIndirectKHR-magFilter-04553";
780 cubic_sampler = "VUID-vkCmdTraceRaysIndirectKHR-None-02692";
Shannon McPherson57255a62020-12-23 16:00:54 -0700781 indirect_contiguous_memory = "VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03632";
782 indirect_buffer_bit = "VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03633";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700783 corner_sampled_address_mode = "VUID-vkCmdTraceRaysIndirectKHR-flags-02696";
784 imageview_atomic = "VUID-vkCmdTraceRaysIndirectKHR-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700785 push_constants_set = "VUID-vkCmdTraceRaysIndirectKHR-maintenance4-06425";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700786 descriptor_valid = "VUID-vkCmdTraceRaysIndirectKHR-None-02699";
787 sampler_imageview_type = "VUID-vkCmdTraceRaysIndirectKHR-None-02702";
788 sampler_implicitLod_dref_proj = "VUID-vkCmdTraceRaysIndirectKHR-None-02703";
789 sampler_bias_offset = "VUID-vkCmdTraceRaysIndirectKHR-None-02704";
790 dynamic_state_setting_commands = "VUID-vkCmdTraceRaysIndirectKHR-None-02859";
791 unprotected_command_buffer = "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-02707";
sfricke-samsunga3c47d12021-09-30 13:34:54 -0700792 ray_query_protected_cb = "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-03635";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700793 img_filter_cubic = "VUID-vkCmdTraceRaysIndirectKHR-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700794 filter_cubic = "VUID-vkCmdTraceRaysIndirectKHR-filterCubic-02694";
795 filter_cubic_min_max = "VUID-vkCmdTraceRaysIndirectKHR-filterCubicMinmax-02695";
Mike Schuchardt0e558a52022-08-18 15:14:51 -0700796 storage_image_read_without_format = "VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-07028";
797 storage_image_write_without_format = "VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-07027";
798 storage_texel_buffer_read_without_format = "VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-07030";
799 storage_texel_buffer_write_without_format = "VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-07029";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200800 depth_compare_sample = "VUID-vkCmdTraceRaysIndirectKHR-None-06479";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700801 }
802};
803
sfricke-samsungf91881c2022-03-31 01:12:00 -0500804struct DispatchVuidsCmdTraceRaysIndirect2KHR: DrawDispatchVuid {
805 DispatchVuidsCmdTraceRaysIndirect2KHR() : DrawDispatchVuid() {
806 pipeline_bound = "VUID-vkCmdTraceRaysIndirect2KHR-None-02700";
807 dynamic_state = "VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-02701";
808 compatible_pipeline = "VUID-vkCmdTraceRaysIndirect2KHR-None-02697";
809 linear_sampler = "VUID-vkCmdTraceRaysIndirect2KHR-magFilter-04553";
810 cubic_sampler = "VUID-vkCmdTraceRaysIndirect2KHR-None-02692";
811 indirect_contiguous_memory = "VUID-vkCmdTraceRaysIndirect2KHR-indirectDeviceAddress-03632";
812 indirect_buffer_bit = "VUID-vkCmdTraceRaysIndirect2KHR-indirectDeviceAddress-03633";
813 corner_sampled_address_mode = "VUID-vkCmdTraceRaysIndirect2KHR-flags-02696";
814 imageview_atomic = "VUID-vkCmdTraceRaysIndirect2KHR-None-02691";
815 push_constants_set = "VUID-vkCmdTraceRaysIndirect2KHR-maintenance4-06425";
816 descriptor_valid = "VUID-vkCmdTraceRaysIndirect2KHR-None-02699";
817 sampler_imageview_type = "VUID-vkCmdTraceRaysIndirect2KHR-None-02702";
818 sampler_implicitLod_dref_proj = "VUID-vkCmdTraceRaysIndirect2KHR-None-02703";
819 sampler_bias_offset = "VUID-vkCmdTraceRaysIndirect2KHR-None-02704";
820 dynamic_state_setting_commands = "VUID-vkCmdTraceRaysIndirect2KHR-None-02859";
821 unprotected_command_buffer = "VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-02707";
822 ray_query_protected_cb = "VUID-vkCmdTraceRaysIndirect2KHR-commandBuffer-03635";
823 img_filter_cubic = "VUID-vkCmdTraceRaysIndirect2KHR-None-02693";
824 filter_cubic = "VUID-vkCmdTraceRaysIndirect2KHR-filterCubic-02694";
825 filter_cubic_min_max = "VUID-vkCmdTraceRaysIndirect2KHR-filterCubicMinmax-02695";
Mike Schuchardt0e558a52022-08-18 15:14:51 -0700826 storage_image_read_without_format = "VUID-vkCmdTraceRaysIndirect2KHR-OpTypeImage-07028";
827 storage_image_write_without_format = "VUID-vkCmdTraceRaysIndirect2KHR-OpTypeImage-07027";
828 storage_texel_buffer_read_without_format = "VUID-vkCmdTraceRaysIndirect2KHR-OpTypeImage-07030";
829 storage_texel_buffer_write_without_format = "VUID-vkCmdTraceRaysIndirect2KHR-OpTypeImage-07029";
sfricke-samsungf91881c2022-03-31 01:12:00 -0500830 depth_compare_sample = "VUID-vkCmdTraceRaysIndirect2KHR-None-06479";
831 }
832};
833
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700834struct DispatchVuidsCmdDrawMeshTasksNV: DrawDispatchVuid {
835 DispatchVuidsCmdDrawMeshTasksNV() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700836 pipeline_bound = "VUID-vkCmdDrawMeshTasksNV-None-02700";
837 dynamic_state = "VUID-vkCmdDrawMeshTasksNV-commandBuffer-02701";
838 compatible_pipeline = "VUID-vkCmdDrawMeshTasksNV-None-02697";
839 render_pass_compatible = "VUID-vkCmdDrawMeshTasksNV-renderPass-02684";
840 subpass_index = "VUID-vkCmdDrawMeshTasksNV-subpass-02685";
841 sample_location = "VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-02689";
842 linear_sampler = "VUID-vkCmdDrawMeshTasksNV-magFilter-04553";
843 cubic_sampler = "VUID-vkCmdDrawMeshTasksNV-None-02692";
844 viewport_count = "VUID-vkCmdDrawMeshTasksNV-viewportCount-03417";
845 scissor_count = "VUID-vkCmdDrawMeshTasksNV-scissorCount-03418";
846 viewport_scissor_count = "VUID-vkCmdDrawMeshTasksNV-viewportCount-03419";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700847 corner_sampled_address_mode = "VUID-vkCmdDrawMeshTasksNV-flags-02696";
848 subpass_input = "VUID-vkCmdDrawMeshTasksNV-None-02686";
849 imageview_atomic = "VUID-vkCmdDrawMeshTasksNV-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700850 push_constants_set = "VUID-vkCmdDrawMeshTasksNV-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100851 image_subresources_render_pass_write = "VUID-vkCmdDrawMeshTasksNV-None-06537";
852 image_subresources_subpass_read = "VUID-vkCmdDrawMeshTasksNV-None-06538";
853 image_subresources_subpass_write = "VUID-vkCmdDrawMeshTasksNV-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700854 descriptor_valid = "VUID-vkCmdDrawMeshTasksNV-None-02699";
855 sampler_imageview_type = "VUID-vkCmdDrawMeshTasksNV-None-02702";
856 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawMeshTasksNV-None-02703";
857 sampler_bias_offset = "VUID-vkCmdDrawMeshTasksNV-None-02704";
858 dynamic_state_setting_commands = "VUID-vkCmdDrawMeshTasksNV-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700859 rasterization_samples = "VUID-vkCmdDrawMeshTasksNV-rasterizationSamples-04740";
Tony-LunarG13778ab2022-09-07 14:43:02 -0600860 msrtss_rasterization_samples = "VUID-vkCmdDrawMeshTasksNV-multisampledRenderToSingleSampled-07284";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700861 unprotected_command_buffer = "VUID-vkCmdDrawMeshTasksNV-commandBuffer-02707";
862 max_multiview_instance_index = "VUID-vkCmdDrawMeshTasksNV-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700863 img_filter_cubic = "VUID-vkCmdDrawMeshTasksNV-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700864 filter_cubic = "VUID-vkCmdDrawMeshTasksNV-filterCubic-02694";
865 filter_cubic_min_max = "VUID-vkCmdDrawMeshTasksNV-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000866 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawMeshTasksNV-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600867 rasterizer_discard_enable = "VUID-vkCmdDrawMeshTasksNV-None-04876";
868 depth_bias_enable = "VUID-vkCmdDrawMeshTasksNV-None-04877";
869 logic_op = "VUID-vkCmdDrawMeshTasksNV-logicOp-04878";
Piers Daniell924cd832021-05-18 13:48:47 -0600870 vertex_input = kVUID_Core_CmdDrawMeshTasksNV_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200871 blend_enable = "VUID-vkCmdDrawMeshTasksNV-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100872 color_write_enable = "VUID-vkCmdDrawMeshTasksNV-attachmentCount-06667";
stusmithedc4e392021-12-24 15:22:16 +0000873 dynamic_rendering_view_mask = "VUID-vkCmdDrawMeshTasksNV-viewMask-06178";
874 dynamic_rendering_color_count = "VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06179";
875 dynamic_rendering_color_formats = "VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06180";
876 dynamic_rendering_depth_format = "VUID-vkCmdDrawMeshTasksNV-pDepthAttachment-06181";
877 dynamic_rendering_stencil_format = "VUID-vkCmdDrawMeshTasksNV-pStencilAttachment-06182";
878 dynamic_rendering_fsr = "VUID-vkCmdDrawMeshTasksNV-imageView-06183";
879 dynamic_rendering_fdm = "VUID-vkCmdDrawMeshTasksNV-imageView-06184";
880 dynamic_rendering_color_sample = "VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06185";
881 dynamic_rendering_depth_sample = "VUID-vkCmdDrawMeshTasksNV-pDepthAttachment-06186";
882 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawMeshTasksNV-pStencilAttachment-06187";
883 dynamic_rendering_multi_sample = "VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06188";
884 dynamic_rendering_06189 = "VUID-vkCmdDrawMeshTasksNV-pDepthAttachment-06189";
885 dynamic_rendering_06190 = "VUID-vkCmdDrawMeshTasksNV-pStencilAttachment-06190";
886 dynamic_rendering_06198 = "VUID-vkCmdDrawMeshTasksNV-renderPass-06198";
Tony-LunarG13778ab2022-09-07 14:43:02 -0600887 dynamic_rendering_07285 = "VUID-vkCmdDrawMeshTasksNV-multisampledRenderToSingleSampled-07285";
888 dynamic_rendering_07286 = "VUID-vkCmdDrawMeshTasksNV-multisampledRenderToSingleSampled-07286";
889 dynamic_rendering_07287 = "VUID-vkCmdDrawMeshTasksNV-multisampledRenderToSingleSampled-07287";
Mike Schuchardt0e558a52022-08-18 15:14:51 -0700890 storage_image_read_without_format = "VUID-vkCmdDrawMeshTasksNV-OpTypeImage-07028";
891 storage_image_write_without_format = "VUID-vkCmdDrawMeshTasksNV-OpTypeImage-07027";
892 storage_texel_buffer_read_without_format = "VUID-vkCmdDrawMeshTasksNV-OpTypeImage-07030";
893 storage_texel_buffer_write_without_format = "VUID-vkCmdDrawMeshTasksNV-OpTypeImage-07029";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200894 depth_compare_sample = "VUID-vkCmdDrawMeshTasksNV-None-06479";
ziga-lunarg50188622022-03-26 01:18:32 +0100895 dynamic_sample_locations = "VUID-vkCmdDrawMeshTasksNV-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +0200896 primitives_generated = "VUID-vkCmdDrawMeshTasksNV-primitivesGeneratedQueryWithRasterizerDiscard-06708";
ziga-lunargf4068b12022-04-05 13:58:59 +0200897 primitives_generated_streams = "VUID-vkCmdDrawMeshTasksNV-primitivesGeneratedQueryWithNonZeroStreams-06709";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700898 }
899};
900
901struct DispatchVuidsCmdDrawMeshTasksIndirectNV: DrawDispatchVuid {
902 DispatchVuidsCmdDrawMeshTasksIndirectNV() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700903 pipeline_bound = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02700";
904 dynamic_state = "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02701";
905 compatible_pipeline = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02697";
906 render_pass_compatible = "VUID-vkCmdDrawMeshTasksIndirectNV-renderPass-02684";
907 subpass_index = "VUID-vkCmdDrawMeshTasksIndirectNV-subpass-02685";
908 sample_location = "VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-02689";
909 linear_sampler = "VUID-vkCmdDrawMeshTasksIndirectNV-magFilter-04553";
910 cubic_sampler = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02692";
911 indirect_protected_cb = "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02711";
912 indirect_contiguous_memory = "VUID-vkCmdDrawMeshTasksIndirectNV-buffer-02708";
913 indirect_buffer_bit = "VUID-vkCmdDrawMeshTasksIndirectNV-buffer-02709";
914 viewport_count = "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-03417";
915 scissor_count = "VUID-vkCmdDrawMeshTasksIndirectNV-scissorCount-03418";
916 viewport_scissor_count = "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-03419";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700917 corner_sampled_address_mode = "VUID-vkCmdDrawMeshTasksIndirectNV-flags-02696";
918 subpass_input = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02686";
919 imageview_atomic = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700920 push_constants_set = "VUID-vkCmdDrawMeshTasksIndirectNV-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100921 image_subresources_render_pass_write = "VUID-vkCmdDrawMeshTasksIndirectNV-None-06537";
922 image_subresources_subpass_read = "VUID-vkCmdDrawMeshTasksIndirectNV-None-06538";
923 image_subresources_subpass_write = "VUID-vkCmdDrawMeshTasksIndirectNV-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700924 descriptor_valid = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02699";
925 sampler_imageview_type = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02702";
926 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02703";
927 sampler_bias_offset = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02704";
928 dynamic_state_setting_commands = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700929 rasterization_samples = "VUID-vkCmdDrawMeshTasksIndirectNV-rasterizationSamples-04740";
Tony-LunarG13778ab2022-09-07 14:43:02 -0600930 msrtss_rasterization_samples = "VUID-vkCmdDrawMeshTasksIndirectNV-multisampledRenderToSingleSampled-07284";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700931 unprotected_command_buffer = "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02707";
932 max_multiview_instance_index = "VUID-vkCmdDrawMeshTasksIndirectNV-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700933 img_filter_cubic = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700934 filter_cubic = "VUID-vkCmdDrawMeshTasksIndirectNV-filterCubic-02694";
935 filter_cubic_min_max = "VUID-vkCmdDrawMeshTasksIndirectNV-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000936 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawMeshTasksIndirectNV-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600937 rasterizer_discard_enable = "VUID-vkCmdDrawMeshTasksIndirectNV-None-04876";
938 depth_bias_enable = "VUID-vkCmdDrawMeshTasksIndirectNV-None-04877";
939 logic_op = "VUID-vkCmdDrawMeshTasksIndirectNV-logicOp-04878";
Piers Daniell924cd832021-05-18 13:48:47 -0600940 vertex_input = kVUID_Core_CmdDrawMeshTasksIndirectNV_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200941 blend_enable = "VUID-vkCmdDrawMeshTasksIndirectNV-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100942 color_write_enable = "VUID-vkCmdDrawMeshTasksIndirectNV-attachmentCount-06667";
stusmithedc4e392021-12-24 15:22:16 +0000943 dynamic_rendering_view_mask = "VUID-vkCmdDrawMeshTasksIndirectNV-viewMask-06178";
944 dynamic_rendering_color_count = "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06179";
945 dynamic_rendering_color_formats = "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06180";
946 dynamic_rendering_depth_format = "VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06181";
947 dynamic_rendering_stencil_format = "VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06182";
948 dynamic_rendering_fsr = "VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06183";
949 dynamic_rendering_fdm = "VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06184";
950 dynamic_rendering_color_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06185";
951 dynamic_rendering_depth_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06186";
952 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06187";
953 dynamic_rendering_multi_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06188";
954 dynamic_rendering_06189 = "VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06189";
955 dynamic_rendering_06190 = "VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06190";
956 dynamic_rendering_06198 = "VUID-vkCmdDrawMeshTasksIndirectNV-renderPass-06198";
Mike Schuchardt0e558a52022-08-18 15:14:51 -0700957 storage_image_read_without_format = "VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-07028";
958 storage_image_write_without_format = "VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-07027";
959 storage_texel_buffer_read_without_format = "VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-07030";
960 storage_texel_buffer_write_without_format = "VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-07029";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200961 depth_compare_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-None-06479";
Aaron Hagan80034ea2021-12-23 11:24:09 -0500962 dynamic_rendering_view_mask = "VUID-vkCmdDrawMeshTasksIndirectNV-viewMask-06178";
963 dynamic_rendering_color_count = "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06179";
964 dynamic_rendering_color_formats = "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06180";
965 dynamic_rendering_depth_format = "VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06181";
966 dynamic_rendering_stencil_format = "VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06182";
967 dynamic_rendering_fsr = "VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06183";
968 dynamic_rendering_fdm = "VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06184";
969 dynamic_rendering_color_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06185";
970 dynamic_rendering_depth_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06186";
971 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06187";
Jeremy Gebben09c1a072022-02-08 09:42:47 -0700972 dynamic_rendering_multi_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06188";
Aaron Hagan80034ea2021-12-23 11:24:09 -0500973 dynamic_rendering_06189 = "VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06189";
974 dynamic_rendering_06190 = "VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06190";
975 dynamic_rendering_06198 = "VUID-vkCmdDrawMeshTasksIndirectNV-renderPass-06198";
Tony-LunarG13778ab2022-09-07 14:43:02 -0600976 dynamic_rendering_07285 = "VUID-vkCmdDrawMeshTasksIndirectNV-multisampledRenderToSingleSampled-07285";
977 dynamic_rendering_07286 = "VUID-vkCmdDrawMeshTasksIndirectNV-multisampledRenderToSingleSampled-07286";
978 dynamic_rendering_07287 = "VUID-vkCmdDrawMeshTasksIndirectNV-multisampledRenderToSingleSampled-07287";
ziga-lunarg50188622022-03-26 01:18:32 +0100979 dynamic_sample_locations = "VUID-vkCmdDrawMeshTasksIndirectNV-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +0200980 primitives_generated = "VUID-vkCmdDrawMeshTasksIndirectNV-primitivesGeneratedQueryWithRasterizerDiscard-06708";
ziga-lunargf4068b12022-04-05 13:58:59 +0200981 primitives_generated_streams = "VUID-vkCmdDrawMeshTasksIndirectNV-primitivesGeneratedQueryWithNonZeroStreams-06709";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700982 }
983};
984
985struct DispatchVuidsCmdDrawMeshTasksIndirectCountNV : DrawDispatchVuid {
986 DispatchVuidsCmdDrawMeshTasksIndirectCountNV() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700987 pipeline_bound = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02700";
988 dynamic_state = "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02701";
989 compatible_pipeline = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02697";
990 render_pass_compatible = "VUID-vkCmdDrawMeshTasksIndirectCountNV-renderPass-02684";
991 subpass_index = "VUID-vkCmdDrawMeshTasksIndirectCountNV-subpass-02685";
992 sample_location = "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-02689";
993 linear_sampler = "VUID-vkCmdDrawMeshTasksIndirectCountNV-magFilter-04553";
994 cubic_sampler = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02692";
995 indirect_protected_cb = "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02711";
996 indirect_contiguous_memory = "VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-02708";
997 indirect_buffer_bit = "VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-02709";
Mike Schuchardtfe17d6c2022-06-13 14:54:01 -0700998 indirect_count_contiguous_memory = "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02714";
999 indirect_count_buffer_bit = "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02715";
1000 indirect_count_offset = "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBufferOffset-04129";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001001 viewport_count = "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-03417";
1002 scissor_count = "VUID-vkCmdDrawMeshTasksIndirectCountNV-scissorCount-03418";
1003 viewport_scissor_count = "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-03419";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001004 corner_sampled_address_mode = "VUID-vkCmdDrawMeshTasksIndirectCountNV-flags-02696";
1005 subpass_input = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02686";
1006 imageview_atomic = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -07001007 push_constants_set = "VUID-vkCmdDrawMeshTasksIndirectCountNV-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +01001008 image_subresources_render_pass_write = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06537";
1009 image_subresources_subpass_read = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06538";
1010 image_subresources_subpass_write = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001011 descriptor_valid = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02699";
1012 sampler_imageview_type = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02702";
1013 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02703";
1014 sampler_bias_offset = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02704";
1015 dynamic_state_setting_commands = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -07001016 rasterization_samples = "VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizationSamples-04740";
Tony-LunarG13778ab2022-09-07 14:43:02 -06001017 msrtss_rasterization_samples = "VUID-vkCmdDrawMeshTasksIndirectCountNV-multisampledRenderToSingleSampled-07284";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001018 unprotected_command_buffer = "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02707";
1019 max_multiview_instance_index = "VUID-vkCmdDrawMeshTasksIndirectCountNV-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -07001020 img_filter_cubic = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001021 filter_cubic = "VUID-vkCmdDrawMeshTasksIndirectCountNV-filterCubic-02694";
1022 filter_cubic_min_max = "VUID-vkCmdDrawMeshTasksIndirectCountNV-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +00001023 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawMeshTasksIndirectCountNV-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -06001024 rasterizer_discard_enable = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04876";
1025 depth_bias_enable = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04877";
1026 logic_op = "VUID-vkCmdDrawMeshTasksIndirectCountNV-logicOp-04878";
Piers Daniell924cd832021-05-18 13:48:47 -06001027 vertex_input = kVUID_Core_CmdDrawMeshTasksIndirectCountNV_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +02001028 blend_enable = "VUID-vkCmdDrawMeshTasksIndirectCountNV-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +01001029 color_write_enable = "VUID-vkCmdDrawMeshTasksIndirectCountNV-attachmentCount-06667";
stusmithedc4e392021-12-24 15:22:16 +00001030 dynamic_rendering_view_mask = "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewMask-06178";
1031 dynamic_rendering_color_count = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06179";
1032 dynamic_rendering_color_formats = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06180";
1033 dynamic_rendering_depth_format = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06181";
1034 dynamic_rendering_stencil_format = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06182";
1035 dynamic_rendering_fsr = "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06183";
1036 dynamic_rendering_fdm = "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06184";
1037 dynamic_rendering_color_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06185";
1038 dynamic_rendering_depth_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06186";
1039 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06187";
1040 dynamic_rendering_multi_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06188";
1041 dynamic_rendering_06189 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06189";
1042 dynamic_rendering_06190 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06190";
1043 dynamic_rendering_06198 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-renderPass-06198";
Mike Schuchardt0e558a52022-08-18 15:14:51 -07001044 storage_image_read_without_format = "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-07028";
1045 storage_image_write_without_format = "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-07027";
1046 storage_texel_buffer_read_without_format = "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-07030";
1047 storage_texel_buffer_write_without_format = "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-07029";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +02001048 depth_compare_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06479";
Aaron Hagan80034ea2021-12-23 11:24:09 -05001049 dynamic_rendering_view_mask = "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewMask-06178";
1050 dynamic_rendering_color_count = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06179";
1051 dynamic_rendering_color_formats = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06180";
1052 dynamic_rendering_depth_format = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06181";
1053 dynamic_rendering_stencil_format = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06182";
1054 dynamic_rendering_fsr = "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06183";
1055 dynamic_rendering_fdm = "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06184";
1056 dynamic_rendering_color_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06185";
1057 dynamic_rendering_depth_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06186";
1058 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06187";
Jeremy Gebben09c1a072022-02-08 09:42:47 -07001059 dynamic_rendering_multi_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06188";
Aaron Hagan80034ea2021-12-23 11:24:09 -05001060 dynamic_rendering_06189 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06189";
1061 dynamic_rendering_06190 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06190";
1062 dynamic_rendering_06198 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-renderPass-06198";
Tony-LunarG13778ab2022-09-07 14:43:02 -06001063 dynamic_rendering_07285 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-multisampledRenderToSingleSampled-07285";
1064 dynamic_rendering_07286 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-multisampledRenderToSingleSampled-07286";
1065 dynamic_rendering_07287 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-multisampledRenderToSingleSampled-07287";
ziga-lunarg50188622022-03-26 01:18:32 +01001066 dynamic_sample_locations = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +02001067 primitives_generated = "VUID-vkCmdDrawMeshTasksIndirectCountNV-primitivesGeneratedQueryWithRasterizerDiscard-06708";
ziga-lunargf4068b12022-04-05 13:58:59 +02001068 primitives_generated_streams = "VUID-vkCmdDrawMeshTasksIndirectCountNV-primitivesGeneratedQueryWithNonZeroStreams-06709";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001069 }
1070};
1071
1072struct DispatchVuidsCmdDrawIndirectByteCountEXT: DrawDispatchVuid {
1073 DispatchVuidsCmdDrawIndirectByteCountEXT() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001074 pipeline_bound = "VUID-vkCmdDrawIndirectByteCountEXT-None-02700";
1075 dynamic_state = "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02701";
1076 vertex_binding = "VUID-vkCmdDrawIndirectByteCountEXT-None-04007";
1077 vertex_binding_null = "VUID-vkCmdDrawIndirectByteCountEXT-None-04008";
1078 compatible_pipeline = "VUID-vkCmdDrawIndirectByteCountEXT-None-02697";
1079 render_pass_compatible = "VUID-vkCmdDrawIndirectByteCountEXT-renderPass-02684";
1080 subpass_index = "VUID-vkCmdDrawIndirectByteCountEXT-subpass-02685";
1081 sample_location = "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-02689";
1082 linear_sampler = "VUID-vkCmdDrawIndirectByteCountEXT-magFilter-04553";
1083 cubic_sampler = "VUID-vkCmdDrawIndirectByteCountEXT-None-02692";
1084 indirect_protected_cb = "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02646";
sfricke-samsungb091d4e2021-04-18 23:15:59 -07001085 indirect_contiguous_memory = "VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-04567",
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001086 indirect_buffer_bit = "VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-02290";
1087 viewport_count = "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-03417";
1088 scissor_count = "VUID-vkCmdDrawIndirectByteCountEXT-scissorCount-03418";
1089 viewport_scissor_count = "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-03419";
1090 primitive_topology = "VUID-vkCmdDrawIndirectByteCountEXT-primitiveTopology-03420";
1091 corner_sampled_address_mode = "VUID-vkCmdDrawIndirectByteCountEXT-flags-02696";
1092 subpass_input = "VUID-vkCmdDrawIndirectByteCountEXT-None-02686";
1093 imageview_atomic = "VUID-vkCmdDrawIndirectByteCountEXT-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -07001094 push_constants_set = "VUID-vkCmdDrawIndirectByteCountEXT-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +01001095 image_subresources_render_pass_write = "VUID-vkCmdDrawIndirectByteCountEXT-None-06537";
1096 image_subresources_subpass_read = "VUID-vkCmdDrawIndirectByteCountEXT-None-06538";
1097 image_subresources_subpass_write = "VUID-vkCmdDrawIndirectByteCountEXT-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001098 descriptor_valid = "VUID-vkCmdDrawIndirectByteCountEXT-None-02699";
1099 sampler_imageview_type = "VUID-vkCmdDrawIndirectByteCountEXT-None-02702";
1100 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawIndirectByteCountEXT-None-02703";
1101 sampler_bias_offset = "VUID-vkCmdDrawIndirectByteCountEXT-None-02704";
1102 vertex_binding_attribute = "VUID-vkCmdDrawIndirectByteCountEXT-None-02721";
1103 dynamic_state_setting_commands = "VUID-vkCmdDrawIndirectByteCountEXT-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -07001104 rasterization_samples = "VUID-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-04740";
Tony-LunarG13778ab2022-09-07 14:43:02 -06001105 msrtss_rasterization_samples = "VUID-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07284";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001106 unprotected_command_buffer = "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02707";
1107 max_multiview_instance_index = "VUID-vkCmdDrawIndirectByteCountEXT-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -07001108 img_filter_cubic = "VUID-vkCmdDrawIndirectByteCountEXT-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001109 filter_cubic = "VUID-vkCmdDrawIndirectByteCountEXT-filterCubic-02694";
1110 filter_cubic_min_max = "VUID-vkCmdDrawIndirectByteCountEXT-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +00001111 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawIndirectByteCountEXT-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -06001112 patch_control_points = "VUID-vkCmdDrawIndirectByteCountEXT-None-04875";
1113 rasterizer_discard_enable = "VUID-vkCmdDrawIndirectByteCountEXT-None-04876";
1114 depth_bias_enable = "VUID-vkCmdDrawIndirectByteCountEXT-None-04877";
1115 logic_op = "VUID-vkCmdDrawIndirectByteCountEXT-logicOp-04878";
1116 primitive_restart_enable = "VUID-vkCmdDrawIndirectByteCountEXT-None-04879";
1117 vertex_input_binding_stride = "VUID-vkCmdDrawIndirectByteCountEXT-pStrides-04884";
1118 vertex_input = kVUID_Core_CmdDrawIndirectByteCountEXT_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +02001119 blend_enable = "VUID-vkCmdDrawIndirectByteCountEXT-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +01001120 color_write_enable = "VUID-vkCmdDrawIndirectByteCountEXT-attachmentCount-06667";
stusmithedc4e392021-12-24 15:22:16 +00001121 dynamic_rendering_view_mask = "VUID-vkCmdDrawIndirectByteCountEXT-viewMask-06178";
1122 dynamic_rendering_color_count = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06179";
1123 dynamic_rendering_color_formats = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06180";
1124 dynamic_rendering_depth_format = "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06181";
1125 dynamic_rendering_stencil_format = "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06182";
1126 dynamic_rendering_fsr = "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06183";
1127 dynamic_rendering_fdm = "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06184";
1128 dynamic_rendering_color_sample = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06185";
1129 dynamic_rendering_depth_sample = "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06186";
1130 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06187";
1131 dynamic_rendering_multi_sample = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06188";
1132 dynamic_rendering_06189 = "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06189";
1133 dynamic_rendering_06190 = "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06190";
1134 dynamic_rendering_06198 = "VUID-vkCmdDrawIndirectByteCountEXT-renderPass-06198";
Mike Schuchardt0e558a52022-08-18 15:14:51 -07001135 storage_image_read_without_format = "VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-07028";
1136 storage_image_write_without_format = "VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-07027";
1137 storage_texel_buffer_read_without_format = "VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-07030";
1138 storage_texel_buffer_write_without_format = "VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-07029";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +02001139 depth_compare_sample = "VUID-vkCmdDrawIndirectByteCountEXT-None-06479";
Aaron Hagan80034ea2021-12-23 11:24:09 -05001140 dynamic_rendering_view_mask = "VUID-vkCmdDrawIndirectByteCountEXT-viewMask-06178";
1141 dynamic_rendering_color_count = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06179";
1142 dynamic_rendering_color_formats = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06180";
1143 dynamic_rendering_depth_format = "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06181";
1144 dynamic_rendering_stencil_format = "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06182";
1145 dynamic_rendering_fsr = "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06183";
1146 dynamic_rendering_fdm = "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06184";
1147 dynamic_rendering_color_sample = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06185";
1148 dynamic_rendering_depth_sample = "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06186";
1149 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06187";
Jeremy Gebben09c1a072022-02-08 09:42:47 -07001150 dynamic_rendering_multi_sample = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06188";
Aaron Hagan80034ea2021-12-23 11:24:09 -05001151 dynamic_rendering_06189 = "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06189";
1152 dynamic_rendering_06190 = "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06190";
1153 dynamic_rendering_06198 = "VUID-vkCmdDrawIndirectByteCountEXT-renderPass-06198";
Tony-LunarG13778ab2022-09-07 14:43:02 -06001154 dynamic_rendering_07285 = "VUID-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07285";
1155 dynamic_rendering_07286 = "VUID-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07286";
1156 dynamic_rendering_07287 = "VUID-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07287";
ziga-lunarg50188622022-03-26 01:18:32 +01001157 dynamic_sample_locations = "VUID-vkCmdDrawIndirectByteCountEXT-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +02001158 primitives_generated = "VUID-vkCmdDrawIndirectByteCountEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708";
ziga-lunargf4068b12022-04-05 13:58:59 +02001159 primitives_generated_streams = "VUID-vkCmdDrawIndirectByteCountEXT-primitivesGeneratedQueryWithNonZeroStreams-06709";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001160 }
1161};
1162
1163struct DispatchVuidsCmdDispatchBase: DrawDispatchVuid {
1164 DispatchVuidsCmdDispatchBase() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001165 pipeline_bound = "VUID-vkCmdDispatchBase-None-02700";
Mark Lobodzinski02d37552020-12-28 13:29:46 -07001166 dynamic_state = "VUID-vkCmdDispatchBase-commandBuffer-02701";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001167 compatible_pipeline = "VUID-vkCmdDispatchBase-None-02697";
1168 linear_sampler = "VUID-vkCmdDispatchBase-magFilter-04553";
1169 cubic_sampler = "VUID-vkCmdDispatchBase-None-02692";
1170 corner_sampled_address_mode = "VUID-vkCmdDispatchBase-flags-02696";
1171 imageview_atomic = "VUID-vkCmdDispatchBase-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -07001172 push_constants_set = "VUID-vkCmdDispatchBase-maintenance4-06425";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001173 descriptor_valid = "VUID-vkCmdDispatchBase-None-02699";
1174 sampler_imageview_type = "VUID-vkCmdDispatchBase-None-02702";
1175 sampler_implicitLod_dref_proj = "VUID-vkCmdDispatchBase-None-02703";
1176 sampler_bias_offset = "VUID-vkCmdDispatchBase-None-02704";
1177 dynamic_state_setting_commands = "VUID-vkCmdDispatchBase-None-02859";
1178 unprotected_command_buffer = "VUID-vkCmdDispatchBase-commandBuffer-02707";
sfricke-samsunge79d0892021-06-17 08:56:22 -07001179 protected_command_buffer = "VUID-vkCmdDispatchBase-commandBuffer-02712";
Mark Lobodzinskif786b412020-11-30 12:16:17 -07001180 img_filter_cubic = "VUID-vkCmdDispatchBase-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001181 filter_cubic = "VUID-vkCmdDispatchBase-filterCubic-02694";
1182 filter_cubic_min_max = "VUID-vkCmdDispatchBase-filterCubicMinmax-02695";
Mike Schuchardt0e558a52022-08-18 15:14:51 -07001183 storage_image_read_without_format = "VUID-vkCmdDispatchBase-OpTypeImage-07028";
1184 storage_image_write_without_format = "VUID-vkCmdDispatchBase-OpTypeImage-07027";
1185 storage_texel_buffer_read_without_format = "VUID-vkCmdDispatchBase-OpTypeImage-07030";
1186 storage_texel_buffer_write_without_format = "VUID-vkCmdDispatchBase-OpTypeImage-07029";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +02001187 depth_compare_sample = "VUID-vkCmdDispatchBase-None-06479";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001188 }
1189};
1190
1191// This LUT is created to allow a static listing of each VUID that is covered by drawdispatch commands
Nathaniel Cesarioce9b4812020-12-17 08:55:28 -07001192static const std::map<CMD_TYPE, DrawDispatchVuid> kDrawdispatchVuid = {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001193 {CMD_DRAW, DispatchVuidsCmdDraw()},
Tony-LunarG4490de42021-06-21 15:49:19 -06001194 {CMD_DRAWMULTIEXT, DispatchVuidsCmdDrawMultiEXT()},
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001195 {CMD_DRAWINDEXED, DispatchVuidsCmdDrawIndexed()},
Tony-LunarG4490de42021-06-21 15:49:19 -06001196 {CMD_DRAWMULTIINDEXEDEXT, DispatchVuidsCmdDrawMultiIndexedEXT()},
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001197 {CMD_DRAWINDIRECT, DispatchVuidsCmdDrawIndirect()},
1198 {CMD_DRAWINDEXEDINDIRECT, DispatchVuidsCmdDrawIndexedIndirect()},
1199 {CMD_DISPATCH, DispatchVuidsCmdDispatch()},
1200 {CMD_DISPATCHINDIRECT, DispatchVuidsCmdDispatchIndirect()},
1201 {CMD_DRAWINDIRECTCOUNT, DispatchVuidsCmdDrawIndirectCount()},
sfricke-samsung85584a72021-09-30 21:43:38 -07001202 {CMD_DRAWINDIRECTCOUNTKHR, DispatchVuidsCmdDrawIndirectCount()},
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001203 {CMD_DRAWINDEXEDINDIRECTCOUNT, DispatchVuidsCmdDrawIndexedIndirectCount()},
sfricke-samsung85584a72021-09-30 21:43:38 -07001204 {CMD_DRAWINDEXEDINDIRECTCOUNTKHR, DispatchVuidsCmdDrawIndexedIndirectCount()},
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001205 {CMD_TRACERAYSNV, DispatchVuidsCmdTraceRaysNV()},
1206 {CMD_TRACERAYSKHR, DispatchVuidsCmdTraceRaysKHR()},
1207 {CMD_TRACERAYSINDIRECTKHR, DispatchVuidsCmdTraceRaysIndirectKHR()},
sfricke-samsungf91881c2022-03-31 01:12:00 -05001208 {CMD_TRACERAYSINDIRECT2KHR, DispatchVuidsCmdTraceRaysIndirect2KHR()},
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001209 {CMD_DRAWMESHTASKSNV, DispatchVuidsCmdDrawMeshTasksNV()},
1210 {CMD_DRAWMESHTASKSINDIRECTNV, DispatchVuidsCmdDrawMeshTasksIndirectNV()},
1211 {CMD_DRAWMESHTASKSINDIRECTCOUNTNV, DispatchVuidsCmdDrawMeshTasksIndirectCountNV()},
1212 {CMD_DRAWINDIRECTBYTECOUNTEXT, DispatchVuidsCmdDrawIndirectByteCountEXT()},
1213 {CMD_DISPATCHBASE, DispatchVuidsCmdDispatchBase()},
sfricke-samsung85584a72021-09-30 21:43:38 -07001214 {CMD_DISPATCHBASEKHR, DispatchVuidsCmdDispatchBase()},
Spencer Fricke507600b2020-03-22 13:23:06 -07001215 // Used if invalid cmd_type is used
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001216 {CMD_NONE, DrawDispatchVuid()}
Spencer Fricke507600b2020-03-22 13:23:06 -07001217};
1218// clang-format on
1219
1220// Getter function to provide kVUIDUndefined in case an invalid cmd_type is passed in
1221const DrawDispatchVuid &CoreChecks::GetDrawDispatchVuid(CMD_TYPE cmd_type) const {
Nathaniel Cesarioce9b4812020-12-17 08:55:28 -07001222 if (kDrawdispatchVuid.find(cmd_type) != kDrawdispatchVuid.cend()) {
1223 return kDrawdispatchVuid.at(cmd_type);
Spencer Fricke507600b2020-03-22 13:23:06 -07001224 } else {
Nathaniel Cesarioce9b4812020-12-17 08:55:28 -07001225 return kDrawdispatchVuid.at(CMD_NONE);
Spencer Fricke507600b2020-03-22 13:23:06 -07001226 }
1227}
1228
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001229// Generic function to handle validation for all CmdDraw* type functions
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001230bool CoreChecks::ValidateCmdDrawType(const CMD_BUFFER_STATE &cb_state, bool indexed, VkPipelineBindPoint bind_point,
sfricke-samsung85584a72021-09-30 21:43:38 -07001231 CMD_TYPE cmd_type) const {
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001232 bool skip = false;
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001233 skip |= ValidateCmd(&cb_state, cmd_type);
1234 skip |= ValidateCmdBufDrawState(&cb_state, cmd_type, indexed, bind_point);
1235 skip |= ValidateCmdRayQueryState(&cb_state, cmd_type, bind_point);
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001236 return skip;
1237}
1238
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001239bool CoreChecks::ValidateCmdDrawInstance(const CMD_BUFFER_STATE &cb_node, uint32_t instanceCount, uint32_t firstInstance,
sfricke-samsung85584a72021-09-30 21:43:38 -07001240 CMD_TYPE cmd_type) const {
locke-lunarg3fa463a2020-10-23 16:39:04 -06001241 bool skip = false;
1242 const DrawDispatchVuid vuid = GetDrawDispatchVuid(cmd_type);
sfricke-samsung85584a72021-09-30 21:43:38 -07001243 const char *caller = CommandTypeString(cmd_type);
locke-lunarg3fa463a2020-10-23 16:39:04 -06001244
1245 // Verify maxMultiviewInstanceIndex
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001246 if (cb_node.activeRenderPass && cb_node.activeRenderPass->renderPass() && enabled_features.multiview_features.multiview &&
locke-lunarg3fa463a2020-10-23 16:39:04 -06001247 ((instanceCount + firstInstance) > phys_dev_ext_props.multiview_props.maxMultiviewInstanceIndex)) {
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001248 LogObjectList objlist(cb_node.Handle());
1249 objlist.add(cb_node.activeRenderPass->Handle());
locke-lunarg3fa463a2020-10-23 16:39:04 -06001250 skip |= LogError(objlist, vuid.max_multiview_instance_index,
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001251 "%s: renderpass %s multiview is enabled, and maxMultiviewInstanceIndex: %" PRIu32
1252 ", but instanceCount: %" PRIu32 "and firstInstance: %" PRIu32 ".",
1253 caller, report_data->FormatHandle(cb_node.activeRenderPass->Handle()).c_str(),
locke-lunarg3fa463a2020-10-23 16:39:04 -06001254 phys_dev_ext_props.multiview_props.maxMultiviewInstanceIndex, instanceCount, firstInstance);
1255 }
1256 return skip;
1257}
1258
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001259bool CoreChecks::PreCallValidateCmdDraw(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount,
Jeff Bolz5c801d12019-10-09 10:38:45 -05001260 uint32_t firstVertex, uint32_t firstInstance) const {
locke-lunarg3fa463a2020-10-23 16:39:04 -06001261 bool skip = false;
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001262 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001263 skip |= ValidateCmdDrawInstance(*cb_state, instanceCount, firstInstance, CMD_DRAW);
1264 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAW);
locke-lunarg3fa463a2020-10-23 16:39:04 -06001265 return skip;
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001266}
1267
Tony-LunarG4490de42021-06-21 15:49:19 -06001268bool CoreChecks::PreCallValidateCmdDrawMultiEXT(VkCommandBuffer commandBuffer, uint32_t drawCount,
1269 const VkMultiDrawInfoEXT *pVertexInfo, uint32_t instanceCount,
1270 uint32_t firstInstance, uint32_t stride) const {
1271 bool skip = false;
1272 if (!enabled_features.multi_draw_features.multiDraw) {
1273 skip |= LogError(commandBuffer, "VUID-vkCmdDrawMultiEXT-None-04933",
1274 "vkCmdDrawMultiEXT(): The multiDraw feature must be enabled to "
1275 "call this command.");
1276 }
1277 if (drawCount > phys_dev_ext_props.multi_draw_props.maxMultiDrawCount) {
1278 skip |= LogError(commandBuffer, "VUID-vkCmdDrawMultiEXT-drawCount-04934",
1279 "vkCmdDrawMultiEXT(): parameter, uint32_t drawCount (%" PRIu32
1280 ") must be less than VkPhysicalDeviceMultiDrawPropertiesEXT::maxMultiDrawCount (%" PRIu32 ").",
1281 drawCount, phys_dev_ext_props.multi_draw_props.maxMultiDrawCount);
1282 }
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001283 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001284 skip |= ValidateCmdDrawInstance(*cb_state, instanceCount, firstInstance, CMD_DRAWMULTIEXT);
1285 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWMULTIEXT);
Tony-LunarG4490de42021-06-21 15:49:19 -06001286 return skip;
1287}
1288
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001289bool CoreChecks::ValidateCmdDrawIndexedBufferSize(const CMD_BUFFER_STATE &cb_state, uint32_t indexCount, uint32_t firstIndex,
1290 const char *caller, const char *first_index_vuid) const {
Tony-LunarG4490de42021-06-21 15:49:19 -06001291 bool skip = false;
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001292 if (cb_state.status & CBSTATUS_INDEX_BUFFER_BOUND) {
Tony-LunarG4490de42021-06-21 15:49:19 -06001293 unsigned int index_size = 0;
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001294 const auto &index_buffer_binding = cb_state.index_buffer_binding;
Tony-LunarG4490de42021-06-21 15:49:19 -06001295 if (index_buffer_binding.index_type == VK_INDEX_TYPE_UINT16) {
1296 index_size = 2;
1297 }
1298 else if (index_buffer_binding.index_type == VK_INDEX_TYPE_UINT32) {
1299 index_size = 4;
1300 }
1301 else if (index_buffer_binding.index_type == VK_INDEX_TYPE_UINT8_EXT) {
1302 index_size = 1;
1303 }
1304 VkDeviceSize end_offset = (index_size * (static_cast<VkDeviceSize>(firstIndex) + indexCount)) + index_buffer_binding.offset;
1305 if (end_offset > index_buffer_binding.size) {
1306 skip |= LogError(index_buffer_binding.buffer_state->buffer(), first_index_vuid,
1307 "%s: index size (%u) * (firstIndex (%u) + indexCount (%u)) "
1308 "+ binding offset (%" PRIuLEAST64 ") = an ending offset of %" PRIuLEAST64
1309 " bytes, which is greater than the index buffer size (%" PRIuLEAST64 ").",
1310 caller, index_size, firstIndex, indexCount, index_buffer_binding.offset, end_offset,
1311 index_buffer_binding.size);
1312 }
1313 }
1314 return skip;
1315}
1316
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001317bool CoreChecks::PreCallValidateCmdDrawIndexed(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount,
Jeff Bolz5c801d12019-10-09 10:38:45 -05001318 uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance) const {
locke-lunarg3fa463a2020-10-23 16:39:04 -06001319 bool skip = false;
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001320 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001321 skip |= ValidateCmdDrawInstance(*cb_state, instanceCount, firstInstance, CMD_DRAWINDEXED);
1322 skip |= ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWINDEXED);
1323 skip |= ValidateCmdDrawIndexedBufferSize(*cb_state, indexCount, firstIndex, "vkCmdDrawIndexed()",
Tony-LunarG4490de42021-06-21 15:49:19 -06001324 "VUID-vkCmdDrawIndexed-firstIndex-04932");
1325 return skip;
1326}
1327
1328bool CoreChecks::PreCallValidateCmdDrawMultiIndexedEXT(VkCommandBuffer commandBuffer, uint32_t drawCount,
1329 const VkMultiDrawIndexedInfoEXT *pIndexInfo, uint32_t instanceCount,
1330 uint32_t firstInstance, uint32_t stride,
1331 const int32_t *pVertexOffset) const {
1332 bool skip = false;
1333 if (!enabled_features.multi_draw_features.multiDraw) {
1334 skip |= LogError(commandBuffer, "VUID-vkCmdDrawMultiIndexedEXT-None-04937",
1335 "vkCmdDrawMultiIndexedEXT(): The multiDraw feature must be enabled to "
1336 "call this command.");
1337 }
1338 if (drawCount > phys_dev_ext_props.multi_draw_props.maxMultiDrawCount) {
1339 skip |= LogError(commandBuffer, "VUID-vkCmdDrawMultiIndexedEXT-drawCount-04939",
1340 "vkCmdDrawMultiIndexedEXT(): parameter, uint32_t drawCount (0x%" PRIu32
1341 ") must be less than VkPhysicalDeviceMultiDrawPropertiesEXT::maxMultiDrawCount (0x%" PRIu32 ").",
1342 drawCount, phys_dev_ext_props.multi_draw_props.maxMultiDrawCount);
1343 }
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001344 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001345 skip |= ValidateCmdDrawInstance(*cb_state, instanceCount, firstInstance, CMD_DRAWMULTIINDEXEDEXT);
1346 skip |= ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWMULTIINDEXEDEXT);
Ricardo Garcia27a26f52021-07-13 15:52:14 +02001347 const auto info_bytes = reinterpret_cast<const char *>(pIndexInfo);
Tony-LunarG4490de42021-06-21 15:49:19 -06001348 for (uint32_t i = 0; i < drawCount; i++) {
Ricardo Garcia27a26f52021-07-13 15:52:14 +02001349 const auto info_ptr = reinterpret_cast<const VkMultiDrawIndexedInfoEXT *>(info_bytes + i * stride);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001350 skip |= ValidateCmdDrawIndexedBufferSize(*cb_state, info_ptr->indexCount, info_ptr->firstIndex,
Tony-LunarG4490de42021-06-21 15:49:19 -06001351 "vkCmdDrawMultiIndexedEXT()", "VUID-vkCmdDrawMultiIndexedEXT-firstIndex-04938");
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001352 }
1353 return skip;
1354}
1355
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001356bool CoreChecks::PreCallValidateCmdDrawIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1357 uint32_t drawCount, uint32_t stride) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001358 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001359 bool skip = ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWINDIRECT);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001360 auto buffer_state = Get<BUFFER_STATE>(buffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001361 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, CMD_DRAWINDIRECT);
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001362 if (drawCount > 1) {
Lockee68ac652019-05-06 10:17:33 -06001363 skip |= ValidateCmdDrawStrideWithStruct(commandBuffer, "VUID-vkCmdDrawIndirect-drawCount-00476", stride,
1364 "VkDrawIndirectCommand", sizeof(VkDrawIndirectCommand));
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001365 skip |= ValidateCmdDrawStrideWithBuffer(commandBuffer, "VUID-vkCmdDrawIndirect-drawCount-00488", stride,
1366 "VkDrawIndirectCommand", sizeof(VkDrawIndirectCommand), drawCount, offset,
Jeremy Gebben9f537102021-10-05 16:37:12 -06001367 buffer_state.get());
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001368 } else if ((drawCount == 1) && (offset + sizeof(VkDrawIndirectCommand)) > buffer_state->createInfo.size) {
1369 skip |= LogError(commandBuffer, "VUID-vkCmdDrawIndirect-drawCount-00487",
Jeremy Gebbenda6b48f2021-05-13 10:46:18 -06001370 "CmdDrawIndirect: drawCount equals 1 and (offset + sizeof(VkDrawIndirectCommand)) (%" PRIu64 ") is not less than "
1371 "or equal to the size of buffer (%" PRIu64 ").",
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001372 (offset + sizeof(VkDrawIndirectCommand)), buffer_state->createInfo.size);
Lockee68ac652019-05-06 10:17:33 -06001373 }
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001374 // TODO: If the drawIndirectFirstInstance feature is not enabled, all the firstInstance members of the
1375 // VkDrawIndirectCommand structures accessed by this command must be 0, which will require access to the contents of 'buffer'.
1376 return skip;
1377}
1378
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001379bool CoreChecks::PreCallValidateCmdDrawIndexedIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001380 uint32_t drawCount, uint32_t stride) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001381 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001382 bool skip = ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWINDEXEDINDIRECT);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001383 auto buffer_state = Get<BUFFER_STATE>(buffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001384 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, CMD_DRAWINDEXEDINDIRECT);
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001385 if (drawCount > 1) {
Lockee68ac652019-05-06 10:17:33 -06001386 skip |= ValidateCmdDrawStrideWithStruct(commandBuffer, "VUID-vkCmdDrawIndexedIndirect-drawCount-00528", stride,
1387 "VkDrawIndexedIndirectCommand", sizeof(VkDrawIndexedIndirectCommand));
1388 skip |= ValidateCmdDrawStrideWithBuffer(commandBuffer, "VUID-vkCmdDrawIndexedIndirect-drawCount-00540", stride,
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001389 "VkDrawIndexedIndirectCommand", sizeof(VkDrawIndexedIndirectCommand), drawCount,
Jeremy Gebben9f537102021-10-05 16:37:12 -06001390 offset, buffer_state.get());
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001391 } else if ((drawCount == 1) && (offset + sizeof(VkDrawIndexedIndirectCommand)) > buffer_state->createInfo.size) {
1392 skip |= LogError(
1393 commandBuffer, "VUID-vkCmdDrawIndexedIndirect-drawCount-00539",
Jeremy Gebbenda6b48f2021-05-13 10:46:18 -06001394 "CmdDrawIndexedIndirect: drawCount equals 1 and (offset + sizeof(VkDrawIndexedIndirectCommand)) (%" PRIu64 ") is not less than "
1395 "or equal to the size of buffer (%" PRIu64 ").",
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001396 (offset + sizeof(VkDrawIndexedIndirectCommand)), buffer_state->createInfo.size);
Lockee68ac652019-05-06 10:17:33 -06001397 }
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001398 // TODO: If the drawIndirectFirstInstance feature is not enabled, all the firstInstance members of the
1399 // VkDrawIndexedIndirectCommand structures accessed by this command must be 0, which will require access to the contents of
1400 // 'buffer'.
1401 return skip;
1402}
1403
Jeff Bolz5c801d12019-10-09 10:38:45 -05001404bool CoreChecks::PreCallValidateCmdDispatch(VkCommandBuffer commandBuffer, uint32_t x, uint32_t y, uint32_t z) const {
Lockef39c0772019-04-03 14:40:02 -06001405 bool skip = false;
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001406 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001407 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_COMPUTE, CMD_DISPATCH);
Lockef39c0772019-04-03 14:40:02 -06001408 return skip;
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001409}
1410
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001411bool CoreChecks::ValidateBaseGroups(const CMD_BUFFER_STATE &cb_state, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ,
Tony-LunarGf825e6d2020-12-16 13:05:17 -07001412 const char *apiName) const {
1413 bool skip = false;
1414 if (baseGroupX || baseGroupY || baseGroupZ) {
Tony-LunarGf825e6d2020-12-16 13:05:17 -07001415 const auto lv_bind_point = ConvertToLvlBindPoint(VK_PIPELINE_BIND_POINT_COMPUTE);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001416 const auto *pipeline_state = cb_state.lastBound[lv_bind_point].pipeline_state;
Jeremy Gebben11af9792021-08-20 10:20:09 -06001417 if (pipeline_state && !(pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_DISPATCH_BASE)) {
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001418 skip |= LogError(cb_state.Handle(), "VUID-vkCmdDispatchBase-baseGroupX-00427",
Tony-LunarGf825e6d2020-12-16 13:05:17 -07001419 "%s(): If any of baseGroupX, baseGroupY, or baseGroupZ are not zero, then the bound compute pipeline "
1420 "must have been created with the VK_PIPELINE_CREATE_DISPATCH_BASE flag",
1421 apiName);
1422 }
1423 }
1424 return skip;
1425}
1426
locke-lunarg25b6c352020-08-06 17:44:18 -06001427bool CoreChecks::PreCallValidateCmdDispatchBase(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY,
1428 uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY,
1429 uint32_t groupCountZ) const {
1430 bool skip = false;
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001431 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001432 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_COMPUTE, CMD_DISPATCHBASE);
1433 skip |= ValidateBaseGroups(*cb_state, baseGroupX, baseGroupY, baseGroupZ, "vkCmdDispatchBase()");
locke-lunarg25b6c352020-08-06 17:44:18 -06001434 return skip;
1435}
1436
1437bool CoreChecks::PreCallValidateCmdDispatchBaseKHR(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY,
1438 uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY,
1439 uint32_t groupCountZ) const {
1440 bool skip = false;
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001441 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001442 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_COMPUTE, CMD_DISPATCHBASEKHR);
1443 skip |= ValidateBaseGroups(*cb_state, baseGroupX, baseGroupY, baseGroupZ, "vkCmdDispatchBaseKHR()");
locke-lunarg25b6c352020-08-06 17:44:18 -06001444 return skip;
1445}
1446
Jeff Bolz5c801d12019-10-09 10:38:45 -05001447bool CoreChecks::PreCallValidateCmdDispatchIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001448 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001449 bool skip = ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_COMPUTE, CMD_DISPATCHINDIRECT);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001450 auto buffer_state = Get<BUFFER_STATE>(buffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001451 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, CMD_DISPATCHINDIRECT);
Tony-LunarGda555b52021-01-06 13:43:49 -07001452 if ((offset + sizeof(VkDispatchIndirectCommand)) > buffer_state->createInfo.size) {
1453 skip |= LogError(commandBuffer, "VUID-vkCmdDispatchIndirect-offset-00407",
1454 "vkCmdDispatchIndirect(): The sum of offset and the size of VkDispatchIndirectCommand is greater than the "
1455 "size of the buffer");
1456 }
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001457 return skip;
1458}
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001459bool CoreChecks::ValidateCmdDrawIndirectCount(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1460 VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount,
sfricke-samsung85584a72021-09-30 21:43:38 -07001461 uint32_t stride, CMD_TYPE cmd_type) const {
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001462 bool skip = false;
sfricke-samsung85584a72021-09-30 21:43:38 -07001463 const char *apiName = CommandTypeString(cmd_type);
Nathaniel Cesario7f231f12021-03-25 12:10:58 -06001464 if ((device_extensions.vk_khr_draw_indirect_count != kEnabledByCreateinfo) &&
1465 ((api_version >= VK_API_VERSION_1_2) && (enabled_features.core12.drawIndirectCount == VK_FALSE))) {
Shannon McPherson2c793ba2020-08-28 12:13:24 -06001466 skip |= LogError(commandBuffer, "VUID-vkCmdDrawIndirectCount-None-04445",
sfricke-samsung27c70722020-05-02 08:42:39 -07001467 "%s(): Starting in Vulkan 1.2 the VkPhysicalDeviceVulkan12Features::drawIndirectCount must be enabled to "
1468 "call this command.",
1469 apiName);
1470 }
AndreyVK_D3Db2753e12021-07-21 12:24:03 +03001471 skip |= ValidateCmdDrawStrideWithStruct(commandBuffer, "VUID-vkCmdDrawIndirectCount-stride-03110", stride,
1472 "VkDrawIndirectCommand", sizeof(VkDrawIndirectCommand));
Lockee68ac652019-05-06 10:17:33 -06001473 if (maxDrawCount > 1) {
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001474 auto buffer_state = Get<BUFFER_STATE>(buffer);
AndreyVK_D3Db2753e12021-07-21 12:24:03 +03001475 skip |= ValidateCmdDrawStrideWithBuffer(commandBuffer, "VUID-vkCmdDrawIndirectCount-maxDrawCount-03111", stride,
1476 "VkDrawIndirectCommand", sizeof(VkDrawIndirectCommand), maxDrawCount, offset,
Jeremy Gebben9f537102021-10-05 16:37:12 -06001477 buffer_state.get());
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001478 }
1479
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001480 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001481 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, cmd_type);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001482 auto buffer_state = Get<BUFFER_STATE>(buffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001483 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, cmd_type);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001484 auto count_buffer_state = Get<BUFFER_STATE>(countBuffer);
sjfricke177bbb62022-06-02 17:37:03 +09001485 skip |= ValidateIndirectCountCmd(*count_buffer_state, countBufferOffset, cmd_type);
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001486 return skip;
1487}
1488
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001489bool CoreChecks::PreCallValidateCmdDrawIndirectCountKHR(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1490 VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount,
1491 uint32_t stride) const {
Tony-LunarG83544c72020-01-17 12:30:19 -07001492 return ValidateCmdDrawIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride,
sfricke-samsung85584a72021-09-30 21:43:38 -07001493 CMD_DRAWINDIRECTCOUNTKHR);
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001494}
1495
1496bool CoreChecks::PreCallValidateCmdDrawIndirectCount(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1497 VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount,
1498 uint32_t stride) const {
Tony-LunarG83544c72020-01-17 12:30:19 -07001499 return ValidateCmdDrawIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride,
sfricke-samsung85584a72021-09-30 21:43:38 -07001500 CMD_DRAWINDIRECTCOUNT);
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001501}
1502
1503bool CoreChecks::ValidateCmdDrawIndexedIndirectCount(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1504 VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount,
sfricke-samsung85584a72021-09-30 21:43:38 -07001505 uint32_t stride, CMD_TYPE cmd_type) const {
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001506 bool skip = false;
sfricke-samsung85584a72021-09-30 21:43:38 -07001507 const char *apiName = CommandTypeString(cmd_type);
Nathaniel Cesario7f231f12021-03-25 12:10:58 -06001508 if ((device_extensions.vk_khr_draw_indirect_count != kEnabledByCreateinfo) &&
1509 ((api_version >= VK_API_VERSION_1_2) && (enabled_features.core12.drawIndirectCount == VK_FALSE))) {
Shannon McPherson2c793ba2020-08-28 12:13:24 -06001510 skip |= LogError(commandBuffer, "VUID-vkCmdDrawIndexedIndirectCount-None-04445",
sfricke-samsung27c70722020-05-02 08:42:39 -07001511 "%s(): Starting in Vulkan 1.2 the VkPhysicalDeviceVulkan12Features::drawIndirectCount must be enabled to "
1512 "call this command.",
1513 apiName);
1514 }
AndreyVK_D3Db2753e12021-07-21 12:24:03 +03001515 skip |= ValidateCmdDrawStrideWithStruct(commandBuffer, "VUID-vkCmdDrawIndexedIndirectCount-stride-03142", stride,
1516 "VkDrawIndexedIndirectCommand", sizeof(VkDrawIndexedIndirectCommand));
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001517 auto buffer_state = Get<BUFFER_STATE>(buffer);
Lockee68ac652019-05-06 10:17:33 -06001518 if (maxDrawCount > 1) {
Mike Schuchardt65847d92019-12-20 13:50:47 -08001519 skip |= ValidateCmdDrawStrideWithBuffer(commandBuffer, "VUID-vkCmdDrawIndexedIndirectCount-maxDrawCount-03143", stride,
AndreyVK_D3Db2753e12021-07-21 12:24:03 +03001520 "VkDrawIndexedIndirectCommand", sizeof(VkDrawIndexedIndirectCommand), maxDrawCount,
Jeremy Gebben9f537102021-10-05 16:37:12 -06001521 offset, buffer_state.get());
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001522 }
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001523 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001524 skip |= ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_GRAPHICS, cmd_type);
1525 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, cmd_type);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001526 auto count_buffer_state = Get<BUFFER_STATE>(countBuffer);
sjfricke177bbb62022-06-02 17:37:03 +09001527 skip |= ValidateIndirectCountCmd(*count_buffer_state, countBufferOffset, cmd_type);
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001528 return skip;
1529}
1530
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001531bool CoreChecks::PreCallValidateCmdDrawIndexedIndirectCountKHR(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1532 VkBuffer countBuffer, VkDeviceSize countBufferOffset,
1533 uint32_t maxDrawCount, uint32_t stride) const {
sfricke-samsungf692b972020-05-02 08:00:45 -07001534 return ValidateCmdDrawIndexedIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride,
sfricke-samsung85584a72021-09-30 21:43:38 -07001535 CMD_DRAWINDEXEDINDIRECTCOUNTKHR);
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001536}
1537
1538bool CoreChecks::PreCallValidateCmdDrawIndexedIndirectCount(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1539 VkBuffer countBuffer, VkDeviceSize countBufferOffset,
1540 uint32_t maxDrawCount, uint32_t stride) const {
sfricke-samsungf692b972020-05-02 08:00:45 -07001541 return ValidateCmdDrawIndexedIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride,
sfricke-samsung85584a72021-09-30 21:43:38 -07001542 CMD_DRAWINDEXEDINDIRECTCOUNT);
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001543}
1544
locke-lunarg9a16ebb2020-07-30 16:56:33 -06001545bool CoreChecks::PreCallValidateCmdDrawIndirectByteCountEXT(VkCommandBuffer commandBuffer, uint32_t instanceCount,
1546 uint32_t firstInstance, VkBuffer counterBuffer,
1547 VkDeviceSize counterBufferOffset, uint32_t counterOffset,
1548 uint32_t vertexStride) const {
sfricke-samsungd5e9adb2020-10-26 03:59:29 -07001549 bool skip = false;
Tony-LunarG2c94ba82020-11-05 14:21:40 -07001550 if (!enabled_features.transform_feedback_features.transformFeedback) {
1551 skip |= LogError(commandBuffer, "VUID-vkCmdDrawIndirectByteCountEXT-transformFeedback-02287",
1552 "%s: transformFeedback feature is not enabled.", "vkCmdDrawIndirectByteCountEXT()");
1553 }
sfricke-samsung45996a42021-09-16 13:45:27 -07001554 if (IsExtEnabled(device_extensions.vk_ext_transform_feedback) &&
1555 !phys_dev_ext_props.transform_feedback_props.transformFeedbackDraw) {
sfricke-samsungba459bd2020-12-06 23:20:04 -08001556 skip |= LogError(commandBuffer, "VUID-vkCmdDrawIndirectByteCountEXT-transformFeedbackDraw-02288",
Tony-LunarG2c94ba82020-11-05 14:21:40 -07001557 "%s: VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackDraw is not supported",
1558 "vkCmdDrawIndirectByteCountEXT()");
1559 }
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001560 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001561 skip |= ValidateCmdDrawInstance(*cb_state, instanceCount, firstInstance, CMD_DRAWINDIRECTBYTECOUNTEXT);
1562 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWINDIRECTBYTECOUNTEXT);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001563 auto counter_buffer_state = Get<BUFFER_STATE>(counterBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001564 skip |= ValidateIndirectCmd(*cb_state, *counter_buffer_state, CMD_DRAWINDIRECTBYTECOUNTEXT);
sfricke-samsungd5e9adb2020-10-26 03:59:29 -07001565 return skip;
locke-lunarg9a16ebb2020-07-30 16:56:33 -06001566}
1567
Jeff Bolzf6e872c2019-10-22 12:17:28 -05001568bool CoreChecks::PreCallValidateCmdTraceRaysNV(VkCommandBuffer commandBuffer, VkBuffer raygenShaderBindingTableBuffer,
1569 VkDeviceSize raygenShaderBindingOffset, VkBuffer missShaderBindingTableBuffer,
1570 VkDeviceSize missShaderBindingOffset, VkDeviceSize missShaderBindingStride,
1571 VkBuffer hitShaderBindingTableBuffer, VkDeviceSize hitShaderBindingOffset,
1572 VkDeviceSize hitShaderBindingStride, VkBuffer callableShaderBindingTableBuffer,
1573 VkDeviceSize callableShaderBindingOffset, VkDeviceSize callableShaderBindingStride,
1574 uint32_t width, uint32_t height, uint32_t depth) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001575 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001576 bool skip = ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_RAY_TRACING_NV, CMD_TRACERAYSNV);
Jeremy Gebbenb20a8242021-11-05 15:14:43 -06001577 auto callable_shader_buffer_state = Get<BUFFER_STATE>(callableShaderBindingTableBuffer);
sourav parmard1521802020-06-07 21:49:02 -07001578 if (callable_shader_buffer_state && callableShaderBindingOffset >= callable_shader_buffer_state->createInfo.size) {
1579 skip |= LogError(commandBuffer, "VUID-vkCmdTraceRaysNV-callableShaderBindingOffset-02461",
1580 "vkCmdTraceRaysNV: callableShaderBindingOffset %" PRIu64
1581 " must be less than the size of callableShaderBindingTableBuffer %" PRIu64 " .",
1582 callableShaderBindingOffset, callable_shader_buffer_state->createInfo.size);
1583 }
Jeremy Gebbenb20a8242021-11-05 15:14:43 -06001584 auto hit_shader_buffer_state = Get<BUFFER_STATE>(hitShaderBindingTableBuffer);
sourav parmard1521802020-06-07 21:49:02 -07001585 if (hit_shader_buffer_state && hitShaderBindingOffset >= hit_shader_buffer_state->createInfo.size) {
1586 skip |= LogError(commandBuffer, "VUID-vkCmdTraceRaysNV-hitShaderBindingOffset-02459",
1587 "vkCmdTraceRaysNV: hitShaderBindingOffset %" PRIu64
1588 " must be less than the size of hitShaderBindingTableBuffer %" PRIu64 " .",
1589 hitShaderBindingOffset, hit_shader_buffer_state->createInfo.size);
1590 }
Jeremy Gebbenb20a8242021-11-05 15:14:43 -06001591 auto miss_shader_buffer_state = Get<BUFFER_STATE>(missShaderBindingTableBuffer);
sourav parmard1521802020-06-07 21:49:02 -07001592 if (miss_shader_buffer_state && missShaderBindingOffset >= miss_shader_buffer_state->createInfo.size) {
1593 skip |= LogError(commandBuffer, "VUID-vkCmdTraceRaysNV-missShaderBindingOffset-02457",
1594 "vkCmdTraceRaysNV: missShaderBindingOffset %" PRIu64
baldurk751594b2020-09-09 09:41:02 +01001595 " must be less than the size of missShaderBindingTableBuffer %" PRIu64 " .",
sourav parmard1521802020-06-07 21:49:02 -07001596 missShaderBindingOffset, miss_shader_buffer_state->createInfo.size);
1597 }
Jeremy Gebbenb20a8242021-11-05 15:14:43 -06001598 auto raygen_shader_buffer_state = Get<BUFFER_STATE>(raygenShaderBindingTableBuffer);
sourav parmard1521802020-06-07 21:49:02 -07001599 if (raygenShaderBindingOffset >= raygen_shader_buffer_state->createInfo.size) {
1600 skip |= LogError(commandBuffer, "VUID-vkCmdTraceRaysNV-raygenShaderBindingOffset-02455",
1601 "vkCmdTraceRaysNV: raygenShaderBindingOffset %" PRIu64
baldurk751594b2020-09-09 09:41:02 +01001602 " must be less than the size of raygenShaderBindingTableBuffer %" PRIu64 " .",
sourav parmard1521802020-06-07 21:49:02 -07001603 raygenShaderBindingOffset, raygen_shader_buffer_state->createInfo.size);
1604 }
sourav parmarcd5fb182020-07-17 12:58:44 -07001605
sourav parmar30e19392020-12-02 16:57:21 -08001606 const auto lv_bind_point = ConvertToLvlBindPoint(VK_PIPELINE_BIND_POINT_RAY_TRACING_NV);
1607 const PIPELINE_STATE *pipeline_state = cb_state->lastBound[lv_bind_point].pipeline_state;
Jeremy Gebben14b0d1a2021-05-15 20:15:41 -06001608 if (!pipeline_state || (pipeline_state && !pipeline_state->pipeline())) {
sourav parmar30e19392020-12-02 16:57:21 -08001609 skip |= LogError(device, "VUID-vkCmdTraceRaysNV-None-02700",
1610 "vkCmdTraceRaysKHR: A valid pipeline must be bound to the pipeline bind point used by this command.");
sourav parmarcd5fb182020-07-17 12:58:44 -07001611 }
Jeff Bolzf6e872c2019-10-22 12:17:28 -05001612 return skip;
1613}
1614
Jeff Bolz443c2ca2020-03-19 12:11:51 -05001615bool CoreChecks::PreCallValidateCmdTraceRaysKHR(VkCommandBuffer commandBuffer,
sourav parmarcd5fb182020-07-17 12:58:44 -07001616 const VkStridedDeviceAddressRegionKHR *pRaygenShaderBindingTable,
1617 const VkStridedDeviceAddressRegionKHR *pMissShaderBindingTable,
1618 const VkStridedDeviceAddressRegionKHR *pHitShaderBindingTable,
1619 const VkStridedDeviceAddressRegionKHR *pCallableShaderBindingTable, uint32_t width,
Jeff Bolz443c2ca2020-03-19 12:11:51 -05001620 uint32_t height, uint32_t depth) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001621 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001622 bool skip = ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, CMD_TRACERAYSKHR);
Shannon McPherson9caca052020-11-25 11:34:38 -07001623 const auto lv_bind_point = ConvertToLvlBindPoint(VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR);
1624 const PIPELINE_STATE *pipeline_state = cb_state->lastBound[lv_bind_point].pipeline_state;
Jeremy Gebben14b0d1a2021-05-15 20:15:41 -06001625 if (!pipeline_state || (pipeline_state && !pipeline_state->pipeline())) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001626 skip |= LogError(device, "VUID-vkCmdTraceRaysKHR-None-02700",
1627 "vkCmdTraceRaysKHR: A valid pipeline must be bound to the pipeline bind point used by this command.");
1628 } else { // bound to valid RT pipeline
Jeremy Gebben11af9792021-08-20 10:20:09 -06001629 if (pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001630 if (!pHitShaderBindingTable->deviceAddress) {
1631 skip |= LogError(device, "VUID-vkCmdTraceRaysKHR-flags-03697",
1632 "vkCmdTraceRaysKHR: If the currently bound ray tracing pipeline was created with flags "
1633 "that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, the "
1634 "deviceAddress member of pHitShaderBindingTable must not be zero.");
1635 }
1636 if (!pHitShaderBindingTable || pHitShaderBindingTable->size == 0 || pHitShaderBindingTable->stride == 0) {
1637 skip |= LogError(device, "VUID-vkCmdTraceRaysKHR-flags-03514",
1638 "vkCmdTraceRaysKHR: If the currently bound ray tracing pipeline was created with "
1639 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, "
1640 "entries in pHitShaderBindingTable accessed as a result of this command in order to "
1641 "execute an intersection shader must not be set to zero.");
1642 }
1643 }
Jeremy Gebben11af9792021-08-20 10:20:09 -06001644 if (pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001645 if (!pHitShaderBindingTable->deviceAddress) {
1646 skip |= LogError(device, "VUID-vkCmdTraceRaysKHR-flags-03696",
1647 "vkCmdTraceRaysKHR: If the currently bound ray tracing pipeline was created with flags "
1648 "that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, the "
1649 "deviceAddress member of pHitShaderBindingTable must not be zero.");
1650 }
1651 if (!pHitShaderBindingTable || pHitShaderBindingTable->size == 0 || pHitShaderBindingTable->stride == 0) {
1652 skip |= LogError(device, "VUID-vkCmdTraceRaysKHR-flags-03513",
1653 "vkCmdTraceRaysKHR: If the currently bound ray tracing pipeline was created with "
1654 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, "
1655 "entries in pHitShaderBindingTable accessed as a result of this command in order to "
1656 "execute a closest hit shader must not be set to zero.");
1657 }
1658 }
Jeremy Gebben11af9792021-08-20 10:20:09 -06001659 if (pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001660 if (!pHitShaderBindingTable || pHitShaderBindingTable->size == 0 || pHitShaderBindingTable->stride == 0) {
1661 skip |= LogError(device, "VUID-vkCmdTraceRaysKHR-flags-03512",
1662 "vkCmdTraceRaysKHR: If the currently bound ray tracing pipeline was created with "
1663 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR, "
1664 "entries in pHitShaderBindingTable accessed as a result of this command in order to "
1665 "execute an any hit shader must not be set to zero.");
1666 }
1667 }
1668 }
Jeff Bolz443c2ca2020-03-19 12:11:51 -05001669 return skip;
1670}
1671
Jeff Bolz443c2ca2020-03-19 12:11:51 -05001672bool CoreChecks::PreCallValidateCmdTraceRaysIndirectKHR(VkCommandBuffer commandBuffer,
sourav parmarcd5fb182020-07-17 12:58:44 -07001673 const VkStridedDeviceAddressRegionKHR *pRaygenShaderBindingTable,
1674 const VkStridedDeviceAddressRegionKHR *pMissShaderBindingTable,
1675 const VkStridedDeviceAddressRegionKHR *pHitShaderBindingTable,
1676 const VkStridedDeviceAddressRegionKHR *pCallableShaderBindingTable,
1677 VkDeviceAddress indirectDeviceAddress) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001678 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001679 bool skip = ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, CMD_TRACERAYSINDIRECTKHR);
Shannon McPherson9caca052020-11-25 11:34:38 -07001680 const auto lv_bind_point = ConvertToLvlBindPoint(VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR);
Jeremy Gebbenb20a8242021-11-05 15:14:43 -06001681 const auto *pipeline_state = cb_state->lastBound[lv_bind_point].pipeline_state;
Jeremy Gebben14b0d1a2021-05-15 20:15:41 -06001682 if (!pipeline_state || (pipeline_state && !pipeline_state->pipeline())) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001683 skip |=
1684 LogError(device, "VUID-vkCmdTraceRaysIndirectKHR-None-02700",
1685 "vkCmdTraceRaysIndirectKHR: A valid pipeline must be bound to the pipeline bind point used by this command.");
1686 } else { // valid bind point
Jeremy Gebben11af9792021-08-20 10:20:09 -06001687 if (pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001688 if (!pHitShaderBindingTable || pHitShaderBindingTable->deviceAddress == 0) {
1689 skip |= LogError(device, "VUID-vkCmdTraceRaysIndirectKHR-flags-03697",
1690 "vkCmdTraceRaysIndirectKHR: If the currently bound ray tracing pipeline was created with "
1691 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, the "
1692 "deviceAddress member of pHitShaderBindingTable must not be zero.");
1693 }
1694 if (!pHitShaderBindingTable || pHitShaderBindingTable->size == 0 || pHitShaderBindingTable->stride == 0) {
1695 skip |= LogError(device, "VUID-vkCmdTraceRaysIndirectKHR-flags-03514",
1696 "vkCmdTraceRaysIndirectKHR: If the currently bound ray tracing pipeline was created with "
1697 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, "
1698 "entries in pHitShaderBindingTable accessed as a result of this command in order to "
1699 "execute an intersection shader must not be set to zero.");
1700 }
1701 }
Jeremy Gebben11af9792021-08-20 10:20:09 -06001702 if (pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001703 if (!pHitShaderBindingTable || pHitShaderBindingTable->deviceAddress == 0) {
1704 skip |= LogError(device, "VUID-vkCmdTraceRaysIndirectKHR-flags-03696",
1705 "vkCmdTraceRaysIndirectKHR:If the currently bound ray tracing pipeline was created with "
1706 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, "
1707 "the deviceAddress member of pHitShaderBindingTable must not be zero.");
1708 }
1709 if (!pHitShaderBindingTable || pHitShaderBindingTable->size == 0 || pHitShaderBindingTable->stride == 0) {
1710 skip |= LogError(device, "VUID-vkCmdTraceRaysIndirectKHR-flags-03513",
1711 "vkCmdTraceRaysIndirectKHR: If the currently bound ray tracing pipeline was created with "
1712 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, "
1713 "entries in pHitShaderBindingTable accessed as a result of this command in order to "
1714 "execute a closest hit shader must not be set to zero.");
1715 }
1716 }
Jeremy Gebben11af9792021-08-20 10:20:09 -06001717 if (pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001718 if (!pHitShaderBindingTable || pHitShaderBindingTable->size == 0 || pHitShaderBindingTable->stride == 0) {
1719 skip |= LogError(device, "VUID-vkCmdTraceRaysIndirectKHR-flags-03512",
1720 "vkCmdTraceRaysIndirectKHR: If the currently bound ray tracing pipeline was created with "
1721 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR, "
1722 "entries in pHitShaderBindingTable accessed as a result of this command in order to "
1723 "execute an any hit shader must not be set to zero.");
1724 }
1725 }
1726 }
Jeff Bolz443c2ca2020-03-19 12:11:51 -05001727 return skip;
1728}
1729
sfricke-samsungf91881c2022-03-31 01:12:00 -05001730bool CoreChecks::PreCallValidateCmdTraceRaysIndirect2KHR(VkCommandBuffer commandBuffer,
1731 VkDeviceAddress indirectDeviceAddress) const {
1732 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
1733 bool skip = ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, CMD_TRACERAYSINDIRECTKHR);
1734 return skip;
1735}
1736
Jeff Bolz5c801d12019-10-09 10:38:45 -05001737bool CoreChecks::PreCallValidateCmdDrawMeshTasksNV(VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001738 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001739 bool skip = ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWMESHTASKSNV);
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001740 return skip;
1741}
1742
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001743bool CoreChecks::PreCallValidateCmdDrawMeshTasksIndirectNV(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
Jeff Bolz5c801d12019-10-09 10:38:45 -05001744 uint32_t drawCount, uint32_t stride) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001745 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001746 bool skip = ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWMESHTASKSINDIRECTNV);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001747 auto buffer_state = Get<BUFFER_STATE>(buffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001748 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, CMD_DRAWMESHTASKSINDIRECTNV);
Lockee68ac652019-05-06 10:17:33 -06001749 if (drawCount > 1) {
Lockee68ac652019-05-06 10:17:33 -06001750 skip |= ValidateCmdDrawStrideWithBuffer(commandBuffer, "VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02157", stride,
1751 "VkDrawMeshTasksIndirectCommandNV", sizeof(VkDrawMeshTasksIndirectCommandNV),
Jeremy Gebben9f537102021-10-05 16:37:12 -06001752 drawCount, offset, buffer_state.get());
Lockee68ac652019-05-06 10:17:33 -06001753 }
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001754 return skip;
1755}
1756
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001757bool CoreChecks::PreCallValidateCmdDrawMeshTasksIndirectCountNV(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1758 VkBuffer countBuffer, VkDeviceSize countBufferOffset,
Jeff Bolz5c801d12019-10-09 10:38:45 -05001759 uint32_t maxDrawCount, uint32_t stride) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001760 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001761 bool skip = ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWMESHTASKSINDIRECTCOUNTNV);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001762 auto buffer_state = Get<BUFFER_STATE>(buffer);
1763 auto count_buffer_state = Get<BUFFER_STATE>(countBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001764 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, CMD_DRAWMESHTASKSINDIRECTCOUNTNV);
sjfricke177bbb62022-06-02 17:37:03 +09001765 skip |= ValidateIndirectCountCmd(*count_buffer_state, countBufferOffset, CMD_DRAWMESHTASKSINDIRECTCOUNTNV);
Lockee68ac652019-05-06 10:17:33 -06001766 skip |= ValidateCmdDrawStrideWithStruct(commandBuffer, "VUID-vkCmdDrawMeshTasksIndirectCountNV-stride-02182", stride,
1767 "VkDrawMeshTasksIndirectCommandNV", sizeof(VkDrawMeshTasksIndirectCommandNV));
1768 if (maxDrawCount > 1) {
1769 skip |= ValidateCmdDrawStrideWithBuffer(commandBuffer, "VUID-vkCmdDrawMeshTasksIndirectCountNV-maxDrawCount-02183", stride,
1770 "VkDrawMeshTasksIndirectCommandNV", sizeof(VkDrawMeshTasksIndirectCommandNV),
Jeremy Gebben9f537102021-10-05 16:37:12 -06001771 maxDrawCount, offset, buffer_state.get());
Lockee68ac652019-05-06 10:17:33 -06001772 }
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001773 return skip;
1774}