blob: cf4f02bd26dc30ac8a46fa68e6a9b0eeae94439b [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";
Tony-LunarGd45f81d2022-09-12 12:06:39 -0600957 dynamic_rendering_07285 = "VUID-vkCmdDrawMeshTasksIndirectNV-multisampledRenderToSingleSampled-07285";
958 dynamic_rendering_07286 = "VUID-vkCmdDrawMeshTasksIndirectNV-multisampledRenderToSingleSampled-07286";
959 dynamic_rendering_07287 = "VUID-vkCmdDrawMeshTasksIndirectNV-multisampledRenderToSingleSampled-07287";
Mike Schuchardt0e558a52022-08-18 15:14:51 -0700960 storage_image_read_without_format = "VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-07028";
961 storage_image_write_without_format = "VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-07027";
962 storage_texel_buffer_read_without_format = "VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-07030";
963 storage_texel_buffer_write_without_format = "VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-07029";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200964 depth_compare_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-None-06479";
ziga-lunarg50188622022-03-26 01:18:32 +0100965 dynamic_sample_locations = "VUID-vkCmdDrawMeshTasksIndirectNV-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +0200966 primitives_generated = "VUID-vkCmdDrawMeshTasksIndirectNV-primitivesGeneratedQueryWithRasterizerDiscard-06708";
ziga-lunargf4068b12022-04-05 13:58:59 +0200967 primitives_generated_streams = "VUID-vkCmdDrawMeshTasksIndirectNV-primitivesGeneratedQueryWithNonZeroStreams-06709";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700968 }
969};
970
971struct DispatchVuidsCmdDrawMeshTasksIndirectCountNV : DrawDispatchVuid {
972 DispatchVuidsCmdDrawMeshTasksIndirectCountNV() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700973 pipeline_bound = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02700";
974 dynamic_state = "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02701";
975 compatible_pipeline = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02697";
976 render_pass_compatible = "VUID-vkCmdDrawMeshTasksIndirectCountNV-renderPass-02684";
977 subpass_index = "VUID-vkCmdDrawMeshTasksIndirectCountNV-subpass-02685";
978 sample_location = "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-02689";
979 linear_sampler = "VUID-vkCmdDrawMeshTasksIndirectCountNV-magFilter-04553";
980 cubic_sampler = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02692";
981 indirect_protected_cb = "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02711";
982 indirect_contiguous_memory = "VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-02708";
983 indirect_buffer_bit = "VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-02709";
Mike Schuchardtfe17d6c2022-06-13 14:54:01 -0700984 indirect_count_contiguous_memory = "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02714";
985 indirect_count_buffer_bit = "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02715";
986 indirect_count_offset = "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBufferOffset-04129";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700987 viewport_count = "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-03417";
988 scissor_count = "VUID-vkCmdDrawMeshTasksIndirectCountNV-scissorCount-03418";
989 viewport_scissor_count = "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-03419";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700990 corner_sampled_address_mode = "VUID-vkCmdDrawMeshTasksIndirectCountNV-flags-02696";
991 subpass_input = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02686";
992 imageview_atomic = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700993 push_constants_set = "VUID-vkCmdDrawMeshTasksIndirectCountNV-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100994 image_subresources_render_pass_write = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06537";
995 image_subresources_subpass_read = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06538";
996 image_subresources_subpass_write = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700997 descriptor_valid = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02699";
998 sampler_imageview_type = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02702";
999 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02703";
1000 sampler_bias_offset = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02704";
1001 dynamic_state_setting_commands = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -07001002 rasterization_samples = "VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizationSamples-04740";
Tony-LunarG13778ab2022-09-07 14:43:02 -06001003 msrtss_rasterization_samples = "VUID-vkCmdDrawMeshTasksIndirectCountNV-multisampledRenderToSingleSampled-07284";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001004 unprotected_command_buffer = "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02707";
1005 max_multiview_instance_index = "VUID-vkCmdDrawMeshTasksIndirectCountNV-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -07001006 img_filter_cubic = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001007 filter_cubic = "VUID-vkCmdDrawMeshTasksIndirectCountNV-filterCubic-02694";
1008 filter_cubic_min_max = "VUID-vkCmdDrawMeshTasksIndirectCountNV-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +00001009 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawMeshTasksIndirectCountNV-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -06001010 rasterizer_discard_enable = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04876";
1011 depth_bias_enable = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04877";
1012 logic_op = "VUID-vkCmdDrawMeshTasksIndirectCountNV-logicOp-04878";
Piers Daniell924cd832021-05-18 13:48:47 -06001013 vertex_input = kVUID_Core_CmdDrawMeshTasksIndirectCountNV_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +02001014 blend_enable = "VUID-vkCmdDrawMeshTasksIndirectCountNV-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +01001015 color_write_enable = "VUID-vkCmdDrawMeshTasksIndirectCountNV-attachmentCount-06667";
stusmithedc4e392021-12-24 15:22:16 +00001016 dynamic_rendering_view_mask = "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewMask-06178";
1017 dynamic_rendering_color_count = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06179";
1018 dynamic_rendering_color_formats = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06180";
1019 dynamic_rendering_depth_format = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06181";
1020 dynamic_rendering_stencil_format = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06182";
1021 dynamic_rendering_fsr = "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06183";
1022 dynamic_rendering_fdm = "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06184";
1023 dynamic_rendering_color_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06185";
1024 dynamic_rendering_depth_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06186";
1025 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06187";
1026 dynamic_rendering_multi_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06188";
1027 dynamic_rendering_06189 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06189";
1028 dynamic_rendering_06190 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06190";
1029 dynamic_rendering_06198 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-renderPass-06198";
Tony-LunarGd45f81d2022-09-12 12:06:39 -06001030 dynamic_rendering_07285 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-multisampledRenderToSingleSampled-07285";
1031 dynamic_rendering_07286 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-multisampledRenderToSingleSampled-07286";
1032 dynamic_rendering_07287 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-multisampledRenderToSingleSampled-07287";
Mike Schuchardt0e558a52022-08-18 15:14:51 -07001033 storage_image_read_without_format = "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-07028";
1034 storage_image_write_without_format = "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-07027";
1035 storage_texel_buffer_read_without_format = "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-07030";
1036 storage_texel_buffer_write_without_format = "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-07029";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +02001037 depth_compare_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06479";
ziga-lunarg50188622022-03-26 01:18:32 +01001038 dynamic_sample_locations = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +02001039 primitives_generated = "VUID-vkCmdDrawMeshTasksIndirectCountNV-primitivesGeneratedQueryWithRasterizerDiscard-06708";
ziga-lunargf4068b12022-04-05 13:58:59 +02001040 primitives_generated_streams = "VUID-vkCmdDrawMeshTasksIndirectCountNV-primitivesGeneratedQueryWithNonZeroStreams-06709";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001041 }
1042};
1043
1044struct DispatchVuidsCmdDrawIndirectByteCountEXT: DrawDispatchVuid {
1045 DispatchVuidsCmdDrawIndirectByteCountEXT() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001046 pipeline_bound = "VUID-vkCmdDrawIndirectByteCountEXT-None-02700";
1047 dynamic_state = "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02701";
1048 vertex_binding = "VUID-vkCmdDrawIndirectByteCountEXT-None-04007";
1049 vertex_binding_null = "VUID-vkCmdDrawIndirectByteCountEXT-None-04008";
1050 compatible_pipeline = "VUID-vkCmdDrawIndirectByteCountEXT-None-02697";
1051 render_pass_compatible = "VUID-vkCmdDrawIndirectByteCountEXT-renderPass-02684";
1052 subpass_index = "VUID-vkCmdDrawIndirectByteCountEXT-subpass-02685";
1053 sample_location = "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-02689";
1054 linear_sampler = "VUID-vkCmdDrawIndirectByteCountEXT-magFilter-04553";
1055 cubic_sampler = "VUID-vkCmdDrawIndirectByteCountEXT-None-02692";
1056 indirect_protected_cb = "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02646";
sfricke-samsungb091d4e2021-04-18 23:15:59 -07001057 indirect_contiguous_memory = "VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-04567",
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001058 indirect_buffer_bit = "VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-02290";
1059 viewport_count = "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-03417";
1060 scissor_count = "VUID-vkCmdDrawIndirectByteCountEXT-scissorCount-03418";
1061 viewport_scissor_count = "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-03419";
1062 primitive_topology = "VUID-vkCmdDrawIndirectByteCountEXT-primitiveTopology-03420";
1063 corner_sampled_address_mode = "VUID-vkCmdDrawIndirectByteCountEXT-flags-02696";
1064 subpass_input = "VUID-vkCmdDrawIndirectByteCountEXT-None-02686";
1065 imageview_atomic = "VUID-vkCmdDrawIndirectByteCountEXT-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -07001066 push_constants_set = "VUID-vkCmdDrawIndirectByteCountEXT-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +01001067 image_subresources_render_pass_write = "VUID-vkCmdDrawIndirectByteCountEXT-None-06537";
1068 image_subresources_subpass_read = "VUID-vkCmdDrawIndirectByteCountEXT-None-06538";
1069 image_subresources_subpass_write = "VUID-vkCmdDrawIndirectByteCountEXT-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001070 descriptor_valid = "VUID-vkCmdDrawIndirectByteCountEXT-None-02699";
1071 sampler_imageview_type = "VUID-vkCmdDrawIndirectByteCountEXT-None-02702";
1072 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawIndirectByteCountEXT-None-02703";
1073 sampler_bias_offset = "VUID-vkCmdDrawIndirectByteCountEXT-None-02704";
1074 vertex_binding_attribute = "VUID-vkCmdDrawIndirectByteCountEXT-None-02721";
1075 dynamic_state_setting_commands = "VUID-vkCmdDrawIndirectByteCountEXT-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -07001076 rasterization_samples = "VUID-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-04740";
Tony-LunarG13778ab2022-09-07 14:43:02 -06001077 msrtss_rasterization_samples = "VUID-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07284";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001078 unprotected_command_buffer = "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02707";
1079 max_multiview_instance_index = "VUID-vkCmdDrawIndirectByteCountEXT-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -07001080 img_filter_cubic = "VUID-vkCmdDrawIndirectByteCountEXT-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001081 filter_cubic = "VUID-vkCmdDrawIndirectByteCountEXT-filterCubic-02694";
1082 filter_cubic_min_max = "VUID-vkCmdDrawIndirectByteCountEXT-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +00001083 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawIndirectByteCountEXT-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -06001084 patch_control_points = "VUID-vkCmdDrawIndirectByteCountEXT-None-04875";
1085 rasterizer_discard_enable = "VUID-vkCmdDrawIndirectByteCountEXT-None-04876";
1086 depth_bias_enable = "VUID-vkCmdDrawIndirectByteCountEXT-None-04877";
1087 logic_op = "VUID-vkCmdDrawIndirectByteCountEXT-logicOp-04878";
1088 primitive_restart_enable = "VUID-vkCmdDrawIndirectByteCountEXT-None-04879";
1089 vertex_input_binding_stride = "VUID-vkCmdDrawIndirectByteCountEXT-pStrides-04884";
1090 vertex_input = kVUID_Core_CmdDrawIndirectByteCountEXT_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +02001091 blend_enable = "VUID-vkCmdDrawIndirectByteCountEXT-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +01001092 color_write_enable = "VUID-vkCmdDrawIndirectByteCountEXT-attachmentCount-06667";
stusmithedc4e392021-12-24 15:22:16 +00001093 dynamic_rendering_view_mask = "VUID-vkCmdDrawIndirectByteCountEXT-viewMask-06178";
1094 dynamic_rendering_color_count = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06179";
1095 dynamic_rendering_color_formats = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06180";
1096 dynamic_rendering_depth_format = "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06181";
1097 dynamic_rendering_stencil_format = "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06182";
1098 dynamic_rendering_fsr = "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06183";
1099 dynamic_rendering_fdm = "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06184";
1100 dynamic_rendering_color_sample = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06185";
1101 dynamic_rendering_depth_sample = "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06186";
1102 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06187";
1103 dynamic_rendering_multi_sample = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06188";
1104 dynamic_rendering_06189 = "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06189";
1105 dynamic_rendering_06190 = "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06190";
1106 dynamic_rendering_06198 = "VUID-vkCmdDrawIndirectByteCountEXT-renderPass-06198";
Tony-LunarGd45f81d2022-09-12 12:06:39 -06001107 dynamic_rendering_07285 = "VUID-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07285";
1108 dynamic_rendering_07286 = "VUID-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07286";
1109 dynamic_rendering_07287 = "VUID-vkCmdDrawIndirectByteCountEXT-multisampledRenderToSingleSampled-07287";
Mike Schuchardt0e558a52022-08-18 15:14:51 -07001110 storage_image_read_without_format = "VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-07028";
1111 storage_image_write_without_format = "VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-07027";
1112 storage_texel_buffer_read_without_format = "VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-07030";
1113 storage_texel_buffer_write_without_format = "VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-07029";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +02001114 depth_compare_sample = "VUID-vkCmdDrawIndirectByteCountEXT-None-06479";
ziga-lunarg50188622022-03-26 01:18:32 +01001115 dynamic_sample_locations = "VUID-vkCmdDrawIndirectByteCountEXT-None-06666";
ziga-lunarg8935ad12022-04-02 02:00:23 +02001116 primitives_generated = "VUID-vkCmdDrawIndirectByteCountEXT-primitivesGeneratedQueryWithRasterizerDiscard-06708";
ziga-lunargf4068b12022-04-05 13:58:59 +02001117 primitives_generated_streams = "VUID-vkCmdDrawIndirectByteCountEXT-primitivesGeneratedQueryWithNonZeroStreams-06709";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001118 }
1119};
1120
1121struct DispatchVuidsCmdDispatchBase: DrawDispatchVuid {
1122 DispatchVuidsCmdDispatchBase() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001123 pipeline_bound = "VUID-vkCmdDispatchBase-None-02700";
Mark Lobodzinski02d37552020-12-28 13:29:46 -07001124 dynamic_state = "VUID-vkCmdDispatchBase-commandBuffer-02701";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001125 compatible_pipeline = "VUID-vkCmdDispatchBase-None-02697";
1126 linear_sampler = "VUID-vkCmdDispatchBase-magFilter-04553";
1127 cubic_sampler = "VUID-vkCmdDispatchBase-None-02692";
1128 corner_sampled_address_mode = "VUID-vkCmdDispatchBase-flags-02696";
1129 imageview_atomic = "VUID-vkCmdDispatchBase-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -07001130 push_constants_set = "VUID-vkCmdDispatchBase-maintenance4-06425";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001131 descriptor_valid = "VUID-vkCmdDispatchBase-None-02699";
1132 sampler_imageview_type = "VUID-vkCmdDispatchBase-None-02702";
1133 sampler_implicitLod_dref_proj = "VUID-vkCmdDispatchBase-None-02703";
1134 sampler_bias_offset = "VUID-vkCmdDispatchBase-None-02704";
1135 dynamic_state_setting_commands = "VUID-vkCmdDispatchBase-None-02859";
1136 unprotected_command_buffer = "VUID-vkCmdDispatchBase-commandBuffer-02707";
sfricke-samsunge79d0892021-06-17 08:56:22 -07001137 protected_command_buffer = "VUID-vkCmdDispatchBase-commandBuffer-02712";
Mark Lobodzinskif786b412020-11-30 12:16:17 -07001138 img_filter_cubic = "VUID-vkCmdDispatchBase-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001139 filter_cubic = "VUID-vkCmdDispatchBase-filterCubic-02694";
1140 filter_cubic_min_max = "VUID-vkCmdDispatchBase-filterCubicMinmax-02695";
Mike Schuchardt0e558a52022-08-18 15:14:51 -07001141 storage_image_read_without_format = "VUID-vkCmdDispatchBase-OpTypeImage-07028";
1142 storage_image_write_without_format = "VUID-vkCmdDispatchBase-OpTypeImage-07027";
1143 storage_texel_buffer_read_without_format = "VUID-vkCmdDispatchBase-OpTypeImage-07030";
1144 storage_texel_buffer_write_without_format = "VUID-vkCmdDispatchBase-OpTypeImage-07029";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +02001145 depth_compare_sample = "VUID-vkCmdDispatchBase-None-06479";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001146 }
1147};
1148
1149// 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 -07001150static const std::map<CMD_TYPE, DrawDispatchVuid> kDrawdispatchVuid = {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001151 {CMD_DRAW, DispatchVuidsCmdDraw()},
Tony-LunarG4490de42021-06-21 15:49:19 -06001152 {CMD_DRAWMULTIEXT, DispatchVuidsCmdDrawMultiEXT()},
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001153 {CMD_DRAWINDEXED, DispatchVuidsCmdDrawIndexed()},
Tony-LunarG4490de42021-06-21 15:49:19 -06001154 {CMD_DRAWMULTIINDEXEDEXT, DispatchVuidsCmdDrawMultiIndexedEXT()},
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001155 {CMD_DRAWINDIRECT, DispatchVuidsCmdDrawIndirect()},
1156 {CMD_DRAWINDEXEDINDIRECT, DispatchVuidsCmdDrawIndexedIndirect()},
1157 {CMD_DISPATCH, DispatchVuidsCmdDispatch()},
1158 {CMD_DISPATCHINDIRECT, DispatchVuidsCmdDispatchIndirect()},
1159 {CMD_DRAWINDIRECTCOUNT, DispatchVuidsCmdDrawIndirectCount()},
sfricke-samsung85584a72021-09-30 21:43:38 -07001160 {CMD_DRAWINDIRECTCOUNTKHR, DispatchVuidsCmdDrawIndirectCount()},
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001161 {CMD_DRAWINDEXEDINDIRECTCOUNT, DispatchVuidsCmdDrawIndexedIndirectCount()},
sfricke-samsung85584a72021-09-30 21:43:38 -07001162 {CMD_DRAWINDEXEDINDIRECTCOUNTKHR, DispatchVuidsCmdDrawIndexedIndirectCount()},
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001163 {CMD_TRACERAYSNV, DispatchVuidsCmdTraceRaysNV()},
1164 {CMD_TRACERAYSKHR, DispatchVuidsCmdTraceRaysKHR()},
1165 {CMD_TRACERAYSINDIRECTKHR, DispatchVuidsCmdTraceRaysIndirectKHR()},
sfricke-samsungf91881c2022-03-31 01:12:00 -05001166 {CMD_TRACERAYSINDIRECT2KHR, DispatchVuidsCmdTraceRaysIndirect2KHR()},
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001167 {CMD_DRAWMESHTASKSNV, DispatchVuidsCmdDrawMeshTasksNV()},
1168 {CMD_DRAWMESHTASKSINDIRECTNV, DispatchVuidsCmdDrawMeshTasksIndirectNV()},
1169 {CMD_DRAWMESHTASKSINDIRECTCOUNTNV, DispatchVuidsCmdDrawMeshTasksIndirectCountNV()},
1170 {CMD_DRAWINDIRECTBYTECOUNTEXT, DispatchVuidsCmdDrawIndirectByteCountEXT()},
1171 {CMD_DISPATCHBASE, DispatchVuidsCmdDispatchBase()},
sfricke-samsung85584a72021-09-30 21:43:38 -07001172 {CMD_DISPATCHBASEKHR, DispatchVuidsCmdDispatchBase()},
Spencer Fricke507600b2020-03-22 13:23:06 -07001173 // Used if invalid cmd_type is used
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001174 {CMD_NONE, DrawDispatchVuid()}
Spencer Fricke507600b2020-03-22 13:23:06 -07001175};
1176// clang-format on
1177
1178// Getter function to provide kVUIDUndefined in case an invalid cmd_type is passed in
1179const DrawDispatchVuid &CoreChecks::GetDrawDispatchVuid(CMD_TYPE cmd_type) const {
Nathaniel Cesarioce9b4812020-12-17 08:55:28 -07001180 if (kDrawdispatchVuid.find(cmd_type) != kDrawdispatchVuid.cend()) {
1181 return kDrawdispatchVuid.at(cmd_type);
Spencer Fricke507600b2020-03-22 13:23:06 -07001182 } else {
Nathaniel Cesarioce9b4812020-12-17 08:55:28 -07001183 return kDrawdispatchVuid.at(CMD_NONE);
Spencer Fricke507600b2020-03-22 13:23:06 -07001184 }
1185}
1186
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001187// Generic function to handle validation for all CmdDraw* type functions
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001188bool CoreChecks::ValidateCmdDrawType(const CMD_BUFFER_STATE &cb_state, bool indexed, VkPipelineBindPoint bind_point,
sfricke-samsung85584a72021-09-30 21:43:38 -07001189 CMD_TYPE cmd_type) const {
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001190 bool skip = false;
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001191 skip |= ValidateCmd(&cb_state, cmd_type);
1192 skip |= ValidateCmdBufDrawState(&cb_state, cmd_type, indexed, bind_point);
1193 skip |= ValidateCmdRayQueryState(&cb_state, cmd_type, bind_point);
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001194 return skip;
1195}
1196
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001197bool CoreChecks::ValidateCmdDrawInstance(const CMD_BUFFER_STATE &cb_node, uint32_t instanceCount, uint32_t firstInstance,
sfricke-samsung85584a72021-09-30 21:43:38 -07001198 CMD_TYPE cmd_type) const {
locke-lunarg3fa463a2020-10-23 16:39:04 -06001199 bool skip = false;
1200 const DrawDispatchVuid vuid = GetDrawDispatchVuid(cmd_type);
sfricke-samsung85584a72021-09-30 21:43:38 -07001201 const char *caller = CommandTypeString(cmd_type);
locke-lunarg3fa463a2020-10-23 16:39:04 -06001202
1203 // Verify maxMultiviewInstanceIndex
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001204 if (cb_node.activeRenderPass && cb_node.activeRenderPass->renderPass() && enabled_features.multiview_features.multiview &&
locke-lunarg3fa463a2020-10-23 16:39:04 -06001205 ((instanceCount + firstInstance) > phys_dev_ext_props.multiview_props.maxMultiviewInstanceIndex)) {
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001206 LogObjectList objlist(cb_node.Handle());
1207 objlist.add(cb_node.activeRenderPass->Handle());
locke-lunarg3fa463a2020-10-23 16:39:04 -06001208 skip |= LogError(objlist, vuid.max_multiview_instance_index,
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001209 "%s: renderpass %s multiview is enabled, and maxMultiviewInstanceIndex: %" PRIu32
1210 ", but instanceCount: %" PRIu32 "and firstInstance: %" PRIu32 ".",
1211 caller, report_data->FormatHandle(cb_node.activeRenderPass->Handle()).c_str(),
locke-lunarg3fa463a2020-10-23 16:39:04 -06001212 phys_dev_ext_props.multiview_props.maxMultiviewInstanceIndex, instanceCount, firstInstance);
1213 }
1214 return skip;
1215}
1216
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001217bool CoreChecks::PreCallValidateCmdDraw(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount,
Jeff Bolz5c801d12019-10-09 10:38:45 -05001218 uint32_t firstVertex, uint32_t firstInstance) const {
locke-lunarg3fa463a2020-10-23 16:39:04 -06001219 bool skip = false;
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001220 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001221 skip |= ValidateCmdDrawInstance(*cb_state, instanceCount, firstInstance, CMD_DRAW);
1222 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAW);
locke-lunarg3fa463a2020-10-23 16:39:04 -06001223 return skip;
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001224}
1225
Tony-LunarG4490de42021-06-21 15:49:19 -06001226bool CoreChecks::PreCallValidateCmdDrawMultiEXT(VkCommandBuffer commandBuffer, uint32_t drawCount,
1227 const VkMultiDrawInfoEXT *pVertexInfo, uint32_t instanceCount,
1228 uint32_t firstInstance, uint32_t stride) const {
1229 bool skip = false;
1230 if (!enabled_features.multi_draw_features.multiDraw) {
1231 skip |= LogError(commandBuffer, "VUID-vkCmdDrawMultiEXT-None-04933",
1232 "vkCmdDrawMultiEXT(): The multiDraw feature must be enabled to "
1233 "call this command.");
1234 }
1235 if (drawCount > phys_dev_ext_props.multi_draw_props.maxMultiDrawCount) {
1236 skip |= LogError(commandBuffer, "VUID-vkCmdDrawMultiEXT-drawCount-04934",
1237 "vkCmdDrawMultiEXT(): parameter, uint32_t drawCount (%" PRIu32
1238 ") must be less than VkPhysicalDeviceMultiDrawPropertiesEXT::maxMultiDrawCount (%" PRIu32 ").",
1239 drawCount, phys_dev_ext_props.multi_draw_props.maxMultiDrawCount);
1240 }
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001241 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001242 skip |= ValidateCmdDrawInstance(*cb_state, instanceCount, firstInstance, CMD_DRAWMULTIEXT);
1243 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWMULTIEXT);
Tony-LunarG4490de42021-06-21 15:49:19 -06001244 return skip;
1245}
1246
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001247bool CoreChecks::ValidateCmdDrawIndexedBufferSize(const CMD_BUFFER_STATE &cb_state, uint32_t indexCount, uint32_t firstIndex,
1248 const char *caller, const char *first_index_vuid) const {
Tony-LunarG4490de42021-06-21 15:49:19 -06001249 bool skip = false;
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001250 if (cb_state.status & CBSTATUS_INDEX_BUFFER_BOUND) {
Tony-LunarG4490de42021-06-21 15:49:19 -06001251 unsigned int index_size = 0;
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001252 const auto &index_buffer_binding = cb_state.index_buffer_binding;
Tony-LunarG4490de42021-06-21 15:49:19 -06001253 if (index_buffer_binding.index_type == VK_INDEX_TYPE_UINT16) {
1254 index_size = 2;
1255 }
1256 else if (index_buffer_binding.index_type == VK_INDEX_TYPE_UINT32) {
1257 index_size = 4;
1258 }
1259 else if (index_buffer_binding.index_type == VK_INDEX_TYPE_UINT8_EXT) {
1260 index_size = 1;
1261 }
1262 VkDeviceSize end_offset = (index_size * (static_cast<VkDeviceSize>(firstIndex) + indexCount)) + index_buffer_binding.offset;
1263 if (end_offset > index_buffer_binding.size) {
1264 skip |= LogError(index_buffer_binding.buffer_state->buffer(), first_index_vuid,
1265 "%s: index size (%u) * (firstIndex (%u) + indexCount (%u)) "
1266 "+ binding offset (%" PRIuLEAST64 ") = an ending offset of %" PRIuLEAST64
1267 " bytes, which is greater than the index buffer size (%" PRIuLEAST64 ").",
1268 caller, index_size, firstIndex, indexCount, index_buffer_binding.offset, end_offset,
1269 index_buffer_binding.size);
1270 }
1271 }
1272 return skip;
1273}
1274
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001275bool CoreChecks::PreCallValidateCmdDrawIndexed(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount,
Jeff Bolz5c801d12019-10-09 10:38:45 -05001276 uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance) const {
locke-lunarg3fa463a2020-10-23 16:39:04 -06001277 bool skip = false;
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001278 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001279 skip |= ValidateCmdDrawInstance(*cb_state, instanceCount, firstInstance, CMD_DRAWINDEXED);
1280 skip |= ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWINDEXED);
1281 skip |= ValidateCmdDrawIndexedBufferSize(*cb_state, indexCount, firstIndex, "vkCmdDrawIndexed()",
Tony-LunarG4490de42021-06-21 15:49:19 -06001282 "VUID-vkCmdDrawIndexed-firstIndex-04932");
1283 return skip;
1284}
1285
1286bool CoreChecks::PreCallValidateCmdDrawMultiIndexedEXT(VkCommandBuffer commandBuffer, uint32_t drawCount,
1287 const VkMultiDrawIndexedInfoEXT *pIndexInfo, uint32_t instanceCount,
1288 uint32_t firstInstance, uint32_t stride,
1289 const int32_t *pVertexOffset) const {
1290 bool skip = false;
1291 if (!enabled_features.multi_draw_features.multiDraw) {
1292 skip |= LogError(commandBuffer, "VUID-vkCmdDrawMultiIndexedEXT-None-04937",
1293 "vkCmdDrawMultiIndexedEXT(): The multiDraw feature must be enabled to "
1294 "call this command.");
1295 }
1296 if (drawCount > phys_dev_ext_props.multi_draw_props.maxMultiDrawCount) {
1297 skip |= LogError(commandBuffer, "VUID-vkCmdDrawMultiIndexedEXT-drawCount-04939",
1298 "vkCmdDrawMultiIndexedEXT(): parameter, uint32_t drawCount (0x%" PRIu32
1299 ") must be less than VkPhysicalDeviceMultiDrawPropertiesEXT::maxMultiDrawCount (0x%" PRIu32 ").",
1300 drawCount, phys_dev_ext_props.multi_draw_props.maxMultiDrawCount);
1301 }
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001302 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001303 skip |= ValidateCmdDrawInstance(*cb_state, instanceCount, firstInstance, CMD_DRAWMULTIINDEXEDEXT);
1304 skip |= ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWMULTIINDEXEDEXT);
Ricardo Garcia27a26f52021-07-13 15:52:14 +02001305 const auto info_bytes = reinterpret_cast<const char *>(pIndexInfo);
Tony-LunarG4490de42021-06-21 15:49:19 -06001306 for (uint32_t i = 0; i < drawCount; i++) {
Ricardo Garcia27a26f52021-07-13 15:52:14 +02001307 const auto info_ptr = reinterpret_cast<const VkMultiDrawIndexedInfoEXT *>(info_bytes + i * stride);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001308 skip |= ValidateCmdDrawIndexedBufferSize(*cb_state, info_ptr->indexCount, info_ptr->firstIndex,
Tony-LunarG4490de42021-06-21 15:49:19 -06001309 "vkCmdDrawMultiIndexedEXT()", "VUID-vkCmdDrawMultiIndexedEXT-firstIndex-04938");
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001310 }
1311 return skip;
1312}
1313
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001314bool CoreChecks::PreCallValidateCmdDrawIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1315 uint32_t drawCount, uint32_t stride) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001316 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001317 bool skip = ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWINDIRECT);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001318 auto buffer_state = Get<BUFFER_STATE>(buffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001319 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, CMD_DRAWINDIRECT);
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001320 if (drawCount > 1) {
Lockee68ac652019-05-06 10:17:33 -06001321 skip |= ValidateCmdDrawStrideWithStruct(commandBuffer, "VUID-vkCmdDrawIndirect-drawCount-00476", stride,
1322 "VkDrawIndirectCommand", sizeof(VkDrawIndirectCommand));
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001323 skip |= ValidateCmdDrawStrideWithBuffer(commandBuffer, "VUID-vkCmdDrawIndirect-drawCount-00488", stride,
1324 "VkDrawIndirectCommand", sizeof(VkDrawIndirectCommand), drawCount, offset,
Jeremy Gebben9f537102021-10-05 16:37:12 -06001325 buffer_state.get());
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001326 } else if ((drawCount == 1) && (offset + sizeof(VkDrawIndirectCommand)) > buffer_state->createInfo.size) {
1327 skip |= LogError(commandBuffer, "VUID-vkCmdDrawIndirect-drawCount-00487",
Jeremy Gebbenda6b48f2021-05-13 10:46:18 -06001328 "CmdDrawIndirect: drawCount equals 1 and (offset + sizeof(VkDrawIndirectCommand)) (%" PRIu64 ") is not less than "
1329 "or equal to the size of buffer (%" PRIu64 ").",
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001330 (offset + sizeof(VkDrawIndirectCommand)), buffer_state->createInfo.size);
Lockee68ac652019-05-06 10:17:33 -06001331 }
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001332 // TODO: If the drawIndirectFirstInstance feature is not enabled, all the firstInstance members of the
1333 // VkDrawIndirectCommand structures accessed by this command must be 0, which will require access to the contents of 'buffer'.
1334 return skip;
1335}
1336
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001337bool CoreChecks::PreCallValidateCmdDrawIndexedIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001338 uint32_t drawCount, uint32_t stride) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001339 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001340 bool skip = ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWINDEXEDINDIRECT);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001341 auto buffer_state = Get<BUFFER_STATE>(buffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001342 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, CMD_DRAWINDEXEDINDIRECT);
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001343 if (drawCount > 1) {
Lockee68ac652019-05-06 10:17:33 -06001344 skip |= ValidateCmdDrawStrideWithStruct(commandBuffer, "VUID-vkCmdDrawIndexedIndirect-drawCount-00528", stride,
1345 "VkDrawIndexedIndirectCommand", sizeof(VkDrawIndexedIndirectCommand));
1346 skip |= ValidateCmdDrawStrideWithBuffer(commandBuffer, "VUID-vkCmdDrawIndexedIndirect-drawCount-00540", stride,
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001347 "VkDrawIndexedIndirectCommand", sizeof(VkDrawIndexedIndirectCommand), drawCount,
Jeremy Gebben9f537102021-10-05 16:37:12 -06001348 offset, buffer_state.get());
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001349 } else if ((drawCount == 1) && (offset + sizeof(VkDrawIndexedIndirectCommand)) > buffer_state->createInfo.size) {
1350 skip |= LogError(
1351 commandBuffer, "VUID-vkCmdDrawIndexedIndirect-drawCount-00539",
Jeremy Gebbenda6b48f2021-05-13 10:46:18 -06001352 "CmdDrawIndexedIndirect: drawCount equals 1 and (offset + sizeof(VkDrawIndexedIndirectCommand)) (%" PRIu64 ") is not less than "
1353 "or equal to the size of buffer (%" PRIu64 ").",
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001354 (offset + sizeof(VkDrawIndexedIndirectCommand)), buffer_state->createInfo.size);
Lockee68ac652019-05-06 10:17:33 -06001355 }
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001356 // TODO: If the drawIndirectFirstInstance feature is not enabled, all the firstInstance members of the
1357 // VkDrawIndexedIndirectCommand structures accessed by this command must be 0, which will require access to the contents of
1358 // 'buffer'.
1359 return skip;
1360}
1361
Jeff Bolz5c801d12019-10-09 10:38:45 -05001362bool CoreChecks::PreCallValidateCmdDispatch(VkCommandBuffer commandBuffer, uint32_t x, uint32_t y, uint32_t z) const {
Lockef39c0772019-04-03 14:40:02 -06001363 bool skip = false;
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001364 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001365 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_COMPUTE, CMD_DISPATCH);
Lockef39c0772019-04-03 14:40:02 -06001366 return skip;
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001367}
1368
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001369bool CoreChecks::ValidateBaseGroups(const CMD_BUFFER_STATE &cb_state, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ,
Tony-LunarGf825e6d2020-12-16 13:05:17 -07001370 const char *apiName) const {
1371 bool skip = false;
1372 if (baseGroupX || baseGroupY || baseGroupZ) {
Tony-LunarGf825e6d2020-12-16 13:05:17 -07001373 const auto lv_bind_point = ConvertToLvlBindPoint(VK_PIPELINE_BIND_POINT_COMPUTE);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001374 const auto *pipeline_state = cb_state.lastBound[lv_bind_point].pipeline_state;
Jeremy Gebben11af9792021-08-20 10:20:09 -06001375 if (pipeline_state && !(pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_DISPATCH_BASE)) {
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001376 skip |= LogError(cb_state.Handle(), "VUID-vkCmdDispatchBase-baseGroupX-00427",
Tony-LunarGf825e6d2020-12-16 13:05:17 -07001377 "%s(): If any of baseGroupX, baseGroupY, or baseGroupZ are not zero, then the bound compute pipeline "
1378 "must have been created with the VK_PIPELINE_CREATE_DISPATCH_BASE flag",
1379 apiName);
1380 }
1381 }
1382 return skip;
1383}
1384
locke-lunarg25b6c352020-08-06 17:44:18 -06001385bool CoreChecks::PreCallValidateCmdDispatchBase(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY,
1386 uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY,
1387 uint32_t groupCountZ) const {
1388 bool skip = false;
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001389 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001390 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_COMPUTE, CMD_DISPATCHBASE);
1391 skip |= ValidateBaseGroups(*cb_state, baseGroupX, baseGroupY, baseGroupZ, "vkCmdDispatchBase()");
locke-lunarg25b6c352020-08-06 17:44:18 -06001392 return skip;
1393}
1394
1395bool CoreChecks::PreCallValidateCmdDispatchBaseKHR(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY,
1396 uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY,
1397 uint32_t groupCountZ) const {
1398 bool skip = false;
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001399 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001400 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_COMPUTE, CMD_DISPATCHBASEKHR);
1401 skip |= ValidateBaseGroups(*cb_state, baseGroupX, baseGroupY, baseGroupZ, "vkCmdDispatchBaseKHR()");
locke-lunarg25b6c352020-08-06 17:44:18 -06001402 return skip;
1403}
1404
Jeff Bolz5c801d12019-10-09 10:38:45 -05001405bool CoreChecks::PreCallValidateCmdDispatchIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001406 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001407 bool skip = ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_COMPUTE, CMD_DISPATCHINDIRECT);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001408 auto buffer_state = Get<BUFFER_STATE>(buffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001409 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, CMD_DISPATCHINDIRECT);
Tony-LunarGda555b52021-01-06 13:43:49 -07001410 if ((offset + sizeof(VkDispatchIndirectCommand)) > buffer_state->createInfo.size) {
1411 skip |= LogError(commandBuffer, "VUID-vkCmdDispatchIndirect-offset-00407",
1412 "vkCmdDispatchIndirect(): The sum of offset and the size of VkDispatchIndirectCommand is greater than the "
1413 "size of the buffer");
1414 }
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001415 return skip;
1416}
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001417bool CoreChecks::ValidateCmdDrawIndirectCount(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1418 VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount,
sfricke-samsung85584a72021-09-30 21:43:38 -07001419 uint32_t stride, CMD_TYPE cmd_type) const {
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001420 bool skip = false;
sfricke-samsung85584a72021-09-30 21:43:38 -07001421 const char *apiName = CommandTypeString(cmd_type);
Nathaniel Cesario7f231f12021-03-25 12:10:58 -06001422 if ((device_extensions.vk_khr_draw_indirect_count != kEnabledByCreateinfo) &&
1423 ((api_version >= VK_API_VERSION_1_2) && (enabled_features.core12.drawIndirectCount == VK_FALSE))) {
Shannon McPherson2c793ba2020-08-28 12:13:24 -06001424 skip |= LogError(commandBuffer, "VUID-vkCmdDrawIndirectCount-None-04445",
sfricke-samsung27c70722020-05-02 08:42:39 -07001425 "%s(): Starting in Vulkan 1.2 the VkPhysicalDeviceVulkan12Features::drawIndirectCount must be enabled to "
1426 "call this command.",
1427 apiName);
1428 }
AndreyVK_D3Db2753e12021-07-21 12:24:03 +03001429 skip |= ValidateCmdDrawStrideWithStruct(commandBuffer, "VUID-vkCmdDrawIndirectCount-stride-03110", stride,
1430 "VkDrawIndirectCommand", sizeof(VkDrawIndirectCommand));
Lockee68ac652019-05-06 10:17:33 -06001431 if (maxDrawCount > 1) {
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001432 auto buffer_state = Get<BUFFER_STATE>(buffer);
AndreyVK_D3Db2753e12021-07-21 12:24:03 +03001433 skip |= ValidateCmdDrawStrideWithBuffer(commandBuffer, "VUID-vkCmdDrawIndirectCount-maxDrawCount-03111", stride,
1434 "VkDrawIndirectCommand", sizeof(VkDrawIndirectCommand), maxDrawCount, offset,
Jeremy Gebben9f537102021-10-05 16:37:12 -06001435 buffer_state.get());
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001436 }
1437
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001438 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001439 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, cmd_type);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001440 auto buffer_state = Get<BUFFER_STATE>(buffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001441 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, cmd_type);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001442 auto count_buffer_state = Get<BUFFER_STATE>(countBuffer);
sjfricke177bbb62022-06-02 17:37:03 +09001443 skip |= ValidateIndirectCountCmd(*count_buffer_state, countBufferOffset, cmd_type);
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001444 return skip;
1445}
1446
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001447bool CoreChecks::PreCallValidateCmdDrawIndirectCountKHR(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1448 VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount,
1449 uint32_t stride) const {
Tony-LunarG83544c72020-01-17 12:30:19 -07001450 return ValidateCmdDrawIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride,
sfricke-samsung85584a72021-09-30 21:43:38 -07001451 CMD_DRAWINDIRECTCOUNTKHR);
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001452}
1453
1454bool CoreChecks::PreCallValidateCmdDrawIndirectCount(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1455 VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount,
1456 uint32_t stride) const {
Tony-LunarG83544c72020-01-17 12:30:19 -07001457 return ValidateCmdDrawIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride,
sfricke-samsung85584a72021-09-30 21:43:38 -07001458 CMD_DRAWINDIRECTCOUNT);
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001459}
1460
1461bool CoreChecks::ValidateCmdDrawIndexedIndirectCount(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1462 VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount,
sfricke-samsung85584a72021-09-30 21:43:38 -07001463 uint32_t stride, CMD_TYPE cmd_type) const {
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001464 bool skip = false;
sfricke-samsung85584a72021-09-30 21:43:38 -07001465 const char *apiName = CommandTypeString(cmd_type);
Nathaniel Cesario7f231f12021-03-25 12:10:58 -06001466 if ((device_extensions.vk_khr_draw_indirect_count != kEnabledByCreateinfo) &&
1467 ((api_version >= VK_API_VERSION_1_2) && (enabled_features.core12.drawIndirectCount == VK_FALSE))) {
Shannon McPherson2c793ba2020-08-28 12:13:24 -06001468 skip |= LogError(commandBuffer, "VUID-vkCmdDrawIndexedIndirectCount-None-04445",
sfricke-samsung27c70722020-05-02 08:42:39 -07001469 "%s(): Starting in Vulkan 1.2 the VkPhysicalDeviceVulkan12Features::drawIndirectCount must be enabled to "
1470 "call this command.",
1471 apiName);
1472 }
AndreyVK_D3Db2753e12021-07-21 12:24:03 +03001473 skip |= ValidateCmdDrawStrideWithStruct(commandBuffer, "VUID-vkCmdDrawIndexedIndirectCount-stride-03142", stride,
1474 "VkDrawIndexedIndirectCommand", sizeof(VkDrawIndexedIndirectCommand));
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001475 auto buffer_state = Get<BUFFER_STATE>(buffer);
Lockee68ac652019-05-06 10:17:33 -06001476 if (maxDrawCount > 1) {
Mike Schuchardt65847d92019-12-20 13:50:47 -08001477 skip |= ValidateCmdDrawStrideWithBuffer(commandBuffer, "VUID-vkCmdDrawIndexedIndirectCount-maxDrawCount-03143", stride,
AndreyVK_D3Db2753e12021-07-21 12:24:03 +03001478 "VkDrawIndexedIndirectCommand", sizeof(VkDrawIndexedIndirectCommand), maxDrawCount,
Jeremy Gebben9f537102021-10-05 16:37:12 -06001479 offset, buffer_state.get());
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001480 }
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001481 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001482 skip |= ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_GRAPHICS, cmd_type);
1483 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::PreCallValidateCmdDrawIndexedIndirectCountKHR(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1490 VkBuffer countBuffer, VkDeviceSize countBufferOffset,
1491 uint32_t maxDrawCount, uint32_t stride) const {
sfricke-samsungf692b972020-05-02 08:00:45 -07001492 return ValidateCmdDrawIndexedIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride,
sfricke-samsung85584a72021-09-30 21:43:38 -07001493 CMD_DRAWINDEXEDINDIRECTCOUNTKHR);
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001494}
1495
1496bool CoreChecks::PreCallValidateCmdDrawIndexedIndirectCount(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1497 VkBuffer countBuffer, VkDeviceSize countBufferOffset,
1498 uint32_t maxDrawCount, uint32_t stride) const {
sfricke-samsungf692b972020-05-02 08:00:45 -07001499 return ValidateCmdDrawIndexedIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride,
sfricke-samsung85584a72021-09-30 21:43:38 -07001500 CMD_DRAWINDEXEDINDIRECTCOUNT);
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001501}
1502
locke-lunarg9a16ebb2020-07-30 16:56:33 -06001503bool CoreChecks::PreCallValidateCmdDrawIndirectByteCountEXT(VkCommandBuffer commandBuffer, uint32_t instanceCount,
1504 uint32_t firstInstance, VkBuffer counterBuffer,
1505 VkDeviceSize counterBufferOffset, uint32_t counterOffset,
1506 uint32_t vertexStride) const {
sfricke-samsungd5e9adb2020-10-26 03:59:29 -07001507 bool skip = false;
Tony-LunarG2c94ba82020-11-05 14:21:40 -07001508 if (!enabled_features.transform_feedback_features.transformFeedback) {
1509 skip |= LogError(commandBuffer, "VUID-vkCmdDrawIndirectByteCountEXT-transformFeedback-02287",
1510 "%s: transformFeedback feature is not enabled.", "vkCmdDrawIndirectByteCountEXT()");
1511 }
sfricke-samsung45996a42021-09-16 13:45:27 -07001512 if (IsExtEnabled(device_extensions.vk_ext_transform_feedback) &&
1513 !phys_dev_ext_props.transform_feedback_props.transformFeedbackDraw) {
sfricke-samsungba459bd2020-12-06 23:20:04 -08001514 skip |= LogError(commandBuffer, "VUID-vkCmdDrawIndirectByteCountEXT-transformFeedbackDraw-02288",
Tony-LunarG2c94ba82020-11-05 14:21:40 -07001515 "%s: VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackDraw is not supported",
1516 "vkCmdDrawIndirectByteCountEXT()");
1517 }
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001518 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001519 skip |= ValidateCmdDrawInstance(*cb_state, instanceCount, firstInstance, CMD_DRAWINDIRECTBYTECOUNTEXT);
1520 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWINDIRECTBYTECOUNTEXT);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001521 auto counter_buffer_state = Get<BUFFER_STATE>(counterBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001522 skip |= ValidateIndirectCmd(*cb_state, *counter_buffer_state, CMD_DRAWINDIRECTBYTECOUNTEXT);
sfricke-samsungd5e9adb2020-10-26 03:59:29 -07001523 return skip;
locke-lunarg9a16ebb2020-07-30 16:56:33 -06001524}
1525
Jeff Bolzf6e872c2019-10-22 12:17:28 -05001526bool CoreChecks::PreCallValidateCmdTraceRaysNV(VkCommandBuffer commandBuffer, VkBuffer raygenShaderBindingTableBuffer,
1527 VkDeviceSize raygenShaderBindingOffset, VkBuffer missShaderBindingTableBuffer,
1528 VkDeviceSize missShaderBindingOffset, VkDeviceSize missShaderBindingStride,
1529 VkBuffer hitShaderBindingTableBuffer, VkDeviceSize hitShaderBindingOffset,
1530 VkDeviceSize hitShaderBindingStride, VkBuffer callableShaderBindingTableBuffer,
1531 VkDeviceSize callableShaderBindingOffset, VkDeviceSize callableShaderBindingStride,
1532 uint32_t width, uint32_t height, uint32_t depth) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001533 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001534 bool skip = ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_RAY_TRACING_NV, CMD_TRACERAYSNV);
Jeremy Gebbenb20a8242021-11-05 15:14:43 -06001535 auto callable_shader_buffer_state = Get<BUFFER_STATE>(callableShaderBindingTableBuffer);
sourav parmard1521802020-06-07 21:49:02 -07001536 if (callable_shader_buffer_state && callableShaderBindingOffset >= callable_shader_buffer_state->createInfo.size) {
1537 skip |= LogError(commandBuffer, "VUID-vkCmdTraceRaysNV-callableShaderBindingOffset-02461",
1538 "vkCmdTraceRaysNV: callableShaderBindingOffset %" PRIu64
1539 " must be less than the size of callableShaderBindingTableBuffer %" PRIu64 " .",
1540 callableShaderBindingOffset, callable_shader_buffer_state->createInfo.size);
1541 }
Jeremy Gebbenb20a8242021-11-05 15:14:43 -06001542 auto hit_shader_buffer_state = Get<BUFFER_STATE>(hitShaderBindingTableBuffer);
sourav parmard1521802020-06-07 21:49:02 -07001543 if (hit_shader_buffer_state && hitShaderBindingOffset >= hit_shader_buffer_state->createInfo.size) {
1544 skip |= LogError(commandBuffer, "VUID-vkCmdTraceRaysNV-hitShaderBindingOffset-02459",
1545 "vkCmdTraceRaysNV: hitShaderBindingOffset %" PRIu64
1546 " must be less than the size of hitShaderBindingTableBuffer %" PRIu64 " .",
1547 hitShaderBindingOffset, hit_shader_buffer_state->createInfo.size);
1548 }
Jeremy Gebbenb20a8242021-11-05 15:14:43 -06001549 auto miss_shader_buffer_state = Get<BUFFER_STATE>(missShaderBindingTableBuffer);
sourav parmard1521802020-06-07 21:49:02 -07001550 if (miss_shader_buffer_state && missShaderBindingOffset >= miss_shader_buffer_state->createInfo.size) {
1551 skip |= LogError(commandBuffer, "VUID-vkCmdTraceRaysNV-missShaderBindingOffset-02457",
1552 "vkCmdTraceRaysNV: missShaderBindingOffset %" PRIu64
baldurk751594b2020-09-09 09:41:02 +01001553 " must be less than the size of missShaderBindingTableBuffer %" PRIu64 " .",
sourav parmard1521802020-06-07 21:49:02 -07001554 missShaderBindingOffset, miss_shader_buffer_state->createInfo.size);
1555 }
Jeremy Gebbenb20a8242021-11-05 15:14:43 -06001556 auto raygen_shader_buffer_state = Get<BUFFER_STATE>(raygenShaderBindingTableBuffer);
sourav parmard1521802020-06-07 21:49:02 -07001557 if (raygenShaderBindingOffset >= raygen_shader_buffer_state->createInfo.size) {
1558 skip |= LogError(commandBuffer, "VUID-vkCmdTraceRaysNV-raygenShaderBindingOffset-02455",
1559 "vkCmdTraceRaysNV: raygenShaderBindingOffset %" PRIu64
baldurk751594b2020-09-09 09:41:02 +01001560 " must be less than the size of raygenShaderBindingTableBuffer %" PRIu64 " .",
sourav parmard1521802020-06-07 21:49:02 -07001561 raygenShaderBindingOffset, raygen_shader_buffer_state->createInfo.size);
1562 }
sourav parmarcd5fb182020-07-17 12:58:44 -07001563
sourav parmar30e19392020-12-02 16:57:21 -08001564 const auto lv_bind_point = ConvertToLvlBindPoint(VK_PIPELINE_BIND_POINT_RAY_TRACING_NV);
1565 const PIPELINE_STATE *pipeline_state = cb_state->lastBound[lv_bind_point].pipeline_state;
Jeremy Gebben14b0d1a2021-05-15 20:15:41 -06001566 if (!pipeline_state || (pipeline_state && !pipeline_state->pipeline())) {
sourav parmar30e19392020-12-02 16:57:21 -08001567 skip |= LogError(device, "VUID-vkCmdTraceRaysNV-None-02700",
1568 "vkCmdTraceRaysKHR: A valid pipeline must be bound to the pipeline bind point used by this command.");
sourav parmarcd5fb182020-07-17 12:58:44 -07001569 }
Jeff Bolzf6e872c2019-10-22 12:17:28 -05001570 return skip;
1571}
1572
Jeff Bolz443c2ca2020-03-19 12:11:51 -05001573bool CoreChecks::PreCallValidateCmdTraceRaysKHR(VkCommandBuffer commandBuffer,
sourav parmarcd5fb182020-07-17 12:58:44 -07001574 const VkStridedDeviceAddressRegionKHR *pRaygenShaderBindingTable,
1575 const VkStridedDeviceAddressRegionKHR *pMissShaderBindingTable,
1576 const VkStridedDeviceAddressRegionKHR *pHitShaderBindingTable,
1577 const VkStridedDeviceAddressRegionKHR *pCallableShaderBindingTable, uint32_t width,
Jeff Bolz443c2ca2020-03-19 12:11:51 -05001578 uint32_t height, uint32_t depth) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001579 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001580 bool skip = ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, CMD_TRACERAYSKHR);
Shannon McPherson9caca052020-11-25 11:34:38 -07001581 const auto lv_bind_point = ConvertToLvlBindPoint(VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR);
1582 const PIPELINE_STATE *pipeline_state = cb_state->lastBound[lv_bind_point].pipeline_state;
Jeremy Gebben14b0d1a2021-05-15 20:15:41 -06001583 if (!pipeline_state || (pipeline_state && !pipeline_state->pipeline())) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001584 skip |= LogError(device, "VUID-vkCmdTraceRaysKHR-None-02700",
1585 "vkCmdTraceRaysKHR: A valid pipeline must be bound to the pipeline bind point used by this command.");
1586 } else { // bound to valid RT pipeline
Jeremy Gebben11af9792021-08-20 10:20:09 -06001587 if (pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001588 if (!pHitShaderBindingTable->deviceAddress) {
1589 skip |= LogError(device, "VUID-vkCmdTraceRaysKHR-flags-03697",
1590 "vkCmdTraceRaysKHR: If the currently bound ray tracing pipeline was created with flags "
1591 "that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, the "
1592 "deviceAddress member of pHitShaderBindingTable must not be zero.");
1593 }
1594 if (!pHitShaderBindingTable || pHitShaderBindingTable->size == 0 || pHitShaderBindingTable->stride == 0) {
1595 skip |= LogError(device, "VUID-vkCmdTraceRaysKHR-flags-03514",
1596 "vkCmdTraceRaysKHR: If the currently bound ray tracing pipeline was created with "
1597 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, "
1598 "entries in pHitShaderBindingTable accessed as a result of this command in order to "
1599 "execute an intersection shader must not be set to zero.");
1600 }
1601 }
Jeremy Gebben11af9792021-08-20 10:20:09 -06001602 if (pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001603 if (!pHitShaderBindingTable->deviceAddress) {
1604 skip |= LogError(device, "VUID-vkCmdTraceRaysKHR-flags-03696",
1605 "vkCmdTraceRaysKHR: If the currently bound ray tracing pipeline was created with flags "
1606 "that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, the "
1607 "deviceAddress member of pHitShaderBindingTable must not be zero.");
1608 }
1609 if (!pHitShaderBindingTable || pHitShaderBindingTable->size == 0 || pHitShaderBindingTable->stride == 0) {
1610 skip |= LogError(device, "VUID-vkCmdTraceRaysKHR-flags-03513",
1611 "vkCmdTraceRaysKHR: If the currently bound ray tracing pipeline was created with "
1612 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, "
1613 "entries in pHitShaderBindingTable accessed as a result of this command in order to "
1614 "execute a closest hit shader must not be set to zero.");
1615 }
1616 }
Jeremy Gebben11af9792021-08-20 10:20:09 -06001617 if (pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001618 if (!pHitShaderBindingTable || pHitShaderBindingTable->size == 0 || pHitShaderBindingTable->stride == 0) {
1619 skip |= LogError(device, "VUID-vkCmdTraceRaysKHR-flags-03512",
1620 "vkCmdTraceRaysKHR: If the currently bound ray tracing pipeline was created with "
1621 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR, "
1622 "entries in pHitShaderBindingTable accessed as a result of this command in order to "
1623 "execute an any hit shader must not be set to zero.");
1624 }
1625 }
1626 }
Jeff Bolz443c2ca2020-03-19 12:11:51 -05001627 return skip;
1628}
1629
Jeff Bolz443c2ca2020-03-19 12:11:51 -05001630bool CoreChecks::PreCallValidateCmdTraceRaysIndirectKHR(VkCommandBuffer commandBuffer,
sourav parmarcd5fb182020-07-17 12:58:44 -07001631 const VkStridedDeviceAddressRegionKHR *pRaygenShaderBindingTable,
1632 const VkStridedDeviceAddressRegionKHR *pMissShaderBindingTable,
1633 const VkStridedDeviceAddressRegionKHR *pHitShaderBindingTable,
1634 const VkStridedDeviceAddressRegionKHR *pCallableShaderBindingTable,
1635 VkDeviceAddress indirectDeviceAddress) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001636 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001637 bool skip = ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, CMD_TRACERAYSINDIRECTKHR);
Shannon McPherson9caca052020-11-25 11:34:38 -07001638 const auto lv_bind_point = ConvertToLvlBindPoint(VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR);
Jeremy Gebbenb20a8242021-11-05 15:14:43 -06001639 const auto *pipeline_state = cb_state->lastBound[lv_bind_point].pipeline_state;
Jeremy Gebben14b0d1a2021-05-15 20:15:41 -06001640 if (!pipeline_state || (pipeline_state && !pipeline_state->pipeline())) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001641 skip |=
1642 LogError(device, "VUID-vkCmdTraceRaysIndirectKHR-None-02700",
1643 "vkCmdTraceRaysIndirectKHR: A valid pipeline must be bound to the pipeline bind point used by this command.");
1644 } else { // valid bind point
Jeremy Gebben11af9792021-08-20 10:20:09 -06001645 if (pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001646 if (!pHitShaderBindingTable || pHitShaderBindingTable->deviceAddress == 0) {
1647 skip |= LogError(device, "VUID-vkCmdTraceRaysIndirectKHR-flags-03697",
1648 "vkCmdTraceRaysIndirectKHR: If the currently bound ray tracing pipeline was created with "
1649 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, the "
1650 "deviceAddress member of pHitShaderBindingTable must not be zero.");
1651 }
1652 if (!pHitShaderBindingTable || pHitShaderBindingTable->size == 0 || pHitShaderBindingTable->stride == 0) {
1653 skip |= LogError(device, "VUID-vkCmdTraceRaysIndirectKHR-flags-03514",
1654 "vkCmdTraceRaysIndirectKHR: If the currently bound ray tracing pipeline was created with "
1655 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, "
1656 "entries in pHitShaderBindingTable accessed as a result of this command in order to "
1657 "execute an intersection shader must not be set to zero.");
1658 }
1659 }
Jeremy Gebben11af9792021-08-20 10:20:09 -06001660 if (pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001661 if (!pHitShaderBindingTable || pHitShaderBindingTable->deviceAddress == 0) {
1662 skip |= LogError(device, "VUID-vkCmdTraceRaysIndirectKHR-flags-03696",
1663 "vkCmdTraceRaysIndirectKHR:If the currently bound ray tracing pipeline was created with "
1664 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, "
1665 "the deviceAddress member of pHitShaderBindingTable must not be zero.");
1666 }
1667 if (!pHitShaderBindingTable || pHitShaderBindingTable->size == 0 || pHitShaderBindingTable->stride == 0) {
1668 skip |= LogError(device, "VUID-vkCmdTraceRaysIndirectKHR-flags-03513",
1669 "vkCmdTraceRaysIndirectKHR: If the currently bound ray tracing pipeline was created with "
1670 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, "
1671 "entries in pHitShaderBindingTable accessed as a result of this command in order to "
1672 "execute a closest hit shader must not be set to zero.");
1673 }
1674 }
Jeremy Gebben11af9792021-08-20 10:20:09 -06001675 if (pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001676 if (!pHitShaderBindingTable || pHitShaderBindingTable->size == 0 || pHitShaderBindingTable->stride == 0) {
1677 skip |= LogError(device, "VUID-vkCmdTraceRaysIndirectKHR-flags-03512",
1678 "vkCmdTraceRaysIndirectKHR: If the currently bound ray tracing pipeline was created with "
1679 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR, "
1680 "entries in pHitShaderBindingTable accessed as a result of this command in order to "
1681 "execute an any hit shader must not be set to zero.");
1682 }
1683 }
1684 }
Jeff Bolz443c2ca2020-03-19 12:11:51 -05001685 return skip;
1686}
1687
sfricke-samsungf91881c2022-03-31 01:12:00 -05001688bool CoreChecks::PreCallValidateCmdTraceRaysIndirect2KHR(VkCommandBuffer commandBuffer,
1689 VkDeviceAddress indirectDeviceAddress) const {
1690 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
1691 bool skip = ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, CMD_TRACERAYSINDIRECTKHR);
1692 return skip;
1693}
1694
Jeff Bolz5c801d12019-10-09 10:38:45 -05001695bool CoreChecks::PreCallValidateCmdDrawMeshTasksNV(VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001696 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001697 bool skip = ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWMESHTASKSNV);
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001698 return skip;
1699}
1700
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001701bool CoreChecks::PreCallValidateCmdDrawMeshTasksIndirectNV(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
Jeff Bolz5c801d12019-10-09 10:38:45 -05001702 uint32_t drawCount, uint32_t stride) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001703 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001704 bool skip = ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWMESHTASKSINDIRECTNV);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001705 auto buffer_state = Get<BUFFER_STATE>(buffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001706 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, CMD_DRAWMESHTASKSINDIRECTNV);
Lockee68ac652019-05-06 10:17:33 -06001707 if (drawCount > 1) {
Lockee68ac652019-05-06 10:17:33 -06001708 skip |= ValidateCmdDrawStrideWithBuffer(commandBuffer, "VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02157", stride,
1709 "VkDrawMeshTasksIndirectCommandNV", sizeof(VkDrawMeshTasksIndirectCommandNV),
Jeremy Gebben9f537102021-10-05 16:37:12 -06001710 drawCount, offset, buffer_state.get());
Lockee68ac652019-05-06 10:17:33 -06001711 }
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001712 return skip;
1713}
1714
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001715bool CoreChecks::PreCallValidateCmdDrawMeshTasksIndirectCountNV(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1716 VkBuffer countBuffer, VkDeviceSize countBufferOffset,
Jeff Bolz5c801d12019-10-09 10:38:45 -05001717 uint32_t maxDrawCount, uint32_t stride) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001718 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001719 bool skip = ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWMESHTASKSINDIRECTCOUNTNV);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001720 auto buffer_state = Get<BUFFER_STATE>(buffer);
1721 auto count_buffer_state = Get<BUFFER_STATE>(countBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001722 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, CMD_DRAWMESHTASKSINDIRECTCOUNTNV);
sjfricke177bbb62022-06-02 17:37:03 +09001723 skip |= ValidateIndirectCountCmd(*count_buffer_state, countBufferOffset, CMD_DRAWMESHTASKSINDIRECTCOUNTNV);
Lockee68ac652019-05-06 10:17:33 -06001724 skip |= ValidateCmdDrawStrideWithStruct(commandBuffer, "VUID-vkCmdDrawMeshTasksIndirectCountNV-stride-02182", stride,
1725 "VkDrawMeshTasksIndirectCommandNV", sizeof(VkDrawMeshTasksIndirectCommandNV));
1726 if (maxDrawCount > 1) {
1727 skip |= ValidateCmdDrawStrideWithBuffer(commandBuffer, "VUID-vkCmdDrawMeshTasksIndirectCountNV-maxDrawCount-02183", stride,
1728 "VkDrawMeshTasksIndirectCommandNV", sizeof(VkDrawMeshTasksIndirectCommandNV),
Jeremy Gebben9f537102021-10-05 16:37:12 -06001729 maxDrawCount, offset, buffer_state.get());
Lockee68ac652019-05-06 10:17:33 -06001730 }
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001731 return skip;
1732}