Home | History | Annotate | Download | only in include
      1 #pragma once
      2 
      3 #ifdef _WIN32
      4 
      5 #pragma warning( disable : 4065 )
      6 
      7 #endif
      8 
      9 #include <vulkan/vulkan.h>
     10 
     11 
     12 static inline uint32_t validate_VkAccessFlagBits(VkAccessFlagBits input_value)
     13 {
     14     if (input_value > (VK_ACCESS_INDIRECT_COMMAND_READ_BIT | VK_ACCESS_INDEX_READ_BIT | VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT | VK_ACCESS_UNIFORM_READ_BIT | VK_ACCESS_INPUT_ATTACHMENT_READ_BIT | VK_ACCESS_SHADER_READ_BIT | VK_ACCESS_SHADER_WRITE_BIT | VK_ACCESS_COLOR_ATTACHMENT_READ_BIT | VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT | VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT | VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT | VK_ACCESS_TRANSFER_READ_BIT | VK_ACCESS_TRANSFER_WRITE_BIT | VK_ACCESS_HOST_READ_BIT | VK_ACCESS_HOST_WRITE_BIT | VK_ACCESS_MEMORY_READ_BIT | VK_ACCESS_MEMORY_WRITE_BIT))
     15         return 0;
     16     return 1;
     17 }
     18 
     19 
     20 static inline uint32_t validate_VkAttachmentDescriptionFlagBits(VkAttachmentDescriptionFlagBits input_value)
     21 {
     22     if (input_value > (VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT))
     23         return 0;
     24     return 1;
     25 }
     26 
     27 
     28 static inline uint32_t validate_VkAttachmentLoadOp(VkAttachmentLoadOp input_value)
     29 {
     30     switch ((VkAttachmentLoadOp)input_value)
     31     {
     32         case VK_ATTACHMENT_LOAD_OP_CLEAR:
     33         case VK_ATTACHMENT_LOAD_OP_DONT_CARE:
     34         case VK_ATTACHMENT_LOAD_OP_LOAD:
     35             return 1;
     36         default:
     37             return 0;
     38     }
     39 }
     40 
     41 
     42 static inline uint32_t validate_VkAttachmentStoreOp(VkAttachmentStoreOp input_value)
     43 {
     44     switch ((VkAttachmentStoreOp)input_value)
     45     {
     46         case VK_ATTACHMENT_STORE_OP_DONT_CARE:
     47         case VK_ATTACHMENT_STORE_OP_STORE:
     48             return 1;
     49         default:
     50             return 0;
     51     }
     52 }
     53 
     54 
     55 static inline uint32_t validate_VkBlendFactor(VkBlendFactor input_value)
     56 {
     57     switch ((VkBlendFactor)input_value)
     58     {
     59         case VK_BLEND_FACTOR_CONSTANT_ALPHA:
     60         case VK_BLEND_FACTOR_CONSTANT_COLOR:
     61         case VK_BLEND_FACTOR_DST_ALPHA:
     62         case VK_BLEND_FACTOR_DST_COLOR:
     63         case VK_BLEND_FACTOR_ONE:
     64         case VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA:
     65         case VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR:
     66         case VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA:
     67         case VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR:
     68         case VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA:
     69         case VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR:
     70         case VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA:
     71         case VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR:
     72         case VK_BLEND_FACTOR_SRC1_ALPHA:
     73         case VK_BLEND_FACTOR_SRC1_COLOR:
     74         case VK_BLEND_FACTOR_SRC_ALPHA:
     75         case VK_BLEND_FACTOR_SRC_ALPHA_SATURATE:
     76         case VK_BLEND_FACTOR_SRC_COLOR:
     77         case VK_BLEND_FACTOR_ZERO:
     78             return 1;
     79         default:
     80             return 0;
     81     }
     82 }
     83 
     84 
     85 static inline uint32_t validate_VkBlendOp(VkBlendOp input_value)
     86 {
     87     switch ((VkBlendOp)input_value)
     88     {
     89         case VK_BLEND_OP_ADD:
     90         case VK_BLEND_OP_MAX:
     91         case VK_BLEND_OP_MIN:
     92         case VK_BLEND_OP_REVERSE_SUBTRACT:
     93         case VK_BLEND_OP_SUBTRACT:
     94             return 1;
     95         default:
     96             return 0;
     97     }
     98 }
     99 
    100 
    101 static inline uint32_t validate_VkBorderColor(VkBorderColor input_value)
    102 {
    103     switch ((VkBorderColor)input_value)
    104     {
    105         case VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK:
    106         case VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE:
    107         case VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK:
    108         case VK_BORDER_COLOR_INT_OPAQUE_BLACK:
    109         case VK_BORDER_COLOR_INT_OPAQUE_WHITE:
    110         case VK_BORDER_COLOR_INT_TRANSPARENT_BLACK:
    111             return 1;
    112         default:
    113             return 0;
    114     }
    115 }
    116 
    117 
    118 static inline uint32_t validate_VkBufferCreateFlagBits(VkBufferCreateFlagBits input_value)
    119 {
    120     if (input_value > (VK_BUFFER_CREATE_SPARSE_BINDING_BIT | VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT | VK_BUFFER_CREATE_SPARSE_ALIASED_BIT))
    121         return 0;
    122     return 1;
    123 }
    124 
    125 
    126 static inline uint32_t validate_VkBufferUsageFlagBits(VkBufferUsageFlagBits input_value)
    127 {
    128     if (input_value > (VK_BUFFER_USAGE_TRANSFER_SRC_BIT | VK_BUFFER_USAGE_TRANSFER_DST_BIT | VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT | VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT | VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT | VK_BUFFER_USAGE_STORAGE_BUFFER_BIT | VK_BUFFER_USAGE_INDEX_BUFFER_BIT | VK_BUFFER_USAGE_VERTEX_BUFFER_BIT | VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT))
    129         return 0;
    130     return 1;
    131 }
    132 
    133 
    134 static inline uint32_t validate_VkColorComponentFlagBits(VkColorComponentFlagBits input_value)
    135 {
    136     if (input_value > (VK_COLOR_COMPONENT_R_BIT | VK_COLOR_COMPONENT_G_BIT | VK_COLOR_COMPONENT_B_BIT | VK_COLOR_COMPONENT_A_BIT))
    137         return 0;
    138     return 1;
    139 }
    140 
    141 
    142 static inline uint32_t validate_VkColorSpaceKHR(VkColorSpaceKHR input_value)
    143 {
    144     switch ((VkColorSpaceKHR)input_value)
    145     {
    146         case VK_COLOR_SPACE_SRGB_NONLINEAR_KHR:
    147             return 1;
    148         default:
    149             return 0;
    150     }
    151 }
    152 
    153 
    154 static inline uint32_t validate_VkCommandBufferLevel(VkCommandBufferLevel input_value)
    155 {
    156     switch ((VkCommandBufferLevel)input_value)
    157     {
    158         case VK_COMMAND_BUFFER_LEVEL_PRIMARY:
    159         case VK_COMMAND_BUFFER_LEVEL_SECONDARY:
    160             return 1;
    161         default:
    162             return 0;
    163     }
    164 }
    165 
    166 
    167 static inline uint32_t validate_VkCommandBufferResetFlagBits(VkCommandBufferResetFlagBits input_value)
    168 {
    169     if (input_value > (VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT))
    170         return 0;
    171     return 1;
    172 }
    173 
    174 
    175 static inline uint32_t validate_VkCommandBufferUsageFlagBits(VkCommandBufferUsageFlagBits input_value)
    176 {
    177     if (input_value > (VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT | VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT | VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT))
    178         return 0;
    179     return 1;
    180 }
    181 
    182 
    183 static inline uint32_t validate_VkCommandPoolCreateFlagBits(VkCommandPoolCreateFlagBits input_value)
    184 {
    185     if (input_value > (VK_COMMAND_POOL_CREATE_TRANSIENT_BIT | VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT))
    186         return 0;
    187     return 1;
    188 }
    189 
    190 
    191 static inline uint32_t validate_VkCommandPoolResetFlagBits(VkCommandPoolResetFlagBits input_value)
    192 {
    193     if (input_value > (VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT))
    194         return 0;
    195     return 1;
    196 }
    197 
    198 
    199 static inline uint32_t validate_VkCompareOp(VkCompareOp input_value)
    200 {
    201     switch ((VkCompareOp)input_value)
    202     {
    203         case VK_COMPARE_OP_ALWAYS:
    204         case VK_COMPARE_OP_EQUAL:
    205         case VK_COMPARE_OP_GREATER:
    206         case VK_COMPARE_OP_GREATER_OR_EQUAL:
    207         case VK_COMPARE_OP_LESS:
    208         case VK_COMPARE_OP_LESS_OR_EQUAL:
    209         case VK_COMPARE_OP_NEVER:
    210         case VK_COMPARE_OP_NOT_EQUAL:
    211             return 1;
    212         default:
    213             return 0;
    214     }
    215 }
    216 
    217 
    218 static inline uint32_t validate_VkComponentSwizzle(VkComponentSwizzle input_value)
    219 {
    220     switch ((VkComponentSwizzle)input_value)
    221     {
    222         case VK_COMPONENT_SWIZZLE_A:
    223         case VK_COMPONENT_SWIZZLE_B:
    224         case VK_COMPONENT_SWIZZLE_G:
    225         case VK_COMPONENT_SWIZZLE_IDENTITY:
    226         case VK_COMPONENT_SWIZZLE_ONE:
    227         case VK_COMPONENT_SWIZZLE_R:
    228         case VK_COMPONENT_SWIZZLE_ZERO:
    229             return 1;
    230         default:
    231             return 0;
    232     }
    233 }
    234 
    235 
    236 static inline uint32_t validate_VkCompositeAlphaFlagBitsKHR(VkCompositeAlphaFlagBitsKHR input_value)
    237 {
    238     if (input_value > (VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR | VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR | VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR | VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR))
    239         return 0;
    240     return 1;
    241 }
    242 
    243 
    244 static inline uint32_t validate_VkCullModeFlagBits(VkCullModeFlagBits input_value)
    245 {
    246     if (input_value > (VK_CULL_MODE_NONE | VK_CULL_MODE_FRONT_BIT | VK_CULL_MODE_BACK_BIT | VK_CULL_MODE_FRONT_AND_BACK))
    247         return 0;
    248     return 1;
    249 }
    250 
    251 
    252 static inline uint32_t validate_VkDebugReportErrorEXT(VkDebugReportErrorEXT input_value)
    253 {
    254     switch ((VkDebugReportErrorEXT)input_value)
    255     {
    256         case VK_DEBUG_REPORT_ERROR_CALLBACK_REF_EXT:
    257         case VK_DEBUG_REPORT_ERROR_NONE_EXT:
    258             return 1;
    259         default:
    260             return 0;
    261     }
    262 }
    263 
    264 
    265 static inline uint32_t validate_VkDebugReportFlagBitsEXT(VkDebugReportFlagBitsEXT input_value)
    266 {
    267     if (input_value > (VK_DEBUG_REPORT_INFORMATION_BIT_EXT | VK_DEBUG_REPORT_WARNING_BIT_EXT | VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT | VK_DEBUG_REPORT_ERROR_BIT_EXT | VK_DEBUG_REPORT_DEBUG_BIT_EXT))
    268         return 0;
    269     return 1;
    270 }
    271 
    272 
    273 static inline uint32_t validate_VkDebugReportObjectTypeEXT(VkDebugReportObjectTypeEXT input_value)
    274 {
    275     switch ((VkDebugReportObjectTypeEXT)input_value)
    276     {
    277         case VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT:
    278         case VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT:
    279         case VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT:
    280         case VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT:
    281         case VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT:
    282         case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT:
    283         case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT:
    284         case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT:
    285         case VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT:
    286         case VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT:
    287         case VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT:
    288         case VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT:
    289         case VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT:
    290         case VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT:
    291         case VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT:
    292         case VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT:
    293         case VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT:
    294         case VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT:
    295         case VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT:
    296         case VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT:
    297         case VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT:
    298         case VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT:
    299         case VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT:
    300         case VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT:
    301         case VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT:
    302         case VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT:
    303         case VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT:
    304         case VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT:
    305         case VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT:
    306             return 1;
    307         default:
    308             return 0;
    309     }
    310 }
    311 
    312 
    313 static inline uint32_t validate_VkDependencyFlagBits(VkDependencyFlagBits input_value)
    314 {
    315     if (input_value > (VK_DEPENDENCY_BY_REGION_BIT))
    316         return 0;
    317     return 1;
    318 }
    319 
    320 
    321 static inline uint32_t validate_VkDescriptorPoolCreateFlagBits(VkDescriptorPoolCreateFlagBits input_value)
    322 {
    323     if (input_value > (VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT))
    324         return 0;
    325     return 1;
    326 }
    327 
    328 
    329 static inline uint32_t validate_VkDescriptorType(VkDescriptorType input_value)
    330 {
    331     switch ((VkDescriptorType)input_value)
    332     {
    333         case VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER:
    334         case VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT:
    335         case VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE:
    336         case VK_DESCRIPTOR_TYPE_SAMPLER:
    337         case VK_DESCRIPTOR_TYPE_STORAGE_BUFFER:
    338         case VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC:
    339         case VK_DESCRIPTOR_TYPE_STORAGE_IMAGE:
    340         case VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER:
    341         case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER:
    342         case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC:
    343         case VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER:
    344             return 1;
    345         default:
    346             return 0;
    347     }
    348 }
    349 
    350 
    351 static inline uint32_t validate_VkDisplayPlaneAlphaFlagBitsKHR(VkDisplayPlaneAlphaFlagBitsKHR input_value)
    352 {
    353     if (input_value > (VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR | VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR | VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR | VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR))
    354         return 0;
    355     return 1;
    356 }
    357 
    358 
    359 static inline uint32_t validate_VkDynamicState(VkDynamicState input_value)
    360 {
    361     switch ((VkDynamicState)input_value)
    362     {
    363         case VK_DYNAMIC_STATE_BLEND_CONSTANTS:
    364         case VK_DYNAMIC_STATE_DEPTH_BIAS:
    365         case VK_DYNAMIC_STATE_DEPTH_BOUNDS:
    366         case VK_DYNAMIC_STATE_LINE_WIDTH:
    367         case VK_DYNAMIC_STATE_SCISSOR:
    368         case VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK:
    369         case VK_DYNAMIC_STATE_STENCIL_REFERENCE:
    370         case VK_DYNAMIC_STATE_STENCIL_WRITE_MASK:
    371         case VK_DYNAMIC_STATE_VIEWPORT:
    372             return 1;
    373         default:
    374             return 0;
    375     }
    376 }
    377 
    378 
    379 static inline uint32_t validate_VkFenceCreateFlagBits(VkFenceCreateFlagBits input_value)
    380 {
    381     if (input_value > (VK_FENCE_CREATE_SIGNALED_BIT))
    382         return 0;
    383     return 1;
    384 }
    385 
    386 
    387 static inline uint32_t validate_VkFilter(VkFilter input_value)
    388 {
    389     switch ((VkFilter)input_value)
    390     {
    391         case VK_FILTER_CUBIC_IMG:
    392         case VK_FILTER_LINEAR:
    393         case VK_FILTER_NEAREST:
    394             return 1;
    395         default:
    396             return 0;
    397     }
    398 }
    399 
    400 
    401 static inline uint32_t validate_VkFormat(VkFormat input_value)
    402 {
    403     switch ((VkFormat)input_value)
    404     {
    405         case VK_FORMAT_A1R5G5B5_UNORM_PACK16:
    406         case VK_FORMAT_A2B10G10R10_SINT_PACK32:
    407         case VK_FORMAT_A2B10G10R10_SNORM_PACK32:
    408         case VK_FORMAT_A2B10G10R10_SSCALED_PACK32:
    409         case VK_FORMAT_A2B10G10R10_UINT_PACK32:
    410         case VK_FORMAT_A2B10G10R10_UNORM_PACK32:
    411         case VK_FORMAT_A2B10G10R10_USCALED_PACK32:
    412         case VK_FORMAT_A2R10G10B10_SINT_PACK32:
    413         case VK_FORMAT_A2R10G10B10_SNORM_PACK32:
    414         case VK_FORMAT_A2R10G10B10_SSCALED_PACK32:
    415         case VK_FORMAT_A2R10G10B10_UINT_PACK32:
    416         case VK_FORMAT_A2R10G10B10_UNORM_PACK32:
    417         case VK_FORMAT_A2R10G10B10_USCALED_PACK32:
    418         case VK_FORMAT_A8B8G8R8_SINT_PACK32:
    419         case VK_FORMAT_A8B8G8R8_SNORM_PACK32:
    420         case VK_FORMAT_A8B8G8R8_SRGB_PACK32:
    421         case VK_FORMAT_A8B8G8R8_SSCALED_PACK32:
    422         case VK_FORMAT_A8B8G8R8_UINT_PACK32:
    423         case VK_FORMAT_A8B8G8R8_UNORM_PACK32:
    424         case VK_FORMAT_A8B8G8R8_USCALED_PACK32:
    425         case VK_FORMAT_ASTC_10x10_SRGB_BLOCK:
    426         case VK_FORMAT_ASTC_10x10_UNORM_BLOCK:
    427         case VK_FORMAT_ASTC_10x5_SRGB_BLOCK:
    428         case VK_FORMAT_ASTC_10x5_UNORM_BLOCK:
    429         case VK_FORMAT_ASTC_10x6_SRGB_BLOCK:
    430         case VK_FORMAT_ASTC_10x6_UNORM_BLOCK:
    431         case VK_FORMAT_ASTC_10x8_SRGB_BLOCK:
    432         case VK_FORMAT_ASTC_10x8_UNORM_BLOCK:
    433         case VK_FORMAT_ASTC_12x10_SRGB_BLOCK:
    434         case VK_FORMAT_ASTC_12x10_UNORM_BLOCK:
    435         case VK_FORMAT_ASTC_12x12_SRGB_BLOCK:
    436         case VK_FORMAT_ASTC_12x12_UNORM_BLOCK:
    437         case VK_FORMAT_ASTC_4x4_SRGB_BLOCK:
    438         case VK_FORMAT_ASTC_4x4_UNORM_BLOCK:
    439         case VK_FORMAT_ASTC_5x4_SRGB_BLOCK:
    440         case VK_FORMAT_ASTC_5x4_UNORM_BLOCK:
    441         case VK_FORMAT_ASTC_5x5_SRGB_BLOCK:
    442         case VK_FORMAT_ASTC_5x5_UNORM_BLOCK:
    443         case VK_FORMAT_ASTC_6x5_SRGB_BLOCK:
    444         case VK_FORMAT_ASTC_6x5_UNORM_BLOCK:
    445         case VK_FORMAT_ASTC_6x6_SRGB_BLOCK:
    446         case VK_FORMAT_ASTC_6x6_UNORM_BLOCK:
    447         case VK_FORMAT_ASTC_8x5_SRGB_BLOCK:
    448         case VK_FORMAT_ASTC_8x5_UNORM_BLOCK:
    449         case VK_FORMAT_ASTC_8x6_SRGB_BLOCK:
    450         case VK_FORMAT_ASTC_8x6_UNORM_BLOCK:
    451         case VK_FORMAT_ASTC_8x8_SRGB_BLOCK:
    452         case VK_FORMAT_ASTC_8x8_UNORM_BLOCK:
    453         case VK_FORMAT_B10G11R11_UFLOAT_PACK32:
    454         case VK_FORMAT_B4G4R4A4_UNORM_PACK16:
    455         case VK_FORMAT_B5G5R5A1_UNORM_PACK16:
    456         case VK_FORMAT_B5G6R5_UNORM_PACK16:
    457         case VK_FORMAT_B8G8R8A8_SINT:
    458         case VK_FORMAT_B8G8R8A8_SNORM:
    459         case VK_FORMAT_B8G8R8A8_SRGB:
    460         case VK_FORMAT_B8G8R8A8_SSCALED:
    461         case VK_FORMAT_B8G8R8A8_UINT:
    462         case VK_FORMAT_B8G8R8A8_UNORM:
    463         case VK_FORMAT_B8G8R8A8_USCALED:
    464         case VK_FORMAT_B8G8R8_SINT:
    465         case VK_FORMAT_B8G8R8_SNORM:
    466         case VK_FORMAT_B8G8R8_SRGB:
    467         case VK_FORMAT_B8G8R8_SSCALED:
    468         case VK_FORMAT_B8G8R8_UINT:
    469         case VK_FORMAT_B8G8R8_UNORM:
    470         case VK_FORMAT_B8G8R8_USCALED:
    471         case VK_FORMAT_BC1_RGBA_SRGB_BLOCK:
    472         case VK_FORMAT_BC1_RGBA_UNORM_BLOCK:
    473         case VK_FORMAT_BC1_RGB_SRGB_BLOCK:
    474         case VK_FORMAT_BC1_RGB_UNORM_BLOCK:
    475         case VK_FORMAT_BC2_SRGB_BLOCK:
    476         case VK_FORMAT_BC2_UNORM_BLOCK:
    477         case VK_FORMAT_BC3_SRGB_BLOCK:
    478         case VK_FORMAT_BC3_UNORM_BLOCK:
    479         case VK_FORMAT_BC4_SNORM_BLOCK:
    480         case VK_FORMAT_BC4_UNORM_BLOCK:
    481         case VK_FORMAT_BC5_SNORM_BLOCK:
    482         case VK_FORMAT_BC5_UNORM_BLOCK:
    483         case VK_FORMAT_BC6H_SFLOAT_BLOCK:
    484         case VK_FORMAT_BC6H_UFLOAT_BLOCK:
    485         case VK_FORMAT_BC7_SRGB_BLOCK:
    486         case VK_FORMAT_BC7_UNORM_BLOCK:
    487         case VK_FORMAT_D16_UNORM:
    488         case VK_FORMAT_D16_UNORM_S8_UINT:
    489         case VK_FORMAT_D24_UNORM_S8_UINT:
    490         case VK_FORMAT_D32_SFLOAT:
    491         case VK_FORMAT_D32_SFLOAT_S8_UINT:
    492         case VK_FORMAT_E5B9G9R9_UFLOAT_PACK32:
    493         case VK_FORMAT_EAC_R11G11_SNORM_BLOCK:
    494         case VK_FORMAT_EAC_R11G11_UNORM_BLOCK:
    495         case VK_FORMAT_EAC_R11_SNORM_BLOCK:
    496         case VK_FORMAT_EAC_R11_UNORM_BLOCK:
    497         case VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK:
    498         case VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK:
    499         case VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK:
    500         case VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK:
    501         case VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK:
    502         case VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK:
    503         case VK_FORMAT_R16G16B16A16_SFLOAT:
    504         case VK_FORMAT_R16G16B16A16_SINT:
    505         case VK_FORMAT_R16G16B16A16_SNORM:
    506         case VK_FORMAT_R16G16B16A16_SSCALED:
    507         case VK_FORMAT_R16G16B16A16_UINT:
    508         case VK_FORMAT_R16G16B16A16_UNORM:
    509         case VK_FORMAT_R16G16B16A16_USCALED:
    510         case VK_FORMAT_R16G16B16_SFLOAT:
    511         case VK_FORMAT_R16G16B16_SINT:
    512         case VK_FORMAT_R16G16B16_SNORM:
    513         case VK_FORMAT_R16G16B16_SSCALED:
    514         case VK_FORMAT_R16G16B16_UINT:
    515         case VK_FORMAT_R16G16B16_UNORM:
    516         case VK_FORMAT_R16G16B16_USCALED:
    517         case VK_FORMAT_R16G16_SFLOAT:
    518         case VK_FORMAT_R16G16_SINT:
    519         case VK_FORMAT_R16G16_SNORM:
    520         case VK_FORMAT_R16G16_SSCALED:
    521         case VK_FORMAT_R16G16_UINT:
    522         case VK_FORMAT_R16G16_UNORM:
    523         case VK_FORMAT_R16G16_USCALED:
    524         case VK_FORMAT_R16_SFLOAT:
    525         case VK_FORMAT_R16_SINT:
    526         case VK_FORMAT_R16_SNORM:
    527         case VK_FORMAT_R16_SSCALED:
    528         case VK_FORMAT_R16_UINT:
    529         case VK_FORMAT_R16_UNORM:
    530         case VK_FORMAT_R16_USCALED:
    531         case VK_FORMAT_R32G32B32A32_SFLOAT:
    532         case VK_FORMAT_R32G32B32A32_SINT:
    533         case VK_FORMAT_R32G32B32A32_UINT:
    534         case VK_FORMAT_R32G32B32_SFLOAT:
    535         case VK_FORMAT_R32G32B32_SINT:
    536         case VK_FORMAT_R32G32B32_UINT:
    537         case VK_FORMAT_R32G32_SFLOAT:
    538         case VK_FORMAT_R32G32_SINT:
    539         case VK_FORMAT_R32G32_UINT:
    540         case VK_FORMAT_R32_SFLOAT:
    541         case VK_FORMAT_R32_SINT:
    542         case VK_FORMAT_R32_UINT:
    543         case VK_FORMAT_R4G4B4A4_UNORM_PACK16:
    544         case VK_FORMAT_R4G4_UNORM_PACK8:
    545         case VK_FORMAT_R5G5B5A1_UNORM_PACK16:
    546         case VK_FORMAT_R5G6B5_UNORM_PACK16:
    547         case VK_FORMAT_R64G64B64A64_SFLOAT:
    548         case VK_FORMAT_R64G64B64A64_SINT:
    549         case VK_FORMAT_R64G64B64A64_UINT:
    550         case VK_FORMAT_R64G64B64_SFLOAT:
    551         case VK_FORMAT_R64G64B64_SINT:
    552         case VK_FORMAT_R64G64B64_UINT:
    553         case VK_FORMAT_R64G64_SFLOAT:
    554         case VK_FORMAT_R64G64_SINT:
    555         case VK_FORMAT_R64G64_UINT:
    556         case VK_FORMAT_R64_SFLOAT:
    557         case VK_FORMAT_R64_SINT:
    558         case VK_FORMAT_R64_UINT:
    559         case VK_FORMAT_R8G8B8A8_SINT:
    560         case VK_FORMAT_R8G8B8A8_SNORM:
    561         case VK_FORMAT_R8G8B8A8_SRGB:
    562         case VK_FORMAT_R8G8B8A8_SSCALED:
    563         case VK_FORMAT_R8G8B8A8_UINT:
    564         case VK_FORMAT_R8G8B8A8_UNORM:
    565         case VK_FORMAT_R8G8B8A8_USCALED:
    566         case VK_FORMAT_R8G8B8_SINT:
    567         case VK_FORMAT_R8G8B8_SNORM:
    568         case VK_FORMAT_R8G8B8_SRGB:
    569         case VK_FORMAT_R8G8B8_SSCALED:
    570         case VK_FORMAT_R8G8B8_UINT:
    571         case VK_FORMAT_R8G8B8_UNORM:
    572         case VK_FORMAT_R8G8B8_USCALED:
    573         case VK_FORMAT_R8G8_SINT:
    574         case VK_FORMAT_R8G8_SNORM:
    575         case VK_FORMAT_R8G8_SRGB:
    576         case VK_FORMAT_R8G8_SSCALED:
    577         case VK_FORMAT_R8G8_UINT:
    578         case VK_FORMAT_R8G8_UNORM:
    579         case VK_FORMAT_R8G8_USCALED:
    580         case VK_FORMAT_R8_SINT:
    581         case VK_FORMAT_R8_SNORM:
    582         case VK_FORMAT_R8_SRGB:
    583         case VK_FORMAT_R8_SSCALED:
    584         case VK_FORMAT_R8_UINT:
    585         case VK_FORMAT_R8_UNORM:
    586         case VK_FORMAT_R8_USCALED:
    587         case VK_FORMAT_S8_UINT:
    588         case VK_FORMAT_UNDEFINED:
    589         case VK_FORMAT_X8_D24_UNORM_PACK32:
    590             return 1;
    591         default:
    592             return 0;
    593     }
    594 }
    595 
    596 
    597 static inline uint32_t validate_VkFormatFeatureFlagBits(VkFormatFeatureFlagBits input_value)
    598 {
    599     if (input_value > (VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT | VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT | VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT | VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT | VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT | VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT | VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT | VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT | VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT | VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT | VK_FORMAT_FEATURE_BLIT_SRC_BIT | VK_FORMAT_FEATURE_BLIT_DST_BIT | VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT | VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG))
    600         return 0;
    601     return 1;
    602 }
    603 
    604 
    605 static inline uint32_t validate_VkFrontFace(VkFrontFace input_value)
    606 {
    607     switch ((VkFrontFace)input_value)
    608     {
    609         case VK_FRONT_FACE_CLOCKWISE:
    610         case VK_FRONT_FACE_COUNTER_CLOCKWISE:
    611             return 1;
    612         default:
    613             return 0;
    614     }
    615 }
    616 
    617 
    618 static inline uint32_t validate_VkImageAspectFlagBits(VkImageAspectFlagBits input_value)
    619 {
    620     if (input_value > (VK_IMAGE_ASPECT_COLOR_BIT | VK_IMAGE_ASPECT_DEPTH_BIT | VK_IMAGE_ASPECT_STENCIL_BIT | VK_IMAGE_ASPECT_METADATA_BIT))
    621         return 0;
    622     return 1;
    623 }
    624 
    625 
    626 static inline uint32_t validate_VkImageCreateFlagBits(VkImageCreateFlagBits input_value)
    627 {
    628     if (input_value > (VK_IMAGE_CREATE_SPARSE_BINDING_BIT | VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT | VK_IMAGE_CREATE_SPARSE_ALIASED_BIT | VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT | VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT))
    629         return 0;
    630     return 1;
    631 }
    632 
    633 
    634 static inline uint32_t validate_VkImageLayout(VkImageLayout input_value)
    635 {
    636     switch ((VkImageLayout)input_value)
    637     {
    638         case VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL:
    639         case VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL:
    640         case VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL:
    641         case VK_IMAGE_LAYOUT_GENERAL:
    642         case VK_IMAGE_LAYOUT_PREINITIALIZED:
    643         case VK_IMAGE_LAYOUT_PRESENT_SRC_KHR:
    644         case VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL:
    645         case VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL:
    646         case VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL:
    647         case VK_IMAGE_LAYOUT_UNDEFINED:
    648             return 1;
    649         default:
    650             return 0;
    651     }
    652 }
    653 
    654 
    655 static inline uint32_t validate_VkImageTiling(VkImageTiling input_value)
    656 {
    657     switch ((VkImageTiling)input_value)
    658     {
    659         case VK_IMAGE_TILING_LINEAR:
    660         case VK_IMAGE_TILING_OPTIMAL:
    661             return 1;
    662         default:
    663             return 0;
    664     }
    665 }
    666 
    667 
    668 static inline uint32_t validate_VkImageType(VkImageType input_value)
    669 {
    670     switch ((VkImageType)input_value)
    671     {
    672         case VK_IMAGE_TYPE_1D:
    673         case VK_IMAGE_TYPE_2D:
    674         case VK_IMAGE_TYPE_3D:
    675             return 1;
    676         default:
    677             return 0;
    678     }
    679 }
    680 
    681 
    682 static inline uint32_t validate_VkImageUsageFlagBits(VkImageUsageFlagBits input_value)
    683 {
    684     if (input_value > (VK_IMAGE_USAGE_TRANSFER_SRC_BIT | VK_IMAGE_USAGE_TRANSFER_DST_BIT | VK_IMAGE_USAGE_SAMPLED_BIT | VK_IMAGE_USAGE_STORAGE_BIT | VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT | VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT | VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT | VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT))
    685         return 0;
    686     return 1;
    687 }
    688 
    689 
    690 static inline uint32_t validate_VkImageViewType(VkImageViewType input_value)
    691 {
    692     switch ((VkImageViewType)input_value)
    693     {
    694         case VK_IMAGE_VIEW_TYPE_1D:
    695         case VK_IMAGE_VIEW_TYPE_1D_ARRAY:
    696         case VK_IMAGE_VIEW_TYPE_2D:
    697         case VK_IMAGE_VIEW_TYPE_2D_ARRAY:
    698         case VK_IMAGE_VIEW_TYPE_3D:
    699         case VK_IMAGE_VIEW_TYPE_CUBE:
    700         case VK_IMAGE_VIEW_TYPE_CUBE_ARRAY:
    701             return 1;
    702         default:
    703             return 0;
    704     }
    705 }
    706 
    707 
    708 static inline uint32_t validate_VkIndexType(VkIndexType input_value)
    709 {
    710     switch ((VkIndexType)input_value)
    711     {
    712         case VK_INDEX_TYPE_UINT16:
    713         case VK_INDEX_TYPE_UINT32:
    714             return 1;
    715         default:
    716             return 0;
    717     }
    718 }
    719 
    720 
    721 static inline uint32_t validate_VkInternalAllocationType(VkInternalAllocationType input_value)
    722 {
    723     switch ((VkInternalAllocationType)input_value)
    724     {
    725         case VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE:
    726             return 1;
    727         default:
    728             return 0;
    729     }
    730 }
    731 
    732 
    733 static inline uint32_t validate_VkLogicOp(VkLogicOp input_value)
    734 {
    735     switch ((VkLogicOp)input_value)
    736     {
    737         case VK_LOGIC_OP_AND:
    738         case VK_LOGIC_OP_AND_INVERTED:
    739         case VK_LOGIC_OP_AND_REVERSE:
    740         case VK_LOGIC_OP_CLEAR:
    741         case VK_LOGIC_OP_COPY:
    742         case VK_LOGIC_OP_COPY_INVERTED:
    743         case VK_LOGIC_OP_EQUIVALENT:
    744         case VK_LOGIC_OP_INVERT:
    745         case VK_LOGIC_OP_NAND:
    746         case VK_LOGIC_OP_NOR:
    747         case VK_LOGIC_OP_NO_OP:
    748         case VK_LOGIC_OP_OR:
    749         case VK_LOGIC_OP_OR_INVERTED:
    750         case VK_LOGIC_OP_OR_REVERSE:
    751         case VK_LOGIC_OP_SET:
    752         case VK_LOGIC_OP_XOR:
    753             return 1;
    754         default:
    755             return 0;
    756     }
    757 }
    758 
    759 
    760 static inline uint32_t validate_VkMemoryHeapFlagBits(VkMemoryHeapFlagBits input_value)
    761 {
    762     if (input_value > (VK_MEMORY_HEAP_DEVICE_LOCAL_BIT))
    763         return 0;
    764     return 1;
    765 }
    766 
    767 
    768 static inline uint32_t validate_VkMemoryPropertyFlagBits(VkMemoryPropertyFlagBits input_value)
    769 {
    770     if (input_value > (VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT | VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT | VK_MEMORY_PROPERTY_HOST_CACHED_BIT | VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT))
    771         return 0;
    772     return 1;
    773 }
    774 
    775 
    776 static inline uint32_t validate_VkPhysicalDeviceType(VkPhysicalDeviceType input_value)
    777 {
    778     switch ((VkPhysicalDeviceType)input_value)
    779     {
    780         case VK_PHYSICAL_DEVICE_TYPE_CPU:
    781         case VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU:
    782         case VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU:
    783         case VK_PHYSICAL_DEVICE_TYPE_OTHER:
    784         case VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU:
    785             return 1;
    786         default:
    787             return 0;
    788     }
    789 }
    790 
    791 
    792 static inline uint32_t validate_VkPipelineBindPoint(VkPipelineBindPoint input_value)
    793 {
    794     switch ((VkPipelineBindPoint)input_value)
    795     {
    796         case VK_PIPELINE_BIND_POINT_COMPUTE:
    797         case VK_PIPELINE_BIND_POINT_GRAPHICS:
    798             return 1;
    799         default:
    800             return 0;
    801     }
    802 }
    803 
    804 
    805 static inline uint32_t validate_VkPipelineCacheHeaderVersion(VkPipelineCacheHeaderVersion input_value)
    806 {
    807     switch ((VkPipelineCacheHeaderVersion)input_value)
    808     {
    809         case VK_PIPELINE_CACHE_HEADER_VERSION_ONE:
    810             return 1;
    811         default:
    812             return 0;
    813     }
    814 }
    815 
    816 
    817 static inline uint32_t validate_VkPipelineCreateFlagBits(VkPipelineCreateFlagBits input_value)
    818 {
    819     if (input_value > (VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT | VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT | VK_PIPELINE_CREATE_DERIVATIVE_BIT))
    820         return 0;
    821     return 1;
    822 }
    823 
    824 
    825 static inline uint32_t validate_VkPipelineStageFlagBits(VkPipelineStageFlagBits input_value)
    826 {
    827     if (input_value > (VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT | VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT | VK_PIPELINE_STAGE_VERTEX_INPUT_BIT | VK_PIPELINE_STAGE_VERTEX_SHADER_BIT | VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT | VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT | VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT | VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT | VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT | VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT | VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT | VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT | VK_PIPELINE_STAGE_TRANSFER_BIT | VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT | VK_PIPELINE_STAGE_HOST_BIT | VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT | VK_PIPELINE_STAGE_ALL_COMMANDS_BIT))
    828         return 0;
    829     return 1;
    830 }
    831 
    832 
    833 static inline uint32_t validate_VkPolygonMode(VkPolygonMode input_value)
    834 {
    835     switch ((VkPolygonMode)input_value)
    836     {
    837         case VK_POLYGON_MODE_FILL:
    838         case VK_POLYGON_MODE_LINE:
    839         case VK_POLYGON_MODE_POINT:
    840             return 1;
    841         default:
    842             return 0;
    843     }
    844 }
    845 
    846 
    847 static inline uint32_t validate_VkPresentModeKHR(VkPresentModeKHR input_value)
    848 {
    849     switch ((VkPresentModeKHR)input_value)
    850     {
    851         case VK_PRESENT_MODE_FIFO_KHR:
    852         case VK_PRESENT_MODE_FIFO_RELAXED_KHR:
    853         case VK_PRESENT_MODE_IMMEDIATE_KHR:
    854         case VK_PRESENT_MODE_MAILBOX_KHR:
    855             return 1;
    856         default:
    857             return 0;
    858     }
    859 }
    860 
    861 
    862 static inline uint32_t validate_VkPrimitiveTopology(VkPrimitiveTopology input_value)
    863 {
    864     switch ((VkPrimitiveTopology)input_value)
    865     {
    866         case VK_PRIMITIVE_TOPOLOGY_LINE_LIST:
    867         case VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY:
    868         case VK_PRIMITIVE_TOPOLOGY_LINE_STRIP:
    869         case VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY:
    870         case VK_PRIMITIVE_TOPOLOGY_PATCH_LIST:
    871         case VK_PRIMITIVE_TOPOLOGY_POINT_LIST:
    872         case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN:
    873         case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST:
    874         case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY:
    875         case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP:
    876         case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY:
    877             return 1;
    878         default:
    879             return 0;
    880     }
    881 }
    882 
    883 
    884 static inline uint32_t validate_VkQueryControlFlagBits(VkQueryControlFlagBits input_value)
    885 {
    886     if (input_value > (VK_QUERY_CONTROL_PRECISE_BIT))
    887         return 0;
    888     return 1;
    889 }
    890 
    891 
    892 static inline uint32_t validate_VkQueryPipelineStatisticFlagBits(VkQueryPipelineStatisticFlagBits input_value)
    893 {
    894     if (input_value > (VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT | VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT | VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT | VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT | VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT | VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT | VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT | VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT | VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT | VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT | VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT))
    895         return 0;
    896     return 1;
    897 }
    898 
    899 
    900 static inline uint32_t validate_VkQueryResultFlagBits(VkQueryResultFlagBits input_value)
    901 {
    902     if (input_value > (VK_QUERY_RESULT_64_BIT | VK_QUERY_RESULT_WAIT_BIT | VK_QUERY_RESULT_WITH_AVAILABILITY_BIT | VK_QUERY_RESULT_PARTIAL_BIT))
    903         return 0;
    904     return 1;
    905 }
    906 
    907 
    908 static inline uint32_t validate_VkQueryType(VkQueryType input_value)
    909 {
    910     switch ((VkQueryType)input_value)
    911     {
    912         case VK_QUERY_TYPE_OCCLUSION:
    913         case VK_QUERY_TYPE_PIPELINE_STATISTICS:
    914         case VK_QUERY_TYPE_TIMESTAMP:
    915             return 1;
    916         default:
    917             return 0;
    918     }
    919 }
    920 
    921 
    922 static inline uint32_t validate_VkQueueFlagBits(VkQueueFlagBits input_value)
    923 {
    924     if (input_value > (VK_QUEUE_GRAPHICS_BIT | VK_QUEUE_COMPUTE_BIT | VK_QUEUE_TRANSFER_BIT | VK_QUEUE_SPARSE_BINDING_BIT))
    925         return 0;
    926     return 1;
    927 }
    928 
    929 
    930 static inline uint32_t validate_VkRasterizationOrderAMD(VkRasterizationOrderAMD input_value)
    931 {
    932     switch ((VkRasterizationOrderAMD)input_value)
    933     {
    934         case VK_RASTERIZATION_ORDER_RELAXED_AMD:
    935         case VK_RASTERIZATION_ORDER_STRICT_AMD:
    936             return 1;
    937         default:
    938             return 0;
    939     }
    940 }
    941 
    942 
    943 static inline uint32_t validate_VkResult(VkResult input_value)
    944 {
    945     switch ((VkResult)input_value)
    946     {
    947         case VK_ERROR_DEVICE_LOST:
    948         case VK_ERROR_EXTENSION_NOT_PRESENT:
    949         case VK_ERROR_FEATURE_NOT_PRESENT:
    950         case VK_ERROR_FORMAT_NOT_SUPPORTED:
    951         case VK_ERROR_INCOMPATIBLE_DISPLAY_KHR:
    952         case VK_ERROR_INCOMPATIBLE_DRIVER:
    953         case VK_ERROR_INITIALIZATION_FAILED:
    954         case VK_ERROR_INVALID_SHADER_NV:
    955         case VK_ERROR_LAYER_NOT_PRESENT:
    956         case VK_ERROR_MEMORY_MAP_FAILED:
    957         case VK_ERROR_NATIVE_WINDOW_IN_USE_KHR:
    958         case VK_ERROR_OUT_OF_DATE_KHR:
    959         case VK_ERROR_OUT_OF_DEVICE_MEMORY:
    960         case VK_ERROR_OUT_OF_HOST_MEMORY:
    961         case VK_ERROR_SURFACE_LOST_KHR:
    962         case VK_ERROR_TOO_MANY_OBJECTS:
    963         case VK_ERROR_VALIDATION_FAILED_EXT:
    964         case VK_EVENT_RESET:
    965         case VK_EVENT_SET:
    966         case VK_INCOMPLETE:
    967         case VK_NOT_READY:
    968         case VK_SUBOPTIMAL_KHR:
    969         case VK_SUCCESS:
    970         case VK_TIMEOUT:
    971             return 1;
    972         default:
    973             return 0;
    974     }
    975 }
    976 
    977 
    978 static inline uint32_t validate_VkSampleCountFlagBits(VkSampleCountFlagBits input_value)
    979 {
    980     if (input_value > (VK_SAMPLE_COUNT_1_BIT | VK_SAMPLE_COUNT_2_BIT | VK_SAMPLE_COUNT_4_BIT | VK_SAMPLE_COUNT_8_BIT | VK_SAMPLE_COUNT_16_BIT | VK_SAMPLE_COUNT_32_BIT | VK_SAMPLE_COUNT_64_BIT))
    981         return 0;
    982     return 1;
    983 }
    984 
    985 
    986 static inline uint32_t validate_VkSamplerAddressMode(VkSamplerAddressMode input_value)
    987 {
    988     switch ((VkSamplerAddressMode)input_value)
    989     {
    990         case VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER:
    991         case VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE:
    992         case VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT:
    993         case VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE:
    994         case VK_SAMPLER_ADDRESS_MODE_REPEAT:
    995             return 1;
    996         default:
    997             return 0;
    998     }
    999 }
   1000 
   1001 
   1002 static inline uint32_t validate_VkSamplerMipmapMode(VkSamplerMipmapMode input_value)
   1003 {
   1004     switch ((VkSamplerMipmapMode)input_value)
   1005     {
   1006         case VK_SAMPLER_MIPMAP_MODE_LINEAR:
   1007         case VK_SAMPLER_MIPMAP_MODE_NEAREST:
   1008             return 1;
   1009         default:
   1010             return 0;
   1011     }
   1012 }
   1013 
   1014 
   1015 static inline uint32_t validate_VkShaderStageFlagBits(VkShaderStageFlagBits input_value)
   1016 {
   1017     if (input_value > (VK_SHADER_STAGE_VERTEX_BIT | VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT | VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT | VK_SHADER_STAGE_GEOMETRY_BIT | VK_SHADER_STAGE_FRAGMENT_BIT | VK_SHADER_STAGE_COMPUTE_BIT | VK_SHADER_STAGE_ALL_GRAPHICS | VK_SHADER_STAGE_ALL))
   1018         return 0;
   1019     return 1;
   1020 }
   1021 
   1022 
   1023 static inline uint32_t validate_VkSharingMode(VkSharingMode input_value)
   1024 {
   1025     switch ((VkSharingMode)input_value)
   1026     {
   1027         case VK_SHARING_MODE_CONCURRENT:
   1028         case VK_SHARING_MODE_EXCLUSIVE:
   1029             return 1;
   1030         default:
   1031             return 0;
   1032     }
   1033 }
   1034 
   1035 
   1036 static inline uint32_t validate_VkSparseImageFormatFlagBits(VkSparseImageFormatFlagBits input_value)
   1037 {
   1038     if (input_value > (VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT | VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT | VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT))
   1039         return 0;
   1040     return 1;
   1041 }
   1042 
   1043 
   1044 static inline uint32_t validate_VkSparseMemoryBindFlagBits(VkSparseMemoryBindFlagBits input_value)
   1045 {
   1046     if (input_value > (VK_SPARSE_MEMORY_BIND_METADATA_BIT))
   1047         return 0;
   1048     return 1;
   1049 }
   1050 
   1051 
   1052 static inline uint32_t validate_VkStencilFaceFlagBits(VkStencilFaceFlagBits input_value)
   1053 {
   1054     if (input_value > (VK_STENCIL_FACE_FRONT_BIT | VK_STENCIL_FACE_BACK_BIT | VK_STENCIL_FRONT_AND_BACK))
   1055         return 0;
   1056     return 1;
   1057 }
   1058 
   1059 
   1060 static inline uint32_t validate_VkStencilOp(VkStencilOp input_value)
   1061 {
   1062     switch ((VkStencilOp)input_value)
   1063     {
   1064         case VK_STENCIL_OP_DECREMENT_AND_CLAMP:
   1065         case VK_STENCIL_OP_DECREMENT_AND_WRAP:
   1066         case VK_STENCIL_OP_INCREMENT_AND_CLAMP:
   1067         case VK_STENCIL_OP_INCREMENT_AND_WRAP:
   1068         case VK_STENCIL_OP_INVERT:
   1069         case VK_STENCIL_OP_KEEP:
   1070         case VK_STENCIL_OP_REPLACE:
   1071         case VK_STENCIL_OP_ZERO:
   1072             return 1;
   1073         default:
   1074             return 0;
   1075     }
   1076 }
   1077 
   1078 
   1079 static inline uint32_t validate_VkStructureType(VkStructureType input_value)
   1080 {
   1081     switch ((VkStructureType)input_value)
   1082     {
   1083         case VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR:
   1084         case VK_STRUCTURE_TYPE_APPLICATION_INFO:
   1085         case VK_STRUCTURE_TYPE_BIND_SPARSE_INFO:
   1086         case VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO:
   1087         case VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER:
   1088         case VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO:
   1089         case VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO:
   1090         case VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO:
   1091         case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO:
   1092         case VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO:
   1093         case VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO:
   1094         case VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET:
   1095         case VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT:
   1096         case VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT:
   1097         case VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT:
   1098         case VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT:
   1099         case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO:
   1100         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO:
   1101         case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO:
   1102         case VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO:
   1103         case VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO:
   1104         case VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR:
   1105         case VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR:
   1106         case VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR:
   1107         case VK_STRUCTURE_TYPE_EVENT_CREATE_INFO:
   1108         case VK_STRUCTURE_TYPE_FENCE_CREATE_INFO:
   1109         case VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO:
   1110         case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO:
   1111         case VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO:
   1112         case VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER:
   1113         case VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO:
   1114         case VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO:
   1115         case VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO:
   1116         case VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO:
   1117         case VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE:
   1118         case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO:
   1119         case VK_STRUCTURE_TYPE_MEMORY_BARRIER:
   1120         case VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR:
   1121         case VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO:
   1122         case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO:
   1123         case VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO:
   1124         case VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO:
   1125         case VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO:
   1126         case VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO:
   1127         case VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO:
   1128         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO:
   1129         case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD:
   1130         case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO:
   1131         case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO:
   1132         case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO:
   1133         case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO:
   1134         case VK_STRUCTURE_TYPE_PRESENT_INFO_KHR:
   1135         case VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO:
   1136         case VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO:
   1137         case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO:
   1138         case VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO:
   1139         case VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO:
   1140         case VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO:
   1141         case VK_STRUCTURE_TYPE_SUBMIT_INFO:
   1142         case VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR:
   1143         case VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR:
   1144         case VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR:
   1145         case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET:
   1146         case VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR:
   1147         case VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR:
   1148             return 1;
   1149         default:
   1150             return 0;
   1151     }
   1152 }
   1153 
   1154 
   1155 static inline uint32_t validate_VkSubpassContents(VkSubpassContents input_value)
   1156 {
   1157     switch ((VkSubpassContents)input_value)
   1158     {
   1159         case VK_SUBPASS_CONTENTS_INLINE:
   1160         case VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS:
   1161             return 1;
   1162         default:
   1163             return 0;
   1164     }
   1165 }
   1166 
   1167 
   1168 static inline uint32_t validate_VkSurfaceTransformFlagBitsKHR(VkSurfaceTransformFlagBitsKHR input_value)
   1169 {
   1170     if (input_value > (VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR | VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR | VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR | VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR | VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR | VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR | VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR | VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR | VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR))
   1171         return 0;
   1172     return 1;
   1173 }
   1174 
   1175 
   1176 static inline uint32_t validate_VkSystemAllocationScope(VkSystemAllocationScope input_value)
   1177 {
   1178     switch ((VkSystemAllocationScope)input_value)
   1179     {
   1180         case VK_SYSTEM_ALLOCATION_SCOPE_CACHE:
   1181         case VK_SYSTEM_ALLOCATION_SCOPE_COMMAND:
   1182         case VK_SYSTEM_ALLOCATION_SCOPE_DEVICE:
   1183         case VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE:
   1184         case VK_SYSTEM_ALLOCATION_SCOPE_OBJECT:
   1185             return 1;
   1186         default:
   1187             return 0;
   1188     }
   1189 }
   1190 
   1191 
   1192 static inline uint32_t validate_VkVertexInputRate(VkVertexInputRate input_value)
   1193 {
   1194     switch ((VkVertexInputRate)input_value)
   1195     {
   1196         case VK_VERTEX_INPUT_RATE_INSTANCE:
   1197         case VK_VERTEX_INPUT_RATE_VERTEX:
   1198             return 1;
   1199         default:
   1200             return 0;
   1201     }
   1202 }
   1203 
   1204