// *** THIS FILE IS GENERATED - DO NOT EDIT ***
// See command_validation_generator.py for modifications


/***************************************************************************
 *
 * Copyright (c) 2021-2022 The Khronos Group Inc.
 *
 * 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.
 *
 * Author: Spencer Fricke <s.fricke@samsung.com>
 *
 ****************************************************************************/

#pragma once
#include <array>
#include <bitset>

// Used as key for maps of all vkCmd* calls
// Does not include vkBeginCommandBuffer/vkEndCommandBuffer
typedef enum CMD_TYPE {
    CMD_NONE = 0,
    CMD_BEGINCONDITIONALRENDERINGEXT = 1,
    CMD_BEGINDEBUGUTILSLABELEXT = 2,
    CMD_BEGINQUERY = 3,
    CMD_BEGINQUERYINDEXEDEXT = 4,
    CMD_BEGINRENDERPASS = 5,
    CMD_BEGINRENDERPASS2 = 6,
    CMD_BEGINRENDERPASS2KHR = 7,
    CMD_BEGINRENDERING = 8,
    CMD_BEGINRENDERINGKHR = 9,
    CMD_BEGINTRANSFORMFEEDBACKEXT = 10,
    CMD_BEGINVIDEOCODINGKHR = 11,
    CMD_BINDDESCRIPTORSETS = 12,
    CMD_BINDINDEXBUFFER = 13,
    CMD_BINDINVOCATIONMASKHUAWEI = 14,
    CMD_BINDPIPELINE = 15,
    CMD_BINDPIPELINESHADERGROUPNV = 16,
    CMD_BINDSHADINGRATEIMAGENV = 17,
    CMD_BINDTRANSFORMFEEDBACKBUFFERSEXT = 18,
    CMD_BINDVERTEXBUFFERS = 19,
    CMD_BINDVERTEXBUFFERS2 = 20,
    CMD_BINDVERTEXBUFFERS2EXT = 21,
    CMD_BLITIMAGE = 22,
    CMD_BLITIMAGE2 = 23,
    CMD_BLITIMAGE2KHR = 24,
    CMD_BUILDACCELERATIONSTRUCTURENV = 25,
    CMD_BUILDACCELERATIONSTRUCTURESINDIRECTKHR = 26,
    CMD_BUILDACCELERATIONSTRUCTURESKHR = 27,
    CMD_BUILDMICROMAPSEXT = 28,
    CMD_CLEARATTACHMENTS = 29,
    CMD_CLEARCOLORIMAGE = 30,
    CMD_CLEARDEPTHSTENCILIMAGE = 31,
    CMD_CONTROLVIDEOCODINGKHR = 32,
    CMD_COPYACCELERATIONSTRUCTUREKHR = 33,
    CMD_COPYACCELERATIONSTRUCTURENV = 34,
    CMD_COPYACCELERATIONSTRUCTURETOMEMORYKHR = 35,
    CMD_COPYBUFFER = 36,
    CMD_COPYBUFFER2 = 37,
    CMD_COPYBUFFER2KHR = 38,
    CMD_COPYBUFFERTOIMAGE = 39,
    CMD_COPYBUFFERTOIMAGE2 = 40,
    CMD_COPYBUFFERTOIMAGE2KHR = 41,
    CMD_COPYIMAGE = 42,
    CMD_COPYIMAGE2 = 43,
    CMD_COPYIMAGE2KHR = 44,
    CMD_COPYIMAGETOBUFFER = 45,
    CMD_COPYIMAGETOBUFFER2 = 46,
    CMD_COPYIMAGETOBUFFER2KHR = 47,
    CMD_COPYMEMORYTOACCELERATIONSTRUCTUREKHR = 48,
    CMD_COPYMEMORYTOMICROMAPEXT = 49,
    CMD_COPYMICROMAPEXT = 50,
    CMD_COPYMICROMAPTOMEMORYEXT = 51,
    CMD_COPYQUERYPOOLRESULTS = 52,
    CMD_CULAUNCHKERNELNVX = 53,
    CMD_DEBUGMARKERBEGINEXT = 54,
    CMD_DEBUGMARKERENDEXT = 55,
    CMD_DEBUGMARKERINSERTEXT = 56,
    CMD_DECODEVIDEOKHR = 57,
    CMD_DISPATCH = 58,
    CMD_DISPATCHBASE = 59,
    CMD_DISPATCHBASEKHR = 60,
    CMD_DISPATCHINDIRECT = 61,
    CMD_DRAW = 62,
    CMD_DRAWINDEXED = 63,
    CMD_DRAWINDEXEDINDIRECT = 64,
    CMD_DRAWINDEXEDINDIRECTCOUNT = 65,
    CMD_DRAWINDEXEDINDIRECTCOUNTAMD = 66,
    CMD_DRAWINDEXEDINDIRECTCOUNTKHR = 67,
    CMD_DRAWINDIRECT = 68,
    CMD_DRAWINDIRECTBYTECOUNTEXT = 69,
    CMD_DRAWINDIRECTCOUNT = 70,
    CMD_DRAWINDIRECTCOUNTAMD = 71,
    CMD_DRAWINDIRECTCOUNTKHR = 72,
    CMD_DRAWMESHTASKSEXT = 73,
    CMD_DRAWMESHTASKSINDIRECTCOUNTEXT = 74,
    CMD_DRAWMESHTASKSINDIRECTCOUNTNV = 75,
    CMD_DRAWMESHTASKSINDIRECTEXT = 76,
    CMD_DRAWMESHTASKSINDIRECTNV = 77,
    CMD_DRAWMESHTASKSNV = 78,
    CMD_DRAWMULTIEXT = 79,
    CMD_DRAWMULTIINDEXEDEXT = 80,
    CMD_ENCODEVIDEOKHR = 81,
    CMD_ENDCONDITIONALRENDERINGEXT = 82,
    CMD_ENDDEBUGUTILSLABELEXT = 83,
    CMD_ENDQUERY = 84,
    CMD_ENDQUERYINDEXEDEXT = 85,
    CMD_ENDRENDERPASS = 86,
    CMD_ENDRENDERPASS2 = 87,
    CMD_ENDRENDERPASS2KHR = 88,
    CMD_ENDRENDERING = 89,
    CMD_ENDRENDERINGKHR = 90,
    CMD_ENDTRANSFORMFEEDBACKEXT = 91,
    CMD_ENDVIDEOCODINGKHR = 92,
    CMD_EXECUTECOMMANDS = 93,
    CMD_EXECUTEGENERATEDCOMMANDSNV = 94,
    CMD_FILLBUFFER = 95,
    CMD_INSERTDEBUGUTILSLABELEXT = 96,
    CMD_NEXTSUBPASS = 97,
    CMD_NEXTSUBPASS2 = 98,
    CMD_NEXTSUBPASS2KHR = 99,
    CMD_OPTICALFLOWEXECUTENV = 100,
    CMD_PIPELINEBARRIER = 101,
    CMD_PIPELINEBARRIER2 = 102,
    CMD_PIPELINEBARRIER2KHR = 103,
    CMD_PREPROCESSGENERATEDCOMMANDSNV = 104,
    CMD_PUSHCONSTANTS = 105,
    CMD_PUSHDESCRIPTORSETKHR = 106,
    CMD_PUSHDESCRIPTORSETWITHTEMPLATEKHR = 107,
    CMD_RESETEVENT = 108,
    CMD_RESETEVENT2 = 109,
    CMD_RESETEVENT2KHR = 110,
    CMD_RESETQUERYPOOL = 111,
    CMD_RESOLVEIMAGE = 112,
    CMD_RESOLVEIMAGE2 = 113,
    CMD_RESOLVEIMAGE2KHR = 114,
    CMD_SETALPHATOCOVERAGEENABLEEXT = 115,
    CMD_SETALPHATOONEENABLEEXT = 116,
    CMD_SETBLENDCONSTANTS = 117,
    CMD_SETCHECKPOINTNV = 118,
    CMD_SETCOARSESAMPLEORDERNV = 119,
    CMD_SETCOLORBLENDADVANCEDEXT = 120,
    CMD_SETCOLORBLENDENABLEEXT = 121,
    CMD_SETCOLORBLENDEQUATIONEXT = 122,
    CMD_SETCOLORWRITEENABLEEXT = 123,
    CMD_SETCOLORWRITEMASKEXT = 124,
    CMD_SETCONSERVATIVERASTERIZATIONMODEEXT = 125,
    CMD_SETCOVERAGEMODULATIONMODENV = 126,
    CMD_SETCOVERAGEMODULATIONTABLEENABLENV = 127,
    CMD_SETCOVERAGEMODULATIONTABLENV = 128,
    CMD_SETCOVERAGEREDUCTIONMODENV = 129,
    CMD_SETCOVERAGETOCOLORENABLENV = 130,
    CMD_SETCOVERAGETOCOLORLOCATIONNV = 131,
    CMD_SETCULLMODE = 132,
    CMD_SETCULLMODEEXT = 133,
    CMD_SETDEPTHBIAS = 134,
    CMD_SETDEPTHBIASENABLE = 135,
    CMD_SETDEPTHBIASENABLEEXT = 136,
    CMD_SETDEPTHBOUNDS = 137,
    CMD_SETDEPTHBOUNDSTESTENABLE = 138,
    CMD_SETDEPTHBOUNDSTESTENABLEEXT = 139,
    CMD_SETDEPTHCLAMPENABLEEXT = 140,
    CMD_SETDEPTHCLIPENABLEEXT = 141,
    CMD_SETDEPTHCLIPNEGATIVEONETOONEEXT = 142,
    CMD_SETDEPTHCOMPAREOP = 143,
    CMD_SETDEPTHCOMPAREOPEXT = 144,
    CMD_SETDEPTHTESTENABLE = 145,
    CMD_SETDEPTHTESTENABLEEXT = 146,
    CMD_SETDEPTHWRITEENABLE = 147,
    CMD_SETDEPTHWRITEENABLEEXT = 148,
    CMD_SETDEVICEMASK = 149,
    CMD_SETDEVICEMASKKHR = 150,
    CMD_SETDISCARDRECTANGLEEXT = 151,
    CMD_SETEVENT = 152,
    CMD_SETEVENT2 = 153,
    CMD_SETEVENT2KHR = 154,
    CMD_SETEXCLUSIVESCISSORNV = 155,
    CMD_SETEXTRAPRIMITIVEOVERESTIMATIONSIZEEXT = 156,
    CMD_SETFRAGMENTSHADINGRATEENUMNV = 157,
    CMD_SETFRAGMENTSHADINGRATEKHR = 158,
    CMD_SETFRONTFACE = 159,
    CMD_SETFRONTFACEEXT = 160,
    CMD_SETLINERASTERIZATIONMODEEXT = 161,
    CMD_SETLINESTIPPLEEXT = 162,
    CMD_SETLINESTIPPLEENABLEEXT = 163,
    CMD_SETLINEWIDTH = 164,
    CMD_SETLOGICOPEXT = 165,
    CMD_SETLOGICOPENABLEEXT = 166,
    CMD_SETPATCHCONTROLPOINTSEXT = 167,
    CMD_SETPERFORMANCEMARKERINTEL = 168,
    CMD_SETPERFORMANCEOVERRIDEINTEL = 169,
    CMD_SETPERFORMANCESTREAMMARKERINTEL = 170,
    CMD_SETPOLYGONMODEEXT = 171,
    CMD_SETPRIMITIVERESTARTENABLE = 172,
    CMD_SETPRIMITIVERESTARTENABLEEXT = 173,
    CMD_SETPRIMITIVETOPOLOGY = 174,
    CMD_SETPRIMITIVETOPOLOGYEXT = 175,
    CMD_SETPROVOKINGVERTEXMODEEXT = 176,
    CMD_SETRASTERIZATIONSAMPLESEXT = 177,
    CMD_SETRASTERIZATIONSTREAMEXT = 178,
    CMD_SETRASTERIZERDISCARDENABLE = 179,
    CMD_SETRASTERIZERDISCARDENABLEEXT = 180,
    CMD_SETRAYTRACINGPIPELINESTACKSIZEKHR = 181,
    CMD_SETREPRESENTATIVEFRAGMENTTESTENABLENV = 182,
    CMD_SETSAMPLELOCATIONSEXT = 183,
    CMD_SETSAMPLELOCATIONSENABLEEXT = 184,
    CMD_SETSAMPLEMASKEXT = 185,
    CMD_SETSCISSOR = 186,
    CMD_SETSCISSORWITHCOUNT = 187,
    CMD_SETSCISSORWITHCOUNTEXT = 188,
    CMD_SETSHADINGRATEIMAGEENABLENV = 189,
    CMD_SETSTENCILCOMPAREMASK = 190,
    CMD_SETSTENCILOP = 191,
    CMD_SETSTENCILOPEXT = 192,
    CMD_SETSTENCILREFERENCE = 193,
    CMD_SETSTENCILTESTENABLE = 194,
    CMD_SETSTENCILTESTENABLEEXT = 195,
    CMD_SETSTENCILWRITEMASK = 196,
    CMD_SETTESSELLATIONDOMAINORIGINEXT = 197,
    CMD_SETVERTEXINPUTEXT = 198,
    CMD_SETVIEWPORT = 199,
    CMD_SETVIEWPORTSHADINGRATEPALETTENV = 200,
    CMD_SETVIEWPORTSWIZZLENV = 201,
    CMD_SETVIEWPORTWSCALINGENABLENV = 202,
    CMD_SETVIEWPORTWSCALINGNV = 203,
    CMD_SETVIEWPORTWITHCOUNT = 204,
    CMD_SETVIEWPORTWITHCOUNTEXT = 205,
    CMD_SUBPASSSHADINGHUAWEI = 206,
    CMD_TRACERAYSINDIRECT2KHR = 207,
    CMD_TRACERAYSINDIRECTKHR = 208,
    CMD_TRACERAYSKHR = 209,
    CMD_TRACERAYSNV = 210,
    CMD_UPDATEBUFFER = 211,
    CMD_WAITEVENTS = 212,
    CMD_WAITEVENTS2 = 213,
    CMD_WAITEVENTS2KHR = 214,
    CMD_WRITEACCELERATIONSTRUCTURESPROPERTIESKHR = 215,
    CMD_WRITEACCELERATIONSTRUCTURESPROPERTIESNV = 216,
    CMD_WRITEBUFFERMARKER2AMD = 217,
    CMD_WRITEBUFFERMARKERAMD = 218,
    CMD_WRITEMICROMAPSPROPERTIESEXT = 219,
    CMD_WRITETIMESTAMP = 220,
    CMD_WRITETIMESTAMP2 = 221,
    CMD_WRITETIMESTAMP2KHR = 222,
    CMD_RANGE_SIZE = 223
} CMD_TYPE;

