/* Autogenerated file -- do not edit
 * generated by gen_enum_to_str.py
 *
 * Copyright © 2017 Intel Corporation
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
* SOFTWARE.
 */

#include <vulkan/vulkan.h>
#include <vulkan/vk_android_native_buffer.h>
#include "util/macros.h"
#include "vk_enum_to_str.h"


const char *
vk_AttachmentLoadOp_to_str(VkAttachmentLoadOp input)
{
    switch(input) {
        case 0:
            return "VK_ATTACHMENT_LOAD_OP_LOAD";
        case 1:
            return "VK_ATTACHMENT_LOAD_OP_CLEAR";
        case 2:
            return "VK_ATTACHMENT_LOAD_OP_DONT_CARE";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_AttachmentStoreOp_to_str(VkAttachmentStoreOp input)
{
    switch(input) {
        case 0:
            return "VK_ATTACHMENT_STORE_OP_STORE";
        case 1:
            return "VK_ATTACHMENT_STORE_OP_DONT_CARE";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_BlendFactor_to_str(VkBlendFactor input)
{
    switch(input) {
        case 0:
            return "VK_BLEND_FACTOR_ZERO";
        case 1:
            return "VK_BLEND_FACTOR_ONE";
        case 2:
            return "VK_BLEND_FACTOR_SRC_COLOR";
        case 3:
            return "VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR";
        case 4:
            return "VK_BLEND_FACTOR_DST_COLOR";
        case 5:
            return "VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR";
        case 6:
            return "VK_BLEND_FACTOR_SRC_ALPHA";
        case 7:
            return "VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA";
        case 8:
            return "VK_BLEND_FACTOR_DST_ALPHA";
        case 9:
            return "VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA";
        case 10:
            return "VK_BLEND_FACTOR_CONSTANT_COLOR";
        case 11:
            return "VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR";
        case 12:
            return "VK_BLEND_FACTOR_CONSTANT_ALPHA";
        case 13:
            return "VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA";
        case 14:
            return "VK_BLEND_FACTOR_SRC_ALPHA_SATURATE";
        case 15:
            return "VK_BLEND_FACTOR_SRC1_COLOR";
        case 16:
            return "VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR";
        case 17:
            return "VK_BLEND_FACTOR_SRC1_ALPHA";
        case 18:
            return "VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_BlendOp_to_str(VkBlendOp input)
{
    switch(input) {
        case 0:
            return "VK_BLEND_OP_ADD";
        case 1:
            return "VK_BLEND_OP_SUBTRACT";
        case 2:
            return "VK_BLEND_OP_REVERSE_SUBTRACT";
        case 3:
            return "VK_BLEND_OP_MIN";
        case 4:
            return "VK_BLEND_OP_MAX";
        case 1000148000:
            return "VK_BLEND_OP_ZERO_EXT";
        case 1000148001:
            return "VK_BLEND_OP_SRC_EXT";
        case 1000148002:
            return "VK_BLEND_OP_DST_EXT";
        case 1000148003:
            return "VK_BLEND_OP_SRC_OVER_EXT";
        case 1000148004:
            return "VK_BLEND_OP_DST_OVER_EXT";
        case 1000148005:
            return "VK_BLEND_OP_SRC_IN_EXT";
        case 1000148006:
            return "VK_BLEND_OP_DST_IN_EXT";
        case 1000148007:
            return "VK_BLEND_OP_SRC_OUT_EXT";
        case 1000148008:
            return "VK_BLEND_OP_DST_OUT_EXT";
        case 1000148009:
            return "VK_BLEND_OP_SRC_ATOP_EXT";
        case 1000148010:
            return "VK_BLEND_OP_DST_ATOP_EXT";
        case 1000148011:
            return "VK_BLEND_OP_XOR_EXT";
        case 1000148012:
            return "VK_BLEND_OP_MULTIPLY_EXT";
        case 1000148013:
            return "VK_BLEND_OP_SCREEN_EXT";
        case 1000148014:
            return "VK_BLEND_OP_OVERLAY_EXT";
        case 1000148015:
            return "VK_BLEND_OP_DARKEN_EXT";
        case 1000148016:
            return "VK_BLEND_OP_LIGHTEN_EXT";
        case 1000148017:
            return "VK_BLEND_OP_COLORDODGE_EXT";
        case 1000148018:
            return "VK_BLEND_OP_COLORBURN_EXT";
        case 1000148019:
            return "VK_BLEND_OP_HARDLIGHT_EXT";
        case 1000148020:
            return "VK_BLEND_OP_SOFTLIGHT_EXT";
        case 1000148021:
            return "VK_BLEND_OP_DIFFERENCE_EXT";
        case 1000148022:
            return "VK_BLEND_OP_EXCLUSION_EXT";
        case 1000148023:
            return "VK_BLEND_OP_INVERT_EXT";
        case 1000148024:
            return "VK_BLEND_OP_INVERT_RGB_EXT";
        case 1000148025:
            return "VK_BLEND_OP_LINEARDODGE_EXT";
        case 1000148026:
            return "VK_BLEND_OP_LINEARBURN_EXT";
        case 1000148027:
            return "VK_BLEND_OP_VIVIDLIGHT_EXT";
        case 1000148028:
            return "VK_BLEND_OP_LINEARLIGHT_EXT";
        case 1000148029:
            return "VK_BLEND_OP_PINLIGHT_EXT";
        case 1000148030:
            return "VK_BLEND_OP_HARDMIX_EXT";
        case 1000148031:
            return "VK_BLEND_OP_HSL_HUE_EXT";
        case 1000148032:
            return "VK_BLEND_OP_HSL_SATURATION_EXT";
        case 1000148033:
            return "VK_BLEND_OP_HSL_COLOR_EXT";
        case 1000148034:
            return "VK_BLEND_OP_HSL_LUMINOSITY_EXT";
        case 1000148035:
            return "VK_BLEND_OP_PLUS_EXT";
        case 1000148036:
            return "VK_BLEND_OP_PLUS_CLAMPED_EXT";
        case 1000148037:
            return "VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT";
        case 1000148038:
            return "VK_BLEND_OP_PLUS_DARKER_EXT";
        case 1000148039:
            return "VK_BLEND_OP_MINUS_EXT";
        case 1000148040:
            return "VK_BLEND_OP_MINUS_CLAMPED_EXT";
        case 1000148041:
            return "VK_BLEND_OP_CONTRAST_EXT";
        case 1000148042:
            return "VK_BLEND_OP_INVERT_OVG_EXT";
        case 1000148043:
            return "VK_BLEND_OP_RED_EXT";
        case 1000148044:
            return "VK_BLEND_OP_GREEN_EXT";
        case 1000148045:
            return "VK_BLEND_OP_BLUE_EXT";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_BlendOverlapEXT_to_str(VkBlendOverlapEXT input)
{
    switch(input) {
        case 0:
            return "VK_BLEND_OVERLAP_UNCORRELATED_EXT";
        case 1:
            return "VK_BLEND_OVERLAP_DISJOINT_EXT";
        case 2:
            return "VK_BLEND_OVERLAP_CONJOINT_EXT";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_BorderColor_to_str(VkBorderColor input)
{
    switch(input) {
        case 0:
            return "VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK";
        case 1:
            return "VK_BORDER_COLOR_INT_TRANSPARENT_BLACK";
        case 2:
            return "VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK";
        case 3:
            return "VK_BORDER_COLOR_INT_OPAQUE_BLACK";
        case 4:
            return "VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE";
        case 5:
            return "VK_BORDER_COLOR_INT_OPAQUE_WHITE";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_ChromaLocationKHR_to_str(VkChromaLocationKHR input)
{
    switch(input) {
        case 0:
            return "VK_CHROMA_LOCATION_COSITED_EVEN_KHR";
        case 1:
            return "VK_CHROMA_LOCATION_MIDPOINT_KHR";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_ColorSpaceKHR_to_str(VkColorSpaceKHR input)
{
    switch(input) {
        case 0:
            return "VK_COLOR_SPACE_SRGB_NONLINEAR_KHR";
        case 1000104001:
            return "VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT";
        case 1000104002:
            return "VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT";
        case 1000104003:
            return "VK_COLOR_SPACE_DCI_P3_LINEAR_EXT";
        case 1000104004:
            return "VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT";
        case 1000104005:
            return "VK_COLOR_SPACE_BT709_LINEAR_EXT";
        case 1000104006:
            return "VK_COLOR_SPACE_BT709_NONLINEAR_EXT";
        case 1000104007:
            return "VK_COLOR_SPACE_BT2020_LINEAR_EXT";
        case 1000104008:
            return "VK_COLOR_SPACE_HDR10_ST2084_EXT";
        case 1000104009:
            return "VK_COLOR_SPACE_DOLBYVISION_EXT";
        case 1000104010:
            return "VK_COLOR_SPACE_HDR10_HLG_EXT";
        case 1000104011:
            return "VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT";
        case 1000104012:
            return "VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT";
        case 1000104013:
            return "VK_COLOR_SPACE_PASS_THROUGH_EXT";
        case 1000104014:
            return "VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_CommandBufferLevel_to_str(VkCommandBufferLevel input)
{
    switch(input) {
        case 0:
            return "VK_COMMAND_BUFFER_LEVEL_PRIMARY";
        case 1:
            return "VK_COMMAND_BUFFER_LEVEL_SECONDARY";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_CompareOp_to_str(VkCompareOp input)
{
    switch(input) {
        case 0:
            return "VK_COMPARE_OP_NEVER";
        case 1:
            return "VK_COMPARE_OP_LESS";
        case 2:
            return "VK_COMPARE_OP_EQUAL";
        case 3:
            return "VK_COMPARE_OP_LESS_OR_EQUAL";
        case 4:
            return "VK_COMPARE_OP_GREATER";
        case 5:
            return "VK_COMPARE_OP_NOT_EQUAL";
        case 6:
            return "VK_COMPARE_OP_GREATER_OR_EQUAL";
        case 7:
            return "VK_COMPARE_OP_ALWAYS";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_ComponentSwizzle_to_str(VkComponentSwizzle input)
{
    switch(input) {
        case 0:
            return "VK_COMPONENT_SWIZZLE_IDENTITY";
        case 1:
            return "VK_COMPONENT_SWIZZLE_ZERO";
        case 2:
            return "VK_COMPONENT_SWIZZLE_ONE";
        case 3:
            return "VK_COMPONENT_SWIZZLE_R";
        case 4:
            return "VK_COMPONENT_SWIZZLE_G";
        case 5:
            return "VK_COMPONENT_SWIZZLE_B";
        case 6:
            return "VK_COMPONENT_SWIZZLE_A";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_CoverageModulationModeNV_to_str(VkCoverageModulationModeNV input)
{
    switch(input) {
        case 0:
            return "VK_COVERAGE_MODULATION_MODE_NONE_NV";
        case 1:
            return "VK_COVERAGE_MODULATION_MODE_RGB_NV";
        case 2:
            return "VK_COVERAGE_MODULATION_MODE_ALPHA_NV";
        case 3:
            return "VK_COVERAGE_MODULATION_MODE_RGBA_NV";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_DebugReportObjectTypeEXT_to_str(VkDebugReportObjectTypeEXT input)
{
    switch(input) {
        case 0:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT";
        case 1:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT";
        case 2:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT";
        case 3:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT";
        case 4:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT";
        case 5:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT";
        case 6:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT";
        case 7:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT";
        case 8:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT";
        case 9:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT";
        case 10:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT";
        case 11:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT";
        case 12:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT";
        case 13:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT";
        case 14:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT";
        case 15:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT";
        case 16:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT";
        case 17:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT";
        case 18:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT";
        case 19:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT";
        case 20:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT";
        case 21:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT";
        case 22:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT";
        case 23:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT";
        case 24:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT";
        case 25:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT";
        case 26:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT";
        case 27:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT";
        case 28:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT";
        case 29:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT";
        case 30:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT";
        case 31:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT";
        case 32:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT";
        case 33:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT";
        case 1000085000:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT";
        case 1000156000:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_DescriptorType_to_str(VkDescriptorType input)
{
    switch(input) {
        case 0:
            return "VK_DESCRIPTOR_TYPE_SAMPLER";
        case 1:
            return "VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER";
        case 2:
            return "VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE";
        case 3:
            return "VK_DESCRIPTOR_TYPE_STORAGE_IMAGE";
        case 4:
            return "VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER";
        case 5:
            return "VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER";
        case 6:
            return "VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER";
        case 7:
            return "VK_DESCRIPTOR_TYPE_STORAGE_BUFFER";
        case 8:
            return "VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC";
        case 9:
            return "VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC";
        case 10:
            return "VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_DescriptorUpdateTemplateTypeKHR_to_str(VkDescriptorUpdateTemplateTypeKHR input)
{
    switch(input) {
        case 0:
            return "VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR";
        case 1:
            return "VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_DeviceEventTypeEXT_to_str(VkDeviceEventTypeEXT input)
{
    switch(input) {
        case 0:
            return "VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_DiscardRectangleModeEXT_to_str(VkDiscardRectangleModeEXT input)
{
    switch(input) {
        case 0:
            return "VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT";
        case 1:
            return "VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_DisplayEventTypeEXT_to_str(VkDisplayEventTypeEXT input)
{
    switch(input) {
        case 0:
            return "VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_DisplayPowerStateEXT_to_str(VkDisplayPowerStateEXT input)
{
    switch(input) {
        case 0:
            return "VK_DISPLAY_POWER_STATE_OFF_EXT";
        case 1:
            return "VK_DISPLAY_POWER_STATE_SUSPEND_EXT";
        case 2:
            return "VK_DISPLAY_POWER_STATE_ON_EXT";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_DynamicState_to_str(VkDynamicState input)
{
    switch(input) {
        case 0:
            return "VK_DYNAMIC_STATE_VIEWPORT";
        case 1:
            return "VK_DYNAMIC_STATE_SCISSOR";
        case 2:
            return "VK_DYNAMIC_STATE_LINE_WIDTH";
        case 3:
            return "VK_DYNAMIC_STATE_DEPTH_BIAS";
        case 4:
            return "VK_DYNAMIC_STATE_BLEND_CONSTANTS";
        case 5:
            return "VK_DYNAMIC_STATE_DEPTH_BOUNDS";
        case 6:
            return "VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK";
        case 7:
            return "VK_DYNAMIC_STATE_STENCIL_WRITE_MASK";
        case 8:
            return "VK_DYNAMIC_STATE_STENCIL_REFERENCE";
        case 1000087000:
            return "VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV";
        case 1000099000:
            return "VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT";
        case 1000143000:
            return "VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_Filter_to_str(VkFilter input)
{
    switch(input) {
        case 0:
            return "VK_FILTER_NEAREST";
        case 1:
            return "VK_FILTER_LINEAR";
        case 1000015000:
            return "VK_FILTER_CUBIC_IMG";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_Format_to_str(VkFormat input)
{
    switch(input) {
        case 0:
            return "VK_FORMAT_UNDEFINED";
        case 1:
            return "VK_FORMAT_R4G4_UNORM_PACK8";
        case 2:
            return "VK_FORMAT_R4G4B4A4_UNORM_PACK16";
        case 3:
            return "VK_FORMAT_B4G4R4A4_UNORM_PACK16";
        case 4:
            return "VK_FORMAT_R5G6B5_UNORM_PACK16";
        case 5:
            return "VK_FORMAT_B5G6R5_UNORM_PACK16";
        case 6:
            return "VK_FORMAT_R5G5B5A1_UNORM_PACK16";
        case 7:
            return "VK_FORMAT_B5G5R5A1_UNORM_PACK16";
        case 8:
            return "VK_FORMAT_A1R5G5B5_UNORM_PACK16";
        case 9:
            return "VK_FORMAT_R8_UNORM";
        case 10:
            return "VK_FORMAT_R8_SNORM";
        case 11:
            return "VK_FORMAT_R8_USCALED";
        case 12:
            return "VK_FORMAT_R8_SSCALED";
        case 13:
            return "VK_FORMAT_R8_UINT";
        case 14:
            return "VK_FORMAT_R8_SINT";
        case 15:
            return "VK_FORMAT_R8_SRGB";
        case 16:
            return "VK_FORMAT_R8G8_UNORM";
        case 17:
            return "VK_FORMAT_R8G8_SNORM";
        case 18:
            return "VK_FORMAT_R8G8_USCALED";
        case 19:
            return "VK_FORMAT_R8G8_SSCALED";
        case 20:
            return "VK_FORMAT_R8G8_UINT";
        case 21:
            return "VK_FORMAT_R8G8_SINT";
        case 22:
            return "VK_FORMAT_R8G8_SRGB";
        case 23:
            return "VK_FORMAT_R8G8B8_UNORM";
        case 24:
            return "VK_FORMAT_R8G8B8_SNORM";
        case 25:
            return "VK_FORMAT_R8G8B8_USCALED";
        case 26:
            return "VK_FORMAT_R8G8B8_SSCALED";
        case 27:
            return "VK_FORMAT_R8G8B8_UINT";
        case 28:
            return "VK_FORMAT_R8G8B8_SINT";
        case 29:
            return "VK_FORMAT_R8G8B8_SRGB";
        case 30:
            return "VK_FORMAT_B8G8R8_UNORM";
        case 31:
            return "VK_FORMAT_B8G8R8_SNORM";
        case 32:
            return "VK_FORMAT_B8G8R8_USCALED";
        case 33:
            return "VK_FORMAT_B8G8R8_SSCALED";
        case 34:
            return "VK_FORMAT_B8G8R8_UINT";
        case 35:
            return "VK_FORMAT_B8G8R8_SINT";
        case 36:
            return "VK_FORMAT_B8G8R8_SRGB";
        case 37:
            return "VK_FORMAT_R8G8B8A8_UNORM";
        case 38:
            return "VK_FORMAT_R8G8B8A8_SNORM";
        case 39:
            return "VK_FORMAT_R8G8B8A8_USCALED";
        case 40:
            return "VK_FORMAT_R8G8B8A8_SSCALED";
        case 41:
            return "VK_FORMAT_R8G8B8A8_UINT";
        case 42:
            return "VK_FORMAT_R8G8B8A8_SINT";
        case 43:
            return "VK_FORMAT_R8G8B8A8_SRGB";
        case 44:
            return "VK_FORMAT_B8G8R8A8_UNORM";
        case 45:
            return "VK_FORMAT_B8G8R8A8_SNORM";
        case 46:
            return "VK_FORMAT_B8G8R8A8_USCALED";
        case 47:
            return "VK_FORMAT_B8G8R8A8_SSCALED";
        case 48:
            return "VK_FORMAT_B8G8R8A8_UINT";
        case 49:
            return "VK_FORMAT_B8G8R8A8_SINT";
        case 50:
            return "VK_FORMAT_B8G8R8A8_SRGB";
        case 51:
            return "VK_FORMAT_A8B8G8R8_UNORM_PACK32";
        case 52:
            return "VK_FORMAT_A8B8G8R8_SNORM_PACK32";
        case 53:
            return "VK_FORMAT_A8B8G8R8_USCALED_PACK32";
        case 54:
            return "VK_FORMAT_A8B8G8R8_SSCALED_PACK32";
        case 55:
            return "VK_FORMAT_A8B8G8R8_UINT_PACK32";
        case 56:
            return "VK_FORMAT_A8B8G8R8_SINT_PACK32";
        case 57:
            return "VK_FORMAT_A8B8G8R8_SRGB_PACK32";
        case 58:
            return "VK_FORMAT_A2R10G10B10_UNORM_PACK32";
        case 59:
            return "VK_FORMAT_A2R10G10B10_SNORM_PACK32";
        case 60:
            return "VK_FORMAT_A2R10G10B10_USCALED_PACK32";
        case 61:
            return "VK_FORMAT_A2R10G10B10_SSCALED_PACK32";
        case 62:
            return "VK_FORMAT_A2R10G10B10_UINT_PACK32";
        case 63:
            return "VK_FORMAT_A2R10G10B10_SINT_PACK32";
        case 64:
            return "VK_FORMAT_A2B10G10R10_UNORM_PACK32";
        case 65:
            return "VK_FORMAT_A2B10G10R10_SNORM_PACK32";
        case 66:
            return "VK_FORMAT_A2B10G10R10_USCALED_PACK32";
        case 67:
            return "VK_FORMAT_A2B10G10R10_SSCALED_PACK32";
        case 68:
            return "VK_FORMAT_A2B10G10R10_UINT_PACK32";
        case 69:
            return "VK_FORMAT_A2B10G10R10_SINT_PACK32";
        case 70:
            return "VK_FORMAT_R16_UNORM";
        case 71:
            return "VK_FORMAT_R16_SNORM";
        case 72:
            return "VK_FORMAT_R16_USCALED";
        case 73:
            return "VK_FORMAT_R16_SSCALED";
        case 74:
            return "VK_FORMAT_R16_UINT";
        case 75:
            return "VK_FORMAT_R16_SINT";
        case 76:
            return "VK_FORMAT_R16_SFLOAT";
        case 77:
            return "VK_FORMAT_R16G16_UNORM";
        case 78:
            return "VK_FORMAT_R16G16_SNORM";
        case 79:
            return "VK_FORMAT_R16G16_USCALED";
        case 80:
            return "VK_FORMAT_R16G16_SSCALED";
        case 81:
            return "VK_FORMAT_R16G16_UINT";
        case 82:
            return "VK_FORMAT_R16G16_SINT";
        case 83:
            return "VK_FORMAT_R16G16_SFLOAT";
        case 84:
            return "VK_FORMAT_R16G16B16_UNORM";
        case 85:
            return "VK_FORMAT_R16G16B16_SNORM";
        case 86:
            return "VK_FORMAT_R16G16B16_USCALED";
        case 87:
            return "VK_FORMAT_R16G16B16_SSCALED";
        case 88:
            return "VK_FORMAT_R16G16B16_UINT";
        case 89:
            return "VK_FORMAT_R16G16B16_SINT";
        case 90:
            return "VK_FORMAT_R16G16B16_SFLOAT";
        case 91:
            return "VK_FORMAT_R16G16B16A16_UNORM";
        case 92:
            return "VK_FORMAT_R16G16B16A16_SNORM";
        case 93:
            return "VK_FORMAT_R16G16B16A16_USCALED";
        case 94:
            return "VK_FORMAT_R16G16B16A16_SSCALED";
        case 95:
            return "VK_FORMAT_R16G16B16A16_UINT";
        case 96:
            return "VK_FORMAT_R16G16B16A16_SINT";
        case 97:
            return "VK_FORMAT_R16G16B16A16_SFLOAT";
        case 98:
            return "VK_FORMAT_R32_UINT";
        case 99:
            return "VK_FORMAT_R32_SINT";
        case 100:
            return "VK_FORMAT_R32_SFLOAT";
        case 101:
            return "VK_FORMAT_R32G32_UINT";
        case 102:
            return "VK_FORMAT_R32G32_SINT";
        case 103:
            return "VK_FORMAT_R32G32_SFLOAT";
        case 104:
            return "VK_FORMAT_R32G32B32_UINT";
        case 105:
            return "VK_FORMAT_R32G32B32_SINT";
        case 106:
            return "VK_FORMAT_R32G32B32_SFLOAT";
        case 107:
            return "VK_FORMAT_R32G32B32A32_UINT";
        case 108:
            return "VK_FORMAT_R32G32B32A32_SINT";
        case 109:
            return "VK_FORMAT_R32G32B32A32_SFLOAT";
        case 110:
            return "VK_FORMAT_R64_UINT";
        case 111:
            return "VK_FORMAT_R64_SINT";
        case 112:
            return "VK_FORMAT_R64_SFLOAT";
        case 113:
            return "VK_FORMAT_R64G64_UINT";
        case 114:
            return "VK_FORMAT_R64G64_SINT";
        case 115:
            return "VK_FORMAT_R64G64_SFLOAT";
        case 116:
            return "VK_FORMAT_R64G64B64_UINT";
        case 117:
            return "VK_FORMAT_R64G64B64_SINT";
        case 118:
            return "VK_FORMAT_R64G64B64_SFLOAT";
        case 119:
            return "VK_FORMAT_R64G64B64A64_UINT";
        case 120:
            return "VK_FORMAT_R64G64B64A64_SINT";
        case 121:
            return "VK_FORMAT_R64G64B64A64_SFLOAT";
        case 122:
            return "VK_FORMAT_B10G11R11_UFLOAT_PACK32";
        case 123:
            return "VK_FORMAT_E5B9G9R9_UFLOAT_PACK32";
        case 124:
            return "VK_FORMAT_D16_UNORM";
        case 125:
            return "VK_FORMAT_X8_D24_UNORM_PACK32";
        case 126:
            return "VK_FORMAT_D32_SFLOAT";
        case 127:
            return "VK_FORMAT_S8_UINT";
        case 128:
            return "VK_FORMAT_D16_UNORM_S8_UINT";
        case 129:
            return "VK_FORMAT_D24_UNORM_S8_UINT";
        case 130:
            return "VK_FORMAT_D32_SFLOAT_S8_UINT";
        case 131:
            return "VK_FORMAT_BC1_RGB_UNORM_BLOCK";
        case 132:
            return "VK_FORMAT_BC1_RGB_SRGB_BLOCK";
        case 133:
            return "VK_FORMAT_BC1_RGBA_UNORM_BLOCK";
        case 134:
            return "VK_FORMAT_BC1_RGBA_SRGB_BLOCK";
        case 135:
            return "VK_FORMAT_BC2_UNORM_BLOCK";
        case 136:
            return "VK_FORMAT_BC2_SRGB_BLOCK";
        case 137:
            return "VK_FORMAT_BC3_UNORM_BLOCK";
        case 138:
            return "VK_FORMAT_BC3_SRGB_BLOCK";
        case 139:
            return "VK_FORMAT_BC4_UNORM_BLOCK";
        case 140:
            return "VK_FORMAT_BC4_SNORM_BLOCK";
        case 141:
            return "VK_FORMAT_BC5_UNORM_BLOCK";
        case 142:
            return "VK_FORMAT_BC5_SNORM_BLOCK";
        case 143:
            return "VK_FORMAT_BC6H_UFLOAT_BLOCK";
        case 144:
            return "VK_FORMAT_BC6H_SFLOAT_BLOCK";
        case 145:
            return "VK_FORMAT_BC7_UNORM_BLOCK";
        case 146:
            return "VK_FORMAT_BC7_SRGB_BLOCK";
        case 147:
            return "VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK";
        case 148:
            return "VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK";
        case 149:
            return "VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK";
        case 150:
            return "VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK";
        case 151:
            return "VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK";
        case 152:
            return "VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK";
        case 153:
            return "VK_FORMAT_EAC_R11_UNORM_BLOCK";
        case 154:
            return "VK_FORMAT_EAC_R11_SNORM_BLOCK";
        case 155:
            return "VK_FORMAT_EAC_R11G11_UNORM_BLOCK";
        case 156:
            return "VK_FORMAT_EAC_R11G11_SNORM_BLOCK";
        case 157:
            return "VK_FORMAT_ASTC_4x4_UNORM_BLOCK";
        case 158:
            return "VK_FORMAT_ASTC_4x4_SRGB_BLOCK";
        case 159:
            return "VK_FORMAT_ASTC_5x4_UNORM_BLOCK";
        case 160:
            return "VK_FORMAT_ASTC_5x4_SRGB_BLOCK";
        case 161:
            return "VK_FORMAT_ASTC_5x5_UNORM_BLOCK";
        case 162:
            return "VK_FORMAT_ASTC_5x5_SRGB_BLOCK";
        case 163:
            return "VK_FORMAT_ASTC_6x5_UNORM_BLOCK";
        case 164:
            return "VK_FORMAT_ASTC_6x5_SRGB_BLOCK";
        case 165:
            return "VK_FORMAT_ASTC_6x6_UNORM_BLOCK";
        case 166:
            return "VK_FORMAT_ASTC_6x6_SRGB_BLOCK";
        case 167:
            return "VK_FORMAT_ASTC_8x5_UNORM_BLOCK";
        case 168:
            return "VK_FORMAT_ASTC_8x5_SRGB_BLOCK";
        case 169:
            return "VK_FORMAT_ASTC_8x6_UNORM_BLOCK";
        case 170:
            return "VK_FORMAT_ASTC_8x6_SRGB_BLOCK";
        case 171:
            return "VK_FORMAT_ASTC_8x8_UNORM_BLOCK";
        case 172:
            return "VK_FORMAT_ASTC_8x8_SRGB_BLOCK";
        case 173:
            return "VK_FORMAT_ASTC_10x5_UNORM_BLOCK";
        case 174:
            return "VK_FORMAT_ASTC_10x5_SRGB_BLOCK";
        case 175:
            return "VK_FORMAT_ASTC_10x6_UNORM_BLOCK";
        case 176:
            return "VK_FORMAT_ASTC_10x6_SRGB_BLOCK";
        case 177:
            return "VK_FORMAT_ASTC_10x8_UNORM_BLOCK";
        case 178:
            return "VK_FORMAT_ASTC_10x8_SRGB_BLOCK";
        case 179:
            return "VK_FORMAT_ASTC_10x10_UNORM_BLOCK";
        case 180:
            return "VK_FORMAT_ASTC_10x10_SRGB_BLOCK";
        case 181:
            return "VK_FORMAT_ASTC_12x10_UNORM_BLOCK";
        case 182:
            return "VK_FORMAT_ASTC_12x10_SRGB_BLOCK";
        case 183:
            return "VK_FORMAT_ASTC_12x12_UNORM_BLOCK";
        case 184:
            return "VK_FORMAT_ASTC_12x12_SRGB_BLOCK";
        case 1000054000:
            return "VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG";
        case 1000054001:
            return "VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG";
        case 1000054002:
            return "VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG";
        case 1000054003:
            return "VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG";
        case 1000054004:
            return "VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG";
        case 1000054005:
            return "VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG";
        case 1000054006:
            return "VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG";
        case 1000054007:
            return "VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG";
        case 1000156000:
            return "VK_FORMAT_G8B8G8R8_422_UNORM_KHR";
        case 1000156001:
            return "VK_FORMAT_B8G8R8G8_422_UNORM_KHR";
        case 1000156002:
            return "VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR";
        case 1000156003:
            return "VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR";
        case 1000156004:
            return "VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR";
        case 1000156005:
            return "VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR";
        case 1000156006:
            return "VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR";
        case 1000156007:
            return "VK_FORMAT_R10X6_UNORM_PACK16_KHR";
        case 1000156008:
            return "VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR";
        case 1000156009:
            return "VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR";
        case 1000156010:
            return "VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR";
        case 1000156011:
            return "VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR";
        case 1000156012:
            return "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR";
        case 1000156013:
            return "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR";
        case 1000156014:
            return "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR";
        case 1000156015:
            return "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR";
        case 1000156016:
            return "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR";
        case 1000156017:
            return "VK_FORMAT_R12X4_UNORM_PACK16_KHR";
        case 1000156018:
            return "VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR";
        case 1000156019:
            return "VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR";
        case 1000156020:
            return "VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR";
        case 1000156021:
            return "VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR";
        case 1000156022:
            return "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR";
        case 1000156023:
            return "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR";
        case 1000156024:
            return "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR";
        case 1000156025:
            return "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR";
        case 1000156026:
            return "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR";
        case 1000156027:
            return "VK_FORMAT_G16B16G16R16_422_UNORM_KHR";
        case 1000156028:
            return "VK_FORMAT_B16G16R16G16_422_UNORM_KHR";
        case 1000156029:
            return "VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR";
        case 1000156030:
            return "VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR";
        case 1000156031:
            return "VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR";
        case 1000156032:
            return "VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR";
        case 1000156033:
            return "VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_FrontFace_to_str(VkFrontFace input)
{
    switch(input) {
        case 0:
            return "VK_FRONT_FACE_COUNTER_CLOCKWISE";
        case 1:
            return "VK_FRONT_FACE_CLOCKWISE";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_ImageLayout_to_str(VkImageLayout input)
{
    switch(input) {
        case 0:
            return "VK_IMAGE_LAYOUT_UNDEFINED";
        case 1:
            return "VK_IMAGE_LAYOUT_GENERAL";
        case 2:
            return "VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL";
        case 3:
            return "VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL";
        case 4:
            return "VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL";
        case 5:
            return "VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL";
        case 6:
            return "VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL";
        case 7:
            return "VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL";
        case 8:
            return "VK_IMAGE_LAYOUT_PREINITIALIZED";
        case 1000001002:
            return "VK_IMAGE_LAYOUT_PRESENT_SRC_KHR";
        case 1000111000:
            return "VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR";
        case 1000117000:
            return "VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR";
        case 1000117001:
            return "VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_ImageTiling_to_str(VkImageTiling input)
{
    switch(input) {
        case 0:
            return "VK_IMAGE_TILING_OPTIMAL";
        case 1:
            return "VK_IMAGE_TILING_LINEAR";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_ImageType_to_str(VkImageType input)
{
    switch(input) {
        case 0:
            return "VK_IMAGE_TYPE_1D";
        case 1:
            return "VK_IMAGE_TYPE_2D";
        case 2:
            return "VK_IMAGE_TYPE_3D";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_ImageViewType_to_str(VkImageViewType input)
{
    switch(input) {
        case 0:
            return "VK_IMAGE_VIEW_TYPE_1D";
        case 1:
            return "VK_IMAGE_VIEW_TYPE_2D";
        case 2:
            return "VK_IMAGE_VIEW_TYPE_3D";
        case 3:
            return "VK_IMAGE_VIEW_TYPE_CUBE";
        case 4:
            return "VK_IMAGE_VIEW_TYPE_1D_ARRAY";
        case 5:
            return "VK_IMAGE_VIEW_TYPE_2D_ARRAY";
        case 6:
            return "VK_IMAGE_VIEW_TYPE_CUBE_ARRAY";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_IndexType_to_str(VkIndexType input)
{
    switch(input) {
        case 0:
            return "VK_INDEX_TYPE_UINT16";
        case 1:
            return "VK_INDEX_TYPE_UINT32";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_IndirectCommandsTokenTypeNVX_to_str(VkIndirectCommandsTokenTypeNVX input)
{
    switch(input) {
        case 0:
            return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX";
        case 1:
            return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX";
        case 2:
            return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX";
        case 3:
            return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX";
        case 4:
            return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX";
        case 5:
            return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX";
        case 6:
            return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX";
        case 7:
            return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_InternalAllocationType_to_str(VkInternalAllocationType input)
{
    switch(input) {
        case 0:
            return "VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_LogicOp_to_str(VkLogicOp input)
{
    switch(input) {
        case 0:
            return "VK_LOGIC_OP_CLEAR";
        case 1:
            return "VK_LOGIC_OP_AND";
        case 2:
            return "VK_LOGIC_OP_AND_REVERSE";
        case 3:
            return "VK_LOGIC_OP_COPY";
        case 4:
            return "VK_LOGIC_OP_AND_INVERTED";
        case 5:
            return "VK_LOGIC_OP_NO_OP";
        case 6:
            return "VK_LOGIC_OP_XOR";
        case 7:
            return "VK_LOGIC_OP_OR";
        case 8:
            return "VK_LOGIC_OP_NOR";
        case 9:
            return "VK_LOGIC_OP_EQUIVALENT";
        case 10:
            return "VK_LOGIC_OP_INVERT";
        case 11:
            return "VK_LOGIC_OP_OR_REVERSE";
        case 12:
            return "VK_LOGIC_OP_COPY_INVERTED";
        case 13:
            return "VK_LOGIC_OP_OR_INVERTED";
        case 14:
            return "VK_LOGIC_OP_NAND";
        case 15:
            return "VK_LOGIC_OP_SET";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_ObjectEntryTypeNVX_to_str(VkObjectEntryTypeNVX input)
{
    switch(input) {
        case 0:
            return "VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX";
        case 1:
            return "VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX";
        case 2:
            return "VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX";
        case 3:
            return "VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX";
        case 4:
            return "VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_ObjectType_to_str(VkObjectType input)
{
    switch(input) {
        case 0:
            return "VK_OBJECT_TYPE_UNKNOWN";
        case 1:
            return "VK_OBJECT_TYPE_INSTANCE";
        case 2:
            return "VK_OBJECT_TYPE_PHYSICAL_DEVICE";
        case 3:
            return "VK_OBJECT_TYPE_DEVICE";
        case 4:
            return "VK_OBJECT_TYPE_QUEUE";
        case 5:
            return "VK_OBJECT_TYPE_SEMAPHORE";
        case 6:
            return "VK_OBJECT_TYPE_COMMAND_BUFFER";
        case 7:
            return "VK_OBJECT_TYPE_FENCE";
        case 8:
            return "VK_OBJECT_TYPE_DEVICE_MEMORY";
        case 9:
            return "VK_OBJECT_TYPE_BUFFER";
        case 10:
            return "VK_OBJECT_TYPE_IMAGE";
        case 11:
            return "VK_OBJECT_TYPE_EVENT";
        case 12:
            return "VK_OBJECT_TYPE_QUERY_POOL";
        case 13:
            return "VK_OBJECT_TYPE_BUFFER_VIEW";
        case 14:
            return "VK_OBJECT_TYPE_IMAGE_VIEW";
        case 15:
            return "VK_OBJECT_TYPE_SHADER_MODULE";
        case 16:
            return "VK_OBJECT_TYPE_PIPELINE_CACHE";
        case 17:
            return "VK_OBJECT_TYPE_PIPELINE_LAYOUT";
        case 18:
            return "VK_OBJECT_TYPE_RENDER_PASS";
        case 19:
            return "VK_OBJECT_TYPE_PIPELINE";
        case 20:
            return "VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT";
        case 21:
            return "VK_OBJECT_TYPE_SAMPLER";
        case 22:
            return "VK_OBJECT_TYPE_DESCRIPTOR_POOL";
        case 23:
            return "VK_OBJECT_TYPE_DESCRIPTOR_SET";
        case 24:
            return "VK_OBJECT_TYPE_FRAMEBUFFER";
        case 25:
            return "VK_OBJECT_TYPE_COMMAND_POOL";
        case 1000000000:
            return "VK_OBJECT_TYPE_SURFACE_KHR";
        case 1000001000:
            return "VK_OBJECT_TYPE_SWAPCHAIN_KHR";
        case 1000002000:
            return "VK_OBJECT_TYPE_DISPLAY_KHR";
        case 1000002001:
            return "VK_OBJECT_TYPE_DISPLAY_MODE_KHR";
        case 1000011000:
            return "VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT";
        case 1000085000:
            return "VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR";
        case 1000086000:
            return "VK_OBJECT_TYPE_OBJECT_TABLE_NVX";
        case 1000086001:
            return "VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX";
        case 1000156000:
            return "VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR";
        case 1000160000:
            return "VK_OBJECT_TYPE_VALIDATION_CACHE_EXT";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_PhysicalDeviceType_to_str(VkPhysicalDeviceType input)
{
    switch(input) {
        case 0:
            return "VK_PHYSICAL_DEVICE_TYPE_OTHER";
        case 1:
            return "VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU";
        case 2:
            return "VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU";
        case 3:
            return "VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU";
        case 4:
            return "VK_PHYSICAL_DEVICE_TYPE_CPU";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_PipelineBindPoint_to_str(VkPipelineBindPoint input)
{
    switch(input) {
        case 0:
            return "VK_PIPELINE_BIND_POINT_GRAPHICS";
        case 1:
            return "VK_PIPELINE_BIND_POINT_COMPUTE";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_PipelineCacheHeaderVersion_to_str(VkPipelineCacheHeaderVersion input)
{
    switch(input) {
        case 1:
            return "VK_PIPELINE_CACHE_HEADER_VERSION_ONE";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_PointClippingBehaviorKHR_to_str(VkPointClippingBehaviorKHR input)
{
    switch(input) {
        case 0:
            return "VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR";
        case 1:
            return "VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_PolygonMode_to_str(VkPolygonMode input)
{
    switch(input) {
        case 0:
            return "VK_POLYGON_MODE_FILL";
        case 1:
            return "VK_POLYGON_MODE_LINE";
        case 2:
            return "VK_POLYGON_MODE_POINT";
        case 1000153000:
            return "VK_POLYGON_MODE_FILL_RECTANGLE_NV";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_PresentModeKHR_to_str(VkPresentModeKHR input)
{
    switch(input) {
        case 0:
            return "VK_PRESENT_MODE_IMMEDIATE_KHR";
        case 1:
            return "VK_PRESENT_MODE_MAILBOX_KHR";
        case 2:
            return "VK_PRESENT_MODE_FIFO_KHR";
        case 3:
            return "VK_PRESENT_MODE_FIFO_RELAXED_KHR";
        case 1000111000:
            return "VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR";
        case 1000111001:
            return "VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_PrimitiveTopology_to_str(VkPrimitiveTopology input)
{
    switch(input) {
        case 0:
            return "VK_PRIMITIVE_TOPOLOGY_POINT_LIST";
        case 1:
            return "VK_PRIMITIVE_TOPOLOGY_LINE_LIST";
        case 2:
            return "VK_PRIMITIVE_TOPOLOGY_LINE_STRIP";
        case 3:
            return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST";
        case 4:
            return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP";
        case 5:
            return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN";
        case 6:
            return "VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY";
        case 7:
            return "VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY";
        case 8:
            return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY";
        case 9:
            return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY";
        case 10:
            return "VK_PRIMITIVE_TOPOLOGY_PATCH_LIST";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_QueryType_to_str(VkQueryType input)
{
    switch(input) {
        case 0:
            return "VK_QUERY_TYPE_OCCLUSION";
        case 1:
            return "VK_QUERY_TYPE_PIPELINE_STATISTICS";
        case 2:
            return "VK_QUERY_TYPE_TIMESTAMP";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_QueueGlobalPriorityEXT_to_str(VkQueueGlobalPriorityEXT input)
{
    switch(input) {
        case 128:
            return "VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT";
        case 256:
            return "VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT";
        case 512:
            return "VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT";
        case 1024:
            return "VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_RasterizationOrderAMD_to_str(VkRasterizationOrderAMD input)
{
    switch(input) {
        case 0:
            return "VK_RASTERIZATION_ORDER_STRICT_AMD";
        case 1:
            return "VK_RASTERIZATION_ORDER_RELAXED_AMD";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_Result_to_str(VkResult input)
{
    switch(input) {
        case -1000174001:
            return "VK_ERROR_NOT_PERMITTED_EXT";
        case -1000072003:
            return "VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR";
        case -1000069000:
            return "VK_ERROR_OUT_OF_POOL_MEMORY_KHR";
        case -1000012000:
            return "VK_ERROR_INVALID_SHADER_NV";
        case -1000011001:
            return "VK_ERROR_VALIDATION_FAILED_EXT";
        case -1000003001:
            return "VK_ERROR_INCOMPATIBLE_DISPLAY_KHR";
        case -1000001004:
            return "VK_ERROR_OUT_OF_DATE_KHR";
        case -1000000001:
            return "VK_ERROR_NATIVE_WINDOW_IN_USE_KHR";
        case -1000000000:
            return "VK_ERROR_SURFACE_LOST_KHR";
        case -12:
            return "VK_ERROR_FRAGMENTED_POOL";
        case -11:
            return "VK_ERROR_FORMAT_NOT_SUPPORTED";
        case -10:
            return "VK_ERROR_TOO_MANY_OBJECTS";
        case -9:
            return "VK_ERROR_INCOMPATIBLE_DRIVER";
        case -8:
            return "VK_ERROR_FEATURE_NOT_PRESENT";
        case -7:
            return "VK_ERROR_EXTENSION_NOT_PRESENT";
        case -6:
            return "VK_ERROR_LAYER_NOT_PRESENT";
        case -5:
            return "VK_ERROR_MEMORY_MAP_FAILED";
        case -4:
            return "VK_ERROR_DEVICE_LOST";
        case -3:
            return "VK_ERROR_INITIALIZATION_FAILED";
        case -2:
            return "VK_ERROR_OUT_OF_DEVICE_MEMORY";
        case -1:
            return "VK_ERROR_OUT_OF_HOST_MEMORY";
        case 0:
            return "VK_SUCCESS";
        case 1:
            return "VK_NOT_READY";
        case 2:
            return "VK_TIMEOUT";
        case 3:
            return "VK_EVENT_SET";
        case 4:
            return "VK_EVENT_RESET";
        case 5:
            return "VK_INCOMPLETE";
        case 1000001003:
            return "VK_SUBOPTIMAL_KHR";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_SamplerAddressMode_to_str(VkSamplerAddressMode input)
{
    switch(input) {
        case 0:
            return "VK_SAMPLER_ADDRESS_MODE_REPEAT";
        case 1:
            return "VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT";
        case 2:
            return "VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE";
        case 3:
            return "VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER";
        case 4:
            return "VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_SamplerMipmapMode_to_str(VkSamplerMipmapMode input)
{
    switch(input) {
        case 0:
            return "VK_SAMPLER_MIPMAP_MODE_NEAREST";
        case 1:
            return "VK_SAMPLER_MIPMAP_MODE_LINEAR";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_SamplerReductionModeEXT_to_str(VkSamplerReductionModeEXT input)
{
    switch(input) {
        case 0:
            return "VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT";
        case 1:
            return "VK_SAMPLER_REDUCTION_MODE_MIN_EXT";
        case 2:
            return "VK_SAMPLER_REDUCTION_MODE_MAX_EXT";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_SamplerYcbcrModelConversionKHR_to_str(VkSamplerYcbcrModelConversionKHR input)
{
    switch(input) {
        case 0:
            return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR";
        case 1:
            return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR";
        case 2:
            return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR";
        case 3:
            return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR";
        case 4:
            return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_SamplerYcbcrRangeKHR_to_str(VkSamplerYcbcrRangeKHR input)
{
    switch(input) {
        case 0:
            return "VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR";
        case 1:
            return "VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_ShaderInfoTypeAMD_to_str(VkShaderInfoTypeAMD input)
{
    switch(input) {
        case 0:
            return "VK_SHADER_INFO_TYPE_STATISTICS_AMD";
        case 1:
            return "VK_SHADER_INFO_TYPE_BINARY_AMD";
        case 2:
            return "VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_SharingMode_to_str(VkSharingMode input)
{
    switch(input) {
        case 0:
            return "VK_SHARING_MODE_EXCLUSIVE";
        case 1:
            return "VK_SHARING_MODE_CONCURRENT";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_StencilOp_to_str(VkStencilOp input)
{
    switch(input) {
        case 0:
            return "VK_STENCIL_OP_KEEP";
        case 1:
            return "VK_STENCIL_OP_ZERO";
        case 2:
            return "VK_STENCIL_OP_REPLACE";
        case 3:
            return "VK_STENCIL_OP_INCREMENT_AND_CLAMP";
        case 4:
            return "VK_STENCIL_OP_DECREMENT_AND_CLAMP";
        case 5:
            return "VK_STENCIL_OP_INVERT";
        case 6:
            return "VK_STENCIL_OP_INCREMENT_AND_WRAP";
        case 7:
            return "VK_STENCIL_OP_DECREMENT_AND_WRAP";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_StructureType_to_str(VkStructureType input)
{
    switch(input) {
        case 0:
            return "VK_STRUCTURE_TYPE_APPLICATION_INFO";
        case 1:
            return "VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO";
        case 2:
            return "VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO";
        case 3:
            return "VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO";
        case 4:
            return "VK_STRUCTURE_TYPE_SUBMIT_INFO";
        case 5:
            return "VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO";
        case 6:
            return "VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE";
        case 7:
            return "VK_STRUCTURE_TYPE_BIND_SPARSE_INFO";
        case 8:
            return "VK_STRUCTURE_TYPE_FENCE_CREATE_INFO";
        case 9:
            return "VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO";
        case 10:
            return "VK_STRUCTURE_TYPE_EVENT_CREATE_INFO";
        case 11:
            return "VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO";
        case 12:
            return "VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO";
        case 13:
            return "VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO";
        case 14:
            return "VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO";
        case 15:
            return "VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO";
        case 16:
            return "VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO";
        case 17:
            return "VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO";
        case 18:
            return "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO";
        case 19:
            return "VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO";
        case 20:
            return "VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO";
        case 21:
            return "VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO";
        case 22:
            return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO";
        case 23:
            return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO";
        case 24:
            return "VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO";
        case 25:
            return "VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO";
        case 26:
            return "VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO";
        case 27:
            return "VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO";
        case 28:
            return "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO";
        case 29:
            return "VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO";
        case 30:
            return "VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO";
        case 31:
            return "VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO";
        case 32:
            return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO";
        case 33:
            return "VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO";
        case 34:
            return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO";
        case 35:
            return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET";
        case 36:
            return "VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET";
        case 37:
            return "VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO";
        case 38:
            return "VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO";
        case 39:
            return "VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO";
        case 40:
            return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO";
        case 41:
            return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO";
        case 42:
            return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO";
        case 43:
            return "VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO";
        case 44:
            return "VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER";
        case 45:
            return "VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER";
        case 46:
            return "VK_STRUCTURE_TYPE_MEMORY_BARRIER";
        case 47:
            return "VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO";
        case 48:
            return "VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO";
        case 1000001000:
            return "VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR";
        case 1000001001:
            return "VK_STRUCTURE_TYPE_PRESENT_INFO_KHR";
        case 1000002000:
            return "VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR";
        case 1000002001:
            return "VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR";
        case 1000003000:
            return "VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR";
        case 1000004000:
            return "VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR";
        case 1000005000:
            return "VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR";
        case 1000006000:
            return "VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR";
        case 1000007000:
            return "VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR";
        case 1000008000:
            return "VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR";
        case 1000009000:
            return "VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR";

        #pragma GCC diagnostic push
        #pragma GCC diagnostic ignored "-Wswitch"
        case 1000010000:
            return "VK_STRUCTURE_TYPE_NATIVE_BUFFER_ANDROID";
        #pragma GCC diagnostic pop

        case 1000011000:
            return "VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT";
        case 1000018000:
            return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD";
        case 1000022000:
            return "VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT";
        case 1000022001:
            return "VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT";
        case 1000022002:
            return "VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT";
        case 1000026000:
            return "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV";
        case 1000026001:
            return "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV";
        case 1000026002:
            return "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV";
        case 1000041000:
            return "VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD";
        case 1000053000:
            return "VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHX";
        case 1000053001:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHX";
        case 1000053002:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHX";
        case 1000056000:
            return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV";
        case 1000056001:
            return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV";
        case 1000057000:
            return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV";
        case 1000057001:
            return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV";
        case 1000058000:
            return "VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV";
        case 1000059000:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR";
        case 1000059001:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR";
        case 1000059002:
            return "VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR";
        case 1000059003:
            return "VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR";
        case 1000059004:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR";
        case 1000059005:
            return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR";
        case 1000059006:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR";
        case 1000059007:
            return "VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR";
        case 1000059008:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR";
        case 1000060000:
            return "VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHX";
        case 1000060003:
            return "VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHX";
        case 1000060004:
            return "VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHX";
        case 1000060005:
            return "VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHX";
        case 1000060006:
            return "VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHX";
        case 1000060007:
            return "VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHX";
        case 1000060008:
            return "VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHX";
        case 1000060009:
            return "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHX";
        case 1000060010:
            return "VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHX";
        case 1000060011:
            return "VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHX";
        case 1000060012:
            return "VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHX";
        case 1000060013:
            return "VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHX";
        case 1000060014:
            return "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHX";
        case 1000061000:
            return "VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT";
        case 1000062000:
            return "VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN";
        case 1000070000:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHX";
        case 1000070001:
            return "VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHX";
        case 1000071000:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR";
        case 1000071001:
            return "VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR";
        case 1000071002:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR";
        case 1000071003:
            return "VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR";
        case 1000071004:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR";
        case 1000072000:
            return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR";
        case 1000072001:
            return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR";
        case 1000072002:
            return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR";
        case 1000073000:
            return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR";
        case 1000073001:
            return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR";
        case 1000073002:
            return "VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR";
        case 1000073003:
            return "VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR";
        case 1000074000:
            return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR";
        case 1000074001:
            return "VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR";
        case 1000074002:
            return "VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR";
        case 1000075000:
            return "VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR";
        case 1000076000:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR";
        case 1000076001:
            return "VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR";
        case 1000077000:
            return "VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR";
        case 1000078000:
            return "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR";
        case 1000078001:
            return "VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR";
        case 1000078002:
            return "VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR";
        case 1000078003:
            return "VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR";
        case 1000079000:
            return "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR";
        case 1000079001:
            return "VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR";
        case 1000080000:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR";
        case 1000083000:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR";
        case 1000084000:
            return "VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR";
        case 1000085000:
            return "VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR";
        case 1000086000:
            return "VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX";
        case 1000086001:
            return "VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX";
        case 1000086002:
            return "VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX";
        case 1000086003:
            return "VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX";
        case 1000086004:
            return "VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX";
        case 1000086005:
            return "VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX";
        case 1000087000:
            return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV";
        case 1000090000:
            return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT";
        case 1000091000:
            return "VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT";
        case 1000091001:
            return "VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT";
        case 1000091002:
            return "VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT";
        case 1000091003:
            return "VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT";
        case 1000092000:
            return "VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE";
        case 1000097000:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX";
        case 1000098000:
            return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV";
        case 1000099000:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT";
        case 1000099001:
            return "VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT";
        case 1000105000:
            return "VK_STRUCTURE_TYPE_HDR_METADATA_EXT";
        case 1000111000:
            return "VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR";
        case 1000112000:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR";
        case 1000112001:
            return "VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR";
        case 1000113000:
            return "VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR";
        case 1000114000:
            return "VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR";
        case 1000114001:
            return "VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR";
        case 1000114002:
            return "VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR";
        case 1000115000:
            return "VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR";
        case 1000115001:
            return "VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR";
        case 1000117000:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR";
        case 1000117001:
            return "VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR";
        case 1000117002:
            return "VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR";
        case 1000117003:
            return "VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR";
        case 1000119000:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR";
        case 1000119001:
            return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR";
        case 1000119002:
            return "VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR";
        case 1000120000:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR";
        case 1000122000:
            return "VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK";
        case 1000123000:
            return "VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK";
        case 1000127000:
            return "VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR";
        case 1000127001:
            return "VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR";
        case 1000130000:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT";
        case 1000130001:
            return "VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT";
        case 1000143000:
            return "VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT";
        case 1000143001:
            return "VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT";
        case 1000143002:
            return "VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT";
        case 1000143003:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT";
        case 1000143004:
            return "VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT";
        case 1000146000:
            return "VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR";
        case 1000146001:
            return "VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR";
        case 1000146002:
            return "VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR";
        case 1000146003:
            return "VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR";
        case 1000146004:
            return "VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR";
        case 1000147000:
            return "VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR";
        case 1000148000:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT";
        case 1000148001:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT";
        case 1000148002:
            return "VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT";
        case 1000149000:
            return "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV";
        case 1000152000:
            return "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV";
        case 1000156000:
            return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR";
        case 1000156001:
            return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR";
        case 1000156002:
            return "VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR";
        case 1000156003:
            return "VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR";
        case 1000156004:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR";
        case 1000156005:
            return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR";
        case 1000157000:
            return "VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR";
        case 1000157001:
            return "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR";
        case 1000160000:
            return "VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT";
        case 1000160001:
            return "VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT";
        case 1000174000:
            return "VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT";
        case 1000178000:
            return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT";
        case 1000178001:
            return "VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT";
        case 1000178002:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_SubpassContents_to_str(VkSubpassContents input)
{
    switch(input) {
        case 0:
            return "VK_SUBPASS_CONTENTS_INLINE";
        case 1:
            return "VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_SystemAllocationScope_to_str(VkSystemAllocationScope input)
{
    switch(input) {
        case 0:
            return "VK_SYSTEM_ALLOCATION_SCOPE_COMMAND";
        case 1:
            return "VK_SYSTEM_ALLOCATION_SCOPE_OBJECT";
        case 2:
            return "VK_SYSTEM_ALLOCATION_SCOPE_CACHE";
        case 3:
            return "VK_SYSTEM_ALLOCATION_SCOPE_DEVICE";
        case 4:
            return "VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_TessellationDomainOriginKHR_to_str(VkTessellationDomainOriginKHR input)
{
    switch(input) {
        case 0:
            return "VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR";
        case 1:
            return "VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_ValidationCacheHeaderVersionEXT_to_str(VkValidationCacheHeaderVersionEXT input)
{
    switch(input) {
        case 1:
            return "VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_ValidationCheckEXT_to_str(VkValidationCheckEXT input)
{
    switch(input) {
        case 0:
            return "VK_VALIDATION_CHECK_ALL_EXT";
        case 1:
            return "VK_VALIDATION_CHECK_SHADERS_EXT";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_VertexInputRate_to_str(VkVertexInputRate input)
{
    switch(input) {
        case 0:
            return "VK_VERTEX_INPUT_RATE_VERTEX";
        case 1:
            return "VK_VERTEX_INPUT_RATE_INSTANCE";
    default:
        unreachable("Undefined enum value.");
    }
}

const char *
vk_ViewportCoordinateSwizzleNV_to_str(VkViewportCoordinateSwizzleNV input)
{
    switch(input) {
        case 0:
            return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV";
        case 1:
            return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV";
        case 2:
            return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV";
        case 3:
            return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV";
        case 4:
            return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV";
        case 5:
            return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV";
        case 6:
            return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV";
        case 7:
            return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV";
    default:
        unreachable("Undefined enum value.");
    }
}