blob: 6084469541c273063cef8ecdf3ad7c8a4b1b845d [file] [edit]
/* Copyright (c) 2015-2026 The Khronos Group Inc.
* Copyright (c) 2015-2026 Valve Corporation
* Copyright (c) 2015-2026 LunarG, Inc.
* Copyright (C) 2015-2026 Google Inc.
* Copyright (c) 2025 Arm Limited.
* Modifications Copyright (C) 2020-2026 Advanced Micro Devices, Inc. All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "drawdispatch_vuids.h"
#include "error_message/logging.h"
#include "generated/error_location_helper.h"
namespace vvl {
using Func = vvl::Func;
// The reason we keep strings of ALL the VUIDs is to make it easier to search and know what is covered or not.
// The reality is the "action" commands (draw/dispatch/traceRays) VUID list has got stupidly large with 30+ ways to invoke work,
// each having over 250 VUs, large enough that we are breaking stack limits from how many strings we have!!
// (https://github.com/KhronosGroup/Vulkan-ValidationLayers/issues/11779)
//
// ... So this is "THE EXCEPTION, NOT THE NORMAL" here that we just concatenate the VUID from a number/enum
// The scripts/vk_validation_stats.py is adjusted to handle this.
//
std::string CreateActionVuid(Func function, const ActionVUID id) {
const char* suffix = nullptr;
// clang-format off
switch (id) {
case ActionVUID::UNKNOWN: suffix = "UNKNOWN"; break;
// TODO - This one is a lie, see ValidateCmdBufImageLayouts()
// ### VUID-vkCmdDraw-None-09600
case ActionVUID::IMAGE_LAYOUT_09600: suffix = "None-09600"; break;
// We use the three # to reference one real example, for the scripts/vk_validation_stats.py to parse
//
// ### VUID-vkCmdDraw-None-04007
case ActionVUID::VERTEX_BINDING_04007: suffix = "None-04007"; break;
// ### VUID-vkCmdDraw-None-04008
case ActionVUID::VERTEX_BINDING_04008: suffix = "None-04008"; break;
// ### VUID-vkCmdDraw-subpass-02685
case ActionVUID::SUBPASS_INDEX_02685: suffix = "subpass-02685"; break;
// ### VUID-vkCmdDraw-sampleLocationsEnable-02689
case ActionVUID::SAMPLE_LOCATION_02689: suffix = "sampleLocationsEnable-02689"; break;
// ### VUID-vkCmdDraw-sampleLocationsEnable-07484
case ActionVUID::SAMPLE_LOCATION_07484: suffix = "sampleLocationsEnable-07484"; break;
// ### VUID-vkCmdDraw-sampleLocationsEnable-07485
case ActionVUID::SAMPLE_LOCATION_07485: suffix = "sampleLocationsEnable-07485"; break;
// ### VUID-vkCmdDraw-sampleLocationsEnable-07486
case ActionVUID::SAMPLE_LOCATION_07486: suffix = "sampleLocationsEnable-07486"; break;
// ### VUID-vkCmdDraw-sampleLocationsEnable-07487
case ActionVUID::SAMPLE_LOCATION_07487: suffix = "sampleLocationsEnable-07487"; break;
// ### VUID-vkCmdDraw-None-09211
case ActionVUID::RASTERIZATION_SAMPLES_09211: suffix = "None-09211"; break;
// ### VUID-vkCmdDraw-magFilter-04553
case ActionVUID::LINEAR_FILTER_04553: suffix = "magFilter-04553"; break;
// ### VUID-vkCmdDraw-magFilter-09598
case ActionVUID::LINEAR_FILTER_09598: suffix = "magFilter-09598"; break;
// ### VUID-vkCmdDraw-mipmapMode-04770
case ActionVUID::LINEAR_MIPMAP_04770: suffix = "mipmapMode-04770"; break;
// ### VUID-vkCmdDraw-mipmapMode-09599
case ActionVUID::LINEAR_MIPMAP_09599: suffix = "mipmapMode-09599"; break;
// ### VUID-vkCmdDraw-colorAttachmentCount-09362
case ActionVUID::EXTERNAL_FORMAT_RESOLVE_09362: suffix = "colorAttachmentCount-09362"; break;
// ### VUID-vkCmdDraw-None-09363
case ActionVUID::EXTERNAL_FORMAT_RESOLVE_09363: suffix = "None-09363"; break;
// ### VUID-vkCmdDraw-None-09364
case ActionVUID::EXTERNAL_FORMAT_RESOLVE_09364: suffix = "None-09364"; break;
// ### VUID-vkCmdDraw-None-09365
case ActionVUID::EXTERNAL_FORMAT_RESOLVE_09365: suffix = "None-09365"; break;
// ### VUID-vkCmdDraw-None-09368
case ActionVUID::EXTERNAL_FORMAT_RESOLVE_09368: suffix = "None-09368"; break;
// ### VUID-vkCmdDraw-None-09369
case ActionVUID::EXTERNAL_FORMAT_RESOLVE_09369: suffix = "None-09369"; break;
// ### VUID-vkCmdDraw-colorAttachmentCount-09372
case ActionVUID::EXTERNAL_FORMAT_RESOLVE_09372: suffix = "colorAttachmentCount-09372"; break;
// ### VUID-vkCmdDraw-flags-11521
case ActionVUID::CUSTOM_RESOLVE_11521: suffix = "flags-11521"; break;
// ### VUID-vkCmdDraw-None-11522
case ActionVUID::CUSTOM_RESOLVE_11522: suffix = "None-11522"; break;
// ### VUID-vkCmdDraw-None-11523
case ActionVUID::CUSTOM_RESOLVE_11523: suffix = "None-11523"; break;
// ### VUID-vkCmdDraw-customResolve-11524
case ActionVUID::CUSTOM_RESOLVE_11524: suffix = "customResolve-11524"; break;
// ### VUID-vkCmdDraw-customResolve-11525
case ActionVUID::CUSTOM_RESOLVE_11525: suffix = "customResolve-11525"; break;
// ### VUID-vkCmdDraw-customResolve-11529
case ActionVUID::CUSTOM_RESOLVE_11529: suffix = "customResolve-11529"; break;
// ### VUID-vkCmdDraw-customResolve-11530
case ActionVUID::CUSTOM_RESOLVE_11530: suffix = "customResolve-11530"; break;
// ### VUID-vkCmdDraw-pColorAttachments-11539
case ActionVUID::CUSTOM_RESOLVE_11539: suffix = "pColorAttachments-11539"; break;
// ### VUID-vkCmdDraw-pDepthAttachment-11540
case ActionVUID::CUSTOM_RESOLVE_11540: suffix = "pDepthAttachment-11540"; break;
// ### VUID-vkCmdDraw-pStencilAttachment-11860
case ActionVUID::CUSTOM_RESOLVE_11860: suffix = "pStencilAttachment-11860"; break;
// ### VUID-vkCmdDraw-None-11861
case ActionVUID::CUSTOM_RESOLVE_11861: suffix = "None-11861"; break;
// ### VUID-vkCmdDraw-None-11862
case ActionVUID::CUSTOM_RESOLVE_11862: suffix = "None-11862"; break;
// ### VUID-vkCmdDraw-None-11863
case ActionVUID::CUSTOM_RESOLVE_11863: suffix = "None-11863"; break;
// ### VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-11864
case ActionVUID::CUSTOM_RESOLVE_11864: suffix = "dynamicRenderingUnusedAttachments-11864"; break;
// ### VUID-vkCmdDraw-None-11865
case ActionVUID::CUSTOM_RESOLVE_11865: suffix = "None-11865"; break;
// ### VUID-vkCmdDraw-None-11866
case ActionVUID::CUSTOM_RESOLVE_11866: suffix = "None-11866"; break;
// ### VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-11867
case ActionVUID::CUSTOM_RESOLVE_11867: suffix = "dynamicRenderingUnusedAttachments-11867"; break;
// ### VUID-vkCmdDraw-None-11868
case ActionVUID::CUSTOM_RESOLVE_11868: suffix = "None-11868"; break;
// ### VUID-vkCmdDraw-None-11869
case ActionVUID::CUSTOM_RESOLVE_11869: suffix = "None-11869"; break;
// ### VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-11870
case ActionVUID::CUSTOM_RESOLVE_11870: suffix = "dynamicRenderingUnusedAttachments-11870"; break;
// ### VUID-vkCmdDraw-stippledLineEnable-07495
case ActionVUID::STIPPLED_RECTANGULAR_07495: suffix = "stippledLineEnable-07495"; break;
// ### VUID-vkCmdDraw-stippledLineEnable-07496
case ActionVUID::STIPPLED_BRESENHAM_07496: suffix = "stippledLineEnable-07496"; break;
// ### VUID-vkCmdDraw-stippledLineEnable-07497
case ActionVUID::STIPPLED_SMOOTH_07497: suffix = "stippledLineEnable-07497"; break;
// ### VUID-vkCmdDraw-stippledLineEnable-07498
case ActionVUID::STIPPLED_STRICT_07498: suffix = "stippledLineEnable-07498"; break;
// ### VUID-vkCmdDraw-SampledType-04470
case ActionVUID::IMAGE_VIEW_ACCESS_04470: suffix = "SampledType-04470"; break;
// ### VUID-vkCmdDraw-SampledType-04471
case ActionVUID::IMAGE_VIEW_ACCESS_04471: suffix = "SampledType-04471"; break;
// ### VUID-vkCmdDraw-sparseImageInt64Atomics-04474
case ActionVUID::IMAGE_VIEW_SPARSE_04474: suffix = "sparseImageInt64Atomics-04474"; break;
// ### VUID-vkCmdDraw-SampledType-04472
case ActionVUID::BUFFER_VIEW_ACCESS_04472: suffix = "SampledType-04472"; break;
// ### VUID-vkCmdDraw-SampledType-04473
case ActionVUID::BUFFER_VIEW_ACCESS_04473: suffix = "SampledType-04473"; break;
// ### VUID-vkCmdDraw-OpTypeImage-07028
case ActionVUID::STORAGE_IMAGE_FORMAT_07028: suffix = "OpTypeImage-07028"; break;
// ### VUID-vkCmdDraw-OpTypeImage-07027
case ActionVUID::STORAGE_IMAGE_FORMAT_07027: suffix = "OpTypeImage-07027"; break;
// ### VUID-vkCmdDraw-OpTypeImage-07030
case ActionVUID::STORAGE_TEXEL_FORMAT_07030: suffix = "OpTypeImage-07030"; break;
// ### VUID-vkCmdDraw-OpTypeImage-07029
case ActionVUID::STORAGE_TEXEL_FORMAT_07029: suffix = "OpTypeImage-07029"; break;
// ### VUID-vkCmdDraw-OpImageWrite-08795
case ActionVUID::STORAGE_IMAGE_TEXEL_08795: suffix = "OpImageWrite-08795"; break;
// ### VUID-vkCmdDraw-OpImageWrite-08796
case ActionVUID::STORAGE_IMAGE_TEXEL_08796: suffix = "OpImageWrite-08796"; break;
// ### VUID-vkCmdDraw-OpImageWrite-04469
case ActionVUID::STORAGE_TEXEL_04469: suffix = "OpImageWrite-04469"; break;
// ### VUID-vkCmdDraw-None-02691
case ActionVUID::IMAGE_VIEW_ATOMIC_02691: suffix = "None-02691"; break;
// ### VUID-vkCmdDraw-None-07888
case ActionVUID::BUFFER_VIEW_ATOMIC_07888: suffix = "None-07888"; break;
// ### VUID-vkCmdDraw-viewType-07752
case ActionVUID::IMAGE_VIEW_DIM_07752: suffix = "viewType-07752"; break;
// ### VUID-vkCmdDraw-format-07753
case ActionVUID::IMAGE_VIEW_NUMERIC_07753: suffix = "format-07753"; break;
// ### VUID-vkCmdDraw-None-06537
case ActionVUID::SUBRESOURCE_RP_WRTIE_06537: suffix = "None-06537"; break;
// ### VUID-vkCmdDraw-None-12338
case ActionVUID::SUBRESOURCE_SUBPASS_12338: suffix = "None-12338"; break;
// ### VUID-vkCmdDraw-None-12339
case ActionVUID::SUBRESOURCE_SUBPASS_12339: suffix = "None-12339"; break;
// ### VUID-vkCmdDraw-None-12340
case ActionVUID::SUBRESOURCE_SUBPASS_12340: suffix = "None-12340"; break;
// ### VUID-vkCmdDraw-None-11308
case ActionVUID::DESCRIPTOR_HEAP_11308: suffix = "None-11308"; break;
// ### VUID-vkCmdDraw-pBindInfo-11375
case ActionVUID::DESCRIPTOR_HEAP_11375: suffix = "pBindInfo-11375"; break;
// ### VUID-vkCmdDraw-None-11376
case ActionVUID::DESCRIPTOR_HEAP_11376: suffix = "None-11376"; break;
// ### VUID-vkCmdDraw-None-08609
case ActionVUID::SAMPLER_TYPE_08609: suffix = "None-08609"; break;
// ### VUID-vkCmdDraw-None-08610
case ActionVUID::SAMPLER_DREF_PROJ_08610: suffix = "None-08610"; break;
// ### VUID-vkCmdDraw-None-08611
case ActionVUID::SAMPLER_BIAS_OFFSET_08611: suffix = "None-08611"; break;
// ### VUID-vkCmdDraw-None-02692
case ActionVUID::SAMPLER_CUBIC_02692: suffix = "None-02692"; break;
// ### VUID-vkCmdDraw-flags-02696
case ActionVUID::SAMPLER_CORNER_02696: suffix = "flags-02696"; break;
// ### VUID-vkCmdDraw-None-02693
case ActionVUID::FILTER_CUBIC_02693: suffix = "None-02693"; break;
// ### VUID-vkCmdDraw-filterCubic-02694
case ActionVUID::FILTER_CUBIC_02694: suffix = "filterCubic-02694"; break;
// ### VUID-vkCmdDraw-filterCubicMinmax-02695
case ActionVUID::FILTER_CUBIC_02695: suffix = "filterCubicMinmax-02695"; break;
// ### VUID-vkCmdDraw-imageLayout-00344
case ActionVUID::IMAGE_LAYOUT_00344: suffix = "imageLayout-00344"; break;
// ### VUID-vkCmdDraw-None-08601
case ActionVUID::PUSH_CONSTANT_08601: suffix = "None-08601"; break;
// ### VUID-vkCmdDraw-flags-13361
case ActionVUID::INDEPENDENT_SETS_13361: suffix = "flags-13361"; break;
// ### VUID-vkCmdDraw-flags-13362
case ActionVUID::INDEPENDENT_SETS_13362: suffix = "flags-13362"; break;
// ### VUID-vkCmdDraw-flags-13363
case ActionVUID::INDEPENDENT_SETS_13363: suffix = "flags-13363"; break;
// ### VUID-vkCmdDraw-flags-13364
case ActionVUID::INDEPENDENT_SETS_13364: suffix = "flags-13364"; break;
// ### VUID-vkCmdDraw-flags-13365
case ActionVUID::INDEPENDENT_SETS_13365: suffix = "flags-13365"; break;
// ### VUID-vkCmdDraw-None-08608
case ActionVUID::DYNAMIC_STATE_ALL_SET_08608: suffix = "None-08608"; break;
// ### VUID-vkCmdDraw-None-07845
case ActionVUID::DYNAMIC_DEPTH_COMPARE_OP_07845: suffix = "None-07845"; break;
// ### VUID-vkCmdDraw-None-07834
case ActionVUID::DYNAMIC_DEPTH_BIAS_07834: suffix = "None-07834"; break;
// ### VUID-vkCmdDraw-None-07836
case ActionVUID::DYNAMIC_DEPTH_BOUNDS_07836: suffix = "None-07836"; break;
// ### VUID-vkCmdDraw-None-07840
case ActionVUID::DYNAMIC_CULL_MODE_07840: suffix = "None-07840"; break;
// ### VUID-vkCmdDraw-None-07843
case ActionVUID::DYNAMIC_DEPTH_TEST_ENABLE_07843: suffix = "None-07843"; break;
// ### VUID-vkCmdDraw-None-07844
case ActionVUID::DYNAMIC_DEPTH_WRITE_ENABLE_07844: suffix = "None-07844"; break;
// ### VUID-vkCmdDraw-None-07847
case ActionVUID::DYNAMIC_STENCIL_TEST_ENABLE_07847: suffix = "None-07847"; break;
// ### VUID-vkCmdDraw-None-04877
case ActionVUID::DYNAMIC_DEPTH_BIAS_ENABLE_04877: suffix = "None-04877"; break;
// ### VUID-vkCmdDraw-None-07846
case ActionVUID::DYNAMIC_DEPTH_BOUND_TEST_ENABLE_07846: suffix = "None-07846"; break;
// ### VUID-vkCmdDraw-None-07837
case ActionVUID::DYNAMIC_STENCIL_COMPARE_MASK_07837: suffix = "None-07837"; break;
// ### VUID-vkCmdDraw-None-07838
case ActionVUID::DYNAMIC_STENCIL_WRITE_MASK_07838: suffix = "None-07838"; break;
// ### VUID-vkCmdDraw-None-07839
case ActionVUID::DYNAMIC_STENCIL_REFERENCE_07839: suffix = "None-07839"; break;
// ### VUID-vkCmdDraw-None-07848
case ActionVUID::DYNAMIC_STENCIL_OP_07848: suffix = "None-07848"; break;
// ### VUID-vkCmdDraw-None-07842
case ActionVUID::DYNAMIC_PRIMITIVE_TOPOLOGY_07842: suffix = "None-07842"; break;
// ### VUID-vkCmdDraw-None-04879
case ActionVUID::DYNAMIC_PRIMITIVE_RESTART_ENABLE_04879: suffix = "None-04879"; break;
// ### VUID-vkCmdDraw-None-04914
case ActionVUID::DYNAMIC_VERTEX_INPUT_04914: suffix = "None-04914"; break;
// ### VUID-vkCmdDraw-pipelineFragmentShadingRate-09238
case ActionVUID::DYNAMIC_SET_FRAGMENT_SHADING_RATE_09238: suffix = "pipelineFragmentShadingRate-09238"; break;
// ### VUID-vkCmdDraw-logicOp-04878
case ActionVUID::DYNAMIC_LOGIC_OP_04878: suffix = "logicOp-04878"; break;
// ### VUID-vkCmdDraw-None-07621
case ActionVUID::DYNAMIC_POLYGON_MODE_07621: suffix = "None-07621"; break;
// ### VUID-vkCmdDraw-None-07622
case ActionVUID::DYNAMIC_RASTERIZATION_SAMPLES_07622: suffix = "None-07622"; break;
// ### VUID-vkCmdDraw-None-07623
case ActionVUID::DYNAMIC_SAMPLE_MASK_07623: suffix = "None-07623"; break;
// ### VUID-vkCmdDraw-None-07624
case ActionVUID::DYNAMIC_ALPHA_TO_COVERAGE_ENABLE_07624: suffix = "None-07624"; break;
// ### VUID-vkCmdDraw-None-07625
case ActionVUID::DYNAMIC_ALPHA_TO_ONE_ENABLE_07625: suffix = "None-07625"; break;
// ### VUID-vkCmdDraw-None-07626
case ActionVUID::DYNAMIC_LOGIC_OP_ENABLE_07626: suffix = "None-07626"; break;
// ### VUID-vkCmdDraw-None-04876
case ActionVUID::DYNAMIC_RASTERIZER_DISCARD_ENABLE_04876: suffix = "None-04876"; break;
// ### VUID-vkCmdDraw-None-07634
case ActionVUID::DYNAMIC_SAMPLE_LOCATIONS_ENABLE_07634: suffix = "None-07634"; break;
// ### VUID-vkCmdDraw-None-06666
case ActionVUID::DYNAMIC_SAMPLE_LOCATIONS_06666: suffix = "None-06666"; break;
// ### VUID-vkCmdDraw-None-08877
case ActionVUID::DYNAMIC_ATTACHMENT_FEEDBACK_LOOP_08877: suffix = "None-08877"; break;
// ### VUID-vkCmdDraw-None-07749
case ActionVUID::DYNAMIC_COLOR_WRITE_ENABLE_07749: suffix = "None-07749"; break;
// ### VUID-vkCmdDraw-None-07627
case ActionVUID::DYNAMIC_COLOR_BLEND_ENABLE_07627: suffix = "None-07627"; break;
// ### VUID-vkCmdDraw-None-07629
case ActionVUID::DYNAMIC_COLOR_WRITE_MASK_07629: suffix = "None-07629"; break;
// ### VUID-vkCmdDraw-None-07639
case ActionVUID::DYNAMIC_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_07639: suffix = "None-07639"; break;
// ### VUID-vkCmdDraw-None-09650
case ActionVUID::DYNAMIC_DEPTH_CLAMP_CONTROL_09650: suffix = "None-09650"; break;
// ### VUID-vkCmdDraw-None-07633
case ActionVUID::DYNAMIC_DEPTH_CLIP_ENABLE_07633: suffix = "None-07633"; break;
// ### VUID-vkCmdDraw-None-07620
case ActionVUID::DYNAMIC_DEPTH_CLAMP_ENABLE_07620: suffix = "None-07620"; break;
// ### VUID-vkCmdDraw-None-07878
case ActionVUID::DYNAMIC_EXCLUSIVE_SCISSOR_ENABLE_07878: suffix = "None-07878"; break;
// ### VUID-vkCmdDraw-None-07879
case ActionVUID::DYNAMIC_EXCLUSIVE_SCISSOR_07879: suffix = "None-07879"; break;
// ### VUID-vkCmdDraw-None-07619
case ActionVUID::DYNAMIC_TESSELLATION_DOMAIN_ORIGIN_07619: suffix = "None-07619"; break;
// ### VUID-vkCmdDraw-None-07630
case ActionVUID::DYNAMIC_RASTERIZATION_STREAM_07630: suffix = "None-07630"; break;
// ### VUID-vkCmdDraw-None-07631
case ActionVUID::DYNAMIC_CONSERVATIVE_RASTERIZATION_MODE_07631: suffix = "None-07631"; break;
// ### VUID-vkCmdDraw-None-07632
case ActionVUID::DYNAMIC_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_07632: suffix = "None-07632"; break;
// ### VUID-vkCmdDraw-None-07636
case ActionVUID::DYNAMIC_PROVOKING_VERTEX_MODE_07636: suffix = "None-07636"; break;
// ### VUID-vkCmdDraw-None-07640
case ActionVUID::DYNAMIC_VIEWPORT_W_SCALING_ENABLE_07640: suffix = "None-07640"; break;
// ### VUID-vkCmdDraw-None-07641
case ActionVUID::DYNAMIC_VIEWPORT_SWIZZLE_07641: suffix = "None-07641"; break;
// ### VUID-vkCmdDraw-None-07642
case ActionVUID::DYNAMIC_COVERAGE_TO_COLOR_ENABLE_07642: suffix = "None-07642"; break;
// ### VUID-vkCmdDraw-None-07643
case ActionVUID::DYNAMIC_COVERAGE_TO_COLOR_LOCATION_07643: suffix = "None-07643"; break;
// ### VUID-vkCmdDraw-None-07644
case ActionVUID::DYNAMIC_COVERAGE_MODULATION_MODE_07644: suffix = "None-07644"; break;
// ### VUID-vkCmdDraw-None-07645
case ActionVUID::DYNAMIC_COVERAGE_MODULATION_TABLE_ENABLE_07645: suffix = "None-07645"; break;
// ### VUID-vkCmdDraw-None-07646
case ActionVUID::DYNAMIC_COVERAGE_MODULATION_TABLE_07646: suffix = "None-07646"; break;
// ### VUID-vkCmdDraw-None-07647
case ActionVUID::DYNAMIC_SHADING_RATE_IMAGE_ENABLE_07647: suffix = "None-07647"; break;
// ### VUID-vkCmdDraw-None-07648
case ActionVUID::DYNAMIC_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_07648: suffix = "None-07648"; break;
// ### VUID-vkCmdDraw-None-07649
case ActionVUID::DYNAMIC_COVERAGE_REDUCTION_MODE_07649: suffix = "None-07649"; break;
// ### VUID-vkCmdDraw-None-07841
case ActionVUID::DYNAMIC_FRONT_FACE_07841: suffix = "None-07841"; break;
// ### VUID-vkCmdDraw-viewportCount-03417
case ActionVUID::DYNAMIC_VIEWPORT_COUNT_03417: suffix = "viewportCount-03417"; break;
// ### VUID-vkCmdDraw-scissorCount-03418
case ActionVUID::DYNAMIC_SCISSOR_COUNT_03418: suffix = "scissorCount-03418"; break;
// ### VUID-vkCmdDraw-shadingRateImage-09233
case ActionVUID::DYNAMIC_SET_VIEWPORT_COARSE_SAMPLE_ORDER_09233: suffix = "shadingRateImage-09233"; break;
// ### VUID-vkCmdDraw-shadingRateImage-09234
case ActionVUID::DYNAMIC_SET_VIEWPORT_SHADING_RATE_PALETTE_09234: suffix = "shadingRateImage-09234"; break;
// ### VUID-vkCmdDraw-viewportCount-04138
case ActionVUID::DYNAMIC_SET_CLIP_SPACE_W_SCALING_04138: suffix = "viewportCount-04138"; break;
// ### VUID-vkCmdDraw-None-04875
case ActionVUID::DYNAMIC_PATCH_CONTROL_POINTS_04875: suffix = "None-04875"; break;
// ### VUID-vkCmdDraw-None-07880
case ActionVUID::DYNAMIC_DISCARD_RECTANGLE_ENABLE_07880: suffix = "None-07880"; break;
// ### VUID-vkCmdDraw-None-07881
case ActionVUID::DYNAMIC_DISCARD_RECTANGLE_MODE_07881: suffix = "None-07881"; break;
// ### VUID-vkCmdDraw-None-07849
case ActionVUID::DYNAMIC_LINE_STIPPLE_EXT_07849: suffix = "None-07849"; break;
// ### VUID-vkCmdDraw-None-08617
case ActionVUID::DYNAMIC_SET_LINE_WIDTH_08617: suffix = "None-08617"; break;
// ### VUID-vkCmdDraw-pStrides-04913
case ActionVUID::DYNAMIC_VERTEX_INPUT_BINDING_STRIDE_04913: suffix = "pStrides-04913"; break;
// ### VUID-vkCmdDraw-None-08666
case ActionVUID::DYNAMIC_SET_LINE_RASTERIZATION_MODE_08666: suffix = "None-08666"; break;
// ### VUID-vkCmdDraw-None-08669
case ActionVUID::DYNAMIC_SET_LINE_STIPPLE_ENABLE_08669: suffix = "None-08669"; break;
// ### VUID-vkCmdDraw-None-07751
case ActionVUID::DISCARD_RECTANGLE_07751: suffix = "None-07751"; break;
// ### VUID-vkCmdDraw-rasterizerDiscardEnable-09236
case ActionVUID::DISCARD_RECTANGLE_09236: suffix = "rasterizerDiscardEnable-09236"; break;
// ### VUID-vkCmdDraw-rasterizerDiscardEnable-09420
case ActionVUID::COVERAGE_TO_COLOR_09420: suffix = "rasterizerDiscardEnable-09420"; break;
// ### VUID-vkCmdDraw-coverageToColorEnable-07490
case ActionVUID::COVERAGE_TO_COLOR_07490: suffix = "coverageToColorEnable-07490"; break;
// ### VUID-vkCmdDraw-None-08644
case ActionVUID::SET_RASTERIZATION_SAMPLES_08644: suffix = "None-08644"; break;
// ### VUID-vkCmdDraw-attachmentCount-07750
case ActionVUID::COLOR_WRITE_ENABLE_COUNT_07750: suffix = "attachmentCount-07750"; break;
// ### VUID-vkCmdDraw-None-06479
case ActionVUID::DEPTH_COMPARE_SAMPLE_06479: suffix = "None-06479"; break;
// ### VUID-vkCmdDraw-None-06886
case ActionVUID::DEPTH_READ_ONLY_06886: suffix = "None-06886"; break;
// ### VUID-vkCmdDraw-None-06887
case ActionVUID::STENCIL_READ_ONLY_06887: suffix = "None-06887"; break;
// ### VUID-vkCmdDraw-alphaToCoverageEnable-08919
case ActionVUID::ALPHA_TO_COVERAGE_COMPONENT_08919: suffix = "alphaToCoverageEnable-08919"; break;
// ### VUID-vkCmdDraw-firstAttachment-07476
case ActionVUID::COLOR_BLEND_ENABLE_07476: suffix = "firstAttachment-07476"; break;
// ### VUID-vkCmdDraw-firstAttachment-07478
case ActionVUID::COLOR_WRITE_MASK_07478: suffix = "firstAttachment-07478"; break;
// ### VUID-vkCmdDraw-None-10862
case ActionVUID::COLOR_BLEND_EQUATION_10862: suffix = "None-10862"; break;
// ### VUID-vkCmdDraw-rasterizerDiscardEnable-10863
case ActionVUID::COLOR_BLEND_EQUATION_10863: suffix = "rasterizerDiscardEnable-10863"; break;
// ### VUID-vkCmdDraw-None-10864
case ActionVUID::COLOR_BLEND_EQUATION_10864: suffix = "None-10864"; break;
// ### VUID-vkCmdDraw-None-07831
case ActionVUID::VIEWPORT_07831: suffix = "None-07831"; break;
// ### VUID-vkCmdDraw-None-07832
case ActionVUID::SCISSOR_07832: suffix = "None-07832"; break;
// ### VUID-vkCmdDraw-None-07835
case ActionVUID::BLEND_CONSTANTS_07835: suffix = "None-07835"; break;
// ### VUID-vkCmdDraw-pDynamicStates-08715
case ActionVUID::DEPTH_ENABLE_08715: suffix = "pDynamicStates-08715"; break;
// ### VUID-vkCmdDraw-pDynamicStates-08716
case ActionVUID::STENCIL_WRITE_MASK_08716: suffix = "pDynamicStates-08716"; break;
// ### VUID-vkCmdDraw-None-07850
case ActionVUID::STATE_INHERITED_07850: suffix = "None-07850"; break;
// ### VUID-vkCmdDraw-None-09116
case ActionVUID::COLOR_WRITE_MASK_09116: suffix = "None-09116"; break;
// ### VUID-vkCmdDraw-None-10608
case ActionVUID::LINE_RASTERIZATION_10608: suffix = "None-10608"; break;
// ### VUID-vkCmdDraw-viewportCount-03419
case ActionVUID::VIEWPORT_AND_SCISSOR_WITH_COUNT_03419: suffix = "viewportCount-03419"; break;
// ### VUID-vkCmdDraw-None-08636
case ActionVUID::VIEWPORT_W_SCALING_08636: suffix = "None-08636"; break;
// ### VUID-vkCmdDraw-None-08637
case ActionVUID::SHADING_RATE_PALETTE_08637: suffix = "None-08637"; break;
// ### VUID-vkCmdDraw-viewportCount-09421
case ActionVUID::SET_VIEWPORT_SWIZZLE_09421: suffix = "viewportCount-09421"; break;
// ### VUID-vkCmdDraw-viewportCount-07493
case ActionVUID::SET_VIEWPORT_SWIZZLE_07493: suffix = "viewportCount-07493"; break;
// ### VUID-vkCmdDraw-alphaToCoverageEnable-08920
case ActionVUID::ALPHA_COMPONENT_WORD_08920: suffix = "alphaToCoverageEnable-08920"; break;
// ### VUID-vkCmdDraw-multiviewPerViewViewports-12262
case ActionVUID::VIEWPORT_MULTIVIEW_12262: suffix = "multiviewPerViewViewports-12262"; break;
// ### VUID-vkCmdDraw-multiviewPerViewViewports-12263
case ActionVUID::SCISSOR_MULTIVIEW_12263: suffix = "multiviewPerViewViewports-12263"; break;
// ### VUID-vkCmdDraw-conservativePointAndLineRasterization-07499
case ActionVUID::CONVERVATIVE_RASTERIZATION_07499: suffix = "conservativePointAndLineRasterization-07499"; break;
// ### VUID-vkCmdDraw-blendEnable-04727
case ActionVUID::BLEND_ENABLE_04727: suffix = "blendEnable-04727"; break;
// ### VUID-vkCmdDraw-maxFragmentDualSrcAttachments-09239
case ActionVUID::BLEND_DUAL_SOURCE_09239: suffix = "maxFragmentDualSrcAttachments-09239"; break;
// ### VUID-vkCmdDraw-advancedBlendMaxColorAttachments-07480
case ActionVUID::BLEND_ADVANCED_07480: suffix = "advancedBlendMaxColorAttachments-07480"; break;
// ### VUID-vkCmdDraw-primitivesGeneratedQueryWithNonZeroStreams-07481
case ActionVUID::PRIMITIVES_GENERATED_QUERY_07481: suffix = "primitivesGeneratedQueryWithNonZeroStreams-07481"; break;
// ### VUID-vkCmdDraw-sampleLocationsPerPixel-07482
case ActionVUID::SAMPLE_LOCATIONS_07482: suffix = "sampleLocationsPerPixel-07482"; break;
// ### VUID-vkCmdDraw-sampleLocationsPerPixel-07483
case ActionVUID::SAMPLE_LOCATIONS_07483: suffix = "sampleLocationsPerPixel-07483"; break;
// ### VUID-vkCmdDraw-rasterizationSamples-07471
case ActionVUID::SAMPLE_LOCATIONS_07471: suffix = "rasterizationSamples-07471"; break;
// ### VUID-vkCmdDraw-sampleLocationsEnable-07936
case ActionVUID::SAMPLE_LOCATIONS_ENABLE_07936: suffix = "sampleLocationsEnable-07936"; break;
// ### VUID-vkCmdDraw-sampleLocationsEnable-07937
case ActionVUID::SAMPLE_LOCATIONS_ENABLE_07937: suffix = "sampleLocationsEnable-07937"; break;
// ### VUID-vkCmdDraw-sampleLocationsEnable-07938
case ActionVUID::SAMPLE_LOCATIONS_ENABLE_07938: suffix = "sampleLocationsEnable-07938"; break;
// ### VUID-vkCmdDraw-samples-07472
case ActionVUID::SAMPLE_MASK_07472: suffix = "samples-07472"; break;
// ### VUID-vkCmdDraw-samples-07473
case ActionVUID::SAMPLE_MASK_07473: suffix = "samples-07473"; break;
// ### VUID-vkCmdDraw-dynamicPrimitiveTopologyUnrestricted-07500
case ActionVUID::PRIMITIVE_TOPOLOGY_CLASS_07500: suffix = "dynamicPrimitiveTopologyUnrestricted-07500"; break;
// ### VUID-vkCmdDraw-primitiveTopology-10286
case ActionVUID::PRIMITIVE_TOPOLOGY_10286: suffix = "primitiveTopology-10286"; break;
// ### VUID-vkCmdDraw-primitiveTopology-10747
case ActionVUID::PRIMITIVE_TOPOLOGY_10747: suffix = "primitiveTopology-10747"; break;
// ### VUID-vkCmdDraw-primitiveTopology-10748
case ActionVUID::PRIMITIVE_TOPOLOGY_10748: suffix = "primitiveTopology-10748"; break;
// ### VUID-vkCmdDraw-None-09637
case ActionVUID::PRIMITIVE_RESTART_09637: suffix = "None-09637"; break;
// ### VUID-vkCmdDraw-None-10909
case ActionVUID::PRIMITIVE_RESTART_10909: suffix = "None-10909"; break;
// ### VUID-vkCmdDraw-Input-08734
case ActionVUID::VERTEX_INPUT_08734: suffix = "Input-08734"; break;
// ### VUID-vkCmdDraw-format-08936
case ActionVUID::VERTEX_INPUT_FORMAT_08936: suffix = "format-08936"; break;
// ### VUID-vkCmdDraw-format-08937
case ActionVUID::VERTEX_INPUT_FORMAT_08937: suffix = "format-08937"; break;
// ### VUID-vkCmdDraw-None-09203
case ActionVUID::VERTEX_INPUT_FORMAT_09203: suffix = "None-09203"; break;
// ### VUID-vkCmdDraw-Input-07939
case ActionVUID::VERTEX_INPUT_FORMAT_07939: suffix = "Input-07939"; break;
// ### VUID-vkCmdDraw-commandBuffer-04617
case ActionVUID::RAY_QUERY_04617: suffix = "commandBuffer-04617"; break;
// ### VUID-vkCmdDraw-maxMultiviewInstanceIndex-02688
case ActionVUID::MAX_MULTIVIEW_INSTANCE_INDEX_02688: suffix = "maxMultiviewInstanceIndex-02688"; break;
// ### VUID-vkCmdDraw-primitiveFragmentShadingRateWithMultipleViewports-04552
case ActionVUID::VIEWPORT_COUNT_PRIMITIVE_SHADING_RATE_04552: suffix = "primitiveFragmentShadingRateWithMultipleViewports-04552"; break;
// ### VUID-vkCmdDraw-primitivesGeneratedQueryWithRasterizerDiscard-06708
case ActionVUID::PRIMITIVES_GENERATED_06708: suffix = "primitivesGeneratedQueryWithRasterizerDiscard-06708"; break;
// ### VUID-vkCmdDraw-primitivesGeneratedQueryWithNonZeroStreams-06709
case ActionVUID::PRIMITIVES_GENERATED_STREAMS_06709: suffix = "primitivesGeneratedQueryWithNonZeroStreams-06709"; break;
// ### VUID-vkCmdDraw-stage-06481
case ActionVUID::INVALID_MESH_SHADER_STAGES_06481: suffix = "stage-06481"; break;
// ### VUID-vkCmdDraw-None-10772
case ActionVUID::SHADER_OBJECT_MULTIVIEW_10772: suffix = "None-10772"; break;
// ### VUID-vkCmdDraw-nextStage-10745
case ActionVUID::NEXT_STAGE_10745: suffix = "nextStage-10745"; break;
// ### VUID-vkCmdDraw-None-08684
case ActionVUID::VERTEX_SHADER_08684: suffix = "None-08684"; break;
// ### VUID-vkCmdDraw-None-08685
case ActionVUID::TESSELLATION_CONTROL_SHADER_08685: suffix = "None-08685"; break;
// ### VUID-vkCmdDraw-None-08686
case ActionVUID::TESSELLATION_EVALUATION_SHADER_08686: suffix = "None-08686"; break;
// ### VUID-vkCmdDraw-None-08687
case ActionVUID::GEOMETRY_SHADER_08687: suffix = "None-08687"; break;
// ### VUID-vkCmdDraw-None-08688
case ActionVUID::FRAGMENT_SHADER_08688: suffix = "None-08688"; break;
// ### VUID-vkCmdDraw-None-08689
case ActionVUID::TASK_SHADER_08689: suffix = "None-08689"; break;
// ### VUID-vkCmdDraw-None-08690
case ActionVUID::MESH_SHADER_08690: suffix = "None-08690"; break;
// ### VUID-vkCmdDraw-None-08693
case ActionVUID::VERT_MESH_SHADER_08693: suffix = "None-08693"; break;
// ### VUID-vkCmdDraw-None-08696
case ActionVUID::VERT_TASK_MESH_SHADER_08696: suffix = "None-08696"; break;
// ### VUID-vkCmdDraw-None-08698
case ActionVUID::LINKED_SHADERS_08698: suffix = "None-08698"; break;
// ### VUID-vkCmdDraw-None-08699
case ActionVUID::LINKED_SHADERS_08699: suffix = "None-08699"; break;
// ### VUID-vkCmdDraw-None-08878
case ActionVUID::SHADERS_PUSH_CONSTANTS_08878: suffix = "None-08878"; break;
// ### VUID-vkCmdDraw-None-08879
case ActionVUID::SHADERS_DESCRIPTOR_LAYOUTS_08879: suffix = "None-08879"; break;
// ### VUID-vkCmdDraw-None-08885
case ActionVUID::DRAW_SHADERS_NO_TASK_MESH_08885: suffix = "None-08885"; break;
// ### VUID-vkCmdDraw-OpExecutionMode-12239
case ActionVUID::TESSELLATION_SUBDIVISION_12239: suffix = "OpExecutionMode-12239"; break;
// ### VUID-vkCmdDraw-OpExecutionMode-12240
case ActionVUID::TESSELLATION_TRIANGLES_12240: suffix = "OpExecutionMode-12240"; break;
// ### VUID-vkCmdDraw-OpExecutionMode-12241
case ActionVUID::TESSELLATION_SEGMENT_12241: suffix = "OpExecutionMode-12241"; break;
// ### VUID-vkCmdDraw-OpExecutionMode-12242
case ActionVUID::TESSELLATION_PATCH_SIZE_12242: suffix = "OpExecutionMode-12242"; break;
// ### VUID-vkCmdDraw-primitiveFragmentShadingRateWithMultipleViewports-08642
case ActionVUID::SET_VIEWPORT_WITH_COUNT_08642: suffix = "primitiveFragmentShadingRateWithMultipleViewports-08642"; break;
// ### VUID-vkCmdDraw-pNext-07935
case ActionVUID::RASTERIZATION_SAMPLES_07935: suffix = "pNext-07935"; break;
// ### VUID-vkCmdDraw-stage-07073
case ActionVUID::MESH_SHADER_QUERIES_07073: suffix = "stage-07073"; break;
// ### VUID-vkCmdDraw-layers-10831
case ActionVUID::FDM_LAYERED_10831: suffix = "layers-10831"; break;
// ### VUID-vkCmdDraw-pColorAttachments-08963
case ActionVUID::COLOR_ATTACHMENT_08963: suffix = "pColorAttachments-08963"; break;
// ### VUID-vkCmdDraw-pDepthAttachment-08964
case ActionVUID::DEPTH_ATTACHMENT_08964: suffix = "pDepthAttachment-08964"; break;
// ### VUID-vkCmdDraw-pStencilAttachment-08965
case ActionVUID::STENCIL_ATTACHMENT_08965: suffix = "pStencilAttachment-08965"; break;
// ### VUID-vkCmdDraw-pNext-09461
case ActionVUID::VERTEX_INPUT_09461: suffix = "pNext-09461"; break;
// ### VUID-vkCmdDraw-None-09462
case ActionVUID::VERTEX_INPUT_09462: suffix = "None-09462"; break;
// ### VUID-vkCmdDraw-flags-10582
case ActionVUID::RENDERING_CONTENTS_10582: suffix = "flags-10582"; break;
// ### VUID-vkCmdDraw-None-08876
case ActionVUID::RENDER_PASS_BEGAN_08876: suffix = "None-08876"; break;
// ### VUID-vkCmdDraw-unnormalizedCoordinates-09635
case ActionVUID::UNNORMALIZED_COORDINATES_09635: suffix = "unnormalizedCoordinates-09635"; break;
// ### VUID-vkCmdDraw-OpTypeTensorARM-09906
case ActionVUID::SPIRV_OPTYPETENSORARM_09906: suffix = "OpTypeTensorARM-09906"; break;
// ### VUID-vkCmdDraw-commandBuffer-10746
case ActionVUID::TILE_MEMORY_HEAP_10746: suffix = "commandBuffer-10746"; break;
// ### VUID-vkCmdDraw-None-13118
case ActionVUID::BIND_VERTEX_BUFFERS_3_STRIDE_13118: suffix = "None-13118"; break;
// ### VUID-vkCmdDraw-None-08115
case ActionVUID::DESCRIPTOR_BUFFER_BIT_08115: suffix = "None-08115"; break;
// ### VUID-vkCmdDraw-None-08117
case ActionVUID::DESCRIPTOR_BUFFER_BIT_08117: suffix = "None-08117"; break;
// ### VUID-vkCmdDraw-None-08600
case ActionVUID::COMPATIBLE_PIPELINE_08600: suffix = "None-08600"; break;
// ### VUID-vkCmdDraw-None-08606
case ActionVUID::PIPELINE_BOUND_08606: suffix = "None-08606"; break;
// ### VUID-vkCmdDraw-None-02721
case ActionVUID::VERTEX_BINDING_ATTRIBUTE_02721: suffix = "None-02721"; break;
// ### VUID-vkCmdDraw-commandBuffer-02707
case ActionVUID::CB_UNPROTECTED_02707: suffix = "commandBuffer-02707"; break;
// ### VUID-vkCmdDraw-commandBuffer-02712
case ActionVUID::CB_PROTECTED_02712: suffix = "commandBuffer-02712"; break;
// ### VUID-vkCmdDraw-None-08114
case ActionVUID::DESCRIPTOR_08114: suffix = "None-08114"; break;
// ### VUID-vkCmdDraw-pDescription-09900
case ActionVUID::TENSOR_09900: suffix = "pDescription-09900"; break;
// ### VUID-vkCmdDraw-dimensionCount-09905
case ActionVUID::TENSOR_09905: suffix = "dimensionCount-09905"; break;
// ### VUID-vkCmdDraw-viewMask-06178
case ActionVUID::DYNAMIC_RENDERING_VIEW_MASK_06178: suffix = "viewMask-06178"; break;
// ### VUID-vkCmdDraw-colorAttachmentCount-06179
case ActionVUID::DYNAMIC_RENDERING_COLOR_COUNT_06179: suffix = "colorAttachmentCount-06179"; break;
// ### VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08910
case ActionVUID::DYNAMIC_RENDERING_COLOR_FORMATS_08910: suffix = "dynamicRenderingUnusedAttachments-08910"; break;
// ### VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08911
case ActionVUID::DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_08911: suffix = "dynamicRenderingUnusedAttachments-08911"; break;
// ### VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08912
case ActionVUID::DYNAMIC_RENDERING_UNDEFINED_COLOR_FORMATS_08912: suffix = "dynamicRenderingUnusedAttachments-08912"; break;
// ### VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08913
case ActionVUID::DYNAMIC_RENDERING_UNDEFINED_DEPTH_FORMAT_08913: suffix = "dynamicRenderingUnusedAttachments-08913"; break;
// ### VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08916
case ActionVUID::DYNAMIC_RENDERING_UNDEFINED_STENCIL_FORMAT_08916: suffix = "dynamicRenderingUnusedAttachments-08916"; break;
// ### VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08914
case ActionVUID::DYNAMIC_RENDERING_DEPTH_FORMAT_08914: suffix = "dynamicRenderingUnusedAttachments-08914"; break;
// ### VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08915
case ActionVUID::DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_08915: suffix = "dynamicRenderingUnusedAttachments-08915"; break;
// ### VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08917
case ActionVUID::DYNAMIC_RENDERING_STENCIL_FORMAT_08917: suffix = "dynamicRenderingUnusedAttachments-08917"; break;
// ### VUID-vkCmdDraw-dynamicRenderingUnusedAttachments-08918
case ActionVUID::DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_08918: suffix = "dynamicRenderingUnusedAttachments-08918"; break;
// ### VUID-vkCmdDraw-imageView-06183
case ActionVUID::DYNAMIC_RENDERING_FSR_06183: suffix = "imageView-06183"; break;
// ### VUID-vkCmdDraw-imageView-06184
case ActionVUID::DYNAMIC_RENDERING_FDM_06184: suffix = "imageView-06184"; break;
// ### VUID-vkCmdDraw-colorAttachmentCount-06185
case ActionVUID::DYNAMIC_RENDERING_COLOR_SAMPLE_06185: suffix = "colorAttachmentCount-06185"; break;
// ### VUID-vkCmdDraw-pDepthAttachment-06186
case ActionVUID::DYNAMIC_RENDERING_DEPTH_SAMPLE_06186: suffix = "pDepthAttachment-06186"; break;
// ### VUID-vkCmdDraw-pStencilAttachment-06187
case ActionVUID::DYNAMIC_RENDERING_STENCIL_SAMPLE_06187: suffix = "pStencilAttachment-06187"; break;
// ### VUID-vkCmdDraw-renderPass-06198
case ActionVUID::DYNAMIC_RENDERING_06198: suffix = "renderPass-06198"; break;
// ### VUID-vkCmdDraw-multisampledRenderToSingleSampled-07285
case ActionVUID::DYNAMIC_RENDERING_07285: suffix = "multisampledRenderToSingleSampled-07285"; break;
// ### VUID-vkCmdDraw-multisampledRenderToSingleSampled-07286
case ActionVUID::DYNAMIC_RENDERING_07286: suffix = "multisampledRenderToSingleSampled-07286"; break;
// ### VUID-vkCmdDraw-multisampledRenderToSingleSampled-07287
case ActionVUID::DYNAMIC_RENDERING_07287: suffix = "multisampledRenderToSingleSampled-07287"; break;
// ### VUID-vkCmdDraw-None-09548
case ActionVUID::DYNAMIC_RENDERING_LOCAL_LOCATION_09548: suffix = "None-09548"; break;
// ### VUID-vkCmdDraw-None-09549
case ActionVUID::DYNAMIC_RENDERING_LOCAL_INDEX_09549: suffix = "None-09549"; break;
// ### VUID-vkCmdDraw-None-10927
case ActionVUID::DYNAMIC_RENDERING_LOCAL_INDEX_10927: suffix = "None-10927"; break;
// ### VUID-vkCmdDraw-None-10928
case ActionVUID::DYNAMIC_RENDERING_LOCAL_INDEX_10928: suffix = "None-10928"; break;
// ### VUID-vkCmdDraw-None-09642
case ActionVUID::DYNAMIC_RENDERING_DITHERING_09642: suffix = "None-09642"; break;
// ### VUID-vkCmdDraw-None-09643
case ActionVUID::DYNAMIC_RENDERING_DITHERING_09643: suffix = "None-09643"; break;
// ### VUID-vkCmdDraw-dynamicRenderingLocalRead-11797
case ActionVUID::DYNAMIC_RENDERING_LOCAL_READ_11797: suffix = "dynamicRenderingLocalRead-11797"; break;
// ### VUID-vkCmdDrawIndexed-None-07312
case ActionVUID::INDEX_BINDING_07312: suffix = "None-07312"; break;
// ### VUID-vkCmdDrawIndexed-primitiveRestartIndex-12401
case ActionVUID::PRIMITIVE_RESTART_INDEX_12401: suffix = "primitiveRestartIndex-12401"; break;
// ### VUID-vkCmdDispatch-None-10743
case ActionVUID::COMPUTE_NOT_BOUND_10743: suffix = "None-10743"; break;
// ### VUID-vkCmdDrawMeshTasksEXT-stage-06480
case ActionVUID::MESH_SHADER_STAGES_06480: suffix = "stage-06480"; break;
// ### VUID-vkCmdDrawMeshTasksEXT-None-08694
case ActionVUID::TASK_MESH_SHADER_08694: suffix = "None-08694"; break;
// ### VUID-vkCmdDrawMeshTasksEXT-None-08695
case ActionVUID::TASK_MESH_SHADER_08695: suffix = "None-08695"; break;
// ### VUID-vkCmdDrawMeshTasksEXT-pStages-10680
case ActionVUID::BOUND_NON_MESH_10680: suffix = "pStages-10680"; break;
// ### VUID-vkCmdDrawMeshTasksEXT-None-07074
case ActionVUID::XFB_QUERIES_07074: suffix = "None-07074"; break;
// ### VUID-vkCmdDrawMeshTasksEXT-None-07075
case ActionVUID::PG_QUERIES_07075: suffix = "None-07075"; break;
// ### VUID-vkCmdDrawMeshTasksEXT-pipelineStatistics-07076
case ActionVUID::PIPELINE_STATISTICS_QUERIES_07076: suffix = "pipelineStatistics-07076"; break;
// ### VUID-vkCmdTraceRaysKHR-None-09458
case ActionVUID::RTX_STACK_SIZE_09458: suffix = "None-09458"; break;
// ### VUID-vkCmdTraceRaysKHR-commandBuffer-03635
case ActionVUID::RAY_QUERY_PROTECT_03635: suffix = "commandBuffer-03635"; break;
// ### VUID-vkCmdDraw-uniformBuffers-06935
case ActionVUID::UNIFORM_ACCESS_OOB_06935: suffix = "uniformBuffers-06935"; break;
// ### VUID-vkCmdDraw-storageBuffers-06936
case ActionVUID::STORAGE_ACCESS_OOB_06936: suffix = "storageBuffers-06936"; break;
// ### VUID-vkCmdDraw-None-08612
case ActionVUID::UNIFORM_ACCESS_OOB_08612: suffix = "None-08612"; break;
// ### VUID-vkCmdDraw-None-08613
case ActionVUID::STORAGE_ACCESS_OOB_08613: suffix = "None-08613"; break;
// ### VUID-vkCmdDraw-None-08114
case ActionVUID::INVALID_DESCRIPTOR_08114: suffix = "None-08114"; break;
// ### VUID-vkCmdDraw-None-10068
case ActionVUID::DESCRIPTOR_INDEX_OOB_10068: suffix = "None-10068"; break;
// ### VUID-vkCmdDrawIndirectCount-countBuffer-02717
case ActionVUID::INDIRECT_COUNT_LIMIT: suffix = "countBuffer-02717"; break;
}
// clang-format on
if (!suffix) {
return kVUIDUndefined;
}
// TODO - need a more practical way to do these
if (function == Func::vkCmdDrawIndexedIndirectCountKHR) {
function = Func::vkCmdDrawIndexedIndirectCount;
} else if (function == Func::vkCmdDrawIndirectCountKHR) {
function = Func::vkCmdDrawIndirectCount;
} else if (function == Func::vkCmdDispatchBaseKHR) {
function = Func::vkCmdDispatchBase;
}
// When c++20 is added, turn to std::format
return std::string("VUID-") + String(function) + "-" + suffix;
}
} // namespace vvl