static const std::array<const char *, CMD_RANGE_SIZE> kGeneratedCommandNameList = {{
    "Command_Undefined",
    "vkCmdBeginConditionalRenderingEXT",
    "vkCmdBeginDebugUtilsLabelEXT",
    "vkCmdBeginQuery",
    "vkCmdBeginQueryIndexedEXT",
    "vkCmdBeginRenderPass",
    "vkCmdBeginRenderPass2",
    "vkCmdBeginRenderPass2KHR",
    "vkCmdBeginRendering",
    "vkCmdBeginRenderingKHR",
    "vkCmdBeginTransformFeedbackEXT",
    "vkCmdBeginVideoCodingKHR",
    "vkCmdBindDescriptorSets",
    "vkCmdBindIndexBuffer",
    "vkCmdBindInvocationMaskHUAWEI",
    "vkCmdBindPipeline",
    "vkCmdBindPipelineShaderGroupNV",
    "vkCmdBindShadingRateImageNV",
    "vkCmdBindTransformFeedbackBuffersEXT",
    "vkCmdBindVertexBuffers",
    "vkCmdBindVertexBuffers2",
    "vkCmdBindVertexBuffers2EXT",
    "vkCmdBlitImage",
    "vkCmdBlitImage2",
    "vkCmdBlitImage2KHR",
    "vkCmdBuildAccelerationStructureNV",
    "vkCmdBuildAccelerationStructuresIndirectKHR",
    "vkCmdBuildAccelerationStructuresKHR",
    "vkCmdBuildMicromapsEXT",
    "vkCmdClearAttachments",
    "vkCmdClearColorImage",
    "vkCmdClearDepthStencilImage",
    "vkCmdControlVideoCodingKHR",
    "vkCmdCopyAccelerationStructureKHR",
    "vkCmdCopyAccelerationStructureNV",
    "vkCmdCopyAccelerationStructureToMemoryKHR",
    "vkCmdCopyBuffer",
    "vkCmdCopyBuffer2",
    "vkCmdCopyBuffer2KHR",
    "vkCmdCopyBufferToImage",
    "vkCmdCopyBufferToImage2",
    "vkCmdCopyBufferToImage2KHR",
    "vkCmdCopyImage",
    "vkCmdCopyImage2",
    "vkCmdCopyImage2KHR",
    "vkCmdCopyImageToBuffer",
    "vkCmdCopyImageToBuffer2",
    "vkCmdCopyImageToBuffer2KHR",
    "vkCmdCopyMemoryToAccelerationStructureKHR",
    "vkCmdCopyMemoryToMicromapEXT",
    "vkCmdCopyMicromapEXT",
    "vkCmdCopyMicromapToMemoryEXT",
    "vkCmdCopyQueryPoolResults",
    "vkCmdCuLaunchKernelNVX",
    "vkCmdDebugMarkerBeginEXT",
    "vkCmdDebugMarkerEndEXT",
    "vkCmdDebugMarkerInsertEXT",
    "vkCmdDecodeVideoKHR",
    "vkCmdDispatch",
    "vkCmdDispatchBase",
    "vkCmdDispatchBaseKHR",
    "vkCmdDispatchIndirect",
    "vkCmdDraw",
    "vkCmdDrawIndexed",
    "vkCmdDrawIndexedIndirect",
    "vkCmdDrawIndexedIndirectCount",
    "vkCmdDrawIndexedIndirectCountAMD",
    "vkCmdDrawIndexedIndirectCountKHR",
    "vkCmdDrawIndirect",
    "vkCmdDrawIndirectByteCountEXT",
    "vkCmdDrawIndirectCount",
    "vkCmdDrawIndirectCountAMD",
    "vkCmdDrawIndirectCountKHR",
    "vkCmdDrawMeshTasksEXT",
    "vkCmdDrawMeshTasksIndirectCountEXT",
    "vkCmdDrawMeshTasksIndirectCountNV",
    "vkCmdDrawMeshTasksIndirectEXT",
    "vkCmdDrawMeshTasksIndirectNV",
    "vkCmdDrawMeshTasksNV",
    "vkCmdDrawMultiEXT",
    "vkCmdDrawMultiIndexedEXT",
    "vkCmdEncodeVideoKHR",
    "vkCmdEndConditionalRenderingEXT",
    "vkCmdEndDebugUtilsLabelEXT",
    "vkCmdEndQuery",
    "vkCmdEndQueryIndexedEXT",
    "vkCmdEndRenderPass",
    "vkCmdEndRenderPass2",
    "vkCmdEndRenderPass2KHR",
    "vkCmdEndRendering",
    "vkCmdEndRenderingKHR",
    "vkCmdEndTransformFeedbackEXT",
    "vkCmdEndVideoCodingKHR",
    "vkCmdExecuteCommands",
    "vkCmdExecuteGeneratedCommandsNV",
    "vkCmdFillBuffer",
    "vkCmdInsertDebugUtilsLabelEXT",
    "vkCmdNextSubpass",
    "vkCmdNextSubpass2",
    "vkCmdNextSubpass2KHR",
    "vkCmdOpticalFlowExecuteNV",
    "vkCmdPipelineBarrier",
    "vkCmdPipelineBarrier2",
    "vkCmdPipelineBarrier2KHR",
    "vkCmdPreprocessGeneratedCommandsNV",
    "vkCmdPushConstants",
    "vkCmdPushDescriptorSetKHR",
    "vkCmdPushDescriptorSetWithTemplateKHR",
    "vkCmdResetEvent",
    "vkCmdResetEvent2",
    "vkCmdResetEvent2KHR",
    "vkCmdResetQueryPool",
    "vkCmdResolveImage",
    "vkCmdResolveImage2",
    "vkCmdResolveImage2KHR",
    "vkCmdSetAlphaToCoverageEnableEXT",
    "vkCmdSetAlphaToOneEnableEXT",
    "vkCmdSetBlendConstants",
    "vkCmdSetCheckpointNV",
    "vkCmdSetCoarseSampleOrderNV",
    "vkCmdSetColorBlendAdvancedEXT",
    "vkCmdSetColorBlendEnableEXT",
    "vkCmdSetColorBlendEquationEXT",
    "vkCmdSetColorWriteEnableEXT",
    "vkCmdSetColorWriteMaskEXT",
    "vkCmdSetConservativeRasterizationModeEXT",
    "vkCmdSetCoverageModulationModeNV",
    "vkCmdSetCoverageModulationTableEnableNV",
    "vkCmdSetCoverageModulationTableNV",
    "vkCmdSetCoverageReductionModeNV",
    "vkCmdSetCoverageToColorEnableNV",
    "vkCmdSetCoverageToColorLocationNV",
    "vkCmdSetCullMode",
    "vkCmdSetCullModeEXT",
    "vkCmdSetDepthBias",
    "vkCmdSetDepthBiasEnable",
    "vkCmdSetDepthBiasEnableEXT",
    "vkCmdSetDepthBounds",
    "vkCmdSetDepthBoundsTestEnable",
    "vkCmdSetDepthBoundsTestEnableEXT",
    "vkCmdSetDepthClampEnableEXT",
    "vkCmdSetDepthClipEnableEXT",
    "vkCmdSetDepthClipNegativeOneToOneEXT",
    "vkCmdSetDepthCompareOp",
    "vkCmdSetDepthCompareOpEXT",
    "vkCmdSetDepthTestEnable",
    "vkCmdSetDepthTestEnableEXT",
    "vkCmdSetDepthWriteEnable",
    "vkCmdSetDepthWriteEnableEXT",
    "vkCmdSetDeviceMask",
    "vkCmdSetDeviceMaskKHR",
    "vkCmdSetDiscardRectangleEXT",
    "vkCmdSetEvent",
    "vkCmdSetEvent2",
    "vkCmdSetEvent2KHR",
    "vkCmdSetExclusiveScissorNV",
    "vkCmdSetExtraPrimitiveOverestimationSizeEXT",
    "vkCmdSetFragmentShadingRateEnumNV",
    "vkCmdSetFragmentShadingRateKHR",
    "vkCmdSetFrontFace",
    "vkCmdSetFrontFaceEXT",
    "vkCmdSetLineRasterizationModeEXT",
    "vkCmdSetLineStippleEXT",
    "vkCmdSetLineStippleEnableEXT",
    "vkCmdSetLineWidth",
    "vkCmdSetLogicOpEXT",
    "vkCmdSetLogicOpEnableEXT",
    "vkCmdSetPatchControlPointsEXT",
    "vkCmdSetPerformanceMarkerINTEL",
    "vkCmdSetPerformanceOverrideINTEL",
    "vkCmdSetPerformanceStreamMarkerINTEL",
    "vkCmdSetPolygonModeEXT",
    "vkCmdSetPrimitiveRestartEnable",
    "vkCmdSetPrimitiveRestartEnableEXT",
    "vkCmdSetPrimitiveTopology",
    "vkCmdSetPrimitiveTopologyEXT",
    "vkCmdSetProvokingVertexModeEXT",
    "vkCmdSetRasterizationSamplesEXT",
    "vkCmdSetRasterizationStreamEXT",
    "vkCmdSetRasterizerDiscardEnable",
    "vkCmdSetRasterizerDiscardEnableEXT",
    "vkCmdSetRayTracingPipelineStackSizeKHR",
    "vkCmdSetRepresentativeFragmentTestEnableNV",
    "vkCmdSetSampleLocationsEXT",
    "vkCmdSetSampleLocationsEnableEXT",
    "vkCmdSetSampleMaskEXT",
    "vkCmdSetScissor",
    "vkCmdSetScissorWithCount",
    "vkCmdSetScissorWithCountEXT",
    "vkCmdSetShadingRateImageEnableNV",
    "vkCmdSetStencilCompareMask",
    "vkCmdSetStencilOp",
    "vkCmdSetStencilOpEXT",
    "vkCmdSetStencilReference",
    "vkCmdSetStencilTestEnable",
    "vkCmdSetStencilTestEnableEXT",
    "vkCmdSetStencilWriteMask",
    "vkCmdSetTessellationDomainOriginEXT",
    "vkCmdSetVertexInputEXT",
    "vkCmdSetViewport",
    "vkCmdSetViewportShadingRatePaletteNV",
    "vkCmdSetViewportSwizzleNV",
    "vkCmdSetViewportWScalingEnableNV",
    "vkCmdSetViewportWScalingNV",
    "vkCmdSetViewportWithCount",
    "vkCmdSetViewportWithCountEXT",
    "vkCmdSubpassShadingHUAWEI",
    "vkCmdTraceRaysIndirect2KHR",
    "vkCmdTraceRaysIndirectKHR",
    "vkCmdTraceRaysKHR",
    "vkCmdTraceRaysNV",
    "vkCmdUpdateBuffer",
    "vkCmdWaitEvents",
    "vkCmdWaitEvents2",
    "vkCmdWaitEvents2KHR",
    "vkCmdWriteAccelerationStructuresPropertiesKHR",
    "vkCmdWriteAccelerationStructuresPropertiesNV",
    "vkCmdWriteBufferMarker2AMD",
    "vkCmdWriteBufferMarkerAMD",
    "vkCmdWriteMicromapsPropertiesEXT",
    "vkCmdWriteTimestamp",
    "vkCmdWriteTimestamp2",
    "vkCmdWriteTimestamp2KHR",
}};

