blob: 23398e065e47574c2a7b7c8a8cbd0d46a387ce9f [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";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -070076 unprotected_command_buffer = "VUID-vkCmdDraw-commandBuffer-02707";
77 protected_command_buffer = "VUID-vkCmdDraw-commandBuffer-02712";
78 max_multiview_instance_index = "VUID-vkCmdDraw-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -070079 img_filter_cubic = "VUID-vkCmdDraw-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -070080 filter_cubic = "VUID-vkCmdDraw-filterCubic-02694";
81 filter_cubic_min_max = "VUID-vkCmdDraw-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +000082 viewport_count_primitive_shading_rate = "VUID-vkCmdDraw-primitiveFragmentShadingRateWithMultipleViewports-04552";
Vikram Kushwahaa57b0c32021-04-19 12:21:46 -070083 patch_control_points = "VUID-vkCmdDraw-None-04875";
84 rasterizer_discard_enable = "VUID-vkCmdDraw-None-04876";
85 depth_bias_enable = "VUID-vkCmdDraw-None-04877";
86 logic_op = "VUID-vkCmdDraw-logicOp-04878";
87 primitive_restart_enable = "VUID-vkCmdDraw-None-04879";
Piers Daniell924cd832021-05-18 13:48:47 -060088 vertex_input_binding_stride = "VUID-vkCmdDraw-pStrides-04884";
89 vertex_input = kVUID_Core_CmdDraw_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +020090 blend_enable = "VUID-vkCmdDraw-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +010091 color_write_enable = "VUID-vkCmdDraw-attachmentCount-06667";
Aaron Hagan92a44f82021-11-19 09:34:56 -050092 dynamic_rendering_view_mask = "VUID-vkCmdDraw-viewMask-06178";
93 dynamic_rendering_color_count = "VUID-vkCmdDraw-colorAttachmentCount-06179";
94 dynamic_rendering_color_formats = "VUID-vkCmdDraw-colorAttachmentCount-06180";
95 dynamic_rendering_depth_format = "VUID-vkCmdDraw-pDepthAttachment-06181";
96 dynamic_rendering_stencil_format = "VUID-vkCmdDraw-pStencilAttachment-06182";
97 dynamic_rendering_fsr = "VUID-vkCmdDraw-imageView-06183";
98 dynamic_rendering_fdm = "VUID-vkCmdDraw-imageView-06184";
Aaron Hagan09a0e172021-11-19 21:18:33 -050099 dynamic_rendering_color_sample = "VUID-vkCmdDraw-colorAttachmentCount-06185";
100 dynamic_rendering_depth_sample = "VUID-vkCmdDraw-pDepthAttachment-06186";
101 dynamic_rendering_stencil_sample = "VUID-vkCmdDraw-pStencilAttachment-06187";
102 dynamic_rendering_multi_sample = "VUID-vkCmdDraw-colorAttachmentCount-06188";
Aaron Haganaca50442021-12-07 22:26:29 -0500103 dynamic_rendering_06189 = "VUID-vkCmdDraw-pDepthAttachment-06189";
104 dynamic_rendering_06190 = "VUID-vkCmdDraw-pStencilAttachment-06190";
105 dynamic_rendering_06198 = "VUID-vkCmdDraw-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200106 storage_image_read_without_format = "VUID-vkCmdDraw-OpTypeImage-06424";
107 storage_image_write_without_format = "VUID-vkCmdDraw-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200108 depth_compare_sample = "VUID-vkCmdDraw-None-06479";
ziga-lunarg50188622022-03-26 01:18:32 +0100109 dynamic_sample_locations = "VUID-vkCmdDraw-None-06666";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700110 }
111};
112
Tony-LunarG4490de42021-06-21 15:49:19 -0600113struct DispatchVuidsCmdDrawMultiEXT : DrawDispatchVuid {
114 DispatchVuidsCmdDrawMultiEXT() : DrawDispatchVuid() {
115 pipeline_bound = "VUID-vkCmdDrawMultiEXT-None-02700";
116 dynamic_state = "VUID-vkCmdDrawMultiEXT-commandBuffer-02701";
117 vertex_binding = "VUID-vkCmdDrawMultiEXT-None-04007";
118 vertex_binding_null = "VUID-vkCmdDrawMultiEXT-None-04008";
119 compatible_pipeline = "VUID-vkCmdDrawMultiEXT-None-02697";
120 render_pass_compatible = "VUID-vkCmdDrawMultiEXT-renderPass-02684";
121 subpass_index = "VUID-vkCmdDrawMultiEXT-subpass-02685";
122 sample_location = "VUID-vkCmdDrawMultiEXT-sampleLocationsEnable-02689";
123 linear_sampler = "VUID-vkCmdDrawMultiEXT-magFilter-04553";
124 cubic_sampler = "VUID-vkCmdDrawMultiEXT-None-02692";
125 viewport_count = "VUID-vkCmdDrawMultiEXT-viewportCount-03417";
126 scissor_count = "VUID-vkCmdDrawMultiEXT-scissorCount-03418";
127 viewport_scissor_count = "VUID-vkCmdDrawMultiEXT-viewportCount-03419";
128 primitive_topology = "VUID-vkCmdDrawMultiEXT-primitiveTopology-03420";
129 corner_sampled_address_mode = "VUID-vkCmdDrawMultiEXT-flags-02696";
130 subpass_input = "VUID-vkCmdDrawMultiEXT-None-02686";
131 imageview_atomic = "VUID-vkCmdDrawMultiEXT-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700132 push_constants_set = "VUID-vkCmdDrawMultiEXT-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100133 image_subresources_render_pass_write = "VUID-vkCmdDrawMultiEXT-None-06537";
134 image_subresources_subpass_read = "VUID-vkCmdDrawMultiEXT-None-06538";
135 image_subresources_subpass_write = "VUID-vkCmdDrawMultiEXT-None-06539";
Tony-LunarG4490de42021-06-21 15:49:19 -0600136 descriptor_valid = "VUID-vkCmdDrawMultiEXT-None-02699";
137 sampler_imageview_type = "VUID-vkCmdDrawMultiEXT-None-02702";
138 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawMultiEXT-None-02703";
139 sampler_bias_offset = "VUID-vkCmdDrawMultiEXT-None-02704";
140 vertex_binding_attribute = "VUID-vkCmdDrawMultiEXT-None-02721";
141 dynamic_state_setting_commands = "VUID-vkCmdDrawMultiEXT-None-02859";
142 rasterization_samples = "VUID-vkCmdDrawMultiEXT-rasterizationSamples-04740";
143 unprotected_command_buffer = "VUID-vkCmdDrawMultiEXT-commandBuffer-02707";
144 protected_command_buffer = "VUID-vkCmdDrawMultiEXT-commandBuffer-02712";
145 max_multiview_instance_index = "VUID-vkCmdDrawMultiEXT-maxMultiviewInstanceIndex-02688";
146 img_filter_cubic = "VUID-vkCmdDrawMultiEXT-None-02693";
147 filter_cubic = "VUID-vkCmdDrawMultiEXT-filterCubic-02694";
148 filter_cubic_min_max = "VUID-vkCmdDrawMultiEXT-filterCubicMinmax-02695";
149 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawMultiEXT-primitiveFragmentShadingRateWithMultipleViewports-04552";
150 patch_control_points = "VUID-vkCmdDrawMultiEXT-None-04875";
151 rasterizer_discard_enable = "VUID-vkCmdDrawMultiEXT-None-04876";
152 depth_bias_enable = "VUID-vkCmdDrawMultiEXT-None-04877";
153 logic_op = "VUID-vkCmdDrawMultiEXT-logicOp-04878";
154 primitive_restart_enable = "VUID-vkCmdDrawMultiEXT-None-04879";
155 vertex_input_binding_stride = "VUID-vkCmdDrawMultiEXT-pStrides-04884";
156 vertex_input = kVUID_Core_CmdDrawMultiEXT_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200157 blend_enable = "VUID-vkCmdDrawMultiEXT-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100158 color_write_enable = "VUID-vkCmdDrawMultiEXT-attachmentCount-06667";
Aaron Hagan92a44f82021-11-19 09:34:56 -0500159 dynamic_rendering_view_mask = "VUID-vkCmdDrawMultiEXT-viewMask-06178";
160 dynamic_rendering_color_count = "VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06179";
161 dynamic_rendering_color_formats = "VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06180";
162 dynamic_rendering_depth_format = "VUID-vkCmdDrawMultiEXT-pDepthAttachment-06181";
163 dynamic_rendering_stencil_format = "VUID-vkCmdDrawMultiEXT-pStencilAttachment-06182";
164 dynamic_rendering_fsr = "VUID-vkCmdDrawMultiEXT-imageView-06183";
165 dynamic_rendering_fdm = "VUID-vkCmdDrawMultiEXT-imageView-06184";
Aaron Hagan09a0e172021-11-19 21:18:33 -0500166 dynamic_rendering_color_sample = "VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06185";
167 dynamic_rendering_depth_sample = "VUID-vkCmdDrawMultiEXT-pDepthAttachment-06186";
168 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawMultiEXT-pStencilAttachment-06187";
169 dynamic_rendering_multi_sample = "VUID-vkCmdDrawMultiEXT-colorAttachmentCount-06188";
Aaron Haganaca50442021-12-07 22:26:29 -0500170 dynamic_rendering_06189 = "VUID-vkCmdDrawMultiEXT-pDepthAttachment-06189";
171 dynamic_rendering_06190 = "VUID-vkCmdDrawMultiEXT-pStencilAttachment-06190";
172 dynamic_rendering_06198 = "VUID-vkCmdDrawMultiEXT-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200173 storage_image_read_without_format = "VUID-vkCmdDrawMultiEXT-OpTypeImage-06424";
174 storage_image_write_without_format = "VUID-vkCmdDrawMultiEXT-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200175 depth_compare_sample = "VUID-vkCmdDrawMultiEXT-None-06479";
ziga-lunarg50188622022-03-26 01:18:32 +0100176 dynamic_sample_locations = "VUID-vkCmdDrawMultiEXT-None-06666";
Tony-LunarG4490de42021-06-21 15:49:19 -0600177 }
178};
179
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700180struct DispatchVuidsCmdDrawIndexed : DrawDispatchVuid {
181 DispatchVuidsCmdDrawIndexed() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700182 pipeline_bound = "VUID-vkCmdDrawIndexed-None-02700";
183 dynamic_state = "VUID-vkCmdDrawIndexed-commandBuffer-02701";
184 vertex_binding = "VUID-vkCmdDrawIndexed-None-04007";
185 vertex_binding_null = "VUID-vkCmdDrawIndexed-None-04008";
186 compatible_pipeline = "VUID-vkCmdDrawIndexed-None-02697";
187 render_pass_compatible = "VUID-vkCmdDrawIndexed-renderPass-02684";
188 subpass_index = "VUID-vkCmdDrawIndexed-subpass-02685";
189 sample_location = "VUID-vkCmdDrawIndexed-sampleLocationsEnable-02689";
190 linear_sampler = "VUID-vkCmdDrawIndexed-magFilter-04553";
191 cubic_sampler = "VUID-vkCmdDrawIndexed-None-02692";
192 viewport_count = "VUID-vkCmdDrawIndexed-viewportCount-03417";
193 scissor_count = "VUID-vkCmdDrawIndexed-scissorCount-03418";
194 viewport_scissor_count = "VUID-vkCmdDrawIndexed-viewportCount-03419";
195 primitive_topology = "VUID-vkCmdDrawIndexed-primitiveTopology-03420";
196 corner_sampled_address_mode = "VUID-vkCmdDrawIndexed-flags-02696";
197 subpass_input = "VUID-vkCmdDrawIndexed-None-02686";
198 imageview_atomic = "VUID-vkCmdDrawIndexed-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700199 push_constants_set = "VUID-vkCmdDrawIndexed-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100200 image_subresources_render_pass_write = "VUID-vkCmdDrawIndexed-None-06537";
201 image_subresources_subpass_read = "VUID-vkCmdDrawIndexed-None-06538";
202 image_subresources_subpass_write = "VUID-vkCmdDrawIndexed-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700203 descriptor_valid = "VUID-vkCmdDrawIndexed-None-02699";
204 sampler_imageview_type = "VUID-vkCmdDrawIndexed-None-02702";
205 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawIndexed-None-02703";
206 sampler_bias_offset = "VUID-vkCmdDrawIndexed-None-02704";
207 vertex_binding_attribute = "VUID-vkCmdDrawIndexed-None-02721";
208 dynamic_state_setting_commands = "VUID-vkCmdDrawIndexed-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700209 rasterization_samples = "VUID-vkCmdDrawIndexed-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700210 unprotected_command_buffer = "VUID-vkCmdDrawIndexed-commandBuffer-02707";
211 protected_command_buffer = "VUID-vkCmdDrawIndexed-commandBuffer-02712";
212 max_multiview_instance_index = "VUID-vkCmdDrawIndexed-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700213 img_filter_cubic = "VUID-vkCmdDrawIndexed-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700214 filter_cubic = "VUID-vkCmdDrawIndexed-filterCubic-02694";
215 filter_cubic_min_max = "VUID-vkCmdDrawIndexed-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000216 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawIndexed-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600217 patch_control_points = "VUID-vkCmdDrawIndexed-None-04875";
218 rasterizer_discard_enable = "VUID-vkCmdDrawIndexed-None-04876";
219 depth_bias_enable = "VUID-vkCmdDrawIndexed-None-04877";
220 logic_op = "VUID-vkCmdDrawIndexed-logicOp-04878";
221 primitive_restart_enable = "VUID-vkCmdDrawIndexed-None-04879";
222 vertex_input_binding_stride = "VUID-vkCmdDrawIndexed-pStrides-04884";
223 vertex_input = kVUID_Core_CmdDrawIndexed_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200224 blend_enable = "VUID-vkCmdDrawIndexed-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100225 color_write_enable = "VUID-vkCmdDrawIndexed-attachmentCount-06667";
Aaron Hagan92a44f82021-11-19 09:34:56 -0500226 dynamic_rendering_view_mask = "VUID-vkCmdDrawIndexed-viewMask-06178";
227 dynamic_rendering_color_count = "VUID-vkCmdDrawIndexed-colorAttachmentCount-06179";
228 dynamic_rendering_color_formats = "VUID-vkCmdDrawIndexed-colorAttachmentCount-06180";
229 dynamic_rendering_depth_format = "VUID-vkCmdDrawIndexed-pDepthAttachment-06181";
230 dynamic_rendering_stencil_format = "VUID-vkCmdDrawIndexed-pStencilAttachment-06182";
231 dynamic_rendering_fsr = "VUID-vkCmdDrawIndexed-imageView-06183";
232 dynamic_rendering_fdm = "VUID-vkCmdDrawIndexed-imageView-06184";
Aaron Hagan09a0e172021-11-19 21:18:33 -0500233 dynamic_rendering_color_sample = "VUID-vkCmdDrawIndexed-colorAttachmentCount-06185";
234 dynamic_rendering_depth_sample = "VUID-vkCmdDrawIndexed-pDepthAttachment-06186";
235 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawIndexed-pStencilAttachment-06187";
236 dynamic_rendering_multi_sample = "VUID-vkCmdDrawIndexed-colorAttachmentCount-06188";
Aaron Haganaca50442021-12-07 22:26:29 -0500237 dynamic_rendering_06189 = "VUID-vkCmdDrawIndexed-pDepthAttachment-06189";
238 dynamic_rendering_06190 = "VUID-vkCmdDrawIndexed-pStencilAttachment-06190";
239 dynamic_rendering_06198 = "VUID-vkCmdDrawIndexed-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200240 storage_image_read_without_format = "VUID-vkCmdDrawIndexed-OpTypeImage-06424";
241 storage_image_write_without_format = "VUID-vkCmdDrawIndexed-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200242 depth_compare_sample = "VUID-vkCmdDrawIndexed-None-06479";
ziga-lunarg50188622022-03-26 01:18:32 +0100243 dynamic_sample_locations = "VUID-vkCmdDrawIndexed-None-06666";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700244 }
245};
246
Tony-LunarG4490de42021-06-21 15:49:19 -0600247struct DispatchVuidsCmdDrawMultiIndexedEXT : DrawDispatchVuid {
248 DispatchVuidsCmdDrawMultiIndexedEXT() : DrawDispatchVuid() {
Lionel Landwerlin45e981c2021-12-07 15:29:40 +0200249 pipeline_bound = "VUID-vkCmdDrawMultiIndexedEXT-None-02700";
250 dynamic_state = "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02701";
251 vertex_binding = "VUID-vkCmdDrawMultiIndexedEXT-None-04007";
252 vertex_binding_null = "VUID-vkCmdDrawMultiIndexedEXT-None-04008";
253 compatible_pipeline = "VUID-vkCmdDrawMultiIndexedEXT-None-02697";
254 render_pass_compatible = "VUID-vkCmdDrawMultiIndexedEXT-renderPass-02684";
255 subpass_index = "VUID-vkCmdDrawMultiIndexedEXT-subpass-02685";
256 sample_location = "VUID-vkCmdDrawMultiIndexedEXT-sampleLocationsEnable-02689";
257 linear_sampler = "VUID-vkCmdDrawMultiIndexedEXT-magFilter-04553";
258 cubic_sampler = "VUID-vkCmdDrawMultiIndexedEXT-None-02692";
259 viewport_count = "VUID-vkCmdDrawMultiIndexedEXT-viewportCount-03417";
260 scissor_count = "VUID-vkCmdDrawMultiIndexedEXT-scissorCount-03418";
261 viewport_scissor_count = "VUID-vkCmdDrawMultiIndexedEXT-viewportCount-03419";
262 primitive_topology = "VUID-vkCmdDrawMultiIndexedEXT-primitiveTopology-03420";
263 corner_sampled_address_mode = "VUID-vkCmdDrawMultiIndexedEXT-flags-02696";
264 subpass_input = "VUID-vkCmdDrawMultiIndexedEXT-None-02686";
265 imageview_atomic = "VUID-vkCmdDrawMultiIndexedEXT-None-02691";
266 push_constants_set = "VUID-vkCmdDrawMultiIndexedEXT-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100267 image_subresources_render_pass_write = "VUID-vkCmdDrawMultiIndexedEXT-None-06537";
268 image_subresources_subpass_read = "VUID-vkCmdDrawMultiIndexedEXT-None-06538";
269 image_subresources_subpass_write = "VUID-vkCmdDrawMultiIndexedEXT-None-06539";
Lionel Landwerlin45e981c2021-12-07 15:29:40 +0200270 descriptor_valid = "VUID-vkCmdDrawMultiIndexedEXT-None-02699";
271 sampler_imageview_type = "VUID-vkCmdDrawMultiIndexedEXT-None-02702";
272 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawMultiIndexedEXT-None-02703";
273 sampler_bias_offset = "VUID-vkCmdDrawMultiIndexedEXT-None-02704";
274 vertex_binding_attribute = "VUID-vkCmdDrawMultiIndexedEXT-None-02721";
275 dynamic_state_setting_commands = "VUID-vkCmdDrawMultiIndexedEXT-None-02859";
276 rasterization_samples = "VUID-vkCmdDrawMultiIndexedEXT-rasterizationSamples-04740";
277 unprotected_command_buffer = "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02707";
278 protected_command_buffer = "VUID-vkCmdDrawMultiIndexedEXT-commandBuffer-02712";
279 max_multiview_instance_index = "VUID-vkCmdDrawMultiIndexedEXT-maxMultiviewInstanceIndex-02688";
280 img_filter_cubic = "VUID-vkCmdDrawMultiIndexedEXT-None-02693";
281 filter_cubic = "VUID-vkCmdDrawMultiIndexedEXT-filterCubic-02694";
282 filter_cubic_min_max = "VUID-vkCmdDrawMultiIndexedEXT-filterCubicMinmax-02695";
Tony-LunarG4490de42021-06-21 15:49:19 -0600283 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawMultiIndexedEXT-primitiveFragmentShadingRateWithMultipleViewports-04552";
Lionel Landwerlin45e981c2021-12-07 15:29:40 +0200284 patch_control_points = "VUID-vkCmdDrawMultiIndexedEXT-None-04875";
285 rasterizer_discard_enable = "VUID-vkCmdDrawMultiIndexedEXT-None-04876";
286 depth_bias_enable = "VUID-vkCmdDrawMultiIndexedEXT-None-04877";
287 logic_op = "VUID-vkCmdDrawMultiIndexedEXT-logicOp-04878";
288 primitive_restart_enable = "VUID-vkCmdDrawMultiIndexedEXT-None-04879";
289 vertex_input_binding_stride = "VUID-vkCmdDrawMultiIndexedEXT-pStrides-04884";
290 vertex_input = kVUID_Core_CmdDrawMultiIndexedEXT_VertexInput;
291 blend_enable = "VUID-vkCmdDrawMultiIndexedEXT-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100292 color_write_enable = "VUID-vkCmdDrawMultiIndexedEXT-attachmentCount-06667";
Lionel Landwerlin45e981c2021-12-07 15:29:40 +0200293 dynamic_rendering_view_mask = "VUID-vkCmdDrawMultiIndexedEXT-viewMask-06178";
294 dynamic_rendering_color_count = "VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06179";
295 dynamic_rendering_color_formats = "VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06180";
296 dynamic_rendering_depth_format = "VUID-vkCmdDrawMultiIndexedEXT-pDepthAttachment-06181";
297 dynamic_rendering_stencil_format = "VUID-vkCmdDrawMultiIndexedEXT-pStencilAttachment-06182";
298 dynamic_rendering_fsr = "VUID-vkCmdDrawMultiIndexedEXT-imageView-06183";
299 dynamic_rendering_fdm = "VUID-vkCmdDrawMultiIndexedEXT-imageView-06184";
300 dynamic_rendering_color_sample = "VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06185";
301 dynamic_rendering_depth_sample = "VUID-vkCmdDrawMultiIndexedEXT-pDepthAttachment-06186";
302 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawMultiIndexedEXT-pStencilAttachment-06187";
303 dynamic_rendering_multi_sample = "VUID-vkCmdDrawMultiIndexedEXT-colorAttachmentCount-06188";
304 dynamic_rendering_06189 = "VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-06189";
305 dynamic_rendering_06190 = "VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-06190";
306 dynamic_rendering_06198 = "VUID-vkCmdDrawIndexedIndirect-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200307 storage_image_read_without_format = "VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-06424";
308 storage_image_write_without_format = "VUID-vkCmdDrawMultiIndexedEXT-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200309 depth_compare_sample = "VUID-vkCmdDrawMultiIndexedEXT-None-06479";
ziga-lunarg50188622022-03-26 01:18:32 +0100310 dynamic_sample_locations = "VUID-vkCmdDrawMultiIndexedEXT-None-06666";
Tony-LunarG4490de42021-06-21 15:49:19 -0600311 }
312};
313
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700314struct DispatchVuidsCmdDrawIndirect : DrawDispatchVuid {
315 DispatchVuidsCmdDrawIndirect() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700316 pipeline_bound = "VUID-vkCmdDrawIndirect-None-02700";
317 dynamic_state = "VUID-vkCmdDrawIndirect-commandBuffer-02701";
318 vertex_binding = "VUID-vkCmdDrawIndirect-None-04007";
319 vertex_binding_null = "VUID-vkCmdDrawIndirect-None-04008";
320 compatible_pipeline = "VUID-vkCmdDrawIndirect-None-02697";
321 render_pass_compatible = "VUID-vkCmdDrawIndirect-renderPass-02684";
322 subpass_index = "VUID-vkCmdDrawIndirect-subpass-02685";
323 sample_location = "VUID-vkCmdDrawIndirect-sampleLocationsEnable-02689";
324 linear_sampler = "VUID-vkCmdDrawIndirect-magFilter-04553";
325 cubic_sampler = "VUID-vkCmdDrawIndirect-None-02692";
326 indirect_protected_cb = "VUID-vkCmdDrawIndirect-commandBuffer-02711";
327 indirect_contiguous_memory = "VUID-vkCmdDrawIndirect-buffer-02708";
328 indirect_buffer_bit = "VUID-vkCmdDrawIndirect-buffer-02709";
329 viewport_count = "VUID-vkCmdDrawIndirect-viewportCount-03417";
330 scissor_count = "VUID-vkCmdDrawIndirect-scissorCount-03418";
331 viewport_scissor_count = "VUID-vkCmdDrawIndirect-viewportCount-03419";
332 primitive_topology = "VUID-vkCmdDrawIndirect-primitiveTopology-03420";
333 corner_sampled_address_mode = "VUID-vkCmdDrawIndirect-flags-02696";
334 subpass_input = "VUID-vkCmdDrawIndirect-None-02686";
335 imageview_atomic = "VUID-vkCmdDrawIndirect-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700336 push_constants_set = "VUID-vkCmdDrawIndirect-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100337 image_subresources_render_pass_write = "VUID-vkCmdDrawIndirect-None-06537";
338 image_subresources_subpass_read = "VUID-vkCmdDrawIndirect-None-06538";
339 image_subresources_subpass_write = "VUID-vkCmdDrawIndirect-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700340 descriptor_valid = "VUID-vkCmdDrawIndirect-None-02699";
341 sampler_imageview_type = "VUID-vkCmdDrawIndirect-None-02702";
342 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawIndirect-None-02703";
343 sampler_bias_offset = "VUID-vkCmdDrawIndirect-None-02704";
344 vertex_binding_attribute = "VUID-vkCmdDrawIndirect-None-02721";
345 dynamic_state_setting_commands = "VUID-vkCmdDrawIndirect-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700346 rasterization_samples = "VUID-vkCmdDrawIndirect-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700347 unprotected_command_buffer = "VUID-vkCmdDrawIndirect-commandBuffer-02707";
348 max_multiview_instance_index = "VUID-vkCmdDrawIndirect-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700349 img_filter_cubic = "VUID-vkCmdDrawIndirect-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700350 filter_cubic = "VUID-vkCmdDrawIndirect-filterCubic-02694";
351 filter_cubic_min_max = "VUID-vkCmdDrawIndirect-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000352 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawIndirect-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600353 patch_control_points = "VUID-vkCmdDrawIndirect-None-04875";
354 rasterizer_discard_enable = "VUID-vkCmdDrawIndirect-None-04876";
355 depth_bias_enable = "VUID-vkCmdDrawIndirect-None-04877";
356 logic_op = "VUID-vkCmdDrawIndirect-logicOp-04878";
357 primitive_restart_enable = "VUID-vkCmdDrawIndirect-None-04879";
358 vertex_input_binding_stride = "VUID-vkCmdDrawIndirect-pStrides-04884";
359 vertex_input = kVUID_Core_CmdDrawIndirect_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200360 blend_enable = "VUID-vkCmdDrawIndirect-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100361 color_write_enable = "VUID-vkCmdDrawIndirect-attachmentCount-06667";
Aaron Hagan92a44f82021-11-19 09:34:56 -0500362 dynamic_rendering_view_mask = "VUID-vkCmdDrawIndirect-viewMask-06178";
363 dynamic_rendering_color_count = "VUID-vkCmdDrawIndirect-colorAttachmentCount-06179";
364 dynamic_rendering_color_formats = "VUID-vkCmdDrawIndirect-colorAttachmentCount-06180";
365 dynamic_rendering_depth_format = "VUID-vkCmdDrawIndirect-pDepthAttachment-06181";
366 dynamic_rendering_stencil_format = "VUID-vkCmdDrawIndirect-pStencilAttachment-06182";
367 dynamic_rendering_fsr = "VUID-vkCmdDrawIndirect-imageView-06183";
368 dynamic_rendering_fdm = "VUID-vkCmdDrawIndirect-imageView-06184";
Aaron Hagan09a0e172021-11-19 21:18:33 -0500369 dynamic_rendering_color_sample = "VUID-vkCmdDrawIndirect-colorAttachmentCount-06185";
370 dynamic_rendering_depth_sample = "VUID-vkCmdDrawIndirect-pDepthAttachment-06186";
371 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawIndirect-pStencilAttachment-06187";
372 dynamic_rendering_multi_sample = "VUID-vkCmdDrawIndirect-colorAttachmentCount-06188";
Aaron Haganaca50442021-12-07 22:26:29 -0500373 dynamic_rendering_06189 = "VUID-vkCmdDrawIndirect-pDepthAttachment-06189";
374 dynamic_rendering_06190 = "VUID-vkCmdDrawIndirect-pStencilAttachment-06190";
375 dynamic_rendering_06198 = "VUID-vkCmdDrawIndirect-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200376 storage_image_read_without_format = "VUID-vkCmdDrawIndirect-OpTypeImage-06424";
377 storage_image_write_without_format = "VUID-vkCmdDrawIndirect-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200378 depth_compare_sample = "VUID-vkCmdDrawIndirect-None-06479";
ziga-lunarg50188622022-03-26 01:18:32 +0100379 dynamic_sample_locations = "VUID-vkCmdDrawIndirect-None-06666";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700380 }
381};
382
383struct DispatchVuidsCmdDrawIndexedIndirect : DrawDispatchVuid {
384 DispatchVuidsCmdDrawIndexedIndirect() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700385 pipeline_bound = "VUID-vkCmdDrawIndexedIndirect-None-02700";
386 dynamic_state = "VUID-vkCmdDrawIndexedIndirect-commandBuffer-02701";
387 vertex_binding = "VUID-vkCmdDrawIndexedIndirect-None-04007";
388 vertex_binding_null = "VUID-vkCmdDrawIndexedIndirect-None-04008";
389 compatible_pipeline = "VUID-vkCmdDrawIndexedIndirect-None-02697";
390 render_pass_compatible = "VUID-vkCmdDrawIndexedIndirect-renderPass-02684";
391 subpass_index = "VUID-vkCmdDrawIndexedIndirect-subpass-02685";
392 sample_location = "VUID-vkCmdDrawIndexedIndirect-sampleLocationsEnable-02689";
393 linear_sampler = "VUID-vkCmdDrawIndexedIndirect-magFilter-04553";
394 cubic_sampler = "VUID-vkCmdDrawIndexedIndirect-None-02692";
395 indirect_protected_cb = "VUID-vkCmdDrawIndexedIndirect-commandBuffer-02711";
396 indirect_contiguous_memory = "VUID-vkCmdDrawIndexedIndirect-buffer-02708";
397 indirect_buffer_bit = "VUID-vkCmdDrawIndexedIndirect-buffer-02709";
398 viewport_count = "VUID-vkCmdDrawIndexedIndirect-viewportCount-03417";
399 scissor_count = "VUID-vkCmdDrawIndexedIndirect-scissorCount-03418";
400 viewport_scissor_count = "VUID-vkCmdDrawIndexedIndirect-viewportCount-03419";
401 primitive_topology = "VUID-vkCmdDrawIndexedIndirect-primitiveTopology-03420";
402 corner_sampled_address_mode = "VUID-vkCmdDrawIndexedIndirect-flags-02696";
403 subpass_input = "VUID-vkCmdDrawIndexedIndirect-None-02686";
404 imageview_atomic = "VUID-vkCmdDrawIndexedIndirect-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700405 push_constants_set = "VUID-vkCmdDrawIndexedIndirect-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100406 image_subresources_render_pass_write = "VUID-vkCmdDrawIndexedIndirect-None-06537";
407 image_subresources_subpass_read = "VUID-vkCmdDrawIndexedIndirect-None-06538";
408 image_subresources_subpass_write = "VUID-vkCmdDrawIndexedIndirect-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700409 descriptor_valid = "VUID-vkCmdDrawIndexedIndirect-None-02699";
410 sampler_imageview_type = "VUID-vkCmdDrawIndexedIndirect-None-02702";
411 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawIndexedIndirect-None-02703";
412 sampler_bias_offset = "VUID-vkCmdDrawIndexedIndirect-None-02704";
413 vertex_binding_attribute = "VUID-vkCmdDrawIndexedIndirect-None-02721";
414 dynamic_state_setting_commands = "VUID-vkCmdDrawIndexedIndirect-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700415 rasterization_samples = "VUID-vkCmdDrawIndexedIndirect-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700416 unprotected_command_buffer = "VUID-vkCmdDrawIndexedIndirect-commandBuffer-02707";
417 max_multiview_instance_index = "VUID-vkCmdDrawIndexedIndirect-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700418 img_filter_cubic = "VUID-vkCmdDrawIndexedIndirect-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700419 filter_cubic = "VUID-vkCmdDrawIndexedIndirect-filterCubic-02694";
420 filter_cubic_min_max = "VUID-vkCmdDrawIndexedIndirect-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000421 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawIndexedIndirect-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600422 patch_control_points = "VUID-vkCmdDrawIndexedIndirect-None-04875";
423 rasterizer_discard_enable = "VUID-vkCmdDrawIndexedIndirect-None-04876";
424 depth_bias_enable = "VUID-vkCmdDrawIndexedIndirect-None-04877";
425 logic_op = "VUID-vkCmdDrawIndexedIndirect-logicOp-04878";
426 primitive_restart_enable = "VUID-vkCmdDrawIndexedIndirect-None-04879";
427 vertex_input_binding_stride = "VUID-vkCmdDrawIndexedIndirect-pStrides-04884";
428 vertex_input = kVUID_Core_CmdDrawIndexedIndirect_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200429 blend_enable = "VUID-vkCmdDrawIndexedIndirect-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100430 color_write_enable = "VUID-vkCmdDrawIndexedIndirect-attachmentCount-06667";
Aaron Hagan92a44f82021-11-19 09:34:56 -0500431 dynamic_rendering_view_mask = "VUID-vkCmdDrawIndexedIndirect-viewMask-06178";
432 dynamic_rendering_color_count = "VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06179";
433 dynamic_rendering_color_formats = "VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06180";
434 dynamic_rendering_depth_format = "VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-06181";
435 dynamic_rendering_stencil_format = "VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-06182";
436 dynamic_rendering_fsr = "VUID-vkCmdDrawIndexedIndirect-imageView-06183";
437 dynamic_rendering_fdm = "VUID-vkCmdDrawIndexedIndirect-imageView-06184";
Aaron Hagan09a0e172021-11-19 21:18:33 -0500438 dynamic_rendering_color_sample = "VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06185";
439 dynamic_rendering_depth_sample = "VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-06186";
440 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-06187";
441 dynamic_rendering_multi_sample = "VUID-vkCmdDrawIndexedIndirect-colorAttachmentCount-06188";
Aaron Haganaca50442021-12-07 22:26:29 -0500442 dynamic_rendering_06189 = "VUID-vkCmdDrawIndexedIndirect-pDepthAttachment-06189";
443 dynamic_rendering_06190 = "VUID-vkCmdDrawIndexedIndirect-pStencilAttachment-06190";
444 dynamic_rendering_06198 = "VUID-vkCmdDrawIndexedIndirect-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200445 storage_image_read_without_format = "VUID-vkCmdDrawIndexedIndirect-OpTypeImage-06424";
446 storage_image_write_without_format = "VUID-vkCmdDrawIndexedIndirect-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200447 depth_compare_sample = "VUID-vkCmdDrawIndexedIndirect-None-06479";
ziga-lunarg50188622022-03-26 01:18:32 +0100448 dynamic_sample_locations = "VUID-vkCmdDrawIndexedIndirect-None-06666";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700449 }
450};
451
452struct DispatchVuidsCmdDispatch : DrawDispatchVuid {
453 DispatchVuidsCmdDispatch() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700454 pipeline_bound = "VUID-vkCmdDispatch-None-02700";
Mark Lobodzinski02d37552020-12-28 13:29:46 -0700455 dynamic_state = "VUID-vkCmdDispatch-commandBuffer-02701";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700456 compatible_pipeline = "VUID-vkCmdDispatch-None-02697";
457 linear_sampler = "VUID-vkCmdDispatch-magFilter-04553";
458 cubic_sampler = "VUID-vkCmdDispatch-None-02692";
459 corner_sampled_address_mode = "VUID-vkCmdDispatch-flags-02696";
460 imageview_atomic = "VUID-vkCmdDispatch-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700461 push_constants_set = "VUID-vkCmdDispatch-maintenance4-06425";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700462 descriptor_valid = "VUID-vkCmdDispatch-None-02699";
463 sampler_imageview_type = "VUID-vkCmdDispatch-None-02702";
464 sampler_implicitLod_dref_proj = "VUID-vkCmdDispatch-None-02703";
465 sampler_bias_offset = "VUID-vkCmdDispatch-None-02704";
466 dynamic_state_setting_commands = "VUID-vkCmdDispatch-None-02859";
467 unprotected_command_buffer = "VUID-vkCmdDispatch-commandBuffer-02707";
468 protected_command_buffer = "VUID-vkCmdDispatch-commandBuffer-02712";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700469 img_filter_cubic = "VUID-vkCmdDispatch-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700470 filter_cubic = "VUID-vkCmdDispatch-filterCubic-02694";
471 filter_cubic_min_max = "VUID-vkCmdDispatch-filterCubicMinmax-02695";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200472 storage_image_read_without_format = "VUID-vkCmdDispatch-OpTypeImage-06424";
473 storage_image_write_without_format = "VUID-vkCmdDispatch-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200474 depth_compare_sample = "VUID-vkCmdDispatch-None-06479";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700475 }
476};
477
478struct DispatchVuidsCmdDispatchIndirect : DrawDispatchVuid {
479 DispatchVuidsCmdDispatchIndirect() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700480 pipeline_bound = "VUID-vkCmdDispatchIndirect-None-02700";
Mark Lobodzinski02d37552020-12-28 13:29:46 -0700481 dynamic_state = "VUID-vkCmdDispatchIndirect-commandBuffer-02701";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700482 compatible_pipeline = "VUID-vkCmdDispatchIndirect-None-02697";
483 linear_sampler = "VUID-vkCmdDispatchIndirect-magFilter-04553";
484 cubic_sampler = "VUID-vkCmdDispatchIndirect-None-02692";
485 indirect_protected_cb = "VUID-vkCmdDispatchIndirect-commandBuffer-02711";
486 indirect_contiguous_memory = "VUID-vkCmdDispatchIndirect-buffer-02708";
487 indirect_buffer_bit = "VUID-vkCmdDispatchIndirect-buffer-02709";
488 corner_sampled_address_mode = "VUID-vkCmdDispatchIndirect-flags-02696";
489 imageview_atomic = "VUID-vkCmdDispatchIndirect-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700490 push_constants_set = "VUID-vkCmdDispatchIndirect-maintenance4-06425";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700491 descriptor_valid = "VUID-vkCmdDispatchIndirect-None-02699";
492 sampler_imageview_type = "VUID-vkCmdDispatchIndirect-None-02702";
493 sampler_implicitLod_dref_proj = "VUID-vkCmdDispatchIndirect-None-02703";
494 sampler_bias_offset = "VUID-vkCmdDispatchIndirect-None-02704";
495 dynamic_state_setting_commands = "VUID-vkCmdDispatchIndirect-None-02859";
496 unprotected_command_buffer = "VUID-vkCmdDispatchIndirect-commandBuffer-02707";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700497 img_filter_cubic = "VUID-vkCmdDispatchIndirect-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700498 filter_cubic = "VUID-vkCmdDispatchIndirect-filterCubic-02694";
499 filter_cubic_min_max = "VUID-vkCmdDispatchIndirect-filterCubicMinmax-02695";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200500 storage_image_read_without_format = "VUID-vkCmdDispatchIndirect-OpTypeImage-06424";
501 storage_image_write_without_format = "VUID-vkCmdDispatchIndirect-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200502 depth_compare_sample = "VUID-vkCmdDispatchIndirect-None-06479";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700503 }
504};
505
506struct DispatchVuidsCmdDrawIndirectCount : DrawDispatchVuid {
507 DispatchVuidsCmdDrawIndirectCount() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700508 pipeline_bound = "VUID-vkCmdDrawIndirectCount-None-02700";
509 dynamic_state = "VUID-vkCmdDrawIndirectCount-commandBuffer-02701";
510 vertex_binding = "VUID-vkCmdDrawIndirectCount-None-04007";
511 vertex_binding_null = "VUID-vkCmdDrawIndirectCount-None-04008";
512 compatible_pipeline = "VUID-vkCmdDrawIndirectCount-None-02697";
513 render_pass_compatible = "VUID-vkCmdDrawIndirectCount-renderPass-02684";
514 subpass_index = "VUID-vkCmdDrawIndirectCount-subpass-02685";
515 sample_location = "VUID-vkCmdDrawIndirectCount-sampleLocationsEnable-02689";
516 linear_sampler = "VUID-vkCmdDrawIndirectCount-magFilter-04553";
517 cubic_sampler = "VUID-vkCmdDrawIndirectCount-None-02692";
518 indirect_protected_cb = "VUID-vkCmdDrawIndirectCount-commandBuffer-02711";
519 indirect_contiguous_memory = "VUID-vkCmdDrawIndirectCount-buffer-02708";
520 indirect_buffer_bit = "VUID-vkCmdDrawIndirectCount-buffer-02709";
521 viewport_count = "VUID-vkCmdDrawIndirectCount-viewportCount-03417";
522 scissor_count = "VUID-vkCmdDrawIndirectCount-scissorCount-03418";
523 viewport_scissor_count = "VUID-vkCmdDrawIndirectCount-viewportCount-03419";
524 primitive_topology = "VUID-vkCmdDrawIndirectCount-primitiveTopology-03420";
525 corner_sampled_address_mode = "VUID-vkCmdDrawIndirectCount-flags-02696";
526 subpass_input = "VUID-vkCmdDrawIndirectCount-None-02686";
527 imageview_atomic = "VUID-vkCmdDrawIndirectCount-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700528 push_constants_set = "VUID-vkCmdDrawIndirectCount-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100529 image_subresources_render_pass_write = "VUID-vkCmdDrawIndirectCount-None-06537";
530 image_subresources_subpass_read = "VUID-vkCmdDrawIndirectCount-None-06538";
531 image_subresources_subpass_write = "VUID-vkCmdDrawIndirectCount-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700532 descriptor_valid = "VUID-vkCmdDrawIndirectCount-None-02699";
533 sampler_imageview_type = "VUID-vkCmdDrawIndirectCount-None-02702";
534 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawIndirectCount-None-02703";
535 sampler_bias_offset = "VUID-vkCmdDrawIndirectCount-None-02704";
536 vertex_binding_attribute = "VUID-vkCmdDrawIndirectCount-None-02721";
537 dynamic_state_setting_commands = "VUID-vkCmdDrawIndirectCount-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700538 rasterization_samples = "VUID-vkCmdDrawIndirectCount-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700539 unprotected_command_buffer = "VUID-vkCmdDrawIndirectCount-commandBuffer-02707";
540 max_multiview_instance_index = "VUID-vkCmdDrawIndirectCount-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700541 img_filter_cubic = "VUID-vkCmdDrawIndirectCount-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700542 filter_cubic = "VUID-vkCmdDrawIndirectCount-filterCubic-02694";
543 filter_cubic_min_max = "VUID-vkCmdDrawIndirectCount-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000544 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600545 patch_control_points = "VUID-vkCmdDrawIndirectCount-None-04875";
546 rasterizer_discard_enable = "VUID-vkCmdDrawIndirectCount-None-04876";
547 depth_bias_enable = "VUID-vkCmdDrawIndirectCount-None-04877";
548 logic_op = "VUID-vkCmdDrawIndirectCount-logicOp-04878";
549 primitive_restart_enable = "VUID-vkCmdDrawIndirectCount-None-04879";
550 vertex_input_binding_stride = "VUID-vkCmdDrawIndirectCount-pStrides-04884";
551 vertex_input = kVUID_Core_CmdDrawIndirectCount_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200552 blend_enable = "VUID-vkCmdDrawIndirectCount-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100553 color_write_enable = "VUID-vkCmdDrawIndirectCount-attachmentCount-06667";
stusmithedc4e392021-12-24 15:22:16 +0000554 dynamic_rendering_view_mask = "VUID-vkCmdDrawIndirectCount-viewMask-06178";
555 dynamic_rendering_color_count = "VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06179";
556 dynamic_rendering_color_formats = "VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06180";
557 dynamic_rendering_depth_format = "VUID-vkCmdDrawIndirectCount-pDepthAttachment-06181";
558 dynamic_rendering_stencil_format = "VUID-vkCmdDrawIndirectCount-pStencilAttachment-06182";
559 dynamic_rendering_fsr = "VUID-vkCmdDrawIndirectCount-imageView-06183";
560 dynamic_rendering_fdm = "VUID-vkCmdDrawIndirectCount-imageView-06184";
561 dynamic_rendering_color_sample = "VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06185";
562 dynamic_rendering_depth_sample = "VUID-vkCmdDrawIndirectCount-pDepthAttachment-06186";
563 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawIndirectCount-pStencilAttachment-06187";
564 dynamic_rendering_multi_sample = "VUID-vkCmdDrawIndirectCount-colorAttachmentCount-06188";
565 dynamic_rendering_06189 = "VUID-vkCmdDrawIndirectCount-pDepthAttachment-06189";
566 dynamic_rendering_06190 = "VUID-vkCmdDrawIndirectCount-pStencilAttachment-06190";
567 dynamic_rendering_06198 = "VUID-vkCmdDrawIndirectCount-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200568 storage_image_read_without_format = "VUID-vkCmdDrawIndirectCount-OpTypeImage-06424";
569 storage_image_write_without_format = "VUID-vkCmdDrawIndirectCount-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200570 depth_compare_sample = "VUID-vkCmdDrawIndirectCount-None-06479";
ziga-lunarg50188622022-03-26 01:18:32 +0100571 dynamic_sample_locations = "VUID-vkCmdDrawIndirectCount-None-06666";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700572 }
573};
574
575struct DispatchVuidsCmdDrawIndexedIndirectCount : DrawDispatchVuid {
576 DispatchVuidsCmdDrawIndexedIndirectCount() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700577 pipeline_bound = "VUID-vkCmdDrawIndexedIndirectCount-None-02700";
578 dynamic_state = "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02701";
579 vertex_binding = "VUID-vkCmdDrawIndexedIndirectCount-None-04007";
580 vertex_binding_null = "VUID-vkCmdDrawIndexedIndirectCount-None-04008";
581 compatible_pipeline = "VUID-vkCmdDrawIndexedIndirectCount-None-02697";
582 render_pass_compatible = "VUID-vkCmdDrawIndexedIndirectCount-renderPass-02684";
583 subpass_index = "VUID-vkCmdDrawIndexedIndirectCount-subpass-02685";
584 sample_location = "VUID-vkCmdDrawIndexedIndirectCount-sampleLocationsEnable-02689";
585 linear_sampler = "VUID-vkCmdDrawIndexedIndirectCount-magFilter-04553";
586 cubic_sampler = "VUID-vkCmdDrawIndexedIndirectCount-None-02692";
587 indirect_protected_cb = "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02711";
588 indirect_contiguous_memory = "VUID-vkCmdDrawIndexedIndirectCount-buffer-02708";
589 indirect_buffer_bit = "VUID-vkCmdDrawIndexedIndirectCount-buffer-02709";
590 viewport_count = "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-03417";
591 scissor_count = "VUID-vkCmdDrawIndexedIndirectCount-scissorCount-03418";
592 viewport_scissor_count = "VUID-vkCmdDrawIndexedIndirectCount-viewportCount-03419";
593 primitive_topology = "VUID-vkCmdDrawIndexedIndirectCount-primitiveTopology-03420";
594 corner_sampled_address_mode = "VUID-vkCmdDrawIndexedIndirectCount-flags-02696";
595 subpass_input = "VUID-vkCmdDrawIndexedIndirectCount-None-02686";
596 imageview_atomic = "VUID-vkCmdDrawIndexedIndirectCount-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700597 push_constants_set = "VUID-vkCmdDrawIndexedIndirectCount-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100598 image_subresources_render_pass_write = "VUID-vkCmdDrawIndexedIndirectCount-None-06537";
599 image_subresources_subpass_read = "VUID-vkCmdDrawIndexedIndirectCount-None-06538";
600 image_subresources_subpass_write = "VUID-vkCmdDrawIndexedIndirectCount-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700601 descriptor_valid = "VUID-vkCmdDrawIndexedIndirectCount-None-02699";
602 sampler_imageview_type = "VUID-vkCmdDrawIndexedIndirectCount-None-02702";
603 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawIndexedIndirectCount-None-02703";
604 sampler_bias_offset = "VUID-vkCmdDrawIndexedIndirectCount-None-02704";
605 vertex_binding_attribute = "VUID-vkCmdDrawIndexedIndirectCount-None-02721";
606 dynamic_state_setting_commands = "VUID-vkCmdDrawIndexedIndirectCount-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700607 rasterization_samples = "VUID-vkCmdDrawIndexedIndirectCount-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700608 unprotected_command_buffer = "VUID-vkCmdDrawIndexedIndirectCount-commandBuffer-02707";
609 max_multiview_instance_index = "VUID-vkCmdDrawIndexedIndirectCount-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700610 img_filter_cubic = "VUID-vkCmdDrawIndexedIndirectCount-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700611 filter_cubic = "VUID-vkCmdDrawIndexedIndirectCount-filterCubic-02694";
612 filter_cubic_min_max = "VUID-vkCmdDrawIndexedIndirectCount-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000613 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawIndexedIndirectCount-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600614 patch_control_points = "VUID-vkCmdDrawIndexedIndirectCount-None-04875";
615 rasterizer_discard_enable = "VUID-vkCmdDrawIndexedIndirectCount-None-04876";
616 depth_bias_enable = "VUID-vkCmdDrawIndexedIndirectCount-None-04877";
617 logic_op = "VUID-vkCmdDrawIndexedIndirectCount-logicOp-04878";
618 primitive_restart_enable = "VUID-vkCmdDrawIndexedIndirectCount-None-04879";
619 vertex_input_binding_stride = "VUID-vkCmdDrawIndexedIndirectCount-pStrides-04884";
620 vertex_input = kVUID_Core_CmdDrawIndexedIndirectCount_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200621 blend_enable = "VUID-vkCmdDrawIndexedIndirectCount-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100622 color_write_enable = "VUID-vkCmdDrawIndexedIndirectCount-attachmentCount-06667";
Aaron Haganaca50442021-12-07 22:26:29 -0500623 dynamic_rendering_view_mask = "VUID-vkCmdDrawIndexedIndirectCount-viewMask-06178";
624 dynamic_rendering_color_count = "VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06179";
625 dynamic_rendering_color_formats = "VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06180";
626 dynamic_rendering_depth_format = "VUID-vkCmdDrawIndexedIndirectCount-pDepthAttachment-06181";
627 dynamic_rendering_stencil_format = "VUID-vkCmdDrawIndexedIndirectCount-pStencilAttachment-06182";
628 dynamic_rendering_fsr = "VUID-vkCmdDrawIndexedIndirectCount-imageView-06183";
629 dynamic_rendering_fdm = "VUID-vkCmdDrawIndexedIndirectCount-imageView-06184";
630 dynamic_rendering_color_sample = "VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06185";
631 dynamic_rendering_depth_sample = "VUID-vkCmdDrawIndexedIndirectCount-pDepthAttachment-06186";
632 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawIndexedIndirectCount-pStencilAttachment-06187";
633 dynamic_rendering_multi_sample = "VUID-vkCmdDrawIndexedIndirectCount-colorAttachmentCount-06188";
634 dynamic_rendering_06189 = "VUID-vkCmdDrawIndexedIndirectCount-pDepthAttachment-06189";
635 dynamic_rendering_06190 = "VUID-vkCmdDrawIndexedIndirectCount-pStencilAttachment-06190";
636 dynamic_rendering_06198 = "VUID-vkCmdDrawIndexedIndirectCount-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200637 storage_image_read_without_format = "VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-06424";
638 storage_image_write_without_format = "VUID-vkCmdDrawIndexedIndirectCount-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200639 depth_compare_sample = "VUID-vkCmdDrawIndexedIndirectCount-None-06479";
ziga-lunarg50188622022-03-26 01:18:32 +0100640 dynamic_sample_locations = "VUID-vkCmdDrawIndexedIndirectCount-None-06666";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700641 }
642};
643
644struct DispatchVuidsCmdTraceRaysNV: DrawDispatchVuid {
645 DispatchVuidsCmdTraceRaysNV() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700646 pipeline_bound = "VUID-vkCmdTraceRaysNV-None-02700";
647 dynamic_state = "VUID-vkCmdTraceRaysNV-commandBuffer-02701";
648 compatible_pipeline = "VUID-vkCmdTraceRaysNV-None-02697";
649 linear_sampler = "VUID-vkCmdTraceRaysNV-magFilter-04553";
650 cubic_sampler = "VUID-vkCmdTraceRaysNV-None-02692";
651 corner_sampled_address_mode = "VUID-vkCmdTraceRaysNV-flags-02696";
652 imageview_atomic = "VUID-vkCmdTraceRaysNV-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700653 push_constants_set = "VUID-vkCmdTraceRaysNV-maintenance4-06425";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700654 descriptor_valid = "VUID-vkCmdTraceRaysNV-None-02699";
655 sampler_imageview_type = "VUID-vkCmdTraceRaysNV-None-02702";
656 sampler_implicitLod_dref_proj = "VUID-vkCmdTraceRaysNV-None-02703";
657 sampler_bias_offset = "VUID-vkCmdTraceRaysNV-None-02704";
658 dynamic_state_setting_commands = "VUID-vkCmdTraceRaysNV-None-02859";
659 unprotected_command_buffer = "VUID-vkCmdTraceRaysNV-commandBuffer-02707";
sfricke-samsunga3c47d12021-09-30 13:34:54 -0700660 ray_query_protected_cb = "VUID-vkCmdTraceRaysNV-commandBuffer-04624";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700661 img_filter_cubic = "VUID-vkCmdTraceRaysNV-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700662 filter_cubic = "VUID-vkCmdTraceRaysNV-filterCubic-02694";
663 filter_cubic_min_max = "VUID-vkCmdTraceRaysNV-filterCubicMinmax-02695";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200664 storage_image_read_without_format = "VUID-vkCmdTraceRaysNV-OpTypeImage-06424";
665 storage_image_write_without_format = "VUID-vkCmdTraceRaysNV-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200666 depth_compare_sample = "VUID-vkCmdTraceRaysNV-None-06479";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700667 }
668};
669
670struct DispatchVuidsCmdTraceRaysKHR: DrawDispatchVuid {
671 DispatchVuidsCmdTraceRaysKHR() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700672 pipeline_bound = "VUID-vkCmdTraceRaysKHR-None-02700";
673 dynamic_state = "VUID-vkCmdTraceRaysKHR-commandBuffer-02701";
674 compatible_pipeline = "VUID-vkCmdTraceRaysKHR-None-02697";
675 linear_sampler = "VUID-vkCmdTraceRaysKHR-magFilter-04553";
676 cubic_sampler = "VUID-vkCmdTraceRaysKHR-None-02692";
677 corner_sampled_address_mode = "VUID-vkCmdTraceRaysKHR-flags-02696";
678 imageview_atomic = "VUID-vkCmdTraceRaysKHR-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700679 push_constants_set = "VUID-vkCmdTraceRaysKHR-maintenance4-06425";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700680 descriptor_valid = "VUID-vkCmdTraceRaysKHR-None-02699";
681 sampler_imageview_type = "VUID-vkCmdTraceRaysKHR-None-02702";
682 sampler_implicitLod_dref_proj = "VUID-vkCmdTraceRaysKHR-None-02703";
683 sampler_bias_offset = "VUID-vkCmdTraceRaysKHR-None-02704";
684 dynamic_state_setting_commands = "VUID-vkCmdTraceRaysKHR-None-02859";
685 unprotected_command_buffer = "VUID-vkCmdTraceRaysKHR-commandBuffer-02707";
sfricke-samsunga3c47d12021-09-30 13:34:54 -0700686 ray_query_protected_cb = "VUID-vkCmdTraceRaysKHR-commandBuffer-04625";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700687 img_filter_cubic = "VUID-vkCmdTraceRaysKHR-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700688 filter_cubic = "VUID-vkCmdTraceRaysKHR-filterCubic-02694";
689 filter_cubic_min_max = "VUID-vkCmdTraceRaysKHR-filterCubicMinmax-02695";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200690 storage_image_read_without_format = "VUID-vkCmdTraceRaysKHR-OpTypeImage-06424";
691 storage_image_write_without_format = "VUID-vkCmdTraceRaysKHR-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200692 depth_compare_sample = "VUID-vkCmdTraceRaysKHR-None-06479";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700693 }
694};
695
696struct DispatchVuidsCmdTraceRaysIndirectKHR: DrawDispatchVuid {
697 DispatchVuidsCmdTraceRaysIndirectKHR() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700698 pipeline_bound = "VUID-vkCmdTraceRaysIndirectKHR-None-02700";
699 dynamic_state = "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-02701";
700 compatible_pipeline = "VUID-vkCmdTraceRaysIndirectKHR-None-02697";
701 linear_sampler = "VUID-vkCmdTraceRaysIndirectKHR-magFilter-04553";
702 cubic_sampler = "VUID-vkCmdTraceRaysIndirectKHR-None-02692";
Shannon McPherson57255a62020-12-23 16:00:54 -0700703 indirect_contiguous_memory = "VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03632";
704 indirect_buffer_bit = "VUID-vkCmdTraceRaysIndirectKHR-indirectDeviceAddress-03633";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700705 corner_sampled_address_mode = "VUID-vkCmdTraceRaysIndirectKHR-flags-02696";
706 imageview_atomic = "VUID-vkCmdTraceRaysIndirectKHR-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700707 push_constants_set = "VUID-vkCmdTraceRaysIndirectKHR-maintenance4-06425";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700708 descriptor_valid = "VUID-vkCmdTraceRaysIndirectKHR-None-02699";
709 sampler_imageview_type = "VUID-vkCmdTraceRaysIndirectKHR-None-02702";
710 sampler_implicitLod_dref_proj = "VUID-vkCmdTraceRaysIndirectKHR-None-02703";
711 sampler_bias_offset = "VUID-vkCmdTraceRaysIndirectKHR-None-02704";
712 dynamic_state_setting_commands = "VUID-vkCmdTraceRaysIndirectKHR-None-02859";
713 unprotected_command_buffer = "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-02707";
sfricke-samsunga3c47d12021-09-30 13:34:54 -0700714 ray_query_protected_cb = "VUID-vkCmdTraceRaysIndirectKHR-commandBuffer-03635";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700715 img_filter_cubic = "VUID-vkCmdTraceRaysIndirectKHR-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700716 filter_cubic = "VUID-vkCmdTraceRaysIndirectKHR-filterCubic-02694";
717 filter_cubic_min_max = "VUID-vkCmdTraceRaysIndirectKHR-filterCubicMinmax-02695";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200718 storage_image_read_without_format = "VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-06424";
719 storage_image_write_without_format = "VUID-vkCmdTraceRaysIndirectKHR-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200720 depth_compare_sample = "VUID-vkCmdTraceRaysIndirectKHR-None-06479";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700721 }
722};
723
724struct DispatchVuidsCmdDrawMeshTasksNV: DrawDispatchVuid {
725 DispatchVuidsCmdDrawMeshTasksNV() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700726 pipeline_bound = "VUID-vkCmdDrawMeshTasksNV-None-02700";
727 dynamic_state = "VUID-vkCmdDrawMeshTasksNV-commandBuffer-02701";
728 compatible_pipeline = "VUID-vkCmdDrawMeshTasksNV-None-02697";
729 render_pass_compatible = "VUID-vkCmdDrawMeshTasksNV-renderPass-02684";
730 subpass_index = "VUID-vkCmdDrawMeshTasksNV-subpass-02685";
731 sample_location = "VUID-vkCmdDrawMeshTasksNV-sampleLocationsEnable-02689";
732 linear_sampler = "VUID-vkCmdDrawMeshTasksNV-magFilter-04553";
733 cubic_sampler = "VUID-vkCmdDrawMeshTasksNV-None-02692";
734 viewport_count = "VUID-vkCmdDrawMeshTasksNV-viewportCount-03417";
735 scissor_count = "VUID-vkCmdDrawMeshTasksNV-scissorCount-03418";
736 viewport_scissor_count = "VUID-vkCmdDrawMeshTasksNV-viewportCount-03419";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700737 corner_sampled_address_mode = "VUID-vkCmdDrawMeshTasksNV-flags-02696";
738 subpass_input = "VUID-vkCmdDrawMeshTasksNV-None-02686";
739 imageview_atomic = "VUID-vkCmdDrawMeshTasksNV-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700740 push_constants_set = "VUID-vkCmdDrawMeshTasksNV-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100741 image_subresources_render_pass_write = "VUID-vkCmdDrawMeshTasksNV-None-06537";
742 image_subresources_subpass_read = "VUID-vkCmdDrawMeshTasksNV-None-06538";
743 image_subresources_subpass_write = "VUID-vkCmdDrawMeshTasksNV-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700744 descriptor_valid = "VUID-vkCmdDrawMeshTasksNV-None-02699";
745 sampler_imageview_type = "VUID-vkCmdDrawMeshTasksNV-None-02702";
746 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawMeshTasksNV-None-02703";
747 sampler_bias_offset = "VUID-vkCmdDrawMeshTasksNV-None-02704";
748 dynamic_state_setting_commands = "VUID-vkCmdDrawMeshTasksNV-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700749 rasterization_samples = "VUID-vkCmdDrawMeshTasksNV-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700750 unprotected_command_buffer = "VUID-vkCmdDrawMeshTasksNV-commandBuffer-02707";
751 max_multiview_instance_index = "VUID-vkCmdDrawMeshTasksNV-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700752 img_filter_cubic = "VUID-vkCmdDrawMeshTasksNV-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700753 filter_cubic = "VUID-vkCmdDrawMeshTasksNV-filterCubic-02694";
754 filter_cubic_min_max = "VUID-vkCmdDrawMeshTasksNV-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000755 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawMeshTasksNV-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600756 rasterizer_discard_enable = "VUID-vkCmdDrawMeshTasksNV-None-04876";
757 depth_bias_enable = "VUID-vkCmdDrawMeshTasksNV-None-04877";
758 logic_op = "VUID-vkCmdDrawMeshTasksNV-logicOp-04878";
Piers Daniell924cd832021-05-18 13:48:47 -0600759 vertex_input = kVUID_Core_CmdDrawMeshTasksNV_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200760 blend_enable = "VUID-vkCmdDrawMeshTasksNV-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100761 color_write_enable = "VUID-vkCmdDrawMeshTasksNV-attachmentCount-06667";
stusmithedc4e392021-12-24 15:22:16 +0000762 dynamic_rendering_view_mask = "VUID-vkCmdDrawMeshTasksNV-viewMask-06178";
763 dynamic_rendering_color_count = "VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06179";
764 dynamic_rendering_color_formats = "VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06180";
765 dynamic_rendering_depth_format = "VUID-vkCmdDrawMeshTasksNV-pDepthAttachment-06181";
766 dynamic_rendering_stencil_format = "VUID-vkCmdDrawMeshTasksNV-pStencilAttachment-06182";
767 dynamic_rendering_fsr = "VUID-vkCmdDrawMeshTasksNV-imageView-06183";
768 dynamic_rendering_fdm = "VUID-vkCmdDrawMeshTasksNV-imageView-06184";
769 dynamic_rendering_color_sample = "VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06185";
770 dynamic_rendering_depth_sample = "VUID-vkCmdDrawMeshTasksNV-pDepthAttachment-06186";
771 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawMeshTasksNV-pStencilAttachment-06187";
772 dynamic_rendering_multi_sample = "VUID-vkCmdDrawMeshTasksNV-colorAttachmentCount-06188";
773 dynamic_rendering_06189 = "VUID-vkCmdDrawMeshTasksNV-pDepthAttachment-06189";
774 dynamic_rendering_06190 = "VUID-vkCmdDrawMeshTasksNV-pStencilAttachment-06190";
775 dynamic_rendering_06198 = "VUID-vkCmdDrawMeshTasksNV-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200776 storage_image_read_without_format = "VUID-vkCmdDrawMeshTasksNV-OpTypeImage-06424";
777 storage_image_write_without_format = "VUID-vkCmdDrawMeshTasksNV-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200778 depth_compare_sample = "VUID-vkCmdDrawMeshTasksNV-None-06479";
ziga-lunarg50188622022-03-26 01:18:32 +0100779 dynamic_sample_locations = "VUID-vkCmdDrawMeshTasksNV-None-06666";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700780 }
781};
782
783struct DispatchVuidsCmdDrawMeshTasksIndirectNV: DrawDispatchVuid {
784 DispatchVuidsCmdDrawMeshTasksIndirectNV() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700785 pipeline_bound = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02700";
786 dynamic_state = "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02701";
787 compatible_pipeline = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02697";
788 render_pass_compatible = "VUID-vkCmdDrawMeshTasksIndirectNV-renderPass-02684";
789 subpass_index = "VUID-vkCmdDrawMeshTasksIndirectNV-subpass-02685";
790 sample_location = "VUID-vkCmdDrawMeshTasksIndirectNV-sampleLocationsEnable-02689";
791 linear_sampler = "VUID-vkCmdDrawMeshTasksIndirectNV-magFilter-04553";
792 cubic_sampler = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02692";
793 indirect_protected_cb = "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02711";
794 indirect_contiguous_memory = "VUID-vkCmdDrawMeshTasksIndirectNV-buffer-02708";
795 indirect_buffer_bit = "VUID-vkCmdDrawMeshTasksIndirectNV-buffer-02709";
796 viewport_count = "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-03417";
797 scissor_count = "VUID-vkCmdDrawMeshTasksIndirectNV-scissorCount-03418";
798 viewport_scissor_count = "VUID-vkCmdDrawMeshTasksIndirectNV-viewportCount-03419";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700799 corner_sampled_address_mode = "VUID-vkCmdDrawMeshTasksIndirectNV-flags-02696";
800 subpass_input = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02686";
801 imageview_atomic = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700802 push_constants_set = "VUID-vkCmdDrawMeshTasksIndirectNV-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100803 image_subresources_render_pass_write = "VUID-vkCmdDrawMeshTasksIndirectNV-None-06537";
804 image_subresources_subpass_read = "VUID-vkCmdDrawMeshTasksIndirectNV-None-06538";
805 image_subresources_subpass_write = "VUID-vkCmdDrawMeshTasksIndirectNV-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700806 descriptor_valid = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02699";
807 sampler_imageview_type = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02702";
808 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02703";
809 sampler_bias_offset = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02704";
810 dynamic_state_setting_commands = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700811 rasterization_samples = "VUID-vkCmdDrawMeshTasksIndirectNV-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700812 unprotected_command_buffer = "VUID-vkCmdDrawMeshTasksIndirectNV-commandBuffer-02707";
813 max_multiview_instance_index = "VUID-vkCmdDrawMeshTasksIndirectNV-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700814 img_filter_cubic = "VUID-vkCmdDrawMeshTasksIndirectNV-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700815 filter_cubic = "VUID-vkCmdDrawMeshTasksIndirectNV-filterCubic-02694";
816 filter_cubic_min_max = "VUID-vkCmdDrawMeshTasksIndirectNV-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000817 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawMeshTasksIndirectNV-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600818 rasterizer_discard_enable = "VUID-vkCmdDrawMeshTasksIndirectNV-None-04876";
819 depth_bias_enable = "VUID-vkCmdDrawMeshTasksIndirectNV-None-04877";
820 logic_op = "VUID-vkCmdDrawMeshTasksIndirectNV-logicOp-04878";
Piers Daniell924cd832021-05-18 13:48:47 -0600821 vertex_input = kVUID_Core_CmdDrawMeshTasksIndirectNV_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200822 blend_enable = "VUID-vkCmdDrawMeshTasksIndirectNV-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100823 color_write_enable = "VUID-vkCmdDrawMeshTasksIndirectNV-attachmentCount-06667";
stusmithedc4e392021-12-24 15:22:16 +0000824 dynamic_rendering_view_mask = "VUID-vkCmdDrawMeshTasksIndirectNV-viewMask-06178";
825 dynamic_rendering_color_count = "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06179";
826 dynamic_rendering_color_formats = "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06180";
827 dynamic_rendering_depth_format = "VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06181";
828 dynamic_rendering_stencil_format = "VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06182";
829 dynamic_rendering_fsr = "VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06183";
830 dynamic_rendering_fdm = "VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06184";
831 dynamic_rendering_color_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06185";
832 dynamic_rendering_depth_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06186";
833 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06187";
834 dynamic_rendering_multi_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06188";
835 dynamic_rendering_06189 = "VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06189";
836 dynamic_rendering_06190 = "VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06190";
837 dynamic_rendering_06198 = "VUID-vkCmdDrawMeshTasksIndirectNV-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200838 storage_image_read_without_format = "VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-06424";
839 storage_image_write_without_format = "VUID-vkCmdDrawMeshTasksIndirectNV-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200840 depth_compare_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-None-06479";
Aaron Hagan80034ea2021-12-23 11:24:09 -0500841 dynamic_rendering_view_mask = "VUID-vkCmdDrawMeshTasksIndirectNV-viewMask-06178";
842 dynamic_rendering_color_count = "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06179";
843 dynamic_rendering_color_formats = "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06180";
844 dynamic_rendering_depth_format = "VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06181";
845 dynamic_rendering_stencil_format = "VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06182";
846 dynamic_rendering_fsr = "VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06183";
847 dynamic_rendering_fdm = "VUID-vkCmdDrawMeshTasksIndirectNV-imageView-06184";
848 dynamic_rendering_color_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06185";
849 dynamic_rendering_depth_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06186";
850 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06187";
Jeremy Gebben09c1a072022-02-08 09:42:47 -0700851 dynamic_rendering_multi_sample = "VUID-vkCmdDrawMeshTasksIndirectNV-colorAttachmentCount-06188";
Aaron Hagan80034ea2021-12-23 11:24:09 -0500852 dynamic_rendering_06189 = "VUID-vkCmdDrawMeshTasksIndirectNV-pDepthAttachment-06189";
853 dynamic_rendering_06190 = "VUID-vkCmdDrawMeshTasksIndirectNV-pStencilAttachment-06190";
854 dynamic_rendering_06198 = "VUID-vkCmdDrawMeshTasksIndirectNV-renderPass-06198";
ziga-lunarg50188622022-03-26 01:18:32 +0100855 dynamic_sample_locations = "VUID-vkCmdDrawMeshTasksIndirectNV-None-06666";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700856 }
857};
858
859struct DispatchVuidsCmdDrawMeshTasksIndirectCountNV : DrawDispatchVuid {
860 DispatchVuidsCmdDrawMeshTasksIndirectCountNV() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700861 pipeline_bound = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02700";
862 dynamic_state = "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02701";
863 compatible_pipeline = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02697";
864 render_pass_compatible = "VUID-vkCmdDrawMeshTasksIndirectCountNV-renderPass-02684";
865 subpass_index = "VUID-vkCmdDrawMeshTasksIndirectCountNV-subpass-02685";
866 sample_location = "VUID-vkCmdDrawMeshTasksIndirectCountNV-sampleLocationsEnable-02689";
867 linear_sampler = "VUID-vkCmdDrawMeshTasksIndirectCountNV-magFilter-04553";
868 cubic_sampler = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02692";
869 indirect_protected_cb = "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02711";
870 indirect_contiguous_memory = "VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-02708";
871 indirect_buffer_bit = "VUID-vkCmdDrawMeshTasksIndirectCountNV-buffer-02709";
872 viewport_count = "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-03417";
873 scissor_count = "VUID-vkCmdDrawMeshTasksIndirectCountNV-scissorCount-03418";
874 viewport_scissor_count = "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewportCount-03419";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700875 corner_sampled_address_mode = "VUID-vkCmdDrawMeshTasksIndirectCountNV-flags-02696";
876 subpass_input = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02686";
877 imageview_atomic = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700878 push_constants_set = "VUID-vkCmdDrawMeshTasksIndirectCountNV-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100879 image_subresources_render_pass_write = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06537";
880 image_subresources_subpass_read = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06538";
881 image_subresources_subpass_write = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700882 descriptor_valid = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02699";
883 sampler_imageview_type = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02702";
884 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02703";
885 sampler_bias_offset = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02704";
886 dynamic_state_setting_commands = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700887 rasterization_samples = "VUID-vkCmdDrawMeshTasksIndirectCountNV-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700888 unprotected_command_buffer = "VUID-vkCmdDrawMeshTasksIndirectCountNV-commandBuffer-02707";
889 max_multiview_instance_index = "VUID-vkCmdDrawMeshTasksIndirectCountNV-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700890 img_filter_cubic = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700891 filter_cubic = "VUID-vkCmdDrawMeshTasksIndirectCountNV-filterCubic-02694";
892 filter_cubic_min_max = "VUID-vkCmdDrawMeshTasksIndirectCountNV-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000893 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawMeshTasksIndirectCountNV-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600894 rasterizer_discard_enable = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04876";
895 depth_bias_enable = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-04877";
896 logic_op = "VUID-vkCmdDrawMeshTasksIndirectCountNV-logicOp-04878";
Piers Daniell924cd832021-05-18 13:48:47 -0600897 vertex_input = kVUID_Core_CmdDrawMeshTasksIndirectCountNV_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200898 blend_enable = "VUID-vkCmdDrawMeshTasksIndirectCountNV-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100899 color_write_enable = "VUID-vkCmdDrawMeshTasksIndirectCountNV-attachmentCount-06667";
stusmithedc4e392021-12-24 15:22:16 +0000900 dynamic_rendering_view_mask = "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewMask-06178";
901 dynamic_rendering_color_count = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06179";
902 dynamic_rendering_color_formats = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06180";
903 dynamic_rendering_depth_format = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06181";
904 dynamic_rendering_stencil_format = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06182";
905 dynamic_rendering_fsr = "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06183";
906 dynamic_rendering_fdm = "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06184";
907 dynamic_rendering_color_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06185";
908 dynamic_rendering_depth_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06186";
909 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06187";
910 dynamic_rendering_multi_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06188";
911 dynamic_rendering_06189 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06189";
912 dynamic_rendering_06190 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06190";
913 dynamic_rendering_06198 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200914 storage_image_read_without_format = "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-06424";
915 storage_image_write_without_format = "VUID-vkCmdDrawMeshTasksIndirectCountNV-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200916 depth_compare_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06479";
Aaron Hagan80034ea2021-12-23 11:24:09 -0500917 dynamic_rendering_view_mask = "VUID-vkCmdDrawMeshTasksIndirectCountNV-viewMask-06178";
918 dynamic_rendering_color_count = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06179";
919 dynamic_rendering_color_formats = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06180";
920 dynamic_rendering_depth_format = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06181";
921 dynamic_rendering_stencil_format = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06182";
922 dynamic_rendering_fsr = "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06183";
923 dynamic_rendering_fdm = "VUID-vkCmdDrawMeshTasksIndirectCountNV-imageView-06184";
924 dynamic_rendering_color_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06185";
925 dynamic_rendering_depth_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06186";
926 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06187";
Jeremy Gebben09c1a072022-02-08 09:42:47 -0700927 dynamic_rendering_multi_sample = "VUID-vkCmdDrawMeshTasksIndirectCountNV-colorAttachmentCount-06188";
Aaron Hagan80034ea2021-12-23 11:24:09 -0500928 dynamic_rendering_06189 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pDepthAttachment-06189";
929 dynamic_rendering_06190 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-pStencilAttachment-06190";
930 dynamic_rendering_06198 = "VUID-vkCmdDrawMeshTasksIndirectCountNV-renderPass-06198";
ziga-lunarg50188622022-03-26 01:18:32 +0100931 dynamic_sample_locations = "VUID-vkCmdDrawMeshTasksIndirectCountNV-None-06666";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700932 }
933};
934
935struct DispatchVuidsCmdDrawIndirectByteCountEXT: DrawDispatchVuid {
936 DispatchVuidsCmdDrawIndirectByteCountEXT() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700937 pipeline_bound = "VUID-vkCmdDrawIndirectByteCountEXT-None-02700";
938 dynamic_state = "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02701";
939 vertex_binding = "VUID-vkCmdDrawIndirectByteCountEXT-None-04007";
940 vertex_binding_null = "VUID-vkCmdDrawIndirectByteCountEXT-None-04008";
941 compatible_pipeline = "VUID-vkCmdDrawIndirectByteCountEXT-None-02697";
942 render_pass_compatible = "VUID-vkCmdDrawIndirectByteCountEXT-renderPass-02684";
943 subpass_index = "VUID-vkCmdDrawIndirectByteCountEXT-subpass-02685";
944 sample_location = "VUID-vkCmdDrawIndirectByteCountEXT-sampleLocationsEnable-02689";
945 linear_sampler = "VUID-vkCmdDrawIndirectByteCountEXT-magFilter-04553";
946 cubic_sampler = "VUID-vkCmdDrawIndirectByteCountEXT-None-02692";
947 indirect_protected_cb = "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02646";
sfricke-samsungb091d4e2021-04-18 23:15:59 -0700948 indirect_contiguous_memory = "VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-04567",
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700949 indirect_buffer_bit = "VUID-vkCmdDrawIndirectByteCountEXT-counterBuffer-02290";
950 viewport_count = "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-03417";
951 scissor_count = "VUID-vkCmdDrawIndirectByteCountEXT-scissorCount-03418";
952 viewport_scissor_count = "VUID-vkCmdDrawIndirectByteCountEXT-viewportCount-03419";
953 primitive_topology = "VUID-vkCmdDrawIndirectByteCountEXT-primitiveTopology-03420";
954 corner_sampled_address_mode = "VUID-vkCmdDrawIndirectByteCountEXT-flags-02696";
955 subpass_input = "VUID-vkCmdDrawIndirectByteCountEXT-None-02686";
956 imageview_atomic = "VUID-vkCmdDrawIndirectByteCountEXT-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -0700957 push_constants_set = "VUID-vkCmdDrawIndirectByteCountEXT-maintenance4-06425";
ziga-lunarg498b7e72022-03-12 00:33:37 +0100958 image_subresources_render_pass_write = "VUID-vkCmdDrawIndirectByteCountEXT-None-06537";
959 image_subresources_subpass_read = "VUID-vkCmdDrawIndirectByteCountEXT-None-06538";
960 image_subresources_subpass_write = "VUID-vkCmdDrawIndirectByteCountEXT-None-06539";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700961 descriptor_valid = "VUID-vkCmdDrawIndirectByteCountEXT-None-02699";
962 sampler_imageview_type = "VUID-vkCmdDrawIndirectByteCountEXT-None-02702";
963 sampler_implicitLod_dref_proj = "VUID-vkCmdDrawIndirectByteCountEXT-None-02703";
964 sampler_bias_offset = "VUID-vkCmdDrawIndirectByteCountEXT-None-02704";
965 vertex_binding_attribute = "VUID-vkCmdDrawIndirectByteCountEXT-None-02721";
966 dynamic_state_setting_commands = "VUID-vkCmdDrawIndirectByteCountEXT-None-02859";
sfricke-samsung962d6f02021-04-03 20:28:59 -0700967 rasterization_samples = "VUID-vkCmdDrawIndirectByteCountEXT-rasterizationSamples-04740";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700968 unprotected_command_buffer = "VUID-vkCmdDrawIndirectByteCountEXT-commandBuffer-02707";
969 max_multiview_instance_index = "VUID-vkCmdDrawIndirectByteCountEXT-maxMultiviewInstanceIndex-02688";
Mark Lobodzinskif786b412020-11-30 12:16:17 -0700970 img_filter_cubic = "VUID-vkCmdDrawIndirectByteCountEXT-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -0700971 filter_cubic = "VUID-vkCmdDrawIndirectByteCountEXT-filterCubic-02694";
972 filter_cubic_min_max = "VUID-vkCmdDrawIndirectByteCountEXT-filterCubicMinmax-02695";
Tobias Hector6663c9b2020-11-05 10:18:02 +0000973 viewport_count_primitive_shading_rate = "VUID-vkCmdDrawIndirectByteCountEXT-primitiveFragmentShadingRateWithMultipleViewports-04552";
Piers Daniell924cd832021-05-18 13:48:47 -0600974 patch_control_points = "VUID-vkCmdDrawIndirectByteCountEXT-None-04875";
975 rasterizer_discard_enable = "VUID-vkCmdDrawIndirectByteCountEXT-None-04876";
976 depth_bias_enable = "VUID-vkCmdDrawIndirectByteCountEXT-None-04877";
977 logic_op = "VUID-vkCmdDrawIndirectByteCountEXT-logicOp-04878";
978 primitive_restart_enable = "VUID-vkCmdDrawIndirectByteCountEXT-None-04879";
979 vertex_input_binding_stride = "VUID-vkCmdDrawIndirectByteCountEXT-pStrides-04884";
980 vertex_input = kVUID_Core_CmdDrawIndirectByteCountEXT_VertexInput;
ziga-lunarg8d62f952021-08-30 16:47:25 +0200981 blend_enable = "VUID-vkCmdDrawIndirectByteCountEXT-blendEnable-04727";
ziga-lunarg67b7c392022-03-26 01:45:34 +0100982 color_write_enable = "VUID-vkCmdDrawIndirectByteCountEXT-attachmentCount-06667";
stusmithedc4e392021-12-24 15:22:16 +0000983 dynamic_rendering_view_mask = "VUID-vkCmdDrawIndirectByteCountEXT-viewMask-06178";
984 dynamic_rendering_color_count = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06179";
985 dynamic_rendering_color_formats = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06180";
986 dynamic_rendering_depth_format = "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06181";
987 dynamic_rendering_stencil_format = "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06182";
988 dynamic_rendering_fsr = "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06183";
989 dynamic_rendering_fdm = "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06184";
990 dynamic_rendering_color_sample = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06185";
991 dynamic_rendering_depth_sample = "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06186";
992 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06187";
993 dynamic_rendering_multi_sample = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06188";
994 dynamic_rendering_06189 = "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06189";
995 dynamic_rendering_06190 = "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06190";
996 dynamic_rendering_06198 = "VUID-vkCmdDrawIndirectByteCountEXT-renderPass-06198";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +0200997 storage_image_read_without_format = "VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-06424";
998 storage_image_write_without_format = "VUID-vkCmdDrawIndirectByteCountEXT-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +0200999 depth_compare_sample = "VUID-vkCmdDrawIndirectByteCountEXT-None-06479";
Aaron Hagan80034ea2021-12-23 11:24:09 -05001000 dynamic_rendering_view_mask = "VUID-vkCmdDrawIndirectByteCountEXT-viewMask-06178";
1001 dynamic_rendering_color_count = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06179";
1002 dynamic_rendering_color_formats = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06180";
1003 dynamic_rendering_depth_format = "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06181";
1004 dynamic_rendering_stencil_format = "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06182";
1005 dynamic_rendering_fsr = "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06183";
1006 dynamic_rendering_fdm = "VUID-vkCmdDrawIndirectByteCountEXT-imageView-06184";
1007 dynamic_rendering_color_sample = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06185";
1008 dynamic_rendering_depth_sample = "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06186";
1009 dynamic_rendering_stencil_sample = "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06187";
Jeremy Gebben09c1a072022-02-08 09:42:47 -07001010 dynamic_rendering_multi_sample = "VUID-vkCmdDrawIndirectByteCountEXT-colorAttachmentCount-06188";
Aaron Hagan80034ea2021-12-23 11:24:09 -05001011 dynamic_rendering_06189 = "VUID-vkCmdDrawIndirectByteCountEXT-pDepthAttachment-06189";
1012 dynamic_rendering_06190 = "VUID-vkCmdDrawIndirectByteCountEXT-pStencilAttachment-06190";
1013 dynamic_rendering_06198 = "VUID-vkCmdDrawIndirectByteCountEXT-renderPass-06198";
ziga-lunarg50188622022-03-26 01:18:32 +01001014 dynamic_sample_locations = "VUID-vkCmdDrawIndirectByteCountEXT-None-06666";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001015 }
1016};
1017
1018struct DispatchVuidsCmdDispatchBase: DrawDispatchVuid {
1019 DispatchVuidsCmdDispatchBase() : DrawDispatchVuid() {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001020 pipeline_bound = "VUID-vkCmdDispatchBase-None-02700";
Mark Lobodzinski02d37552020-12-28 13:29:46 -07001021 dynamic_state = "VUID-vkCmdDispatchBase-commandBuffer-02701";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001022 compatible_pipeline = "VUID-vkCmdDispatchBase-None-02697";
1023 linear_sampler = "VUID-vkCmdDispatchBase-magFilter-04553";
1024 cubic_sampler = "VUID-vkCmdDispatchBase-None-02692";
1025 corner_sampled_address_mode = "VUID-vkCmdDispatchBase-flags-02696";
1026 imageview_atomic = "VUID-vkCmdDispatchBase-None-02691";
Piers Daniella7f93b62021-11-20 12:32:04 -07001027 push_constants_set = "VUID-vkCmdDispatchBase-maintenance4-06425";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001028 descriptor_valid = "VUID-vkCmdDispatchBase-None-02699";
1029 sampler_imageview_type = "VUID-vkCmdDispatchBase-None-02702";
1030 sampler_implicitLod_dref_proj = "VUID-vkCmdDispatchBase-None-02703";
1031 sampler_bias_offset = "VUID-vkCmdDispatchBase-None-02704";
1032 dynamic_state_setting_commands = "VUID-vkCmdDispatchBase-None-02859";
1033 unprotected_command_buffer = "VUID-vkCmdDispatchBase-commandBuffer-02707";
sfricke-samsunge79d0892021-06-17 08:56:22 -07001034 protected_command_buffer = "VUID-vkCmdDispatchBase-commandBuffer-02712";
Mark Lobodzinskif786b412020-11-30 12:16:17 -07001035 img_filter_cubic = "VUID-vkCmdDispatchBase-None-02693";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001036 filter_cubic = "VUID-vkCmdDispatchBase-filterCubic-02694";
1037 filter_cubic_min_max = "VUID-vkCmdDispatchBase-filterCubicMinmax-02695";
Lionel Landwerlin88423cb2021-12-07 15:31:02 +02001038 storage_image_read_without_format = "VUID-vkCmdDispatchBase-OpTypeImage-06424";
1039 storage_image_write_without_format = "VUID-vkCmdDispatchBase-OpTypeImage-06423";
Lionel Landwerlincdbe8682021-12-08 15:10:37 +02001040 depth_compare_sample = "VUID-vkCmdDispatchBase-None-06479";
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001041 }
1042};
1043
1044// 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 -07001045static const std::map<CMD_TYPE, DrawDispatchVuid> kDrawdispatchVuid = {
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001046 {CMD_DRAW, DispatchVuidsCmdDraw()},
Tony-LunarG4490de42021-06-21 15:49:19 -06001047 {CMD_DRAWMULTIEXT, DispatchVuidsCmdDrawMultiEXT()},
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001048 {CMD_DRAWINDEXED, DispatchVuidsCmdDrawIndexed()},
Tony-LunarG4490de42021-06-21 15:49:19 -06001049 {CMD_DRAWMULTIINDEXEDEXT, DispatchVuidsCmdDrawMultiIndexedEXT()},
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001050 {CMD_DRAWINDIRECT, DispatchVuidsCmdDrawIndirect()},
1051 {CMD_DRAWINDEXEDINDIRECT, DispatchVuidsCmdDrawIndexedIndirect()},
1052 {CMD_DISPATCH, DispatchVuidsCmdDispatch()},
1053 {CMD_DISPATCHINDIRECT, DispatchVuidsCmdDispatchIndirect()},
1054 {CMD_DRAWINDIRECTCOUNT, DispatchVuidsCmdDrawIndirectCount()},
sfricke-samsung85584a72021-09-30 21:43:38 -07001055 {CMD_DRAWINDIRECTCOUNTKHR, DispatchVuidsCmdDrawIndirectCount()},
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001056 {CMD_DRAWINDEXEDINDIRECTCOUNT, DispatchVuidsCmdDrawIndexedIndirectCount()},
sfricke-samsung85584a72021-09-30 21:43:38 -07001057 {CMD_DRAWINDEXEDINDIRECTCOUNTKHR, DispatchVuidsCmdDrawIndexedIndirectCount()},
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001058 {CMD_TRACERAYSNV, DispatchVuidsCmdTraceRaysNV()},
1059 {CMD_TRACERAYSKHR, DispatchVuidsCmdTraceRaysKHR()},
1060 {CMD_TRACERAYSINDIRECTKHR, DispatchVuidsCmdTraceRaysIndirectKHR()},
1061 {CMD_DRAWMESHTASKSNV, DispatchVuidsCmdDrawMeshTasksNV()},
1062 {CMD_DRAWMESHTASKSINDIRECTNV, DispatchVuidsCmdDrawMeshTasksIndirectNV()},
1063 {CMD_DRAWMESHTASKSINDIRECTCOUNTNV, DispatchVuidsCmdDrawMeshTasksIndirectCountNV()},
1064 {CMD_DRAWINDIRECTBYTECOUNTEXT, DispatchVuidsCmdDrawIndirectByteCountEXT()},
1065 {CMD_DISPATCHBASE, DispatchVuidsCmdDispatchBase()},
sfricke-samsung85584a72021-09-30 21:43:38 -07001066 {CMD_DISPATCHBASEKHR, DispatchVuidsCmdDispatchBase()},
Spencer Fricke507600b2020-03-22 13:23:06 -07001067 // Used if invalid cmd_type is used
Mark Lobodzinskiddf43612020-11-17 11:28:02 -07001068 {CMD_NONE, DrawDispatchVuid()}
Spencer Fricke507600b2020-03-22 13:23:06 -07001069};
1070// clang-format on
1071
1072// Getter function to provide kVUIDUndefined in case an invalid cmd_type is passed in
1073const DrawDispatchVuid &CoreChecks::GetDrawDispatchVuid(CMD_TYPE cmd_type) const {
Nathaniel Cesarioce9b4812020-12-17 08:55:28 -07001074 if (kDrawdispatchVuid.find(cmd_type) != kDrawdispatchVuid.cend()) {
1075 return kDrawdispatchVuid.at(cmd_type);
Spencer Fricke507600b2020-03-22 13:23:06 -07001076 } else {
Nathaniel Cesarioce9b4812020-12-17 08:55:28 -07001077 return kDrawdispatchVuid.at(CMD_NONE);
Spencer Fricke507600b2020-03-22 13:23:06 -07001078 }
1079}
1080
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001081// Generic function to handle validation for all CmdDraw* type functions
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001082bool CoreChecks::ValidateCmdDrawType(const CMD_BUFFER_STATE &cb_state, bool indexed, VkPipelineBindPoint bind_point,
sfricke-samsung85584a72021-09-30 21:43:38 -07001083 CMD_TYPE cmd_type) const {
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001084 bool skip = false;
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001085 skip |= ValidateCmd(&cb_state, cmd_type);
1086 skip |= ValidateCmdBufDrawState(&cb_state, cmd_type, indexed, bind_point);
1087 skip |= ValidateCmdRayQueryState(&cb_state, cmd_type, bind_point);
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001088 return skip;
1089}
1090
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001091bool CoreChecks::ValidateCmdDrawInstance(const CMD_BUFFER_STATE &cb_node, uint32_t instanceCount, uint32_t firstInstance,
sfricke-samsung85584a72021-09-30 21:43:38 -07001092 CMD_TYPE cmd_type) const {
locke-lunarg3fa463a2020-10-23 16:39:04 -06001093 bool skip = false;
1094 const DrawDispatchVuid vuid = GetDrawDispatchVuid(cmd_type);
sfricke-samsung85584a72021-09-30 21:43:38 -07001095 const char *caller = CommandTypeString(cmd_type);
locke-lunarg3fa463a2020-10-23 16:39:04 -06001096
1097 // Verify maxMultiviewInstanceIndex
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001098 if (cb_node.activeRenderPass && cb_node.activeRenderPass->renderPass() && enabled_features.multiview_features.multiview &&
locke-lunarg3fa463a2020-10-23 16:39:04 -06001099 ((instanceCount + firstInstance) > phys_dev_ext_props.multiview_props.maxMultiviewInstanceIndex)) {
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001100 LogObjectList objlist(cb_node.Handle());
1101 objlist.add(cb_node.activeRenderPass->Handle());
locke-lunarg3fa463a2020-10-23 16:39:04 -06001102 skip |= LogError(objlist, vuid.max_multiview_instance_index,
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001103 "%s: renderpass %s multiview is enabled, and maxMultiviewInstanceIndex: %" PRIu32
1104 ", but instanceCount: %" PRIu32 "and firstInstance: %" PRIu32 ".",
1105 caller, report_data->FormatHandle(cb_node.activeRenderPass->Handle()).c_str(),
locke-lunarg3fa463a2020-10-23 16:39:04 -06001106 phys_dev_ext_props.multiview_props.maxMultiviewInstanceIndex, instanceCount, firstInstance);
1107 }
1108 return skip;
1109}
1110
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001111bool CoreChecks::PreCallValidateCmdDraw(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount,
Jeff Bolz5c801d12019-10-09 10:38:45 -05001112 uint32_t firstVertex, uint32_t firstInstance) const {
locke-lunarg3fa463a2020-10-23 16:39:04 -06001113 bool skip = false;
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001114 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001115 skip |= ValidateCmdDrawInstance(*cb_state, instanceCount, firstInstance, CMD_DRAW);
1116 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAW);
locke-lunarg3fa463a2020-10-23 16:39:04 -06001117 return skip;
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001118}
1119
Tony-LunarG4490de42021-06-21 15:49:19 -06001120bool CoreChecks::PreCallValidateCmdDrawMultiEXT(VkCommandBuffer commandBuffer, uint32_t drawCount,
1121 const VkMultiDrawInfoEXT *pVertexInfo, uint32_t instanceCount,
1122 uint32_t firstInstance, uint32_t stride) const {
1123 bool skip = false;
1124 if (!enabled_features.multi_draw_features.multiDraw) {
1125 skip |= LogError(commandBuffer, "VUID-vkCmdDrawMultiEXT-None-04933",
1126 "vkCmdDrawMultiEXT(): The multiDraw feature must be enabled to "
1127 "call this command.");
1128 }
1129 if (drawCount > phys_dev_ext_props.multi_draw_props.maxMultiDrawCount) {
1130 skip |= LogError(commandBuffer, "VUID-vkCmdDrawMultiEXT-drawCount-04934",
1131 "vkCmdDrawMultiEXT(): parameter, uint32_t drawCount (%" PRIu32
1132 ") must be less than VkPhysicalDeviceMultiDrawPropertiesEXT::maxMultiDrawCount (%" PRIu32 ").",
1133 drawCount, phys_dev_ext_props.multi_draw_props.maxMultiDrawCount);
1134 }
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001135 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001136 skip |= ValidateCmdDrawInstance(*cb_state, instanceCount, firstInstance, CMD_DRAWMULTIEXT);
1137 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWMULTIEXT);
Tony-LunarG4490de42021-06-21 15:49:19 -06001138 return skip;
1139}
1140
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001141bool CoreChecks::ValidateCmdDrawIndexedBufferSize(const CMD_BUFFER_STATE &cb_state, uint32_t indexCount, uint32_t firstIndex,
1142 const char *caller, const char *first_index_vuid) const {
Tony-LunarG4490de42021-06-21 15:49:19 -06001143 bool skip = false;
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001144 if (cb_state.status & CBSTATUS_INDEX_BUFFER_BOUND) {
Tony-LunarG4490de42021-06-21 15:49:19 -06001145 unsigned int index_size = 0;
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001146 const auto &index_buffer_binding = cb_state.index_buffer_binding;
Tony-LunarG4490de42021-06-21 15:49:19 -06001147 if (index_buffer_binding.index_type == VK_INDEX_TYPE_UINT16) {
1148 index_size = 2;
1149 }
1150 else if (index_buffer_binding.index_type == VK_INDEX_TYPE_UINT32) {
1151 index_size = 4;
1152 }
1153 else if (index_buffer_binding.index_type == VK_INDEX_TYPE_UINT8_EXT) {
1154 index_size = 1;
1155 }
1156 VkDeviceSize end_offset = (index_size * (static_cast<VkDeviceSize>(firstIndex) + indexCount)) + index_buffer_binding.offset;
1157 if (end_offset > index_buffer_binding.size) {
1158 skip |= LogError(index_buffer_binding.buffer_state->buffer(), first_index_vuid,
1159 "%s: index size (%u) * (firstIndex (%u) + indexCount (%u)) "
1160 "+ binding offset (%" PRIuLEAST64 ") = an ending offset of %" PRIuLEAST64
1161 " bytes, which is greater than the index buffer size (%" PRIuLEAST64 ").",
1162 caller, index_size, firstIndex, indexCount, index_buffer_binding.offset, end_offset,
1163 index_buffer_binding.size);
1164 }
1165 }
1166 return skip;
1167}
1168
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001169bool CoreChecks::PreCallValidateCmdDrawIndexed(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount,
Jeff Bolz5c801d12019-10-09 10:38:45 -05001170 uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance) const {
locke-lunarg3fa463a2020-10-23 16:39:04 -06001171 bool skip = false;
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001172 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001173 skip |= ValidateCmdDrawInstance(*cb_state, instanceCount, firstInstance, CMD_DRAWINDEXED);
1174 skip |= ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWINDEXED);
1175 skip |= ValidateCmdDrawIndexedBufferSize(*cb_state, indexCount, firstIndex, "vkCmdDrawIndexed()",
Tony-LunarG4490de42021-06-21 15:49:19 -06001176 "VUID-vkCmdDrawIndexed-firstIndex-04932");
1177 return skip;
1178}
1179
1180bool CoreChecks::PreCallValidateCmdDrawMultiIndexedEXT(VkCommandBuffer commandBuffer, uint32_t drawCount,
1181 const VkMultiDrawIndexedInfoEXT *pIndexInfo, uint32_t instanceCount,
1182 uint32_t firstInstance, uint32_t stride,
1183 const int32_t *pVertexOffset) const {
1184 bool skip = false;
1185 if (!enabled_features.multi_draw_features.multiDraw) {
1186 skip |= LogError(commandBuffer, "VUID-vkCmdDrawMultiIndexedEXT-None-04937",
1187 "vkCmdDrawMultiIndexedEXT(): The multiDraw feature must be enabled to "
1188 "call this command.");
1189 }
1190 if (drawCount > phys_dev_ext_props.multi_draw_props.maxMultiDrawCount) {
1191 skip |= LogError(commandBuffer, "VUID-vkCmdDrawMultiIndexedEXT-drawCount-04939",
1192 "vkCmdDrawMultiIndexedEXT(): parameter, uint32_t drawCount (0x%" PRIu32
1193 ") must be less than VkPhysicalDeviceMultiDrawPropertiesEXT::maxMultiDrawCount (0x%" PRIu32 ").",
1194 drawCount, phys_dev_ext_props.multi_draw_props.maxMultiDrawCount);
1195 }
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001196 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001197 skip |= ValidateCmdDrawInstance(*cb_state, instanceCount, firstInstance, CMD_DRAWMULTIINDEXEDEXT);
1198 skip |= ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWMULTIINDEXEDEXT);
Ricardo Garcia27a26f52021-07-13 15:52:14 +02001199 const auto info_bytes = reinterpret_cast<const char *>(pIndexInfo);
Tony-LunarG4490de42021-06-21 15:49:19 -06001200 for (uint32_t i = 0; i < drawCount; i++) {
Ricardo Garcia27a26f52021-07-13 15:52:14 +02001201 const auto info_ptr = reinterpret_cast<const VkMultiDrawIndexedInfoEXT *>(info_bytes + i * stride);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001202 skip |= ValidateCmdDrawIndexedBufferSize(*cb_state, info_ptr->indexCount, info_ptr->firstIndex,
Tony-LunarG4490de42021-06-21 15:49:19 -06001203 "vkCmdDrawMultiIndexedEXT()", "VUID-vkCmdDrawMultiIndexedEXT-firstIndex-04938");
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001204 }
1205 return skip;
1206}
1207
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001208bool CoreChecks::PreCallValidateCmdDrawIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1209 uint32_t drawCount, uint32_t stride) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001210 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001211 bool skip = ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWINDIRECT);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001212 auto buffer_state = Get<BUFFER_STATE>(buffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001213 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, CMD_DRAWINDIRECT);
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001214 if (drawCount > 1) {
Lockee68ac652019-05-06 10:17:33 -06001215 skip |= ValidateCmdDrawStrideWithStruct(commandBuffer, "VUID-vkCmdDrawIndirect-drawCount-00476", stride,
1216 "VkDrawIndirectCommand", sizeof(VkDrawIndirectCommand));
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001217 skip |= ValidateCmdDrawStrideWithBuffer(commandBuffer, "VUID-vkCmdDrawIndirect-drawCount-00488", stride,
1218 "VkDrawIndirectCommand", sizeof(VkDrawIndirectCommand), drawCount, offset,
Jeremy Gebben9f537102021-10-05 16:37:12 -06001219 buffer_state.get());
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001220 } else if ((drawCount == 1) && (offset + sizeof(VkDrawIndirectCommand)) > buffer_state->createInfo.size) {
1221 skip |= LogError(commandBuffer, "VUID-vkCmdDrawIndirect-drawCount-00487",
Jeremy Gebbenda6b48f2021-05-13 10:46:18 -06001222 "CmdDrawIndirect: drawCount equals 1 and (offset + sizeof(VkDrawIndirectCommand)) (%" PRIu64 ") is not less than "
1223 "or equal to the size of buffer (%" PRIu64 ").",
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001224 (offset + sizeof(VkDrawIndirectCommand)), buffer_state->createInfo.size);
Lockee68ac652019-05-06 10:17:33 -06001225 }
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001226 // TODO: If the drawIndirectFirstInstance feature is not enabled, all the firstInstance members of the
1227 // VkDrawIndirectCommand structures accessed by this command must be 0, which will require access to the contents of 'buffer'.
1228 return skip;
1229}
1230
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001231bool CoreChecks::PreCallValidateCmdDrawIndexedIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001232 uint32_t drawCount, uint32_t stride) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001233 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001234 bool skip = ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWINDEXEDINDIRECT);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001235 auto buffer_state = Get<BUFFER_STATE>(buffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001236 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, CMD_DRAWINDEXEDINDIRECT);
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001237 if (drawCount > 1) {
Lockee68ac652019-05-06 10:17:33 -06001238 skip |= ValidateCmdDrawStrideWithStruct(commandBuffer, "VUID-vkCmdDrawIndexedIndirect-drawCount-00528", stride,
1239 "VkDrawIndexedIndirectCommand", sizeof(VkDrawIndexedIndirectCommand));
1240 skip |= ValidateCmdDrawStrideWithBuffer(commandBuffer, "VUID-vkCmdDrawIndexedIndirect-drawCount-00540", stride,
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001241 "VkDrawIndexedIndirectCommand", sizeof(VkDrawIndexedIndirectCommand), drawCount,
Jeremy Gebben9f537102021-10-05 16:37:12 -06001242 offset, buffer_state.get());
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001243 } else if ((drawCount == 1) && (offset + sizeof(VkDrawIndexedIndirectCommand)) > buffer_state->createInfo.size) {
1244 skip |= LogError(
1245 commandBuffer, "VUID-vkCmdDrawIndexedIndirect-drawCount-00539",
Jeremy Gebbenda6b48f2021-05-13 10:46:18 -06001246 "CmdDrawIndexedIndirect: drawCount equals 1 and (offset + sizeof(VkDrawIndexedIndirectCommand)) (%" PRIu64 ") is not less than "
1247 "or equal to the size of buffer (%" PRIu64 ").",
Tony-LunarGc0c3df52020-11-20 13:47:10 -07001248 (offset + sizeof(VkDrawIndexedIndirectCommand)), buffer_state->createInfo.size);
Lockee68ac652019-05-06 10:17:33 -06001249 }
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001250 // TODO: If the drawIndirectFirstInstance feature is not enabled, all the firstInstance members of the
1251 // VkDrawIndexedIndirectCommand structures accessed by this command must be 0, which will require access to the contents of
1252 // 'buffer'.
1253 return skip;
1254}
1255
Jeff Bolz5c801d12019-10-09 10:38:45 -05001256bool CoreChecks::PreCallValidateCmdDispatch(VkCommandBuffer commandBuffer, uint32_t x, uint32_t y, uint32_t z) const {
Lockef39c0772019-04-03 14:40:02 -06001257 bool skip = false;
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001258 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001259 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_COMPUTE, CMD_DISPATCH);
Lockef39c0772019-04-03 14:40:02 -06001260 return skip;
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001261}
1262
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001263bool CoreChecks::ValidateBaseGroups(const CMD_BUFFER_STATE &cb_state, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ,
Tony-LunarGf825e6d2020-12-16 13:05:17 -07001264 const char *apiName) const {
1265 bool skip = false;
1266 if (baseGroupX || baseGroupY || baseGroupZ) {
Tony-LunarGf825e6d2020-12-16 13:05:17 -07001267 const auto lv_bind_point = ConvertToLvlBindPoint(VK_PIPELINE_BIND_POINT_COMPUTE);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001268 const auto *pipeline_state = cb_state.lastBound[lv_bind_point].pipeline_state;
Jeremy Gebben11af9792021-08-20 10:20:09 -06001269 if (pipeline_state && !(pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_DISPATCH_BASE)) {
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001270 skip |= LogError(cb_state.Handle(), "VUID-vkCmdDispatchBase-baseGroupX-00427",
Tony-LunarGf825e6d2020-12-16 13:05:17 -07001271 "%s(): If any of baseGroupX, baseGroupY, or baseGroupZ are not zero, then the bound compute pipeline "
1272 "must have been created with the VK_PIPELINE_CREATE_DISPATCH_BASE flag",
1273 apiName);
1274 }
1275 }
1276 return skip;
1277}
1278
locke-lunarg25b6c352020-08-06 17:44:18 -06001279bool CoreChecks::PreCallValidateCmdDispatchBase(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY,
1280 uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY,
1281 uint32_t groupCountZ) const {
1282 bool skip = false;
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001283 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001284 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_COMPUTE, CMD_DISPATCHBASE);
1285 skip |= ValidateBaseGroups(*cb_state, baseGroupX, baseGroupY, baseGroupZ, "vkCmdDispatchBase()");
locke-lunarg25b6c352020-08-06 17:44:18 -06001286 return skip;
1287}
1288
1289bool CoreChecks::PreCallValidateCmdDispatchBaseKHR(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY,
1290 uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY,
1291 uint32_t groupCountZ) const {
1292 bool skip = false;
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001293 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001294 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_COMPUTE, CMD_DISPATCHBASEKHR);
1295 skip |= ValidateBaseGroups(*cb_state, baseGroupX, baseGroupY, baseGroupZ, "vkCmdDispatchBaseKHR()");
locke-lunarg25b6c352020-08-06 17:44:18 -06001296 return skip;
1297}
1298
Jeff Bolz5c801d12019-10-09 10:38:45 -05001299bool CoreChecks::PreCallValidateCmdDispatchIndirect(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001300 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001301 bool skip = ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_COMPUTE, CMD_DISPATCHINDIRECT);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001302 auto buffer_state = Get<BUFFER_STATE>(buffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001303 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, CMD_DISPATCHINDIRECT);
Tony-LunarGda555b52021-01-06 13:43:49 -07001304 if ((offset + sizeof(VkDispatchIndirectCommand)) > buffer_state->createInfo.size) {
1305 skip |= LogError(commandBuffer, "VUID-vkCmdDispatchIndirect-offset-00407",
1306 "vkCmdDispatchIndirect(): The sum of offset and the size of VkDispatchIndirectCommand is greater than the "
1307 "size of the buffer");
1308 }
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001309 return skip;
1310}
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001311bool CoreChecks::ValidateCmdDrawIndirectCount(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1312 VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount,
sfricke-samsung85584a72021-09-30 21:43:38 -07001313 uint32_t stride, CMD_TYPE cmd_type) const {
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001314 bool skip = false;
sfricke-samsung85584a72021-09-30 21:43:38 -07001315 const char *apiName = CommandTypeString(cmd_type);
Nathaniel Cesario7f231f12021-03-25 12:10:58 -06001316 if ((device_extensions.vk_khr_draw_indirect_count != kEnabledByCreateinfo) &&
1317 ((api_version >= VK_API_VERSION_1_2) && (enabled_features.core12.drawIndirectCount == VK_FALSE))) {
Shannon McPherson2c793ba2020-08-28 12:13:24 -06001318 skip |= LogError(commandBuffer, "VUID-vkCmdDrawIndirectCount-None-04445",
sfricke-samsung27c70722020-05-02 08:42:39 -07001319 "%s(): Starting in Vulkan 1.2 the VkPhysicalDeviceVulkan12Features::drawIndirectCount must be enabled to "
1320 "call this command.",
1321 apiName);
1322 }
AndreyVK_D3Db2753e12021-07-21 12:24:03 +03001323 skip |= ValidateCmdDrawStrideWithStruct(commandBuffer, "VUID-vkCmdDrawIndirectCount-stride-03110", stride,
1324 "VkDrawIndirectCommand", sizeof(VkDrawIndirectCommand));
Lockee68ac652019-05-06 10:17:33 -06001325 if (maxDrawCount > 1) {
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001326 auto buffer_state = Get<BUFFER_STATE>(buffer);
AndreyVK_D3Db2753e12021-07-21 12:24:03 +03001327 skip |= ValidateCmdDrawStrideWithBuffer(commandBuffer, "VUID-vkCmdDrawIndirectCount-maxDrawCount-03111", stride,
1328 "VkDrawIndirectCommand", sizeof(VkDrawIndirectCommand), maxDrawCount, offset,
Jeremy Gebben9f537102021-10-05 16:37:12 -06001329 buffer_state.get());
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001330 }
1331
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001332 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001333 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, cmd_type);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001334 auto buffer_state = Get<BUFFER_STATE>(buffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001335 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, cmd_type);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001336 auto count_buffer_state = Get<BUFFER_STATE>(countBuffer);
Jeremy Gebben9f537102021-10-05 16:37:12 -06001337 skip |= ValidateMemoryIsBoundToBuffer(count_buffer_state.get(), apiName, "VUID-vkCmdDrawIndirectCount-countBuffer-02714");
Tony-LunarG83544c72020-01-17 12:30:19 -07001338 skip |=
Jeremy Gebben9f537102021-10-05 16:37:12 -06001339 ValidateBufferUsageFlags(count_buffer_state.get(), VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT, true,
Tony-LunarG83544c72020-01-17 12:30:19 -07001340 "VUID-vkCmdDrawIndirectCount-countBuffer-02715", apiName, "VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT");
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001341 return skip;
1342}
1343
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001344bool CoreChecks::PreCallValidateCmdDrawIndirectCountKHR(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1345 VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount,
1346 uint32_t stride) const {
Tony-LunarG83544c72020-01-17 12:30:19 -07001347 return ValidateCmdDrawIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride,
sfricke-samsung85584a72021-09-30 21:43:38 -07001348 CMD_DRAWINDIRECTCOUNTKHR);
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001349}
1350
1351bool CoreChecks::PreCallValidateCmdDrawIndirectCount(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1352 VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount,
1353 uint32_t stride) const {
Tony-LunarG83544c72020-01-17 12:30:19 -07001354 return ValidateCmdDrawIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride,
sfricke-samsung85584a72021-09-30 21:43:38 -07001355 CMD_DRAWINDIRECTCOUNT);
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001356}
1357
1358bool CoreChecks::ValidateCmdDrawIndexedIndirectCount(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1359 VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount,
sfricke-samsung85584a72021-09-30 21:43:38 -07001360 uint32_t stride, CMD_TYPE cmd_type) const {
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001361 bool skip = false;
sfricke-samsung85584a72021-09-30 21:43:38 -07001362 const char *apiName = CommandTypeString(cmd_type);
Nathaniel Cesario7f231f12021-03-25 12:10:58 -06001363 if ((device_extensions.vk_khr_draw_indirect_count != kEnabledByCreateinfo) &&
1364 ((api_version >= VK_API_VERSION_1_2) && (enabled_features.core12.drawIndirectCount == VK_FALSE))) {
Shannon McPherson2c793ba2020-08-28 12:13:24 -06001365 skip |= LogError(commandBuffer, "VUID-vkCmdDrawIndexedIndirectCount-None-04445",
sfricke-samsung27c70722020-05-02 08:42:39 -07001366 "%s(): Starting in Vulkan 1.2 the VkPhysicalDeviceVulkan12Features::drawIndirectCount must be enabled to "
1367 "call this command.",
1368 apiName);
1369 }
AndreyVK_D3Db2753e12021-07-21 12:24:03 +03001370 skip |= ValidateCmdDrawStrideWithStruct(commandBuffer, "VUID-vkCmdDrawIndexedIndirectCount-stride-03142", stride,
1371 "VkDrawIndexedIndirectCommand", sizeof(VkDrawIndexedIndirectCommand));
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001372 auto buffer_state = Get<BUFFER_STATE>(buffer);
Lockee68ac652019-05-06 10:17:33 -06001373 if (maxDrawCount > 1) {
Mike Schuchardt65847d92019-12-20 13:50:47 -08001374 skip |= ValidateCmdDrawStrideWithBuffer(commandBuffer, "VUID-vkCmdDrawIndexedIndirectCount-maxDrawCount-03143", stride,
AndreyVK_D3Db2753e12021-07-21 12:24:03 +03001375 "VkDrawIndexedIndirectCommand", sizeof(VkDrawIndexedIndirectCommand), maxDrawCount,
Jeremy Gebben9f537102021-10-05 16:37:12 -06001376 offset, buffer_state.get());
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001377 }
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001378 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001379 skip |= ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_GRAPHICS, cmd_type);
1380 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, cmd_type);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001381 auto count_buffer_state = Get<BUFFER_STATE>(countBuffer);
Jeremy Gebben9f537102021-10-05 16:37:12 -06001382 skip |=
1383 ValidateMemoryIsBoundToBuffer(count_buffer_state.get(), apiName, "VUID-vkCmdDrawIndexedIndirectCount-countBuffer-02714");
1384 skip |= ValidateBufferUsageFlags(count_buffer_state.get(), VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT, true,
sfricke-samsungf692b972020-05-02 08:00:45 -07001385 "VUID-vkCmdDrawIndexedIndirectCount-countBuffer-02715", apiName,
Mike Schuchardt65847d92019-12-20 13:50:47 -08001386 "VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT");
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001387 return skip;
1388}
1389
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001390bool CoreChecks::PreCallValidateCmdDrawIndexedIndirectCountKHR(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1391 VkBuffer countBuffer, VkDeviceSize countBufferOffset,
1392 uint32_t maxDrawCount, uint32_t stride) const {
sfricke-samsungf692b972020-05-02 08:00:45 -07001393 return ValidateCmdDrawIndexedIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride,
sfricke-samsung85584a72021-09-30 21:43:38 -07001394 CMD_DRAWINDEXEDINDIRECTCOUNTKHR);
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001395}
1396
1397bool CoreChecks::PreCallValidateCmdDrawIndexedIndirectCount(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1398 VkBuffer countBuffer, VkDeviceSize countBufferOffset,
1399 uint32_t maxDrawCount, uint32_t stride) const {
sfricke-samsungf692b972020-05-02 08:00:45 -07001400 return ValidateCmdDrawIndexedIndirectCount(commandBuffer, buffer, offset, countBuffer, countBufferOffset, maxDrawCount, stride,
sfricke-samsung85584a72021-09-30 21:43:38 -07001401 CMD_DRAWINDEXEDINDIRECTCOUNT);
Tony-LunarGa74d3fe2019-11-22 15:43:20 -07001402}
1403
locke-lunarg9a16ebb2020-07-30 16:56:33 -06001404bool CoreChecks::PreCallValidateCmdDrawIndirectByteCountEXT(VkCommandBuffer commandBuffer, uint32_t instanceCount,
1405 uint32_t firstInstance, VkBuffer counterBuffer,
1406 VkDeviceSize counterBufferOffset, uint32_t counterOffset,
1407 uint32_t vertexStride) const {
sfricke-samsungd5e9adb2020-10-26 03:59:29 -07001408 bool skip = false;
Tony-LunarG2c94ba82020-11-05 14:21:40 -07001409 if (!enabled_features.transform_feedback_features.transformFeedback) {
1410 skip |= LogError(commandBuffer, "VUID-vkCmdDrawIndirectByteCountEXT-transformFeedback-02287",
1411 "%s: transformFeedback feature is not enabled.", "vkCmdDrawIndirectByteCountEXT()");
1412 }
sfricke-samsung45996a42021-09-16 13:45:27 -07001413 if (IsExtEnabled(device_extensions.vk_ext_transform_feedback) &&
1414 !phys_dev_ext_props.transform_feedback_props.transformFeedbackDraw) {
sfricke-samsungba459bd2020-12-06 23:20:04 -08001415 skip |= LogError(commandBuffer, "VUID-vkCmdDrawIndirectByteCountEXT-transformFeedbackDraw-02288",
Tony-LunarG2c94ba82020-11-05 14:21:40 -07001416 "%s: VkPhysicalDeviceTransformFeedbackPropertiesEXT::transformFeedbackDraw is not supported",
1417 "vkCmdDrawIndirectByteCountEXT()");
1418 }
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001419 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001420 skip |= ValidateCmdDrawInstance(*cb_state, instanceCount, firstInstance, CMD_DRAWINDIRECTBYTECOUNTEXT);
1421 skip |= ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWINDIRECTBYTECOUNTEXT);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001422 auto counter_buffer_state = Get<BUFFER_STATE>(counterBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001423 skip |= ValidateIndirectCmd(*cb_state, *counter_buffer_state, CMD_DRAWINDIRECTBYTECOUNTEXT);
sfricke-samsungd5e9adb2020-10-26 03:59:29 -07001424 return skip;
locke-lunarg9a16ebb2020-07-30 16:56:33 -06001425}
1426
Jeff Bolzf6e872c2019-10-22 12:17:28 -05001427bool CoreChecks::PreCallValidateCmdTraceRaysNV(VkCommandBuffer commandBuffer, VkBuffer raygenShaderBindingTableBuffer,
1428 VkDeviceSize raygenShaderBindingOffset, VkBuffer missShaderBindingTableBuffer,
1429 VkDeviceSize missShaderBindingOffset, VkDeviceSize missShaderBindingStride,
1430 VkBuffer hitShaderBindingTableBuffer, VkDeviceSize hitShaderBindingOffset,
1431 VkDeviceSize hitShaderBindingStride, VkBuffer callableShaderBindingTableBuffer,
1432 VkDeviceSize callableShaderBindingOffset, VkDeviceSize callableShaderBindingStride,
1433 uint32_t width, uint32_t height, uint32_t depth) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001434 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001435 bool skip = ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_RAY_TRACING_NV, CMD_TRACERAYSNV);
Jeremy Gebbenb20a8242021-11-05 15:14:43 -06001436 auto callable_shader_buffer_state = Get<BUFFER_STATE>(callableShaderBindingTableBuffer);
sourav parmard1521802020-06-07 21:49:02 -07001437 if (callable_shader_buffer_state && callableShaderBindingOffset >= callable_shader_buffer_state->createInfo.size) {
1438 skip |= LogError(commandBuffer, "VUID-vkCmdTraceRaysNV-callableShaderBindingOffset-02461",
1439 "vkCmdTraceRaysNV: callableShaderBindingOffset %" PRIu64
1440 " must be less than the size of callableShaderBindingTableBuffer %" PRIu64 " .",
1441 callableShaderBindingOffset, callable_shader_buffer_state->createInfo.size);
1442 }
Jeremy Gebbenb20a8242021-11-05 15:14:43 -06001443 auto hit_shader_buffer_state = Get<BUFFER_STATE>(hitShaderBindingTableBuffer);
sourav parmard1521802020-06-07 21:49:02 -07001444 if (hit_shader_buffer_state && hitShaderBindingOffset >= hit_shader_buffer_state->createInfo.size) {
1445 skip |= LogError(commandBuffer, "VUID-vkCmdTraceRaysNV-hitShaderBindingOffset-02459",
1446 "vkCmdTraceRaysNV: hitShaderBindingOffset %" PRIu64
1447 " must be less than the size of hitShaderBindingTableBuffer %" PRIu64 " .",
1448 hitShaderBindingOffset, hit_shader_buffer_state->createInfo.size);
1449 }
Jeremy Gebbenb20a8242021-11-05 15:14:43 -06001450 auto miss_shader_buffer_state = Get<BUFFER_STATE>(missShaderBindingTableBuffer);
sourav parmard1521802020-06-07 21:49:02 -07001451 if (miss_shader_buffer_state && missShaderBindingOffset >= miss_shader_buffer_state->createInfo.size) {
1452 skip |= LogError(commandBuffer, "VUID-vkCmdTraceRaysNV-missShaderBindingOffset-02457",
1453 "vkCmdTraceRaysNV: missShaderBindingOffset %" PRIu64
baldurk751594b2020-09-09 09:41:02 +01001454 " must be less than the size of missShaderBindingTableBuffer %" PRIu64 " .",
sourav parmard1521802020-06-07 21:49:02 -07001455 missShaderBindingOffset, miss_shader_buffer_state->createInfo.size);
1456 }
Jeremy Gebbenb20a8242021-11-05 15:14:43 -06001457 auto raygen_shader_buffer_state = Get<BUFFER_STATE>(raygenShaderBindingTableBuffer);
sourav parmard1521802020-06-07 21:49:02 -07001458 if (raygenShaderBindingOffset >= raygen_shader_buffer_state->createInfo.size) {
1459 skip |= LogError(commandBuffer, "VUID-vkCmdTraceRaysNV-raygenShaderBindingOffset-02455",
1460 "vkCmdTraceRaysNV: raygenShaderBindingOffset %" PRIu64
baldurk751594b2020-09-09 09:41:02 +01001461 " must be less than the size of raygenShaderBindingTableBuffer %" PRIu64 " .",
sourav parmard1521802020-06-07 21:49:02 -07001462 raygenShaderBindingOffset, raygen_shader_buffer_state->createInfo.size);
1463 }
sourav parmarcd5fb182020-07-17 12:58:44 -07001464
sourav parmar30e19392020-12-02 16:57:21 -08001465 const auto lv_bind_point = ConvertToLvlBindPoint(VK_PIPELINE_BIND_POINT_RAY_TRACING_NV);
1466 const PIPELINE_STATE *pipeline_state = cb_state->lastBound[lv_bind_point].pipeline_state;
Jeremy Gebben14b0d1a2021-05-15 20:15:41 -06001467 if (!pipeline_state || (pipeline_state && !pipeline_state->pipeline())) {
sourav parmar30e19392020-12-02 16:57:21 -08001468 skip |= LogError(device, "VUID-vkCmdTraceRaysNV-None-02700",
1469 "vkCmdTraceRaysKHR: A valid pipeline must be bound to the pipeline bind point used by this command.");
sourav parmarcd5fb182020-07-17 12:58:44 -07001470 }
Jeff Bolzf6e872c2019-10-22 12:17:28 -05001471 return skip;
1472}
1473
Jeff Bolz443c2ca2020-03-19 12:11:51 -05001474bool CoreChecks::PreCallValidateCmdTraceRaysKHR(VkCommandBuffer commandBuffer,
sourav parmarcd5fb182020-07-17 12:58:44 -07001475 const VkStridedDeviceAddressRegionKHR *pRaygenShaderBindingTable,
1476 const VkStridedDeviceAddressRegionKHR *pMissShaderBindingTable,
1477 const VkStridedDeviceAddressRegionKHR *pHitShaderBindingTable,
1478 const VkStridedDeviceAddressRegionKHR *pCallableShaderBindingTable, uint32_t width,
Jeff Bolz443c2ca2020-03-19 12:11:51 -05001479 uint32_t height, uint32_t depth) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001480 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001481 bool skip = ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, CMD_TRACERAYSKHR);
Shannon McPherson9caca052020-11-25 11:34:38 -07001482 const auto lv_bind_point = ConvertToLvlBindPoint(VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR);
1483 const PIPELINE_STATE *pipeline_state = cb_state->lastBound[lv_bind_point].pipeline_state;
Jeremy Gebben14b0d1a2021-05-15 20:15:41 -06001484 if (!pipeline_state || (pipeline_state && !pipeline_state->pipeline())) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001485 skip |= LogError(device, "VUID-vkCmdTraceRaysKHR-None-02700",
1486 "vkCmdTraceRaysKHR: A valid pipeline must be bound to the pipeline bind point used by this command.");
1487 } else { // bound to valid RT pipeline
Jeremy Gebben11af9792021-08-20 10:20:09 -06001488 if (pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001489 if (!pHitShaderBindingTable->deviceAddress) {
1490 skip |= LogError(device, "VUID-vkCmdTraceRaysKHR-flags-03697",
1491 "vkCmdTraceRaysKHR: If the currently bound ray tracing pipeline was created with flags "
1492 "that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, the "
1493 "deviceAddress member of pHitShaderBindingTable must not be zero.");
1494 }
1495 if (!pHitShaderBindingTable || pHitShaderBindingTable->size == 0 || pHitShaderBindingTable->stride == 0) {
1496 skip |= LogError(device, "VUID-vkCmdTraceRaysKHR-flags-03514",
1497 "vkCmdTraceRaysKHR: If the currently bound ray tracing pipeline was created with "
1498 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, "
1499 "entries in pHitShaderBindingTable accessed as a result of this command in order to "
1500 "execute an intersection shader must not be set to zero.");
1501 }
1502 }
Jeremy Gebben11af9792021-08-20 10:20:09 -06001503 if (pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001504 if (!pHitShaderBindingTable->deviceAddress) {
1505 skip |= LogError(device, "VUID-vkCmdTraceRaysKHR-flags-03696",
1506 "vkCmdTraceRaysKHR: If the currently bound ray tracing pipeline was created with flags "
1507 "that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, the "
1508 "deviceAddress member of pHitShaderBindingTable must not be zero.");
1509 }
1510 if (!pHitShaderBindingTable || pHitShaderBindingTable->size == 0 || pHitShaderBindingTable->stride == 0) {
1511 skip |= LogError(device, "VUID-vkCmdTraceRaysKHR-flags-03513",
1512 "vkCmdTraceRaysKHR: If the currently bound ray tracing pipeline was created with "
1513 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, "
1514 "entries in pHitShaderBindingTable accessed as a result of this command in order to "
1515 "execute a closest hit shader must not be set to zero.");
1516 }
1517 }
Jeremy Gebben11af9792021-08-20 10:20:09 -06001518 if (pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001519 if (!pHitShaderBindingTable || pHitShaderBindingTable->size == 0 || pHitShaderBindingTable->stride == 0) {
1520 skip |= LogError(device, "VUID-vkCmdTraceRaysKHR-flags-03512",
1521 "vkCmdTraceRaysKHR: If the currently bound ray tracing pipeline was created with "
1522 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR, "
1523 "entries in pHitShaderBindingTable accessed as a result of this command in order to "
1524 "execute an any hit shader must not be set to zero.");
1525 }
1526 }
1527 }
Jeff Bolz443c2ca2020-03-19 12:11:51 -05001528 return skip;
1529}
1530
Jeff Bolz443c2ca2020-03-19 12:11:51 -05001531bool CoreChecks::PreCallValidateCmdTraceRaysIndirectKHR(VkCommandBuffer commandBuffer,
sourav parmarcd5fb182020-07-17 12:58:44 -07001532 const VkStridedDeviceAddressRegionKHR *pRaygenShaderBindingTable,
1533 const VkStridedDeviceAddressRegionKHR *pMissShaderBindingTable,
1534 const VkStridedDeviceAddressRegionKHR *pHitShaderBindingTable,
1535 const VkStridedDeviceAddressRegionKHR *pCallableShaderBindingTable,
1536 VkDeviceAddress indirectDeviceAddress) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001537 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001538 bool skip = ValidateCmdDrawType(*cb_state, true, VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR, CMD_TRACERAYSINDIRECTKHR);
Shannon McPherson9caca052020-11-25 11:34:38 -07001539 const auto lv_bind_point = ConvertToLvlBindPoint(VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR);
Jeremy Gebbenb20a8242021-11-05 15:14:43 -06001540 const auto *pipeline_state = cb_state->lastBound[lv_bind_point].pipeline_state;
Jeremy Gebben14b0d1a2021-05-15 20:15:41 -06001541 if (!pipeline_state || (pipeline_state && !pipeline_state->pipeline())) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001542 skip |=
1543 LogError(device, "VUID-vkCmdTraceRaysIndirectKHR-None-02700",
1544 "vkCmdTraceRaysIndirectKHR: A valid pipeline must be bound to the pipeline bind point used by this command.");
1545 } else { // valid bind point
Jeremy Gebben11af9792021-08-20 10:20:09 -06001546 if (pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001547 if (!pHitShaderBindingTable || pHitShaderBindingTable->deviceAddress == 0) {
1548 skip |= LogError(device, "VUID-vkCmdTraceRaysIndirectKHR-flags-03697",
1549 "vkCmdTraceRaysIndirectKHR: If the currently bound ray tracing pipeline was created with "
1550 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, the "
1551 "deviceAddress member of pHitShaderBindingTable must not be zero.");
1552 }
1553 if (!pHitShaderBindingTable || pHitShaderBindingTable->size == 0 || pHitShaderBindingTable->stride == 0) {
1554 skip |= LogError(device, "VUID-vkCmdTraceRaysIndirectKHR-flags-03514",
1555 "vkCmdTraceRaysIndirectKHR: If the currently bound ray tracing pipeline was created with "
1556 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR, "
1557 "entries in pHitShaderBindingTable accessed as a result of this command in order to "
1558 "execute an intersection shader must not be set to zero.");
1559 }
1560 }
Jeremy Gebben11af9792021-08-20 10:20:09 -06001561 if (pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001562 if (!pHitShaderBindingTable || pHitShaderBindingTable->deviceAddress == 0) {
1563 skip |= LogError(device, "VUID-vkCmdTraceRaysIndirectKHR-flags-03696",
1564 "vkCmdTraceRaysIndirectKHR:If the currently bound ray tracing pipeline was created with "
1565 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, "
1566 "the deviceAddress member of pHitShaderBindingTable must not be zero.");
1567 }
1568 if (!pHitShaderBindingTable || pHitShaderBindingTable->size == 0 || pHitShaderBindingTable->stride == 0) {
1569 skip |= LogError(device, "VUID-vkCmdTraceRaysIndirectKHR-flags-03513",
1570 "vkCmdTraceRaysIndirectKHR: If the currently bound ray tracing pipeline was created with "
1571 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR, "
1572 "entries in pHitShaderBindingTable accessed as a result of this command in order to "
1573 "execute a closest hit shader must not be set to zero.");
1574 }
1575 }
Jeremy Gebben11af9792021-08-20 10:20:09 -06001576 if (pipeline_state->GetPipelineCreateFlags() & VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR) {
sourav parmarcd5fb182020-07-17 12:58:44 -07001577 if (!pHitShaderBindingTable || pHitShaderBindingTable->size == 0 || pHitShaderBindingTable->stride == 0) {
1578 skip |= LogError(device, "VUID-vkCmdTraceRaysIndirectKHR-flags-03512",
1579 "vkCmdTraceRaysIndirectKHR: If the currently bound ray tracing pipeline was created with "
1580 "flags that included VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR, "
1581 "entries in pHitShaderBindingTable accessed as a result of this command in order to "
1582 "execute an any hit shader must not be set to zero.");
1583 }
1584 }
1585 }
Jeff Bolz443c2ca2020-03-19 12:11:51 -05001586 return skip;
1587}
1588
Jeff Bolz5c801d12019-10-09 10:38:45 -05001589bool CoreChecks::PreCallValidateCmdDrawMeshTasksNV(VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001590 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001591 bool skip = ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWMESHTASKSNV);
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001592 return skip;
1593}
1594
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001595bool CoreChecks::PreCallValidateCmdDrawMeshTasksIndirectNV(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
Jeff Bolz5c801d12019-10-09 10:38:45 -05001596 uint32_t drawCount, uint32_t stride) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001597 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001598 bool skip = ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWMESHTASKSINDIRECTNV);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001599 auto buffer_state = Get<BUFFER_STATE>(buffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001600 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, CMD_DRAWMESHTASKSINDIRECTNV);
Lockee68ac652019-05-06 10:17:33 -06001601 if (drawCount > 1) {
Lockee68ac652019-05-06 10:17:33 -06001602 skip |= ValidateCmdDrawStrideWithBuffer(commandBuffer, "VUID-vkCmdDrawMeshTasksIndirectNV-drawCount-02157", stride,
1603 "VkDrawMeshTasksIndirectCommandNV", sizeof(VkDrawMeshTasksIndirectCommandNV),
Jeremy Gebben9f537102021-10-05 16:37:12 -06001604 drawCount, offset, buffer_state.get());
Lockee68ac652019-05-06 10:17:33 -06001605 }
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001606 return skip;
1607}
1608
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001609bool CoreChecks::PreCallValidateCmdDrawMeshTasksIndirectCountNV(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset,
1610 VkBuffer countBuffer, VkDeviceSize countBufferOffset,
Jeff Bolz5c801d12019-10-09 10:38:45 -05001611 uint32_t maxDrawCount, uint32_t stride) const {
Jeremy Gebbenb68fa022022-01-28 10:08:37 -07001612 auto cb_state = GetRead<CMD_BUFFER_STATE>(commandBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001613 bool skip = ValidateCmdDrawType(*cb_state, false, VK_PIPELINE_BIND_POINT_GRAPHICS, CMD_DRAWMESHTASKSINDIRECTCOUNTNV);
Jeremy Gebbenf4449392022-01-28 10:09:10 -07001614 auto buffer_state = Get<BUFFER_STATE>(buffer);
1615 auto count_buffer_state = Get<BUFFER_STATE>(countBuffer);
Jeremy Gebbene5361dd2021-11-18 14:23:56 -07001616 skip |= ValidateIndirectCmd(*cb_state, *buffer_state, CMD_DRAWMESHTASKSINDIRECTCOUNTNV);
Jeremy Gebben9f537102021-10-05 16:37:12 -06001617 skip |= ValidateMemoryIsBoundToBuffer(count_buffer_state.get(), "vkCmdDrawMeshTasksIndirectCountNV()",
Shannon McPhersonde3eeba2019-04-30 16:53:59 -06001618 "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02714");
Jeremy Gebben9f537102021-10-05 16:37:12 -06001619 skip |= ValidateBufferUsageFlags(count_buffer_state.get(), VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT, true,
sfricke-samsungf692b972020-05-02 08:00:45 -07001620 "VUID-vkCmdDrawMeshTasksIndirectCountNV-countBuffer-02715",
1621 "vkCmdDrawMeshTasksIndirectCountNV()", "VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT");
Lockee68ac652019-05-06 10:17:33 -06001622 skip |= ValidateCmdDrawStrideWithStruct(commandBuffer, "VUID-vkCmdDrawMeshTasksIndirectCountNV-stride-02182", stride,
1623 "VkDrawMeshTasksIndirectCommandNV", sizeof(VkDrawMeshTasksIndirectCommandNV));
1624 if (maxDrawCount > 1) {
1625 skip |= ValidateCmdDrawStrideWithBuffer(commandBuffer, "VUID-vkCmdDrawMeshTasksIndirectCountNV-maxDrawCount-02183", stride,
1626 "VkDrawMeshTasksIndirectCommandNV", sizeof(VkDrawMeshTasksIndirectCommandNV),
Jeremy Gebben9f537102021-10-05 16:37:12 -06001627 maxDrawCount, offset, buffer_state.get());
Lockee68ac652019-05-06 10:17:33 -06001628 }
Jasper St. Pierre512613a2019-04-08 16:25:23 -07001629 return skip;
1630}