typedef enum CB_DYNAMIC_STATUS {
    CB_DYNAMIC_VIEWPORT_SET = 1,
    CB_DYNAMIC_SCISSOR_SET = 2,
    CB_DYNAMIC_LINE_WIDTH_SET = 3,
    CB_DYNAMIC_DEPTH_BIAS_SET = 4,
    CB_DYNAMIC_BLEND_CONSTANTS_SET = 5,
    CB_DYNAMIC_DEPTH_BOUNDS_SET = 6,
    CB_DYNAMIC_STENCIL_COMPARE_MASK_SET = 7,
    CB_DYNAMIC_STENCIL_WRITE_MASK_SET = 8,
    CB_DYNAMIC_STENCIL_REFERENCE_SET = 9,
    CB_DYNAMIC_CULL_MODE_SET = 10,
    CB_DYNAMIC_FRONT_FACE_SET = 11,
    CB_DYNAMIC_PRIMITIVE_TOPOLOGY_SET = 12,
    CB_DYNAMIC_VIEWPORT_WITH_COUNT_SET = 13,
    CB_DYNAMIC_SCISSOR_WITH_COUNT_SET = 14,
    CB_DYNAMIC_VERTEX_INPUT_BINDING_STRIDE_SET = 15,
    CB_DYNAMIC_DEPTH_TEST_ENABLE_SET = 16,
    CB_DYNAMIC_DEPTH_WRITE_ENABLE_SET = 17,
    CB_DYNAMIC_DEPTH_COMPARE_OP_SET = 18,
    CB_DYNAMIC_DEPTH_BOUNDS_TEST_ENABLE_SET = 19,
    CB_DYNAMIC_STENCIL_TEST_ENABLE_SET = 20,
    CB_DYNAMIC_STENCIL_OP_SET = 21,
    CB_DYNAMIC_RASTERIZER_DISCARD_ENABLE_SET = 22,
    CB_DYNAMIC_DEPTH_BIAS_ENABLE_SET = 23,
    CB_DYNAMIC_PRIMITIVE_RESTART_ENABLE_SET = 24,
    CB_DYNAMIC_VIEWPORT_W_SCALING_NV_SET = 25,
    CB_DYNAMIC_DISCARD_RECTANGLE_EXT_SET = 26,
    CB_DYNAMIC_SAMPLE_LOCATIONS_EXT_SET = 27,
    CB_DYNAMIC_RAY_TRACING_PIPELINE_STACK_SIZE_KHR_SET = 28,
    CB_DYNAMIC_VIEWPORT_SHADING_RATE_PALETTE_NV_SET = 29,
    CB_DYNAMIC_VIEWPORT_COARSE_SAMPLE_ORDER_NV_SET = 30,
    CB_DYNAMIC_EXCLUSIVE_SCISSOR_NV_SET = 31,
    CB_DYNAMIC_FRAGMENT_SHADING_RATE_KHR_SET = 32,
    CB_DYNAMIC_LINE_STIPPLE_EXT_SET = 33,
    CB_DYNAMIC_VERTEX_INPUT_EXT_SET = 34,
    CB_DYNAMIC_PATCH_CONTROL_POINTS_EXT_SET = 35,
    CB_DYNAMIC_LOGIC_OP_EXT_SET = 36,
    CB_DYNAMIC_COLOR_WRITE_ENABLE_EXT_SET = 37,
    CB_DYNAMIC_TESSELLATION_DOMAIN_ORIGIN_EXT_SET = 38,
    CB_DYNAMIC_DEPTH_CLAMP_ENABLE_EXT_SET = 39,
    CB_DYNAMIC_POLYGON_MODE_EXT_SET = 40,
    CB_DYNAMIC_RASTERIZATION_SAMPLES_EXT_SET = 41,
    CB_DYNAMIC_SAMPLE_MASK_EXT_SET = 42,
    CB_DYNAMIC_ALPHA_TO_COVERAGE_ENABLE_EXT_SET = 43,
    CB_DYNAMIC_ALPHA_TO_ONE_ENABLE_EXT_SET = 44,
    CB_DYNAMIC_LOGIC_OP_ENABLE_EXT_SET = 45,
    CB_DYNAMIC_COLOR_BLEND_ENABLE_EXT_SET = 46,
    CB_DYNAMIC_COLOR_BLEND_EQUATION_EXT_SET = 47,
    CB_DYNAMIC_COLOR_WRITE_MASK_EXT_SET = 48,
    CB_DYNAMIC_RASTERIZATION_STREAM_EXT_SET = 49,
    CB_DYNAMIC_CONSERVATIVE_RASTERIZATION_MODE_EXT_SET = 50,
    CB_DYNAMIC_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT_SET = 51,
    CB_DYNAMIC_DEPTH_CLIP_ENABLE_EXT_SET = 52,
    CB_DYNAMIC_SAMPLE_LOCATIONS_ENABLE_EXT_SET = 53,
    CB_DYNAMIC_COLOR_BLEND_ADVANCED_EXT_SET = 54,
    CB_DYNAMIC_PROVOKING_VERTEX_MODE_EXT_SET = 55,
    CB_DYNAMIC_LINE_RASTERIZATION_MODE_EXT_SET = 56,
    CB_DYNAMIC_LINE_STIPPLE_ENABLE_EXT_SET = 57,
    CB_DYNAMIC_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT_SET = 58,
    CB_DYNAMIC_VIEWPORT_W_SCALING_ENABLE_NV_SET = 59,
    CB_DYNAMIC_VIEWPORT_SWIZZLE_NV_SET = 60,
    CB_DYNAMIC_COVERAGE_TO_COLOR_ENABLE_NV_SET = 61,
    CB_DYNAMIC_COVERAGE_TO_COLOR_LOCATION_NV_SET = 62,
    CB_DYNAMIC_COVERAGE_MODULATION_MODE_NV_SET = 63,
    CB_DYNAMIC_COVERAGE_MODULATION_TABLE_ENABLE_NV_SET = 64,
    CB_DYNAMIC_COVERAGE_MODULATION_TABLE_NV_SET = 65,
    CB_DYNAMIC_SHADING_RATE_IMAGE_ENABLE_NV_SET = 66,
    CB_DYNAMIC_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV_SET = 67,
    CB_DYNAMIC_COVERAGE_REDUCTION_MODE_NV_SET = 68,
    CB_DYNAMIC_STATUS_NUM = 69
} CB_DYNAMIC_STATUS;

typedef std::bitset<CB_DYNAMIC_STATUS_NUM> CBDynamicFlags;
std::string DynamicStateString(CBDynamicFlags const &dynamic_state);
struct VkPipelineDynamicStateCreateInfo;
CBDynamicFlags MakeStaticStateMask(VkPipelineDynamicStateCreateInfo const *info);

