// *** THIS FILE IS GENERATED - DO NOT EDIT ***
// See enum_string_helper_generator.py for modifications
// Copyright 2023-2025 The Khronos Group Inc.
// Copyright 2023-2025 Valve Corporation
// Copyright 2023-2025 LunarG, Inc.
//
// SPDX-License-Identifier: Apache-2.0

#pragma once

// clang-format off

#ifdef __cplusplus
#include <string>
#endif
#include <vulkan/vulkan.h>
static inline const char* string_VkResult(VkResult input_value) {
    switch (input_value) {
        case VK_SUCCESS:
            return "VK_SUCCESS";
        case VK_NOT_READY:
            return "VK_NOT_READY";
        case VK_TIMEOUT:
            return "VK_TIMEOUT";
        case VK_EVENT_SET:
            return "VK_EVENT_SET";
        case VK_EVENT_RESET:
            return "VK_EVENT_RESET";
        case VK_INCOMPLETE:
            return "VK_INCOMPLETE";
        case VK_ERROR_OUT_OF_HOST_MEMORY:
            return "VK_ERROR_OUT_OF_HOST_MEMORY";
        case VK_ERROR_OUT_OF_DEVICE_MEMORY:
            return "VK_ERROR_OUT_OF_DEVICE_MEMORY";
        case VK_ERROR_INITIALIZATION_FAILED:
            return "VK_ERROR_INITIALIZATION_FAILED";
        case VK_ERROR_DEVICE_LOST:
            return "VK_ERROR_DEVICE_LOST";
        case VK_ERROR_MEMORY_MAP_FAILED:
            return "VK_ERROR_MEMORY_MAP_FAILED";
        case VK_ERROR_LAYER_NOT_PRESENT:
            return "VK_ERROR_LAYER_NOT_PRESENT";
        case VK_ERROR_EXTENSION_NOT_PRESENT:
            return "VK_ERROR_EXTENSION_NOT_PRESENT";
        case VK_ERROR_FEATURE_NOT_PRESENT:
            return "VK_ERROR_FEATURE_NOT_PRESENT";
        case VK_ERROR_INCOMPATIBLE_DRIVER:
            return "VK_ERROR_INCOMPATIBLE_DRIVER";
        case VK_ERROR_TOO_MANY_OBJECTS:
            return "VK_ERROR_TOO_MANY_OBJECTS";
        case VK_ERROR_FORMAT_NOT_SUPPORTED:
            return "VK_ERROR_FORMAT_NOT_SUPPORTED";
        case VK_ERROR_FRAGMENTED_POOL:
            return "VK_ERROR_FRAGMENTED_POOL";
        case VK_ERROR_UNKNOWN:
            return "VK_ERROR_UNKNOWN";
        case VK_ERROR_VALIDATION_FAILED:
            return "VK_ERROR_VALIDATION_FAILED";
        case VK_ERROR_OUT_OF_POOL_MEMORY:
            return "VK_ERROR_OUT_OF_POOL_MEMORY";
        case VK_ERROR_INVALID_EXTERNAL_HANDLE:
            return "VK_ERROR_INVALID_EXTERNAL_HANDLE";
        case VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS:
            return "VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS";
        case VK_ERROR_FRAGMENTATION:
            return "VK_ERROR_FRAGMENTATION";
        case VK_PIPELINE_COMPILE_REQUIRED:
            return "VK_PIPELINE_COMPILE_REQUIRED";
        case VK_ERROR_NOT_PERMITTED:
            return "VK_ERROR_NOT_PERMITTED";
        case VK_ERROR_SURFACE_LOST_KHR:
            return "VK_ERROR_SURFACE_LOST_KHR";
        case VK_ERROR_NATIVE_WINDOW_IN_USE_KHR:
            return "VK_ERROR_NATIVE_WINDOW_IN_USE_KHR";
        case VK_SUBOPTIMAL_KHR:
            return "VK_SUBOPTIMAL_KHR";
        case VK_ERROR_OUT_OF_DATE_KHR:
            return "VK_ERROR_OUT_OF_DATE_KHR";
        case VK_ERROR_INCOMPATIBLE_DISPLAY_KHR:
            return "VK_ERROR_INCOMPATIBLE_DISPLAY_KHR";
        case VK_ERROR_INVALID_SHADER_NV:
            return "VK_ERROR_INVALID_SHADER_NV";
        case VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR:
            return "VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR";
        case VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR:
            return "VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR";
        case VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR:
            return "VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR";
        case VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR:
            return "VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR";
        case VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR:
            return "VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR";
        case VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR:
            return "VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR";
        case VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT:
            return "VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT";
        case VK_ERROR_PRESENT_TIMING_QUEUE_FULL_EXT:
            return "VK_ERROR_PRESENT_TIMING_QUEUE_FULL_EXT";
        case VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT:
            return "VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT";
        case VK_THREAD_IDLE_KHR:
            return "VK_THREAD_IDLE_KHR";
        case VK_THREAD_DONE_KHR:
            return "VK_THREAD_DONE_KHR";
        case VK_OPERATION_DEFERRED_KHR:
            return "VK_OPERATION_DEFERRED_KHR";
        case VK_OPERATION_NOT_DEFERRED_KHR:
            return "VK_OPERATION_NOT_DEFERRED_KHR";
        case VK_ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR:
            return "VK_ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR";
        case VK_ERROR_COMPRESSION_EXHAUSTED_EXT:
            return "VK_ERROR_COMPRESSION_EXHAUSTED_EXT";
        case VK_INCOMPATIBLE_SHADER_BINARY_EXT:
            return "VK_INCOMPATIBLE_SHADER_BINARY_EXT";
        case VK_PIPELINE_BINARY_MISSING_KHR:
            return "VK_PIPELINE_BINARY_MISSING_KHR";
        case VK_ERROR_NOT_ENOUGH_SPACE_KHR:
            return "VK_ERROR_NOT_ENOUGH_SPACE_KHR";
        default:
            return "Unhandled VkResult";
    }
}
static inline const char* string_VkStructureType(VkStructureType input_value) {
    switch (input_value) {
        case VK_STRUCTURE_TYPE_APPLICATION_INFO:
            return "VK_STRUCTURE_TYPE_APPLICATION_INFO";
        case VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO";
        case VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO";
        case VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO";
        case VK_STRUCTURE_TYPE_SUBMIT_INFO:
            return "VK_STRUCTURE_TYPE_SUBMIT_INFO";
        case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO:
            return "VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO";
        case VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE:
            return "VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE";
        case VK_STRUCTURE_TYPE_BIND_SPARSE_INFO:
            return "VK_STRUCTURE_TYPE_BIND_SPARSE_INFO";
        case VK_STRUCTURE_TYPE_FENCE_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_FENCE_CREATE_INFO";
        case VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO";
        case VK_STRUCTURE_TYPE_EVENT_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_EVENT_CREATE_INFO";
        case VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO";
        case VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO";
        case VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO";
        case VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO";
        case VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO";
        case VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO";
        case VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO";
        case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO";
        case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO";
        case VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO";
        case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO";
        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO";
        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO";
        case VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO";
        case VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO";
        case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO";
        case VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO";
        case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO";
        case VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO";
        case VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO";
        case VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO";
        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO";
        case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO";
        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO:
            return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO";
        case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET:
            return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET";
        case VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET:
            return "VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET";
        case VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO";
        case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO";
        case VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO";
        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO:
            return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO";
        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO:
            return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO";
        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO:
            return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO";
        case VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO:
            return "VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO";
        case VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER:
            return "VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER";
        case VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER:
            return "VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER";
        case VK_STRUCTURE_TYPE_MEMORY_BARRIER:
            return "VK_STRUCTURE_TYPE_MEMORY_BARRIER";
        case VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO";
        case VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO";
        case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO:
            return "VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO";
        case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO:
            return "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO";
        case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS:
            return "VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS";
        case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO:
            return "VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO";
        case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO:
            return "VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO";
        case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO:
            return "VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO";
        case VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO:
            return "VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO";
        case VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO:
            return "VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO";
        case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO:
            return "VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO";
        case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO:
            return "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES";
        case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO";
        case VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2:
            return "VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2";
        case VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2:
            return "VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2";
        case VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2:
            return "VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2";
        case VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2:
            return "VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2";
        case VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2:
            return "VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2";
        case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2:
            return "VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2";
        case VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2:
            return "VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2";
        case VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2:
            return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2";
        case VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2:
            return "VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2";
        case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO";
        case VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO:
            return "VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES";
        case VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2:
            return "VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO";
        case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES:
            return "VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO";
        case VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES:
            return "VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES";
        case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO";
        case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO";
        case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO:
            return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO";
        case VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES:
            return "VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES";
        case VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO";
        case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO";
        case VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES:
            return "VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES";
        case VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES";
        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT:
            return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT";
        case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO";
        case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO:
            return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO";
        case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO:
            return "VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO";
        case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO:
            return "VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES";
        case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES:
            return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES";
        case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO:
            return "VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES";
        case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO";
        case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO";
        case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES";
        case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES";
        case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO";
        case VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO:
            return "VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO";
        case VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO:
            return "VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO";
        case VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO:
            return "VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES";
        case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO:
            return "VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO";
        case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO";
        case VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO:
            return "VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO";
        case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO:
            return "VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES";
        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES";
        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO:
            return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO";
        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT:
            return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES";
        case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES";
        case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2:
            return "VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2";
        case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2:
            return "VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2";
        case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2:
            return "VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2";
        case VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2:
            return "VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2";
        case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2:
            return "VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2";
        case VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO:
            return "VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO";
        case VK_STRUCTURE_TYPE_SUBPASS_END_INFO:
            return "VK_STRUCTURE_TYPE_SUBPASS_END_INFO";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES";
        case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE:
            return "VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE";
        case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES";
        case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO";
        case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO:
            return "VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO";
        case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO:
            return "VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES";
        case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT:
            return "VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT";
        case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT:
            return "VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES";
        case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO";
        case VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO";
        case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2:
            return "VK_STRUCTURE_TYPE_MEMORY_BARRIER_2";
        case VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2:
            return "VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2";
        case VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2:
            return "VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2";
        case VK_STRUCTURE_TYPE_DEPENDENCY_INFO:
            return "VK_STRUCTURE_TYPE_DEPENDENCY_INFO";
        case VK_STRUCTURE_TYPE_SUBMIT_INFO_2:
            return "VK_STRUCTURE_TYPE_SUBMIT_INFO_2";
        case VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO:
            return "VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO";
        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO:
            return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES";
        case VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2:
            return "VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2";
        case VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2:
            return "VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2";
        case VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2:
            return "VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2";
        case VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2:
            return "VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2";
        case VK_STRUCTURE_TYPE_BUFFER_COPY_2:
            return "VK_STRUCTURE_TYPE_BUFFER_COPY_2";
        case VK_STRUCTURE_TYPE_IMAGE_COPY_2:
            return "VK_STRUCTURE_TYPE_IMAGE_COPY_2";
        case VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2:
            return "VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES";
        case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3:
            return "VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES";
        case VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS:
            return "VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS";
        case VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS:
            return "VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS";
        case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES";
        case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES";
        case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK:
            return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK";
        case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES";
        case VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2:
            return "VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2";
        case VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2:
            return "VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2";
        case VK_STRUCTURE_TYPE_IMAGE_BLIT_2:
            return "VK_STRUCTURE_TYPE_IMAGE_BLIT_2";
        case VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2:
            return "VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2";
        case VK_STRUCTURE_TYPE_RENDERING_INFO:
            return "VK_STRUCTURE_TYPE_RENDERING_INFO";
        case VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO:
            return "VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO";
        case VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES";
        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO:
            return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_4_FEATURES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_4_FEATURES";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_4_PROPERTIES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_4_PROPERTIES";
        case VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES";
        case VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES:
            return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES";
        case VK_STRUCTURE_TYPE_MEMORY_MAP_INFO:
            return "VK_STRUCTURE_TYPE_MEMORY_MAP_INFO";
        case VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO:
            return "VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES";
        case VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO:
            return "VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO";
        case VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2:
            return "VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2";
        case VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2:
            return "VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2";
        case VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES";
        case VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS:
            return "VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES";
        case VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY:
            return "VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY";
        case VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY:
            return "VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY";
        case VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO:
            return "VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO";
        case VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO:
            return "VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO";
        case VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO:
            return "VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO";
        case VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO:
            return "VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO";
        case VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE:
            return "VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE";
        case VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY:
            return "VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES";
        case VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES";
        case VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO:
            return "VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO";
        case VK_STRUCTURE_TYPE_PUSH_CONSTANTS_INFO:
            return "VK_STRUCTURE_TYPE_PUSH_CONSTANTS_INFO";
        case VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO:
            return "VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO";
        case VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO:
            return "VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES";
        case VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES";
        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES";
        case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO:
            return "VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES";
        case VK_STRUCTURE_TYPE_RENDERING_AREA_INFO:
            return "VK_STRUCTURE_TYPE_RENDERING_AREA_INFO";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES";
        case VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO:
            return "VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO";
        case VK_STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO:
            return "VK_STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO";
        case VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR";
        case VK_STRUCTURE_TYPE_PRESENT_INFO_KHR:
            return "VK_STRUCTURE_TYPE_PRESENT_INFO_KHR";
        case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR:
            return "VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR";
        case VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR";
        case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR:
            return "VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR";
        case VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR";
        case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR:
            return "VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR";
        case VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR";
        case VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR";
        case VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR";
        case VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR:
            return "VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR";
        case VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR";
        case VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR";
        case VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR";
        case VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR";
        case VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR";
        case VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT";
        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD:
            return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD";
        case VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT:
            return "VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT";
        case VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT:
            return "VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT";
        case VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT:
            return "VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT";
        case VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR";
        case VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR:
            return "VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR";
        case VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR:
            return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR";
        case VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR:
            return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR";
        case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV:
            return "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV";
        case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV:
            return "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV";
        case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV:
            return "VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT";
        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT";
        case VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX:
            return "VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX";
        case VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX:
            return "VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX";
        case VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX:
            return "VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX";
        case VK_STRUCTURE_TYPE_CU_MODULE_TEXTURING_MODE_CREATE_INFO_NVX:
            return "VK_STRUCTURE_TYPE_CU_MODULE_TEXTURING_MODE_CREATE_INFO_NVX";
        case VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX:
            return "VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX";
        case VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX:
            return "VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PICTURE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PICTURE_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_GOP_REMAINING_FRAME_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_GOP_REMAINING_FRAME_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUALITY_LEVEL_PROPERTIES_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUALITY_LEVEL_PROPERTIES_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_GET_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_GET_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_FEEDBACK_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_FEEDBACK_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PICTURE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PICTURE_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_GOP_REMAINING_FRAME_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_GOP_REMAINING_FRAME_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUALITY_LEVEL_PROPERTIES_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUALITY_LEVEL_PROPERTIES_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_GET_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_GET_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_FEEDBACK_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_FEEDBACK_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR";
        case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD:
            return "VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD";
        case VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP:
            return "VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV";
        case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV:
            return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV";
        case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV:
            return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV";
        case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV:
            return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV";
        case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV:
            return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV";
        case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV:
            return "VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV";
        case VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT:
            return "VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT";
        case VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN:
            return "VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN";
        case VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT:
            return "VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR";
        case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR";
        case VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR:
            return "VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR";
        case VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR";
        case VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR:
            return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR";
        case VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR:
            return "VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR";
        case VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR:
            return "VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR";
        case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR";
        case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR";
        case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR";
        case VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR:
            return "VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR";
        case VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR";
        case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR:
            return "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR";
        case VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR:
            return "VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR";
        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT:
            return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT:
            return "VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT";
        case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR:
            return "VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR";
        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV:
            return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV";
        case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT:
            return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT";
        case VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT:
            return "VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT";
        case VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT:
            return "VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT";
        case VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT:
            return "VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT";
        case VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT";
        case VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE:
            return "VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX";
        case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX:
            return "VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX";
        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV:
            return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT";
        case VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT";
        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT";
        case VK_STRUCTURE_TYPE_HDR_METADATA_EXT:
            return "VK_STRUCTURE_TYPE_HDR_METADATA_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG";
        case VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR:
            return "VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR";
        case VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR";
        case VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR";
        case VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR";
        case VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR:
            return "VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR";
        case VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR:
            return "VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR";
        case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR";
        case VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR:
            return "VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR";
        case VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR:
            return "VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR";
        case VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR:
            return "VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR";
        case VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR:
            return "VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR";
        case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR:
            return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR";
        case VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR:
            return "VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR";
        case VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR:
            return "VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR";
        case VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR:
            return "VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR";
        case VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR:
            return "VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR";
        case VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR:
            return "VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR";
        case VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR:
            return "VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR";
        case VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK:
            return "VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK";
        case VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK:
            return "VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK";
        case VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT:
            return "VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT";
        case VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT:
            return "VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT";
        case VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT:
            return "VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT";
        case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT:
            return "VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT";
        case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT";
        case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID:
            return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID";
        case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID:
            return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID";
        case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID:
            return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID";
        case VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID:
            return "VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID";
        case VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID:
            return "VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID";
        case VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID:
            return "VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID";
        case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID:
            return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID";
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX";
        case VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX:
            return "VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX";
        case VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX:
            return "VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX";
        case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX:
            return "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX";
#endif  // VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_TEXEL_BUFFER_DESCRIPTOR_INFO_EXT:
            return "VK_STRUCTURE_TYPE_TEXEL_BUFFER_DESCRIPTOR_INFO_EXT";
        case VK_STRUCTURE_TYPE_IMAGE_DESCRIPTOR_INFO_EXT:
            return "VK_STRUCTURE_TYPE_IMAGE_DESCRIPTOR_INFO_EXT";
        case VK_STRUCTURE_TYPE_RESOURCE_DESCRIPTOR_INFO_EXT:
            return "VK_STRUCTURE_TYPE_RESOURCE_DESCRIPTOR_INFO_EXT";
        case VK_STRUCTURE_TYPE_BIND_HEAP_INFO_EXT:
            return "VK_STRUCTURE_TYPE_BIND_HEAP_INFO_EXT";
        case VK_STRUCTURE_TYPE_PUSH_DATA_INFO_EXT:
            return "VK_STRUCTURE_TYPE_PUSH_DATA_INFO_EXT";
        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_AND_BINDING_MAPPING_EXT:
            return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_AND_BINDING_MAPPING_EXT";
        case VK_STRUCTURE_TYPE_SHADER_DESCRIPTOR_SET_AND_BINDING_MAPPING_INFO_EXT:
            return "VK_STRUCTURE_TYPE_SHADER_DESCRIPTOR_SET_AND_BINDING_MAPPING_INFO_EXT";
        case VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DATA_CREATE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DATA_CREATE_INFO_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_HEAP_PROPERTIES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_HEAP_PROPERTIES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_HEAP_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_HEAP_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_DESCRIPTOR_HEAP_INFO_EXT:
            return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_DESCRIPTOR_HEAP_INFO_EXT";
        case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_INDEX_CREATE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_INDEX_CREATE_INFO_EXT";
        case VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_PUSH_DATA_TOKEN_NV:
            return "VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_PUSH_DATA_TOKEN_NV";
        case VK_STRUCTURE_TYPE_SUBSAMPLED_IMAGE_FORMAT_PROPERTIES_EXT:
            return "VK_STRUCTURE_TYPE_SUBSAMPLED_IMAGE_FORMAT_PROPERTIES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_HEAP_TENSOR_PROPERTIES_ARM:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_HEAP_TENSOR_PROPERTIES_ARM";
        case VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD:
            return "VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_BFLOAT16_FEATURES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_BFLOAT16_FEATURES_KHR";
        case VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT:
            return "VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT";
        case VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT:
            return "VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT";
        case VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT";
        case VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT:
            return "VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT";
        case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT";
        case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV:
            return "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV";
        case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR:
            return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR";
        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR:
            return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR";
        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR:
            return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR";
        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR:
            return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR";
        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR:
            return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR";
        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR:
            return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR";
        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR:
            return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR";
        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR:
            return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR";
        case VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR";
        case VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR:
            return "VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR";
        case VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR";
        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR";
        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR:
            return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR";
        case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR";
        case VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR";
        case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR";
        case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV:
            return "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV";
        case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT:
            return "VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT";
        case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT";
        case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT";
        case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT:
            return "VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT";
        case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT:
            return "VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT";
        case VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT";
        case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT";
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR";
#endif  // VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV:
            return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV";
        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV:
            return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV";
        case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV:
            return "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV";
        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV:
            return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV";
        case VK_STRUCTURE_TYPE_GEOMETRY_NV:
            return "VK_STRUCTURE_TYPE_GEOMETRY_NV";
        case VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV:
            return "VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV";
        case VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV:
            return "VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV";
        case VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV:
            return "VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV";
        case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV:
            return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV";
        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV:
            return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV";
        case VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV:
            return "VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV";
        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV:
            return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV";
        case VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV:
            return "VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT";
        case VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT:
            return "VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT";
        case VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT:
            return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT";
        case VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT:
            return "VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR";
        case VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD:
            return "VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD";
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR";
        case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD:
            return "VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT";
        case VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP:
            return "VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV";
        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV:
            return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV";
        case VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV:
            return "VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV";
        case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV:
            return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV";
        case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV:
            return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV";
        case VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV:
            return "VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_TIMING_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_TIMING_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_SWAPCHAIN_TIMING_PROPERTIES_EXT:
            return "VK_STRUCTURE_TYPE_SWAPCHAIN_TIMING_PROPERTIES_EXT";
        case VK_STRUCTURE_TYPE_SWAPCHAIN_TIME_DOMAIN_PROPERTIES_EXT:
            return "VK_STRUCTURE_TYPE_SWAPCHAIN_TIME_DOMAIN_PROPERTIES_EXT";
        case VK_STRUCTURE_TYPE_PRESENT_TIMINGS_INFO_EXT:
            return "VK_STRUCTURE_TYPE_PRESENT_TIMINGS_INFO_EXT";
        case VK_STRUCTURE_TYPE_PRESENT_TIMING_INFO_EXT:
            return "VK_STRUCTURE_TYPE_PRESENT_TIMING_INFO_EXT";
        case VK_STRUCTURE_TYPE_PAST_PRESENTATION_TIMING_INFO_EXT:
            return "VK_STRUCTURE_TYPE_PAST_PRESENTATION_TIMING_INFO_EXT";
        case VK_STRUCTURE_TYPE_PAST_PRESENTATION_TIMING_PROPERTIES_EXT:
            return "VK_STRUCTURE_TYPE_PAST_PRESENTATION_TIMING_PROPERTIES_EXT";
        case VK_STRUCTURE_TYPE_PAST_PRESENTATION_TIMING_EXT:
            return "VK_STRUCTURE_TYPE_PAST_PRESENTATION_TIMING_EXT";
        case VK_STRUCTURE_TYPE_PRESENT_TIMING_SURFACE_CAPABILITIES_EXT:
            return "VK_STRUCTURE_TYPE_PRESENT_TIMING_SURFACE_CAPABILITIES_EXT";
        case VK_STRUCTURE_TYPE_SWAPCHAIN_CALIBRATED_TIMESTAMP_INFO_EXT:
            return "VK_STRUCTURE_TYPE_SWAPCHAIN_CALIBRATED_TIMESTAMP_INFO_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL";
        case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL:
            return "VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL";
        case VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL:
            return "VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL";
        case VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL:
            return "VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL";
        case VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL:
            return "VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL";
        case VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL:
            return "VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL";
        case VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL:
            return "VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT";
        case VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD:
            return "VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD";
        case VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD:
            return "VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD";
        case VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA:
            return "VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA";
        case VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT";
        case VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT";
        case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT:
            return "VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT";
        case VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR:
            return "VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR";
        case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR";
        case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR:
            return "VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT";
        case VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR:
            return "VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT";
        case VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV";
        case VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV:
            return "VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV";
        case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV:
            return "VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV";
        case VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV:
            return "VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT";
        case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT";
        case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT:
            return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT";
        case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT:
            return "VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT";
        case VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR";
        case VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR";
        case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR:
            return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR";
        case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR";
        case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR:
            return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR";
        case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR:
            return "VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT";
        case VK_STRUCTURE_TYPE_MEMORY_MAP_PLACED_INFO_EXT:
            return "VK_STRUCTURE_TYPE_MEMORY_MAP_PLACED_INFO_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV";
        case VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV:
            return "VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV";
        case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV:
            return "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV";
        case VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV:
            return "VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV";
        case VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV:
            return "VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV";
        case VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV:
            return "VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV";
        case VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV:
            return "VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV";
        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV:
            return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM:
            return "VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM";
        case VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM:
            return "VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT:
            return "VK_STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT";
        case VK_STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT:
            return "VK_STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT";
        case VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT:
            return "VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT";
        case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_3D_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_3D_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV";
        case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV:
            return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV";
        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV:
            return "VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV";
        case VK_STRUCTURE_TYPE_PRESENT_ID_KHR:
            return "VK_STRUCTURE_TYPE_PRESENT_ID_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR";
        case VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV";
        case VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV:
            return "VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV";
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_CUDA_MODULE_CREATE_INFO_NV:
            return "VK_STRUCTURE_TYPE_CUDA_MODULE_CREATE_INFO_NV";
        case VK_STRUCTURE_TYPE_CUDA_FUNCTION_CREATE_INFO_NV:
            return "VK_STRUCTURE_TYPE_CUDA_FUNCTION_CREATE_INFO_NV";
        case VK_STRUCTURE_TYPE_CUDA_LAUNCH_INFO_NV:
            return "VK_STRUCTURE_TYPE_CUDA_LAUNCH_INFO_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV";
#endif  // VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_SHADING_FEATURES_QCOM:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_SHADING_FEATURES_QCOM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_SHADING_PROPERTIES_QCOM:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_SHADING_PROPERTIES_QCOM";
        case VK_STRUCTURE_TYPE_RENDER_PASS_TILE_SHADING_CREATE_INFO_QCOM:
            return "VK_STRUCTURE_TYPE_RENDER_PASS_TILE_SHADING_CREATE_INFO_QCOM";
        case VK_STRUCTURE_TYPE_PER_TILE_BEGIN_INFO_QCOM:
            return "VK_STRUCTURE_TYPE_PER_TILE_BEGIN_INFO_QCOM";
        case VK_STRUCTURE_TYPE_PER_TILE_END_INFO_QCOM:
            return "VK_STRUCTURE_TYPE_PER_TILE_END_INFO_QCOM";
        case VK_STRUCTURE_TYPE_DISPATCH_TILE_INFO_QCOM:
            return "VK_STRUCTURE_TYPE_DISPATCH_TILE_INFO_QCOM";
        case VK_STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV:
            return "VK_STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV";
        case VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT";
        case VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT:
            return "VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT";
        case VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT";
        case VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT";
        case VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT:
            return "VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT";
        case VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT:
            return "VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT";
        case VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT";
        case VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT";
        case VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT";
        case VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT";
        case VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT:
            return "VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT";
        case VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT:
            return "VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT:
            return "VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT";
        case VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT:
            return "VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT";
        case VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT:
            return "VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT";
        case VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT:
            return "VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT";
        case VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT:
            return "VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT";
        case VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT:
            return "VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT";
        case VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT";
        case VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT:
            return "VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT";
        case VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT:
            return "VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT";
        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT:
            return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT";
        case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV";
        case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV:
            return "VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV";
        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV:
            return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV";
        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV:
            return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT";
        case VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM:
            return "VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT:
            return "VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT";
        case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT:
            return "VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT:
            return "VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT";
        case VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT:
            return "VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT:
            return "VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT";
        case VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT:
            return "VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT:
            return "VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA:
            return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA";
        case VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA:
            return "VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA";
        case VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA:
            return "VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA";
        case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA:
            return "VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA";
        case VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA:
            return "VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA";
        case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA:
            return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA";
        case VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA:
            return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA";
        case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA:
            return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA";
        case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA:
            return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA";
        case VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA:
            return "VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA";
        case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA:
            return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA";
        case VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA:
            return "VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA";
        case VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA:
            return "VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA";
        case VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA:
            return "VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA";
        case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA:
            return "VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA";
        case VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI:
            return "VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI";
        case VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV:
            return "VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV";
        case VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT:
            return "VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT:
            return "VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT:
            return "VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT";
        case VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT:
            return "VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX:
            return "VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_UNTYPED_POINTERS_FEATURES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_UNTYPED_POINTERS_FEATURES_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_RGB_CONVERSION_FEATURES_VALVE:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_RGB_CONVERSION_FEATURES_VALVE";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RGB_CONVERSION_CAPABILITIES_VALVE:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_RGB_CONVERSION_CAPABILITIES_VALVE";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_PROFILE_RGB_CONVERSION_INFO_VALVE:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_PROFILE_RGB_CONVERSION_INFO_VALVE";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_RGB_CONVERSION_CREATE_INFO_VALVE:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_RGB_CONVERSION_CREATE_INFO_VALVE";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT";
        case VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT:
            return "VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT";
        case VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT:
            return "VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT";
        case VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT:
            return "VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT";
        case VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT:
            return "VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT";
        case VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT:
            return "VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT";
        case VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT";
        case VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT:
            return "VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT";
        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT:
            return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT";
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV";
        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV:
            return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV";
#endif  // VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM";
        case VK_STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM:
            return "VK_STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE";
        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE:
            return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE";
        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE:
            return "VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM";
        case VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM:
            return "VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM";
        case VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM:
            return "VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM";
        case VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM:
            return "VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV";
        case VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV:
            return "VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV";
        case VK_STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV:
            return "VK_STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_LINEAR_SWEPT_SPHERES_FEATURES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_LINEAR_SWEPT_SPHERES_FEATURES_NV";
        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_LINEAR_SWEPT_SPHERES_DATA_NV:
            return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_LINEAR_SWEPT_SPHERES_DATA_NV";
        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_SPHERES_DATA_NV:
            return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_SPHERES_DATA_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM";
        case VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM:
            return "VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT";
        case VK_STRUCTURE_TYPE_NATIVE_BUFFER_USAGE_OHOS:
            return "VK_STRUCTURE_TYPE_NATIVE_BUFFER_USAGE_OHOS";
        case VK_STRUCTURE_TYPE_NATIVE_BUFFER_PROPERTIES_OHOS:
            return "VK_STRUCTURE_TYPE_NATIVE_BUFFER_PROPERTIES_OHOS";
        case VK_STRUCTURE_TYPE_NATIVE_BUFFER_FORMAT_PROPERTIES_OHOS:
            return "VK_STRUCTURE_TYPE_NATIVE_BUFFER_FORMAT_PROPERTIES_OHOS";
        case VK_STRUCTURE_TYPE_IMPORT_NATIVE_BUFFER_INFO_OHOS:
            return "VK_STRUCTURE_TYPE_IMPORT_NATIVE_BUFFER_INFO_OHOS";
        case VK_STRUCTURE_TYPE_MEMORY_GET_NATIVE_BUFFER_INFO_OHOS:
            return "VK_STRUCTURE_TYPE_MEMORY_GET_NATIVE_BUFFER_INFO_OHOS";
        case VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_OHOS:
            return "VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_OHOS";
        case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT:
            return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT:
            return "VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT";
        case VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT";
        case VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT";
        case VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG:
            return "VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG";
        case VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG:
            return "VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG";
        case VK_STRUCTURE_TYPE_TENSOR_CREATE_INFO_ARM:
            return "VK_STRUCTURE_TYPE_TENSOR_CREATE_INFO_ARM";
        case VK_STRUCTURE_TYPE_TENSOR_VIEW_CREATE_INFO_ARM:
            return "VK_STRUCTURE_TYPE_TENSOR_VIEW_CREATE_INFO_ARM";
        case VK_STRUCTURE_TYPE_BIND_TENSOR_MEMORY_INFO_ARM:
            return "VK_STRUCTURE_TYPE_BIND_TENSOR_MEMORY_INFO_ARM";
        case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_TENSOR_ARM:
            return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_TENSOR_ARM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TENSOR_PROPERTIES_ARM:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TENSOR_PROPERTIES_ARM";
        case VK_STRUCTURE_TYPE_TENSOR_FORMAT_PROPERTIES_ARM:
            return "VK_STRUCTURE_TYPE_TENSOR_FORMAT_PROPERTIES_ARM";
        case VK_STRUCTURE_TYPE_TENSOR_DESCRIPTION_ARM:
            return "VK_STRUCTURE_TYPE_TENSOR_DESCRIPTION_ARM";
        case VK_STRUCTURE_TYPE_TENSOR_MEMORY_REQUIREMENTS_INFO_ARM:
            return "VK_STRUCTURE_TYPE_TENSOR_MEMORY_REQUIREMENTS_INFO_ARM";
        case VK_STRUCTURE_TYPE_TENSOR_MEMORY_BARRIER_ARM:
            return "VK_STRUCTURE_TYPE_TENSOR_MEMORY_BARRIER_ARM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TENSOR_FEATURES_ARM:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TENSOR_FEATURES_ARM";
        case VK_STRUCTURE_TYPE_DEVICE_TENSOR_MEMORY_REQUIREMENTS_ARM:
            return "VK_STRUCTURE_TYPE_DEVICE_TENSOR_MEMORY_REQUIREMENTS_ARM";
        case VK_STRUCTURE_TYPE_COPY_TENSOR_INFO_ARM:
            return "VK_STRUCTURE_TYPE_COPY_TENSOR_INFO_ARM";
        case VK_STRUCTURE_TYPE_TENSOR_COPY_ARM:
            return "VK_STRUCTURE_TYPE_TENSOR_COPY_ARM";
        case VK_STRUCTURE_TYPE_TENSOR_DEPENDENCY_INFO_ARM:
            return "VK_STRUCTURE_TYPE_TENSOR_DEPENDENCY_INFO_ARM";
        case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_TENSOR_ARM:
            return "VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_TENSOR_ARM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_TENSOR_INFO_ARM:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_TENSOR_INFO_ARM";
        case VK_STRUCTURE_TYPE_EXTERNAL_TENSOR_PROPERTIES_ARM:
            return "VK_STRUCTURE_TYPE_EXTERNAL_TENSOR_PROPERTIES_ARM";
        case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_TENSOR_CREATE_INFO_ARM:
            return "VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_TENSOR_CREATE_INFO_ARM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_TENSOR_FEATURES_ARM:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_TENSOR_FEATURES_ARM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_TENSOR_PROPERTIES_ARM:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_TENSOR_PROPERTIES_ARM";
        case VK_STRUCTURE_TYPE_DESCRIPTOR_GET_TENSOR_INFO_ARM:
            return "VK_STRUCTURE_TYPE_DESCRIPTOR_GET_TENSOR_INFO_ARM";
        case VK_STRUCTURE_TYPE_TENSOR_CAPTURE_DESCRIPTOR_DATA_INFO_ARM:
            return "VK_STRUCTURE_TYPE_TENSOR_CAPTURE_DESCRIPTOR_DATA_INFO_ARM";
        case VK_STRUCTURE_TYPE_TENSOR_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_ARM:
            return "VK_STRUCTURE_TYPE_TENSOR_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_ARM";
        case VK_STRUCTURE_TYPE_FRAME_BOUNDARY_TENSORS_ARM:
            return "VK_STRUCTURE_TYPE_FRAME_BOUNDARY_TENSORS_ARM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT";
        case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT";
        case VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT:
            return "VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV";
        case VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV:
            return "VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV";
        case VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV:
            return "VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV";
        case VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV:
            return "VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV";
        case VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV:
            return "VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV";
        case VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV:
            return "VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID";
        case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID:
            return "VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD";
        case VK_STRUCTURE_TYPE_ANTI_LAG_DATA_AMD:
            return "VK_STRUCTURE_TYPE_ANTI_LAG_DATA_AMD";
        case VK_STRUCTURE_TYPE_ANTI_LAG_PRESENTATION_INFO_AMD:
            return "VK_STRUCTURE_TYPE_ANTI_LAG_PRESENTATION_INFO_AMD";
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DENSE_GEOMETRY_FORMAT_FEATURES_AMDX:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DENSE_GEOMETRY_FORMAT_FEATURES_AMDX";
        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DENSE_GEOMETRY_FORMAT_TRIANGLES_DATA_AMDX:
            return "VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DENSE_GEOMETRY_FORMAT_TRIANGLES_DATA_AMDX";
#endif  // VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_ID_2_KHR:
            return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_ID_2_KHR";
        case VK_STRUCTURE_TYPE_PRESENT_ID_2_KHR:
            return "VK_STRUCTURE_TYPE_PRESENT_ID_2_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_2_FEATURES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_2_FEATURES_KHR";
        case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_WAIT_2_KHR:
            return "VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_WAIT_2_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_2_FEATURES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_2_FEATURES_KHR";
        case VK_STRUCTURE_TYPE_PRESENT_WAIT_2_INFO_KHR:
            return "VK_STRUCTURE_TYPE_PRESENT_WAIT_2_INFO_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT";
        case VK_STRUCTURE_TYPE_SHADER_CREATE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_SHADER_CREATE_INFO_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR";
        case VK_STRUCTURE_TYPE_PIPELINE_BINARY_CREATE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_PIPELINE_BINARY_CREATE_INFO_KHR";
        case VK_STRUCTURE_TYPE_PIPELINE_BINARY_INFO_KHR:
            return "VK_STRUCTURE_TYPE_PIPELINE_BINARY_INFO_KHR";
        case VK_STRUCTURE_TYPE_PIPELINE_BINARY_KEY_KHR:
            return "VK_STRUCTURE_TYPE_PIPELINE_BINARY_KEY_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR";
        case VK_STRUCTURE_TYPE_RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR:
            return "VK_STRUCTURE_TYPE_RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR";
        case VK_STRUCTURE_TYPE_PIPELINE_BINARY_DATA_INFO_KHR:
            return "VK_STRUCTURE_TYPE_PIPELINE_BINARY_DATA_INFO_KHR";
        case VK_STRUCTURE_TYPE_PIPELINE_CREATE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_PIPELINE_CREATE_INFO_KHR";
        case VK_STRUCTURE_TYPE_DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR:
            return "VK_STRUCTURE_TYPE_DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR";
        case VK_STRUCTURE_TYPE_PIPELINE_BINARY_HANDLES_INFO_KHR:
            return "VK_STRUCTURE_TYPE_PIPELINE_BINARY_HANDLES_INFO_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM";
        case VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM:
            return "VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC";
        case VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC:
            return "VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC";
        case VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_KHR:
            return "VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_KHR";
        case VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_KHR:
            return "VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_KHR";
        case VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_KHR:
            return "VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_KHR";
        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_KHR";
        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_KHR";
        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_KHR";
        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_KHR";
        case VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_KHR:
            return "VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_VECTOR_FEATURES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_VECTOR_FEATURES_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_VECTOR_PROPERTIES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_VECTOR_PROPERTIES_NV";
        case VK_STRUCTURE_TYPE_COOPERATIVE_VECTOR_PROPERTIES_NV:
            return "VK_STRUCTURE_TYPE_COOPERATIVE_VECTOR_PROPERTIES_NV";
        case VK_STRUCTURE_TYPE_CONVERT_COOPERATIVE_VECTOR_MATRIX_INFO_NV:
            return "VK_STRUCTURE_TYPE_CONVERT_COOPERATIVE_VECTOR_MATRIX_INFO_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT";
        case VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INTERNALLY_SYNCHRONIZED_QUEUES_FEATURES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INTERNALLY_SYNCHRONIZED_QUEUES_FEATURES_KHR";
        case VK_STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV:
            return "VK_STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV";
        case VK_STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV:
            return "VK_STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV";
        case VK_STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV:
            return "VK_STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV";
        case VK_STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV:
            return "VK_STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV";
        case VK_STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV:
            return "VK_STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV";
        case VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV:
            return "VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV";
        case VK_STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV:
            return "VK_STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV";
        case VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV:
            return "VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV";
        case VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV:
            return "VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR";
        case VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR:
            return "VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR";
        case VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_CREATE_INFO_ARM:
            return "VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_CREATE_INFO_ARM";
        case VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_CREATE_INFO_ARM:
            return "VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_CREATE_INFO_ARM";
        case VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_RESOURCE_INFO_ARM:
            return "VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_RESOURCE_INFO_ARM";
        case VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_CONSTANT_ARM:
            return "VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_CONSTANT_ARM";
        case VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_MEMORY_REQUIREMENTS_INFO_ARM:
            return "VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_MEMORY_REQUIREMENTS_INFO_ARM";
        case VK_STRUCTURE_TYPE_BIND_DATA_GRAPH_PIPELINE_SESSION_MEMORY_INFO_ARM:
            return "VK_STRUCTURE_TYPE_BIND_DATA_GRAPH_PIPELINE_SESSION_MEMORY_INFO_ARM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DATA_GRAPH_FEATURES_ARM:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DATA_GRAPH_FEATURES_ARM";
        case VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SHADER_MODULE_CREATE_INFO_ARM:
            return "VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SHADER_MODULE_CREATE_INFO_ARM";
        case VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_PROPERTY_QUERY_RESULT_ARM:
            return "VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_PROPERTY_QUERY_RESULT_ARM";
        case VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_INFO_ARM:
            return "VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_INFO_ARM";
        case VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_COMPILER_CONTROL_CREATE_INFO_ARM:
            return "VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_COMPILER_CONTROL_CREATE_INFO_ARM";
        case VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_REQUIREMENTS_INFO_ARM:
            return "VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_REQUIREMENTS_INFO_ARM";
        case VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_REQUIREMENT_ARM:
            return "VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_REQUIREMENT_ARM";
        case VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_IDENTIFIER_CREATE_INFO_ARM:
            return "VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_IDENTIFIER_CREATE_INFO_ARM";
        case VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_DISPATCH_INFO_ARM:
            return "VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_DISPATCH_INFO_ARM";
        case VK_STRUCTURE_TYPE_DATA_GRAPH_PROCESSING_ENGINE_CREATE_INFO_ARM:
            return "VK_STRUCTURE_TYPE_DATA_GRAPH_PROCESSING_ENGINE_CREATE_INFO_ARM";
        case VK_STRUCTURE_TYPE_QUEUE_FAMILY_DATA_GRAPH_PROCESSING_ENGINE_PROPERTIES_ARM:
            return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_DATA_GRAPH_PROCESSING_ENGINE_PROPERTIES_ARM";
        case VK_STRUCTURE_TYPE_QUEUE_FAMILY_DATA_GRAPH_PROPERTIES_ARM:
            return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_DATA_GRAPH_PROPERTIES_ARM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_QUEUE_FAMILY_DATA_GRAPH_PROCESSING_ENGINE_INFO_ARM:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_QUEUE_FAMILY_DATA_GRAPH_PROCESSING_ENGINE_INFO_ARM";
        case VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_CONSTANT_TENSOR_SEMI_STRUCTURED_SPARSITY_INFO_ARM:
            return "VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_CONSTANT_TENSOR_SEMI_STRUCTURED_SPARSITY_INFO_ARM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM";
        case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM:
            return "VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_CAPABILITIES_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_CAPABILITIES_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PICTURE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PICTURE_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PROFILE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PROFILE_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_DPB_SLOT_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_DPB_SLOT_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_CAPABILITIES_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_CAPABILITIES_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_PICTURE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_PICTURE_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_DPB_SLOT_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_DPB_SLOT_INFO_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_AV1_FEATURES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_AV1_FEATURES_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_PROFILE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_PROFILE_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_RATE_CONTROL_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_RATE_CONTROL_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_RATE_CONTROL_LAYER_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_RATE_CONTROL_LAYER_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_QUALITY_LEVEL_PROPERTIES_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_QUALITY_LEVEL_PROPERTIES_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_SESSION_CREATE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_SESSION_CREATE_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_GOP_REMAINING_FRAME_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_GOP_REMAINING_FRAME_INFO_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_DECODE_VP9_FEATURES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_DECODE_VP9_FEATURES_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_VP9_CAPABILITIES_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_DECODE_VP9_CAPABILITIES_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_VP9_PICTURE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_DECODE_VP9_PICTURE_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_VP9_PROFILE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_DECODE_VP9_PROFILE_INFO_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_INLINE_QUERY_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_INLINE_QUERY_INFO_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM";
        case VK_STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM:
            return "VK_STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM";
        case VK_STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM:
            return "VK_STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM";
        case VK_STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM:
            return "VK_STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM";
        case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM:
            return "VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFIED_IMAGE_LAYOUTS_FEATURES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFIED_IMAGE_LAYOUTS_FEATURES_KHR";
        case VK_STRUCTURE_TYPE_ATTACHMENT_FEEDBACK_LOOP_INFO_EXT:
            return "VK_STRUCTURE_TYPE_ATTACHMENT_FEEDBACK_LOOP_INFO_EXT";
        case VK_STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX:
            return "VK_STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX";
        case VK_STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX:
            return "VK_STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX";
        case VK_STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX:
            return "VK_STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX";
        case VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX:
            return "VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT";
        case VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR:
            return "VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR";
        case VK_STRUCTURE_TYPE_SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT:
            return "VK_STRUCTURE_TYPE_SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT";
        case VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT:
            return "VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_MEMORY_HEAP_FEATURES_QCOM:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_MEMORY_HEAP_FEATURES_QCOM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_MEMORY_HEAP_PROPERTIES_QCOM:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_MEMORY_HEAP_PROPERTIES_QCOM";
        case VK_STRUCTURE_TYPE_TILE_MEMORY_REQUIREMENTS_QCOM:
            return "VK_STRUCTURE_TYPE_TILE_MEMORY_REQUIREMENTS_QCOM";
        case VK_STRUCTURE_TYPE_TILE_MEMORY_BIND_INFO_QCOM:
            return "VK_STRUCTURE_TYPE_TILE_MEMORY_BIND_INFO_QCOM";
        case VK_STRUCTURE_TYPE_TILE_MEMORY_SIZE_INFO_QCOM:
            return "VK_STRUCTURE_TYPE_TILE_MEMORY_SIZE_INFO_QCOM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_KHR";
        case VK_STRUCTURE_TYPE_COPY_MEMORY_INDIRECT_INFO_KHR:
            return "VK_STRUCTURE_TYPE_COPY_MEMORY_INDIRECT_INFO_KHR";
        case VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INDIRECT_INFO_KHR:
            return "VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INDIRECT_INFO_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_EXT";
        case VK_STRUCTURE_TYPE_DECOMPRESS_MEMORY_INFO_EXT:
            return "VK_STRUCTURE_TYPE_DECOMPRESS_MEMORY_INFO_EXT";
        case VK_STRUCTURE_TYPE_DISPLAY_SURFACE_STEREO_CREATE_INFO_NV:
            return "VK_STRUCTURE_TYPE_DISPLAY_SURFACE_STEREO_CREATE_INFO_NV";
        case VK_STRUCTURE_TYPE_DISPLAY_MODE_STEREO_PROPERTIES_NV:
            return "VK_STRUCTURE_TYPE_DISPLAY_MODE_STEREO_PROPERTIES_NV";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_INTRA_REFRESH_CAPABILITIES_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_INTRA_REFRESH_CAPABILITIES_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_INTRA_REFRESH_CREATE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_INTRA_REFRESH_CREATE_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_INTRA_REFRESH_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_INTRA_REFRESH_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_REFERENCE_INTRA_REFRESH_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_REFERENCE_INTRA_REFRESH_INFO_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_INTRA_REFRESH_FEATURES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_INTRA_REFRESH_FEATURES_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_CAPABILITIES_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_CAPABILITIES_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_FORMAT_QUANTIZATION_MAP_PROPERTIES_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_FORMAT_QUANTIZATION_MAP_PROPERTIES_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_SESSION_PARAMETERS_CREATE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_SESSION_PARAMETERS_CREATE_INFO_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUANTIZATION_MAP_FEATURES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUANTIZATION_MAP_FEATURES_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUANTIZATION_MAP_CAPABILITIES_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUANTIZATION_MAP_CAPABILITIES_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUANTIZATION_MAP_CAPABILITIES_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUANTIZATION_MAP_CAPABILITIES_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_FORMAT_H265_QUANTIZATION_MAP_PROPERTIES_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_FORMAT_H265_QUANTIZATION_MAP_PROPERTIES_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_QUANTIZATION_MAP_CAPABILITIES_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_QUANTIZATION_MAP_CAPABILITIES_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_FORMAT_AV1_QUANTIZATION_MAP_PROPERTIES_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_FORMAT_AV1_QUANTIZATION_MAP_PROPERTIES_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV";
        case VK_STRUCTURE_TYPE_EXTERNAL_COMPUTE_QUEUE_DEVICE_CREATE_INFO_NV:
            return "VK_STRUCTURE_TYPE_EXTERNAL_COMPUTE_QUEUE_DEVICE_CREATE_INFO_NV";
        case VK_STRUCTURE_TYPE_EXTERNAL_COMPUTE_QUEUE_CREATE_INFO_NV:
            return "VK_STRUCTURE_TYPE_EXTERNAL_COMPUTE_QUEUE_CREATE_INFO_NV";
        case VK_STRUCTURE_TYPE_EXTERNAL_COMPUTE_QUEUE_DATA_PARAMS_NV:
            return "VK_STRUCTURE_TYPE_EXTERNAL_COMPUTE_QUEUE_DATA_PARAMS_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_COMPUTE_QUEUE_PROPERTIES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_COMPUTE_QUEUE_PROPERTIES_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT8_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT8_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_FEATURES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_FEATURES_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_PROPERTIES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_PROPERTIES_NV";
        case VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_CLUSTERS_BOTTOM_LEVEL_INPUT_NV:
            return "VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_CLUSTERS_BOTTOM_LEVEL_INPUT_NV";
        case VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_TRIANGLE_CLUSTER_INPUT_NV:
            return "VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_TRIANGLE_CLUSTER_INPUT_NV";
        case VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_MOVE_OBJECTS_INPUT_NV:
            return "VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_MOVE_OBJECTS_INPUT_NV";
        case VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_INPUT_INFO_NV:
            return "VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_INPUT_INFO_NV";
        case VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_COMMANDS_INFO_NV:
            return "VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_COMMANDS_INFO_NV";
        case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CLUSTER_ACCELERATION_STRUCTURE_CREATE_INFO_NV:
            return "VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CLUSTER_ACCELERATION_STRUCTURE_CREATE_INFO_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_FEATURES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_FEATURES_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_PROPERTIES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_PROPERTIES_NV";
        case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_PARTITIONED_ACCELERATION_STRUCTURE_NV:
            return "VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_PARTITIONED_ACCELERATION_STRUCTURE_NV";
        case VK_STRUCTURE_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCES_INPUT_NV:
            return "VK_STRUCTURE_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCES_INPUT_NV";
        case VK_STRUCTURE_TYPE_BUILD_PARTITIONED_ACCELERATION_STRUCTURE_INFO_NV:
            return "VK_STRUCTURE_TYPE_BUILD_PARTITIONED_ACCELERATION_STRUCTURE_INFO_NV";
        case VK_STRUCTURE_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_FLAGS_NV:
            return "VK_STRUCTURE_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_FLAGS_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT";
        case VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT:
            return "VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT";
        case VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_CREATE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_CREATE_INFO_EXT";
        case VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_EXT:
            return "VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_EXT";
        case VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT";
        case VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT:
            return "VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT";
        case VK_STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_PIPELINE_EXT:
            return "VK_STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_PIPELINE_EXT";
        case VK_STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_SHADER_EXT:
            return "VK_STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_SHADER_EXT";
        case VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_PIPELINE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_PIPELINE_INFO_EXT";
        case VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_INFO_EXT:
            return "VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_INFO_EXT";
        case VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT:
            return "VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT";
        case VK_STRUCTURE_TYPE_GENERATED_COMMANDS_PIPELINE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_GENERATED_COMMANDS_PIPELINE_INFO_EXT";
        case VK_STRUCTURE_TYPE_GENERATED_COMMANDS_SHADER_INFO_EXT:
            return "VK_STRUCTURE_TYPE_GENERATED_COMMANDS_SHADER_INFO_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_8_FEATURES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_8_FEATURES_KHR";
        case VK_STRUCTURE_TYPE_MEMORY_BARRIER_ACCESS_FLAGS_3_KHR:
            return "VK_STRUCTURE_TYPE_MEMORY_BARRIER_ACCESS_FLAGS_3_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA";
        case VK_STRUCTURE_TYPE_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA:
            return "VK_STRUCTURE_TYPE_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FMA_FEATURES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FMA_FEATURES_KHR";
        case VK_STRUCTURE_TYPE_PUSH_CONSTANT_BANK_INFO_NV:
            return "VK_STRUCTURE_TYPE_PUSH_CONSTANT_BANK_INFO_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_CONSTANT_BANK_FEATURES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_CONSTANT_BANK_FEATURES_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_CONSTANT_BANK_PROPERTIES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_CONSTANT_BANK_PROPERTIES_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_9_FEATURES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_9_FEATURES_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_9_PROPERTIES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_9_PROPERTIES_KHR";
        case VK_STRUCTURE_TYPE_QUEUE_FAMILY_OWNERSHIP_TRANSFER_PROPERTIES_KHR:
            return "VK_STRUCTURE_TYPE_QUEUE_FAMILY_OWNERSHIP_TRANSFER_PROPERTIES_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_2_FEATURES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_2_FEATURES_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_INLINE_SESSION_PARAMETERS_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_INLINE_SESSION_PARAMETERS_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_INLINE_SESSION_PARAMETERS_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_INLINE_SESSION_PARAMETERS_INFO_KHR";
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_INLINE_SESSION_PARAMETERS_INFO_KHR:
            return "VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_INLINE_SESSION_PARAMETERS_INFO_KHR";
        case VK_STRUCTURE_TYPE_SURFACE_CREATE_INFO_OHOS:
            return "VK_STRUCTURE_TYPE_SURFACE_CREATE_INFO_OHOS";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI";
        case VK_STRUCTURE_TYPE_HDR_VIVID_DYNAMIC_METADATA_HUAWEI:
            return "VK_STRUCTURE_TYPE_HDR_VIVID_DYNAMIC_METADATA_HUAWEI";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV";
        case VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV:
            return "VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_OPACITY_MICROMAP_FEATURES_ARM:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_OPACITY_MICROMAP_FEATURES_ARM";
        case VK_STRUCTURE_TYPE_IMPORT_MEMORY_METAL_HANDLE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_IMPORT_MEMORY_METAL_HANDLE_INFO_EXT";
        case VK_STRUCTURE_TYPE_MEMORY_METAL_HANDLE_PROPERTIES_EXT:
            return "VK_STRUCTURE_TYPE_MEMORY_METAL_HANDLE_PROPERTIES_EXT";
        case VK_STRUCTURE_TYPE_MEMORY_GET_METAL_HANDLE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_MEMORY_GET_METAL_HANDLE_INFO_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_COUNTERS_BY_REGION_FEATURES_ARM:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_COUNTERS_BY_REGION_FEATURES_ARM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_COUNTERS_BY_REGION_PROPERTIES_ARM:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_COUNTERS_BY_REGION_PROPERTIES_ARM";
        case VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_ARM:
            return "VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_ARM";
        case VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_ARM:
            return "VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_ARM";
        case VK_STRUCTURE_TYPE_RENDER_PASS_PERFORMANCE_COUNTERS_BY_REGION_BEGIN_INFO_ARM:
            return "VK_STRUCTURE_TYPE_RENDER_PASS_PERFORMANCE_COUNTERS_BY_REGION_BEGIN_INFO_ARM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_ROBUSTNESS_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_ROBUSTNESS_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FORMAT_PACK_FEATURES_ARM:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FORMAT_PACK_FEATURES_ARM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_LAYERED_FEATURES_VALVE:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_LAYERED_FEATURES_VALVE";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_LAYERED_PROPERTIES_VALVE:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_LAYERED_PROPERTIES_VALVE";
        case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_DENSITY_MAP_LAYERED_CREATE_INFO_VALVE:
            return "VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_DENSITY_MAP_LAYERED_CREATE_INFO_VALVE";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_KHR";
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_SET_PRESENT_CONFIG_NV:
            return "VK_STRUCTURE_TYPE_SET_PRESENT_CONFIG_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_METERING_FEATURES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_METERING_FEATURES_NV";
#endif  // VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_EXT";
        case VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_EXT:
            return "VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_DEVICE_MEMORY_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_DEVICE_MEMORY_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_64_BIT_INDEXING_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_64_BIT_INDEXING_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_RESOLVE_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_RESOLVE_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_BEGIN_CUSTOM_RESOLVE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_BEGIN_CUSTOM_RESOLVE_INFO_EXT";
        case VK_STRUCTURE_TYPE_CUSTOM_RESOLVE_CREATE_INFO_EXT:
            return "VK_STRUCTURE_TYPE_CUSTOM_RESOLVE_CREATE_INFO_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DATA_GRAPH_MODEL_FEATURES_QCOM:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DATA_GRAPH_MODEL_FEATURES_QCOM";
        case VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_BUILTIN_MODEL_CREATE_INFO_QCOM:
            return "VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_BUILTIN_MODEL_CREATE_INFO_QCOM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_10_FEATURES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_10_FEATURES_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_10_PROPERTIES_KHR:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_10_PROPERTIES_KHR";
        case VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_FLAGS_INFO_KHR:
            return "VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_FLAGS_INFO_KHR";
        case VK_STRUCTURE_TYPE_RENDERING_END_INFO_KHR:
            return "VK_STRUCTURE_TYPE_RENDERING_END_INFO_KHR";
        case VK_STRUCTURE_TYPE_RESOLVE_IMAGE_MODE_INFO_KHR:
            return "VK_STRUCTURE_TYPE_RESOLVE_IMAGE_MODE_INFO_KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_LONG_VECTOR_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_LONG_VECTOR_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_LONG_VECTOR_PROPERTIES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_LONG_VECTOR_PROPERTIES_EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CACHE_INCREMENTAL_MODE_FEATURES_SEC:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CACHE_INCREMENTAL_MODE_FEATURES_SEC";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_UNIFORM_BUFFER_UNSIZED_ARRAY_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_UNIFORM_BUFFER_UNSIZED_ARRAY_FEATURES_EXT";
        case VK_STRUCTURE_TYPE_COMPUTE_OCCUPANCY_PRIORITY_PARAMETERS_NV:
            return "VK_STRUCTURE_TYPE_COMPUTE_OCCUPANCY_PRIORITY_PARAMETERS_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_OCCUPANCY_PRIORITY_FEATURES_NV:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_OCCUPANCY_PRIORITY_FEATURES_NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_PARTITIONED_FEATURES_EXT:
            return "VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_PARTITIONED_FEATURES_EXT";
        default:
            return "Unhandled VkStructureType";
    }
}
static inline const char* string_VkImageLayout(VkImageLayout input_value) {
    switch (input_value) {
        case VK_IMAGE_LAYOUT_UNDEFINED:
            return "VK_IMAGE_LAYOUT_UNDEFINED";
        case VK_IMAGE_LAYOUT_GENERAL:
            return "VK_IMAGE_LAYOUT_GENERAL";
        case VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL:
            return "VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL";
        case VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL:
            return "VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL";
        case VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL:
            return "VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL";
        case VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL:
            return "VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL";
        case VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL:
            return "VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL";
        case VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL:
            return "VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL";
        case VK_IMAGE_LAYOUT_PREINITIALIZED:
            return "VK_IMAGE_LAYOUT_PREINITIALIZED";
        case VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL:
            return "VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL";
        case VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL:
            return "VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL";
        case VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL:
            return "VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL";
        case VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL:
            return "VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL";
        case VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL:
            return "VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL";
        case VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL:
            return "VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL";
        case VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL:
            return "VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL";
        case VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL:
            return "VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL";
        case VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ:
            return "VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ";
        case VK_IMAGE_LAYOUT_PRESENT_SRC_KHR:
            return "VK_IMAGE_LAYOUT_PRESENT_SRC_KHR";
        case VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR:
            return "VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR";
        case VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR:
            return "VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR";
        case VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR:
            return "VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR";
        case VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR:
            return "VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR";
        case VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT:
            return "VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT";
        case VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR:
            return "VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR";
        case VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR:
            return "VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR";
        case VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR:
            return "VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR";
        case VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR:
            return "VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR";
        case VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT:
            return "VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT";
        case VK_IMAGE_LAYOUT_TENSOR_ALIASING_ARM:
            return "VK_IMAGE_LAYOUT_TENSOR_ALIASING_ARM";
        case VK_IMAGE_LAYOUT_VIDEO_ENCODE_QUANTIZATION_MAP_KHR:
            return "VK_IMAGE_LAYOUT_VIDEO_ENCODE_QUANTIZATION_MAP_KHR";
        case VK_IMAGE_LAYOUT_ZERO_INITIALIZED_EXT:
            return "VK_IMAGE_LAYOUT_ZERO_INITIALIZED_EXT";
        default:
            return "Unhandled VkImageLayout";
    }
}
static inline const char* string_VkObjectType(VkObjectType input_value) {
    switch (input_value) {
        case VK_OBJECT_TYPE_UNKNOWN:
            return "VK_OBJECT_TYPE_UNKNOWN";
        case VK_OBJECT_TYPE_INSTANCE:
            return "VK_OBJECT_TYPE_INSTANCE";
        case VK_OBJECT_TYPE_PHYSICAL_DEVICE:
            return "VK_OBJECT_TYPE_PHYSICAL_DEVICE";
        case VK_OBJECT_TYPE_DEVICE:
            return "VK_OBJECT_TYPE_DEVICE";
        case VK_OBJECT_TYPE_QUEUE:
            return "VK_OBJECT_TYPE_QUEUE";
        case VK_OBJECT_TYPE_SEMAPHORE:
            return "VK_OBJECT_TYPE_SEMAPHORE";
        case VK_OBJECT_TYPE_COMMAND_BUFFER:
            return "VK_OBJECT_TYPE_COMMAND_BUFFER";
        case VK_OBJECT_TYPE_FENCE:
            return "VK_OBJECT_TYPE_FENCE";
        case VK_OBJECT_TYPE_DEVICE_MEMORY:
            return "VK_OBJECT_TYPE_DEVICE_MEMORY";
        case VK_OBJECT_TYPE_BUFFER:
            return "VK_OBJECT_TYPE_BUFFER";
        case VK_OBJECT_TYPE_IMAGE:
            return "VK_OBJECT_TYPE_IMAGE";
        case VK_OBJECT_TYPE_EVENT:
            return "VK_OBJECT_TYPE_EVENT";
        case VK_OBJECT_TYPE_QUERY_POOL:
            return "VK_OBJECT_TYPE_QUERY_POOL";
        case VK_OBJECT_TYPE_BUFFER_VIEW:
            return "VK_OBJECT_TYPE_BUFFER_VIEW";
        case VK_OBJECT_TYPE_IMAGE_VIEW:
            return "VK_OBJECT_TYPE_IMAGE_VIEW";
        case VK_OBJECT_TYPE_SHADER_MODULE:
            return "VK_OBJECT_TYPE_SHADER_MODULE";
        case VK_OBJECT_TYPE_PIPELINE_CACHE:
            return "VK_OBJECT_TYPE_PIPELINE_CACHE";
        case VK_OBJECT_TYPE_PIPELINE_LAYOUT:
            return "VK_OBJECT_TYPE_PIPELINE_LAYOUT";
        case VK_OBJECT_TYPE_RENDER_PASS:
            return "VK_OBJECT_TYPE_RENDER_PASS";
        case VK_OBJECT_TYPE_PIPELINE:
            return "VK_OBJECT_TYPE_PIPELINE";
        case VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT:
            return "VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT";
        case VK_OBJECT_TYPE_SAMPLER:
            return "VK_OBJECT_TYPE_SAMPLER";
        case VK_OBJECT_TYPE_DESCRIPTOR_POOL:
            return "VK_OBJECT_TYPE_DESCRIPTOR_POOL";
        case VK_OBJECT_TYPE_DESCRIPTOR_SET:
            return "VK_OBJECT_TYPE_DESCRIPTOR_SET";
        case VK_OBJECT_TYPE_FRAMEBUFFER:
            return "VK_OBJECT_TYPE_FRAMEBUFFER";
        case VK_OBJECT_TYPE_COMMAND_POOL:
            return "VK_OBJECT_TYPE_COMMAND_POOL";
        case VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE:
            return "VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE";
        case VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION:
            return "VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION";
        case VK_OBJECT_TYPE_PRIVATE_DATA_SLOT:
            return "VK_OBJECT_TYPE_PRIVATE_DATA_SLOT";
        case VK_OBJECT_TYPE_SURFACE_KHR:
            return "VK_OBJECT_TYPE_SURFACE_KHR";
        case VK_OBJECT_TYPE_SWAPCHAIN_KHR:
            return "VK_OBJECT_TYPE_SWAPCHAIN_KHR";
        case VK_OBJECT_TYPE_DISPLAY_KHR:
            return "VK_OBJECT_TYPE_DISPLAY_KHR";
        case VK_OBJECT_TYPE_DISPLAY_MODE_KHR:
            return "VK_OBJECT_TYPE_DISPLAY_MODE_KHR";
        case VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT:
            return "VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT";
        case VK_OBJECT_TYPE_VIDEO_SESSION_KHR:
            return "VK_OBJECT_TYPE_VIDEO_SESSION_KHR";
        case VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR:
            return "VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR";
        case VK_OBJECT_TYPE_CU_MODULE_NVX:
            return "VK_OBJECT_TYPE_CU_MODULE_NVX";
        case VK_OBJECT_TYPE_CU_FUNCTION_NVX:
            return "VK_OBJECT_TYPE_CU_FUNCTION_NVX";
        case VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT:
            return "VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT";
        case VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR:
            return "VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR";
        case VK_OBJECT_TYPE_VALIDATION_CACHE_EXT:
            return "VK_OBJECT_TYPE_VALIDATION_CACHE_EXT";
        case VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV:
            return "VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV";
        case VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL:
            return "VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL";
        case VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR:
            return "VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR";
        case VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV:
            return "VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV";
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_OBJECT_TYPE_CUDA_MODULE_NV:
            return "VK_OBJECT_TYPE_CUDA_MODULE_NV";
        case VK_OBJECT_TYPE_CUDA_FUNCTION_NV:
            return "VK_OBJECT_TYPE_CUDA_FUNCTION_NV";
#endif  // VK_ENABLE_BETA_EXTENSIONS
        case VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA:
            return "VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA";
        case VK_OBJECT_TYPE_MICROMAP_EXT:
            return "VK_OBJECT_TYPE_MICROMAP_EXT";
        case VK_OBJECT_TYPE_TENSOR_ARM:
            return "VK_OBJECT_TYPE_TENSOR_ARM";
        case VK_OBJECT_TYPE_TENSOR_VIEW_ARM:
            return "VK_OBJECT_TYPE_TENSOR_VIEW_ARM";
        case VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV:
            return "VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV";
        case VK_OBJECT_TYPE_SHADER_EXT:
            return "VK_OBJECT_TYPE_SHADER_EXT";
        case VK_OBJECT_TYPE_PIPELINE_BINARY_KHR:
            return "VK_OBJECT_TYPE_PIPELINE_BINARY_KHR";
        case VK_OBJECT_TYPE_DATA_GRAPH_PIPELINE_SESSION_ARM:
            return "VK_OBJECT_TYPE_DATA_GRAPH_PIPELINE_SESSION_ARM";
        case VK_OBJECT_TYPE_EXTERNAL_COMPUTE_QUEUE_NV:
            return "VK_OBJECT_TYPE_EXTERNAL_COMPUTE_QUEUE_NV";
        case VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_EXT:
            return "VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_EXT";
        case VK_OBJECT_TYPE_INDIRECT_EXECUTION_SET_EXT:
            return "VK_OBJECT_TYPE_INDIRECT_EXECUTION_SET_EXT";
        default:
            return "Unhandled VkObjectType";
    }
}
static inline const char* string_VkVendorId(VkVendorId input_value) {
    switch (input_value) {
        case VK_VENDOR_ID_KHRONOS:
            return "VK_VENDOR_ID_KHRONOS";
        case VK_VENDOR_ID_VIV:
            return "VK_VENDOR_ID_VIV";
        case VK_VENDOR_ID_VSI:
            return "VK_VENDOR_ID_VSI";
        case VK_VENDOR_ID_KAZAN:
            return "VK_VENDOR_ID_KAZAN";
        case VK_VENDOR_ID_CODEPLAY:
            return "VK_VENDOR_ID_CODEPLAY";
        case VK_VENDOR_ID_MESA:
            return "VK_VENDOR_ID_MESA";
        case VK_VENDOR_ID_POCL:
            return "VK_VENDOR_ID_POCL";
        case VK_VENDOR_ID_MOBILEYE:
            return "VK_VENDOR_ID_MOBILEYE";
        default:
            return "Unhandled VkVendorId";
    }
}
static inline const char* string_VkSystemAllocationScope(VkSystemAllocationScope input_value) {
    switch (input_value) {
        case VK_SYSTEM_ALLOCATION_SCOPE_COMMAND:
            return "VK_SYSTEM_ALLOCATION_SCOPE_COMMAND";
        case VK_SYSTEM_ALLOCATION_SCOPE_OBJECT:
            return "VK_SYSTEM_ALLOCATION_SCOPE_OBJECT";
        case VK_SYSTEM_ALLOCATION_SCOPE_CACHE:
            return "VK_SYSTEM_ALLOCATION_SCOPE_CACHE";
        case VK_SYSTEM_ALLOCATION_SCOPE_DEVICE:
            return "VK_SYSTEM_ALLOCATION_SCOPE_DEVICE";
        case VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE:
            return "VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE";
        default:
            return "Unhandled VkSystemAllocationScope";
    }
}
static inline const char* string_VkInternalAllocationType(VkInternalAllocationType input_value) {
    switch (input_value) {
        case VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE:
            return "VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE";
        default:
            return "Unhandled VkInternalAllocationType";
    }
}
static inline const char* string_VkFormat(VkFormat input_value) {
    switch (input_value) {
        case VK_FORMAT_UNDEFINED:
            return "VK_FORMAT_UNDEFINED";
        case VK_FORMAT_R4G4_UNORM_PACK8:
            return "VK_FORMAT_R4G4_UNORM_PACK8";
        case VK_FORMAT_R4G4B4A4_UNORM_PACK16:
            return "VK_FORMAT_R4G4B4A4_UNORM_PACK16";
        case VK_FORMAT_B4G4R4A4_UNORM_PACK16:
            return "VK_FORMAT_B4G4R4A4_UNORM_PACK16";
        case VK_FORMAT_R5G6B5_UNORM_PACK16:
            return "VK_FORMAT_R5G6B5_UNORM_PACK16";
        case VK_FORMAT_B5G6R5_UNORM_PACK16:
            return "VK_FORMAT_B5G6R5_UNORM_PACK16";
        case VK_FORMAT_R5G5B5A1_UNORM_PACK16:
            return "VK_FORMAT_R5G5B5A1_UNORM_PACK16";
        case VK_FORMAT_B5G5R5A1_UNORM_PACK16:
            return "VK_FORMAT_B5G5R5A1_UNORM_PACK16";
        case VK_FORMAT_A1R5G5B5_UNORM_PACK16:
            return "VK_FORMAT_A1R5G5B5_UNORM_PACK16";
        case VK_FORMAT_R8_UNORM:
            return "VK_FORMAT_R8_UNORM";
        case VK_FORMAT_R8_SNORM:
            return "VK_FORMAT_R8_SNORM";
        case VK_FORMAT_R8_USCALED:
            return "VK_FORMAT_R8_USCALED";
        case VK_FORMAT_R8_SSCALED:
            return "VK_FORMAT_R8_SSCALED";
        case VK_FORMAT_R8_UINT:
            return "VK_FORMAT_R8_UINT";
        case VK_FORMAT_R8_SINT:
            return "VK_FORMAT_R8_SINT";
        case VK_FORMAT_R8_SRGB:
            return "VK_FORMAT_R8_SRGB";
        case VK_FORMAT_R8G8_UNORM:
            return "VK_FORMAT_R8G8_UNORM";
        case VK_FORMAT_R8G8_SNORM:
            return "VK_FORMAT_R8G8_SNORM";
        case VK_FORMAT_R8G8_USCALED:
            return "VK_FORMAT_R8G8_USCALED";
        case VK_FORMAT_R8G8_SSCALED:
            return "VK_FORMAT_R8G8_SSCALED";
        case VK_FORMAT_R8G8_UINT:
            return "VK_FORMAT_R8G8_UINT";
        case VK_FORMAT_R8G8_SINT:
            return "VK_FORMAT_R8G8_SINT";
        case VK_FORMAT_R8G8_SRGB:
            return "VK_FORMAT_R8G8_SRGB";
        case VK_FORMAT_R8G8B8_UNORM:
            return "VK_FORMAT_R8G8B8_UNORM";
        case VK_FORMAT_R8G8B8_SNORM:
            return "VK_FORMAT_R8G8B8_SNORM";
        case VK_FORMAT_R8G8B8_USCALED:
            return "VK_FORMAT_R8G8B8_USCALED";
        case VK_FORMAT_R8G8B8_SSCALED:
            return "VK_FORMAT_R8G8B8_SSCALED";
        case VK_FORMAT_R8G8B8_UINT:
            return "VK_FORMAT_R8G8B8_UINT";
        case VK_FORMAT_R8G8B8_SINT:
            return "VK_FORMAT_R8G8B8_SINT";
        case VK_FORMAT_R8G8B8_SRGB:
            return "VK_FORMAT_R8G8B8_SRGB";
        case VK_FORMAT_B8G8R8_UNORM:
            return "VK_FORMAT_B8G8R8_UNORM";
        case VK_FORMAT_B8G8R8_SNORM:
            return "VK_FORMAT_B8G8R8_SNORM";
        case VK_FORMAT_B8G8R8_USCALED:
            return "VK_FORMAT_B8G8R8_USCALED";
        case VK_FORMAT_B8G8R8_SSCALED:
            return "VK_FORMAT_B8G8R8_SSCALED";
        case VK_FORMAT_B8G8R8_UINT:
            return "VK_FORMAT_B8G8R8_UINT";
        case VK_FORMAT_B8G8R8_SINT:
            return "VK_FORMAT_B8G8R8_SINT";
        case VK_FORMAT_B8G8R8_SRGB:
            return "VK_FORMAT_B8G8R8_SRGB";
        case VK_FORMAT_R8G8B8A8_UNORM:
            return "VK_FORMAT_R8G8B8A8_UNORM";
        case VK_FORMAT_R8G8B8A8_SNORM:
            return "VK_FORMAT_R8G8B8A8_SNORM";
        case VK_FORMAT_R8G8B8A8_USCALED:
            return "VK_FORMAT_R8G8B8A8_USCALED";
        case VK_FORMAT_R8G8B8A8_SSCALED:
            return "VK_FORMAT_R8G8B8A8_SSCALED";
        case VK_FORMAT_R8G8B8A8_UINT:
            return "VK_FORMAT_R8G8B8A8_UINT";
        case VK_FORMAT_R8G8B8A8_SINT:
            return "VK_FORMAT_R8G8B8A8_SINT";
        case VK_FORMAT_R8G8B8A8_SRGB:
            return "VK_FORMAT_R8G8B8A8_SRGB";
        case VK_FORMAT_B8G8R8A8_UNORM:
            return "VK_FORMAT_B8G8R8A8_UNORM";
        case VK_FORMAT_B8G8R8A8_SNORM:
            return "VK_FORMAT_B8G8R8A8_SNORM";
        case VK_FORMAT_B8G8R8A8_USCALED:
            return "VK_FORMAT_B8G8R8A8_USCALED";
        case VK_FORMAT_B8G8R8A8_SSCALED:
            return "VK_FORMAT_B8G8R8A8_SSCALED";
        case VK_FORMAT_B8G8R8A8_UINT:
            return "VK_FORMAT_B8G8R8A8_UINT";
        case VK_FORMAT_B8G8R8A8_SINT:
            return "VK_FORMAT_B8G8R8A8_SINT";
        case VK_FORMAT_B8G8R8A8_SRGB:
            return "VK_FORMAT_B8G8R8A8_SRGB";
        case VK_FORMAT_A8B8G8R8_UNORM_PACK32:
            return "VK_FORMAT_A8B8G8R8_UNORM_PACK32";
        case VK_FORMAT_A8B8G8R8_SNORM_PACK32:
            return "VK_FORMAT_A8B8G8R8_SNORM_PACK32";
        case VK_FORMAT_A8B8G8R8_USCALED_PACK32:
            return "VK_FORMAT_A8B8G8R8_USCALED_PACK32";
        case VK_FORMAT_A8B8G8R8_SSCALED_PACK32:
            return "VK_FORMAT_A8B8G8R8_SSCALED_PACK32";
        case VK_FORMAT_A8B8G8R8_UINT_PACK32:
            return "VK_FORMAT_A8B8G8R8_UINT_PACK32";
        case VK_FORMAT_A8B8G8R8_SINT_PACK32:
            return "VK_FORMAT_A8B8G8R8_SINT_PACK32";
        case VK_FORMAT_A8B8G8R8_SRGB_PACK32:
            return "VK_FORMAT_A8B8G8R8_SRGB_PACK32";
        case VK_FORMAT_A2R10G10B10_UNORM_PACK32:
            return "VK_FORMAT_A2R10G10B10_UNORM_PACK32";
        case VK_FORMAT_A2R10G10B10_SNORM_PACK32:
            return "VK_FORMAT_A2R10G10B10_SNORM_PACK32";
        case VK_FORMAT_A2R10G10B10_USCALED_PACK32:
            return "VK_FORMAT_A2R10G10B10_USCALED_PACK32";
        case VK_FORMAT_A2R10G10B10_SSCALED_PACK32:
            return "VK_FORMAT_A2R10G10B10_SSCALED_PACK32";
        case VK_FORMAT_A2R10G10B10_UINT_PACK32:
            return "VK_FORMAT_A2R10G10B10_UINT_PACK32";
        case VK_FORMAT_A2R10G10B10_SINT_PACK32:
            return "VK_FORMAT_A2R10G10B10_SINT_PACK32";
        case VK_FORMAT_A2B10G10R10_UNORM_PACK32:
            return "VK_FORMAT_A2B10G10R10_UNORM_PACK32";
        case VK_FORMAT_A2B10G10R10_SNORM_PACK32:
            return "VK_FORMAT_A2B10G10R10_SNORM_PACK32";
        case VK_FORMAT_A2B10G10R10_USCALED_PACK32:
            return "VK_FORMAT_A2B10G10R10_USCALED_PACK32";
        case VK_FORMAT_A2B10G10R10_SSCALED_PACK32:
            return "VK_FORMAT_A2B10G10R10_SSCALED_PACK32";
        case VK_FORMAT_A2B10G10R10_UINT_PACK32:
            return "VK_FORMAT_A2B10G10R10_UINT_PACK32";
        case VK_FORMAT_A2B10G10R10_SINT_PACK32:
            return "VK_FORMAT_A2B10G10R10_SINT_PACK32";
        case VK_FORMAT_R16_UNORM:
            return "VK_FORMAT_R16_UNORM";
        case VK_FORMAT_R16_SNORM:
            return "VK_FORMAT_R16_SNORM";
        case VK_FORMAT_R16_USCALED:
            return "VK_FORMAT_R16_USCALED";
        case VK_FORMAT_R16_SSCALED:
            return "VK_FORMAT_R16_SSCALED";
        case VK_FORMAT_R16_UINT:
            return "VK_FORMAT_R16_UINT";
        case VK_FORMAT_R16_SINT:
            return "VK_FORMAT_R16_SINT";
        case VK_FORMAT_R16_SFLOAT:
            return "VK_FORMAT_R16_SFLOAT";
        case VK_FORMAT_R16G16_UNORM:
            return "VK_FORMAT_R16G16_UNORM";
        case VK_FORMAT_R16G16_SNORM:
            return "VK_FORMAT_R16G16_SNORM";
        case VK_FORMAT_R16G16_USCALED:
            return "VK_FORMAT_R16G16_USCALED";
        case VK_FORMAT_R16G16_SSCALED:
            return "VK_FORMAT_R16G16_SSCALED";
        case VK_FORMAT_R16G16_UINT:
            return "VK_FORMAT_R16G16_UINT";
        case VK_FORMAT_R16G16_SINT:
            return "VK_FORMAT_R16G16_SINT";
        case VK_FORMAT_R16G16_SFLOAT:
            return "VK_FORMAT_R16G16_SFLOAT";
        case VK_FORMAT_R16G16B16_UNORM:
            return "VK_FORMAT_R16G16B16_UNORM";
        case VK_FORMAT_R16G16B16_SNORM:
            return "VK_FORMAT_R16G16B16_SNORM";
        case VK_FORMAT_R16G16B16_USCALED:
            return "VK_FORMAT_R16G16B16_USCALED";
        case VK_FORMAT_R16G16B16_SSCALED:
            return "VK_FORMAT_R16G16B16_SSCALED";
        case VK_FORMAT_R16G16B16_UINT:
            return "VK_FORMAT_R16G16B16_UINT";
        case VK_FORMAT_R16G16B16_SINT:
            return "VK_FORMAT_R16G16B16_SINT";
        case VK_FORMAT_R16G16B16_SFLOAT:
            return "VK_FORMAT_R16G16B16_SFLOAT";
        case VK_FORMAT_R16G16B16A16_UNORM:
            return "VK_FORMAT_R16G16B16A16_UNORM";
        case VK_FORMAT_R16G16B16A16_SNORM:
            return "VK_FORMAT_R16G16B16A16_SNORM";
        case VK_FORMAT_R16G16B16A16_USCALED:
            return "VK_FORMAT_R16G16B16A16_USCALED";
        case VK_FORMAT_R16G16B16A16_SSCALED:
            return "VK_FORMAT_R16G16B16A16_SSCALED";
        case VK_FORMAT_R16G16B16A16_UINT:
            return "VK_FORMAT_R16G16B16A16_UINT";
        case VK_FORMAT_R16G16B16A16_SINT:
            return "VK_FORMAT_R16G16B16A16_SINT";
        case VK_FORMAT_R16G16B16A16_SFLOAT:
            return "VK_FORMAT_R16G16B16A16_SFLOAT";
        case VK_FORMAT_R32_UINT:
            return "VK_FORMAT_R32_UINT";
        case VK_FORMAT_R32_SINT:
            return "VK_FORMAT_R32_SINT";
        case VK_FORMAT_R32_SFLOAT:
            return "VK_FORMAT_R32_SFLOAT";
        case VK_FORMAT_R32G32_UINT:
            return "VK_FORMAT_R32G32_UINT";
        case VK_FORMAT_R32G32_SINT:
            return "VK_FORMAT_R32G32_SINT";
        case VK_FORMAT_R32G32_SFLOAT:
            return "VK_FORMAT_R32G32_SFLOAT";
        case VK_FORMAT_R32G32B32_UINT:
            return "VK_FORMAT_R32G32B32_UINT";
        case VK_FORMAT_R32G32B32_SINT:
            return "VK_FORMAT_R32G32B32_SINT";
        case VK_FORMAT_R32G32B32_SFLOAT:
            return "VK_FORMAT_R32G32B32_SFLOAT";
        case VK_FORMAT_R32G32B32A32_UINT:
            return "VK_FORMAT_R32G32B32A32_UINT";
        case VK_FORMAT_R32G32B32A32_SINT:
            return "VK_FORMAT_R32G32B32A32_SINT";
        case VK_FORMAT_R32G32B32A32_SFLOAT:
            return "VK_FORMAT_R32G32B32A32_SFLOAT";
        case VK_FORMAT_R64_UINT:
            return "VK_FORMAT_R64_UINT";
        case VK_FORMAT_R64_SINT:
            return "VK_FORMAT_R64_SINT";
        case VK_FORMAT_R64_SFLOAT:
            return "VK_FORMAT_R64_SFLOAT";
        case VK_FORMAT_R64G64_UINT:
            return "VK_FORMAT_R64G64_UINT";
        case VK_FORMAT_R64G64_SINT:
            return "VK_FORMAT_R64G64_SINT";
        case VK_FORMAT_R64G64_SFLOAT:
            return "VK_FORMAT_R64G64_SFLOAT";
        case VK_FORMAT_R64G64B64_UINT:
            return "VK_FORMAT_R64G64B64_UINT";
        case VK_FORMAT_R64G64B64_SINT:
            return "VK_FORMAT_R64G64B64_SINT";
        case VK_FORMAT_R64G64B64_SFLOAT:
            return "VK_FORMAT_R64G64B64_SFLOAT";
        case VK_FORMAT_R64G64B64A64_UINT:
            return "VK_FORMAT_R64G64B64A64_UINT";
        case VK_FORMAT_R64G64B64A64_SINT:
            return "VK_FORMAT_R64G64B64A64_SINT";
        case VK_FORMAT_R64G64B64A64_SFLOAT:
            return "VK_FORMAT_R64G64B64A64_SFLOAT";
        case VK_FORMAT_B10G11R11_UFLOAT_PACK32:
            return "VK_FORMAT_B10G11R11_UFLOAT_PACK32";
        case VK_FORMAT_E5B9G9R9_UFLOAT_PACK32:
            return "VK_FORMAT_E5B9G9R9_UFLOAT_PACK32";
        case VK_FORMAT_D16_UNORM:
            return "VK_FORMAT_D16_UNORM";
        case VK_FORMAT_X8_D24_UNORM_PACK32:
            return "VK_FORMAT_X8_D24_UNORM_PACK32";
        case VK_FORMAT_D32_SFLOAT:
            return "VK_FORMAT_D32_SFLOAT";
        case VK_FORMAT_S8_UINT:
            return "VK_FORMAT_S8_UINT";
        case VK_FORMAT_D16_UNORM_S8_UINT:
            return "VK_FORMAT_D16_UNORM_S8_UINT";
        case VK_FORMAT_D24_UNORM_S8_UINT:
            return "VK_FORMAT_D24_UNORM_S8_UINT";
        case VK_FORMAT_D32_SFLOAT_S8_UINT:
            return "VK_FORMAT_D32_SFLOAT_S8_UINT";
        case VK_FORMAT_BC1_RGB_UNORM_BLOCK:
            return "VK_FORMAT_BC1_RGB_UNORM_BLOCK";
        case VK_FORMAT_BC1_RGB_SRGB_BLOCK:
            return "VK_FORMAT_BC1_RGB_SRGB_BLOCK";
        case VK_FORMAT_BC1_RGBA_UNORM_BLOCK:
            return "VK_FORMAT_BC1_RGBA_UNORM_BLOCK";
        case VK_FORMAT_BC1_RGBA_SRGB_BLOCK:
            return "VK_FORMAT_BC1_RGBA_SRGB_BLOCK";
        case VK_FORMAT_BC2_UNORM_BLOCK:
            return "VK_FORMAT_BC2_UNORM_BLOCK";
        case VK_FORMAT_BC2_SRGB_BLOCK:
            return "VK_FORMAT_BC2_SRGB_BLOCK";
        case VK_FORMAT_BC3_UNORM_BLOCK:
            return "VK_FORMAT_BC3_UNORM_BLOCK";
        case VK_FORMAT_BC3_SRGB_BLOCK:
            return "VK_FORMAT_BC3_SRGB_BLOCK";
        case VK_FORMAT_BC4_UNORM_BLOCK:
            return "VK_FORMAT_BC4_UNORM_BLOCK";
        case VK_FORMAT_BC4_SNORM_BLOCK:
            return "VK_FORMAT_BC4_SNORM_BLOCK";
        case VK_FORMAT_BC5_UNORM_BLOCK:
            return "VK_FORMAT_BC5_UNORM_BLOCK";
        case VK_FORMAT_BC5_SNORM_BLOCK:
            return "VK_FORMAT_BC5_SNORM_BLOCK";
        case VK_FORMAT_BC6H_UFLOAT_BLOCK:
            return "VK_FORMAT_BC6H_UFLOAT_BLOCK";
        case VK_FORMAT_BC6H_SFLOAT_BLOCK:
            return "VK_FORMAT_BC6H_SFLOAT_BLOCK";
        case VK_FORMAT_BC7_UNORM_BLOCK:
            return "VK_FORMAT_BC7_UNORM_BLOCK";
        case VK_FORMAT_BC7_SRGB_BLOCK:
            return "VK_FORMAT_BC7_SRGB_BLOCK";
        case VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK:
            return "VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK";
        case VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK:
            return "VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK";
        case VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK:
            return "VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK";
        case VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK:
            return "VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK";
        case VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK:
            return "VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK";
        case VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK:
            return "VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK";
        case VK_FORMAT_EAC_R11_UNORM_BLOCK:
            return "VK_FORMAT_EAC_R11_UNORM_BLOCK";
        case VK_FORMAT_EAC_R11_SNORM_BLOCK:
            return "VK_FORMAT_EAC_R11_SNORM_BLOCK";
        case VK_FORMAT_EAC_R11G11_UNORM_BLOCK:
            return "VK_FORMAT_EAC_R11G11_UNORM_BLOCK";
        case VK_FORMAT_EAC_R11G11_SNORM_BLOCK:
            return "VK_FORMAT_EAC_R11G11_SNORM_BLOCK";
        case VK_FORMAT_ASTC_4x4_UNORM_BLOCK:
            return "VK_FORMAT_ASTC_4x4_UNORM_BLOCK";
        case VK_FORMAT_ASTC_4x4_SRGB_BLOCK:
            return "VK_FORMAT_ASTC_4x4_SRGB_BLOCK";
        case VK_FORMAT_ASTC_5x4_UNORM_BLOCK:
            return "VK_FORMAT_ASTC_5x4_UNORM_BLOCK";
        case VK_FORMAT_ASTC_5x4_SRGB_BLOCK:
            return "VK_FORMAT_ASTC_5x4_SRGB_BLOCK";
        case VK_FORMAT_ASTC_5x5_UNORM_BLOCK:
            return "VK_FORMAT_ASTC_5x5_UNORM_BLOCK";
        case VK_FORMAT_ASTC_5x5_SRGB_BLOCK:
            return "VK_FORMAT_ASTC_5x5_SRGB_BLOCK";
        case VK_FORMAT_ASTC_6x5_UNORM_BLOCK:
            return "VK_FORMAT_ASTC_6x5_UNORM_BLOCK";
        case VK_FORMAT_ASTC_6x5_SRGB_BLOCK:
            return "VK_FORMAT_ASTC_6x5_SRGB_BLOCK";
        case VK_FORMAT_ASTC_6x6_UNORM_BLOCK:
            return "VK_FORMAT_ASTC_6x6_UNORM_BLOCK";
        case VK_FORMAT_ASTC_6x6_SRGB_BLOCK:
            return "VK_FORMAT_ASTC_6x6_SRGB_BLOCK";
        case VK_FORMAT_ASTC_8x5_UNORM_BLOCK:
            return "VK_FORMAT_ASTC_8x5_UNORM_BLOCK";
        case VK_FORMAT_ASTC_8x5_SRGB_BLOCK:
            return "VK_FORMAT_ASTC_8x5_SRGB_BLOCK";
        case VK_FORMAT_ASTC_8x6_UNORM_BLOCK:
            return "VK_FORMAT_ASTC_8x6_UNORM_BLOCK";
        case VK_FORMAT_ASTC_8x6_SRGB_BLOCK:
            return "VK_FORMAT_ASTC_8x6_SRGB_BLOCK";
        case VK_FORMAT_ASTC_8x8_UNORM_BLOCK:
            return "VK_FORMAT_ASTC_8x8_UNORM_BLOCK";
        case VK_FORMAT_ASTC_8x8_SRGB_BLOCK:
            return "VK_FORMAT_ASTC_8x8_SRGB_BLOCK";
        case VK_FORMAT_ASTC_10x5_UNORM_BLOCK:
            return "VK_FORMAT_ASTC_10x5_UNORM_BLOCK";
        case VK_FORMAT_ASTC_10x5_SRGB_BLOCK:
            return "VK_FORMAT_ASTC_10x5_SRGB_BLOCK";
        case VK_FORMAT_ASTC_10x6_UNORM_BLOCK:
            return "VK_FORMAT_ASTC_10x6_UNORM_BLOCK";
        case VK_FORMAT_ASTC_10x6_SRGB_BLOCK:
            return "VK_FORMAT_ASTC_10x6_SRGB_BLOCK";
        case VK_FORMAT_ASTC_10x8_UNORM_BLOCK:
            return "VK_FORMAT_ASTC_10x8_UNORM_BLOCK";
        case VK_FORMAT_ASTC_10x8_SRGB_BLOCK:
            return "VK_FORMAT_ASTC_10x8_SRGB_BLOCK";
        case VK_FORMAT_ASTC_10x10_UNORM_BLOCK:
            return "VK_FORMAT_ASTC_10x10_UNORM_BLOCK";
        case VK_FORMAT_ASTC_10x10_SRGB_BLOCK:
            return "VK_FORMAT_ASTC_10x10_SRGB_BLOCK";
        case VK_FORMAT_ASTC_12x10_UNORM_BLOCK:
            return "VK_FORMAT_ASTC_12x10_UNORM_BLOCK";
        case VK_FORMAT_ASTC_12x10_SRGB_BLOCK:
            return "VK_FORMAT_ASTC_12x10_SRGB_BLOCK";
        case VK_FORMAT_ASTC_12x12_UNORM_BLOCK:
            return "VK_FORMAT_ASTC_12x12_UNORM_BLOCK";
        case VK_FORMAT_ASTC_12x12_SRGB_BLOCK:
            return "VK_FORMAT_ASTC_12x12_SRGB_BLOCK";
        case VK_FORMAT_G8B8G8R8_422_UNORM:
            return "VK_FORMAT_G8B8G8R8_422_UNORM";
        case VK_FORMAT_B8G8R8G8_422_UNORM:
            return "VK_FORMAT_B8G8R8G8_422_UNORM";
        case VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM:
            return "VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM";
        case VK_FORMAT_G8_B8R8_2PLANE_420_UNORM:
            return "VK_FORMAT_G8_B8R8_2PLANE_420_UNORM";
        case VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM:
            return "VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM";
        case VK_FORMAT_G8_B8R8_2PLANE_422_UNORM:
            return "VK_FORMAT_G8_B8R8_2PLANE_422_UNORM";
        case VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM:
            return "VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM";
        case VK_FORMAT_R10X6_UNORM_PACK16:
            return "VK_FORMAT_R10X6_UNORM_PACK16";
        case VK_FORMAT_R10X6G10X6_UNORM_2PACK16:
            return "VK_FORMAT_R10X6G10X6_UNORM_2PACK16";
        case VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16:
            return "VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16";
        case VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16:
            return "VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16";
        case VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16:
            return "VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16";
        case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16:
            return "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16";
        case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16:
            return "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16";
        case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16:
            return "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16";
        case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16:
            return "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16";
        case VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16:
            return "VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16";
        case VK_FORMAT_R12X4_UNORM_PACK16:
            return "VK_FORMAT_R12X4_UNORM_PACK16";
        case VK_FORMAT_R12X4G12X4_UNORM_2PACK16:
            return "VK_FORMAT_R12X4G12X4_UNORM_2PACK16";
        case VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16:
            return "VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16";
        case VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16:
            return "VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16";
        case VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16:
            return "VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16";
        case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16:
            return "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16";
        case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16:
            return "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16";
        case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16:
            return "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16";
        case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16:
            return "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16";
        case VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16:
            return "VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16";
        case VK_FORMAT_G16B16G16R16_422_UNORM:
            return "VK_FORMAT_G16B16G16R16_422_UNORM";
        case VK_FORMAT_B16G16R16G16_422_UNORM:
            return "VK_FORMAT_B16G16R16G16_422_UNORM";
        case VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM:
            return "VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM";
        case VK_FORMAT_G16_B16R16_2PLANE_420_UNORM:
            return "VK_FORMAT_G16_B16R16_2PLANE_420_UNORM";
        case VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM:
            return "VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM";
        case VK_FORMAT_G16_B16R16_2PLANE_422_UNORM:
            return "VK_FORMAT_G16_B16R16_2PLANE_422_UNORM";
        case VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM:
            return "VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM";
        case VK_FORMAT_G8_B8R8_2PLANE_444_UNORM:
            return "VK_FORMAT_G8_B8R8_2PLANE_444_UNORM";
        case VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16:
            return "VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16";
        case VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16:
            return "VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16";
        case VK_FORMAT_G16_B16R16_2PLANE_444_UNORM:
            return "VK_FORMAT_G16_B16R16_2PLANE_444_UNORM";
        case VK_FORMAT_A4R4G4B4_UNORM_PACK16:
            return "VK_FORMAT_A4R4G4B4_UNORM_PACK16";
        case VK_FORMAT_A4B4G4R4_UNORM_PACK16:
            return "VK_FORMAT_A4B4G4R4_UNORM_PACK16";
        case VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK:
            return "VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK";
        case VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK:
            return "VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK";
        case VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK:
            return "VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK";
        case VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK:
            return "VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK";
        case VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK:
            return "VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK";
        case VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK:
            return "VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK";
        case VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK:
            return "VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK";
        case VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK:
            return "VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK";
        case VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK:
            return "VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK";
        case VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK:
            return "VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK";
        case VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK:
            return "VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK";
        case VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK:
            return "VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK";
        case VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK:
            return "VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK";
        case VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK:
            return "VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK";
        case VK_FORMAT_A1B5G5R5_UNORM_PACK16:
            return "VK_FORMAT_A1B5G5R5_UNORM_PACK16";
        case VK_FORMAT_A8_UNORM:
            return "VK_FORMAT_A8_UNORM";
        case VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG:
            return "VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG";
        case VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG:
            return "VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG";
        case VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG:
            return "VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG";
        case VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG:
            return "VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG";
        case VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG:
            return "VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG";
        case VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG:
            return "VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG";
        case VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG:
            return "VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG";
        case VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG:
            return "VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG";
        case VK_FORMAT_ASTC_3x3x3_UNORM_BLOCK_EXT:
            return "VK_FORMAT_ASTC_3x3x3_UNORM_BLOCK_EXT";
        case VK_FORMAT_ASTC_3x3x3_SRGB_BLOCK_EXT:
            return "VK_FORMAT_ASTC_3x3x3_SRGB_BLOCK_EXT";
        case VK_FORMAT_ASTC_3x3x3_SFLOAT_BLOCK_EXT:
            return "VK_FORMAT_ASTC_3x3x3_SFLOAT_BLOCK_EXT";
        case VK_FORMAT_ASTC_4x3x3_UNORM_BLOCK_EXT:
            return "VK_FORMAT_ASTC_4x3x3_UNORM_BLOCK_EXT";
        case VK_FORMAT_ASTC_4x3x3_SRGB_BLOCK_EXT:
            return "VK_FORMAT_ASTC_4x3x3_SRGB_BLOCK_EXT";
        case VK_FORMAT_ASTC_4x3x3_SFLOAT_BLOCK_EXT:
            return "VK_FORMAT_ASTC_4x3x3_SFLOAT_BLOCK_EXT";
        case VK_FORMAT_ASTC_4x4x3_UNORM_BLOCK_EXT:
            return "VK_FORMAT_ASTC_4x4x3_UNORM_BLOCK_EXT";
        case VK_FORMAT_ASTC_4x4x3_SRGB_BLOCK_EXT:
            return "VK_FORMAT_ASTC_4x4x3_SRGB_BLOCK_EXT";
        case VK_FORMAT_ASTC_4x4x3_SFLOAT_BLOCK_EXT:
            return "VK_FORMAT_ASTC_4x4x3_SFLOAT_BLOCK_EXT";
        case VK_FORMAT_ASTC_4x4x4_UNORM_BLOCK_EXT:
            return "VK_FORMAT_ASTC_4x4x4_UNORM_BLOCK_EXT";
        case VK_FORMAT_ASTC_4x4x4_SRGB_BLOCK_EXT:
            return "VK_FORMAT_ASTC_4x4x4_SRGB_BLOCK_EXT";
        case VK_FORMAT_ASTC_4x4x4_SFLOAT_BLOCK_EXT:
            return "VK_FORMAT_ASTC_4x4x4_SFLOAT_BLOCK_EXT";
        case VK_FORMAT_ASTC_5x4x4_UNORM_BLOCK_EXT:
            return "VK_FORMAT_ASTC_5x4x4_UNORM_BLOCK_EXT";
        case VK_FORMAT_ASTC_5x4x4_SRGB_BLOCK_EXT:
            return "VK_FORMAT_ASTC_5x4x4_SRGB_BLOCK_EXT";
        case VK_FORMAT_ASTC_5x4x4_SFLOAT_BLOCK_EXT:
            return "VK_FORMAT_ASTC_5x4x4_SFLOAT_BLOCK_EXT";
        case VK_FORMAT_ASTC_5x5x4_UNORM_BLOCK_EXT:
            return "VK_FORMAT_ASTC_5x5x4_UNORM_BLOCK_EXT";
        case VK_FORMAT_ASTC_5x5x4_SRGB_BLOCK_EXT:
            return "VK_FORMAT_ASTC_5x5x4_SRGB_BLOCK_EXT";
        case VK_FORMAT_ASTC_5x5x4_SFLOAT_BLOCK_EXT:
            return "VK_FORMAT_ASTC_5x5x4_SFLOAT_BLOCK_EXT";
        case VK_FORMAT_ASTC_5x5x5_UNORM_BLOCK_EXT:
            return "VK_FORMAT_ASTC_5x5x5_UNORM_BLOCK_EXT";
        case VK_FORMAT_ASTC_5x5x5_SRGB_BLOCK_EXT:
            return "VK_FORMAT_ASTC_5x5x5_SRGB_BLOCK_EXT";
        case VK_FORMAT_ASTC_5x5x5_SFLOAT_BLOCK_EXT:
            return "VK_FORMAT_ASTC_5x5x5_SFLOAT_BLOCK_EXT";
        case VK_FORMAT_ASTC_6x5x5_UNORM_BLOCK_EXT:
            return "VK_FORMAT_ASTC_6x5x5_UNORM_BLOCK_EXT";
        case VK_FORMAT_ASTC_6x5x5_SRGB_BLOCK_EXT:
            return "VK_FORMAT_ASTC_6x5x5_SRGB_BLOCK_EXT";
        case VK_FORMAT_ASTC_6x5x5_SFLOAT_BLOCK_EXT:
            return "VK_FORMAT_ASTC_6x5x5_SFLOAT_BLOCK_EXT";
        case VK_FORMAT_ASTC_6x6x5_UNORM_BLOCK_EXT:
            return "VK_FORMAT_ASTC_6x6x5_UNORM_BLOCK_EXT";
        case VK_FORMAT_ASTC_6x6x5_SRGB_BLOCK_EXT:
            return "VK_FORMAT_ASTC_6x6x5_SRGB_BLOCK_EXT";
        case VK_FORMAT_ASTC_6x6x5_SFLOAT_BLOCK_EXT:
            return "VK_FORMAT_ASTC_6x6x5_SFLOAT_BLOCK_EXT";
        case VK_FORMAT_ASTC_6x6x6_UNORM_BLOCK_EXT:
            return "VK_FORMAT_ASTC_6x6x6_UNORM_BLOCK_EXT";
        case VK_FORMAT_ASTC_6x6x6_SRGB_BLOCK_EXT:
            return "VK_FORMAT_ASTC_6x6x6_SRGB_BLOCK_EXT";
        case VK_FORMAT_ASTC_6x6x6_SFLOAT_BLOCK_EXT:
            return "VK_FORMAT_ASTC_6x6x6_SFLOAT_BLOCK_EXT";
        case VK_FORMAT_R8_BOOL_ARM:
            return "VK_FORMAT_R8_BOOL_ARM";
        case VK_FORMAT_R16G16_SFIXED5_NV:
            return "VK_FORMAT_R16G16_SFIXED5_NV";
        case VK_FORMAT_R10X6_UINT_PACK16_ARM:
            return "VK_FORMAT_R10X6_UINT_PACK16_ARM";
        case VK_FORMAT_R10X6G10X6_UINT_2PACK16_ARM:
            return "VK_FORMAT_R10X6G10X6_UINT_2PACK16_ARM";
        case VK_FORMAT_R10X6G10X6B10X6A10X6_UINT_4PACK16_ARM:
            return "VK_FORMAT_R10X6G10X6B10X6A10X6_UINT_4PACK16_ARM";
        case VK_FORMAT_R12X4_UINT_PACK16_ARM:
            return "VK_FORMAT_R12X4_UINT_PACK16_ARM";
        case VK_FORMAT_R12X4G12X4_UINT_2PACK16_ARM:
            return "VK_FORMAT_R12X4G12X4_UINT_2PACK16_ARM";
        case VK_FORMAT_R12X4G12X4B12X4A12X4_UINT_4PACK16_ARM:
            return "VK_FORMAT_R12X4G12X4B12X4A12X4_UINT_4PACK16_ARM";
        case VK_FORMAT_R14X2_UINT_PACK16_ARM:
            return "VK_FORMAT_R14X2_UINT_PACK16_ARM";
        case VK_FORMAT_R14X2G14X2_UINT_2PACK16_ARM:
            return "VK_FORMAT_R14X2G14X2_UINT_2PACK16_ARM";
        case VK_FORMAT_R14X2G14X2B14X2A14X2_UINT_4PACK16_ARM:
            return "VK_FORMAT_R14X2G14X2B14X2A14X2_UINT_4PACK16_ARM";
        case VK_FORMAT_R14X2_UNORM_PACK16_ARM:
            return "VK_FORMAT_R14X2_UNORM_PACK16_ARM";
        case VK_FORMAT_R14X2G14X2_UNORM_2PACK16_ARM:
            return "VK_FORMAT_R14X2G14X2_UNORM_2PACK16_ARM";
        case VK_FORMAT_R14X2G14X2B14X2A14X2_UNORM_4PACK16_ARM:
            return "VK_FORMAT_R14X2G14X2B14X2A14X2_UNORM_4PACK16_ARM";
        case VK_FORMAT_G14X2_B14X2R14X2_2PLANE_420_UNORM_3PACK16_ARM:
            return "VK_FORMAT_G14X2_B14X2R14X2_2PLANE_420_UNORM_3PACK16_ARM";
        case VK_FORMAT_G14X2_B14X2R14X2_2PLANE_422_UNORM_3PACK16_ARM:
            return "VK_FORMAT_G14X2_B14X2R14X2_2PLANE_422_UNORM_3PACK16_ARM";
        default:
            return "Unhandled VkFormat";
    }
}
static inline const char* string_VkImageTiling(VkImageTiling input_value) {
    switch (input_value) {
        case VK_IMAGE_TILING_OPTIMAL:
            return "VK_IMAGE_TILING_OPTIMAL";
        case VK_IMAGE_TILING_LINEAR:
            return "VK_IMAGE_TILING_LINEAR";
        case VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT:
            return "VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT";
        default:
            return "Unhandled VkImageTiling";
    }
}
static inline const char* string_VkImageType(VkImageType input_value) {
    switch (input_value) {
        case VK_IMAGE_TYPE_1D:
            return "VK_IMAGE_TYPE_1D";
        case VK_IMAGE_TYPE_2D:
            return "VK_IMAGE_TYPE_2D";
        case VK_IMAGE_TYPE_3D:
            return "VK_IMAGE_TYPE_3D";
        default:
            return "Unhandled VkImageType";
    }
}
static inline const char* string_VkPhysicalDeviceType(VkPhysicalDeviceType input_value) {
    switch (input_value) {
        case VK_PHYSICAL_DEVICE_TYPE_OTHER:
            return "VK_PHYSICAL_DEVICE_TYPE_OTHER";
        case VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU:
            return "VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU";
        case VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU:
            return "VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU";
        case VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU:
            return "VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU";
        case VK_PHYSICAL_DEVICE_TYPE_CPU:
            return "VK_PHYSICAL_DEVICE_TYPE_CPU";
        default:
            return "Unhandled VkPhysicalDeviceType";
    }
}
static inline const char* string_VkQueryType(VkQueryType input_value) {
    switch (input_value) {
        case VK_QUERY_TYPE_OCCLUSION:
            return "VK_QUERY_TYPE_OCCLUSION";
        case VK_QUERY_TYPE_PIPELINE_STATISTICS:
            return "VK_QUERY_TYPE_PIPELINE_STATISTICS";
        case VK_QUERY_TYPE_TIMESTAMP:
            return "VK_QUERY_TYPE_TIMESTAMP";
        case VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR:
            return "VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR";
        case VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT:
            return "VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT";
        case VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR:
            return "VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR";
        case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR:
            return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR";
        case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR:
            return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR";
        case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV:
            return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV";
        case VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL:
            return "VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL";
        case VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR:
            return "VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR";
        case VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT:
            return "VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT";
        case VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT:
            return "VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT";
        case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR:
            return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR";
        case VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR:
            return "VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR";
        case VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT:
            return "VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT";
        case VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT:
            return "VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT";
        default:
            return "Unhandled VkQueryType";
    }
}
static inline const char* string_VkSharingMode(VkSharingMode input_value) {
    switch (input_value) {
        case VK_SHARING_MODE_EXCLUSIVE:
            return "VK_SHARING_MODE_EXCLUSIVE";
        case VK_SHARING_MODE_CONCURRENT:
            return "VK_SHARING_MODE_CONCURRENT";
        default:
            return "Unhandled VkSharingMode";
    }
}
static inline const char* string_VkComponentSwizzle(VkComponentSwizzle input_value) {
    switch (input_value) {
        case VK_COMPONENT_SWIZZLE_IDENTITY:
            return "VK_COMPONENT_SWIZZLE_IDENTITY";
        case VK_COMPONENT_SWIZZLE_ZERO:
            return "VK_COMPONENT_SWIZZLE_ZERO";
        case VK_COMPONENT_SWIZZLE_ONE:
            return "VK_COMPONENT_SWIZZLE_ONE";
        case VK_COMPONENT_SWIZZLE_R:
            return "VK_COMPONENT_SWIZZLE_R";
        case VK_COMPONENT_SWIZZLE_G:
            return "VK_COMPONENT_SWIZZLE_G";
        case VK_COMPONENT_SWIZZLE_B:
            return "VK_COMPONENT_SWIZZLE_B";
        case VK_COMPONENT_SWIZZLE_A:
            return "VK_COMPONENT_SWIZZLE_A";
        default:
            return "Unhandled VkComponentSwizzle";
    }
}
static inline const char* string_VkImageViewType(VkImageViewType input_value) {
    switch (input_value) {
        case VK_IMAGE_VIEW_TYPE_1D:
            return "VK_IMAGE_VIEW_TYPE_1D";
        case VK_IMAGE_VIEW_TYPE_2D:
            return "VK_IMAGE_VIEW_TYPE_2D";
        case VK_IMAGE_VIEW_TYPE_3D:
            return "VK_IMAGE_VIEW_TYPE_3D";
        case VK_IMAGE_VIEW_TYPE_CUBE:
            return "VK_IMAGE_VIEW_TYPE_CUBE";
        case VK_IMAGE_VIEW_TYPE_1D_ARRAY:
            return "VK_IMAGE_VIEW_TYPE_1D_ARRAY";
        case VK_IMAGE_VIEW_TYPE_2D_ARRAY:
            return "VK_IMAGE_VIEW_TYPE_2D_ARRAY";
        case VK_IMAGE_VIEW_TYPE_CUBE_ARRAY:
            return "VK_IMAGE_VIEW_TYPE_CUBE_ARRAY";
        default:
            return "Unhandled VkImageViewType";
    }
}
static inline const char* string_VkCommandBufferLevel(VkCommandBufferLevel input_value) {
    switch (input_value) {
        case VK_COMMAND_BUFFER_LEVEL_PRIMARY:
            return "VK_COMMAND_BUFFER_LEVEL_PRIMARY";
        case VK_COMMAND_BUFFER_LEVEL_SECONDARY:
            return "VK_COMMAND_BUFFER_LEVEL_SECONDARY";
        default:
            return "Unhandled VkCommandBufferLevel";
    }
}
static inline const char* string_VkIndexType(VkIndexType input_value) {
    switch (input_value) {
        case VK_INDEX_TYPE_UINT16:
            return "VK_INDEX_TYPE_UINT16";
        case VK_INDEX_TYPE_UINT32:
            return "VK_INDEX_TYPE_UINT32";
        case VK_INDEX_TYPE_UINT8:
            return "VK_INDEX_TYPE_UINT8";
        case VK_INDEX_TYPE_NONE_KHR:
            return "VK_INDEX_TYPE_NONE_KHR";
        default:
            return "Unhandled VkIndexType";
    }
}
static inline const char* string_VkPipelineCacheHeaderVersion(VkPipelineCacheHeaderVersion input_value) {
    switch (input_value) {
        case VK_PIPELINE_CACHE_HEADER_VERSION_ONE:
            return "VK_PIPELINE_CACHE_HEADER_VERSION_ONE";
        case VK_PIPELINE_CACHE_HEADER_VERSION_DATA_GRAPH_QCOM:
            return "VK_PIPELINE_CACHE_HEADER_VERSION_DATA_GRAPH_QCOM";
        default:
            return "Unhandled VkPipelineCacheHeaderVersion";
    }
}
static inline const char* string_VkBorderColor(VkBorderColor input_value) {
    switch (input_value) {
        case VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK:
            return "VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK";
        case VK_BORDER_COLOR_INT_TRANSPARENT_BLACK:
            return "VK_BORDER_COLOR_INT_TRANSPARENT_BLACK";
        case VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK:
            return "VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK";
        case VK_BORDER_COLOR_INT_OPAQUE_BLACK:
            return "VK_BORDER_COLOR_INT_OPAQUE_BLACK";
        case VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE:
            return "VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE";
        case VK_BORDER_COLOR_INT_OPAQUE_WHITE:
            return "VK_BORDER_COLOR_INT_OPAQUE_WHITE";
        case VK_BORDER_COLOR_FLOAT_CUSTOM_EXT:
            return "VK_BORDER_COLOR_FLOAT_CUSTOM_EXT";
        case VK_BORDER_COLOR_INT_CUSTOM_EXT:
            return "VK_BORDER_COLOR_INT_CUSTOM_EXT";
        default:
            return "Unhandled VkBorderColor";
    }
}
static inline const char* string_VkFilter(VkFilter input_value) {
    switch (input_value) {
        case VK_FILTER_NEAREST:
            return "VK_FILTER_NEAREST";
        case VK_FILTER_LINEAR:
            return "VK_FILTER_LINEAR";
        case VK_FILTER_CUBIC_EXT:
            return "VK_FILTER_CUBIC_EXT";
        default:
            return "Unhandled VkFilter";
    }
}
static inline const char* string_VkSamplerAddressMode(VkSamplerAddressMode input_value) {
    switch (input_value) {
        case VK_SAMPLER_ADDRESS_MODE_REPEAT:
            return "VK_SAMPLER_ADDRESS_MODE_REPEAT";
        case VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT:
            return "VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT";
        case VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE:
            return "VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE";
        case VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER:
            return "VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER";
        case VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE:
            return "VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE";
        default:
            return "Unhandled VkSamplerAddressMode";
    }
}
static inline const char* string_VkSamplerMipmapMode(VkSamplerMipmapMode input_value) {
    switch (input_value) {
        case VK_SAMPLER_MIPMAP_MODE_NEAREST:
            return "VK_SAMPLER_MIPMAP_MODE_NEAREST";
        case VK_SAMPLER_MIPMAP_MODE_LINEAR:
            return "VK_SAMPLER_MIPMAP_MODE_LINEAR";
        default:
            return "Unhandled VkSamplerMipmapMode";
    }
}
static inline const char* string_VkCompareOp(VkCompareOp input_value) {
    switch (input_value) {
        case VK_COMPARE_OP_NEVER:
            return "VK_COMPARE_OP_NEVER";
        case VK_COMPARE_OP_LESS:
            return "VK_COMPARE_OP_LESS";
        case VK_COMPARE_OP_EQUAL:
            return "VK_COMPARE_OP_EQUAL";
        case VK_COMPARE_OP_LESS_OR_EQUAL:
            return "VK_COMPARE_OP_LESS_OR_EQUAL";
        case VK_COMPARE_OP_GREATER:
            return "VK_COMPARE_OP_GREATER";
        case VK_COMPARE_OP_NOT_EQUAL:
            return "VK_COMPARE_OP_NOT_EQUAL";
        case VK_COMPARE_OP_GREATER_OR_EQUAL:
            return "VK_COMPARE_OP_GREATER_OR_EQUAL";
        case VK_COMPARE_OP_ALWAYS:
            return "VK_COMPARE_OP_ALWAYS";
        default:
            return "Unhandled VkCompareOp";
    }
}
static inline const char* string_VkDescriptorType(VkDescriptorType input_value) {
    switch (input_value) {
        case VK_DESCRIPTOR_TYPE_SAMPLER:
            return "VK_DESCRIPTOR_TYPE_SAMPLER";
        case VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER:
            return "VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER";
        case VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE:
            return "VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE";
        case VK_DESCRIPTOR_TYPE_STORAGE_IMAGE:
            return "VK_DESCRIPTOR_TYPE_STORAGE_IMAGE";
        case VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER:
            return "VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER";
        case VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER:
            return "VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER";
        case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER:
            return "VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER";
        case VK_DESCRIPTOR_TYPE_STORAGE_BUFFER:
            return "VK_DESCRIPTOR_TYPE_STORAGE_BUFFER";
        case VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC:
            return "VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC";
        case VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC:
            return "VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC";
        case VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT:
            return "VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT";
        case VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK:
            return "VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK";
        case VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR:
            return "VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR";
        case VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV:
            return "VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV";
        case VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM:
            return "VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM";
        case VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM:
            return "VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM";
        case VK_DESCRIPTOR_TYPE_TENSOR_ARM:
            return "VK_DESCRIPTOR_TYPE_TENSOR_ARM";
        case VK_DESCRIPTOR_TYPE_MUTABLE_EXT:
            return "VK_DESCRIPTOR_TYPE_MUTABLE_EXT";
        case VK_DESCRIPTOR_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_NV:
            return "VK_DESCRIPTOR_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_NV";
        default:
            return "Unhandled VkDescriptorType";
    }
}
static inline const char* string_VkPipelineBindPoint(VkPipelineBindPoint input_value) {
    switch (input_value) {
        case VK_PIPELINE_BIND_POINT_GRAPHICS:
            return "VK_PIPELINE_BIND_POINT_GRAPHICS";
        case VK_PIPELINE_BIND_POINT_COMPUTE:
            return "VK_PIPELINE_BIND_POINT_COMPUTE";
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_PIPELINE_BIND_POINT_EXECUTION_GRAPH_AMDX:
            return "VK_PIPELINE_BIND_POINT_EXECUTION_GRAPH_AMDX";
#endif  // VK_ENABLE_BETA_EXTENSIONS
        case VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR:
            return "VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR";
        case VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI:
            return "VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI";
        case VK_PIPELINE_BIND_POINT_DATA_GRAPH_ARM:
            return "VK_PIPELINE_BIND_POINT_DATA_GRAPH_ARM";
        default:
            return "Unhandled VkPipelineBindPoint";
    }
}
static inline const char* string_VkBlendFactor(VkBlendFactor input_value) {
    switch (input_value) {
        case VK_BLEND_FACTOR_ZERO:
            return "VK_BLEND_FACTOR_ZERO";
        case VK_BLEND_FACTOR_ONE:
            return "VK_BLEND_FACTOR_ONE";
        case VK_BLEND_FACTOR_SRC_COLOR:
            return "VK_BLEND_FACTOR_SRC_COLOR";
        case VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR:
            return "VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR";
        case VK_BLEND_FACTOR_DST_COLOR:
            return "VK_BLEND_FACTOR_DST_COLOR";
        case VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR:
            return "VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR";
        case VK_BLEND_FACTOR_SRC_ALPHA:
            return "VK_BLEND_FACTOR_SRC_ALPHA";
        case VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA:
            return "VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA";
        case VK_BLEND_FACTOR_DST_ALPHA:
            return "VK_BLEND_FACTOR_DST_ALPHA";
        case VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA:
            return "VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA";
        case VK_BLEND_FACTOR_CONSTANT_COLOR:
            return "VK_BLEND_FACTOR_CONSTANT_COLOR";
        case VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR:
            return "VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR";
        case VK_BLEND_FACTOR_CONSTANT_ALPHA:
            return "VK_BLEND_FACTOR_CONSTANT_ALPHA";
        case VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA:
            return "VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA";
        case VK_BLEND_FACTOR_SRC_ALPHA_SATURATE:
            return "VK_BLEND_FACTOR_SRC_ALPHA_SATURATE";
        case VK_BLEND_FACTOR_SRC1_COLOR:
            return "VK_BLEND_FACTOR_SRC1_COLOR";
        case VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR:
            return "VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR";
        case VK_BLEND_FACTOR_SRC1_ALPHA:
            return "VK_BLEND_FACTOR_SRC1_ALPHA";
        case VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA:
            return "VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA";
        default:
            return "Unhandled VkBlendFactor";
    }
}
static inline const char* string_VkBlendOp(VkBlendOp input_value) {
    switch (input_value) {
        case VK_BLEND_OP_ADD:
            return "VK_BLEND_OP_ADD";
        case VK_BLEND_OP_SUBTRACT:
            return "VK_BLEND_OP_SUBTRACT";
        case VK_BLEND_OP_REVERSE_SUBTRACT:
            return "VK_BLEND_OP_REVERSE_SUBTRACT";
        case VK_BLEND_OP_MIN:
            return "VK_BLEND_OP_MIN";
        case VK_BLEND_OP_MAX:
            return "VK_BLEND_OP_MAX";
        case VK_BLEND_OP_ZERO_EXT:
            return "VK_BLEND_OP_ZERO_EXT";
        case VK_BLEND_OP_SRC_EXT:
            return "VK_BLEND_OP_SRC_EXT";
        case VK_BLEND_OP_DST_EXT:
            return "VK_BLEND_OP_DST_EXT";
        case VK_BLEND_OP_SRC_OVER_EXT:
            return "VK_BLEND_OP_SRC_OVER_EXT";
        case VK_BLEND_OP_DST_OVER_EXT:
            return "VK_BLEND_OP_DST_OVER_EXT";
        case VK_BLEND_OP_SRC_IN_EXT:
            return "VK_BLEND_OP_SRC_IN_EXT";
        case VK_BLEND_OP_DST_IN_EXT:
            return "VK_BLEND_OP_DST_IN_EXT";
        case VK_BLEND_OP_SRC_OUT_EXT:
            return "VK_BLEND_OP_SRC_OUT_EXT";
        case VK_BLEND_OP_DST_OUT_EXT:
            return "VK_BLEND_OP_DST_OUT_EXT";
        case VK_BLEND_OP_SRC_ATOP_EXT:
            return "VK_BLEND_OP_SRC_ATOP_EXT";
        case VK_BLEND_OP_DST_ATOP_EXT:
            return "VK_BLEND_OP_DST_ATOP_EXT";
        case VK_BLEND_OP_XOR_EXT:
            return "VK_BLEND_OP_XOR_EXT";
        case VK_BLEND_OP_MULTIPLY_EXT:
            return "VK_BLEND_OP_MULTIPLY_EXT";
        case VK_BLEND_OP_SCREEN_EXT:
            return "VK_BLEND_OP_SCREEN_EXT";
        case VK_BLEND_OP_OVERLAY_EXT:
            return "VK_BLEND_OP_OVERLAY_EXT";
        case VK_BLEND_OP_DARKEN_EXT:
            return "VK_BLEND_OP_DARKEN_EXT";
        case VK_BLEND_OP_LIGHTEN_EXT:
            return "VK_BLEND_OP_LIGHTEN_EXT";
        case VK_BLEND_OP_COLORDODGE_EXT:
            return "VK_BLEND_OP_COLORDODGE_EXT";
        case VK_BLEND_OP_COLORBURN_EXT:
            return "VK_BLEND_OP_COLORBURN_EXT";
        case VK_BLEND_OP_HARDLIGHT_EXT:
            return "VK_BLEND_OP_HARDLIGHT_EXT";
        case VK_BLEND_OP_SOFTLIGHT_EXT:
            return "VK_BLEND_OP_SOFTLIGHT_EXT";
        case VK_BLEND_OP_DIFFERENCE_EXT:
            return "VK_BLEND_OP_DIFFERENCE_EXT";
        case VK_BLEND_OP_EXCLUSION_EXT:
            return "VK_BLEND_OP_EXCLUSION_EXT";
        case VK_BLEND_OP_INVERT_EXT:
            return "VK_BLEND_OP_INVERT_EXT";
        case VK_BLEND_OP_INVERT_RGB_EXT:
            return "VK_BLEND_OP_INVERT_RGB_EXT";
        case VK_BLEND_OP_LINEARDODGE_EXT:
            return "VK_BLEND_OP_LINEARDODGE_EXT";
        case VK_BLEND_OP_LINEARBURN_EXT:
            return "VK_BLEND_OP_LINEARBURN_EXT";
        case VK_BLEND_OP_VIVIDLIGHT_EXT:
            return "VK_BLEND_OP_VIVIDLIGHT_EXT";
        case VK_BLEND_OP_LINEARLIGHT_EXT:
            return "VK_BLEND_OP_LINEARLIGHT_EXT";
        case VK_BLEND_OP_PINLIGHT_EXT:
            return "VK_BLEND_OP_PINLIGHT_EXT";
        case VK_BLEND_OP_HARDMIX_EXT:
            return "VK_BLEND_OP_HARDMIX_EXT";
        case VK_BLEND_OP_HSL_HUE_EXT:
            return "VK_BLEND_OP_HSL_HUE_EXT";
        case VK_BLEND_OP_HSL_SATURATION_EXT:
            return "VK_BLEND_OP_HSL_SATURATION_EXT";
        case VK_BLEND_OP_HSL_COLOR_EXT:
            return "VK_BLEND_OP_HSL_COLOR_EXT";
        case VK_BLEND_OP_HSL_LUMINOSITY_EXT:
            return "VK_BLEND_OP_HSL_LUMINOSITY_EXT";
        case VK_BLEND_OP_PLUS_EXT:
            return "VK_BLEND_OP_PLUS_EXT";
        case VK_BLEND_OP_PLUS_CLAMPED_EXT:
            return "VK_BLEND_OP_PLUS_CLAMPED_EXT";
        case VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT:
            return "VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT";
        case VK_BLEND_OP_PLUS_DARKER_EXT:
            return "VK_BLEND_OP_PLUS_DARKER_EXT";
        case VK_BLEND_OP_MINUS_EXT:
            return "VK_BLEND_OP_MINUS_EXT";
        case VK_BLEND_OP_MINUS_CLAMPED_EXT:
            return "VK_BLEND_OP_MINUS_CLAMPED_EXT";
        case VK_BLEND_OP_CONTRAST_EXT:
            return "VK_BLEND_OP_CONTRAST_EXT";
        case VK_BLEND_OP_INVERT_OVG_EXT:
            return "VK_BLEND_OP_INVERT_OVG_EXT";
        case VK_BLEND_OP_RED_EXT:
            return "VK_BLEND_OP_RED_EXT";
        case VK_BLEND_OP_GREEN_EXT:
            return "VK_BLEND_OP_GREEN_EXT";
        case VK_BLEND_OP_BLUE_EXT:
            return "VK_BLEND_OP_BLUE_EXT";
        default:
            return "Unhandled VkBlendOp";
    }
}
static inline const char* string_VkDynamicState(VkDynamicState input_value) {
    switch (input_value) {
        case VK_DYNAMIC_STATE_VIEWPORT:
            return "VK_DYNAMIC_STATE_VIEWPORT";
        case VK_DYNAMIC_STATE_SCISSOR:
            return "VK_DYNAMIC_STATE_SCISSOR";
        case VK_DYNAMIC_STATE_LINE_WIDTH:
            return "VK_DYNAMIC_STATE_LINE_WIDTH";
        case VK_DYNAMIC_STATE_DEPTH_BIAS:
            return "VK_DYNAMIC_STATE_DEPTH_BIAS";
        case VK_DYNAMIC_STATE_BLEND_CONSTANTS:
            return "VK_DYNAMIC_STATE_BLEND_CONSTANTS";
        case VK_DYNAMIC_STATE_DEPTH_BOUNDS:
            return "VK_DYNAMIC_STATE_DEPTH_BOUNDS";
        case VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK:
            return "VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK";
        case VK_DYNAMIC_STATE_STENCIL_WRITE_MASK:
            return "VK_DYNAMIC_STATE_STENCIL_WRITE_MASK";
        case VK_DYNAMIC_STATE_STENCIL_REFERENCE:
            return "VK_DYNAMIC_STATE_STENCIL_REFERENCE";
        case VK_DYNAMIC_STATE_CULL_MODE:
            return "VK_DYNAMIC_STATE_CULL_MODE";
        case VK_DYNAMIC_STATE_FRONT_FACE:
            return "VK_DYNAMIC_STATE_FRONT_FACE";
        case VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY:
            return "VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY";
        case VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT:
            return "VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT";
        case VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT:
            return "VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT";
        case VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE:
            return "VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE";
        case VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE:
            return "VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE";
        case VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE:
            return "VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE";
        case VK_DYNAMIC_STATE_DEPTH_COMPARE_OP:
            return "VK_DYNAMIC_STATE_DEPTH_COMPARE_OP";
        case VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE:
            return "VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE";
        case VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE:
            return "VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE";
        case VK_DYNAMIC_STATE_STENCIL_OP:
            return "VK_DYNAMIC_STATE_STENCIL_OP";
        case VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE:
            return "VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE";
        case VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE:
            return "VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE";
        case VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE:
            return "VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE";
        case VK_DYNAMIC_STATE_LINE_STIPPLE:
            return "VK_DYNAMIC_STATE_LINE_STIPPLE";
        case VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV:
            return "VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV";
        case VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT:
            return "VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT";
        case VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT:
            return "VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT";
        case VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT:
            return "VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT";
        case VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT:
            return "VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT";
        case VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR:
            return "VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR";
        case VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV:
            return "VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV";
        case VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV:
            return "VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV";
        case VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV:
            return "VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV";
        case VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV:
            return "VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV";
        case VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR:
            return "VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR";
        case VK_DYNAMIC_STATE_VERTEX_INPUT_EXT:
            return "VK_DYNAMIC_STATE_VERTEX_INPUT_EXT";
        case VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT:
            return "VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT";
        case VK_DYNAMIC_STATE_LOGIC_OP_EXT:
            return "VK_DYNAMIC_STATE_LOGIC_OP_EXT";
        case VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT:
            return "VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT";
        case VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT:
            return "VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT";
        case VK_DYNAMIC_STATE_POLYGON_MODE_EXT:
            return "VK_DYNAMIC_STATE_POLYGON_MODE_EXT";
        case VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT:
            return "VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT";
        case VK_DYNAMIC_STATE_SAMPLE_MASK_EXT:
            return "VK_DYNAMIC_STATE_SAMPLE_MASK_EXT";
        case VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT:
            return "VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT";
        case VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT:
            return "VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT";
        case VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT:
            return "VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT";
        case VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT:
            return "VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT";
        case VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT:
            return "VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT";
        case VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT:
            return "VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT";
        case VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT:
            return "VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT";
        case VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT:
            return "VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT";
        case VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT:
            return "VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT";
        case VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT:
            return "VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT";
        case VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT:
            return "VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT";
        case VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT:
            return "VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT";
        case VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT:
            return "VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT";
        case VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT:
            return "VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT";
        case VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT:
            return "VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT";
        case VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT:
            return "VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT";
        case VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT:
            return "VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT";
        case VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV:
            return "VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV";
        case VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV:
            return "VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV";
        case VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV:
            return "VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV";
        case VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV:
            return "VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV";
        case VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV:
            return "VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV";
        case VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV:
            return "VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV";
        case VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV:
            return "VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV";
        case VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV:
            return "VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV";
        case VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV:
            return "VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV";
        case VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV:
            return "VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV";
        case VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT:
            return "VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT";
        case VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT:
            return "VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT";
        default:
            return "Unhandled VkDynamicState";
    }
}
static inline const char* string_VkFrontFace(VkFrontFace input_value) {
    switch (input_value) {
        case VK_FRONT_FACE_COUNTER_CLOCKWISE:
            return "VK_FRONT_FACE_COUNTER_CLOCKWISE";
        case VK_FRONT_FACE_CLOCKWISE:
            return "VK_FRONT_FACE_CLOCKWISE";
        default:
            return "Unhandled VkFrontFace";
    }
}
static inline const char* string_VkVertexInputRate(VkVertexInputRate input_value) {
    switch (input_value) {
        case VK_VERTEX_INPUT_RATE_VERTEX:
            return "VK_VERTEX_INPUT_RATE_VERTEX";
        case VK_VERTEX_INPUT_RATE_INSTANCE:
            return "VK_VERTEX_INPUT_RATE_INSTANCE";
        default:
            return "Unhandled VkVertexInputRate";
    }
}
static inline const char* string_VkPrimitiveTopology(VkPrimitiveTopology input_value) {
    switch (input_value) {
        case VK_PRIMITIVE_TOPOLOGY_POINT_LIST:
            return "VK_PRIMITIVE_TOPOLOGY_POINT_LIST";
        case VK_PRIMITIVE_TOPOLOGY_LINE_LIST:
            return "VK_PRIMITIVE_TOPOLOGY_LINE_LIST";
        case VK_PRIMITIVE_TOPOLOGY_LINE_STRIP:
            return "VK_PRIMITIVE_TOPOLOGY_LINE_STRIP";
        case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST:
            return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST";
        case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP:
            return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP";
        case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN:
            return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN";
        case VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY:
            return "VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY";
        case VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY:
            return "VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY";
        case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY:
            return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY";
        case VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY:
            return "VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY";
        case VK_PRIMITIVE_TOPOLOGY_PATCH_LIST:
            return "VK_PRIMITIVE_TOPOLOGY_PATCH_LIST";
        default:
            return "Unhandled VkPrimitiveTopology";
    }
}
static inline const char* string_VkPolygonMode(VkPolygonMode input_value) {
    switch (input_value) {
        case VK_POLYGON_MODE_FILL:
            return "VK_POLYGON_MODE_FILL";
        case VK_POLYGON_MODE_LINE:
            return "VK_POLYGON_MODE_LINE";
        case VK_POLYGON_MODE_POINT:
            return "VK_POLYGON_MODE_POINT";
        case VK_POLYGON_MODE_FILL_RECTANGLE_NV:
            return "VK_POLYGON_MODE_FILL_RECTANGLE_NV";
        default:
            return "Unhandled VkPolygonMode";
    }
}
static inline const char* string_VkStencilOp(VkStencilOp input_value) {
    switch (input_value) {
        case VK_STENCIL_OP_KEEP:
            return "VK_STENCIL_OP_KEEP";
        case VK_STENCIL_OP_ZERO:
            return "VK_STENCIL_OP_ZERO";
        case VK_STENCIL_OP_REPLACE:
            return "VK_STENCIL_OP_REPLACE";
        case VK_STENCIL_OP_INCREMENT_AND_CLAMP:
            return "VK_STENCIL_OP_INCREMENT_AND_CLAMP";
        case VK_STENCIL_OP_DECREMENT_AND_CLAMP:
            return "VK_STENCIL_OP_DECREMENT_AND_CLAMP";
        case VK_STENCIL_OP_INVERT:
            return "VK_STENCIL_OP_INVERT";
        case VK_STENCIL_OP_INCREMENT_AND_WRAP:
            return "VK_STENCIL_OP_INCREMENT_AND_WRAP";
        case VK_STENCIL_OP_DECREMENT_AND_WRAP:
            return "VK_STENCIL_OP_DECREMENT_AND_WRAP";
        default:
            return "Unhandled VkStencilOp";
    }
}
static inline const char* string_VkLogicOp(VkLogicOp input_value) {
    switch (input_value) {
        case VK_LOGIC_OP_CLEAR:
            return "VK_LOGIC_OP_CLEAR";
        case VK_LOGIC_OP_AND:
            return "VK_LOGIC_OP_AND";
        case VK_LOGIC_OP_AND_REVERSE:
            return "VK_LOGIC_OP_AND_REVERSE";
        case VK_LOGIC_OP_COPY:
            return "VK_LOGIC_OP_COPY";
        case VK_LOGIC_OP_AND_INVERTED:
            return "VK_LOGIC_OP_AND_INVERTED";
        case VK_LOGIC_OP_NO_OP:
            return "VK_LOGIC_OP_NO_OP";
        case VK_LOGIC_OP_XOR:
            return "VK_LOGIC_OP_XOR";
        case VK_LOGIC_OP_OR:
            return "VK_LOGIC_OP_OR";
        case VK_LOGIC_OP_NOR:
            return "VK_LOGIC_OP_NOR";
        case VK_LOGIC_OP_EQUIVALENT:
            return "VK_LOGIC_OP_EQUIVALENT";
        case VK_LOGIC_OP_INVERT:
            return "VK_LOGIC_OP_INVERT";
        case VK_LOGIC_OP_OR_REVERSE:
            return "VK_LOGIC_OP_OR_REVERSE";
        case VK_LOGIC_OP_COPY_INVERTED:
            return "VK_LOGIC_OP_COPY_INVERTED";
        case VK_LOGIC_OP_OR_INVERTED:
            return "VK_LOGIC_OP_OR_INVERTED";
        case VK_LOGIC_OP_NAND:
            return "VK_LOGIC_OP_NAND";
        case VK_LOGIC_OP_SET:
            return "VK_LOGIC_OP_SET";
        default:
            return "Unhandled VkLogicOp";
    }
}
static inline const char* string_VkAttachmentLoadOp(VkAttachmentLoadOp input_value) {
    switch (input_value) {
        case VK_ATTACHMENT_LOAD_OP_LOAD:
            return "VK_ATTACHMENT_LOAD_OP_LOAD";
        case VK_ATTACHMENT_LOAD_OP_CLEAR:
            return "VK_ATTACHMENT_LOAD_OP_CLEAR";
        case VK_ATTACHMENT_LOAD_OP_DONT_CARE:
            return "VK_ATTACHMENT_LOAD_OP_DONT_CARE";
        case VK_ATTACHMENT_LOAD_OP_NONE:
            return "VK_ATTACHMENT_LOAD_OP_NONE";
        default:
            return "Unhandled VkAttachmentLoadOp";
    }
}
static inline const char* string_VkAttachmentStoreOp(VkAttachmentStoreOp input_value) {
    switch (input_value) {
        case VK_ATTACHMENT_STORE_OP_STORE:
            return "VK_ATTACHMENT_STORE_OP_STORE";
        case VK_ATTACHMENT_STORE_OP_DONT_CARE:
            return "VK_ATTACHMENT_STORE_OP_DONT_CARE";
        case VK_ATTACHMENT_STORE_OP_NONE:
            return "VK_ATTACHMENT_STORE_OP_NONE";
        default:
            return "Unhandled VkAttachmentStoreOp";
    }
}
static inline const char* string_VkSubpassContents(VkSubpassContents input_value) {
    switch (input_value) {
        case VK_SUBPASS_CONTENTS_INLINE:
            return "VK_SUBPASS_CONTENTS_INLINE";
        case VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS:
            return "VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS";
        case VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR:
            return "VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR";
        default:
            return "Unhandled VkSubpassContents";
    }
}
static inline const char* string_VkDescriptorUpdateTemplateType(VkDescriptorUpdateTemplateType input_value) {
    switch (input_value) {
        case VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET:
            return "VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET";
        case VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS:
            return "VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS";
        default:
            return "Unhandled VkDescriptorUpdateTemplateType";
    }
}
static inline const char* string_VkSamplerYcbcrModelConversion(VkSamplerYcbcrModelConversion input_value) {
    switch (input_value) {
        case VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY:
            return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY";
        case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY:
            return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY";
        case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709:
            return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709";
        case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601:
            return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601";
        case VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020:
            return "VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020";
        default:
            return "Unhandled VkSamplerYcbcrModelConversion";
    }
}
static inline const char* string_VkSamplerYcbcrRange(VkSamplerYcbcrRange input_value) {
    switch (input_value) {
        case VK_SAMPLER_YCBCR_RANGE_ITU_FULL:
            return "VK_SAMPLER_YCBCR_RANGE_ITU_FULL";
        case VK_SAMPLER_YCBCR_RANGE_ITU_NARROW:
            return "VK_SAMPLER_YCBCR_RANGE_ITU_NARROW";
        default:
            return "Unhandled VkSamplerYcbcrRange";
    }
}
static inline const char* string_VkChromaLocation(VkChromaLocation input_value) {
    switch (input_value) {
        case VK_CHROMA_LOCATION_COSITED_EVEN:
            return "VK_CHROMA_LOCATION_COSITED_EVEN";
        case VK_CHROMA_LOCATION_MIDPOINT:
            return "VK_CHROMA_LOCATION_MIDPOINT";
        default:
            return "Unhandled VkChromaLocation";
    }
}
static inline const char* string_VkPointClippingBehavior(VkPointClippingBehavior input_value) {
    switch (input_value) {
        case VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES:
            return "VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES";
        case VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY:
            return "VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY";
        default:
            return "Unhandled VkPointClippingBehavior";
    }
}
static inline const char* string_VkTessellationDomainOrigin(VkTessellationDomainOrigin input_value) {
    switch (input_value) {
        case VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT:
            return "VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT";
        case VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT:
            return "VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT";
        default:
            return "Unhandled VkTessellationDomainOrigin";
    }
}
static inline const char* string_VkDriverId(VkDriverId input_value) {
    switch (input_value) {
        case VK_DRIVER_ID_AMD_PROPRIETARY:
            return "VK_DRIVER_ID_AMD_PROPRIETARY";
        case VK_DRIVER_ID_AMD_OPEN_SOURCE:
            return "VK_DRIVER_ID_AMD_OPEN_SOURCE";
        case VK_DRIVER_ID_MESA_RADV:
            return "VK_DRIVER_ID_MESA_RADV";
        case VK_DRIVER_ID_NVIDIA_PROPRIETARY:
            return "VK_DRIVER_ID_NVIDIA_PROPRIETARY";
        case VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS:
            return "VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS";
        case VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA:
            return "VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA";
        case VK_DRIVER_ID_IMAGINATION_PROPRIETARY:
            return "VK_DRIVER_ID_IMAGINATION_PROPRIETARY";
        case VK_DRIVER_ID_QUALCOMM_PROPRIETARY:
            return "VK_DRIVER_ID_QUALCOMM_PROPRIETARY";
        case VK_DRIVER_ID_ARM_PROPRIETARY:
            return "VK_DRIVER_ID_ARM_PROPRIETARY";
        case VK_DRIVER_ID_GOOGLE_SWIFTSHADER:
            return "VK_DRIVER_ID_GOOGLE_SWIFTSHADER";
        case VK_DRIVER_ID_GGP_PROPRIETARY:
            return "VK_DRIVER_ID_GGP_PROPRIETARY";
        case VK_DRIVER_ID_BROADCOM_PROPRIETARY:
            return "VK_DRIVER_ID_BROADCOM_PROPRIETARY";
        case VK_DRIVER_ID_MESA_LLVMPIPE:
            return "VK_DRIVER_ID_MESA_LLVMPIPE";
        case VK_DRIVER_ID_MOLTENVK:
            return "VK_DRIVER_ID_MOLTENVK";
        case VK_DRIVER_ID_COREAVI_PROPRIETARY:
            return "VK_DRIVER_ID_COREAVI_PROPRIETARY";
        case VK_DRIVER_ID_JUICE_PROPRIETARY:
            return "VK_DRIVER_ID_JUICE_PROPRIETARY";
        case VK_DRIVER_ID_VERISILICON_PROPRIETARY:
            return "VK_DRIVER_ID_VERISILICON_PROPRIETARY";
        case VK_DRIVER_ID_MESA_TURNIP:
            return "VK_DRIVER_ID_MESA_TURNIP";
        case VK_DRIVER_ID_MESA_V3DV:
            return "VK_DRIVER_ID_MESA_V3DV";
        case VK_DRIVER_ID_MESA_PANVK:
            return "VK_DRIVER_ID_MESA_PANVK";
        case VK_DRIVER_ID_SAMSUNG_PROPRIETARY:
            return "VK_DRIVER_ID_SAMSUNG_PROPRIETARY";
        case VK_DRIVER_ID_MESA_VENUS:
            return "VK_DRIVER_ID_MESA_VENUS";
        case VK_DRIVER_ID_MESA_DOZEN:
            return "VK_DRIVER_ID_MESA_DOZEN";
        case VK_DRIVER_ID_MESA_NVK:
            return "VK_DRIVER_ID_MESA_NVK";
        case VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA:
            return "VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA";
        case VK_DRIVER_ID_MESA_HONEYKRISP:
            return "VK_DRIVER_ID_MESA_HONEYKRISP";
        case VK_DRIVER_ID_VULKAN_SC_EMULATION_ON_VULKAN:
            return "VK_DRIVER_ID_VULKAN_SC_EMULATION_ON_VULKAN";
        case VK_DRIVER_ID_MESA_KOSMICKRISP:
            return "VK_DRIVER_ID_MESA_KOSMICKRISP";
        default:
            return "Unhandled VkDriverId";
    }
}
static inline const char* string_VkShaderFloatControlsIndependence(VkShaderFloatControlsIndependence input_value) {
    switch (input_value) {
        case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY:
            return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY";
        case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL:
            return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL";
        case VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE:
            return "VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE";
        default:
            return "Unhandled VkShaderFloatControlsIndependence";
    }
}
static inline const char* string_VkSemaphoreType(VkSemaphoreType input_value) {
    switch (input_value) {
        case VK_SEMAPHORE_TYPE_BINARY:
            return "VK_SEMAPHORE_TYPE_BINARY";
        case VK_SEMAPHORE_TYPE_TIMELINE:
            return "VK_SEMAPHORE_TYPE_TIMELINE";
        default:
            return "Unhandled VkSemaphoreType";
    }
}
static inline const char* string_VkSamplerReductionMode(VkSamplerReductionMode input_value) {
    switch (input_value) {
        case VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE:
            return "VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE";
        case VK_SAMPLER_REDUCTION_MODE_MIN:
            return "VK_SAMPLER_REDUCTION_MODE_MIN";
        case VK_SAMPLER_REDUCTION_MODE_MAX:
            return "VK_SAMPLER_REDUCTION_MODE_MAX";
        case VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM:
            return "VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM";
        default:
            return "Unhandled VkSamplerReductionMode";
    }
}
static inline const char* string_VkPipelineRobustnessBufferBehavior(VkPipelineRobustnessBufferBehavior input_value) {
    switch (input_value) {
        case VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT:
            return "VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT";
        case VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED:
            return "VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED";
        case VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS:
            return "VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS";
        case VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2:
            return "VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2";
        default:
            return "Unhandled VkPipelineRobustnessBufferBehavior";
    }
}
static inline const char* string_VkPipelineRobustnessImageBehavior(VkPipelineRobustnessImageBehavior input_value) {
    switch (input_value) {
        case VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT:
            return "VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT";
        case VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED:
            return "VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED";
        case VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS:
            return "VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS";
        case VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2:
            return "VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2";
        default:
            return "Unhandled VkPipelineRobustnessImageBehavior";
    }
}
static inline const char* string_VkQueueGlobalPriority(VkQueueGlobalPriority input_value) {
    switch (input_value) {
        case VK_QUEUE_GLOBAL_PRIORITY_LOW:
            return "VK_QUEUE_GLOBAL_PRIORITY_LOW";
        case VK_QUEUE_GLOBAL_PRIORITY_MEDIUM:
            return "VK_QUEUE_GLOBAL_PRIORITY_MEDIUM";
        case VK_QUEUE_GLOBAL_PRIORITY_HIGH:
            return "VK_QUEUE_GLOBAL_PRIORITY_HIGH";
        case VK_QUEUE_GLOBAL_PRIORITY_REALTIME:
            return "VK_QUEUE_GLOBAL_PRIORITY_REALTIME";
        default:
            return "Unhandled VkQueueGlobalPriority";
    }
}
static inline const char* string_VkLineRasterizationMode(VkLineRasterizationMode input_value) {
    switch (input_value) {
        case VK_LINE_RASTERIZATION_MODE_DEFAULT:
            return "VK_LINE_RASTERIZATION_MODE_DEFAULT";
        case VK_LINE_RASTERIZATION_MODE_RECTANGULAR:
            return "VK_LINE_RASTERIZATION_MODE_RECTANGULAR";
        case VK_LINE_RASTERIZATION_MODE_BRESENHAM:
            return "VK_LINE_RASTERIZATION_MODE_BRESENHAM";
        case VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH:
            return "VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH";
        default:
            return "Unhandled VkLineRasterizationMode";
    }
}
static inline const char* string_VkPresentModeKHR(VkPresentModeKHR input_value) {
    switch (input_value) {
        case VK_PRESENT_MODE_IMMEDIATE_KHR:
            return "VK_PRESENT_MODE_IMMEDIATE_KHR";
        case VK_PRESENT_MODE_MAILBOX_KHR:
            return "VK_PRESENT_MODE_MAILBOX_KHR";
        case VK_PRESENT_MODE_FIFO_KHR:
            return "VK_PRESENT_MODE_FIFO_KHR";
        case VK_PRESENT_MODE_FIFO_RELAXED_KHR:
            return "VK_PRESENT_MODE_FIFO_RELAXED_KHR";
        case VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR:
            return "VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR";
        case VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR:
            return "VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR";
        case VK_PRESENT_MODE_FIFO_LATEST_READY_KHR:
            return "VK_PRESENT_MODE_FIFO_LATEST_READY_KHR";
        default:
            return "Unhandled VkPresentModeKHR";
    }
}
static inline const char* string_VkColorSpaceKHR(VkColorSpaceKHR input_value) {
    switch (input_value) {
        case VK_COLOR_SPACE_SRGB_NONLINEAR_KHR:
            return "VK_COLOR_SPACE_SRGB_NONLINEAR_KHR";
        case VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT:
            return "VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT";
        case VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT:
            return "VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT";
        case VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT:
            return "VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT";
        case VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT:
            return "VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT";
        case VK_COLOR_SPACE_BT709_LINEAR_EXT:
            return "VK_COLOR_SPACE_BT709_LINEAR_EXT";
        case VK_COLOR_SPACE_BT709_NONLINEAR_EXT:
            return "VK_COLOR_SPACE_BT709_NONLINEAR_EXT";
        case VK_COLOR_SPACE_BT2020_LINEAR_EXT:
            return "VK_COLOR_SPACE_BT2020_LINEAR_EXT";
        case VK_COLOR_SPACE_HDR10_ST2084_EXT:
            return "VK_COLOR_SPACE_HDR10_ST2084_EXT";
        case VK_COLOR_SPACE_DOLBYVISION_EXT:
            return "VK_COLOR_SPACE_DOLBYVISION_EXT";
        case VK_COLOR_SPACE_HDR10_HLG_EXT:
            return "VK_COLOR_SPACE_HDR10_HLG_EXT";
        case VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT:
            return "VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT";
        case VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT:
            return "VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT";
        case VK_COLOR_SPACE_PASS_THROUGH_EXT:
            return "VK_COLOR_SPACE_PASS_THROUGH_EXT";
        case VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT:
            return "VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT";
        case VK_COLOR_SPACE_DISPLAY_NATIVE_AMD:
            return "VK_COLOR_SPACE_DISPLAY_NATIVE_AMD";
        default:
            return "Unhandled VkColorSpaceKHR";
    }
}
static inline const char* string_VkQueryResultStatusKHR(VkQueryResultStatusKHR input_value) {
    switch (input_value) {
        case VK_QUERY_RESULT_STATUS_ERROR_KHR:
            return "VK_QUERY_RESULT_STATUS_ERROR_KHR";
        case VK_QUERY_RESULT_STATUS_NOT_READY_KHR:
            return "VK_QUERY_RESULT_STATUS_NOT_READY_KHR";
        case VK_QUERY_RESULT_STATUS_COMPLETE_KHR:
            return "VK_QUERY_RESULT_STATUS_COMPLETE_KHR";
        case VK_QUERY_RESULT_STATUS_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_KHR:
            return "VK_QUERY_RESULT_STATUS_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_KHR";
        default:
            return "Unhandled VkQueryResultStatusKHR";
    }
}
static inline const char* string_VkPerformanceCounterUnitKHR(VkPerformanceCounterUnitKHR input_value) {
    switch (input_value) {
        case VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR:
            return "VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR";
        case VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR:
            return "VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR";
        case VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR:
            return "VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR";
        case VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR:
            return "VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR";
        case VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR:
            return "VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR";
        case VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR:
            return "VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR";
        case VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR:
            return "VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR";
        case VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR:
            return "VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR";
        case VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR:
            return "VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR";
        case VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR:
            return "VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR";
        case VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR:
            return "VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR";
        default:
            return "Unhandled VkPerformanceCounterUnitKHR";
    }
}
static inline const char* string_VkPerformanceCounterScopeKHR(VkPerformanceCounterScopeKHR input_value) {
    switch (input_value) {
        case VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR:
            return "VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR";
        case VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR:
            return "VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR";
        case VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR:
            return "VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR";
        default:
            return "Unhandled VkPerformanceCounterScopeKHR";
    }
}
static inline const char* string_VkPerformanceCounterStorageKHR(VkPerformanceCounterStorageKHR input_value) {
    switch (input_value) {
        case VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR:
            return "VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR";
        case VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR:
            return "VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR";
        case VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR:
            return "VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR";
        case VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR:
            return "VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR";
        case VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR:
            return "VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR";
        case VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR:
            return "VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR";
        default:
            return "Unhandled VkPerformanceCounterStorageKHR";
    }
}
static inline const char* string_VkFragmentShadingRateCombinerOpKHR(VkFragmentShadingRateCombinerOpKHR input_value) {
    switch (input_value) {
        case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR:
            return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR";
        case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR:
            return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR";
        case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR:
            return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR";
        case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR:
            return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR";
        case VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR:
            return "VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR";
        default:
            return "Unhandled VkFragmentShadingRateCombinerOpKHR";
    }
}
static inline const char* string_VkPipelineExecutableStatisticFormatKHR(VkPipelineExecutableStatisticFormatKHR input_value) {
    switch (input_value) {
        case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR:
            return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR";
        case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR:
            return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR";
        case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR:
            return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR";
        case VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR:
            return "VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR";
        default:
            return "Unhandled VkPipelineExecutableStatisticFormatKHR";
    }
}
static inline const char* string_VkVideoEncodeTuningModeKHR(VkVideoEncodeTuningModeKHR input_value) {
    switch (input_value) {
        case VK_VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHR:
            return "VK_VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHR";
        case VK_VIDEO_ENCODE_TUNING_MODE_HIGH_QUALITY_KHR:
            return "VK_VIDEO_ENCODE_TUNING_MODE_HIGH_QUALITY_KHR";
        case VK_VIDEO_ENCODE_TUNING_MODE_LOW_LATENCY_KHR:
            return "VK_VIDEO_ENCODE_TUNING_MODE_LOW_LATENCY_KHR";
        case VK_VIDEO_ENCODE_TUNING_MODE_ULTRA_LOW_LATENCY_KHR:
            return "VK_VIDEO_ENCODE_TUNING_MODE_ULTRA_LOW_LATENCY_KHR";
        case VK_VIDEO_ENCODE_TUNING_MODE_LOSSLESS_KHR:
            return "VK_VIDEO_ENCODE_TUNING_MODE_LOSSLESS_KHR";
        default:
            return "Unhandled VkVideoEncodeTuningModeKHR";
    }
}
static inline const char* string_VkComponentTypeKHR(VkComponentTypeKHR input_value) {
    switch (input_value) {
        case VK_COMPONENT_TYPE_FLOAT16_KHR:
            return "VK_COMPONENT_TYPE_FLOAT16_KHR";
        case VK_COMPONENT_TYPE_FLOAT32_KHR:
            return "VK_COMPONENT_TYPE_FLOAT32_KHR";
        case VK_COMPONENT_TYPE_FLOAT64_KHR:
            return "VK_COMPONENT_TYPE_FLOAT64_KHR";
        case VK_COMPONENT_TYPE_SINT8_KHR:
            return "VK_COMPONENT_TYPE_SINT8_KHR";
        case VK_COMPONENT_TYPE_SINT16_KHR:
            return "VK_COMPONENT_TYPE_SINT16_KHR";
        case VK_COMPONENT_TYPE_SINT32_KHR:
            return "VK_COMPONENT_TYPE_SINT32_KHR";
        case VK_COMPONENT_TYPE_SINT64_KHR:
            return "VK_COMPONENT_TYPE_SINT64_KHR";
        case VK_COMPONENT_TYPE_UINT8_KHR:
            return "VK_COMPONENT_TYPE_UINT8_KHR";
        case VK_COMPONENT_TYPE_UINT16_KHR:
            return "VK_COMPONENT_TYPE_UINT16_KHR";
        case VK_COMPONENT_TYPE_UINT32_KHR:
            return "VK_COMPONENT_TYPE_UINT32_KHR";
        case VK_COMPONENT_TYPE_UINT64_KHR:
            return "VK_COMPONENT_TYPE_UINT64_KHR";
        case VK_COMPONENT_TYPE_BFLOAT16_KHR:
            return "VK_COMPONENT_TYPE_BFLOAT16_KHR";
        case VK_COMPONENT_TYPE_SINT8_PACKED_NV:
            return "VK_COMPONENT_TYPE_SINT8_PACKED_NV";
        case VK_COMPONENT_TYPE_UINT8_PACKED_NV:
            return "VK_COMPONENT_TYPE_UINT8_PACKED_NV";
        case VK_COMPONENT_TYPE_FLOAT8_E4M3_EXT:
            return "VK_COMPONENT_TYPE_FLOAT8_E4M3_EXT";
        case VK_COMPONENT_TYPE_FLOAT8_E5M2_EXT:
            return "VK_COMPONENT_TYPE_FLOAT8_E5M2_EXT";
        default:
            return "Unhandled VkComponentTypeKHR";
    }
}
static inline const char* string_VkScopeKHR(VkScopeKHR input_value) {
    switch (input_value) {
        case VK_SCOPE_DEVICE_KHR:
            return "VK_SCOPE_DEVICE_KHR";
        case VK_SCOPE_WORKGROUP_KHR:
            return "VK_SCOPE_WORKGROUP_KHR";
        case VK_SCOPE_SUBGROUP_KHR:
            return "VK_SCOPE_SUBGROUP_KHR";
        case VK_SCOPE_QUEUE_FAMILY_KHR:
            return "VK_SCOPE_QUEUE_FAMILY_KHR";
        default:
            return "Unhandled VkScopeKHR";
    }
}
static inline const char* string_VkVideoEncodeAV1PredictionModeKHR(VkVideoEncodeAV1PredictionModeKHR input_value) {
    switch (input_value) {
        case VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_INTRA_ONLY_KHR:
            return "VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_INTRA_ONLY_KHR";
        case VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_SINGLE_REFERENCE_KHR:
            return "VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_SINGLE_REFERENCE_KHR";
        case VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_UNIDIRECTIONAL_COMPOUND_KHR:
            return "VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_UNIDIRECTIONAL_COMPOUND_KHR";
        case VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_BIDIRECTIONAL_COMPOUND_KHR:
            return "VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_BIDIRECTIONAL_COMPOUND_KHR";
        default:
            return "Unhandled VkVideoEncodeAV1PredictionModeKHR";
    }
}
static inline const char* string_VkVideoEncodeAV1RateControlGroupKHR(VkVideoEncodeAV1RateControlGroupKHR input_value) {
    switch (input_value) {
        case VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_INTRA_KHR:
            return "VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_INTRA_KHR";
        case VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_PREDICTIVE_KHR:
            return "VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_PREDICTIVE_KHR";
        case VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_BIPREDICTIVE_KHR:
            return "VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_BIPREDICTIVE_KHR";
        default:
            return "Unhandled VkVideoEncodeAV1RateControlGroupKHR";
    }
}
static inline const char* string_VkTimeDomainKHR(VkTimeDomainKHR input_value) {
    switch (input_value) {
        case VK_TIME_DOMAIN_DEVICE_KHR:
            return "VK_TIME_DOMAIN_DEVICE_KHR";
        case VK_TIME_DOMAIN_CLOCK_MONOTONIC_KHR:
            return "VK_TIME_DOMAIN_CLOCK_MONOTONIC_KHR";
        case VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR:
            return "VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR";
        case VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR:
            return "VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR";
        case VK_TIME_DOMAIN_PRESENT_STAGE_LOCAL_EXT:
            return "VK_TIME_DOMAIN_PRESENT_STAGE_LOCAL_EXT";
        case VK_TIME_DOMAIN_SWAPCHAIN_LOCAL_EXT:
            return "VK_TIME_DOMAIN_SWAPCHAIN_LOCAL_EXT";
        default:
            return "Unhandled VkTimeDomainKHR";
    }
}
static inline const char* string_VkPhysicalDeviceLayeredApiKHR(VkPhysicalDeviceLayeredApiKHR input_value) {
    switch (input_value) {
        case VK_PHYSICAL_DEVICE_LAYERED_API_VULKAN_KHR:
            return "VK_PHYSICAL_DEVICE_LAYERED_API_VULKAN_KHR";
        case VK_PHYSICAL_DEVICE_LAYERED_API_D3D12_KHR:
            return "VK_PHYSICAL_DEVICE_LAYERED_API_D3D12_KHR";
        case VK_PHYSICAL_DEVICE_LAYERED_API_METAL_KHR:
            return "VK_PHYSICAL_DEVICE_LAYERED_API_METAL_KHR";
        case VK_PHYSICAL_DEVICE_LAYERED_API_OPENGL_KHR:
            return "VK_PHYSICAL_DEVICE_LAYERED_API_OPENGL_KHR";
        case VK_PHYSICAL_DEVICE_LAYERED_API_OPENGLES_KHR:
            return "VK_PHYSICAL_DEVICE_LAYERED_API_OPENGLES_KHR";
        default:
            return "Unhandled VkPhysicalDeviceLayeredApiKHR";
    }
}
static inline const char* string_VkDefaultVertexAttributeValueKHR(VkDefaultVertexAttributeValueKHR input_value) {
    switch (input_value) {
        case VK_DEFAULT_VERTEX_ATTRIBUTE_VALUE_ZERO_ZERO_ZERO_ZERO_KHR:
            return "VK_DEFAULT_VERTEX_ATTRIBUTE_VALUE_ZERO_ZERO_ZERO_ZERO_KHR";
        case VK_DEFAULT_VERTEX_ATTRIBUTE_VALUE_ZERO_ZERO_ZERO_ONE_KHR:
            return "VK_DEFAULT_VERTEX_ATTRIBUTE_VALUE_ZERO_ZERO_ZERO_ONE_KHR";
        default:
            return "Unhandled VkDefaultVertexAttributeValueKHR";
    }
}
static inline const char* string_VkDebugReportObjectTypeEXT(VkDebugReportObjectTypeEXT input_value) {
    switch (input_value) {
        case VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT";
        case VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT";
        case VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT";
        case VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT";
        case VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT";
        case VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT";
        case VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT";
        case VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT";
        case VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT";
        case VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT";
        case VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT";
        case VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT";
        case VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT";
        case VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT";
        case VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT";
        case VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT";
        case VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT";
        case VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT";
        case VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT";
        case VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT";
        case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT";
        case VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT";
        case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT";
        case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT";
        case VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT";
        case VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT";
        case VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT";
        case VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT";
        case VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT";
        case VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT";
        case VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT";
        case VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT";
        case VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT";
        case VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT";
        case VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT";
        case VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT";
        case VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT";
        case VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT";
        case VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV_EXT:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV_EXT";
        case VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_FUNCTION_NV_EXT:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_FUNCTION_NV_EXT";
        case VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT:
            return "VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT";
        default:
            return "Unhandled VkDebugReportObjectTypeEXT";
    }
}
static inline const char* string_VkRasterizationOrderAMD(VkRasterizationOrderAMD input_value) {
    switch (input_value) {
        case VK_RASTERIZATION_ORDER_STRICT_AMD:
            return "VK_RASTERIZATION_ORDER_STRICT_AMD";
        case VK_RASTERIZATION_ORDER_RELAXED_AMD:
            return "VK_RASTERIZATION_ORDER_RELAXED_AMD";
        default:
            return "Unhandled VkRasterizationOrderAMD";
    }
}
static inline const char* string_VkShaderInfoTypeAMD(VkShaderInfoTypeAMD input_value) {
    switch (input_value) {
        case VK_SHADER_INFO_TYPE_STATISTICS_AMD:
            return "VK_SHADER_INFO_TYPE_STATISTICS_AMD";
        case VK_SHADER_INFO_TYPE_BINARY_AMD:
            return "VK_SHADER_INFO_TYPE_BINARY_AMD";
        case VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD:
            return "VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD";
        default:
            return "Unhandled VkShaderInfoTypeAMD";
    }
}
static inline const char* string_VkValidationCheckEXT(VkValidationCheckEXT input_value) {
    switch (input_value) {
        case VK_VALIDATION_CHECK_ALL_EXT:
            return "VK_VALIDATION_CHECK_ALL_EXT";
        case VK_VALIDATION_CHECK_SHADERS_EXT:
            return "VK_VALIDATION_CHECK_SHADERS_EXT";
        default:
            return "Unhandled VkValidationCheckEXT";
    }
}
static inline const char* string_VkDisplayPowerStateEXT(VkDisplayPowerStateEXT input_value) {
    switch (input_value) {
        case VK_DISPLAY_POWER_STATE_OFF_EXT:
            return "VK_DISPLAY_POWER_STATE_OFF_EXT";
        case VK_DISPLAY_POWER_STATE_SUSPEND_EXT:
            return "VK_DISPLAY_POWER_STATE_SUSPEND_EXT";
        case VK_DISPLAY_POWER_STATE_ON_EXT:
            return "VK_DISPLAY_POWER_STATE_ON_EXT";
        default:
            return "Unhandled VkDisplayPowerStateEXT";
    }
}
static inline const char* string_VkDeviceEventTypeEXT(VkDeviceEventTypeEXT input_value) {
    switch (input_value) {
        case VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT:
            return "VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT";
        default:
            return "Unhandled VkDeviceEventTypeEXT";
    }
}
static inline const char* string_VkDisplayEventTypeEXT(VkDisplayEventTypeEXT input_value) {
    switch (input_value) {
        case VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT:
            return "VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT";
        default:
            return "Unhandled VkDisplayEventTypeEXT";
    }
}
static inline const char* string_VkViewportCoordinateSwizzleNV(VkViewportCoordinateSwizzleNV input_value) {
    switch (input_value) {
        case VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV:
            return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV";
        case VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV:
            return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV";
        case VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV:
            return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV";
        case VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV:
            return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV";
        case VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV:
            return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV";
        case VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV:
            return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV";
        case VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV:
            return "VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV";
        case VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV:
            return "VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV";
        default:
            return "Unhandled VkViewportCoordinateSwizzleNV";
    }
}
static inline const char* string_VkDiscardRectangleModeEXT(VkDiscardRectangleModeEXT input_value) {
    switch (input_value) {
        case VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT:
            return "VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT";
        case VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT:
            return "VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT";
        default:
            return "Unhandled VkDiscardRectangleModeEXT";
    }
}
static inline const char* string_VkConservativeRasterizationModeEXT(VkConservativeRasterizationModeEXT input_value) {
    switch (input_value) {
        case VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT:
            return "VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT";
        case VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT:
            return "VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT";
        case VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT:
            return "VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT";
        default:
            return "Unhandled VkConservativeRasterizationModeEXT";
    }
}
static inline const char* string_VkDescriptorMappingSourceEXT(VkDescriptorMappingSourceEXT input_value) {
    switch (input_value) {
        case VK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_CONSTANT_OFFSET_EXT:
            return "VK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_CONSTANT_OFFSET_EXT";
        case VK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_PUSH_INDEX_EXT:
            return "VK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_PUSH_INDEX_EXT";
        case VK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_EXT:
            return "VK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_EXT";
        case VK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_ARRAY_EXT:
            return "VK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_ARRAY_EXT";
        case VK_DESCRIPTOR_MAPPING_SOURCE_RESOURCE_HEAP_DATA_EXT:
            return "VK_DESCRIPTOR_MAPPING_SOURCE_RESOURCE_HEAP_DATA_EXT";
        case VK_DESCRIPTOR_MAPPING_SOURCE_PUSH_DATA_EXT:
            return "VK_DESCRIPTOR_MAPPING_SOURCE_PUSH_DATA_EXT";
        case VK_DESCRIPTOR_MAPPING_SOURCE_PUSH_ADDRESS_EXT:
            return "VK_DESCRIPTOR_MAPPING_SOURCE_PUSH_ADDRESS_EXT";
        case VK_DESCRIPTOR_MAPPING_SOURCE_INDIRECT_ADDRESS_EXT:
            return "VK_DESCRIPTOR_MAPPING_SOURCE_INDIRECT_ADDRESS_EXT";
        case VK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_SHADER_RECORD_INDEX_EXT:
            return "VK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_SHADER_RECORD_INDEX_EXT";
        case VK_DESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_DATA_EXT:
            return "VK_DESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_DATA_EXT";
        case VK_DESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_ADDRESS_EXT:
            return "VK_DESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_ADDRESS_EXT";
        default:
            return "Unhandled VkDescriptorMappingSourceEXT";
    }
}
static inline const char* string_VkBlendOverlapEXT(VkBlendOverlapEXT input_value) {
    switch (input_value) {
        case VK_BLEND_OVERLAP_UNCORRELATED_EXT:
            return "VK_BLEND_OVERLAP_UNCORRELATED_EXT";
        case VK_BLEND_OVERLAP_DISJOINT_EXT:
            return "VK_BLEND_OVERLAP_DISJOINT_EXT";
        case VK_BLEND_OVERLAP_CONJOINT_EXT:
            return "VK_BLEND_OVERLAP_CONJOINT_EXT";
        default:
            return "Unhandled VkBlendOverlapEXT";
    }
}
static inline const char* string_VkCoverageModulationModeNV(VkCoverageModulationModeNV input_value) {
    switch (input_value) {
        case VK_COVERAGE_MODULATION_MODE_NONE_NV:
            return "VK_COVERAGE_MODULATION_MODE_NONE_NV";
        case VK_COVERAGE_MODULATION_MODE_RGB_NV:
            return "VK_COVERAGE_MODULATION_MODE_RGB_NV";
        case VK_COVERAGE_MODULATION_MODE_ALPHA_NV:
            return "VK_COVERAGE_MODULATION_MODE_ALPHA_NV";
        case VK_COVERAGE_MODULATION_MODE_RGBA_NV:
            return "VK_COVERAGE_MODULATION_MODE_RGBA_NV";
        default:
            return "Unhandled VkCoverageModulationModeNV";
    }
}
static inline const char* string_VkValidationCacheHeaderVersionEXT(VkValidationCacheHeaderVersionEXT input_value) {
    switch (input_value) {
        case VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT:
            return "VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT";
        default:
            return "Unhandled VkValidationCacheHeaderVersionEXT";
    }
}
static inline const char* string_VkShadingRatePaletteEntryNV(VkShadingRatePaletteEntryNV input_value) {
    switch (input_value) {
        case VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV:
            return "VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV";
        case VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV:
            return "VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV";
        case VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV:
            return "VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV";
        case VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV:
            return "VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV";
        case VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV:
            return "VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV";
        case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV:
            return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV";
        case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV:
            return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV";
        case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV:
            return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV";
        case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV:
            return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV";
        case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV:
            return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV";
        case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV:
            return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV";
        case VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV:
            return "VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV";
        default:
            return "Unhandled VkShadingRatePaletteEntryNV";
    }
}
static inline const char* string_VkCoarseSampleOrderTypeNV(VkCoarseSampleOrderTypeNV input_value) {
    switch (input_value) {
        case VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV:
            return "VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV";
        case VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV:
            return "VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV";
        case VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV:
            return "VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV";
        case VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV:
            return "VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV";
        default:
            return "Unhandled VkCoarseSampleOrderTypeNV";
    }
}
static inline const char* string_VkRayTracingShaderGroupTypeKHR(VkRayTracingShaderGroupTypeKHR input_value) {
    switch (input_value) {
        case VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR:
            return "VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR";
        case VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR:
            return "VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR";
        case VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR:
            return "VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR";
        default:
            return "Unhandled VkRayTracingShaderGroupTypeKHR";
    }
}
static inline const char* string_VkGeometryTypeKHR(VkGeometryTypeKHR input_value) {
    switch (input_value) {
        case VK_GEOMETRY_TYPE_TRIANGLES_KHR:
            return "VK_GEOMETRY_TYPE_TRIANGLES_KHR";
        case VK_GEOMETRY_TYPE_AABBS_KHR:
            return "VK_GEOMETRY_TYPE_AABBS_KHR";
        case VK_GEOMETRY_TYPE_INSTANCES_KHR:
            return "VK_GEOMETRY_TYPE_INSTANCES_KHR";
        case VK_GEOMETRY_TYPE_SPHERES_NV:
            return "VK_GEOMETRY_TYPE_SPHERES_NV";
        case VK_GEOMETRY_TYPE_LINEAR_SWEPT_SPHERES_NV:
            return "VK_GEOMETRY_TYPE_LINEAR_SWEPT_SPHERES_NV";
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_GEOMETRY_TYPE_DENSE_GEOMETRY_FORMAT_TRIANGLES_AMDX:
            return "VK_GEOMETRY_TYPE_DENSE_GEOMETRY_FORMAT_TRIANGLES_AMDX";
#endif  // VK_ENABLE_BETA_EXTENSIONS
        default:
            return "Unhandled VkGeometryTypeKHR";
    }
}
static inline const char* string_VkAccelerationStructureTypeKHR(VkAccelerationStructureTypeKHR input_value) {
    switch (input_value) {
        case VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR:
            return "VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR";
        case VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR:
            return "VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR";
        case VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR:
            return "VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR";
        default:
            return "Unhandled VkAccelerationStructureTypeKHR";
    }
}
static inline const char* string_VkCopyAccelerationStructureModeKHR(VkCopyAccelerationStructureModeKHR input_value) {
    switch (input_value) {
        case VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR:
            return "VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR";
        case VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR:
            return "VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR";
        case VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR:
            return "VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR";
        case VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR:
            return "VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR";
        default:
            return "Unhandled VkCopyAccelerationStructureModeKHR";
    }
}
static inline const char* string_VkAccelerationStructureMemoryRequirementsTypeNV(VkAccelerationStructureMemoryRequirementsTypeNV input_value) {
    switch (input_value) {
        case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV:
            return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV";
        case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV:
            return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV";
        case VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV:
            return "VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV";
        default:
            return "Unhandled VkAccelerationStructureMemoryRequirementsTypeNV";
    }
}
static inline const char* string_VkMemoryOverallocationBehaviorAMD(VkMemoryOverallocationBehaviorAMD input_value) {
    switch (input_value) {
        case VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD:
            return "VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD";
        case VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD:
            return "VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD";
        case VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD:
            return "VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD";
        default:
            return "Unhandled VkMemoryOverallocationBehaviorAMD";
    }
}
static inline const char* string_VkPerformanceConfigurationTypeINTEL(VkPerformanceConfigurationTypeINTEL input_value) {
    switch (input_value) {
        case VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL:
            return "VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL";
        default:
            return "Unhandled VkPerformanceConfigurationTypeINTEL";
    }
}
static inline const char* string_VkQueryPoolSamplingModeINTEL(VkQueryPoolSamplingModeINTEL input_value) {
    switch (input_value) {
        case VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL:
            return "VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL";
        default:
            return "Unhandled VkQueryPoolSamplingModeINTEL";
    }
}
static inline const char* string_VkPerformanceOverrideTypeINTEL(VkPerformanceOverrideTypeINTEL input_value) {
    switch (input_value) {
        case VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL:
            return "VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL";
        case VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL:
            return "VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL";
        default:
            return "Unhandled VkPerformanceOverrideTypeINTEL";
    }
}
static inline const char* string_VkPerformanceParameterTypeINTEL(VkPerformanceParameterTypeINTEL input_value) {
    switch (input_value) {
        case VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL:
            return "VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL";
        case VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL:
            return "VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL";
        default:
            return "Unhandled VkPerformanceParameterTypeINTEL";
    }
}
static inline const char* string_VkPerformanceValueTypeINTEL(VkPerformanceValueTypeINTEL input_value) {
    switch (input_value) {
        case VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL:
            return "VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL";
        case VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL:
            return "VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL";
        case VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL:
            return "VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL";
        case VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL:
            return "VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL";
        case VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL:
            return "VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL";
        default:
            return "Unhandled VkPerformanceValueTypeINTEL";
    }
}
static inline const char* string_VkValidationFeatureEnableEXT(VkValidationFeatureEnableEXT input_value) {
    switch (input_value) {
        case VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT:
            return "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT";
        case VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT:
            return "VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT";
        case VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT:
            return "VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT";
        case VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT:
            return "VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT";
        case VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT:
            return "VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT";
        default:
            return "Unhandled VkValidationFeatureEnableEXT";
    }
}
static inline const char* string_VkValidationFeatureDisableEXT(VkValidationFeatureDisableEXT input_value) {
    switch (input_value) {
        case VK_VALIDATION_FEATURE_DISABLE_ALL_EXT:
            return "VK_VALIDATION_FEATURE_DISABLE_ALL_EXT";
        case VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT:
            return "VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT";
        case VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT:
            return "VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT";
        case VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT:
            return "VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT";
        case VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT:
            return "VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT";
        case VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT:
            return "VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT";
        case VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT:
            return "VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT";
        case VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT:
            return "VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT";
        default:
            return "Unhandled VkValidationFeatureDisableEXT";
    }
}
static inline const char* string_VkCoverageReductionModeNV(VkCoverageReductionModeNV input_value) {
    switch (input_value) {
        case VK_COVERAGE_REDUCTION_MODE_MERGE_NV:
            return "VK_COVERAGE_REDUCTION_MODE_MERGE_NV";
        case VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV:
            return "VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV";
        default:
            return "Unhandled VkCoverageReductionModeNV";
    }
}
static inline const char* string_VkProvokingVertexModeEXT(VkProvokingVertexModeEXT input_value) {
    switch (input_value) {
        case VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT:
            return "VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT";
        case VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT:
            return "VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT";
        default:
            return "Unhandled VkProvokingVertexModeEXT";
    }
}
#ifdef VK_USE_PLATFORM_WIN32_KHR
static inline const char* string_VkFullScreenExclusiveEXT(VkFullScreenExclusiveEXT input_value) {
    switch (input_value) {
        case VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT:
            return "VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT";
        case VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT:
            return "VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT";
        case VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT:
            return "VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT";
        case VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT:
            return "VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT";
        default:
            return "Unhandled VkFullScreenExclusiveEXT";
    }
}
#endif  // VK_USE_PLATFORM_WIN32_KHR
static inline const char* string_VkIndirectCommandsTokenTypeNV(VkIndirectCommandsTokenTypeNV input_value) {
    switch (input_value) {
        case VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV:
            return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV";
        case VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV:
            return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV";
        case VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV:
            return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV";
        case VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV:
            return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV";
        case VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV:
            return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV";
        case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV:
            return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV";
        case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV:
            return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV";
        case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV:
            return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV";
        case VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_DATA_NV:
            return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_DATA_NV";
        case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV:
            return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV";
        case VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV:
            return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV";
        case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV:
            return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV";
        default:
            return "Unhandled VkIndirectCommandsTokenTypeNV";
    }
}
static inline const char* string_VkDepthBiasRepresentationEXT(VkDepthBiasRepresentationEXT input_value) {
    switch (input_value) {
        case VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORMAT_EXT:
            return "VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORMAT_EXT";
        case VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORCE_UNORM_EXT:
            return "VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORCE_UNORM_EXT";
        case VK_DEPTH_BIAS_REPRESENTATION_FLOAT_EXT:
            return "VK_DEPTH_BIAS_REPRESENTATION_FLOAT_EXT";
        default:
            return "Unhandled VkDepthBiasRepresentationEXT";
    }
}
static inline const char* string_VkDeviceMemoryReportEventTypeEXT(VkDeviceMemoryReportEventTypeEXT input_value) {
    switch (input_value) {
        case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT:
            return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT";
        case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT:
            return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT";
        case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT:
            return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT";
        case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT:
            return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT";
        case VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT:
            return "VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT";
        default:
            return "Unhandled VkDeviceMemoryReportEventTypeEXT";
    }
}
static inline const char* string_VkFragmentShadingRateTypeNV(VkFragmentShadingRateTypeNV input_value) {
    switch (input_value) {
        case VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV:
            return "VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV";
        case VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV:
            return "VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV";
        default:
            return "Unhandled VkFragmentShadingRateTypeNV";
    }
}
static inline const char* string_VkFragmentShadingRateNV(VkFragmentShadingRateNV input_value) {
    switch (input_value) {
        case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV:
            return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV";
        case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV:
            return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV";
        case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV:
            return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV";
        case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV:
            return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV";
        case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV:
            return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV";
        case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV:
            return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV";
        case VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV:
            return "VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV";
        case VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV:
            return "VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV";
        case VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV:
            return "VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV";
        case VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV:
            return "VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV";
        case VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV:
            return "VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV";
        case VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV:
            return "VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV";
        default:
            return "Unhandled VkFragmentShadingRateNV";
    }
}
static inline const char* string_VkAccelerationStructureMotionInstanceTypeNV(VkAccelerationStructureMotionInstanceTypeNV input_value) {
    switch (input_value) {
        case VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV:
            return "VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV";
        case VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV:
            return "VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV";
        case VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV:
            return "VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV";
        default:
            return "Unhandled VkAccelerationStructureMotionInstanceTypeNV";
    }
}
static inline const char* string_VkDeviceFaultAddressTypeEXT(VkDeviceFaultAddressTypeEXT input_value) {
    switch (input_value) {
        case VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT:
            return "VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT";
        case VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT:
            return "VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT";
        case VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT:
            return "VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT";
        case VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT:
            return "VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT";
        case VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT:
            return "VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT";
        case VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT:
            return "VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT";
        case VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT:
            return "VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT";
        default:
            return "Unhandled VkDeviceFaultAddressTypeEXT";
    }
}
static inline const char* string_VkDeviceFaultVendorBinaryHeaderVersionEXT(VkDeviceFaultVendorBinaryHeaderVersionEXT input_value) {
    switch (input_value) {
        case VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT:
            return "VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT";
        default:
            return "Unhandled VkDeviceFaultVendorBinaryHeaderVersionEXT";
    }
}
static inline const char* string_VkDeviceAddressBindingTypeEXT(VkDeviceAddressBindingTypeEXT input_value) {
    switch (input_value) {
        case VK_DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT:
            return "VK_DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT";
        case VK_DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT:
            return "VK_DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT";
        default:
            return "Unhandled VkDeviceAddressBindingTypeEXT";
    }
}
static inline const char* string_VkMicromapTypeEXT(VkMicromapTypeEXT input_value) {
    switch (input_value) {
        case VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT:
            return "VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT";
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV:
            return "VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV";
#endif  // VK_ENABLE_BETA_EXTENSIONS
        default:
            return "Unhandled VkMicromapTypeEXT";
    }
}
static inline const char* string_VkBuildMicromapModeEXT(VkBuildMicromapModeEXT input_value) {
    switch (input_value) {
        case VK_BUILD_MICROMAP_MODE_BUILD_EXT:
            return "VK_BUILD_MICROMAP_MODE_BUILD_EXT";
        default:
            return "Unhandled VkBuildMicromapModeEXT";
    }
}
static inline const char* string_VkCopyMicromapModeEXT(VkCopyMicromapModeEXT input_value) {
    switch (input_value) {
        case VK_COPY_MICROMAP_MODE_CLONE_EXT:
            return "VK_COPY_MICROMAP_MODE_CLONE_EXT";
        case VK_COPY_MICROMAP_MODE_SERIALIZE_EXT:
            return "VK_COPY_MICROMAP_MODE_SERIALIZE_EXT";
        case VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT:
            return "VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT";
        case VK_COPY_MICROMAP_MODE_COMPACT_EXT:
            return "VK_COPY_MICROMAP_MODE_COMPACT_EXT";
        default:
            return "Unhandled VkCopyMicromapModeEXT";
    }
}
static inline const char* string_VkOpacityMicromapFormatEXT(VkOpacityMicromapFormatEXT input_value) {
    switch (input_value) {
        case VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT:
            return "VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT";
        case VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT:
            return "VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT";
        default:
            return "Unhandled VkOpacityMicromapFormatEXT";
    }
}
static inline const char* string_VkOpacityMicromapSpecialIndexEXT(VkOpacityMicromapSpecialIndexEXT input_value) {
    switch (input_value) {
        case VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT:
            return "VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT";
        case VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT:
            return "VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT";
        case VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT:
            return "VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT";
        case VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT:
            return "VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT";
        case VK_OPACITY_MICROMAP_SPECIAL_INDEX_CLUSTER_GEOMETRY_DISABLE_OPACITY_MICROMAP_NV:
            return "VK_OPACITY_MICROMAP_SPECIAL_INDEX_CLUSTER_GEOMETRY_DISABLE_OPACITY_MICROMAP_NV";
        default:
            return "Unhandled VkOpacityMicromapSpecialIndexEXT";
    }
}
static inline const char* string_VkAccelerationStructureCompatibilityKHR(VkAccelerationStructureCompatibilityKHR input_value) {
    switch (input_value) {
        case VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR:
            return "VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR";
        case VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR:
            return "VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR";
        default:
            return "Unhandled VkAccelerationStructureCompatibilityKHR";
    }
}
static inline const char* string_VkAccelerationStructureBuildTypeKHR(VkAccelerationStructureBuildTypeKHR input_value) {
    switch (input_value) {
        case VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR:
            return "VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR";
        case VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR:
            return "VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR";
        case VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR:
            return "VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR";
        default:
            return "Unhandled VkAccelerationStructureBuildTypeKHR";
    }
}
#ifdef VK_ENABLE_BETA_EXTENSIONS
static inline const char* string_VkDisplacementMicromapFormatNV(VkDisplacementMicromapFormatNV input_value) {
    switch (input_value) {
        case VK_DISPLACEMENT_MICROMAP_FORMAT_64_TRIANGLES_64_BYTES_NV:
            return "VK_DISPLACEMENT_MICROMAP_FORMAT_64_TRIANGLES_64_BYTES_NV";
        case VK_DISPLACEMENT_MICROMAP_FORMAT_256_TRIANGLES_128_BYTES_NV:
            return "VK_DISPLACEMENT_MICROMAP_FORMAT_256_TRIANGLES_128_BYTES_NV";
        case VK_DISPLACEMENT_MICROMAP_FORMAT_1024_TRIANGLES_128_BYTES_NV:
            return "VK_DISPLACEMENT_MICROMAP_FORMAT_1024_TRIANGLES_128_BYTES_NV";
        default:
            return "Unhandled VkDisplacementMicromapFormatNV";
    }
}
#endif  // VK_ENABLE_BETA_EXTENSIONS
static inline const char* string_VkRayTracingLssIndexingModeNV(VkRayTracingLssIndexingModeNV input_value) {
    switch (input_value) {
        case VK_RAY_TRACING_LSS_INDEXING_MODE_LIST_NV:
            return "VK_RAY_TRACING_LSS_INDEXING_MODE_LIST_NV";
        case VK_RAY_TRACING_LSS_INDEXING_MODE_SUCCESSIVE_NV:
            return "VK_RAY_TRACING_LSS_INDEXING_MODE_SUCCESSIVE_NV";
        default:
            return "Unhandled VkRayTracingLssIndexingModeNV";
    }
}
static inline const char* string_VkRayTracingLssPrimitiveEndCapsModeNV(VkRayTracingLssPrimitiveEndCapsModeNV input_value) {
    switch (input_value) {
        case VK_RAY_TRACING_LSS_PRIMITIVE_END_CAPS_MODE_NONE_NV:
            return "VK_RAY_TRACING_LSS_PRIMITIVE_END_CAPS_MODE_NONE_NV";
        case VK_RAY_TRACING_LSS_PRIMITIVE_END_CAPS_MODE_CHAINED_NV:
            return "VK_RAY_TRACING_LSS_PRIMITIVE_END_CAPS_MODE_CHAINED_NV";
        default:
            return "Unhandled VkRayTracingLssPrimitiveEndCapsModeNV";
    }
}
static inline const char* string_VkSubpassMergeStatusEXT(VkSubpassMergeStatusEXT input_value) {
    switch (input_value) {
        case VK_SUBPASS_MERGE_STATUS_MERGED_EXT:
            return "VK_SUBPASS_MERGE_STATUS_MERGED_EXT";
        case VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT:
            return "VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT";
        case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT:
            return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT";
        case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT:
            return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT";
        case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT:
            return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT";
        case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT:
            return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT";
        case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT:
            return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT";
        case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT:
            return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT";
        case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT:
            return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT";
        case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT:
            return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT";
        case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT:
            return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT";
        case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT:
            return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT";
        case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT:
            return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT";
        case VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT:
            return "VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT";
        default:
            return "Unhandled VkSubpassMergeStatusEXT";
    }
}
static inline const char* string_VkDirectDriverLoadingModeLUNARG(VkDirectDriverLoadingModeLUNARG input_value) {
    switch (input_value) {
        case VK_DIRECT_DRIVER_LOADING_MODE_EXCLUSIVE_LUNARG:
            return "VK_DIRECT_DRIVER_LOADING_MODE_EXCLUSIVE_LUNARG";
        case VK_DIRECT_DRIVER_LOADING_MODE_INCLUSIVE_LUNARG:
            return "VK_DIRECT_DRIVER_LOADING_MODE_INCLUSIVE_LUNARG";
        default:
            return "Unhandled VkDirectDriverLoadingModeLUNARG";
    }
}
static inline const char* string_VkTensorTilingARM(VkTensorTilingARM input_value) {
    switch (input_value) {
        case VK_TENSOR_TILING_OPTIMAL_ARM:
            return "VK_TENSOR_TILING_OPTIMAL_ARM";
        case VK_TENSOR_TILING_LINEAR_ARM:
            return "VK_TENSOR_TILING_LINEAR_ARM";
        default:
            return "Unhandled VkTensorTilingARM";
    }
}
static inline const char* string_VkOpticalFlowPerformanceLevelNV(VkOpticalFlowPerformanceLevelNV input_value) {
    switch (input_value) {
        case VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV:
            return "VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV";
        case VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV:
            return "VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV";
        case VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV:
            return "VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV";
        case VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV:
            return "VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV";
        default:
            return "Unhandled VkOpticalFlowPerformanceLevelNV";
    }
}
static inline const char* string_VkOpticalFlowSessionBindingPointNV(VkOpticalFlowSessionBindingPointNV input_value) {
    switch (input_value) {
        case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV:
            return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV";
        case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV:
            return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV";
        case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV:
            return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV";
        case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV:
            return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV";
        case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV:
            return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV";
        case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV:
            return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV";
        case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV:
            return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV";
        case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV:
            return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV";
        case VK_OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV:
            return "VK_OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV";
        default:
            return "Unhandled VkOpticalFlowSessionBindingPointNV";
    }
}
static inline const char* string_VkAntiLagModeAMD(VkAntiLagModeAMD input_value) {
    switch (input_value) {
        case VK_ANTI_LAG_MODE_DRIVER_CONTROL_AMD:
            return "VK_ANTI_LAG_MODE_DRIVER_CONTROL_AMD";
        case VK_ANTI_LAG_MODE_ON_AMD:
            return "VK_ANTI_LAG_MODE_ON_AMD";
        case VK_ANTI_LAG_MODE_OFF_AMD:
            return "VK_ANTI_LAG_MODE_OFF_AMD";
        default:
            return "Unhandled VkAntiLagModeAMD";
    }
}
static inline const char* string_VkAntiLagStageAMD(VkAntiLagStageAMD input_value) {
    switch (input_value) {
        case VK_ANTI_LAG_STAGE_INPUT_AMD:
            return "VK_ANTI_LAG_STAGE_INPUT_AMD";
        case VK_ANTI_LAG_STAGE_PRESENT_AMD:
            return "VK_ANTI_LAG_STAGE_PRESENT_AMD";
        default:
            return "Unhandled VkAntiLagStageAMD";
    }
}
#ifdef VK_ENABLE_BETA_EXTENSIONS
static inline const char* string_VkCompressedTriangleFormatAMDX(VkCompressedTriangleFormatAMDX input_value) {
    switch (input_value) {
        case VK_COMPRESSED_TRIANGLE_FORMAT_DGF1_AMDX:
            return "VK_COMPRESSED_TRIANGLE_FORMAT_DGF1_AMDX";
        default:
            return "Unhandled VkCompressedTriangleFormatAMDX";
    }
}
#endif  // VK_ENABLE_BETA_EXTENSIONS
static inline const char* string_VkShaderCodeTypeEXT(VkShaderCodeTypeEXT input_value) {
    switch (input_value) {
        case VK_SHADER_CODE_TYPE_BINARY_EXT:
            return "VK_SHADER_CODE_TYPE_BINARY_EXT";
        case VK_SHADER_CODE_TYPE_SPIRV_EXT:
            return "VK_SHADER_CODE_TYPE_SPIRV_EXT";
        default:
            return "Unhandled VkShaderCodeTypeEXT";
    }
}
static inline const char* string_VkDepthClampModeEXT(VkDepthClampModeEXT input_value) {
    switch (input_value) {
        case VK_DEPTH_CLAMP_MODE_VIEWPORT_RANGE_EXT:
            return "VK_DEPTH_CLAMP_MODE_VIEWPORT_RANGE_EXT";
        case VK_DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT:
            return "VK_DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT";
        default:
            return "Unhandled VkDepthClampModeEXT";
    }
}
static inline const char* string_VkRayTracingInvocationReorderModeEXT(VkRayTracingInvocationReorderModeEXT input_value) {
    switch (input_value) {
        case VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_EXT:
            return "VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_EXT";
        case VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_EXT:
            return "VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_EXT";
        default:
            return "Unhandled VkRayTracingInvocationReorderModeEXT";
    }
}
static inline const char* string_VkCooperativeVectorMatrixLayoutNV(VkCooperativeVectorMatrixLayoutNV input_value) {
    switch (input_value) {
        case VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_ROW_MAJOR_NV:
            return "VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_ROW_MAJOR_NV";
        case VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_COLUMN_MAJOR_NV:
            return "VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_COLUMN_MAJOR_NV";
        case VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_INFERENCING_OPTIMAL_NV:
            return "VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_INFERENCING_OPTIMAL_NV";
        case VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_TRAINING_OPTIMAL_NV:
            return "VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_TRAINING_OPTIMAL_NV";
        default:
            return "Unhandled VkCooperativeVectorMatrixLayoutNV";
    }
}
static inline const char* string_VkLayerSettingTypeEXT(VkLayerSettingTypeEXT input_value) {
    switch (input_value) {
        case VK_LAYER_SETTING_TYPE_BOOL32_EXT:
            return "VK_LAYER_SETTING_TYPE_BOOL32_EXT";
        case VK_LAYER_SETTING_TYPE_INT32_EXT:
            return "VK_LAYER_SETTING_TYPE_INT32_EXT";
        case VK_LAYER_SETTING_TYPE_INT64_EXT:
            return "VK_LAYER_SETTING_TYPE_INT64_EXT";
        case VK_LAYER_SETTING_TYPE_UINT32_EXT:
            return "VK_LAYER_SETTING_TYPE_UINT32_EXT";
        case VK_LAYER_SETTING_TYPE_UINT64_EXT:
            return "VK_LAYER_SETTING_TYPE_UINT64_EXT";
        case VK_LAYER_SETTING_TYPE_FLOAT32_EXT:
            return "VK_LAYER_SETTING_TYPE_FLOAT32_EXT";
        case VK_LAYER_SETTING_TYPE_FLOAT64_EXT:
            return "VK_LAYER_SETTING_TYPE_FLOAT64_EXT";
        case VK_LAYER_SETTING_TYPE_STRING_EXT:
            return "VK_LAYER_SETTING_TYPE_STRING_EXT";
        default:
            return "Unhandled VkLayerSettingTypeEXT";
    }
}
static inline const char* string_VkLatencyMarkerNV(VkLatencyMarkerNV input_value) {
    switch (input_value) {
        case VK_LATENCY_MARKER_SIMULATION_START_NV:
            return "VK_LATENCY_MARKER_SIMULATION_START_NV";
        case VK_LATENCY_MARKER_SIMULATION_END_NV:
            return "VK_LATENCY_MARKER_SIMULATION_END_NV";
        case VK_LATENCY_MARKER_RENDERSUBMIT_START_NV:
            return "VK_LATENCY_MARKER_RENDERSUBMIT_START_NV";
        case VK_LATENCY_MARKER_RENDERSUBMIT_END_NV:
            return "VK_LATENCY_MARKER_RENDERSUBMIT_END_NV";
        case VK_LATENCY_MARKER_PRESENT_START_NV:
            return "VK_LATENCY_MARKER_PRESENT_START_NV";
        case VK_LATENCY_MARKER_PRESENT_END_NV:
            return "VK_LATENCY_MARKER_PRESENT_END_NV";
        case VK_LATENCY_MARKER_INPUT_SAMPLE_NV:
            return "VK_LATENCY_MARKER_INPUT_SAMPLE_NV";
        case VK_LATENCY_MARKER_TRIGGER_FLASH_NV:
            return "VK_LATENCY_MARKER_TRIGGER_FLASH_NV";
        case VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_START_NV:
            return "VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_START_NV";
        case VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_END_NV:
            return "VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_END_NV";
        case VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_START_NV:
            return "VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_START_NV";
        case VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_END_NV:
            return "VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_END_NV";
        default:
            return "Unhandled VkLatencyMarkerNV";
    }
}
static inline const char* string_VkOutOfBandQueueTypeNV(VkOutOfBandQueueTypeNV input_value) {
    switch (input_value) {
        case VK_OUT_OF_BAND_QUEUE_TYPE_RENDER_NV:
            return "VK_OUT_OF_BAND_QUEUE_TYPE_RENDER_NV";
        case VK_OUT_OF_BAND_QUEUE_TYPE_PRESENT_NV:
            return "VK_OUT_OF_BAND_QUEUE_TYPE_PRESENT_NV";
        default:
            return "Unhandled VkOutOfBandQueueTypeNV";
    }
}
static inline const char* string_VkDataGraphPipelineSessionBindPointARM(VkDataGraphPipelineSessionBindPointARM input_value) {
    switch (input_value) {
        case VK_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_TRANSIENT_ARM:
            return "VK_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_TRANSIENT_ARM";
        default:
            return "Unhandled VkDataGraphPipelineSessionBindPointARM";
    }
}
static inline const char* string_VkDataGraphPipelineSessionBindPointTypeARM(VkDataGraphPipelineSessionBindPointTypeARM input_value) {
    switch (input_value) {
        case VK_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_TYPE_MEMORY_ARM:
            return "VK_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_TYPE_MEMORY_ARM";
        default:
            return "Unhandled VkDataGraphPipelineSessionBindPointTypeARM";
    }
}
static inline const char* string_VkDataGraphPipelinePropertyARM(VkDataGraphPipelinePropertyARM input_value) {
    switch (input_value) {
        case VK_DATA_GRAPH_PIPELINE_PROPERTY_CREATION_LOG_ARM:
            return "VK_DATA_GRAPH_PIPELINE_PROPERTY_CREATION_LOG_ARM";
        case VK_DATA_GRAPH_PIPELINE_PROPERTY_IDENTIFIER_ARM:
            return "VK_DATA_GRAPH_PIPELINE_PROPERTY_IDENTIFIER_ARM";
        default:
            return "Unhandled VkDataGraphPipelinePropertyARM";
    }
}
static inline const char* string_VkPhysicalDeviceDataGraphProcessingEngineTypeARM(VkPhysicalDeviceDataGraphProcessingEngineTypeARM input_value) {
    switch (input_value) {
        case VK_PHYSICAL_DEVICE_DATA_GRAPH_PROCESSING_ENGINE_TYPE_DEFAULT_ARM:
            return "VK_PHYSICAL_DEVICE_DATA_GRAPH_PROCESSING_ENGINE_TYPE_DEFAULT_ARM";
        case VK_PHYSICAL_DEVICE_DATA_GRAPH_PROCESSING_ENGINE_TYPE_NEURAL_QCOM:
            return "VK_PHYSICAL_DEVICE_DATA_GRAPH_PROCESSING_ENGINE_TYPE_NEURAL_QCOM";
        case VK_PHYSICAL_DEVICE_DATA_GRAPH_PROCESSING_ENGINE_TYPE_COMPUTE_QCOM:
            return "VK_PHYSICAL_DEVICE_DATA_GRAPH_PROCESSING_ENGINE_TYPE_COMPUTE_QCOM";
        default:
            return "Unhandled VkPhysicalDeviceDataGraphProcessingEngineTypeARM";
    }
}
static inline const char* string_VkPhysicalDeviceDataGraphOperationTypeARM(VkPhysicalDeviceDataGraphOperationTypeARM input_value) {
    switch (input_value) {
        case VK_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_TYPE_SPIRV_EXTENDED_INSTRUCTION_SET_ARM:
            return "VK_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_TYPE_SPIRV_EXTENDED_INSTRUCTION_SET_ARM";
        case VK_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_TYPE_NEURAL_MODEL_QCOM:
            return "VK_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_TYPE_NEURAL_MODEL_QCOM";
        case VK_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_TYPE_BUILTIN_MODEL_QCOM:
            return "VK_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_TYPE_BUILTIN_MODEL_QCOM";
        default:
            return "Unhandled VkPhysicalDeviceDataGraphOperationTypeARM";
    }
}
static inline const char* string_VkBlockMatchWindowCompareModeQCOM(VkBlockMatchWindowCompareModeQCOM input_value) {
    switch (input_value) {
        case VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MIN_QCOM:
            return "VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MIN_QCOM";
        case VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_QCOM:
            return "VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_QCOM";
        default:
            return "Unhandled VkBlockMatchWindowCompareModeQCOM";
    }
}
static inline const char* string_VkCubicFilterWeightsQCOM(VkCubicFilterWeightsQCOM input_value) {
    switch (input_value) {
        case VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM:
            return "VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM";
        case VK_CUBIC_FILTER_WEIGHTS_ZERO_TANGENT_CARDINAL_QCOM:
            return "VK_CUBIC_FILTER_WEIGHTS_ZERO_TANGENT_CARDINAL_QCOM";
        case VK_CUBIC_FILTER_WEIGHTS_B_SPLINE_QCOM:
            return "VK_CUBIC_FILTER_WEIGHTS_B_SPLINE_QCOM";
        case VK_CUBIC_FILTER_WEIGHTS_MITCHELL_NETRAVALI_QCOM:
            return "VK_CUBIC_FILTER_WEIGHTS_MITCHELL_NETRAVALI_QCOM";
        default:
            return "Unhandled VkCubicFilterWeightsQCOM";
    }
}
static inline const char* string_VkLayeredDriverUnderlyingApiMSFT(VkLayeredDriverUnderlyingApiMSFT input_value) {
    switch (input_value) {
        case VK_LAYERED_DRIVER_UNDERLYING_API_NONE_MSFT:
            return "VK_LAYERED_DRIVER_UNDERLYING_API_NONE_MSFT";
        case VK_LAYERED_DRIVER_UNDERLYING_API_D3D12_MSFT:
            return "VK_LAYERED_DRIVER_UNDERLYING_API_D3D12_MSFT";
        default:
            return "Unhandled VkLayeredDriverUnderlyingApiMSFT";
    }
}
static inline const char* string_VkDisplaySurfaceStereoTypeNV(VkDisplaySurfaceStereoTypeNV input_value) {
    switch (input_value) {
        case VK_DISPLAY_SURFACE_STEREO_TYPE_NONE_NV:
            return "VK_DISPLAY_SURFACE_STEREO_TYPE_NONE_NV";
        case VK_DISPLAY_SURFACE_STEREO_TYPE_ONBOARD_DIN_NV:
            return "VK_DISPLAY_SURFACE_STEREO_TYPE_ONBOARD_DIN_NV";
        case VK_DISPLAY_SURFACE_STEREO_TYPE_HDMI_3D_NV:
            return "VK_DISPLAY_SURFACE_STEREO_TYPE_HDMI_3D_NV";
        case VK_DISPLAY_SURFACE_STEREO_TYPE_INBAND_DISPLAYPORT_NV:
            return "VK_DISPLAY_SURFACE_STEREO_TYPE_INBAND_DISPLAYPORT_NV";
        default:
            return "Unhandled VkDisplaySurfaceStereoTypeNV";
    }
}
static inline const char* string_VkClusterAccelerationStructureTypeNV(VkClusterAccelerationStructureTypeNV input_value) {
    switch (input_value) {
        case VK_CLUSTER_ACCELERATION_STRUCTURE_TYPE_CLUSTERS_BOTTOM_LEVEL_NV:
            return "VK_CLUSTER_ACCELERATION_STRUCTURE_TYPE_CLUSTERS_BOTTOM_LEVEL_NV";
        case VK_CLUSTER_ACCELERATION_STRUCTURE_TYPE_TRIANGLE_CLUSTER_NV:
            return "VK_CLUSTER_ACCELERATION_STRUCTURE_TYPE_TRIANGLE_CLUSTER_NV";
        case VK_CLUSTER_ACCELERATION_STRUCTURE_TYPE_TRIANGLE_CLUSTER_TEMPLATE_NV:
            return "VK_CLUSTER_ACCELERATION_STRUCTURE_TYPE_TRIANGLE_CLUSTER_TEMPLATE_NV";
        default:
            return "Unhandled VkClusterAccelerationStructureTypeNV";
    }
}
static inline const char* string_VkClusterAccelerationStructureOpTypeNV(VkClusterAccelerationStructureOpTypeNV input_value) {
    switch (input_value) {
        case VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_MOVE_OBJECTS_NV:
            return "VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_MOVE_OBJECTS_NV";
        case VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_BUILD_CLUSTERS_BOTTOM_LEVEL_NV:
            return "VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_BUILD_CLUSTERS_BOTTOM_LEVEL_NV";
        case VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_BUILD_TRIANGLE_CLUSTER_NV:
            return "VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_BUILD_TRIANGLE_CLUSTER_NV";
        case VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_BUILD_TRIANGLE_CLUSTER_TEMPLATE_NV:
            return "VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_BUILD_TRIANGLE_CLUSTER_TEMPLATE_NV";
        case VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_INSTANTIATE_TRIANGLE_CLUSTER_NV:
            return "VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_INSTANTIATE_TRIANGLE_CLUSTER_NV";
        case VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_GET_CLUSTER_TEMPLATE_INDICES_NV:
            return "VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_GET_CLUSTER_TEMPLATE_INDICES_NV";
        default:
            return "Unhandled VkClusterAccelerationStructureOpTypeNV";
    }
}
static inline const char* string_VkClusterAccelerationStructureOpModeNV(VkClusterAccelerationStructureOpModeNV input_value) {
    switch (input_value) {
        case VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_IMPLICIT_DESTINATIONS_NV:
            return "VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_IMPLICIT_DESTINATIONS_NV";
        case VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_EXPLICIT_DESTINATIONS_NV:
            return "VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_EXPLICIT_DESTINATIONS_NV";
        case VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_COMPUTE_SIZES_NV:
            return "VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_COMPUTE_SIZES_NV";
        default:
            return "Unhandled VkClusterAccelerationStructureOpModeNV";
    }
}
static inline const char* string_VkPartitionedAccelerationStructureOpTypeNV(VkPartitionedAccelerationStructureOpTypeNV input_value) {
    switch (input_value) {
        case VK_PARTITIONED_ACCELERATION_STRUCTURE_OP_TYPE_WRITE_INSTANCE_NV:
            return "VK_PARTITIONED_ACCELERATION_STRUCTURE_OP_TYPE_WRITE_INSTANCE_NV";
        case VK_PARTITIONED_ACCELERATION_STRUCTURE_OP_TYPE_UPDATE_INSTANCE_NV:
            return "VK_PARTITIONED_ACCELERATION_STRUCTURE_OP_TYPE_UPDATE_INSTANCE_NV";
        case VK_PARTITIONED_ACCELERATION_STRUCTURE_OP_TYPE_WRITE_PARTITION_TRANSLATION_NV:
            return "VK_PARTITIONED_ACCELERATION_STRUCTURE_OP_TYPE_WRITE_PARTITION_TRANSLATION_NV";
        default:
            return "Unhandled VkPartitionedAccelerationStructureOpTypeNV";
    }
}
static inline const char* string_VkIndirectExecutionSetInfoTypeEXT(VkIndirectExecutionSetInfoTypeEXT input_value) {
    switch (input_value) {
        case VK_INDIRECT_EXECUTION_SET_INFO_TYPE_PIPELINES_EXT:
            return "VK_INDIRECT_EXECUTION_SET_INFO_TYPE_PIPELINES_EXT";
        case VK_INDIRECT_EXECUTION_SET_INFO_TYPE_SHADER_OBJECTS_EXT:
            return "VK_INDIRECT_EXECUTION_SET_INFO_TYPE_SHADER_OBJECTS_EXT";
        default:
            return "Unhandled VkIndirectExecutionSetInfoTypeEXT";
    }
}
static inline const char* string_VkIndirectCommandsTokenTypeEXT(VkIndirectCommandsTokenTypeEXT input_value) {
    switch (input_value) {
        case VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT:
            return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT";
        case VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT:
            return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT";
        case VK_INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT:
            return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT";
        case VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_EXT:
            return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_EXT";
        case VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT:
            return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT";
        case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_EXT:
            return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_EXT";
        case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_EXT:
            return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_EXT";
        case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_COUNT_EXT:
            return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_COUNT_EXT";
        case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_COUNT_EXT:
            return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_COUNT_EXT";
        case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_EXT:
            return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_EXT";
        case VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_DATA_EXT:
            return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_DATA_EXT";
        case VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_DATA_SEQUENCE_INDEX_EXT:
            return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_DATA_SEQUENCE_INDEX_EXT";
        case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV_EXT:
            return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV_EXT";
        case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_NV_EXT:
            return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_NV_EXT";
        case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_EXT:
            return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_EXT";
        case VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_EXT:
            return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_EXT";
        case VK_INDIRECT_COMMANDS_TOKEN_TYPE_TRACE_RAYS2_EXT:
            return "VK_INDIRECT_COMMANDS_TOKEN_TYPE_TRACE_RAYS2_EXT";
        default:
            return "Unhandled VkIndirectCommandsTokenTypeEXT";
    }
}
static inline const char* string_VkDataGraphModelCacheTypeQCOM(VkDataGraphModelCacheTypeQCOM input_value) {
    switch (input_value) {
        case VK_DATA_GRAPH_MODEL_CACHE_TYPE_GENERIC_BINARY_QCOM:
            return "VK_DATA_GRAPH_MODEL_CACHE_TYPE_GENERIC_BINARY_QCOM";
        default:
            return "Unhandled VkDataGraphModelCacheTypeQCOM";
    }
}
static inline const char* string_VkBuildAccelerationStructureModeKHR(VkBuildAccelerationStructureModeKHR input_value) {
    switch (input_value) {
        case VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR:
            return "VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR";
        case VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR:
            return "VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR";
        default:
            return "Unhandled VkBuildAccelerationStructureModeKHR";
    }
}
static inline const char* string_VkShaderGroupShaderKHR(VkShaderGroupShaderKHR input_value) {
    switch (input_value) {
        case VK_SHADER_GROUP_SHADER_GENERAL_KHR:
            return "VK_SHADER_GROUP_SHADER_GENERAL_KHR";
        case VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR:
            return "VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR";
        case VK_SHADER_GROUP_SHADER_ANY_HIT_KHR:
            return "VK_SHADER_GROUP_SHADER_ANY_HIT_KHR";
        case VK_SHADER_GROUP_SHADER_INTERSECTION_KHR:
            return "VK_SHADER_GROUP_SHADER_INTERSECTION_KHR";
        default:
            return "Unhandled VkShaderGroupShaderKHR";
    }
}

static inline const char* string_VkAccessFlagBits(VkAccessFlagBits input_value) {
    switch (input_value) {
        case VK_ACCESS_INDIRECT_COMMAND_READ_BIT:
            return "VK_ACCESS_INDIRECT_COMMAND_READ_BIT";
        case VK_ACCESS_INDEX_READ_BIT:
            return "VK_ACCESS_INDEX_READ_BIT";
        case VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT:
            return "VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT";
        case VK_ACCESS_UNIFORM_READ_BIT:
            return "VK_ACCESS_UNIFORM_READ_BIT";
        case VK_ACCESS_INPUT_ATTACHMENT_READ_BIT:
            return "VK_ACCESS_INPUT_ATTACHMENT_READ_BIT";
        case VK_ACCESS_SHADER_READ_BIT:
            return "VK_ACCESS_SHADER_READ_BIT";
        case VK_ACCESS_SHADER_WRITE_BIT:
            return "VK_ACCESS_SHADER_WRITE_BIT";
        case VK_ACCESS_COLOR_ATTACHMENT_READ_BIT:
            return "VK_ACCESS_COLOR_ATTACHMENT_READ_BIT";
        case VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT:
            return "VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT";
        case VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT:
            return "VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT";
        case VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT:
            return "VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT";
        case VK_ACCESS_TRANSFER_READ_BIT:
            return "VK_ACCESS_TRANSFER_READ_BIT";
        case VK_ACCESS_TRANSFER_WRITE_BIT:
            return "VK_ACCESS_TRANSFER_WRITE_BIT";
        case VK_ACCESS_HOST_READ_BIT:
            return "VK_ACCESS_HOST_READ_BIT";
        case VK_ACCESS_HOST_WRITE_BIT:
            return "VK_ACCESS_HOST_WRITE_BIT";
        case VK_ACCESS_MEMORY_READ_BIT:
            return "VK_ACCESS_MEMORY_READ_BIT";
        case VK_ACCESS_MEMORY_WRITE_BIT:
            return "VK_ACCESS_MEMORY_WRITE_BIT";
        case VK_ACCESS_NONE:
            return "VK_ACCESS_NONE";
        case VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT:
            return "VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT";
        case VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT:
            return "VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT";
        case VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT:
            return "VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT";
        case VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT:
            return "VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT";
        case VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT:
            return "VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT";
        case VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR:
            return "VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR";
        case VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR:
            return "VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR";
        case VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT:
            return "VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT";
        case VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR:
            return "VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR";
        case VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_EXT:
            return "VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_EXT";
        case VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_EXT:
            return "VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_EXT";
        default:
            return "Unhandled VkAccessFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkAccessFlags(VkAccessFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkAccessFlagBits(static_cast<VkAccessFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkAccessFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkImageAspectFlagBits(VkImageAspectFlagBits input_value) {
    switch (input_value) {
        case VK_IMAGE_ASPECT_COLOR_BIT:
            return "VK_IMAGE_ASPECT_COLOR_BIT";
        case VK_IMAGE_ASPECT_DEPTH_BIT:
            return "VK_IMAGE_ASPECT_DEPTH_BIT";
        case VK_IMAGE_ASPECT_STENCIL_BIT:
            return "VK_IMAGE_ASPECT_STENCIL_BIT";
        case VK_IMAGE_ASPECT_METADATA_BIT:
            return "VK_IMAGE_ASPECT_METADATA_BIT";
        case VK_IMAGE_ASPECT_PLANE_0_BIT:
            return "VK_IMAGE_ASPECT_PLANE_0_BIT";
        case VK_IMAGE_ASPECT_PLANE_1_BIT:
            return "VK_IMAGE_ASPECT_PLANE_1_BIT";
        case VK_IMAGE_ASPECT_PLANE_2_BIT:
            return "VK_IMAGE_ASPECT_PLANE_2_BIT";
        case VK_IMAGE_ASPECT_NONE:
            return "VK_IMAGE_ASPECT_NONE";
        case VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT:
            return "VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT";
        case VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT:
            return "VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT";
        case VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT:
            return "VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT";
        case VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT:
            return "VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT";
        default:
            return "Unhandled VkImageAspectFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkImageAspectFlags(VkImageAspectFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkImageAspectFlagBits(static_cast<VkImageAspectFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkImageAspectFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkFormatFeatureFlagBits(VkFormatFeatureFlagBits input_value) {
    switch (input_value) {
        case VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT:
            return "VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT";
        case VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT:
            return "VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT";
        case VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT:
            return "VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT";
        case VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT:
            return "VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT";
        case VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT:
            return "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT";
        case VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT:
            return "VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT";
        case VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT:
            return "VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT";
        case VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT:
            return "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT";
        case VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT:
            return "VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT";
        case VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT:
            return "VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT";
        case VK_FORMAT_FEATURE_BLIT_SRC_BIT:
            return "VK_FORMAT_FEATURE_BLIT_SRC_BIT";
        case VK_FORMAT_FEATURE_BLIT_DST_BIT:
            return "VK_FORMAT_FEATURE_BLIT_DST_BIT";
        case VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT:
            return "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT";
        case VK_FORMAT_FEATURE_TRANSFER_SRC_BIT:
            return "VK_FORMAT_FEATURE_TRANSFER_SRC_BIT";
        case VK_FORMAT_FEATURE_TRANSFER_DST_BIT:
            return "VK_FORMAT_FEATURE_TRANSFER_DST_BIT";
        case VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT:
            return "VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT";
        case VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT:
            return "VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT";
        case VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT:
            return "VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT";
        case VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT:
            return "VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT";
        case VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT:
            return "VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT";
        case VK_FORMAT_FEATURE_DISJOINT_BIT:
            return "VK_FORMAT_FEATURE_DISJOINT_BIT";
        case VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT:
            return "VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT";
        case VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT:
            return "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT";
        case VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR:
            return "VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR";
        case VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR:
            return "VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR";
        case VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR:
            return "VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR";
        case VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT:
            return "VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT";
        case VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT:
            return "VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT";
        case VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR:
            return "VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR";
        case VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR:
            return "VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR";
        case VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR:
            return "VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR";
        default:
            return "Unhandled VkFormatFeatureFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkFormatFeatureFlags(VkFormatFeatureFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkFormatFeatureFlagBits(static_cast<VkFormatFeatureFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkFormatFeatureFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkImageCreateFlagBits(VkImageCreateFlagBits input_value) {
    switch (input_value) {
        case VK_IMAGE_CREATE_SPARSE_BINDING_BIT:
            return "VK_IMAGE_CREATE_SPARSE_BINDING_BIT";
        case VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT:
            return "VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT";
        case VK_IMAGE_CREATE_SPARSE_ALIASED_BIT:
            return "VK_IMAGE_CREATE_SPARSE_ALIASED_BIT";
        case VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT:
            return "VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT";
        case VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT:
            return "VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT";
        case VK_IMAGE_CREATE_ALIAS_BIT:
            return "VK_IMAGE_CREATE_ALIAS_BIT";
        case VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT:
            return "VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT";
        case VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT:
            return "VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT";
        case VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT:
            return "VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT";
        case VK_IMAGE_CREATE_EXTENDED_USAGE_BIT:
            return "VK_IMAGE_CREATE_EXTENDED_USAGE_BIT";
        case VK_IMAGE_CREATE_PROTECTED_BIT:
            return "VK_IMAGE_CREATE_PROTECTED_BIT";
        case VK_IMAGE_CREATE_DISJOINT_BIT:
            return "VK_IMAGE_CREATE_DISJOINT_BIT";
        case VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV:
            return "VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV";
        case VK_IMAGE_CREATE_DESCRIPTOR_HEAP_CAPTURE_REPLAY_BIT_EXT:
            return "VK_IMAGE_CREATE_DESCRIPTOR_HEAP_CAPTURE_REPLAY_BIT_EXT";
        case VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT:
            return "VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT";
        case VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT:
            return "VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT";
        case VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT:
            return "VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT";
        case VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT:
            return "VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT";
        case VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR:
            return "VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR";
        case VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_EXT:
            return "VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_EXT";
        default:
            return "Unhandled VkImageCreateFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkImageCreateFlags(VkImageCreateFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkImageCreateFlagBits(static_cast<VkImageCreateFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkImageCreateFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkSampleCountFlagBits(VkSampleCountFlagBits input_value) {
    switch (input_value) {
        case VK_SAMPLE_COUNT_1_BIT:
            return "VK_SAMPLE_COUNT_1_BIT";
        case VK_SAMPLE_COUNT_2_BIT:
            return "VK_SAMPLE_COUNT_2_BIT";
        case VK_SAMPLE_COUNT_4_BIT:
            return "VK_SAMPLE_COUNT_4_BIT";
        case VK_SAMPLE_COUNT_8_BIT:
            return "VK_SAMPLE_COUNT_8_BIT";
        case VK_SAMPLE_COUNT_16_BIT:
            return "VK_SAMPLE_COUNT_16_BIT";
        case VK_SAMPLE_COUNT_32_BIT:
            return "VK_SAMPLE_COUNT_32_BIT";
        case VK_SAMPLE_COUNT_64_BIT:
            return "VK_SAMPLE_COUNT_64_BIT";
        default:
            return "Unhandled VkSampleCountFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkSampleCountFlags(VkSampleCountFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkSampleCountFlagBits(static_cast<VkSampleCountFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkSampleCountFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkImageUsageFlagBits(VkImageUsageFlagBits input_value) {
    switch (input_value) {
        case VK_IMAGE_USAGE_TRANSFER_SRC_BIT:
            return "VK_IMAGE_USAGE_TRANSFER_SRC_BIT";
        case VK_IMAGE_USAGE_TRANSFER_DST_BIT:
            return "VK_IMAGE_USAGE_TRANSFER_DST_BIT";
        case VK_IMAGE_USAGE_SAMPLED_BIT:
            return "VK_IMAGE_USAGE_SAMPLED_BIT";
        case VK_IMAGE_USAGE_STORAGE_BIT:
            return "VK_IMAGE_USAGE_STORAGE_BIT";
        case VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT:
            return "VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT";
        case VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT:
            return "VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT";
        case VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT:
            return "VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT";
        case VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT:
            return "VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT";
        case VK_IMAGE_USAGE_HOST_TRANSFER_BIT:
            return "VK_IMAGE_USAGE_HOST_TRANSFER_BIT";
        case VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR:
            return "VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR";
        case VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR:
            return "VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR";
        case VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR:
            return "VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR";
        case VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT:
            return "VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT";
        case VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR:
            return "VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR";
        case VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR:
            return "VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR";
        case VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR:
            return "VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR";
        case VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR:
            return "VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR";
        case VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT:
            return "VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT";
        case VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI:
            return "VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI";
        case VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM:
            return "VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM";
        case VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM:
            return "VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM";
        case VK_IMAGE_USAGE_TENSOR_ALIASING_BIT_ARM:
            return "VK_IMAGE_USAGE_TENSOR_ALIASING_BIT_ARM";
        case VK_IMAGE_USAGE_TILE_MEMORY_BIT_QCOM:
            return "VK_IMAGE_USAGE_TILE_MEMORY_BIT_QCOM";
        case VK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR:
            return "VK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR";
        case VK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR:
            return "VK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR";
        default:
            return "Unhandled VkImageUsageFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkImageUsageFlags(VkImageUsageFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkImageUsageFlagBits(static_cast<VkImageUsageFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkImageUsageFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkInstanceCreateFlagBits(VkInstanceCreateFlagBits input_value) {
    switch (input_value) {
        case VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR:
            return "VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR";
        default:
            return "Unhandled VkInstanceCreateFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkInstanceCreateFlags(VkInstanceCreateFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkInstanceCreateFlagBits(static_cast<VkInstanceCreateFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkInstanceCreateFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkMemoryHeapFlagBits(VkMemoryHeapFlagBits input_value) {
    switch (input_value) {
        case VK_MEMORY_HEAP_DEVICE_LOCAL_BIT:
            return "VK_MEMORY_HEAP_DEVICE_LOCAL_BIT";
        case VK_MEMORY_HEAP_MULTI_INSTANCE_BIT:
            return "VK_MEMORY_HEAP_MULTI_INSTANCE_BIT";
        case VK_MEMORY_HEAP_TILE_MEMORY_BIT_QCOM:
            return "VK_MEMORY_HEAP_TILE_MEMORY_BIT_QCOM";
        default:
            return "Unhandled VkMemoryHeapFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkMemoryHeapFlags(VkMemoryHeapFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkMemoryHeapFlagBits(static_cast<VkMemoryHeapFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkMemoryHeapFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkMemoryPropertyFlagBits(VkMemoryPropertyFlagBits input_value) {
    switch (input_value) {
        case VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT:
            return "VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT";
        case VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT:
            return "VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT";
        case VK_MEMORY_PROPERTY_HOST_COHERENT_BIT:
            return "VK_MEMORY_PROPERTY_HOST_COHERENT_BIT";
        case VK_MEMORY_PROPERTY_HOST_CACHED_BIT:
            return "VK_MEMORY_PROPERTY_HOST_CACHED_BIT";
        case VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT:
            return "VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT";
        case VK_MEMORY_PROPERTY_PROTECTED_BIT:
            return "VK_MEMORY_PROPERTY_PROTECTED_BIT";
        case VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD:
            return "VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD";
        case VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD:
            return "VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD";
        case VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV:
            return "VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV";
        default:
            return "Unhandled VkMemoryPropertyFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkMemoryPropertyFlags(VkMemoryPropertyFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkMemoryPropertyFlagBits(static_cast<VkMemoryPropertyFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkMemoryPropertyFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkQueueFlagBits(VkQueueFlagBits input_value) {
    switch (input_value) {
        case VK_QUEUE_GRAPHICS_BIT:
            return "VK_QUEUE_GRAPHICS_BIT";
        case VK_QUEUE_COMPUTE_BIT:
            return "VK_QUEUE_COMPUTE_BIT";
        case VK_QUEUE_TRANSFER_BIT:
            return "VK_QUEUE_TRANSFER_BIT";
        case VK_QUEUE_SPARSE_BINDING_BIT:
            return "VK_QUEUE_SPARSE_BINDING_BIT";
        case VK_QUEUE_PROTECTED_BIT:
            return "VK_QUEUE_PROTECTED_BIT";
        case VK_QUEUE_VIDEO_DECODE_BIT_KHR:
            return "VK_QUEUE_VIDEO_DECODE_BIT_KHR";
        case VK_QUEUE_VIDEO_ENCODE_BIT_KHR:
            return "VK_QUEUE_VIDEO_ENCODE_BIT_KHR";
        case VK_QUEUE_OPTICAL_FLOW_BIT_NV:
            return "VK_QUEUE_OPTICAL_FLOW_BIT_NV";
        case VK_QUEUE_DATA_GRAPH_BIT_ARM:
            return "VK_QUEUE_DATA_GRAPH_BIT_ARM";
        default:
            return "Unhandled VkQueueFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkQueueFlags(VkQueueFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkQueueFlagBits(static_cast<VkQueueFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkQueueFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkDeviceQueueCreateFlagBits(VkDeviceQueueCreateFlagBits input_value) {
    switch (input_value) {
        case VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT:
            return "VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT";
        case VK_DEVICE_QUEUE_CREATE_INTERNALLY_SYNCHRONIZED_BIT_KHR:
            return "VK_DEVICE_QUEUE_CREATE_INTERNALLY_SYNCHRONIZED_BIT_KHR";
        default:
            return "Unhandled VkDeviceQueueCreateFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkDeviceQueueCreateFlags(VkDeviceQueueCreateFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkDeviceQueueCreateFlagBits(static_cast<VkDeviceQueueCreateFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkDeviceQueueCreateFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkPipelineStageFlagBits(VkPipelineStageFlagBits input_value) {
    switch (input_value) {
        case VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT:
            return "VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT";
        case VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT:
            return "VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT";
        case VK_PIPELINE_STAGE_VERTEX_INPUT_BIT:
            return "VK_PIPELINE_STAGE_VERTEX_INPUT_BIT";
        case VK_PIPELINE_STAGE_VERTEX_SHADER_BIT:
            return "VK_PIPELINE_STAGE_VERTEX_SHADER_BIT";
        case VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT:
            return "VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT";
        case VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT:
            return "VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT";
        case VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT:
            return "VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT";
        case VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT:
            return "VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT";
        case VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT:
            return "VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT";
        case VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT:
            return "VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT";
        case VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT:
            return "VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT";
        case VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT:
            return "VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT";
        case VK_PIPELINE_STAGE_TRANSFER_BIT:
            return "VK_PIPELINE_STAGE_TRANSFER_BIT";
        case VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT:
            return "VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT";
        case VK_PIPELINE_STAGE_HOST_BIT:
            return "VK_PIPELINE_STAGE_HOST_BIT";
        case VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT:
            return "VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT";
        case VK_PIPELINE_STAGE_ALL_COMMANDS_BIT:
            return "VK_PIPELINE_STAGE_ALL_COMMANDS_BIT";
        case VK_PIPELINE_STAGE_NONE:
            return "VK_PIPELINE_STAGE_NONE";
        case VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT:
            return "VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT";
        case VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT:
            return "VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT";
        case VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR:
            return "VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR";
        case VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR:
            return "VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR";
        case VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT:
            return "VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT";
        case VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR:
            return "VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR";
        case VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT:
            return "VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT";
        case VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT:
            return "VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT";
        case VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_EXT:
            return "VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_EXT";
        default:
            return "Unhandled VkPipelineStageFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkPipelineStageFlags(VkPipelineStageFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkPipelineStageFlagBits(static_cast<VkPipelineStageFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkPipelineStageFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkMemoryMapFlagBits(VkMemoryMapFlagBits input_value) {
    switch (input_value) {
        case VK_MEMORY_MAP_PLACED_BIT_EXT:
            return "VK_MEMORY_MAP_PLACED_BIT_EXT";
        default:
            return "Unhandled VkMemoryMapFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkMemoryMapFlags(VkMemoryMapFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkMemoryMapFlagBits(static_cast<VkMemoryMapFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkMemoryMapFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkSparseMemoryBindFlagBits(VkSparseMemoryBindFlagBits input_value) {
    switch (input_value) {
        case VK_SPARSE_MEMORY_BIND_METADATA_BIT:
            return "VK_SPARSE_MEMORY_BIND_METADATA_BIT";
        default:
            return "Unhandled VkSparseMemoryBindFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkSparseMemoryBindFlags(VkSparseMemoryBindFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkSparseMemoryBindFlagBits(static_cast<VkSparseMemoryBindFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkSparseMemoryBindFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkSparseImageFormatFlagBits(VkSparseImageFormatFlagBits input_value) {
    switch (input_value) {
        case VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT:
            return "VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT";
        case VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT:
            return "VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT";
        case VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT:
            return "VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT";
        default:
            return "Unhandled VkSparseImageFormatFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkSparseImageFormatFlags(VkSparseImageFormatFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkSparseImageFormatFlagBits(static_cast<VkSparseImageFormatFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkSparseImageFormatFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkFenceCreateFlagBits(VkFenceCreateFlagBits input_value) {
    switch (input_value) {
        case VK_FENCE_CREATE_SIGNALED_BIT:
            return "VK_FENCE_CREATE_SIGNALED_BIT";
        default:
            return "Unhandled VkFenceCreateFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkFenceCreateFlags(VkFenceCreateFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkFenceCreateFlagBits(static_cast<VkFenceCreateFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkFenceCreateFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkQueryPoolCreateFlagBits(VkQueryPoolCreateFlagBits input_value) {
    switch (input_value) {
        case VK_QUERY_POOL_CREATE_RESET_BIT_KHR:
            return "VK_QUERY_POOL_CREATE_RESET_BIT_KHR";
        default:
            return "Unhandled VkQueryPoolCreateFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkQueryPoolCreateFlags(VkQueryPoolCreateFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkQueryPoolCreateFlagBits(static_cast<VkQueryPoolCreateFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkQueryPoolCreateFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkQueryPipelineStatisticFlagBits(VkQueryPipelineStatisticFlagBits input_value) {
    switch (input_value) {
        case VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT:
            return "VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT";
        case VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT:
            return "VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT";
        case VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT:
            return "VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT";
        case VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT:
            return "VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT";
        case VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT:
            return "VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT";
        case VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT:
            return "VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT";
        case VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT:
            return "VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT";
        case VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT:
            return "VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT";
        case VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT:
            return "VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT";
        case VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT:
            return "VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT";
        case VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT:
            return "VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT";
        case VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT:
            return "VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT";
        case VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT:
            return "VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT";
        case VK_QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI:
            return "VK_QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI";
        default:
            return "Unhandled VkQueryPipelineStatisticFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkQueryPipelineStatisticFlags(VkQueryPipelineStatisticFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkQueryPipelineStatisticFlagBits(static_cast<VkQueryPipelineStatisticFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkQueryPipelineStatisticFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkQueryResultFlagBits(VkQueryResultFlagBits input_value) {
    switch (input_value) {
        case VK_QUERY_RESULT_64_BIT:
            return "VK_QUERY_RESULT_64_BIT";
        case VK_QUERY_RESULT_WAIT_BIT:
            return "VK_QUERY_RESULT_WAIT_BIT";
        case VK_QUERY_RESULT_WITH_AVAILABILITY_BIT:
            return "VK_QUERY_RESULT_WITH_AVAILABILITY_BIT";
        case VK_QUERY_RESULT_PARTIAL_BIT:
            return "VK_QUERY_RESULT_PARTIAL_BIT";
        case VK_QUERY_RESULT_WITH_STATUS_BIT_KHR:
            return "VK_QUERY_RESULT_WITH_STATUS_BIT_KHR";
        default:
            return "Unhandled VkQueryResultFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkQueryResultFlags(VkQueryResultFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkQueryResultFlagBits(static_cast<VkQueryResultFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkQueryResultFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkBufferCreateFlagBits(VkBufferCreateFlagBits input_value) {
    switch (input_value) {
        case VK_BUFFER_CREATE_SPARSE_BINDING_BIT:
            return "VK_BUFFER_CREATE_SPARSE_BINDING_BIT";
        case VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT:
            return "VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT";
        case VK_BUFFER_CREATE_SPARSE_ALIASED_BIT:
            return "VK_BUFFER_CREATE_SPARSE_ALIASED_BIT";
        case VK_BUFFER_CREATE_PROTECTED_BIT:
            return "VK_BUFFER_CREATE_PROTECTED_BIT";
        case VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT:
            return "VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT";
        case VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT:
            return "VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT";
        case VK_BUFFER_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR:
            return "VK_BUFFER_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR";
        default:
            return "Unhandled VkBufferCreateFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkBufferCreateFlags(VkBufferCreateFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkBufferCreateFlagBits(static_cast<VkBufferCreateFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkBufferCreateFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkBufferUsageFlagBits(VkBufferUsageFlagBits input_value) {
    switch (input_value) {
        case VK_BUFFER_USAGE_TRANSFER_SRC_BIT:
            return "VK_BUFFER_USAGE_TRANSFER_SRC_BIT";
        case VK_BUFFER_USAGE_TRANSFER_DST_BIT:
            return "VK_BUFFER_USAGE_TRANSFER_DST_BIT";
        case VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT:
            return "VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT";
        case VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT:
            return "VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT";
        case VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT:
            return "VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT";
        case VK_BUFFER_USAGE_STORAGE_BUFFER_BIT:
            return "VK_BUFFER_USAGE_STORAGE_BUFFER_BIT";
        case VK_BUFFER_USAGE_INDEX_BUFFER_BIT:
            return "VK_BUFFER_USAGE_INDEX_BUFFER_BIT";
        case VK_BUFFER_USAGE_VERTEX_BUFFER_BIT:
            return "VK_BUFFER_USAGE_VERTEX_BUFFER_BIT";
        case VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT:
            return "VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT";
        case VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT:
            return "VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT";
        case VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR:
            return "VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR";
        case VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR:
            return "VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR";
        case VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT:
            return "VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT";
        case VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT:
            return "VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT";
        case VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT:
            return "VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT";
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX:
            return "VK_BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX";
#endif  // VK_ENABLE_BETA_EXTENSIONS
        case VK_BUFFER_USAGE_DESCRIPTOR_HEAP_BIT_EXT:
            return "VK_BUFFER_USAGE_DESCRIPTOR_HEAP_BIT_EXT";
        case VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR:
            return "VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR";
        case VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR:
            return "VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR";
        case VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR:
            return "VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR";
        case VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR:
            return "VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR";
        case VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR:
            return "VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR";
        case VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT:
            return "VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT";
        case VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT:
            return "VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT";
        case VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT:
            return "VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT";
        case VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT:
            return "VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT";
        case VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT:
            return "VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT";
        case VK_BUFFER_USAGE_TILE_MEMORY_BIT_QCOM:
            return "VK_BUFFER_USAGE_TILE_MEMORY_BIT_QCOM";
        default:
            return "Unhandled VkBufferUsageFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkBufferUsageFlags(VkBufferUsageFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkBufferUsageFlagBits(static_cast<VkBufferUsageFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkBufferUsageFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkImageViewCreateFlagBits(VkImageViewCreateFlagBits input_value) {
    switch (input_value) {
        case VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT:
            return "VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT";
        case VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT:
            return "VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT";
        case VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT:
            return "VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT";
        default:
            return "Unhandled VkImageViewCreateFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkImageViewCreateFlags(VkImageViewCreateFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkImageViewCreateFlagBits(static_cast<VkImageViewCreateFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkImageViewCreateFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkDependencyFlagBits(VkDependencyFlagBits input_value) {
    switch (input_value) {
        case VK_DEPENDENCY_BY_REGION_BIT:
            return "VK_DEPENDENCY_BY_REGION_BIT";
        case VK_DEPENDENCY_DEVICE_GROUP_BIT:
            return "VK_DEPENDENCY_DEVICE_GROUP_BIT";
        case VK_DEPENDENCY_VIEW_LOCAL_BIT:
            return "VK_DEPENDENCY_VIEW_LOCAL_BIT";
        case VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT:
            return "VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT";
        case VK_DEPENDENCY_QUEUE_FAMILY_OWNERSHIP_TRANSFER_USE_ALL_STAGES_BIT_KHR:
            return "VK_DEPENDENCY_QUEUE_FAMILY_OWNERSHIP_TRANSFER_USE_ALL_STAGES_BIT_KHR";
        case VK_DEPENDENCY_ASYMMETRIC_EVENT_BIT_KHR:
            return "VK_DEPENDENCY_ASYMMETRIC_EVENT_BIT_KHR";
        default:
            return "Unhandled VkDependencyFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkDependencyFlags(VkDependencyFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkDependencyFlagBits(static_cast<VkDependencyFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkDependencyFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkCommandPoolCreateFlagBits(VkCommandPoolCreateFlagBits input_value) {
    switch (input_value) {
        case VK_COMMAND_POOL_CREATE_TRANSIENT_BIT:
            return "VK_COMMAND_POOL_CREATE_TRANSIENT_BIT";
        case VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT:
            return "VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT";
        case VK_COMMAND_POOL_CREATE_PROTECTED_BIT:
            return "VK_COMMAND_POOL_CREATE_PROTECTED_BIT";
        default:
            return "Unhandled VkCommandPoolCreateFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkCommandPoolCreateFlags(VkCommandPoolCreateFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkCommandPoolCreateFlagBits(static_cast<VkCommandPoolCreateFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkCommandPoolCreateFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkCommandPoolResetFlagBits(VkCommandPoolResetFlagBits input_value) {
    switch (input_value) {
        case VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT:
            return "VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT";
        default:
            return "Unhandled VkCommandPoolResetFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkCommandPoolResetFlags(VkCommandPoolResetFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkCommandPoolResetFlagBits(static_cast<VkCommandPoolResetFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkCommandPoolResetFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkCommandBufferUsageFlagBits(VkCommandBufferUsageFlagBits input_value) {
    switch (input_value) {
        case VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT:
            return "VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT";
        case VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT:
            return "VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT";
        case VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT:
            return "VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT";
        default:
            return "Unhandled VkCommandBufferUsageFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkCommandBufferUsageFlags(VkCommandBufferUsageFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkCommandBufferUsageFlagBits(static_cast<VkCommandBufferUsageFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkCommandBufferUsageFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkQueryControlFlagBits(VkQueryControlFlagBits input_value) {
    switch (input_value) {
        case VK_QUERY_CONTROL_PRECISE_BIT:
            return "VK_QUERY_CONTROL_PRECISE_BIT";
        default:
            return "Unhandled VkQueryControlFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkQueryControlFlags(VkQueryControlFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkQueryControlFlagBits(static_cast<VkQueryControlFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkQueryControlFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkCommandBufferResetFlagBits(VkCommandBufferResetFlagBits input_value) {
    switch (input_value) {
        case VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT:
            return "VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT";
        default:
            return "Unhandled VkCommandBufferResetFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkCommandBufferResetFlags(VkCommandBufferResetFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkCommandBufferResetFlagBits(static_cast<VkCommandBufferResetFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkCommandBufferResetFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkEventCreateFlagBits(VkEventCreateFlagBits input_value) {
    switch (input_value) {
        case VK_EVENT_CREATE_DEVICE_ONLY_BIT:
            return "VK_EVENT_CREATE_DEVICE_ONLY_BIT";
        default:
            return "Unhandled VkEventCreateFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkEventCreateFlags(VkEventCreateFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkEventCreateFlagBits(static_cast<VkEventCreateFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkEventCreateFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkPipelineCacheCreateFlagBits(VkPipelineCacheCreateFlagBits input_value) {
    switch (input_value) {
        case VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT:
            return "VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT";
        case VK_PIPELINE_CACHE_CREATE_INTERNALLY_SYNCHRONIZED_MERGE_BIT_KHR:
            return "VK_PIPELINE_CACHE_CREATE_INTERNALLY_SYNCHRONIZED_MERGE_BIT_KHR";
        default:
            return "Unhandled VkPipelineCacheCreateFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkPipelineCacheCreateFlags(VkPipelineCacheCreateFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkPipelineCacheCreateFlagBits(static_cast<VkPipelineCacheCreateFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkPipelineCacheCreateFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkPipelineCreateFlagBits(VkPipelineCreateFlagBits input_value) {
    switch (input_value) {
        case VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT:
            return "VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT";
        case VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT:
            return "VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT";
        case VK_PIPELINE_CREATE_DERIVATIVE_BIT:
            return "VK_PIPELINE_CREATE_DERIVATIVE_BIT";
        case VK_PIPELINE_CREATE_DISPATCH_BASE_BIT:
            return "VK_PIPELINE_CREATE_DISPATCH_BASE_BIT";
        case VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT:
            return "VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT";
        case VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT:
            return "VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT";
        case VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT:
            return "VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT";
        case VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT:
            return "VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT";
        case VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT:
            return "VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT";
        case VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR:
            return "VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR";
        case VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR:
            return "VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR";
        case VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR:
            return "VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR";
        case VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR:
            return "VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR";
        case VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR:
            return "VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR";
        case VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR:
            return "VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR";
        case VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR:
            return "VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR";
        case VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV:
            return "VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV";
        case VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT:
            return "VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT";
        case VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR:
            return "VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR";
        case VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR:
            return "VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR";
        case VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR:
            return "VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR";
        case VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV:
            return "VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV";
        case VK_PIPELINE_CREATE_LIBRARY_BIT_KHR:
            return "VK_PIPELINE_CREATE_LIBRARY_BIT_KHR";
        case VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT:
            return "VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT";
        case VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT:
            return "VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT";
        case VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT:
            return "VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT";
        case VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV:
            return "VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV";
        case VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT:
            return "VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT";
        case VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT:
            return "VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT";
        case VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT:
            return "VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT";
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV:
            return "VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV";
#endif  // VK_ENABLE_BETA_EXTENSIONS
        default:
            return "Unhandled VkPipelineCreateFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkPipelineCreateFlags(VkPipelineCreateFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkPipelineCreateFlagBits(static_cast<VkPipelineCreateFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkPipelineCreateFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkPipelineShaderStageCreateFlagBits(VkPipelineShaderStageCreateFlagBits input_value) {
    switch (input_value) {
        case VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT:
            return "VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT";
        case VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT:
            return "VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT";
        default:
            return "Unhandled VkPipelineShaderStageCreateFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkPipelineShaderStageCreateFlags(VkPipelineShaderStageCreateFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkPipelineShaderStageCreateFlagBits(static_cast<VkPipelineShaderStageCreateFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkPipelineShaderStageCreateFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkShaderStageFlagBits(VkShaderStageFlagBits input_value) {
    switch (input_value) {
        case VK_SHADER_STAGE_VERTEX_BIT:
            return "VK_SHADER_STAGE_VERTEX_BIT";
        case VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT:
            return "VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT";
        case VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT:
            return "VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT";
        case VK_SHADER_STAGE_GEOMETRY_BIT:
            return "VK_SHADER_STAGE_GEOMETRY_BIT";
        case VK_SHADER_STAGE_FRAGMENT_BIT:
            return "VK_SHADER_STAGE_FRAGMENT_BIT";
        case VK_SHADER_STAGE_COMPUTE_BIT:
            return "VK_SHADER_STAGE_COMPUTE_BIT";
        case VK_SHADER_STAGE_RAYGEN_BIT_KHR:
            return "VK_SHADER_STAGE_RAYGEN_BIT_KHR";
        case VK_SHADER_STAGE_ANY_HIT_BIT_KHR:
            return "VK_SHADER_STAGE_ANY_HIT_BIT_KHR";
        case VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR:
            return "VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR";
        case VK_SHADER_STAGE_MISS_BIT_KHR:
            return "VK_SHADER_STAGE_MISS_BIT_KHR";
        case VK_SHADER_STAGE_INTERSECTION_BIT_KHR:
            return "VK_SHADER_STAGE_INTERSECTION_BIT_KHR";
        case VK_SHADER_STAGE_CALLABLE_BIT_KHR:
            return "VK_SHADER_STAGE_CALLABLE_BIT_KHR";
        case VK_SHADER_STAGE_TASK_BIT_EXT:
            return "VK_SHADER_STAGE_TASK_BIT_EXT";
        case VK_SHADER_STAGE_MESH_BIT_EXT:
            return "VK_SHADER_STAGE_MESH_BIT_EXT";
        case VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI:
            return "VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI";
        case VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI:
            return "VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI";
        default:
            return "Unhandled VkShaderStageFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkShaderStageFlags(VkShaderStageFlags input_value) {
    if (input_value == VK_SHADER_STAGE_ALL_GRAPHICS) { return "VK_SHADER_STAGE_ALL_GRAPHICS"; }
    if (input_value == VK_SHADER_STAGE_ALL) { return "VK_SHADER_STAGE_ALL"; }
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkShaderStageFlagBits(static_cast<VkShaderStageFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkShaderStageFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkPipelineLayoutCreateFlagBits(VkPipelineLayoutCreateFlagBits input_value) {
    switch (input_value) {
        case VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT:
            return "VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT";
        default:
            return "Unhandled VkPipelineLayoutCreateFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkPipelineLayoutCreateFlags(VkPipelineLayoutCreateFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkPipelineLayoutCreateFlagBits(static_cast<VkPipelineLayoutCreateFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkPipelineLayoutCreateFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkSamplerCreateFlagBits(VkSamplerCreateFlagBits input_value) {
    switch (input_value) {
        case VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT:
            return "VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT";
        case VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT:
            return "VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT";
        case VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT:
            return "VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT";
        case VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT:
            return "VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT";
        case VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM:
            return "VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM";
        default:
            return "Unhandled VkSamplerCreateFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkSamplerCreateFlags(VkSamplerCreateFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkSamplerCreateFlagBits(static_cast<VkSamplerCreateFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkSamplerCreateFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkDescriptorPoolCreateFlagBits(VkDescriptorPoolCreateFlagBits input_value) {
    switch (input_value) {
        case VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT:
            return "VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT";
        case VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT:
            return "VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT";
        case VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT:
            return "VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT";
        case VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV:
            return "VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV";
        case VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV:
            return "VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV";
        default:
            return "Unhandled VkDescriptorPoolCreateFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkDescriptorPoolCreateFlags(VkDescriptorPoolCreateFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkDescriptorPoolCreateFlagBits(static_cast<VkDescriptorPoolCreateFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkDescriptorPoolCreateFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkDescriptorSetLayoutCreateFlagBits(VkDescriptorSetLayoutCreateFlagBits input_value) {
    switch (input_value) {
        case VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT:
            return "VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT";
        case VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT:
            return "VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT";
        case VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT:
            return "VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT";
        case VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT:
            return "VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT";
        case VK_DESCRIPTOR_SET_LAYOUT_CREATE_INDIRECT_BINDABLE_BIT_NV:
            return "VK_DESCRIPTOR_SET_LAYOUT_CREATE_INDIRECT_BINDABLE_BIT_NV";
        case VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT:
            return "VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT";
        case VK_DESCRIPTOR_SET_LAYOUT_CREATE_PER_STAGE_BIT_NV:
            return "VK_DESCRIPTOR_SET_LAYOUT_CREATE_PER_STAGE_BIT_NV";
        default:
            return "Unhandled VkDescriptorSetLayoutCreateFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkDescriptorSetLayoutCreateFlags(VkDescriptorSetLayoutCreateFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkDescriptorSetLayoutCreateFlagBits(static_cast<VkDescriptorSetLayoutCreateFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkDescriptorSetLayoutCreateFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkColorComponentFlagBits(VkColorComponentFlagBits input_value) {
    switch (input_value) {
        case VK_COLOR_COMPONENT_R_BIT:
            return "VK_COLOR_COMPONENT_R_BIT";
        case VK_COLOR_COMPONENT_G_BIT:
            return "VK_COLOR_COMPONENT_G_BIT";
        case VK_COLOR_COMPONENT_B_BIT:
            return "VK_COLOR_COMPONENT_B_BIT";
        case VK_COLOR_COMPONENT_A_BIT:
            return "VK_COLOR_COMPONENT_A_BIT";
        default:
            return "Unhandled VkColorComponentFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkColorComponentFlags(VkColorComponentFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkColorComponentFlagBits(static_cast<VkColorComponentFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkColorComponentFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkCullModeFlagBits(VkCullModeFlagBits input_value) {
    switch (input_value) {
        case VK_CULL_MODE_NONE:
            return "VK_CULL_MODE_NONE";
        case VK_CULL_MODE_FRONT_BIT:
            return "VK_CULL_MODE_FRONT_BIT";
        case VK_CULL_MODE_BACK_BIT:
            return "VK_CULL_MODE_BACK_BIT";
        default:
            return "Unhandled VkCullModeFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkCullModeFlags(VkCullModeFlags input_value) {
    if (input_value == VK_CULL_MODE_FRONT_AND_BACK) { return "VK_CULL_MODE_FRONT_AND_BACK"; }
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkCullModeFlagBits(static_cast<VkCullModeFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkCullModeFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkPipelineDepthStencilStateCreateFlagBits(VkPipelineDepthStencilStateCreateFlagBits input_value) {
    switch (input_value) {
        case VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT:
            return "VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT";
        case VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT:
            return "VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT";
        default:
            return "Unhandled VkPipelineDepthStencilStateCreateFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkPipelineDepthStencilStateCreateFlags(VkPipelineDepthStencilStateCreateFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkPipelineDepthStencilStateCreateFlagBits(static_cast<VkPipelineDepthStencilStateCreateFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkPipelineDepthStencilStateCreateFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkPipelineColorBlendStateCreateFlagBits(VkPipelineColorBlendStateCreateFlagBits input_value) {
    switch (input_value) {
        case VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT:
            return "VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT";
        default:
            return "Unhandled VkPipelineColorBlendStateCreateFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkPipelineColorBlendStateCreateFlags(VkPipelineColorBlendStateCreateFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkPipelineColorBlendStateCreateFlagBits(static_cast<VkPipelineColorBlendStateCreateFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkPipelineColorBlendStateCreateFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkAttachmentDescriptionFlagBits(VkAttachmentDescriptionFlagBits input_value) {
    switch (input_value) {
        case VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT:
            return "VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT";
        case VK_ATTACHMENT_DESCRIPTION_RESOLVE_SKIP_TRANSFER_FUNCTION_BIT_KHR:
            return "VK_ATTACHMENT_DESCRIPTION_RESOLVE_SKIP_TRANSFER_FUNCTION_BIT_KHR";
        case VK_ATTACHMENT_DESCRIPTION_RESOLVE_ENABLE_TRANSFER_FUNCTION_BIT_KHR:
            return "VK_ATTACHMENT_DESCRIPTION_RESOLVE_ENABLE_TRANSFER_FUNCTION_BIT_KHR";
        default:
            return "Unhandled VkAttachmentDescriptionFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkAttachmentDescriptionFlags(VkAttachmentDescriptionFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkAttachmentDescriptionFlagBits(static_cast<VkAttachmentDescriptionFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkAttachmentDescriptionFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkFramebufferCreateFlagBits(VkFramebufferCreateFlagBits input_value) {
    switch (input_value) {
        case VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT:
            return "VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT";
        default:
            return "Unhandled VkFramebufferCreateFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkFramebufferCreateFlags(VkFramebufferCreateFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkFramebufferCreateFlagBits(static_cast<VkFramebufferCreateFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkFramebufferCreateFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkRenderPassCreateFlagBits(VkRenderPassCreateFlagBits input_value) {
    switch (input_value) {
        case VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM:
            return "VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM";
        case VK_RENDER_PASS_CREATE_PER_LAYER_FRAGMENT_DENSITY_BIT_VALVE:
            return "VK_RENDER_PASS_CREATE_PER_LAYER_FRAGMENT_DENSITY_BIT_VALVE";
        default:
            return "Unhandled VkRenderPassCreateFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkRenderPassCreateFlags(VkRenderPassCreateFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkRenderPassCreateFlagBits(static_cast<VkRenderPassCreateFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkRenderPassCreateFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkSubpassDescriptionFlagBits(VkSubpassDescriptionFlagBits input_value) {
    switch (input_value) {
        case VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX:
            return "VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX";
        case VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX:
            return "VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX";
        case VK_SUBPASS_DESCRIPTION_TILE_SHADING_APRON_BIT_QCOM:
            return "VK_SUBPASS_DESCRIPTION_TILE_SHADING_APRON_BIT_QCOM";
        case VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT:
            return "VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT";
        case VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT:
            return "VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT";
        case VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT:
            return "VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT";
        case VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT:
            return "VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT";
        case VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_EXT:
            return "VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_EXT";
        case VK_SUBPASS_DESCRIPTION_CUSTOM_RESOLVE_BIT_EXT:
            return "VK_SUBPASS_DESCRIPTION_CUSTOM_RESOLVE_BIT_EXT";
        default:
            return "Unhandled VkSubpassDescriptionFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkSubpassDescriptionFlags(VkSubpassDescriptionFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkSubpassDescriptionFlagBits(static_cast<VkSubpassDescriptionFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkSubpassDescriptionFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkStencilFaceFlagBits(VkStencilFaceFlagBits input_value) {
    switch (input_value) {
        case VK_STENCIL_FACE_FRONT_BIT:
            return "VK_STENCIL_FACE_FRONT_BIT";
        case VK_STENCIL_FACE_BACK_BIT:
            return "VK_STENCIL_FACE_BACK_BIT";
        default:
            return "Unhandled VkStencilFaceFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkStencilFaceFlags(VkStencilFaceFlags input_value) {
    if (input_value == VK_STENCIL_FACE_FRONT_AND_BACK) { return "VK_STENCIL_FACE_FRONT_AND_BACK"; }
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkStencilFaceFlagBits(static_cast<VkStencilFaceFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkStencilFaceFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkPeerMemoryFeatureFlagBits(VkPeerMemoryFeatureFlagBits input_value) {
    switch (input_value) {
        case VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT:
            return "VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT";
        case VK_PEER_MEMORY_FEATURE_COPY_DST_BIT:
            return "VK_PEER_MEMORY_FEATURE_COPY_DST_BIT";
        case VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT:
            return "VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT";
        case VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT:
            return "VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT";
        default:
            return "Unhandled VkPeerMemoryFeatureFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkPeerMemoryFeatureFlags(VkPeerMemoryFeatureFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkPeerMemoryFeatureFlagBits(static_cast<VkPeerMemoryFeatureFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkPeerMemoryFeatureFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkMemoryAllocateFlagBits(VkMemoryAllocateFlagBits input_value) {
    switch (input_value) {
        case VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT:
            return "VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT";
        case VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT:
            return "VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT";
        case VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT:
            return "VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT";
        case VK_MEMORY_ALLOCATE_ZERO_INITIALIZE_BIT_EXT:
            return "VK_MEMORY_ALLOCATE_ZERO_INITIALIZE_BIT_EXT";
        default:
            return "Unhandled VkMemoryAllocateFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkMemoryAllocateFlags(VkMemoryAllocateFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkMemoryAllocateFlagBits(static_cast<VkMemoryAllocateFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkMemoryAllocateFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkExternalMemoryHandleTypeFlagBits(VkExternalMemoryHandleTypeFlagBits input_value) {
    switch (input_value) {
        case VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT:
            return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT";
        case VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT:
            return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT";
        case VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT:
            return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT";
        case VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT:
            return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT";
        case VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT:
            return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT";
        case VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT:
            return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT";
        case VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT:
            return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT";
        case VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT:
            return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT";
        case VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID:
            return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID";
        case VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT:
            return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT";
        case VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT:
            return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT";
        case VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA:
            return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA";
        case VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV:
            return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV";
        case VK_EXTERNAL_MEMORY_HANDLE_TYPE_OH_NATIVE_BUFFER_BIT_OHOS:
            return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OH_NATIVE_BUFFER_BIT_OHOS";
        case VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX:
            return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX";
        case VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLBUFFER_BIT_EXT:
            return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLBUFFER_BIT_EXT";
        case VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLTEXTURE_BIT_EXT:
            return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLTEXTURE_BIT_EXT";
        case VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLHEAP_BIT_EXT:
            return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLHEAP_BIT_EXT";
        default:
            return "Unhandled VkExternalMemoryHandleTypeFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkExternalMemoryHandleTypeFlags(VkExternalMemoryHandleTypeFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkExternalMemoryHandleTypeFlagBits(static_cast<VkExternalMemoryHandleTypeFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkExternalMemoryHandleTypeFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkExternalMemoryFeatureFlagBits(VkExternalMemoryFeatureFlagBits input_value) {
    switch (input_value) {
        case VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT:
            return "VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT";
        case VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT:
            return "VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT";
        case VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT:
            return "VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT";
        default:
            return "Unhandled VkExternalMemoryFeatureFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkExternalMemoryFeatureFlags(VkExternalMemoryFeatureFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkExternalMemoryFeatureFlagBits(static_cast<VkExternalMemoryFeatureFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkExternalMemoryFeatureFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkExternalFenceHandleTypeFlagBits(VkExternalFenceHandleTypeFlagBits input_value) {
    switch (input_value) {
        case VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT:
            return "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT";
        case VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT:
            return "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT";
        case VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT:
            return "VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT";
        case VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT:
            return "VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT";
        default:
            return "Unhandled VkExternalFenceHandleTypeFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkExternalFenceHandleTypeFlags(VkExternalFenceHandleTypeFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkExternalFenceHandleTypeFlagBits(static_cast<VkExternalFenceHandleTypeFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkExternalFenceHandleTypeFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkExternalFenceFeatureFlagBits(VkExternalFenceFeatureFlagBits input_value) {
    switch (input_value) {
        case VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT:
            return "VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT";
        case VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT:
            return "VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT";
        default:
            return "Unhandled VkExternalFenceFeatureFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkExternalFenceFeatureFlags(VkExternalFenceFeatureFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkExternalFenceFeatureFlagBits(static_cast<VkExternalFenceFeatureFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkExternalFenceFeatureFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkFenceImportFlagBits(VkFenceImportFlagBits input_value) {
    switch (input_value) {
        case VK_FENCE_IMPORT_TEMPORARY_BIT:
            return "VK_FENCE_IMPORT_TEMPORARY_BIT";
        default:
            return "Unhandled VkFenceImportFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkFenceImportFlags(VkFenceImportFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkFenceImportFlagBits(static_cast<VkFenceImportFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkFenceImportFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkSemaphoreImportFlagBits(VkSemaphoreImportFlagBits input_value) {
    switch (input_value) {
        case VK_SEMAPHORE_IMPORT_TEMPORARY_BIT:
            return "VK_SEMAPHORE_IMPORT_TEMPORARY_BIT";
        default:
            return "Unhandled VkSemaphoreImportFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkSemaphoreImportFlags(VkSemaphoreImportFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkSemaphoreImportFlagBits(static_cast<VkSemaphoreImportFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkSemaphoreImportFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkExternalSemaphoreHandleTypeFlagBits(VkExternalSemaphoreHandleTypeFlagBits input_value) {
    switch (input_value) {
        case VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT:
            return "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT";
        case VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT:
            return "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT";
        case VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT:
            return "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT";
        case VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT:
            return "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT";
        case VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT:
            return "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT";
        case VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA:
            return "VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA";
        default:
            return "Unhandled VkExternalSemaphoreHandleTypeFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkExternalSemaphoreHandleTypeFlags(VkExternalSemaphoreHandleTypeFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkExternalSemaphoreHandleTypeFlagBits(static_cast<VkExternalSemaphoreHandleTypeFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkExternalSemaphoreHandleTypeFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkExternalSemaphoreFeatureFlagBits(VkExternalSemaphoreFeatureFlagBits input_value) {
    switch (input_value) {
        case VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT:
            return "VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT";
        case VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT:
            return "VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT";
        default:
            return "Unhandled VkExternalSemaphoreFeatureFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkExternalSemaphoreFeatureFlags(VkExternalSemaphoreFeatureFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkExternalSemaphoreFeatureFlagBits(static_cast<VkExternalSemaphoreFeatureFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkExternalSemaphoreFeatureFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkSubgroupFeatureFlagBits(VkSubgroupFeatureFlagBits input_value) {
    switch (input_value) {
        case VK_SUBGROUP_FEATURE_BASIC_BIT:
            return "VK_SUBGROUP_FEATURE_BASIC_BIT";
        case VK_SUBGROUP_FEATURE_VOTE_BIT:
            return "VK_SUBGROUP_FEATURE_VOTE_BIT";
        case VK_SUBGROUP_FEATURE_ARITHMETIC_BIT:
            return "VK_SUBGROUP_FEATURE_ARITHMETIC_BIT";
        case VK_SUBGROUP_FEATURE_BALLOT_BIT:
            return "VK_SUBGROUP_FEATURE_BALLOT_BIT";
        case VK_SUBGROUP_FEATURE_SHUFFLE_BIT:
            return "VK_SUBGROUP_FEATURE_SHUFFLE_BIT";
        case VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT:
            return "VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT";
        case VK_SUBGROUP_FEATURE_CLUSTERED_BIT:
            return "VK_SUBGROUP_FEATURE_CLUSTERED_BIT";
        case VK_SUBGROUP_FEATURE_QUAD_BIT:
            return "VK_SUBGROUP_FEATURE_QUAD_BIT";
        case VK_SUBGROUP_FEATURE_ROTATE_BIT:
            return "VK_SUBGROUP_FEATURE_ROTATE_BIT";
        case VK_SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT:
            return "VK_SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT";
        case VK_SUBGROUP_FEATURE_PARTITIONED_BIT_EXT:
            return "VK_SUBGROUP_FEATURE_PARTITIONED_BIT_EXT";
        default:
            return "Unhandled VkSubgroupFeatureFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkSubgroupFeatureFlags(VkSubgroupFeatureFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkSubgroupFeatureFlagBits(static_cast<VkSubgroupFeatureFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkSubgroupFeatureFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkResolveModeFlagBits(VkResolveModeFlagBits input_value) {
    switch (input_value) {
        case VK_RESOLVE_MODE_NONE:
            return "VK_RESOLVE_MODE_NONE";
        case VK_RESOLVE_MODE_SAMPLE_ZERO_BIT:
            return "VK_RESOLVE_MODE_SAMPLE_ZERO_BIT";
        case VK_RESOLVE_MODE_AVERAGE_BIT:
            return "VK_RESOLVE_MODE_AVERAGE_BIT";
        case VK_RESOLVE_MODE_MIN_BIT:
            return "VK_RESOLVE_MODE_MIN_BIT";
        case VK_RESOLVE_MODE_MAX_BIT:
            return "VK_RESOLVE_MODE_MAX_BIT";
        case VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID:
            return "VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID";
        case VK_RESOLVE_MODE_CUSTOM_BIT_EXT:
            return "VK_RESOLVE_MODE_CUSTOM_BIT_EXT";
        default:
            return "Unhandled VkResolveModeFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkResolveModeFlags(VkResolveModeFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkResolveModeFlagBits(static_cast<VkResolveModeFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkResolveModeFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkSemaphoreWaitFlagBits(VkSemaphoreWaitFlagBits input_value) {
    switch (input_value) {
        case VK_SEMAPHORE_WAIT_ANY_BIT:
            return "VK_SEMAPHORE_WAIT_ANY_BIT";
        default:
            return "Unhandled VkSemaphoreWaitFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkSemaphoreWaitFlags(VkSemaphoreWaitFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkSemaphoreWaitFlagBits(static_cast<VkSemaphoreWaitFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkSemaphoreWaitFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkDescriptorBindingFlagBits(VkDescriptorBindingFlagBits input_value) {
    switch (input_value) {
        case VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT:
            return "VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT";
        case VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT:
            return "VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT";
        case VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT:
            return "VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT";
        case VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT:
            return "VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT";
        default:
            return "Unhandled VkDescriptorBindingFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkDescriptorBindingFlags(VkDescriptorBindingFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkDescriptorBindingFlagBits(static_cast<VkDescriptorBindingFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkDescriptorBindingFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkToolPurposeFlagBits(VkToolPurposeFlagBits input_value) {
    switch (input_value) {
        case VK_TOOL_PURPOSE_VALIDATION_BIT:
            return "VK_TOOL_PURPOSE_VALIDATION_BIT";
        case VK_TOOL_PURPOSE_PROFILING_BIT:
            return "VK_TOOL_PURPOSE_PROFILING_BIT";
        case VK_TOOL_PURPOSE_TRACING_BIT:
            return "VK_TOOL_PURPOSE_TRACING_BIT";
        case VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT:
            return "VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT";
        case VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT:
            return "VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT";
        case VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT:
            return "VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT";
        case VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT:
            return "VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT";
        default:
            return "Unhandled VkToolPurposeFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkToolPurposeFlags(VkToolPurposeFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkToolPurposeFlagBits(static_cast<VkToolPurposeFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkToolPurposeFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkPipelineStageFlagBits2(uint64_t input_value) {
    if (input_value == VK_PIPELINE_STAGE_2_NONE) return "VK_PIPELINE_STAGE_2_NONE";
    if (input_value == VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT) return "VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT";
    if (input_value == VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT) return "VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT";
    if (input_value == VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT) return "VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT";
    if (input_value == VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT) return "VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT";
    if (input_value == VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT) return "VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT";
    if (input_value == VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT) return "VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT";
    if (input_value == VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT) return "VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT";
    if (input_value == VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT) return "VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT";
    if (input_value == VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT) return "VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT";
    if (input_value == VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT) return "VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT";
    if (input_value == VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT) return "VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT";
    if (input_value == VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT) return "VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT";
    if (input_value == VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT) return "VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT";
    if (input_value == VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT) return "VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT";
    if (input_value == VK_PIPELINE_STAGE_2_HOST_BIT) return "VK_PIPELINE_STAGE_2_HOST_BIT";
    if (input_value == VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT) return "VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT";
    if (input_value == VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT) return "VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT";
    if (input_value == VK_PIPELINE_STAGE_2_COPY_BIT) return "VK_PIPELINE_STAGE_2_COPY_BIT";
    if (input_value == VK_PIPELINE_STAGE_2_RESOLVE_BIT) return "VK_PIPELINE_STAGE_2_RESOLVE_BIT";
    if (input_value == VK_PIPELINE_STAGE_2_BLIT_BIT) return "VK_PIPELINE_STAGE_2_BLIT_BIT";
    if (input_value == VK_PIPELINE_STAGE_2_CLEAR_BIT) return "VK_PIPELINE_STAGE_2_CLEAR_BIT";
    if (input_value == VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT) return "VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT";
    if (input_value == VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT) return "VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT";
    if (input_value == VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT) return "VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT";
    if (input_value == VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR) return "VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR";
    if (input_value == VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR) return "VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR";
    if (input_value == VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT) return "VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT";
    if (input_value == VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT) return "VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT";
    if (input_value == VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_EXT) return "VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_EXT";
    if (input_value == VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR) return "VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR";
    if (input_value == VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR) return "VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR";
    if (input_value == VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR) return "VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR";
    if (input_value == VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT) return "VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT";
    if (input_value == VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT) return "VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT";
    if (input_value == VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT) return "VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT";
    if (input_value == VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI) return "VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI";
    if (input_value == VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI) return "VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI";
    if (input_value == VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR) return "VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR";
    if (input_value == VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT) return "VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT";
    if (input_value == VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI) return "VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI";
    if (input_value == VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV) return "VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV";
    if (input_value == VK_PIPELINE_STAGE_2_CONVERT_COOPERATIVE_VECTOR_MATRIX_BIT_NV) return "VK_PIPELINE_STAGE_2_CONVERT_COOPERATIVE_VECTOR_MATRIX_BIT_NV";
    if (input_value == VK_PIPELINE_STAGE_2_DATA_GRAPH_BIT_ARM) return "VK_PIPELINE_STAGE_2_DATA_GRAPH_BIT_ARM";
    if (input_value == VK_PIPELINE_STAGE_2_COPY_INDIRECT_BIT_KHR) return "VK_PIPELINE_STAGE_2_COPY_INDIRECT_BIT_KHR";
    if (input_value == VK_PIPELINE_STAGE_2_MEMORY_DECOMPRESSION_BIT_EXT) return "VK_PIPELINE_STAGE_2_MEMORY_DECOMPRESSION_BIT_EXT";
    return "Unhandled VkPipelineStageFlagBits2";
}

#ifdef __cplusplus
static inline std::string string_VkPipelineStageFlags2(VkPipelineStageFlags2 input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkPipelineStageFlagBits2(static_cast<uint64_t>(1ULL << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkPipelineStageFlags2(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkAccessFlagBits2(uint64_t input_value) {
    if (input_value == VK_ACCESS_2_NONE) return "VK_ACCESS_2_NONE";
    if (input_value == VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT) return "VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT";
    if (input_value == VK_ACCESS_2_INDEX_READ_BIT) return "VK_ACCESS_2_INDEX_READ_BIT";
    if (input_value == VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT) return "VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT";
    if (input_value == VK_ACCESS_2_UNIFORM_READ_BIT) return "VK_ACCESS_2_UNIFORM_READ_BIT";
    if (input_value == VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT) return "VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT";
    if (input_value == VK_ACCESS_2_SHADER_READ_BIT) return "VK_ACCESS_2_SHADER_READ_BIT";
    if (input_value == VK_ACCESS_2_SHADER_WRITE_BIT) return "VK_ACCESS_2_SHADER_WRITE_BIT";
    if (input_value == VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT) return "VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT";
    if (input_value == VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT) return "VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT";
    if (input_value == VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT) return "VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT";
    if (input_value == VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT) return "VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT";
    if (input_value == VK_ACCESS_2_TRANSFER_READ_BIT) return "VK_ACCESS_2_TRANSFER_READ_BIT";
    if (input_value == VK_ACCESS_2_TRANSFER_WRITE_BIT) return "VK_ACCESS_2_TRANSFER_WRITE_BIT";
    if (input_value == VK_ACCESS_2_HOST_READ_BIT) return "VK_ACCESS_2_HOST_READ_BIT";
    if (input_value == VK_ACCESS_2_HOST_WRITE_BIT) return "VK_ACCESS_2_HOST_WRITE_BIT";
    if (input_value == VK_ACCESS_2_MEMORY_READ_BIT) return "VK_ACCESS_2_MEMORY_READ_BIT";
    if (input_value == VK_ACCESS_2_MEMORY_WRITE_BIT) return "VK_ACCESS_2_MEMORY_WRITE_BIT";
    if (input_value == VK_ACCESS_2_SHADER_SAMPLED_READ_BIT) return "VK_ACCESS_2_SHADER_SAMPLED_READ_BIT";
    if (input_value == VK_ACCESS_2_SHADER_STORAGE_READ_BIT) return "VK_ACCESS_2_SHADER_STORAGE_READ_BIT";
    if (input_value == VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT) return "VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT";
    if (input_value == VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR) return "VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR";
    if (input_value == VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR) return "VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR";
    if (input_value == VK_ACCESS_2_SAMPLER_HEAP_READ_BIT_EXT) return "VK_ACCESS_2_SAMPLER_HEAP_READ_BIT_EXT";
    if (input_value == VK_ACCESS_2_RESOURCE_HEAP_READ_BIT_EXT) return "VK_ACCESS_2_RESOURCE_HEAP_READ_BIT_EXT";
    if (input_value == VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR) return "VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR";
    if (input_value == VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR) return "VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR";
    if (input_value == VK_ACCESS_2_SHADER_TILE_ATTACHMENT_READ_BIT_QCOM) return "VK_ACCESS_2_SHADER_TILE_ATTACHMENT_READ_BIT_QCOM";
    if (input_value == VK_ACCESS_2_SHADER_TILE_ATTACHMENT_WRITE_BIT_QCOM) return "VK_ACCESS_2_SHADER_TILE_ATTACHMENT_WRITE_BIT_QCOM";
    if (input_value == VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT) return "VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT";
    if (input_value == VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT) return "VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT";
    if (input_value == VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT) return "VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT";
    if (input_value == VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT) return "VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT";
    if (input_value == VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_EXT) return "VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_EXT";
    if (input_value == VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_EXT) return "VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_EXT";
    if (input_value == VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR) return "VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR";
    if (input_value == VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR) return "VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR";
    if (input_value == VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR) return "VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR";
    if (input_value == VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT) return "VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT";
    if (input_value == VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT) return "VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT";
    if (input_value == VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT) return "VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT";
    if (input_value == VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI) return "VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI";
    if (input_value == VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR) return "VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR";
    if (input_value == VK_ACCESS_2_MICROMAP_READ_BIT_EXT) return "VK_ACCESS_2_MICROMAP_READ_BIT_EXT";
    if (input_value == VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT) return "VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT";
    if (input_value == VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV) return "VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV";
    if (input_value == VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV) return "VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV";
    if (input_value == VK_ACCESS_2_DATA_GRAPH_READ_BIT_ARM) return "VK_ACCESS_2_DATA_GRAPH_READ_BIT_ARM";
    if (input_value == VK_ACCESS_2_DATA_GRAPH_WRITE_BIT_ARM) return "VK_ACCESS_2_DATA_GRAPH_WRITE_BIT_ARM";
    if (input_value == VK_ACCESS_2_MEMORY_DECOMPRESSION_READ_BIT_EXT) return "VK_ACCESS_2_MEMORY_DECOMPRESSION_READ_BIT_EXT";
    if (input_value == VK_ACCESS_2_MEMORY_DECOMPRESSION_WRITE_BIT_EXT) return "VK_ACCESS_2_MEMORY_DECOMPRESSION_WRITE_BIT_EXT";
    return "Unhandled VkAccessFlagBits2";
}

#ifdef __cplusplus
static inline std::string string_VkAccessFlags2(VkAccessFlags2 input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkAccessFlagBits2(static_cast<uint64_t>(1ULL << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkAccessFlags2(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkSubmitFlagBits(VkSubmitFlagBits input_value) {
    switch (input_value) {
        case VK_SUBMIT_PROTECTED_BIT:
            return "VK_SUBMIT_PROTECTED_BIT";
        default:
            return "Unhandled VkSubmitFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkSubmitFlags(VkSubmitFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkSubmitFlagBits(static_cast<VkSubmitFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkSubmitFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkFormatFeatureFlagBits2(uint64_t input_value) {
    if (input_value == VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT) return "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT";
    if (input_value == VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT) return "VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT";
    if (input_value == VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT) return "VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT";
    if (input_value == VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT) return "VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT";
    if (input_value == VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT) return "VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT";
    if (input_value == VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT) return "VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT";
    if (input_value == VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT) return "VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT";
    if (input_value == VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT) return "VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT";
    if (input_value == VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT) return "VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT";
    if (input_value == VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT) return "VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT";
    if (input_value == VK_FORMAT_FEATURE_2_BLIT_SRC_BIT) return "VK_FORMAT_FEATURE_2_BLIT_SRC_BIT";
    if (input_value == VK_FORMAT_FEATURE_2_BLIT_DST_BIT) return "VK_FORMAT_FEATURE_2_BLIT_DST_BIT";
    if (input_value == VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT) return "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT";
    if (input_value == VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT) return "VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT";
    if (input_value == VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT) return "VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT";
    if (input_value == VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT) return "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT";
    if (input_value == VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT) return "VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT";
    if (input_value == VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT) return "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT";
    if (input_value == VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT) return "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT";
    if (input_value == VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT) return "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT";
    if (input_value == VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT) return "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT";
    if (input_value == VK_FORMAT_FEATURE_2_DISJOINT_BIT) return "VK_FORMAT_FEATURE_2_DISJOINT_BIT";
    if (input_value == VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT) return "VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT";
    if (input_value == VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT) return "VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT";
    if (input_value == VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT) return "VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT";
    if (input_value == VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT) return "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT";
    if (input_value == VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT) return "VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT";
    if (input_value == VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT) return "VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT";
    if (input_value == VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR) return "VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR";
    if (input_value == VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR) return "VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR";
    if (input_value == VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR) return "VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR";
    if (input_value == VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT) return "VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT";
    if (input_value == VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR) return "VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR";
    if (input_value == VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR) return "VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR";
    if (input_value == VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR) return "VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR";
    if (input_value == VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_RADIUS_BUFFER_BIT_NV) return "VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_RADIUS_BUFFER_BIT_NV";
    if (input_value == VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV) return "VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV";
    if (input_value == VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM) return "VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM";
    if (input_value == VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM) return "VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM";
    if (input_value == VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM) return "VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM";
    if (input_value == VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM) return "VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM";
    if (input_value == VK_FORMAT_FEATURE_2_TENSOR_SHADER_BIT_ARM) return "VK_FORMAT_FEATURE_2_TENSOR_SHADER_BIT_ARM";
    if (input_value == VK_FORMAT_FEATURE_2_TENSOR_IMAGE_ALIASING_BIT_ARM) return "VK_FORMAT_FEATURE_2_TENSOR_IMAGE_ALIASING_BIT_ARM";
    if (input_value == VK_FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV) return "VK_FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV";
    if (input_value == VK_FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV) return "VK_FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV";
    if (input_value == VK_FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV) return "VK_FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV";
    if (input_value == VK_FORMAT_FEATURE_2_TENSOR_DATA_GRAPH_BIT_ARM) return "VK_FORMAT_FEATURE_2_TENSOR_DATA_GRAPH_BIT_ARM";
    if (input_value == VK_FORMAT_FEATURE_2_COPY_IMAGE_INDIRECT_DST_BIT_KHR) return "VK_FORMAT_FEATURE_2_COPY_IMAGE_INDIRECT_DST_BIT_KHR";
    if (input_value == VK_FORMAT_FEATURE_2_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR) return "VK_FORMAT_FEATURE_2_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR";
    if (input_value == VK_FORMAT_FEATURE_2_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR) return "VK_FORMAT_FEATURE_2_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR";
    if (input_value == VK_FORMAT_FEATURE_2_DEPTH_COPY_ON_COMPUTE_QUEUE_BIT_KHR) return "VK_FORMAT_FEATURE_2_DEPTH_COPY_ON_COMPUTE_QUEUE_BIT_KHR";
    if (input_value == VK_FORMAT_FEATURE_2_DEPTH_COPY_ON_TRANSFER_QUEUE_BIT_KHR) return "VK_FORMAT_FEATURE_2_DEPTH_COPY_ON_TRANSFER_QUEUE_BIT_KHR";
    if (input_value == VK_FORMAT_FEATURE_2_STENCIL_COPY_ON_COMPUTE_QUEUE_BIT_KHR) return "VK_FORMAT_FEATURE_2_STENCIL_COPY_ON_COMPUTE_QUEUE_BIT_KHR";
    if (input_value == VK_FORMAT_FEATURE_2_STENCIL_COPY_ON_TRANSFER_QUEUE_BIT_KHR) return "VK_FORMAT_FEATURE_2_STENCIL_COPY_ON_TRANSFER_QUEUE_BIT_KHR";
    return "Unhandled VkFormatFeatureFlagBits2";
}

#ifdef __cplusplus
static inline std::string string_VkFormatFeatureFlags2(VkFormatFeatureFlags2 input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkFormatFeatureFlagBits2(static_cast<uint64_t>(1ULL << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkFormatFeatureFlags2(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkPipelineCreationFeedbackFlagBits(VkPipelineCreationFeedbackFlagBits input_value) {
    switch (input_value) {
        case VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT:
            return "VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT";
        case VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT:
            return "VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT";
        case VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT:
            return "VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT";
        default:
            return "Unhandled VkPipelineCreationFeedbackFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkPipelineCreationFeedbackFlags(VkPipelineCreationFeedbackFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkPipelineCreationFeedbackFlagBits(static_cast<VkPipelineCreationFeedbackFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkPipelineCreationFeedbackFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkRenderingFlagBits(VkRenderingFlagBits input_value) {
    switch (input_value) {
        case VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT:
            return "VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT";
        case VK_RENDERING_SUSPENDING_BIT:
            return "VK_RENDERING_SUSPENDING_BIT";
        case VK_RENDERING_RESUMING_BIT:
            return "VK_RENDERING_RESUMING_BIT";
        case VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT:
            return "VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT";
        case VK_RENDERING_CONTENTS_INLINE_BIT_KHR:
            return "VK_RENDERING_CONTENTS_INLINE_BIT_KHR";
        case VK_RENDERING_PER_LAYER_FRAGMENT_DENSITY_BIT_VALVE:
            return "VK_RENDERING_PER_LAYER_FRAGMENT_DENSITY_BIT_VALVE";
        case VK_RENDERING_FRAGMENT_REGION_BIT_EXT:
            return "VK_RENDERING_FRAGMENT_REGION_BIT_EXT";
        case VK_RENDERING_CUSTOM_RESOLVE_BIT_EXT:
            return "VK_RENDERING_CUSTOM_RESOLVE_BIT_EXT";
        case VK_RENDERING_LOCAL_READ_CONCURRENT_ACCESS_CONTROL_BIT_KHR:
            return "VK_RENDERING_LOCAL_READ_CONCURRENT_ACCESS_CONTROL_BIT_KHR";
        default:
            return "Unhandled VkRenderingFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkRenderingFlags(VkRenderingFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkRenderingFlagBits(static_cast<VkRenderingFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkRenderingFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkMemoryUnmapFlagBits(VkMemoryUnmapFlagBits input_value) {
    switch (input_value) {
        case VK_MEMORY_UNMAP_RESERVE_BIT_EXT:
            return "VK_MEMORY_UNMAP_RESERVE_BIT_EXT";
        default:
            return "Unhandled VkMemoryUnmapFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkMemoryUnmapFlags(VkMemoryUnmapFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkMemoryUnmapFlagBits(static_cast<VkMemoryUnmapFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkMemoryUnmapFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkBufferUsageFlagBits2(uint64_t input_value) {
    if (input_value == VK_BUFFER_USAGE_2_TRANSFER_SRC_BIT) return "VK_BUFFER_USAGE_2_TRANSFER_SRC_BIT";
    if (input_value == VK_BUFFER_USAGE_2_TRANSFER_DST_BIT) return "VK_BUFFER_USAGE_2_TRANSFER_DST_BIT";
    if (input_value == VK_BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT) return "VK_BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT";
    if (input_value == VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT) return "VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT";
    if (input_value == VK_BUFFER_USAGE_2_UNIFORM_BUFFER_BIT) return "VK_BUFFER_USAGE_2_UNIFORM_BUFFER_BIT";
    if (input_value == VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT) return "VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT";
    if (input_value == VK_BUFFER_USAGE_2_INDEX_BUFFER_BIT) return "VK_BUFFER_USAGE_2_INDEX_BUFFER_BIT";
    if (input_value == VK_BUFFER_USAGE_2_VERTEX_BUFFER_BIT) return "VK_BUFFER_USAGE_2_VERTEX_BUFFER_BIT";
    if (input_value == VK_BUFFER_USAGE_2_INDIRECT_BUFFER_BIT) return "VK_BUFFER_USAGE_2_INDIRECT_BUFFER_BIT";
    if (input_value == VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT) return "VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT";
#ifdef VK_ENABLE_BETA_EXTENSIONS
    if (input_value == VK_BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX) return "VK_BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX";
#endif  // VK_ENABLE_BETA_EXTENSIONS
    if (input_value == VK_BUFFER_USAGE_2_DESCRIPTOR_HEAP_BIT_EXT) return "VK_BUFFER_USAGE_2_DESCRIPTOR_HEAP_BIT_EXT";
    if (input_value == VK_BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT) return "VK_BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT";
    if (input_value == VK_BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR) return "VK_BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR";
    if (input_value == VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT) return "VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT";
    if (input_value == VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT) return "VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT";
    if (input_value == VK_BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR) return "VK_BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR";
    if (input_value == VK_BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR) return "VK_BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR";
    if (input_value == VK_BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR) return "VK_BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR";
    if (input_value == VK_BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR) return "VK_BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR";
    if (input_value == VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR) return "VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR";
    if (input_value == VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR) return "VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR";
    if (input_value == VK_BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT) return "VK_BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT";
    if (input_value == VK_BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT) return "VK_BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT";
    if (input_value == VK_BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT) return "VK_BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT";
    if (input_value == VK_BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT) return "VK_BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT";
    if (input_value == VK_BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT) return "VK_BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT";
#ifdef VK_ENABLE_BETA_EXTENSIONS
    if (input_value == VK_BUFFER_USAGE_2_COMPRESSED_DATA_DGF1_BIT_AMDX) return "VK_BUFFER_USAGE_2_COMPRESSED_DATA_DGF1_BIT_AMDX";
#endif  // VK_ENABLE_BETA_EXTENSIONS
    if (input_value == VK_BUFFER_USAGE_2_DATA_GRAPH_FOREIGN_DESCRIPTOR_BIT_ARM) return "VK_BUFFER_USAGE_2_DATA_GRAPH_FOREIGN_DESCRIPTOR_BIT_ARM";
    if (input_value == VK_BUFFER_USAGE_2_TILE_MEMORY_BIT_QCOM) return "VK_BUFFER_USAGE_2_TILE_MEMORY_BIT_QCOM";
    if (input_value == VK_BUFFER_USAGE_2_MEMORY_DECOMPRESSION_BIT_EXT) return "VK_BUFFER_USAGE_2_MEMORY_DECOMPRESSION_BIT_EXT";
    if (input_value == VK_BUFFER_USAGE_2_PREPROCESS_BUFFER_BIT_EXT) return "VK_BUFFER_USAGE_2_PREPROCESS_BUFFER_BIT_EXT";
    return "Unhandled VkBufferUsageFlagBits2";
}

#ifdef __cplusplus
static inline std::string string_VkBufferUsageFlags2(VkBufferUsageFlags2 input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkBufferUsageFlagBits2(static_cast<uint64_t>(1ULL << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkBufferUsageFlags2(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkHostImageCopyFlagBits(VkHostImageCopyFlagBits input_value) {
    switch (input_value) {
        case VK_HOST_IMAGE_COPY_MEMCPY_BIT:
            return "VK_HOST_IMAGE_COPY_MEMCPY_BIT";
        default:
            return "Unhandled VkHostImageCopyFlagBits";
    }
}

#ifdef __cplusplus
static inline std::string string_VkHostImageCopyFlags(VkHostImageCopyFlags input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkHostImageCopyFlagBits(static_cast<VkHostImageCopyFlagBits>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkHostImageCopyFlags(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkPipelineCreateFlagBits2(uint64_t input_value) {
    if (input_value == VK_PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT) return "VK_PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT";
    if (input_value == VK_PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT) return "VK_PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT";
    if (input_value == VK_PIPELINE_CREATE_2_DERIVATIVE_BIT) return "VK_PIPELINE_CREATE_2_DERIVATIVE_BIT";
    if (input_value == VK_PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT) return "VK_PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT";
    if (input_value == VK_PIPELINE_CREATE_2_DISPATCH_BASE_BIT) return "VK_PIPELINE_CREATE_2_DISPATCH_BASE_BIT";
    if (input_value == VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT) return "VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT";
    if (input_value == VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT) return "VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT";
    if (input_value == VK_PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT) return "VK_PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT";
    if (input_value == VK_PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT) return "VK_PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT";
#ifdef VK_ENABLE_BETA_EXTENSIONS
    if (input_value == VK_PIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_AMDX) return "VK_PIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_AMDX";
#endif  // VK_ENABLE_BETA_EXTENSIONS
    if (input_value == VK_PIPELINE_CREATE_2_DESCRIPTOR_HEAP_BIT_EXT) return "VK_PIPELINE_CREATE_2_DESCRIPTOR_HEAP_BIT_EXT";
    if (input_value == VK_PIPELINE_CREATE_2_RAY_TRACING_ALLOW_SPHERES_AND_LINEAR_SWEPT_SPHERES_BIT_NV) return "VK_PIPELINE_CREATE_2_RAY_TRACING_ALLOW_SPHERES_AND_LINEAR_SWEPT_SPHERES_BIT_NV";
    if (input_value == VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT) return "VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT";
    if (input_value == VK_PIPELINE_CREATE_2_DEFER_COMPILE_BIT_NV) return "VK_PIPELINE_CREATE_2_DEFER_COMPILE_BIT_NV";
    if (input_value == VK_PIPELINE_CREATE_2_CAPTURE_STATISTICS_BIT_KHR) return "VK_PIPELINE_CREATE_2_CAPTURE_STATISTICS_BIT_KHR";
    if (input_value == VK_PIPELINE_CREATE_2_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR) return "VK_PIPELINE_CREATE_2_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR";
    if (input_value == VK_PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT) return "VK_PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT";
    if (input_value == VK_PIPELINE_CREATE_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT) return "VK_PIPELINE_CREATE_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT";
    if (input_value == VK_PIPELINE_CREATE_2_LIBRARY_BIT_KHR) return "VK_PIPELINE_CREATE_2_LIBRARY_BIT_KHR";
    if (input_value == VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR) return "VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR";
    if (input_value == VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_AABBS_BIT_KHR) return "VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_AABBS_BIT_KHR";
    if (input_value == VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR) return "VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR";
    if (input_value == VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR) return "VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR";
    if (input_value == VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR) return "VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR";
    if (input_value == VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR) return "VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR";
    if (input_value == VK_PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR) return "VK_PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR";
    if (input_value == VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_NV) return "VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_NV";
    if (input_value == VK_PIPELINE_CREATE_2_RAY_TRACING_ALLOW_MOTION_BIT_NV) return "VK_PIPELINE_CREATE_2_RAY_TRACING_ALLOW_MOTION_BIT_NV";
    if (input_value == VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR) return "VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR";
    if (input_value == VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT) return "VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT";
    if (input_value == VK_PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT) return "VK_PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT";
    if (input_value == VK_PIPELINE_CREATE_2_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT) return "VK_PIPELINE_CREATE_2_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT";
    if (input_value == VK_PIPELINE_CREATE_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT) return "VK_PIPELINE_CREATE_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT";
    if (input_value == VK_PIPELINE_CREATE_2_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV) return "VK_PIPELINE_CREATE_2_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV";
    if (input_value == VK_PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT) return "VK_PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT";
    if (input_value == VK_PIPELINE_CREATE_2_DISALLOW_OPACITY_MICROMAP_BIT_ARM) return "VK_PIPELINE_CREATE_2_DISALLOW_OPACITY_MICROMAP_BIT_ARM";
    if (input_value == VK_PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR) return "VK_PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR";
    if (input_value == VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT) return "VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT";
    if (input_value == VK_PIPELINE_CREATE_2_PER_LAYER_FRAGMENT_DENSITY_BIT_VALVE) return "VK_PIPELINE_CREATE_2_PER_LAYER_FRAGMENT_DENSITY_BIT_VALVE";
    if (input_value == VK_PIPELINE_CREATE_2_64_BIT_INDEXING_BIT_EXT) return "VK_PIPELINE_CREATE_2_64_BIT_INDEXING_BIT_EXT";
    return "Unhandled VkPipelineCreateFlagBits2";
}

#ifdef __cplusplus
static inline std::string string_VkPipelineCreateFlags2(VkPipelineCreateFlags2 input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkPipelineCreateFlagBits2(static_cast<uint64_t>(1ULL << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkPipelineCreateFlags2(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkSurfaceTransformFlagBitsKHR(VkSurfaceTransformFlagBitsKHR input_value) {
    switch (input_value) {
        case VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR:
            return "VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR";
        case VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR:
            return "VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR";
        case VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR:
            return "VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR";
        case VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR:
            return "VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR";
        case VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR:
            return "VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR";
        case VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR:
            return "VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR";
        case VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR:
            return "VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR";
        case VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR:
            return "VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR";
        case VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR:
            return "VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR";
        default:
            return "Unhandled VkSurfaceTransformFlagBitsKHR";
    }
}

#ifdef __cplusplus
static inline std::string string_VkSurfaceTransformFlagsKHR(VkSurfaceTransformFlagsKHR input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkSurfaceTransformFlagBitsKHR(static_cast<VkSurfaceTransformFlagBitsKHR>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkSurfaceTransformFlagsKHR(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkCompositeAlphaFlagBitsKHR(VkCompositeAlphaFlagBitsKHR input_value) {
    switch (input_value) {
        case VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR:
            return "VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR";
        case VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR:
            return "VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR";
        case VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR:
            return "VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR";
        case VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR:
            return "VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR";
        default:
            return "Unhandled VkCompositeAlphaFlagBitsKHR";
    }
}

#ifdef __cplusplus
static inline std::string string_VkCompositeAlphaFlagsKHR(VkCompositeAlphaFlagsKHR input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkCompositeAlphaFlagBitsKHR(static_cast<VkCompositeAlphaFlagBitsKHR>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkCompositeAlphaFlagsKHR(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkSwapchainCreateFlagBitsKHR(VkSwapchainCreateFlagBitsKHR input_value) {
    switch (input_value) {
        case VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR:
            return "VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR";
        case VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR:
            return "VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR";
        case VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR:
            return "VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR";
        case VK_SWAPCHAIN_CREATE_PRESENT_TIMING_BIT_EXT:
            return "VK_SWAPCHAIN_CREATE_PRESENT_TIMING_BIT_EXT";
        case VK_SWAPCHAIN_CREATE_PRESENT_ID_2_BIT_KHR:
            return "VK_SWAPCHAIN_CREATE_PRESENT_ID_2_BIT_KHR";
        case VK_SWAPCHAIN_CREATE_PRESENT_WAIT_2_BIT_KHR:
            return "VK_SWAPCHAIN_CREATE_PRESENT_WAIT_2_BIT_KHR";
        case VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_KHR:
            return "VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_KHR";
        default:
            return "Unhandled VkSwapchainCreateFlagBitsKHR";
    }
}

#ifdef __cplusplus
static inline std::string string_VkSwapchainCreateFlagsKHR(VkSwapchainCreateFlagsKHR input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkSwapchainCreateFlagBitsKHR(static_cast<VkSwapchainCreateFlagBitsKHR>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkSwapchainCreateFlagsKHR(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkDeviceGroupPresentModeFlagBitsKHR(VkDeviceGroupPresentModeFlagBitsKHR input_value) {
    switch (input_value) {
        case VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR:
            return "VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR";
        case VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR:
            return "VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR";
        case VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR:
            return "VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR";
        case VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR:
            return "VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR";
        default:
            return "Unhandled VkDeviceGroupPresentModeFlagBitsKHR";
    }
}

#ifdef __cplusplus
static inline std::string string_VkDeviceGroupPresentModeFlagsKHR(VkDeviceGroupPresentModeFlagsKHR input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkDeviceGroupPresentModeFlagBitsKHR(static_cast<VkDeviceGroupPresentModeFlagBitsKHR>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkDeviceGroupPresentModeFlagsKHR(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkDisplayPlaneAlphaFlagBitsKHR(VkDisplayPlaneAlphaFlagBitsKHR input_value) {
    switch (input_value) {
        case VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR:
            return "VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR";
        case VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR:
            return "VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR";
        case VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR:
            return "VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR";
        case VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR:
            return "VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR";
        default:
            return "Unhandled VkDisplayPlaneAlphaFlagBitsKHR";
    }
}

#ifdef __cplusplus
static inline std::string string_VkDisplayPlaneAlphaFlagsKHR(VkDisplayPlaneAlphaFlagsKHR input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkDisplayPlaneAlphaFlagBitsKHR(static_cast<VkDisplayPlaneAlphaFlagBitsKHR>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkDisplayPlaneAlphaFlagsKHR(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkVideoCodecOperationFlagBitsKHR(VkVideoCodecOperationFlagBitsKHR input_value) {
    switch (input_value) {
        case VK_VIDEO_CODEC_OPERATION_NONE_KHR:
            return "VK_VIDEO_CODEC_OPERATION_NONE_KHR";
        case VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR:
            return "VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR";
        case VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR:
            return "VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR";
        case VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR:
            return "VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR";
        case VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR:
            return "VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR";
        case VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR:
            return "VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR";
        case VK_VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHR:
            return "VK_VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHR";
        case VK_VIDEO_CODEC_OPERATION_DECODE_VP9_BIT_KHR:
            return "VK_VIDEO_CODEC_OPERATION_DECODE_VP9_BIT_KHR";
        default:
            return "Unhandled VkVideoCodecOperationFlagBitsKHR";
    }
}

#ifdef __cplusplus
static inline std::string string_VkVideoCodecOperationFlagsKHR(VkVideoCodecOperationFlagsKHR input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkVideoCodecOperationFlagBitsKHR(static_cast<VkVideoCodecOperationFlagBitsKHR>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkVideoCodecOperationFlagsKHR(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkVideoChromaSubsamplingFlagBitsKHR(VkVideoChromaSubsamplingFlagBitsKHR input_value) {
    switch (input_value) {
        case VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR:
            return "VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR";
        case VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR:
            return "VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR";
        case VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR:
            return "VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR";
        case VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR:
            return "VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR";
        case VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR:
            return "VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR";
        default:
            return "Unhandled VkVideoChromaSubsamplingFlagBitsKHR";
    }
}

#ifdef __cplusplus
static inline std::string string_VkVideoChromaSubsamplingFlagsKHR(VkVideoChromaSubsamplingFlagsKHR input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkVideoChromaSubsamplingFlagBitsKHR(static_cast<VkVideoChromaSubsamplingFlagBitsKHR>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkVideoChromaSubsamplingFlagsKHR(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkVideoComponentBitDepthFlagBitsKHR(VkVideoComponentBitDepthFlagBitsKHR input_value) {
    switch (input_value) {
        case VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR:
            return "VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR";
        case VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR:
            return "VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR";
        case VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR:
            return "VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR";
        case VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR:
            return "VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR";
        default:
            return "Unhandled VkVideoComponentBitDepthFlagBitsKHR";
    }
}

#ifdef __cplusplus
static inline std::string string_VkVideoComponentBitDepthFlagsKHR(VkVideoComponentBitDepthFlagsKHR input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkVideoComponentBitDepthFlagBitsKHR(static_cast<VkVideoComponentBitDepthFlagBitsKHR>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkVideoComponentBitDepthFlagsKHR(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkVideoCapabilityFlagBitsKHR(VkVideoCapabilityFlagBitsKHR input_value) {
    switch (input_value) {
        case VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR:
            return "VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR";
        case VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR:
            return "VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR";
        default:
            return "Unhandled VkVideoCapabilityFlagBitsKHR";
    }
}

#ifdef __cplusplus
static inline std::string string_VkVideoCapabilityFlagsKHR(VkVideoCapabilityFlagsKHR input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkVideoCapabilityFlagBitsKHR(static_cast<VkVideoCapabilityFlagBitsKHR>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkVideoCapabilityFlagsKHR(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkVideoSessionCreateFlagBitsKHR(VkVideoSessionCreateFlagBitsKHR input_value) {
    switch (input_value) {
        case VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR:
            return "VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR";
        case VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_PARAMETER_OPTIMIZATIONS_BIT_KHR:
            return "VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_PARAMETER_OPTIMIZATIONS_BIT_KHR";
        case VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR:
            return "VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR";
        case VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR:
            return "VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR";
        case VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_EMPHASIS_MAP_BIT_KHR:
            return "VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_EMPHASIS_MAP_BIT_KHR";
        case VK_VIDEO_SESSION_CREATE_INLINE_SESSION_PARAMETERS_BIT_KHR:
            return "VK_VIDEO_SESSION_CREATE_INLINE_SESSION_PARAMETERS_BIT_KHR";
        default:
            return "Unhandled VkVideoSessionCreateFlagBitsKHR";
    }
}

#ifdef __cplusplus
static inline std::string string_VkVideoSessionCreateFlagsKHR(VkVideoSessionCreateFlagsKHR input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkVideoSessionCreateFlagBitsKHR(static_cast<VkVideoSessionCreateFlagBitsKHR>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkVideoSessionCreateFlagsKHR(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkVideoSessionParametersCreateFlagBitsKHR(VkVideoSessionParametersCreateFlagBitsKHR input_value) {
    switch (input_value) {
        case VK_VIDEO_SESSION_PARAMETERS_CREATE_QUANTIZATION_MAP_COMPATIBLE_BIT_KHR:
            return "VK_VIDEO_SESSION_PARAMETERS_CREATE_QUANTIZATION_MAP_COMPATIBLE_BIT_KHR";
        default:
            return "Unhandled VkVideoSessionParametersCreateFlagBitsKHR";
    }
}

#ifdef __cplusplus
static inline std::string string_VkVideoSessionParametersCreateFlagsKHR(VkVideoSessionParametersCreateFlagsKHR input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkVideoSessionParametersCreateFlagBitsKHR(static_cast<VkVideoSessionParametersCreateFlagBitsKHR>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkVideoSessionParametersCreateFlagsKHR(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkVideoCodingControlFlagBitsKHR(VkVideoCodingControlFlagBitsKHR input_value) {
    switch (input_value) {
        case VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR:
            return "VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR";
        case VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR:
            return "VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR";
        case VK_VIDEO_CODING_CONTROL_ENCODE_QUALITY_LEVEL_BIT_KHR:
            return "VK_VIDEO_CODING_CONTROL_ENCODE_QUALITY_LEVEL_BIT_KHR";
        default:
            return "Unhandled VkVideoCodingControlFlagBitsKHR";
    }
}

#ifdef __cplusplus
static inline std::string string_VkVideoCodingControlFlagsKHR(VkVideoCodingControlFlagsKHR input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkVideoCodingControlFlagBitsKHR(static_cast<VkVideoCodingControlFlagBitsKHR>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkVideoCodingControlFlagsKHR(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkVideoDecodeCapabilityFlagBitsKHR(VkVideoDecodeCapabilityFlagBitsKHR input_value) {
    switch (input_value) {
        case VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR:
            return "VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR";
        case VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR:
            return "VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR";
        default:
            return "Unhandled VkVideoDecodeCapabilityFlagBitsKHR";
    }
}

#ifdef __cplusplus
static inline std::string string_VkVideoDecodeCapabilityFlagsKHR(VkVideoDecodeCapabilityFlagsKHR input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkVideoDecodeCapabilityFlagBitsKHR(static_cast<VkVideoDecodeCapabilityFlagBitsKHR>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkVideoDecodeCapabilityFlagsKHR(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkVideoDecodeUsageFlagBitsKHR(VkVideoDecodeUsageFlagBitsKHR input_value) {
    switch (input_value) {
        case VK_VIDEO_DECODE_USAGE_DEFAULT_KHR:
            return "VK_VIDEO_DECODE_USAGE_DEFAULT_KHR";
        case VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR:
            return "VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR";
        case VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR:
            return "VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR";
        case VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR:
            return "VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR";
        default:
            return "Unhandled VkVideoDecodeUsageFlagBitsKHR";
    }
}

#ifdef __cplusplus
static inline std::string string_VkVideoDecodeUsageFlagsKHR(VkVideoDecodeUsageFlagsKHR input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkVideoDecodeUsageFlagBitsKHR(static_cast<VkVideoDecodeUsageFlagBitsKHR>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkVideoDecodeUsageFlagsKHR(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkVideoEncodeH264CapabilityFlagBitsKHR(VkVideoEncodeH264CapabilityFlagBitsKHR input_value) {
    switch (input_value) {
        case VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_KHR:
            return "VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_KHR";
        case VK_VIDEO_ENCODE_H264_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR:
            return "VK_VIDEO_ENCODE_H264_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR";
        case VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_KHR:
            return "VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_KHR";
        case VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_KHR:
            return "VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_KHR";
        case VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR:
            return "VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR";
        case VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR:
            return "VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR";
        case VK_VIDEO_ENCODE_H264_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR:
            return "VK_VIDEO_ENCODE_H264_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR";
        case VK_VIDEO_ENCODE_H264_CAPABILITY_PER_SLICE_CONSTANT_QP_BIT_KHR:
            return "VK_VIDEO_ENCODE_H264_CAPABILITY_PER_SLICE_CONSTANT_QP_BIT_KHR";
        case VK_VIDEO_ENCODE_H264_CAPABILITY_GENERATE_PREFIX_NALU_BIT_KHR:
            return "VK_VIDEO_ENCODE_H264_CAPABILITY_GENERATE_PREFIX_NALU_BIT_KHR";
        case VK_VIDEO_ENCODE_H264_CAPABILITY_B_PICTURE_INTRA_REFRESH_BIT_KHR:
            return "VK_VIDEO_ENCODE_H264_CAPABILITY_B_PICTURE_INTRA_REFRESH_BIT_KHR";
        case VK_VIDEO_ENCODE_H264_CAPABILITY_MB_QP_DIFF_WRAPAROUND_BIT_KHR:
            return "VK_VIDEO_ENCODE_H264_CAPABILITY_MB_QP_DIFF_WRAPAROUND_BIT_KHR";
        default:
            return "Unhandled VkVideoEncodeH264CapabilityFlagBitsKHR";
    }
}

#ifdef __cplusplus
static inline std::string string_VkVideoEncodeH264CapabilityFlagsKHR(VkVideoEncodeH264CapabilityFlagsKHR input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkVideoEncodeH264CapabilityFlagBitsKHR(static_cast<VkVideoEncodeH264CapabilityFlagBitsKHR>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkVideoEncodeH264CapabilityFlagsKHR(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkVideoEncodeH264StdFlagBitsKHR(VkVideoEncodeH264StdFlagBitsKHR input_value) {
    switch (input_value) {
        case VK_VIDEO_ENCODE_H264_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR:
            return "VK_VIDEO_ENCODE_H264_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR";
        case VK_VIDEO_ENCODE_H264_STD_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_FLAG_SET_BIT_KHR:
            return "VK_VIDEO_ENCODE_H264_STD_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_FLAG_SET_BIT_KHR";
        case VK_VIDEO_ENCODE_H264_STD_SCALING_MATRIX_PRESENT_FLAG_SET_BIT_KHR:
            return "VK_VIDEO_ENCODE_H264_STD_SCALING_MATRIX_PRESENT_FLAG_SET_BIT_KHR";
        case VK_VIDEO_ENCODE_H264_STD_CHROMA_QP_INDEX_OFFSET_BIT_KHR:
            return "VK_VIDEO_ENCODE_H264_STD_CHROMA_QP_INDEX_OFFSET_BIT_KHR";
        case VK_VIDEO_ENCODE_H264_STD_SECOND_CHROMA_QP_INDEX_OFFSET_BIT_KHR:
            return "VK_VIDEO_ENCODE_H264_STD_SECOND_CHROMA_QP_INDEX_OFFSET_BIT_KHR";
        case VK_VIDEO_ENCODE_H264_STD_PIC_INIT_QP_MINUS26_BIT_KHR:
            return "VK_VIDEO_ENCODE_H264_STD_PIC_INIT_QP_MINUS26_BIT_KHR";
        case VK_VIDEO_ENCODE_H264_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR:
            return "VK_VIDEO_ENCODE_H264_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR";
        case VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_EXPLICIT_BIT_KHR:
            return "VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_EXPLICIT_BIT_KHR";
        case VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_IMPLICIT_BIT_KHR:
            return "VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_IMPLICIT_BIT_KHR";
        case VK_VIDEO_ENCODE_H264_STD_TRANSFORM_8X8_MODE_FLAG_SET_BIT_KHR:
            return "VK_VIDEO_ENCODE_H264_STD_TRANSFORM_8X8_MODE_FLAG_SET_BIT_KHR";
        case VK_VIDEO_ENCODE_H264_STD_DIRECT_SPATIAL_MV_PRED_FLAG_UNSET_BIT_KHR:
            return "VK_VIDEO_ENCODE_H264_STD_DIRECT_SPATIAL_MV_PRED_FLAG_UNSET_BIT_KHR";
        case VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_UNSET_BIT_KHR:
            return "VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_UNSET_BIT_KHR";
        case VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_SET_BIT_KHR:
            return "VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_SET_BIT_KHR";
        case VK_VIDEO_ENCODE_H264_STD_DIRECT_8X8_INFERENCE_FLAG_UNSET_BIT_KHR:
            return "VK_VIDEO_ENCODE_H264_STD_DIRECT_8X8_INFERENCE_FLAG_UNSET_BIT_KHR";
        case VK_VIDEO_ENCODE_H264_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR:
            return "VK_VIDEO_ENCODE_H264_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR";
        case VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_DISABLED_BIT_KHR:
            return "VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_DISABLED_BIT_KHR";
        case VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_ENABLED_BIT_KHR:
            return "VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_ENABLED_BIT_KHR";
        case VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_PARTIAL_BIT_KHR:
            return "VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_PARTIAL_BIT_KHR";
        case VK_VIDEO_ENCODE_H264_STD_SLICE_QP_DELTA_BIT_KHR:
            return "VK_VIDEO_ENCODE_H264_STD_SLICE_QP_DELTA_BIT_KHR";
        case VK_VIDEO_ENCODE_H264_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHR:
            return "VK_VIDEO_ENCODE_H264_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHR";
        default:
            return "Unhandled VkVideoEncodeH264StdFlagBitsKHR";
    }
}

#ifdef __cplusplus
static inline std::string string_VkVideoEncodeH264StdFlagsKHR(VkVideoEncodeH264StdFlagsKHR input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkVideoEncodeH264StdFlagBitsKHR(static_cast<VkVideoEncodeH264StdFlagBitsKHR>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkVideoEncodeH264StdFlagsKHR(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkVideoEncodeH264RateControlFlagBitsKHR(VkVideoEncodeH264RateControlFlagBitsKHR input_value) {
    switch (input_value) {
        case VK_VIDEO_ENCODE_H264_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_KHR:
            return "VK_VIDEO_ENCODE_H264_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_KHR";
        case VK_VIDEO_ENCODE_H264_RATE_CONTROL_REGULAR_GOP_BIT_KHR:
            return "VK_VIDEO_ENCODE_H264_RATE_CONTROL_REGULAR_GOP_BIT_KHR";
        case VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR:
            return "VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR";
        case VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR:
            return "VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR";
        case VK_VIDEO_ENCODE_H264_RATE_CONTROL_TEMPORAL_LAYER_PATTERN_DYADIC_BIT_KHR:
            return "VK_VIDEO_ENCODE_H264_RATE_CONTROL_TEMPORAL_LAYER_PATTERN_DYADIC_BIT_KHR";
        default:
            return "Unhandled VkVideoEncodeH264RateControlFlagBitsKHR";
    }
}

#ifdef __cplusplus
static inline std::string string_VkVideoEncodeH264RateControlFlagsKHR(VkVideoEncodeH264RateControlFlagsKHR input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkVideoEncodeH264RateControlFlagBitsKHR(static_cast<VkVideoEncodeH264RateControlFlagBitsKHR>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkVideoEncodeH264RateControlFlagsKHR(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkVideoEncodeH265CapabilityFlagBitsKHR(VkVideoEncodeH265CapabilityFlagBitsKHR input_value) {
    switch (input_value) {
        case VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_KHR:
            return "VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_KHR";
        case VK_VIDEO_ENCODE_H265_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR:
            return "VK_VIDEO_ENCODE_H265_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR";
        case VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_KHR:
            return "VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_KHR";
        case VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_SEGMENT_TYPE_BIT_KHR:
            return "VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_SEGMENT_TYPE_BIT_KHR";
        case VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR:
            return "VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR";
        case VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR:
            return "VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR";
        case VK_VIDEO_ENCODE_H265_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR:
            return "VK_VIDEO_ENCODE_H265_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR";
        case VK_VIDEO_ENCODE_H265_CAPABILITY_PER_SLICE_SEGMENT_CONSTANT_QP_BIT_KHR:
            return "VK_VIDEO_ENCODE_H265_CAPABILITY_PER_SLICE_SEGMENT_CONSTANT_QP_BIT_KHR";
        case VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILES_PER_SLICE_SEGMENT_BIT_KHR:
            return "VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILES_PER_SLICE_SEGMENT_BIT_KHR";
        case VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_SEGMENTS_PER_TILE_BIT_KHR:
            return "VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_SEGMENTS_PER_TILE_BIT_KHR";
        case VK_VIDEO_ENCODE_H265_CAPABILITY_B_PICTURE_INTRA_REFRESH_BIT_KHR:
            return "VK_VIDEO_ENCODE_H265_CAPABILITY_B_PICTURE_INTRA_REFRESH_BIT_KHR";
        case VK_VIDEO_ENCODE_H265_CAPABILITY_CU_QP_DIFF_WRAPAROUND_BIT_KHR:
            return "VK_VIDEO_ENCODE_H265_CAPABILITY_CU_QP_DIFF_WRAPAROUND_BIT_KHR";
        default:
            return "Unhandled VkVideoEncodeH265CapabilityFlagBitsKHR";
    }
}

#ifdef __cplusplus
static inline std::string string_VkVideoEncodeH265CapabilityFlagsKHR(VkVideoEncodeH265CapabilityFlagsKHR input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkVideoEncodeH265CapabilityFlagBitsKHR(static_cast<VkVideoEncodeH265CapabilityFlagBitsKHR>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkVideoEncodeH265CapabilityFlagsKHR(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkVideoEncodeH265StdFlagBitsKHR(VkVideoEncodeH265StdFlagBitsKHR input_value) {
    switch (input_value) {
        case VK_VIDEO_ENCODE_H265_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR:
            return "VK_VIDEO_ENCODE_H265_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR";
        case VK_VIDEO_ENCODE_H265_STD_SAMPLE_ADAPTIVE_OFFSET_ENABLED_FLAG_SET_BIT_KHR:
            return "VK_VIDEO_ENCODE_H265_STD_SAMPLE_ADAPTIVE_OFFSET_ENABLED_FLAG_SET_BIT_KHR";
        case VK_VIDEO_ENCODE_H265_STD_SCALING_LIST_DATA_PRESENT_FLAG_SET_BIT_KHR:
            return "VK_VIDEO_ENCODE_H265_STD_SCALING_LIST_DATA_PRESENT_FLAG_SET_BIT_KHR";
        case VK_VIDEO_ENCODE_H265_STD_PCM_ENABLED_FLAG_SET_BIT_KHR:
            return "VK_VIDEO_ENCODE_H265_STD_PCM_ENABLED_FLAG_SET_BIT_KHR";
        case VK_VIDEO_ENCODE_H265_STD_SPS_TEMPORAL_MVP_ENABLED_FLAG_SET_BIT_KHR:
            return "VK_VIDEO_ENCODE_H265_STD_SPS_TEMPORAL_MVP_ENABLED_FLAG_SET_BIT_KHR";
        case VK_VIDEO_ENCODE_H265_STD_INIT_QP_MINUS26_BIT_KHR:
            return "VK_VIDEO_ENCODE_H265_STD_INIT_QP_MINUS26_BIT_KHR";
        case VK_VIDEO_ENCODE_H265_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR:
            return "VK_VIDEO_ENCODE_H265_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR";
        case VK_VIDEO_ENCODE_H265_STD_WEIGHTED_BIPRED_FLAG_SET_BIT_KHR:
            return "VK_VIDEO_ENCODE_H265_STD_WEIGHTED_BIPRED_FLAG_SET_BIT_KHR";
        case VK_VIDEO_ENCODE_H265_STD_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_KHR:
            return "VK_VIDEO_ENCODE_H265_STD_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_KHR";
        case VK_VIDEO_ENCODE_H265_STD_SIGN_DATA_HIDING_ENABLED_FLAG_SET_BIT_KHR:
            return "VK_VIDEO_ENCODE_H265_STD_SIGN_DATA_HIDING_ENABLED_FLAG_SET_BIT_KHR";
        case VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_SET_BIT_KHR:
            return "VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_SET_BIT_KHR";
        case VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_UNSET_BIT_KHR:
            return "VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_UNSET_BIT_KHR";
        case VK_VIDEO_ENCODE_H265_STD_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_FLAG_SET_BIT_KHR:
            return "VK_VIDEO_ENCODE_H265_STD_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_FLAG_SET_BIT_KHR";
        case VK_VIDEO_ENCODE_H265_STD_TRANSQUANT_BYPASS_ENABLED_FLAG_SET_BIT_KHR:
            return "VK_VIDEO_ENCODE_H265_STD_TRANSQUANT_BYPASS_ENABLED_FLAG_SET_BIT_KHR";
        case VK_VIDEO_ENCODE_H265_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR:
            return "VK_VIDEO_ENCODE_H265_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR";
        case VK_VIDEO_ENCODE_H265_STD_ENTROPY_CODING_SYNC_ENABLED_FLAG_SET_BIT_KHR:
            return "VK_VIDEO_ENCODE_H265_STD_ENTROPY_CODING_SYNC_ENABLED_FLAG_SET_BIT_KHR";
        case VK_VIDEO_ENCODE_H265_STD_DEBLOCKING_FILTER_OVERRIDE_ENABLED_FLAG_SET_BIT_KHR:
            return "VK_VIDEO_ENCODE_H265_STD_DEBLOCKING_FILTER_OVERRIDE_ENABLED_FLAG_SET_BIT_KHR";
        case VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENTS_ENABLED_FLAG_SET_BIT_KHR:
            return "VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENTS_ENABLED_FLAG_SET_BIT_KHR";
        case VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENT_FLAG_SET_BIT_KHR:
            return "VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENT_FLAG_SET_BIT_KHR";
        case VK_VIDEO_ENCODE_H265_STD_SLICE_QP_DELTA_BIT_KHR:
            return "VK_VIDEO_ENCODE_H265_STD_SLICE_QP_DELTA_BIT_KHR";
        case VK_VIDEO_ENCODE_H265_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHR:
            return "VK_VIDEO_ENCODE_H265_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHR";
        default:
            return "Unhandled VkVideoEncodeH265StdFlagBitsKHR";
    }
}

#ifdef __cplusplus
static inline std::string string_VkVideoEncodeH265StdFlagsKHR(VkVideoEncodeH265StdFlagsKHR input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkVideoEncodeH265StdFlagBitsKHR(static_cast<VkVideoEncodeH265StdFlagBitsKHR>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkVideoEncodeH265StdFlagsKHR(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkVideoEncodeH265CtbSizeFlagBitsKHR(VkVideoEncodeH265CtbSizeFlagBitsKHR input_value) {
    switch (input_value) {
        case VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_KHR:
            return "VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_KHR";
        case VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_KHR:
            return "VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_KHR";
        case VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_KHR:
            return "VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_KHR";
        default:
            return "Unhandled VkVideoEncodeH265CtbSizeFlagBitsKHR";
    }
}

#ifdef __cplusplus
static inline std::string string_VkVideoEncodeH265CtbSizeFlagsKHR(VkVideoEncodeH265CtbSizeFlagsKHR input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkVideoEncodeH265CtbSizeFlagBitsKHR(static_cast<VkVideoEncodeH265CtbSizeFlagBitsKHR>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkVideoEncodeH265CtbSizeFlagsKHR(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkVideoEncodeH265TransformBlockSizeFlagBitsKHR(VkVideoEncodeH265TransformBlockSizeFlagBitsKHR input_value) {
    switch (input_value) {
        case VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_KHR:
            return "VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_KHR";
        case VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_KHR:
            return "VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_KHR";
        case VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_KHR:
            return "VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_KHR";
        case VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_KHR:
            return "VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_KHR";
        default:
            return "Unhandled VkVideoEncodeH265TransformBlockSizeFlagBitsKHR";
    }
}

#ifdef __cplusplus
static inline std::string string_VkVideoEncodeH265TransformBlockSizeFlagsKHR(VkVideoEncodeH265TransformBlockSizeFlagsKHR input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkVideoEncodeH265TransformBlockSizeFlagBitsKHR(static_cast<VkVideoEncodeH265TransformBlockSizeFlagBitsKHR>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkVideoEncodeH265TransformBlockSizeFlagsKHR(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkVideoEncodeH265RateControlFlagBitsKHR(VkVideoEncodeH265RateControlFlagBitsKHR input_value) {
    switch (input_value) {
        case VK_VIDEO_ENCODE_H265_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_KHR:
            return "VK_VIDEO_ENCODE_H265_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_KHR";
        case VK_VIDEO_ENCODE_H265_RATE_CONTROL_REGULAR_GOP_BIT_KHR:
            return "VK_VIDEO_ENCODE_H265_RATE_CONTROL_REGULAR_GOP_BIT_KHR";
        case VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR:
            return "VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR";
        case VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR:
            return "VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR";
        case VK_VIDEO_ENCODE_H265_RATE_CONTROL_TEMPORAL_SUB_LAYER_PATTERN_DYADIC_BIT_KHR:
            return "VK_VIDEO_ENCODE_H265_RATE_CONTROL_TEMPORAL_SUB_LAYER_PATTERN_DYADIC_BIT_KHR";
        default:
            return "Unhandled VkVideoEncodeH265RateControlFlagBitsKHR";
    }
}

#ifdef __cplusplus
static inline std::string string_VkVideoEncodeH265RateControlFlagsKHR(VkVideoEncodeH265RateControlFlagsKHR input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkVideoEncodeH265RateControlFlagBitsKHR(static_cast<VkVideoEncodeH265RateControlFlagBitsKHR>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkVideoEncodeH265RateControlFlagsKHR(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkVideoDecodeH264PictureLayoutFlagBitsKHR(VkVideoDecodeH264PictureLayoutFlagBitsKHR input_value) {
    switch (input_value) {
        case VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR:
            return "VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR";
        case VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_KHR:
            return "VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_KHR";
        case VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR:
            return "VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR";
        default:
            return "Unhandled VkVideoDecodeH264PictureLayoutFlagBitsKHR";
    }
}

#ifdef __cplusplus
static inline std::string string_VkVideoDecodeH264PictureLayoutFlagsKHR(VkVideoDecodeH264PictureLayoutFlagsKHR input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkVideoDecodeH264PictureLayoutFlagBitsKHR(static_cast<VkVideoDecodeH264PictureLayoutFlagBitsKHR>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkVideoDecodeH264PictureLayoutFlagsKHR(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkPerformanceCounterDescriptionFlagBitsKHR(VkPerformanceCounterDescriptionFlagBitsKHR input_value) {
    switch (input_value) {
        case VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR:
            return "VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR";
        case VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR:
            return "VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR";
        default:
            return "Unhandled VkPerformanceCounterDescriptionFlagBitsKHR";
    }
}

#ifdef __cplusplus
static inline std::string string_VkPerformanceCounterDescriptionFlagsKHR(VkPerformanceCounterDescriptionFlagsKHR input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkPerformanceCounterDescriptionFlagBitsKHR(static_cast<VkPerformanceCounterDescriptionFlagBitsKHR>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkPerformanceCounterDescriptionFlagsKHR(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkVideoEncodeFlagBitsKHR(VkVideoEncodeFlagBitsKHR input_value) {
    switch (input_value) {
        case VK_VIDEO_ENCODE_INTRA_REFRESH_BIT_KHR:
            return "VK_VIDEO_ENCODE_INTRA_REFRESH_BIT_KHR";
        case VK_VIDEO_ENCODE_WITH_QUANTIZATION_DELTA_MAP_BIT_KHR:
            return "VK_VIDEO_ENCODE_WITH_QUANTIZATION_DELTA_MAP_BIT_KHR";
        case VK_VIDEO_ENCODE_WITH_EMPHASIS_MAP_BIT_KHR:
            return "VK_VIDEO_ENCODE_WITH_EMPHASIS_MAP_BIT_KHR";
        default:
            return "Unhandled VkVideoEncodeFlagBitsKHR";
    }
}

#ifdef __cplusplus
static inline std::string string_VkVideoEncodeFlagsKHR(VkVideoEncodeFlagsKHR input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkVideoEncodeFlagBitsKHR(static_cast<VkVideoEncodeFlagBitsKHR>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkVideoEncodeFlagsKHR(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkVideoEncodeCapabilityFlagBitsKHR(VkVideoEncodeCapabilityFlagBitsKHR input_value) {
    switch (input_value) {
        case VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR:
            return "VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR";
        case VK_VIDEO_ENCODE_CAPABILITY_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_DETECTION_BIT_KHR:
            return "VK_VIDEO_ENCODE_CAPABILITY_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_DETECTION_BIT_KHR";
        case VK_VIDEO_ENCODE_CAPABILITY_QUANTIZATION_DELTA_MAP_BIT_KHR:
            return "VK_VIDEO_ENCODE_CAPABILITY_QUANTIZATION_DELTA_MAP_BIT_KHR";
        case VK_VIDEO_ENCODE_CAPABILITY_EMPHASIS_MAP_BIT_KHR:
            return "VK_VIDEO_ENCODE_CAPABILITY_EMPHASIS_MAP_BIT_KHR";
        default:
            return "Unhandled VkVideoEncodeCapabilityFlagBitsKHR";
    }
}

#ifdef __cplusplus
static inline std::string string_VkVideoEncodeCapabilityFlagsKHR(VkVideoEncodeCapabilityFlagsKHR input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkVideoEncodeCapabilityFlagBitsKHR(static_cast<VkVideoEncodeCapabilityFlagBitsKHR>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkVideoEncodeCapabilityFlagsKHR(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkVideoEncodeRateControlModeFlagBitsKHR(VkVideoEncodeRateControlModeFlagBitsKHR input_value) {
    switch (input_value) {
        case VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR:
            return "VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR";
        case VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR:
            return "VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR";
        case VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR:
            return "VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR";
        case VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR:
            return "VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR";
        default:
            return "Unhandled VkVideoEncodeRateControlModeFlagBitsKHR";
    }
}

#ifdef __cplusplus
static inline std::string string_VkVideoEncodeRateControlModeFlagsKHR(VkVideoEncodeRateControlModeFlagsKHR input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkVideoEncodeRateControlModeFlagBitsKHR(static_cast<VkVideoEncodeRateControlModeFlagBitsKHR>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkVideoEncodeRateControlModeFlagsKHR(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkVideoEncodeFeedbackFlagBitsKHR(VkVideoEncodeFeedbackFlagBitsKHR input_value) {
    switch (input_value) {
        case VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BUFFER_OFFSET_BIT_KHR:
            return "VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BUFFER_OFFSET_BIT_KHR";
        case VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BYTES_WRITTEN_BIT_KHR:
            return "VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BYTES_WRITTEN_BIT_KHR";
        case VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_HAS_OVERRIDES_BIT_KHR:
            return "VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_HAS_OVERRIDES_BIT_KHR";
        default:
            return "Unhandled VkVideoEncodeFeedbackFlagBitsKHR";
    }
}

#ifdef __cplusplus
static inline std::string string_VkVideoEncodeFeedbackFlagsKHR(VkVideoEncodeFeedbackFlagsKHR input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkVideoEncodeFeedbackFlagBitsKHR(static_cast<VkVideoEncodeFeedbackFlagBitsKHR>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkVideoEncodeFeedbackFlagsKHR(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkVideoEncodeUsageFlagBitsKHR(VkVideoEncodeUsageFlagBitsKHR input_value) {
    switch (input_value) {
        case VK_VIDEO_ENCODE_USAGE_DEFAULT_KHR:
            return "VK_VIDEO_ENCODE_USAGE_DEFAULT_KHR";
        case VK_VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHR:
            return "VK_VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHR";
        case VK_VIDEO_ENCODE_USAGE_STREAMING_BIT_KHR:
            return "VK_VIDEO_ENCODE_USAGE_STREAMING_BIT_KHR";
        case VK_VIDEO_ENCODE_USAGE_RECORDING_BIT_KHR:
            return "VK_VIDEO_ENCODE_USAGE_RECORDING_BIT_KHR";
        case VK_VIDEO_ENCODE_USAGE_CONFERENCING_BIT_KHR:
            return "VK_VIDEO_ENCODE_USAGE_CONFERENCING_BIT_KHR";
        default:
            return "Unhandled VkVideoEncodeUsageFlagBitsKHR";
    }
}

#ifdef __cplusplus
static inline std::string string_VkVideoEncodeUsageFlagsKHR(VkVideoEncodeUsageFlagsKHR input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkVideoEncodeUsageFlagBitsKHR(static_cast<VkVideoEncodeUsageFlagBitsKHR>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkVideoEncodeUsageFlagsKHR(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkVideoEncodeContentFlagBitsKHR(VkVideoEncodeContentFlagBitsKHR input_value) {
    switch (input_value) {
        case VK_VIDEO_ENCODE_CONTENT_DEFAULT_KHR:
            return "VK_VIDEO_ENCODE_CONTENT_DEFAULT_KHR";
        case VK_VIDEO_ENCODE_CONTENT_CAMERA_BIT_KHR:
            return "VK_VIDEO_ENCODE_CONTENT_CAMERA_BIT_KHR";
        case VK_VIDEO_ENCODE_CONTENT_DESKTOP_BIT_KHR:
            return "VK_VIDEO_ENCODE_CONTENT_DESKTOP_BIT_KHR";
        case VK_VIDEO_ENCODE_CONTENT_RENDERED_BIT_KHR:
            return "VK_VIDEO_ENCODE_CONTENT_RENDERED_BIT_KHR";
        default:
            return "Unhandled VkVideoEncodeContentFlagBitsKHR";
    }
}

#ifdef __cplusplus
static inline std::string string_VkVideoEncodeContentFlagsKHR(VkVideoEncodeContentFlagsKHR input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkVideoEncodeContentFlagBitsKHR(static_cast<VkVideoEncodeContentFlagBitsKHR>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkVideoEncodeContentFlagsKHR(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkPresentScalingFlagBitsKHR(VkPresentScalingFlagBitsKHR input_value) {
    switch (input_value) {
        case VK_PRESENT_SCALING_ONE_TO_ONE_BIT_KHR:
            return "VK_PRESENT_SCALING_ONE_TO_ONE_BIT_KHR";
        case VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_KHR:
            return "VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_KHR";
        case VK_PRESENT_SCALING_STRETCH_BIT_KHR:
            return "VK_PRESENT_SCALING_STRETCH_BIT_KHR";
        default:
            return "Unhandled VkPresentScalingFlagBitsKHR";
    }
}

#ifdef __cplusplus
static inline std::string string_VkPresentScalingFlagsKHR(VkPresentScalingFlagsKHR input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkPresentScalingFlagBitsKHR(static_cast<VkPresentScalingFlagBitsKHR>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkPresentScalingFlagsKHR(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkPresentGravityFlagBitsKHR(VkPresentGravityFlagBitsKHR input_value) {
    switch (input_value) {
        case VK_PRESENT_GRAVITY_MIN_BIT_KHR:
            return "VK_PRESENT_GRAVITY_MIN_BIT_KHR";
        case VK_PRESENT_GRAVITY_MAX_BIT_KHR:
            return "VK_PRESENT_GRAVITY_MAX_BIT_KHR";
        case VK_PRESENT_GRAVITY_CENTERED_BIT_KHR:
            return "VK_PRESENT_GRAVITY_CENTERED_BIT_KHR";
        default:
            return "Unhandled VkPresentGravityFlagBitsKHR";
    }
}

#ifdef __cplusplus
static inline std::string string_VkPresentGravityFlagsKHR(VkPresentGravityFlagsKHR input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkPresentGravityFlagBitsKHR(static_cast<VkPresentGravityFlagBitsKHR>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkPresentGravityFlagsKHR(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkVideoEncodeAV1CapabilityFlagBitsKHR(VkVideoEncodeAV1CapabilityFlagBitsKHR input_value) {
    switch (input_value) {
        case VK_VIDEO_ENCODE_AV1_CAPABILITY_PER_RATE_CONTROL_GROUP_MIN_MAX_Q_INDEX_BIT_KHR:
            return "VK_VIDEO_ENCODE_AV1_CAPABILITY_PER_RATE_CONTROL_GROUP_MIN_MAX_Q_INDEX_BIT_KHR";
        case VK_VIDEO_ENCODE_AV1_CAPABILITY_GENERATE_OBU_EXTENSION_HEADER_BIT_KHR:
            return "VK_VIDEO_ENCODE_AV1_CAPABILITY_GENERATE_OBU_EXTENSION_HEADER_BIT_KHR";
        case VK_VIDEO_ENCODE_AV1_CAPABILITY_PRIMARY_REFERENCE_CDF_ONLY_BIT_KHR:
            return "VK_VIDEO_ENCODE_AV1_CAPABILITY_PRIMARY_REFERENCE_CDF_ONLY_BIT_KHR";
        case VK_VIDEO_ENCODE_AV1_CAPABILITY_FRAME_SIZE_OVERRIDE_BIT_KHR:
            return "VK_VIDEO_ENCODE_AV1_CAPABILITY_FRAME_SIZE_OVERRIDE_BIT_KHR";
        case VK_VIDEO_ENCODE_AV1_CAPABILITY_MOTION_VECTOR_SCALING_BIT_KHR:
            return "VK_VIDEO_ENCODE_AV1_CAPABILITY_MOTION_VECTOR_SCALING_BIT_KHR";
        case VK_VIDEO_ENCODE_AV1_CAPABILITY_COMPOUND_PREDICTION_INTRA_REFRESH_BIT_KHR:
            return "VK_VIDEO_ENCODE_AV1_CAPABILITY_COMPOUND_PREDICTION_INTRA_REFRESH_BIT_KHR";
        default:
            return "Unhandled VkVideoEncodeAV1CapabilityFlagBitsKHR";
    }
}

#ifdef __cplusplus
static inline std::string string_VkVideoEncodeAV1CapabilityFlagsKHR(VkVideoEncodeAV1CapabilityFlagsKHR input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkVideoEncodeAV1CapabilityFlagBitsKHR(static_cast<VkVideoEncodeAV1CapabilityFlagBitsKHR>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkVideoEncodeAV1CapabilityFlagsKHR(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkVideoEncodeAV1StdFlagBitsKHR(VkVideoEncodeAV1StdFlagBitsKHR input_value) {
    switch (input_value) {
        case VK_VIDEO_ENCODE_AV1_STD_UNIFORM_TILE_SPACING_FLAG_SET_BIT_KHR:
            return "VK_VIDEO_ENCODE_AV1_STD_UNIFORM_TILE_SPACING_FLAG_SET_BIT_KHR";
        case VK_VIDEO_ENCODE_AV1_STD_SKIP_MODE_PRESENT_UNSET_BIT_KHR:
            return "VK_VIDEO_ENCODE_AV1_STD_SKIP_MODE_PRESENT_UNSET_BIT_KHR";
        case VK_VIDEO_ENCODE_AV1_STD_PRIMARY_REF_FRAME_BIT_KHR:
            return "VK_VIDEO_ENCODE_AV1_STD_PRIMARY_REF_FRAME_BIT_KHR";
        case VK_VIDEO_ENCODE_AV1_STD_DELTA_Q_BIT_KHR:
            return "VK_VIDEO_ENCODE_AV1_STD_DELTA_Q_BIT_KHR";
        default:
            return "Unhandled VkVideoEncodeAV1StdFlagBitsKHR";
    }
}

#ifdef __cplusplus
static inline std::string string_VkVideoEncodeAV1StdFlagsKHR(VkVideoEncodeAV1StdFlagsKHR input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkVideoEncodeAV1StdFlagBitsKHR(static_cast<VkVideoEncodeAV1StdFlagBitsKHR>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkVideoEncodeAV1StdFlagsKHR(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkVideoEncodeAV1SuperblockSizeFlagBitsKHR(VkVideoEncodeAV1SuperblockSizeFlagBitsKHR input_value) {
    switch (input_value) {
        case VK_VIDEO_ENCODE_AV1_SUPERBLOCK_SIZE_64_BIT_KHR:
            return "VK_VIDEO_ENCODE_AV1_SUPERBLOCK_SIZE_64_BIT_KHR";
        case VK_VIDEO_ENCODE_AV1_SUPERBLOCK_SIZE_128_BIT_KHR:
            return "VK_VIDEO_ENCODE_AV1_SUPERBLOCK_SIZE_128_BIT_KHR";
        default:
            return "Unhandled VkVideoEncodeAV1SuperblockSizeFlagBitsKHR";
    }
}

#ifdef __cplusplus
static inline std::string string_VkVideoEncodeAV1SuperblockSizeFlagsKHR(VkVideoEncodeAV1SuperblockSizeFlagsKHR input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkVideoEncodeAV1SuperblockSizeFlagBitsKHR(static_cast<VkVideoEncodeAV1SuperblockSizeFlagBitsKHR>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkVideoEncodeAV1SuperblockSizeFlagsKHR(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkVideoEncodeAV1RateControlFlagBitsKHR(VkVideoEncodeAV1RateControlFlagBitsKHR input_value) {
    switch (input_value) {
        case VK_VIDEO_ENCODE_AV1_RATE_CONTROL_REGULAR_GOP_BIT_KHR:
            return "VK_VIDEO_ENCODE_AV1_RATE_CONTROL_REGULAR_GOP_BIT_KHR";
        case VK_VIDEO_ENCODE_AV1_RATE_CONTROL_TEMPORAL_LAYER_PATTERN_DYADIC_BIT_KHR:
            return "VK_VIDEO_ENCODE_AV1_RATE_CONTROL_TEMPORAL_LAYER_PATTERN_DYADIC_BIT_KHR";
        case VK_VIDEO_ENCODE_AV1_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR:
            return "VK_VIDEO_ENCODE_AV1_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR";
        case VK_VIDEO_ENCODE_AV1_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR:
            return "VK_VIDEO_ENCODE_AV1_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR";
        default:
            return "Unhandled VkVideoEncodeAV1RateControlFlagBitsKHR";
    }
}

#ifdef __cplusplus
static inline std::string string_VkVideoEncodeAV1RateControlFlagsKHR(VkVideoEncodeAV1RateControlFlagsKHR input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkVideoEncodeAV1RateControlFlagBitsKHR(static_cast<VkVideoEncodeAV1RateControlFlagBitsKHR>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkVideoEncodeAV1RateControlFlagsKHR(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkAddressCopyFlagBitsKHR(VkAddressCopyFlagBitsKHR input_value) {
    switch (input_value) {
        case VK_ADDRESS_COPY_DEVICE_LOCAL_BIT_KHR:
            return "VK_ADDRESS_COPY_DEVICE_LOCAL_BIT_KHR";
        case VK_ADDRESS_COPY_SPARSE_BIT_KHR:
            return "VK_ADDRESS_COPY_SPARSE_BIT_KHR";
        case VK_ADDRESS_COPY_PROTECTED_BIT_KHR:
            return "VK_ADDRESS_COPY_PROTECTED_BIT_KHR";
        default:
            return "Unhandled VkAddressCopyFlagBitsKHR";
    }
}

#ifdef __cplusplus
static inline std::string string_VkAddressCopyFlagsKHR(VkAddressCopyFlagsKHR input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkAddressCopyFlagBitsKHR(static_cast<VkAddressCopyFlagBitsKHR>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkAddressCopyFlagsKHR(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkVideoEncodeIntraRefreshModeFlagBitsKHR(VkVideoEncodeIntraRefreshModeFlagBitsKHR input_value) {
    switch (input_value) {
        case VK_VIDEO_ENCODE_INTRA_REFRESH_MODE_NONE_KHR:
            return "VK_VIDEO_ENCODE_INTRA_REFRESH_MODE_NONE_KHR";
        case VK_VIDEO_ENCODE_INTRA_REFRESH_MODE_PER_PICTURE_PARTITION_BIT_KHR:
            return "VK_VIDEO_ENCODE_INTRA_REFRESH_MODE_PER_PICTURE_PARTITION_BIT_KHR";
        case VK_VIDEO_ENCODE_INTRA_REFRESH_MODE_BLOCK_BASED_BIT_KHR:
            return "VK_VIDEO_ENCODE_INTRA_REFRESH_MODE_BLOCK_BASED_BIT_KHR";
        case VK_VIDEO_ENCODE_INTRA_REFRESH_MODE_BLOCK_ROW_BASED_BIT_KHR:
            return "VK_VIDEO_ENCODE_INTRA_REFRESH_MODE_BLOCK_ROW_BASED_BIT_KHR";
        case VK_VIDEO_ENCODE_INTRA_REFRESH_MODE_BLOCK_COLUMN_BASED_BIT_KHR:
            return "VK_VIDEO_ENCODE_INTRA_REFRESH_MODE_BLOCK_COLUMN_BASED_BIT_KHR";
        default:
            return "Unhandled VkVideoEncodeIntraRefreshModeFlagBitsKHR";
    }
}

#ifdef __cplusplus
static inline std::string string_VkVideoEncodeIntraRefreshModeFlagsKHR(VkVideoEncodeIntraRefreshModeFlagsKHR input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkVideoEncodeIntraRefreshModeFlagBitsKHR(static_cast<VkVideoEncodeIntraRefreshModeFlagBitsKHR>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkVideoEncodeIntraRefreshModeFlagsKHR(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkAccessFlagBits3KHR(uint64_t input_value) {
    if (input_value == VK_ACCESS_3_NONE_KHR) return "VK_ACCESS_3_NONE_KHR";
    return "Unhandled VkAccessFlagBits3KHR";
}

#ifdef __cplusplus
static inline std::string string_VkAccessFlags3KHR(VkAccessFlags3KHR input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkAccessFlagBits3KHR(static_cast<uint64_t>(1ULL << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkAccessFlags3KHR(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkRenderingAttachmentFlagBitsKHR(VkRenderingAttachmentFlagBitsKHR input_value) {
    switch (input_value) {
        case VK_RENDERING_ATTACHMENT_INPUT_ATTACHMENT_FEEDBACK_BIT_KHR:
            return "VK_RENDERING_ATTACHMENT_INPUT_ATTACHMENT_FEEDBACK_BIT_KHR";
        case VK_RENDERING_ATTACHMENT_RESOLVE_SKIP_TRANSFER_FUNCTION_BIT_KHR:
            return "VK_RENDERING_ATTACHMENT_RESOLVE_SKIP_TRANSFER_FUNCTION_BIT_KHR";
        case VK_RENDERING_ATTACHMENT_RESOLVE_ENABLE_TRANSFER_FUNCTION_BIT_KHR:
            return "VK_RENDERING_ATTACHMENT_RESOLVE_ENABLE_TRANSFER_FUNCTION_BIT_KHR";
        default:
            return "Unhandled VkRenderingAttachmentFlagBitsKHR";
    }
}

#ifdef __cplusplus
static inline std::string string_VkRenderingAttachmentFlagsKHR(VkRenderingAttachmentFlagsKHR input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkRenderingAttachmentFlagBitsKHR(static_cast<VkRenderingAttachmentFlagBitsKHR>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkRenderingAttachmentFlagsKHR(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkResolveImageFlagBitsKHR(VkResolveImageFlagBitsKHR input_value) {
    switch (input_value) {
        case VK_RESOLVE_IMAGE_SKIP_TRANSFER_FUNCTION_BIT_KHR:
            return "VK_RESOLVE_IMAGE_SKIP_TRANSFER_FUNCTION_BIT_KHR";
        case VK_RESOLVE_IMAGE_ENABLE_TRANSFER_FUNCTION_BIT_KHR:
            return "VK_RESOLVE_IMAGE_ENABLE_TRANSFER_FUNCTION_BIT_KHR";
        default:
            return "Unhandled VkResolveImageFlagBitsKHR";
    }
}

#ifdef __cplusplus
static inline std::string string_VkResolveImageFlagsKHR(VkResolveImageFlagsKHR input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkResolveImageFlagBitsKHR(static_cast<VkResolveImageFlagBitsKHR>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkResolveImageFlagsKHR(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkDebugReportFlagBitsEXT(VkDebugReportFlagBitsEXT input_value) {
    switch (input_value) {
        case VK_DEBUG_REPORT_INFORMATION_BIT_EXT:
            return "VK_DEBUG_REPORT_INFORMATION_BIT_EXT";
        case VK_DEBUG_REPORT_WARNING_BIT_EXT:
            return "VK_DEBUG_REPORT_WARNING_BIT_EXT";
        case VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT:
            return "VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT";
        case VK_DEBUG_REPORT_ERROR_BIT_EXT:
            return "VK_DEBUG_REPORT_ERROR_BIT_EXT";
        case VK_DEBUG_REPORT_DEBUG_BIT_EXT:
            return "VK_DEBUG_REPORT_DEBUG_BIT_EXT";
        default:
            return "Unhandled VkDebugReportFlagBitsEXT";
    }
}

#ifdef __cplusplus
static inline std::string string_VkDebugReportFlagsEXT(VkDebugReportFlagsEXT input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkDebugReportFlagBitsEXT(static_cast<VkDebugReportFlagBitsEXT>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkDebugReportFlagsEXT(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkExternalMemoryHandleTypeFlagBitsNV(VkExternalMemoryHandleTypeFlagBitsNV input_value) {
    switch (input_value) {
        case VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV:
            return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV";
        case VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV:
            return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV";
        case VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV:
            return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV";
        case VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV:
            return "VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV";
        default:
            return "Unhandled VkExternalMemoryHandleTypeFlagBitsNV";
    }
}

#ifdef __cplusplus
static inline std::string string_VkExternalMemoryHandleTypeFlagsNV(VkExternalMemoryHandleTypeFlagsNV input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkExternalMemoryHandleTypeFlagBitsNV(static_cast<VkExternalMemoryHandleTypeFlagBitsNV>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkExternalMemoryHandleTypeFlagsNV(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkExternalMemoryFeatureFlagBitsNV(VkExternalMemoryFeatureFlagBitsNV input_value) {
    switch (input_value) {
        case VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV:
            return "VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV";
        case VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV:
            return "VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV";
        case VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV:
            return "VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV";
        default:
            return "Unhandled VkExternalMemoryFeatureFlagBitsNV";
    }
}

#ifdef __cplusplus
static inline std::string string_VkExternalMemoryFeatureFlagsNV(VkExternalMemoryFeatureFlagsNV input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkExternalMemoryFeatureFlagBitsNV(static_cast<VkExternalMemoryFeatureFlagBitsNV>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkExternalMemoryFeatureFlagsNV(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkConditionalRenderingFlagBitsEXT(VkConditionalRenderingFlagBitsEXT input_value) {
    switch (input_value) {
        case VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT:
            return "VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT";
        default:
            return "Unhandled VkConditionalRenderingFlagBitsEXT";
    }
}

#ifdef __cplusplus
static inline std::string string_VkConditionalRenderingFlagsEXT(VkConditionalRenderingFlagsEXT input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkConditionalRenderingFlagBitsEXT(static_cast<VkConditionalRenderingFlagBitsEXT>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkConditionalRenderingFlagsEXT(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkSurfaceCounterFlagBitsEXT(VkSurfaceCounterFlagBitsEXT input_value) {
    switch (input_value) {
        case VK_SURFACE_COUNTER_VBLANK_BIT_EXT:
            return "VK_SURFACE_COUNTER_VBLANK_BIT_EXT";
        default:
            return "Unhandled VkSurfaceCounterFlagBitsEXT";
    }
}

#ifdef __cplusplus
static inline std::string string_VkSurfaceCounterFlagsEXT(VkSurfaceCounterFlagsEXT input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkSurfaceCounterFlagBitsEXT(static_cast<VkSurfaceCounterFlagBitsEXT>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkSurfaceCounterFlagsEXT(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkDebugUtilsMessageSeverityFlagBitsEXT(VkDebugUtilsMessageSeverityFlagBitsEXT input_value) {
    switch (input_value) {
        case VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT:
            return "VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT";
        case VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT:
            return "VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT";
        case VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT:
            return "VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT";
        case VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT:
            return "VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT";
        default:
            return "Unhandled VkDebugUtilsMessageSeverityFlagBitsEXT";
    }
}

#ifdef __cplusplus
static inline std::string string_VkDebugUtilsMessageSeverityFlagsEXT(VkDebugUtilsMessageSeverityFlagsEXT input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkDebugUtilsMessageSeverityFlagBitsEXT(static_cast<VkDebugUtilsMessageSeverityFlagBitsEXT>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkDebugUtilsMessageSeverityFlagsEXT(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkDebugUtilsMessageTypeFlagBitsEXT(VkDebugUtilsMessageTypeFlagBitsEXT input_value) {
    switch (input_value) {
        case VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT:
            return "VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT";
        case VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT:
            return "VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT";
        case VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT:
            return "VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT";
        case VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT:
            return "VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT";
        default:
            return "Unhandled VkDebugUtilsMessageTypeFlagBitsEXT";
    }
}

#ifdef __cplusplus
static inline std::string string_VkDebugUtilsMessageTypeFlagsEXT(VkDebugUtilsMessageTypeFlagsEXT input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkDebugUtilsMessageTypeFlagBitsEXT(static_cast<VkDebugUtilsMessageTypeFlagBitsEXT>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkDebugUtilsMessageTypeFlagsEXT(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkTensorViewCreateFlagBitsARM(uint64_t input_value) {
    if (input_value == VK_TENSOR_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_ARM) return "VK_TENSOR_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_ARM";
    return "Unhandled VkTensorViewCreateFlagBitsARM";
}

#ifdef __cplusplus
static inline std::string string_VkTensorViewCreateFlagsARM(VkTensorViewCreateFlagsARM input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkTensorViewCreateFlagBitsARM(static_cast<uint64_t>(1ULL << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkTensorViewCreateFlagsARM(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkSpirvResourceTypeFlagBitsEXT(VkSpirvResourceTypeFlagBitsEXT input_value) {
    switch (input_value) {
        case VK_SPIRV_RESOURCE_TYPE_SAMPLER_BIT_EXT:
            return "VK_SPIRV_RESOURCE_TYPE_SAMPLER_BIT_EXT";
        case VK_SPIRV_RESOURCE_TYPE_SAMPLED_IMAGE_BIT_EXT:
            return "VK_SPIRV_RESOURCE_TYPE_SAMPLED_IMAGE_BIT_EXT";
        case VK_SPIRV_RESOURCE_TYPE_READ_ONLY_IMAGE_BIT_EXT:
            return "VK_SPIRV_RESOURCE_TYPE_READ_ONLY_IMAGE_BIT_EXT";
        case VK_SPIRV_RESOURCE_TYPE_READ_WRITE_IMAGE_BIT_EXT:
            return "VK_SPIRV_RESOURCE_TYPE_READ_WRITE_IMAGE_BIT_EXT";
        case VK_SPIRV_RESOURCE_TYPE_COMBINED_SAMPLED_IMAGE_BIT_EXT:
            return "VK_SPIRV_RESOURCE_TYPE_COMBINED_SAMPLED_IMAGE_BIT_EXT";
        case VK_SPIRV_RESOURCE_TYPE_UNIFORM_BUFFER_BIT_EXT:
            return "VK_SPIRV_RESOURCE_TYPE_UNIFORM_BUFFER_BIT_EXT";
        case VK_SPIRV_RESOURCE_TYPE_READ_ONLY_STORAGE_BUFFER_BIT_EXT:
            return "VK_SPIRV_RESOURCE_TYPE_READ_ONLY_STORAGE_BUFFER_BIT_EXT";
        case VK_SPIRV_RESOURCE_TYPE_READ_WRITE_STORAGE_BUFFER_BIT_EXT:
            return "VK_SPIRV_RESOURCE_TYPE_READ_WRITE_STORAGE_BUFFER_BIT_EXT";
        case VK_SPIRV_RESOURCE_TYPE_ACCELERATION_STRUCTURE_BIT_EXT:
            return "VK_SPIRV_RESOURCE_TYPE_ACCELERATION_STRUCTURE_BIT_EXT";
        case VK_SPIRV_RESOURCE_TYPE_TENSOR_BIT_ARM:
            return "VK_SPIRV_RESOURCE_TYPE_TENSOR_BIT_ARM";
        default:
            return "Unhandled VkSpirvResourceTypeFlagBitsEXT";
    }
}

#ifdef __cplusplus
static inline std::string string_VkSpirvResourceTypeFlagsEXT(VkSpirvResourceTypeFlagsEXT input_value) {
    if (input_value == VK_SPIRV_RESOURCE_TYPE_ALL_EXT) { return "VK_SPIRV_RESOURCE_TYPE_ALL_EXT"; }
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkSpirvResourceTypeFlagBitsEXT(static_cast<VkSpirvResourceTypeFlagBitsEXT>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkSpirvResourceTypeFlagsEXT(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkGeometryFlagBitsKHR(VkGeometryFlagBitsKHR input_value) {
    switch (input_value) {
        case VK_GEOMETRY_OPAQUE_BIT_KHR:
            return "VK_GEOMETRY_OPAQUE_BIT_KHR";
        case VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR:
            return "VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR";
        default:
            return "Unhandled VkGeometryFlagBitsKHR";
    }
}

#ifdef __cplusplus
static inline std::string string_VkGeometryFlagsKHR(VkGeometryFlagsKHR input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkGeometryFlagBitsKHR(static_cast<VkGeometryFlagBitsKHR>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkGeometryFlagsKHR(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkGeometryInstanceFlagBitsKHR(VkGeometryInstanceFlagBitsKHR input_value) {
    switch (input_value) {
        case VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR:
            return "VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR";
        case VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR:
            return "VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR";
        case VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR:
            return "VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR";
        case VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR:
            return "VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR";
        case VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_BIT_EXT:
            return "VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_BIT_EXT";
        case VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_BIT_EXT:
            return "VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_BIT_EXT";
        default:
            return "Unhandled VkGeometryInstanceFlagBitsKHR";
    }
}

#ifdef __cplusplus
static inline std::string string_VkGeometryInstanceFlagsKHR(VkGeometryInstanceFlagsKHR input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkGeometryInstanceFlagBitsKHR(static_cast<VkGeometryInstanceFlagBitsKHR>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkGeometryInstanceFlagsKHR(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkBuildAccelerationStructureFlagBitsKHR(VkBuildAccelerationStructureFlagBitsKHR input_value) {
    switch (input_value) {
        case VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR:
            return "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR";
        case VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR:
            return "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR";
        case VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR:
            return "VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR";
        case VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR:
            return "VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR";
        case VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR:
            return "VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR";
        case VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV:
            return "VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV";
        case VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_BIT_EXT:
            return "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_BIT_EXT";
        case VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_BIT_EXT:
            return "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_BIT_EXT";
        case VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_BIT_EXT:
            return "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_BIT_EXT";
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_BIT_NV:
            return "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_BIT_NV";
#endif  // VK_ENABLE_BETA_EXTENSIONS
        case VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_BIT_KHR:
            return "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_BIT_KHR";
        case VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_CLUSTER_OPACITY_MICROMAPS_BIT_NV:
            return "VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_CLUSTER_OPACITY_MICROMAPS_BIT_NV";
        default:
            return "Unhandled VkBuildAccelerationStructureFlagBitsKHR";
    }
}

#ifdef __cplusplus
static inline std::string string_VkBuildAccelerationStructureFlagsKHR(VkBuildAccelerationStructureFlagsKHR input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkBuildAccelerationStructureFlagBitsKHR(static_cast<VkBuildAccelerationStructureFlagBitsKHR>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkBuildAccelerationStructureFlagsKHR(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkPresentStageFlagBitsEXT(VkPresentStageFlagBitsEXT input_value) {
    switch (input_value) {
        case VK_PRESENT_STAGE_QUEUE_OPERATIONS_END_BIT_EXT:
            return "VK_PRESENT_STAGE_QUEUE_OPERATIONS_END_BIT_EXT";
        case VK_PRESENT_STAGE_REQUEST_DEQUEUED_BIT_EXT:
            return "VK_PRESENT_STAGE_REQUEST_DEQUEUED_BIT_EXT";
        case VK_PRESENT_STAGE_IMAGE_FIRST_PIXEL_OUT_BIT_EXT:
            return "VK_PRESENT_STAGE_IMAGE_FIRST_PIXEL_OUT_BIT_EXT";
        case VK_PRESENT_STAGE_IMAGE_FIRST_PIXEL_VISIBLE_BIT_EXT:
            return "VK_PRESENT_STAGE_IMAGE_FIRST_PIXEL_VISIBLE_BIT_EXT";
        default:
            return "Unhandled VkPresentStageFlagBitsEXT";
    }
}

#ifdef __cplusplus
static inline std::string string_VkPresentStageFlagsEXT(VkPresentStageFlagsEXT input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkPresentStageFlagBitsEXT(static_cast<VkPresentStageFlagBitsEXT>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkPresentStageFlagsEXT(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkPastPresentationTimingFlagBitsEXT(VkPastPresentationTimingFlagBitsEXT input_value) {
    switch (input_value) {
        case VK_PAST_PRESENTATION_TIMING_ALLOW_PARTIAL_RESULTS_BIT_EXT:
            return "VK_PAST_PRESENTATION_TIMING_ALLOW_PARTIAL_RESULTS_BIT_EXT";
        case VK_PAST_PRESENTATION_TIMING_ALLOW_OUT_OF_ORDER_RESULTS_BIT_EXT:
            return "VK_PAST_PRESENTATION_TIMING_ALLOW_OUT_OF_ORDER_RESULTS_BIT_EXT";
        default:
            return "Unhandled VkPastPresentationTimingFlagBitsEXT";
    }
}

#ifdef __cplusplus
static inline std::string string_VkPastPresentationTimingFlagsEXT(VkPastPresentationTimingFlagsEXT input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkPastPresentationTimingFlagBitsEXT(static_cast<VkPastPresentationTimingFlagBitsEXT>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkPastPresentationTimingFlagsEXT(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkPresentTimingInfoFlagBitsEXT(VkPresentTimingInfoFlagBitsEXT input_value) {
    switch (input_value) {
        case VK_PRESENT_TIMING_INFO_PRESENT_AT_RELATIVE_TIME_BIT_EXT:
            return "VK_PRESENT_TIMING_INFO_PRESENT_AT_RELATIVE_TIME_BIT_EXT";
        case VK_PRESENT_TIMING_INFO_PRESENT_AT_NEAREST_REFRESH_CYCLE_BIT_EXT:
            return "VK_PRESENT_TIMING_INFO_PRESENT_AT_NEAREST_REFRESH_CYCLE_BIT_EXT";
        default:
            return "Unhandled VkPresentTimingInfoFlagBitsEXT";
    }
}

#ifdef __cplusplus
static inline std::string string_VkPresentTimingInfoFlagsEXT(VkPresentTimingInfoFlagsEXT input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkPresentTimingInfoFlagBitsEXT(static_cast<VkPresentTimingInfoFlagBitsEXT>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkPresentTimingInfoFlagsEXT(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkIndirectStateFlagBitsNV(VkIndirectStateFlagBitsNV input_value) {
    switch (input_value) {
        case VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV:
            return "VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV";
        default:
            return "Unhandled VkIndirectStateFlagBitsNV";
    }
}

#ifdef __cplusplus
static inline std::string string_VkIndirectStateFlagsNV(VkIndirectStateFlagsNV input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkIndirectStateFlagBitsNV(static_cast<VkIndirectStateFlagBitsNV>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkIndirectStateFlagsNV(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkIndirectCommandsLayoutUsageFlagBitsNV(VkIndirectCommandsLayoutUsageFlagBitsNV input_value) {
    switch (input_value) {
        case VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV:
            return "VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV";
        case VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV:
            return "VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV";
        case VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV:
            return "VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV";
        default:
            return "Unhandled VkIndirectCommandsLayoutUsageFlagBitsNV";
    }
}

#ifdef __cplusplus
static inline std::string string_VkIndirectCommandsLayoutUsageFlagsNV(VkIndirectCommandsLayoutUsageFlagsNV input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkIndirectCommandsLayoutUsageFlagBitsNV(static_cast<VkIndirectCommandsLayoutUsageFlagBitsNV>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkIndirectCommandsLayoutUsageFlagsNV(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkDeviceDiagnosticsConfigFlagBitsNV(VkDeviceDiagnosticsConfigFlagBitsNV input_value) {
    switch (input_value) {
        case VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV:
            return "VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV";
        case VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV:
            return "VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV";
        case VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV:
            return "VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV";
        case VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV:
            return "VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV";
        default:
            return "Unhandled VkDeviceDiagnosticsConfigFlagBitsNV";
    }
}

#ifdef __cplusplus
static inline std::string string_VkDeviceDiagnosticsConfigFlagsNV(VkDeviceDiagnosticsConfigFlagsNV input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkDeviceDiagnosticsConfigFlagBitsNV(static_cast<VkDeviceDiagnosticsConfigFlagBitsNV>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkDeviceDiagnosticsConfigFlagsNV(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkTileShadingRenderPassFlagBitsQCOM(VkTileShadingRenderPassFlagBitsQCOM input_value) {
    switch (input_value) {
        case VK_TILE_SHADING_RENDER_PASS_ENABLE_BIT_QCOM:
            return "VK_TILE_SHADING_RENDER_PASS_ENABLE_BIT_QCOM";
        case VK_TILE_SHADING_RENDER_PASS_PER_TILE_EXECUTION_BIT_QCOM:
            return "VK_TILE_SHADING_RENDER_PASS_PER_TILE_EXECUTION_BIT_QCOM";
        default:
            return "Unhandled VkTileShadingRenderPassFlagBitsQCOM";
    }
}

#ifdef __cplusplus
static inline std::string string_VkTileShadingRenderPassFlagsQCOM(VkTileShadingRenderPassFlagsQCOM input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkTileShadingRenderPassFlagBitsQCOM(static_cast<VkTileShadingRenderPassFlagBitsQCOM>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkTileShadingRenderPassFlagsQCOM(0)");
    return ret;
}
#endif // __cplusplus
#ifdef VK_USE_PLATFORM_METAL_EXT
static inline const char* string_VkExportMetalObjectTypeFlagBitsEXT(VkExportMetalObjectTypeFlagBitsEXT input_value) {
    switch (input_value) {
        case VK_EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT:
            return "VK_EXPORT_METAL_OBJECT_TYPE_METAL_DEVICE_BIT_EXT";
        case VK_EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT:
            return "VK_EXPORT_METAL_OBJECT_TYPE_METAL_COMMAND_QUEUE_BIT_EXT";
        case VK_EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT:
            return "VK_EXPORT_METAL_OBJECT_TYPE_METAL_BUFFER_BIT_EXT";
        case VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT:
            return "VK_EXPORT_METAL_OBJECT_TYPE_METAL_TEXTURE_BIT_EXT";
        case VK_EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT:
            return "VK_EXPORT_METAL_OBJECT_TYPE_METAL_IOSURFACE_BIT_EXT";
        case VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT:
            return "VK_EXPORT_METAL_OBJECT_TYPE_METAL_SHARED_EVENT_BIT_EXT";
        default:
            return "Unhandled VkExportMetalObjectTypeFlagBitsEXT";
    }
}

#ifdef __cplusplus
static inline std::string string_VkExportMetalObjectTypeFlagsEXT(VkExportMetalObjectTypeFlagsEXT input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkExportMetalObjectTypeFlagBitsEXT(static_cast<VkExportMetalObjectTypeFlagBitsEXT>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkExportMetalObjectTypeFlagsEXT(0)");
    return ret;
}
#endif // __cplusplus
#endif  // VK_USE_PLATFORM_METAL_EXT
static inline const char* string_VkGraphicsPipelineLibraryFlagBitsEXT(VkGraphicsPipelineLibraryFlagBitsEXT input_value) {
    switch (input_value) {
        case VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT:
            return "VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT";
        case VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT:
            return "VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT";
        case VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT:
            return "VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT";
        case VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT:
            return "VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT";
        default:
            return "Unhandled VkGraphicsPipelineLibraryFlagBitsEXT";
    }
}

#ifdef __cplusplus
static inline std::string string_VkGraphicsPipelineLibraryFlagsEXT(VkGraphicsPipelineLibraryFlagsEXT input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkGraphicsPipelineLibraryFlagBitsEXT(static_cast<VkGraphicsPipelineLibraryFlagBitsEXT>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkGraphicsPipelineLibraryFlagsEXT(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkImageCompressionFlagBitsEXT(VkImageCompressionFlagBitsEXT input_value) {
    switch (input_value) {
        case VK_IMAGE_COMPRESSION_DEFAULT_EXT:
            return "VK_IMAGE_COMPRESSION_DEFAULT_EXT";
        case VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT:
            return "VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT";
        case VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT:
            return "VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT";
        case VK_IMAGE_COMPRESSION_DISABLED_EXT:
            return "VK_IMAGE_COMPRESSION_DISABLED_EXT";
        default:
            return "Unhandled VkImageCompressionFlagBitsEXT";
    }
}

#ifdef __cplusplus
static inline std::string string_VkImageCompressionFlagsEXT(VkImageCompressionFlagsEXT input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkImageCompressionFlagBitsEXT(static_cast<VkImageCompressionFlagBitsEXT>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkImageCompressionFlagsEXT(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkImageCompressionFixedRateFlagBitsEXT(VkImageCompressionFixedRateFlagBitsEXT input_value) {
    switch (input_value) {
        case VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT:
            return "VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT";
        case VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT:
            return "VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT";
        case VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT:
            return "VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT";
        case VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT:
            return "VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT";
        case VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT:
            return "VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT";
        case VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT:
            return "VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT";
        case VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT:
            return "VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT";
        case VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT:
            return "VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT";
        case VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT:
            return "VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT";
        case VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT:
            return "VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT";
        case VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT:
            return "VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT";
        case VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT:
            return "VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT";
        case VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT:
            return "VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT";
        case VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT:
            return "VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT";
        case VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT:
            return "VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT";
        case VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT:
            return "VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT";
        case VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT:
            return "VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT";
        case VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT:
            return "VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT";
        case VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT:
            return "VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT";
        case VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT:
            return "VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT";
        case VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT:
            return "VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT";
        case VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT:
            return "VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT";
        case VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT:
            return "VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT";
        case VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT:
            return "VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT";
        case VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT:
            return "VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT";
        default:
            return "Unhandled VkImageCompressionFixedRateFlagBitsEXT";
    }
}

#ifdef __cplusplus
static inline std::string string_VkImageCompressionFixedRateFlagsEXT(VkImageCompressionFixedRateFlagsEXT input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkImageCompressionFixedRateFlagBitsEXT(static_cast<VkImageCompressionFixedRateFlagBitsEXT>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkImageCompressionFixedRateFlagsEXT(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkDeviceAddressBindingFlagBitsEXT(VkDeviceAddressBindingFlagBitsEXT input_value) {
    switch (input_value) {
        case VK_DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT:
            return "VK_DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT";
        default:
            return "Unhandled VkDeviceAddressBindingFlagBitsEXT";
    }
}

#ifdef __cplusplus
static inline std::string string_VkDeviceAddressBindingFlagsEXT(VkDeviceAddressBindingFlagsEXT input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkDeviceAddressBindingFlagBitsEXT(static_cast<VkDeviceAddressBindingFlagBitsEXT>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkDeviceAddressBindingFlagsEXT(0)");
    return ret;
}
#endif // __cplusplus
#ifdef VK_USE_PLATFORM_FUCHSIA
static inline const char* string_VkImageConstraintsInfoFlagBitsFUCHSIA(VkImageConstraintsInfoFlagBitsFUCHSIA input_value) {
    switch (input_value) {
        case VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_RARELY_FUCHSIA:
            return "VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_RARELY_FUCHSIA";
        case VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_OFTEN_FUCHSIA:
            return "VK_IMAGE_CONSTRAINTS_INFO_CPU_READ_OFTEN_FUCHSIA";
        case VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_RARELY_FUCHSIA:
            return "VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_RARELY_FUCHSIA";
        case VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_OFTEN_FUCHSIA:
            return "VK_IMAGE_CONSTRAINTS_INFO_CPU_WRITE_OFTEN_FUCHSIA";
        case VK_IMAGE_CONSTRAINTS_INFO_PROTECTED_OPTIONAL_FUCHSIA:
            return "VK_IMAGE_CONSTRAINTS_INFO_PROTECTED_OPTIONAL_FUCHSIA";
        default:
            return "Unhandled VkImageConstraintsInfoFlagBitsFUCHSIA";
    }
}

#ifdef __cplusplus
static inline std::string string_VkImageConstraintsInfoFlagsFUCHSIA(VkImageConstraintsInfoFlagsFUCHSIA input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkImageConstraintsInfoFlagBitsFUCHSIA(static_cast<VkImageConstraintsInfoFlagBitsFUCHSIA>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkImageConstraintsInfoFlagsFUCHSIA(0)");
    return ret;
}
#endif // __cplusplus
#endif  // VK_USE_PLATFORM_FUCHSIA
static inline const char* string_VkFrameBoundaryFlagBitsEXT(VkFrameBoundaryFlagBitsEXT input_value) {
    switch (input_value) {
        case VK_FRAME_BOUNDARY_FRAME_END_BIT_EXT:
            return "VK_FRAME_BOUNDARY_FRAME_END_BIT_EXT";
        default:
            return "Unhandled VkFrameBoundaryFlagBitsEXT";
    }
}

#ifdef __cplusplus
static inline std::string string_VkFrameBoundaryFlagsEXT(VkFrameBoundaryFlagsEXT input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkFrameBoundaryFlagBitsEXT(static_cast<VkFrameBoundaryFlagBitsEXT>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkFrameBoundaryFlagsEXT(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkVideoEncodeRgbModelConversionFlagBitsVALVE(VkVideoEncodeRgbModelConversionFlagBitsVALVE input_value) {
    switch (input_value) {
        case VK_VIDEO_ENCODE_RGB_MODEL_CONVERSION_RGB_IDENTITY_BIT_VALVE:
            return "VK_VIDEO_ENCODE_RGB_MODEL_CONVERSION_RGB_IDENTITY_BIT_VALVE";
        case VK_VIDEO_ENCODE_RGB_MODEL_CONVERSION_YCBCR_IDENTITY_BIT_VALVE:
            return "VK_VIDEO_ENCODE_RGB_MODEL_CONVERSION_YCBCR_IDENTITY_BIT_VALVE";
        case VK_VIDEO_ENCODE_RGB_MODEL_CONVERSION_YCBCR_709_BIT_VALVE:
            return "VK_VIDEO_ENCODE_RGB_MODEL_CONVERSION_YCBCR_709_BIT_VALVE";
        case VK_VIDEO_ENCODE_RGB_MODEL_CONVERSION_YCBCR_601_BIT_VALVE:
            return "VK_VIDEO_ENCODE_RGB_MODEL_CONVERSION_YCBCR_601_BIT_VALVE";
        case VK_VIDEO_ENCODE_RGB_MODEL_CONVERSION_YCBCR_2020_BIT_VALVE:
            return "VK_VIDEO_ENCODE_RGB_MODEL_CONVERSION_YCBCR_2020_BIT_VALVE";
        default:
            return "Unhandled VkVideoEncodeRgbModelConversionFlagBitsVALVE";
    }
}

#ifdef __cplusplus
static inline std::string string_VkVideoEncodeRgbModelConversionFlagsVALVE(VkVideoEncodeRgbModelConversionFlagsVALVE input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkVideoEncodeRgbModelConversionFlagBitsVALVE(static_cast<VkVideoEncodeRgbModelConversionFlagBitsVALVE>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkVideoEncodeRgbModelConversionFlagsVALVE(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkVideoEncodeRgbRangeCompressionFlagBitsVALVE(VkVideoEncodeRgbRangeCompressionFlagBitsVALVE input_value) {
    switch (input_value) {
        case VK_VIDEO_ENCODE_RGB_RANGE_COMPRESSION_FULL_RANGE_BIT_VALVE:
            return "VK_VIDEO_ENCODE_RGB_RANGE_COMPRESSION_FULL_RANGE_BIT_VALVE";
        case VK_VIDEO_ENCODE_RGB_RANGE_COMPRESSION_NARROW_RANGE_BIT_VALVE:
            return "VK_VIDEO_ENCODE_RGB_RANGE_COMPRESSION_NARROW_RANGE_BIT_VALVE";
        default:
            return "Unhandled VkVideoEncodeRgbRangeCompressionFlagBitsVALVE";
    }
}

#ifdef __cplusplus
static inline std::string string_VkVideoEncodeRgbRangeCompressionFlagsVALVE(VkVideoEncodeRgbRangeCompressionFlagsVALVE input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkVideoEncodeRgbRangeCompressionFlagBitsVALVE(static_cast<VkVideoEncodeRgbRangeCompressionFlagBitsVALVE>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkVideoEncodeRgbRangeCompressionFlagsVALVE(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkVideoEncodeRgbChromaOffsetFlagBitsVALVE(VkVideoEncodeRgbChromaOffsetFlagBitsVALVE input_value) {
    switch (input_value) {
        case VK_VIDEO_ENCODE_RGB_CHROMA_OFFSET_COSITED_EVEN_BIT_VALVE:
            return "VK_VIDEO_ENCODE_RGB_CHROMA_OFFSET_COSITED_EVEN_BIT_VALVE";
        case VK_VIDEO_ENCODE_RGB_CHROMA_OFFSET_MIDPOINT_BIT_VALVE:
            return "VK_VIDEO_ENCODE_RGB_CHROMA_OFFSET_MIDPOINT_BIT_VALVE";
        default:
            return "Unhandled VkVideoEncodeRgbChromaOffsetFlagBitsVALVE";
    }
}

#ifdef __cplusplus
static inline std::string string_VkVideoEncodeRgbChromaOffsetFlagsVALVE(VkVideoEncodeRgbChromaOffsetFlagsVALVE input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkVideoEncodeRgbChromaOffsetFlagBitsVALVE(static_cast<VkVideoEncodeRgbChromaOffsetFlagBitsVALVE>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkVideoEncodeRgbChromaOffsetFlagsVALVE(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkBuildMicromapFlagBitsEXT(VkBuildMicromapFlagBitsEXT input_value) {
    switch (input_value) {
        case VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT:
            return "VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT";
        case VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT:
            return "VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT";
        case VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT:
            return "VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT";
        default:
            return "Unhandled VkBuildMicromapFlagBitsEXT";
    }
}

#ifdef __cplusplus
static inline std::string string_VkBuildMicromapFlagsEXT(VkBuildMicromapFlagsEXT input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkBuildMicromapFlagBitsEXT(static_cast<VkBuildMicromapFlagBitsEXT>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkBuildMicromapFlagsEXT(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkMicromapCreateFlagBitsEXT(VkMicromapCreateFlagBitsEXT input_value) {
    switch (input_value) {
        case VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT:
            return "VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT";
        default:
            return "Unhandled VkMicromapCreateFlagBitsEXT";
    }
}

#ifdef __cplusplus
static inline std::string string_VkMicromapCreateFlagsEXT(VkMicromapCreateFlagsEXT input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkMicromapCreateFlagBitsEXT(static_cast<VkMicromapCreateFlagBitsEXT>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkMicromapCreateFlagsEXT(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkPhysicalDeviceSchedulingControlsFlagBitsARM(uint64_t input_value) {
    if (input_value == VK_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_SHADER_CORE_COUNT_ARM) return "VK_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_SHADER_CORE_COUNT_ARM";
    return "Unhandled VkPhysicalDeviceSchedulingControlsFlagBitsARM";
}

#ifdef __cplusplus
static inline std::string string_VkPhysicalDeviceSchedulingControlsFlagsARM(VkPhysicalDeviceSchedulingControlsFlagsARM input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkPhysicalDeviceSchedulingControlsFlagBitsARM(static_cast<uint64_t>(1ULL << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkPhysicalDeviceSchedulingControlsFlagsARM(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkMemoryDecompressionMethodFlagBitsEXT(uint64_t input_value) {
    if (input_value == VK_MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_EXT) return "VK_MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_EXT";
    return "Unhandled VkMemoryDecompressionMethodFlagBitsEXT";
}

#ifdef __cplusplus
static inline std::string string_VkMemoryDecompressionMethodFlagsEXT(VkMemoryDecompressionMethodFlagsEXT input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkMemoryDecompressionMethodFlagBitsEXT(static_cast<uint64_t>(1ULL << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkMemoryDecompressionMethodFlagsEXT(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkTensorCreateFlagBitsARM(uint64_t input_value) {
    if (input_value == VK_TENSOR_CREATE_MUTABLE_FORMAT_BIT_ARM) return "VK_TENSOR_CREATE_MUTABLE_FORMAT_BIT_ARM";
    if (input_value == VK_TENSOR_CREATE_PROTECTED_BIT_ARM) return "VK_TENSOR_CREATE_PROTECTED_BIT_ARM";
    if (input_value == VK_TENSOR_CREATE_DESCRIPTOR_HEAP_CAPTURE_REPLAY_BIT_ARM) return "VK_TENSOR_CREATE_DESCRIPTOR_HEAP_CAPTURE_REPLAY_BIT_ARM";
    if (input_value == VK_TENSOR_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_ARM) return "VK_TENSOR_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_ARM";
    return "Unhandled VkTensorCreateFlagBitsARM";
}

#ifdef __cplusplus
static inline std::string string_VkTensorCreateFlagsARM(VkTensorCreateFlagsARM input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkTensorCreateFlagBitsARM(static_cast<uint64_t>(1ULL << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkTensorCreateFlagsARM(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkTensorUsageFlagBitsARM(uint64_t input_value) {
    if (input_value == VK_TENSOR_USAGE_SHADER_BIT_ARM) return "VK_TENSOR_USAGE_SHADER_BIT_ARM";
    if (input_value == VK_TENSOR_USAGE_TRANSFER_SRC_BIT_ARM) return "VK_TENSOR_USAGE_TRANSFER_SRC_BIT_ARM";
    if (input_value == VK_TENSOR_USAGE_TRANSFER_DST_BIT_ARM) return "VK_TENSOR_USAGE_TRANSFER_DST_BIT_ARM";
    if (input_value == VK_TENSOR_USAGE_IMAGE_ALIASING_BIT_ARM) return "VK_TENSOR_USAGE_IMAGE_ALIASING_BIT_ARM";
    if (input_value == VK_TENSOR_USAGE_DATA_GRAPH_BIT_ARM) return "VK_TENSOR_USAGE_DATA_GRAPH_BIT_ARM";
    return "Unhandled VkTensorUsageFlagBitsARM";
}

#ifdef __cplusplus
static inline std::string string_VkTensorUsageFlagsARM(VkTensorUsageFlagsARM input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkTensorUsageFlagBitsARM(static_cast<uint64_t>(1ULL << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkTensorUsageFlagsARM(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkOpticalFlowGridSizeFlagBitsNV(VkOpticalFlowGridSizeFlagBitsNV input_value) {
    switch (input_value) {
        case VK_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV:
            return "VK_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV";
        case VK_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV:
            return "VK_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV";
        case VK_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV:
            return "VK_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV";
        case VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV:
            return "VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV";
        case VK_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV:
            return "VK_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV";
        default:
            return "Unhandled VkOpticalFlowGridSizeFlagBitsNV";
    }
}

#ifdef __cplusplus
static inline std::string string_VkOpticalFlowGridSizeFlagsNV(VkOpticalFlowGridSizeFlagsNV input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkOpticalFlowGridSizeFlagBitsNV(static_cast<VkOpticalFlowGridSizeFlagBitsNV>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkOpticalFlowGridSizeFlagsNV(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkOpticalFlowUsageFlagBitsNV(VkOpticalFlowUsageFlagBitsNV input_value) {
    switch (input_value) {
        case VK_OPTICAL_FLOW_USAGE_UNKNOWN_NV:
            return "VK_OPTICAL_FLOW_USAGE_UNKNOWN_NV";
        case VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV:
            return "VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV";
        case VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV:
            return "VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV";
        case VK_OPTICAL_FLOW_USAGE_HINT_BIT_NV:
            return "VK_OPTICAL_FLOW_USAGE_HINT_BIT_NV";
        case VK_OPTICAL_FLOW_USAGE_COST_BIT_NV:
            return "VK_OPTICAL_FLOW_USAGE_COST_BIT_NV";
        case VK_OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV:
            return "VK_OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV";
        default:
            return "Unhandled VkOpticalFlowUsageFlagBitsNV";
    }
}

#ifdef __cplusplus
static inline std::string string_VkOpticalFlowUsageFlagsNV(VkOpticalFlowUsageFlagsNV input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkOpticalFlowUsageFlagBitsNV(static_cast<VkOpticalFlowUsageFlagBitsNV>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkOpticalFlowUsageFlagsNV(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkOpticalFlowSessionCreateFlagBitsNV(VkOpticalFlowSessionCreateFlagBitsNV input_value) {
    switch (input_value) {
        case VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV:
            return "VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV";
        case VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV:
            return "VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV";
        case VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV:
            return "VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV";
        case VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV:
            return "VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV";
        case VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV:
            return "VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV";
        default:
            return "Unhandled VkOpticalFlowSessionCreateFlagBitsNV";
    }
}

#ifdef __cplusplus
static inline std::string string_VkOpticalFlowSessionCreateFlagsNV(VkOpticalFlowSessionCreateFlagsNV input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkOpticalFlowSessionCreateFlagBitsNV(static_cast<VkOpticalFlowSessionCreateFlagBitsNV>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkOpticalFlowSessionCreateFlagsNV(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkOpticalFlowExecuteFlagBitsNV(VkOpticalFlowExecuteFlagBitsNV input_value) {
    switch (input_value) {
        case VK_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV:
            return "VK_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV";
        default:
            return "Unhandled VkOpticalFlowExecuteFlagBitsNV";
    }
}

#ifdef __cplusplus
static inline std::string string_VkOpticalFlowExecuteFlagsNV(VkOpticalFlowExecuteFlagsNV input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkOpticalFlowExecuteFlagBitsNV(static_cast<VkOpticalFlowExecuteFlagBitsNV>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkOpticalFlowExecuteFlagsNV(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkShaderCreateFlagBitsEXT(VkShaderCreateFlagBitsEXT input_value) {
    switch (input_value) {
        case VK_SHADER_CREATE_LINK_STAGE_BIT_EXT:
            return "VK_SHADER_CREATE_LINK_STAGE_BIT_EXT";
        case VK_SHADER_CREATE_DESCRIPTOR_HEAP_BIT_EXT:
            return "VK_SHADER_CREATE_DESCRIPTOR_HEAP_BIT_EXT";
        case VK_SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT:
            return "VK_SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT";
        case VK_SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT:
            return "VK_SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT";
        case VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT:
            return "VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT";
        case VK_SHADER_CREATE_DISPATCH_BASE_BIT_EXT:
            return "VK_SHADER_CREATE_DISPATCH_BASE_BIT_EXT";
        case VK_SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT:
            return "VK_SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT";
        case VK_SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT:
            return "VK_SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT";
        case VK_SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT:
            return "VK_SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT";
        case VK_SHADER_CREATE_64_BIT_INDEXING_BIT_EXT:
            return "VK_SHADER_CREATE_64_BIT_INDEXING_BIT_EXT";
        default:
            return "Unhandled VkShaderCreateFlagBitsEXT";
    }
}

#ifdef __cplusplus
static inline std::string string_VkShaderCreateFlagsEXT(VkShaderCreateFlagsEXT input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkShaderCreateFlagBitsEXT(static_cast<VkShaderCreateFlagBitsEXT>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkShaderCreateFlagsEXT(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkDataGraphPipelineSessionCreateFlagBitsARM(uint64_t input_value) {
    if (input_value == VK_DATA_GRAPH_PIPELINE_SESSION_CREATE_PROTECTED_BIT_ARM) return "VK_DATA_GRAPH_PIPELINE_SESSION_CREATE_PROTECTED_BIT_ARM";
    return "Unhandled VkDataGraphPipelineSessionCreateFlagBitsARM";
}

#ifdef __cplusplus
static inline std::string string_VkDataGraphPipelineSessionCreateFlagsARM(VkDataGraphPipelineSessionCreateFlagsARM input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkDataGraphPipelineSessionCreateFlagBitsARM(static_cast<uint64_t>(1ULL << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkDataGraphPipelineSessionCreateFlagsARM(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkClusterAccelerationStructureAddressResolutionFlagBitsNV(VkClusterAccelerationStructureAddressResolutionFlagBitsNV input_value) {
    switch (input_value) {
        case VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_NONE_NV:
            return "VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_NONE_NV";
        case VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_DST_IMPLICIT_DATA_BIT_NV:
            return "VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_DST_IMPLICIT_DATA_BIT_NV";
        case VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_SCRATCH_DATA_BIT_NV:
            return "VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_SCRATCH_DATA_BIT_NV";
        case VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_DST_ADDRESS_ARRAY_BIT_NV:
            return "VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_DST_ADDRESS_ARRAY_BIT_NV";
        case VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_DST_SIZES_ARRAY_BIT_NV:
            return "VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_DST_SIZES_ARRAY_BIT_NV";
        case VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_SRC_INFOS_ARRAY_BIT_NV:
            return "VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_SRC_INFOS_ARRAY_BIT_NV";
        case VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_SRC_INFOS_COUNT_BIT_NV:
            return "VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_SRC_INFOS_COUNT_BIT_NV";
        default:
            return "Unhandled VkClusterAccelerationStructureAddressResolutionFlagBitsNV";
    }
}

#ifdef __cplusplus
static inline std::string string_VkClusterAccelerationStructureAddressResolutionFlagsNV(VkClusterAccelerationStructureAddressResolutionFlagsNV input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkClusterAccelerationStructureAddressResolutionFlagBitsNV(static_cast<VkClusterAccelerationStructureAddressResolutionFlagBitsNV>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkClusterAccelerationStructureAddressResolutionFlagsNV(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkClusterAccelerationStructureClusterFlagBitsNV(VkClusterAccelerationStructureClusterFlagBitsNV input_value) {
    switch (input_value) {
        case VK_CLUSTER_ACCELERATION_STRUCTURE_CLUSTER_ALLOW_DISABLE_OPACITY_MICROMAPS_NV:
            return "VK_CLUSTER_ACCELERATION_STRUCTURE_CLUSTER_ALLOW_DISABLE_OPACITY_MICROMAPS_NV";
        default:
            return "Unhandled VkClusterAccelerationStructureClusterFlagBitsNV";
    }
}

#ifdef __cplusplus
static inline std::string string_VkClusterAccelerationStructureClusterFlagsNV(VkClusterAccelerationStructureClusterFlagsNV input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkClusterAccelerationStructureClusterFlagBitsNV(static_cast<VkClusterAccelerationStructureClusterFlagBitsNV>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkClusterAccelerationStructureClusterFlagsNV(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkClusterAccelerationStructureGeometryFlagBitsNV(VkClusterAccelerationStructureGeometryFlagBitsNV input_value) {
    switch (input_value) {
        case VK_CLUSTER_ACCELERATION_STRUCTURE_GEOMETRY_CULL_DISABLE_BIT_NV:
            return "VK_CLUSTER_ACCELERATION_STRUCTURE_GEOMETRY_CULL_DISABLE_BIT_NV";
        case VK_CLUSTER_ACCELERATION_STRUCTURE_GEOMETRY_NO_DUPLICATE_ANYHIT_INVOCATION_BIT_NV:
            return "VK_CLUSTER_ACCELERATION_STRUCTURE_GEOMETRY_NO_DUPLICATE_ANYHIT_INVOCATION_BIT_NV";
        case VK_CLUSTER_ACCELERATION_STRUCTURE_GEOMETRY_OPAQUE_BIT_NV:
            return "VK_CLUSTER_ACCELERATION_STRUCTURE_GEOMETRY_OPAQUE_BIT_NV";
        default:
            return "Unhandled VkClusterAccelerationStructureGeometryFlagBitsNV";
    }
}

#ifdef __cplusplus
static inline std::string string_VkClusterAccelerationStructureGeometryFlagsNV(VkClusterAccelerationStructureGeometryFlagsNV input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkClusterAccelerationStructureGeometryFlagBitsNV(static_cast<VkClusterAccelerationStructureGeometryFlagBitsNV>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkClusterAccelerationStructureGeometryFlagsNV(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkClusterAccelerationStructureIndexFormatFlagBitsNV(VkClusterAccelerationStructureIndexFormatFlagBitsNV input_value) {
    switch (input_value) {
        case VK_CLUSTER_ACCELERATION_STRUCTURE_INDEX_FORMAT_8BIT_NV:
            return "VK_CLUSTER_ACCELERATION_STRUCTURE_INDEX_FORMAT_8BIT_NV";
        case VK_CLUSTER_ACCELERATION_STRUCTURE_INDEX_FORMAT_16BIT_NV:
            return "VK_CLUSTER_ACCELERATION_STRUCTURE_INDEX_FORMAT_16BIT_NV";
        case VK_CLUSTER_ACCELERATION_STRUCTURE_INDEX_FORMAT_32BIT_NV:
            return "VK_CLUSTER_ACCELERATION_STRUCTURE_INDEX_FORMAT_32BIT_NV";
        default:
            return "Unhandled VkClusterAccelerationStructureIndexFormatFlagBitsNV";
    }
}

#ifdef __cplusplus
static inline std::string string_VkClusterAccelerationStructureIndexFormatFlagsNV(VkClusterAccelerationStructureIndexFormatFlagsNV input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkClusterAccelerationStructureIndexFormatFlagBitsNV(static_cast<VkClusterAccelerationStructureIndexFormatFlagBitsNV>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkClusterAccelerationStructureIndexFormatFlagsNV(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkPartitionedAccelerationStructureInstanceFlagBitsNV(VkPartitionedAccelerationStructureInstanceFlagBitsNV input_value) {
    switch (input_value) {
        case VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_TRIANGLE_FACING_CULL_DISABLE_BIT_NV:
            return "VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_TRIANGLE_FACING_CULL_DISABLE_BIT_NV";
        case VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_TRIANGLE_FLIP_FACING_BIT_NV:
            return "VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_TRIANGLE_FLIP_FACING_BIT_NV";
        case VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_FORCE_OPAQUE_BIT_NV:
            return "VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_FORCE_OPAQUE_BIT_NV";
        case VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_FORCE_NO_OPAQUE_BIT_NV:
            return "VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_FORCE_NO_OPAQUE_BIT_NV";
        case VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_ENABLE_EXPLICIT_BOUNDING_BOX_NV:
            return "VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_ENABLE_EXPLICIT_BOUNDING_BOX_NV";
        default:
            return "Unhandled VkPartitionedAccelerationStructureInstanceFlagBitsNV";
    }
}

#ifdef __cplusplus
static inline std::string string_VkPartitionedAccelerationStructureInstanceFlagsNV(VkPartitionedAccelerationStructureInstanceFlagsNV input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkPartitionedAccelerationStructureInstanceFlagBitsNV(static_cast<VkPartitionedAccelerationStructureInstanceFlagBitsNV>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkPartitionedAccelerationStructureInstanceFlagsNV(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkIndirectCommandsInputModeFlagBitsEXT(VkIndirectCommandsInputModeFlagBitsEXT input_value) {
    switch (input_value) {
        case VK_INDIRECT_COMMANDS_INPUT_MODE_VULKAN_INDEX_BUFFER_EXT:
            return "VK_INDIRECT_COMMANDS_INPUT_MODE_VULKAN_INDEX_BUFFER_EXT";
        case VK_INDIRECT_COMMANDS_INPUT_MODE_DXGI_INDEX_BUFFER_EXT:
            return "VK_INDIRECT_COMMANDS_INPUT_MODE_DXGI_INDEX_BUFFER_EXT";
        default:
            return "Unhandled VkIndirectCommandsInputModeFlagBitsEXT";
    }
}

#ifdef __cplusplus
static inline std::string string_VkIndirectCommandsInputModeFlagsEXT(VkIndirectCommandsInputModeFlagsEXT input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkIndirectCommandsInputModeFlagBitsEXT(static_cast<VkIndirectCommandsInputModeFlagBitsEXT>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkIndirectCommandsInputModeFlagsEXT(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkIndirectCommandsLayoutUsageFlagBitsEXT(VkIndirectCommandsLayoutUsageFlagBitsEXT input_value) {
    switch (input_value) {
        case VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_EXT:
            return "VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_EXT";
        case VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_EXT:
            return "VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_EXT";
        default:
            return "Unhandled VkIndirectCommandsLayoutUsageFlagBitsEXT";
    }
}

#ifdef __cplusplus
static inline std::string string_VkIndirectCommandsLayoutUsageFlagsEXT(VkIndirectCommandsLayoutUsageFlagsEXT input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkIndirectCommandsLayoutUsageFlagBitsEXT(static_cast<VkIndirectCommandsLayoutUsageFlagBitsEXT>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkIndirectCommandsLayoutUsageFlagsEXT(0)");
    return ret;
}
#endif // __cplusplus
static inline const char* string_VkAccelerationStructureCreateFlagBitsKHR(VkAccelerationStructureCreateFlagBitsKHR input_value) {
    switch (input_value) {
        case VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR:
            return "VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR";
        case VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT:
            return "VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT";
        case VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV:
            return "VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV";
        default:
            return "Unhandled VkAccelerationStructureCreateFlagBitsKHR";
    }
}

#ifdef __cplusplus
static inline std::string string_VkAccelerationStructureCreateFlagsKHR(VkAccelerationStructureCreateFlagsKHR input_value) {
    std::string ret;
    int index = 0;
    while(input_value) {
        if (input_value & 1) {
            if( !ret.empty()) ret.append("|");
            ret.append(string_VkAccelerationStructureCreateFlagBitsKHR(static_cast<VkAccelerationStructureCreateFlagBitsKHR>(1U << index)));
        }
        ++index;
        input_value >>= 1;
    }
    if (ret.empty()) ret.append("VkAccelerationStructureCreateFlagsKHR(0)");
    return ret;
}
#endif // __cplusplus
// clang-format on

// Same thing as string_VkStructureType, but prints out the API name
static inline const char* string_VkStructureName(VkStructureType input_value) {
    switch (input_value) {
        case VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER:
            return "VkBufferMemoryBarrier";
        case VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER:
            return "VkImageMemoryBarrier";
        case VK_STRUCTURE_TYPE_MEMORY_BARRIER:
            return "VkMemoryBarrier";
        case VK_STRUCTURE_TYPE_APPLICATION_INFO:
            return "VkApplicationInfo";
        case VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO:
            return "VkInstanceCreateInfo";
        case VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO:
            return "VkDeviceQueueCreateInfo";
        case VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO:
            return "VkDeviceCreateInfo";
        case VK_STRUCTURE_TYPE_SUBMIT_INFO:
            return "VkSubmitInfo";
        case VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE:
            return "VkMappedMemoryRange";
        case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO:
            return "VkMemoryAllocateInfo";
        case VK_STRUCTURE_TYPE_BIND_SPARSE_INFO:
            return "VkBindSparseInfo";
        case VK_STRUCTURE_TYPE_FENCE_CREATE_INFO:
            return "VkFenceCreateInfo";
        case VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO:
            return "VkSemaphoreCreateInfo";
        case VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO:
            return "VkQueryPoolCreateInfo";
        case VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO:
            return "VkBufferCreateInfo";
        case VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO:
            return "VkImageCreateInfo";
        case VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO:
            return "VkImageViewCreateInfo";
        case VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO:
            return "VkCommandPoolCreateInfo";
        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO:
            return "VkCommandBufferAllocateInfo";
        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO:
            return "VkCommandBufferInheritanceInfo";
        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO:
            return "VkCommandBufferBeginInfo";
        case VK_STRUCTURE_TYPE_EVENT_CREATE_INFO:
            return "VkEventCreateInfo";
        case VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO:
            return "VkBufferViewCreateInfo";
        case VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO:
            return "VkShaderModuleCreateInfo";
        case VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO:
            return "VkPipelineCacheCreateInfo";
        case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO:
            return "VkPipelineShaderStageCreateInfo";
        case VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO:
            return "VkComputePipelineCreateInfo";
        case VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO:
            return "VkPipelineLayoutCreateInfo";
        case VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO:
            return "VkSamplerCreateInfo";
        case VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET:
            return "VkCopyDescriptorSet";
        case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO:
            return "VkDescriptorPoolCreateInfo";
        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO:
            return "VkDescriptorSetAllocateInfo";
        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO:
            return "VkDescriptorSetLayoutCreateInfo";
        case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET:
            return "VkWriteDescriptorSet";
        case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO:
            return "VkPipelineVertexInputStateCreateInfo";
        case VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO:
            return "VkPipelineInputAssemblyStateCreateInfo";
        case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO:
            return "VkPipelineTessellationStateCreateInfo";
        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO:
            return "VkPipelineViewportStateCreateInfo";
        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO:
            return "VkPipelineRasterizationStateCreateInfo";
        case VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO:
            return "VkPipelineMultisampleStateCreateInfo";
        case VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO:
            return "VkPipelineDepthStencilStateCreateInfo";
        case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO:
            return "VkPipelineColorBlendStateCreateInfo";
        case VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO:
            return "VkPipelineDynamicStateCreateInfo";
        case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO:
            return "VkGraphicsPipelineCreateInfo";
        case VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO:
            return "VkFramebufferCreateInfo";
        case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO:
            return "VkRenderPassCreateInfo";
        case VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO:
            return "VkRenderPassBeginInfo";
        case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO:
            return "VkBindBufferMemoryInfo";
        case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO:
            return "VkBindImageMemoryInfo";
        case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS:
            return "VkMemoryDedicatedRequirements";
        case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO:
            return "VkMemoryDedicatedAllocateInfo";
        case VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO:
            return "VkMemoryAllocateFlagsInfo";
        case VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO:
            return "VkDeviceGroupCommandBufferBeginInfo";
        case VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO:
            return "VkDeviceGroupSubmitInfo";
        case VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO:
            return "VkDeviceGroupBindSparseInfo";
        case VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO:
            return "VkBindBufferMemoryDeviceGroupInfo";
        case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO:
            return "VkBindImageMemoryDeviceGroupInfo";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES:
            return "VkPhysicalDeviceGroupProperties";
        case VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO:
            return "VkDeviceGroupDeviceCreateInfo";
        case VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2:
            return "VkBufferMemoryRequirementsInfo2";
        case VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2:
            return "VkImageMemoryRequirementsInfo2";
        case VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2:
            return "VkImageSparseMemoryRequirementsInfo2";
        case VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2:
            return "VkMemoryRequirements2";
        case VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2:
            return "VkSparseImageMemoryRequirements2";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2:
            return "VkPhysicalDeviceFeatures2";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2:
            return "VkPhysicalDeviceProperties2";
        case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2:
            return "VkFormatProperties2";
        case VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2:
            return "VkImageFormatProperties2";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2:
            return "VkPhysicalDeviceImageFormatInfo2";
        case VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2:
            return "VkQueueFamilyProperties2";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2:
            return "VkPhysicalDeviceMemoryProperties2";
        case VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2:
            return "VkSparseImageFormatProperties2";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2:
            return "VkPhysicalDeviceSparseImageFormatInfo2";
        case VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO:
            return "VkImageViewUsageCreateInfo";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES:
            return "VkPhysicalDeviceProtectedMemoryFeatures";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES:
            return "VkPhysicalDeviceProtectedMemoryProperties";
        case VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2:
            return "VkDeviceQueueInfo2";
        case VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO:
            return "VkProtectedSubmitInfo";
        case VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO:
            return "VkBindImagePlaneMemoryInfo";
        case VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO:
            return "VkImagePlaneMemoryRequirementsInfo";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO:
            return "VkPhysicalDeviceExternalImageFormatInfo";
        case VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES:
            return "VkExternalImageFormatProperties";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO:
            return "VkPhysicalDeviceExternalBufferInfo";
        case VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES:
            return "VkExternalBufferProperties";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES:
            return "VkPhysicalDeviceIDProperties";
        case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO:
            return "VkExternalMemoryImageCreateInfo";
        case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO:
            return "VkExternalMemoryBufferCreateInfo";
        case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO:
            return "VkExportMemoryAllocateInfo";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO:
            return "VkPhysicalDeviceExternalFenceInfo";
        case VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES:
            return "VkExternalFenceProperties";
        case VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO:
            return "VkExportFenceCreateInfo";
        case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO:
            return "VkExportSemaphoreCreateInfo";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO:
            return "VkPhysicalDeviceExternalSemaphoreInfo";
        case VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES:
            return "VkExternalSemaphoreProperties";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES:
            return "VkPhysicalDeviceSubgroupProperties";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES:
            return "VkPhysicalDevice16BitStorageFeatures";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES:
            return "VkPhysicalDeviceVariablePointersFeatures";
        case VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO:
            return "VkDescriptorUpdateTemplateCreateInfo";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES:
            return "VkPhysicalDeviceMaintenance3Properties";
        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT:
            return "VkDescriptorSetLayoutSupport";
        case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO:
            return "VkSamplerYcbcrConversionCreateInfo";
        case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO:
            return "VkSamplerYcbcrConversionInfo";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES:
            return "VkPhysicalDeviceSamplerYcbcrConversionFeatures";
        case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES:
            return "VkSamplerYcbcrConversionImageFormatProperties";
        case VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO:
            return "VkDeviceGroupRenderPassBeginInfo";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES:
            return "VkPhysicalDevicePointClippingProperties";
        case VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO:
            return "VkRenderPassInputAttachmentAspectCreateInfo";
        case VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO:
            return "VkPipelineTessellationDomainOriginStateCreateInfo";
        case VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO:
            return "VkRenderPassMultiviewCreateInfo";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES:
            return "VkPhysicalDeviceMultiviewFeatures";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES:
            return "VkPhysicalDeviceMultiviewProperties";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES:
            return "VkPhysicalDeviceShaderDrawParametersFeatures";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES:
            return "VkPhysicalDeviceVulkan11Features";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES:
            return "VkPhysicalDeviceVulkan11Properties";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES:
            return "VkPhysicalDeviceVulkan12Features";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES:
            return "VkPhysicalDeviceVulkan12Properties";
        case VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO:
            return "VkImageFormatListCreateInfo";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES:
            return "VkPhysicalDeviceDriverProperties";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES:
            return "VkPhysicalDeviceVulkanMemoryModelFeatures";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES:
            return "VkPhysicalDeviceHostQueryResetFeatures";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES:
            return "VkPhysicalDeviceTimelineSemaphoreFeatures";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES:
            return "VkPhysicalDeviceTimelineSemaphoreProperties";
        case VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO:
            return "VkSemaphoreTypeCreateInfo";
        case VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO:
            return "VkTimelineSemaphoreSubmitInfo";
        case VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO:
            return "VkSemaphoreWaitInfo";
        case VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO:
            return "VkSemaphoreSignalInfo";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES:
            return "VkPhysicalDeviceBufferDeviceAddressFeatures";
        case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO:
            return "VkBufferDeviceAddressInfo";
        case VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO:
            return "VkBufferOpaqueCaptureAddressCreateInfo";
        case VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO:
            return "VkMemoryOpaqueCaptureAddressAllocateInfo";
        case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO:
            return "VkDeviceMemoryOpaqueCaptureAddressInfo";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES:
            return "VkPhysicalDevice8BitStorageFeatures";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES:
            return "VkPhysicalDeviceShaderAtomicInt64Features";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES:
            return "VkPhysicalDeviceShaderFloat16Int8Features";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES:
            return "VkPhysicalDeviceFloatControlsProperties";
        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO:
            return "VkDescriptorSetLayoutBindingFlagsCreateInfo";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES:
            return "VkPhysicalDeviceDescriptorIndexingFeatures";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES:
            return "VkPhysicalDeviceDescriptorIndexingProperties";
        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO:
            return "VkDescriptorSetVariableDescriptorCountAllocateInfo";
        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT:
            return "VkDescriptorSetVariableDescriptorCountLayoutSupport";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES:
            return "VkPhysicalDeviceScalarBlockLayoutFeatures";
        case VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO:
            return "VkSamplerReductionModeCreateInfo";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES:
            return "VkPhysicalDeviceSamplerFilterMinmaxProperties";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES:
            return "VkPhysicalDeviceUniformBufferStandardLayoutFeatures";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES:
            return "VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures";
        case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2:
            return "VkAttachmentDescription2";
        case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2:
            return "VkAttachmentReference2";
        case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2:
            return "VkSubpassDescription2";
        case VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2:
            return "VkSubpassDependency2";
        case VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2:
            return "VkRenderPassCreateInfo2";
        case VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO:
            return "VkSubpassBeginInfo";
        case VK_STRUCTURE_TYPE_SUBPASS_END_INFO:
            return "VkSubpassEndInfo";
        case VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE:
            return "VkSubpassDescriptionDepthStencilResolve";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES:
            return "VkPhysicalDeviceDepthStencilResolveProperties";
        case VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO:
            return "VkImageStencilUsageCreateInfo";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES:
            return "VkPhysicalDeviceImagelessFramebufferFeatures";
        case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO:
            return "VkFramebufferAttachmentImageInfo";
        case VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO:
            return "VkFramebufferAttachmentsCreateInfo";
        case VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO:
            return "VkRenderPassAttachmentBeginInfo";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES:
            return "VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures";
        case VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT:
            return "VkAttachmentReferenceStencilLayout";
        case VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT:
            return "VkAttachmentDescriptionStencilLayout";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES:
            return "VkPhysicalDeviceVulkan13Features";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES:
            return "VkPhysicalDeviceVulkan13Properties";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES:
            return "VkPhysicalDeviceToolProperties";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES:
            return "VkPhysicalDevicePrivateDataFeatures";
        case VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO:
            return "VkDevicePrivateDataCreateInfo";
        case VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO:
            return "VkPrivateDataSlotCreateInfo";
        case VK_STRUCTURE_TYPE_MEMORY_BARRIER_2:
            return "VkMemoryBarrier2";
        case VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2:
            return "VkBufferMemoryBarrier2";
        case VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2:
            return "VkImageMemoryBarrier2";
        case VK_STRUCTURE_TYPE_DEPENDENCY_INFO:
            return "VkDependencyInfo";
        case VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO:
            return "VkSemaphoreSubmitInfo";
        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO:
            return "VkCommandBufferSubmitInfo";
        case VK_STRUCTURE_TYPE_SUBMIT_INFO_2:
            return "VkSubmitInfo2";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES:
            return "VkPhysicalDeviceSynchronization2Features";
        case VK_STRUCTURE_TYPE_BUFFER_COPY_2:
            return "VkBufferCopy2";
        case VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2:
            return "VkCopyBufferInfo2";
        case VK_STRUCTURE_TYPE_IMAGE_COPY_2:
            return "VkImageCopy2";
        case VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2:
            return "VkCopyImageInfo2";
        case VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2:
            return "VkBufferImageCopy2";
        case VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2:
            return "VkCopyBufferToImageInfo2";
        case VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2:
            return "VkCopyImageToBufferInfo2";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES:
            return "VkPhysicalDeviceTextureCompressionASTCHDRFeatures";
        case VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3:
            return "VkFormatProperties3";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES:
            return "VkPhysicalDeviceMaintenance4Features";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES:
            return "VkPhysicalDeviceMaintenance4Properties";
        case VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS:
            return "VkDeviceBufferMemoryRequirements";
        case VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS:
            return "VkDeviceImageMemoryRequirements";
        case VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO:
            return "VkPipelineCreationFeedbackCreateInfo";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES:
            return "VkPhysicalDeviceShaderTerminateInvocationFeatures";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES:
            return "VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES:
            return "VkPhysicalDevicePipelineCreationCacheControlFeatures";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES:
            return "VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES:
            return "VkPhysicalDeviceImageRobustnessFeatures";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES:
            return "VkPhysicalDeviceSubgroupSizeControlFeatures";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES:
            return "VkPhysicalDeviceSubgroupSizeControlProperties";
        case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO:
            return "VkPipelineShaderStageRequiredSubgroupSizeCreateInfo";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES:
            return "VkPhysicalDeviceInlineUniformBlockFeatures";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES:
            return "VkPhysicalDeviceInlineUniformBlockProperties";
        case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK:
            return "VkWriteDescriptorSetInlineUniformBlock";
        case VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO:
            return "VkDescriptorPoolInlineUniformBlockCreateInfo";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES:
            return "VkPhysicalDeviceShaderIntegerDotProductFeatures";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES:
            return "VkPhysicalDeviceShaderIntegerDotProductProperties";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES:
            return "VkPhysicalDeviceTexelBufferAlignmentProperties";
        case VK_STRUCTURE_TYPE_IMAGE_BLIT_2:
            return "VkImageBlit2";
        case VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2:
            return "VkBlitImageInfo2";
        case VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2:
            return "VkImageResolve2";
        case VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2:
            return "VkResolveImageInfo2";
        case VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO:
            return "VkRenderingAttachmentInfo";
        case VK_STRUCTURE_TYPE_RENDERING_INFO:
            return "VkRenderingInfo";
        case VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO:
            return "VkPipelineRenderingCreateInfo";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES:
            return "VkPhysicalDeviceDynamicRenderingFeatures";
        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO:
            return "VkCommandBufferInheritanceRenderingInfo";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_4_FEATURES:
            return "VkPhysicalDeviceVulkan14Features";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_4_PROPERTIES:
            return "VkPhysicalDeviceVulkan14Properties";
        case VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO:
            return "VkDeviceQueueGlobalPriorityCreateInfo";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES:
            return "VkPhysicalDeviceGlobalPriorityQueryFeatures";
        case VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES:
            return "VkQueueFamilyGlobalPriorityProperties";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES:
            return "VkPhysicalDeviceIndexTypeUint8Features";
        case VK_STRUCTURE_TYPE_MEMORY_MAP_INFO:
            return "VkMemoryMapInfo";
        case VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO:
            return "VkMemoryUnmapInfo";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES:
            return "VkPhysicalDeviceMaintenance5Features";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES:
            return "VkPhysicalDeviceMaintenance5Properties";
        case VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2:
            return "VkImageSubresource2";
        case VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO:
            return "VkDeviceImageSubresourceInfo";
        case VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2:
            return "VkSubresourceLayout2";
        case VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO:
            return "VkBufferUsageFlags2CreateInfo";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES:
            return "VkPhysicalDeviceMaintenance6Features";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES:
            return "VkPhysicalDeviceMaintenance6Properties";
        case VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS:
            return "VkBindMemoryStatus";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES:
            return "VkPhysicalDeviceHostImageCopyFeatures";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES:
            return "VkPhysicalDeviceHostImageCopyProperties";
        case VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY:
            return "VkMemoryToImageCopy";
        case VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY:
            return "VkImageToMemoryCopy";
        case VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO:
            return "VkCopyMemoryToImageInfo";
        case VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO:
            return "VkCopyImageToMemoryInfo";
        case VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO:
            return "VkCopyImageToImageInfo";
        case VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO:
            return "VkHostImageLayoutTransitionInfo";
        case VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE:
            return "VkSubresourceHostMemcpySize";
        case VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY:
            return "VkHostImageCopyDevicePerformanceQuery";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES:
            return "VkPhysicalDeviceShaderSubgroupRotateFeatures";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES:
            return "VkPhysicalDeviceShaderFloatControls2Features";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES:
            return "VkPhysicalDeviceShaderExpectAssumeFeatures";
        case VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO:
            return "VkPipelineCreateFlags2CreateInfo";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES:
            return "VkPhysicalDevicePushDescriptorProperties";
        case VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO:
            return "VkBindDescriptorSetsInfo";
        case VK_STRUCTURE_TYPE_PUSH_CONSTANTS_INFO:
            return "VkPushConstantsInfo";
        case VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO:
            return "VkPushDescriptorSetInfo";
        case VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO:
            return "VkPushDescriptorSetWithTemplateInfo";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES:
            return "VkPhysicalDevicePipelineProtectedAccessFeatures";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES:
            return "VkPhysicalDevicePipelineRobustnessFeatures";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES:
            return "VkPhysicalDevicePipelineRobustnessProperties";
        case VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO:
            return "VkPipelineRobustnessCreateInfo";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES:
            return "VkPhysicalDeviceLineRasterizationFeatures";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES:
            return "VkPhysicalDeviceLineRasterizationProperties";
        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO:
            return "VkPipelineRasterizationLineStateCreateInfo";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES:
            return "VkPhysicalDeviceVertexAttributeDivisorProperties";
        case VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO:
            return "VkPipelineVertexInputDivisorStateCreateInfo";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES:
            return "VkPhysicalDeviceVertexAttributeDivisorFeatures";
        case VK_STRUCTURE_TYPE_RENDERING_AREA_INFO:
            return "VkRenderingAreaInfo";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES:
            return "VkPhysicalDeviceDynamicRenderingLocalReadFeatures";
        case VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO:
            return "VkRenderingAttachmentLocationInfo";
        case VK_STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO:
            return "VkRenderingInputAttachmentIndexInfo";
        case VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR:
            return "VkSwapchainCreateInfoKHR";
        case VK_STRUCTURE_TYPE_PRESENT_INFO_KHR:
            return "VkPresentInfoKHR";
        case VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR:
            return "VkImageSwapchainCreateInfoKHR";
        case VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR:
            return "VkBindImageMemorySwapchainInfoKHR";
        case VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR:
            return "VkAcquireNextImageInfoKHR";
        case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR:
            return "VkDeviceGroupPresentCapabilitiesKHR";
        case VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR:
            return "VkDeviceGroupPresentInfoKHR";
        case VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR:
            return "VkDeviceGroupSwapchainCreateInfoKHR";
        case VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR:
            return "VkDisplayModeCreateInfoKHR";
        case VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR:
            return "VkDisplaySurfaceCreateInfoKHR";
        case VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR:
            return "VkDisplayPresentInfoKHR";
#ifdef VK_USE_PLATFORM_XLIB_KHR
        case VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR:
            return "VkXlibSurfaceCreateInfoKHR";
#endif  // VK_USE_PLATFORM_XLIB_KHR
#ifdef VK_USE_PLATFORM_XCB_KHR
        case VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR:
            return "VkXcbSurfaceCreateInfoKHR";
#endif  // VK_USE_PLATFORM_XCB_KHR
#ifdef VK_USE_PLATFORM_WAYLAND_KHR
        case VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR:
            return "VkWaylandSurfaceCreateInfoKHR";
#endif  // VK_USE_PLATFORM_WAYLAND_KHR
#ifdef VK_USE_PLATFORM_ANDROID_KHR
        case VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR:
            return "VkAndroidSurfaceCreateInfoKHR";
#endif  // VK_USE_PLATFORM_ANDROID_KHR
#ifdef VK_USE_PLATFORM_WIN32_KHR
        case VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR:
            return "VkWin32SurfaceCreateInfoKHR";
#endif  // VK_USE_PLATFORM_WIN32_KHR
        case VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR:
            return "VkQueueFamilyQueryResultStatusPropertiesKHR";
        case VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR:
            return "VkQueueFamilyVideoPropertiesKHR";
        case VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR:
            return "VkVideoProfileInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR:
            return "VkVideoProfileListInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR:
            return "VkVideoCapabilitiesKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR:
            return "VkPhysicalDeviceVideoFormatInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR:
            return "VkVideoFormatPropertiesKHR";
        case VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR:
            return "VkVideoPictureResourceInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR:
            return "VkVideoReferenceSlotInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR:
            return "VkVideoSessionMemoryRequirementsKHR";
        case VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR:
            return "VkBindVideoSessionMemoryInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR:
            return "VkVideoSessionCreateInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR:
            return "VkVideoSessionParametersCreateInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR:
            return "VkVideoSessionParametersUpdateInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR:
            return "VkVideoBeginCodingInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR:
            return "VkVideoEndCodingInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR:
            return "VkVideoCodingControlInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR:
            return "VkVideoDecodeCapabilitiesKHR";
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR:
            return "VkVideoDecodeUsageInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR:
            return "VkVideoDecodeInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_KHR:
            return "VkVideoEncodeH264CapabilitiesKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUALITY_LEVEL_PROPERTIES_KHR:
            return "VkVideoEncodeH264QualityLevelPropertiesKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_KHR:
            return "VkVideoEncodeH264SessionCreateInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR:
            return "VkVideoEncodeH264SessionParametersAddInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR:
            return "VkVideoEncodeH264SessionParametersCreateInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_GET_INFO_KHR:
            return "VkVideoEncodeH264SessionParametersGetInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_FEEDBACK_INFO_KHR:
            return "VkVideoEncodeH264SessionParametersFeedbackInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_KHR:
            return "VkVideoEncodeH264NaluSliceInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PICTURE_INFO_KHR:
            return "VkVideoEncodeH264PictureInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_KHR:
            return "VkVideoEncodeH264DpbSlotInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_KHR:
            return "VkVideoEncodeH264ProfileInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_KHR:
            return "VkVideoEncodeH264RateControlInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_KHR:
            return "VkVideoEncodeH264RateControlLayerInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_GOP_REMAINING_FRAME_INFO_KHR:
            return "VkVideoEncodeH264GopRemainingFrameInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_KHR:
            return "VkVideoEncodeH265CapabilitiesKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_KHR:
            return "VkVideoEncodeH265SessionCreateInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUALITY_LEVEL_PROPERTIES_KHR:
            return "VkVideoEncodeH265QualityLevelPropertiesKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR:
            return "VkVideoEncodeH265SessionParametersAddInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR:
            return "VkVideoEncodeH265SessionParametersCreateInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_GET_INFO_KHR:
            return "VkVideoEncodeH265SessionParametersGetInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_FEEDBACK_INFO_KHR:
            return "VkVideoEncodeH265SessionParametersFeedbackInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_KHR:
            return "VkVideoEncodeH265NaluSliceSegmentInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PICTURE_INFO_KHR:
            return "VkVideoEncodeH265PictureInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_KHR:
            return "VkVideoEncodeH265DpbSlotInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_KHR:
            return "VkVideoEncodeH265ProfileInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_KHR:
            return "VkVideoEncodeH265RateControlInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_KHR:
            return "VkVideoEncodeH265RateControlLayerInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_GOP_REMAINING_FRAME_INFO_KHR:
            return "VkVideoEncodeH265GopRemainingFrameInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR:
            return "VkVideoDecodeH264ProfileInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR:
            return "VkVideoDecodeH264CapabilitiesKHR";
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR:
            return "VkVideoDecodeH264SessionParametersAddInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR:
            return "VkVideoDecodeH264SessionParametersCreateInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR:
            return "VkVideoDecodeH264PictureInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR:
            return "VkVideoDecodeH264DpbSlotInfoKHR";
#ifdef VK_USE_PLATFORM_WIN32_KHR
        case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR:
            return "VkImportMemoryWin32HandleInfoKHR";
        case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR:
            return "VkExportMemoryWin32HandleInfoKHR";
        case VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR:
            return "VkMemoryWin32HandlePropertiesKHR";
        case VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR:
            return "VkMemoryGetWin32HandleInfoKHR";
#endif  // VK_USE_PLATFORM_WIN32_KHR
        case VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR:
            return "VkImportMemoryFdInfoKHR";
        case VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR:
            return "VkMemoryFdPropertiesKHR";
        case VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR:
            return "VkMemoryGetFdInfoKHR";
#ifdef VK_USE_PLATFORM_WIN32_KHR
        case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR:
            return "VkWin32KeyedMutexAcquireReleaseInfoKHR";
        case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR:
            return "VkImportSemaphoreWin32HandleInfoKHR";
        case VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR:
            return "VkExportSemaphoreWin32HandleInfoKHR";
        case VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR:
            return "VkD3D12FenceSubmitInfoKHR";
        case VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR:
            return "VkSemaphoreGetWin32HandleInfoKHR";
#endif  // VK_USE_PLATFORM_WIN32_KHR
        case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR:
            return "VkImportSemaphoreFdInfoKHR";
        case VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR:
            return "VkSemaphoreGetFdInfoKHR";
        case VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR:
            return "VkPresentRegionsKHR";
        case VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR:
            return "VkSharedPresentSurfaceCapabilitiesKHR";
#ifdef VK_USE_PLATFORM_WIN32_KHR
        case VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR:
            return "VkImportFenceWin32HandleInfoKHR";
        case VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR:
            return "VkExportFenceWin32HandleInfoKHR";
        case VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR:
            return "VkFenceGetWin32HandleInfoKHR";
#endif  // VK_USE_PLATFORM_WIN32_KHR
        case VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR:
            return "VkImportFenceFdInfoKHR";
        case VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR:
            return "VkFenceGetFdInfoKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR:
            return "VkPhysicalDevicePerformanceQueryFeaturesKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR:
            return "VkPhysicalDevicePerformanceQueryPropertiesKHR";
        case VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR:
            return "VkPerformanceCounterKHR";
        case VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR:
            return "VkPerformanceCounterDescriptionKHR";
        case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR:
            return "VkQueryPoolPerformanceCreateInfoKHR";
        case VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR:
            return "VkAcquireProfilingLockInfoKHR";
        case VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR:
            return "VkPerformanceQuerySubmitInfoKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR:
            return "VkPhysicalDeviceSurfaceInfo2KHR";
        case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR:
            return "VkSurfaceCapabilities2KHR";
        case VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR:
            return "VkSurfaceFormat2KHR";
        case VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR:
            return "VkDisplayProperties2KHR";
        case VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR:
            return "VkDisplayPlaneProperties2KHR";
        case VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR:
            return "VkDisplayModeProperties2KHR";
        case VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR:
            return "VkDisplayPlaneInfo2KHR";
        case VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR:
            return "VkDisplayPlaneCapabilities2KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_BFLOAT16_FEATURES_KHR:
            return "VkPhysicalDeviceShaderBfloat16FeaturesKHR";
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR:
            return "VkPhysicalDevicePortabilitySubsetFeaturesKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR:
            return "VkPhysicalDevicePortabilitySubsetPropertiesKHR";
#endif  // VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR:
            return "VkPhysicalDeviceShaderClockFeaturesKHR";
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR:
            return "VkVideoDecodeH265ProfileInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR:
            return "VkVideoDecodeH265CapabilitiesKHR";
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR:
            return "VkVideoDecodeH265SessionParametersAddInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR:
            return "VkVideoDecodeH265SessionParametersCreateInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR:
            return "VkVideoDecodeH265PictureInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR:
            return "VkVideoDecodeH265DpbSlotInfoKHR";
        case VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR:
            return "VkFragmentShadingRateAttachmentInfoKHR";
        case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR:
            return "VkPipelineFragmentShadingRateStateCreateInfoKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR:
            return "VkPhysicalDeviceFragmentShadingRateFeaturesKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR:
            return "VkPhysicalDeviceFragmentShadingRatePropertiesKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR:
            return "VkPhysicalDeviceFragmentShadingRateKHR";
        case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR:
            return "VkRenderingFragmentShadingRateAttachmentInfoKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR:
            return "VkPhysicalDeviceShaderQuadControlFeaturesKHR";
        case VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR:
            return "VkSurfaceProtectedCapabilitiesKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR:
            return "VkPhysicalDevicePresentWaitFeaturesKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR:
            return "VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR";
        case VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR:
            return "VkPipelineInfoKHR";
        case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR:
            return "VkPipelineExecutablePropertiesKHR";
        case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR:
            return "VkPipelineExecutableInfoKHR";
        case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR:
            return "VkPipelineExecutableStatisticKHR";
        case VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR:
            return "VkPipelineExecutableInternalRepresentationKHR";
        case VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR:
            return "VkPipelineLibraryCreateInfoKHR";
        case VK_STRUCTURE_TYPE_PRESENT_ID_KHR:
            return "VkPresentIdKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR:
            return "VkPhysicalDevicePresentIdFeaturesKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR:
            return "VkVideoEncodeInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR:
            return "VkVideoEncodeCapabilitiesKHR";
        case VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR:
            return "VkQueryPoolVideoEncodeFeedbackCreateInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR:
            return "VkVideoEncodeUsageInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR:
            return "VkVideoEncodeRateControlLayerInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR:
            return "VkVideoEncodeRateControlInfoKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR:
            return "VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHR:
            return "VkVideoEncodeQualityLevelPropertiesKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR:
            return "VkVideoEncodeQualityLevelInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHR:
            return "VkVideoEncodeSessionParametersGetInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR:
            return "VkVideoEncodeSessionParametersFeedbackInfoKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR:
            return "VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR:
            return "VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR:
            return "VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR:
            return "VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR:
            return "VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_UNTYPED_POINTERS_FEATURES_KHR:
            return "VkPhysicalDeviceShaderUntypedPointersFeaturesKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR:
            return "VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR";
        case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_ID_2_KHR:
            return "VkSurfaceCapabilitiesPresentId2KHR";
        case VK_STRUCTURE_TYPE_PRESENT_ID_2_KHR:
            return "VkPresentId2KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_2_FEATURES_KHR:
            return "VkPhysicalDevicePresentId2FeaturesKHR";
        case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_WAIT_2_KHR:
            return "VkSurfaceCapabilitiesPresentWait2KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_2_FEATURES_KHR:
            return "VkPhysicalDevicePresentWait2FeaturesKHR";
        case VK_STRUCTURE_TYPE_PRESENT_WAIT_2_INFO_KHR:
            return "VkPresentWait2InfoKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR:
            return "VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR:
            return "VkPhysicalDevicePipelineBinaryFeaturesKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR:
            return "VkPhysicalDevicePipelineBinaryPropertiesKHR";
        case VK_STRUCTURE_TYPE_DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR:
            return "VkDevicePipelineBinaryInternalCacheControlKHR";
        case VK_STRUCTURE_TYPE_PIPELINE_BINARY_KEY_KHR:
            return "VkPipelineBinaryKeyKHR";
        case VK_STRUCTURE_TYPE_PIPELINE_CREATE_INFO_KHR:
            return "VkPipelineCreateInfoKHR";
        case VK_STRUCTURE_TYPE_PIPELINE_BINARY_CREATE_INFO_KHR:
            return "VkPipelineBinaryCreateInfoKHR";
        case VK_STRUCTURE_TYPE_PIPELINE_BINARY_INFO_KHR:
            return "VkPipelineBinaryInfoKHR";
        case VK_STRUCTURE_TYPE_RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR:
            return "VkReleaseCapturedPipelineDataInfoKHR";
        case VK_STRUCTURE_TYPE_PIPELINE_BINARY_DATA_INFO_KHR:
            return "VkPipelineBinaryDataInfoKHR";
        case VK_STRUCTURE_TYPE_PIPELINE_BINARY_HANDLES_INFO_KHR:
            return "VkPipelineBinaryHandlesInfoKHR";
        case VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_KHR:
            return "VkSurfacePresentModeKHR";
        case VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_KHR:
            return "VkSurfacePresentScalingCapabilitiesKHR";
        case VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_KHR:
            return "VkSurfacePresentModeCompatibilityKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_KHR:
            return "VkPhysicalDeviceSwapchainMaintenance1FeaturesKHR";
        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_KHR:
            return "VkSwapchainPresentFenceInfoKHR";
        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_KHR:
            return "VkSwapchainPresentModesCreateInfoKHR";
        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_KHR:
            return "VkSwapchainPresentModeInfoKHR";
        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_KHR:
            return "VkSwapchainPresentScalingCreateInfoKHR";
        case VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_KHR:
            return "VkReleaseSwapchainImagesInfoKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INTERNALLY_SYNCHRONIZED_QUEUES_FEATURES_KHR:
            return "VkPhysicalDeviceInternallySynchronizedQueuesFeaturesKHR";
        case VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR:
            return "VkCooperativeMatrixPropertiesKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR:
            return "VkPhysicalDeviceCooperativeMatrixFeaturesKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR:
            return "VkPhysicalDeviceCooperativeMatrixPropertiesKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR:
            return "VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR:
            return "VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR";
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PROFILE_INFO_KHR:
            return "VkVideoDecodeAV1ProfileInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_CAPABILITIES_KHR:
            return "VkVideoDecodeAV1CapabilitiesKHR";
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR:
            return "VkVideoDecodeAV1SessionParametersCreateInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PICTURE_INFO_KHR:
            return "VkVideoDecodeAV1PictureInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_DPB_SLOT_INFO_KHR:
            return "VkVideoDecodeAV1DpbSlotInfoKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_AV1_FEATURES_KHR:
            return "VkPhysicalDeviceVideoEncodeAV1FeaturesKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_CAPABILITIES_KHR:
            return "VkVideoEncodeAV1CapabilitiesKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_QUALITY_LEVEL_PROPERTIES_KHR:
            return "VkVideoEncodeAV1QualityLevelPropertiesKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_SESSION_CREATE_INFO_KHR:
            return "VkVideoEncodeAV1SessionCreateInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR:
            return "VkVideoEncodeAV1SessionParametersCreateInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_PICTURE_INFO_KHR:
            return "VkVideoEncodeAV1PictureInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_DPB_SLOT_INFO_KHR:
            return "VkVideoEncodeAV1DpbSlotInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_PROFILE_INFO_KHR:
            return "VkVideoEncodeAV1ProfileInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_GOP_REMAINING_FRAME_INFO_KHR:
            return "VkVideoEncodeAV1GopRemainingFrameInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_RATE_CONTROL_INFO_KHR:
            return "VkVideoEncodeAV1RateControlInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_RATE_CONTROL_LAYER_INFO_KHR:
            return "VkVideoEncodeAV1RateControlLayerInfoKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_DECODE_VP9_FEATURES_KHR:
            return "VkPhysicalDeviceVideoDecodeVP9FeaturesKHR";
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_VP9_PROFILE_INFO_KHR:
            return "VkVideoDecodeVP9ProfileInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_VP9_CAPABILITIES_KHR:
            return "VkVideoDecodeVP9CapabilitiesKHR";
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_VP9_PICTURE_INFO_KHR:
            return "VkVideoDecodeVP9PictureInfoKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR:
            return "VkPhysicalDeviceVideoMaintenance1FeaturesKHR";
        case VK_STRUCTURE_TYPE_VIDEO_INLINE_QUERY_INFO_KHR:
            return "VkVideoInlineQueryInfoKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFIED_IMAGE_LAYOUTS_FEATURES_KHR:
            return "VkPhysicalDeviceUnifiedImageLayoutsFeaturesKHR";
        case VK_STRUCTURE_TYPE_ATTACHMENT_FEEDBACK_LOOP_INFO_EXT:
            return "VkAttachmentFeedbackLoopInfoEXT";
        case VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR:
            return "VkCalibratedTimestampInfoKHR";
        case VK_STRUCTURE_TYPE_SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT:
            return "VkSetDescriptorBufferOffsetsInfoEXT";
        case VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT:
            return "VkBindDescriptorBufferEmbeddedSamplersInfoEXT";
        case VK_STRUCTURE_TYPE_COPY_MEMORY_INDIRECT_INFO_KHR:
            return "VkCopyMemoryIndirectInfoKHR";
        case VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INDIRECT_INFO_KHR:
            return "VkCopyMemoryToImageIndirectInfoKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_KHR:
            return "VkPhysicalDeviceCopyMemoryIndirectFeaturesKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_KHR:
            return "VkPhysicalDeviceCopyMemoryIndirectPropertiesKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_INTRA_REFRESH_CAPABILITIES_KHR:
            return "VkVideoEncodeIntraRefreshCapabilitiesKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_INTRA_REFRESH_CREATE_INFO_KHR:
            return "VkVideoEncodeSessionIntraRefreshCreateInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_INTRA_REFRESH_INFO_KHR:
            return "VkVideoEncodeIntraRefreshInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_REFERENCE_INTRA_REFRESH_INFO_KHR:
            return "VkVideoReferenceIntraRefreshInfoKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_INTRA_REFRESH_FEATURES_KHR:
            return "VkPhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_CAPABILITIES_KHR:
            return "VkVideoEncodeQuantizationMapCapabilitiesKHR";
        case VK_STRUCTURE_TYPE_VIDEO_FORMAT_QUANTIZATION_MAP_PROPERTIES_KHR:
            return "VkVideoFormatQuantizationMapPropertiesKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_INFO_KHR:
            return "VkVideoEncodeQuantizationMapInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_SESSION_PARAMETERS_CREATE_INFO_KHR:
            return "VkVideoEncodeQuantizationMapSessionParametersCreateInfoKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUANTIZATION_MAP_FEATURES_KHR:
            return "VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUANTIZATION_MAP_CAPABILITIES_KHR:
            return "VkVideoEncodeH264QuantizationMapCapabilitiesKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUANTIZATION_MAP_CAPABILITIES_KHR:
            return "VkVideoEncodeH265QuantizationMapCapabilitiesKHR";
        case VK_STRUCTURE_TYPE_VIDEO_FORMAT_H265_QUANTIZATION_MAP_PROPERTIES_KHR:
            return "VkVideoFormatH265QuantizationMapPropertiesKHR";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_QUANTIZATION_MAP_CAPABILITIES_KHR:
            return "VkVideoEncodeAV1QuantizationMapCapabilitiesKHR";
        case VK_STRUCTURE_TYPE_VIDEO_FORMAT_AV1_QUANTIZATION_MAP_PROPERTIES_KHR:
            return "VkVideoFormatAV1QuantizationMapPropertiesKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR:
            return "VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR:
            return "VkPhysicalDeviceMaintenance7FeaturesKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR:
            return "VkPhysicalDeviceMaintenance7PropertiesKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR:
            return "VkPhysicalDeviceLayeredApiPropertiesKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR:
            return "VkPhysicalDeviceLayeredApiPropertiesListKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR:
            return "VkPhysicalDeviceLayeredApiVulkanPropertiesKHR";
        case VK_STRUCTURE_TYPE_MEMORY_BARRIER_ACCESS_FLAGS_3_KHR:
            return "VkMemoryBarrierAccessFlags3KHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_8_FEATURES_KHR:
            return "VkPhysicalDeviceMaintenance8FeaturesKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FMA_FEATURES_KHR:
            return "VkPhysicalDeviceShaderFmaFeaturesKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_9_FEATURES_KHR:
            return "VkPhysicalDeviceMaintenance9FeaturesKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_9_PROPERTIES_KHR:
            return "VkPhysicalDeviceMaintenance9PropertiesKHR";
        case VK_STRUCTURE_TYPE_QUEUE_FAMILY_OWNERSHIP_TRANSFER_PROPERTIES_KHR:
            return "VkQueueFamilyOwnershipTransferPropertiesKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_2_FEATURES_KHR:
            return "VkPhysicalDeviceVideoMaintenance2FeaturesKHR";
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_INLINE_SESSION_PARAMETERS_INFO_KHR:
            return "VkVideoDecodeH264InlineSessionParametersInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_INLINE_SESSION_PARAMETERS_INFO_KHR:
            return "VkVideoDecodeH265InlineSessionParametersInfoKHR";
        case VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_INLINE_SESSION_PARAMETERS_INFO_KHR:
            return "VkVideoDecodeAV1InlineSessionParametersInfoKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_KHR:
            return "VkPhysicalDeviceDepthClampZeroOneFeaturesKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_KHR:
            return "VkPhysicalDeviceRobustness2FeaturesKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_KHR:
            return "VkPhysicalDeviceRobustness2PropertiesKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_KHR:
            return "VkPhysicalDevicePresentModeFifoLatestReadyFeaturesKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_10_FEATURES_KHR:
            return "VkPhysicalDeviceMaintenance10FeaturesKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_10_PROPERTIES_KHR:
            return "VkPhysicalDeviceMaintenance10PropertiesKHR";
        case VK_STRUCTURE_TYPE_RENDERING_END_INFO_KHR:
            return "VkRenderingEndInfoKHR";
        case VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_FLAGS_INFO_KHR:
            return "VkRenderingAttachmentFlagsInfoKHR";
        case VK_STRUCTURE_TYPE_RESOLVE_IMAGE_MODE_INFO_KHR:
            return "VkResolveImageModeInfoKHR";
        case VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT:
            return "VkDebugReportCallbackCreateInfoEXT";
        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD:
            return "VkPipelineRasterizationStateRasterizationOrderAMD";
        case VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT:
            return "VkDebugMarkerObjectNameInfoEXT";
        case VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT:
            return "VkDebugMarkerObjectTagInfoEXT";
        case VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT:
            return "VkDebugMarkerMarkerInfoEXT";
        case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV:
            return "VkDedicatedAllocationImageCreateInfoNV";
        case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV:
            return "VkDedicatedAllocationBufferCreateInfoNV";
        case VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV:
            return "VkDedicatedAllocationMemoryAllocateInfoNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT:
            return "VkPhysicalDeviceTransformFeedbackFeaturesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT:
            return "VkPhysicalDeviceTransformFeedbackPropertiesEXT";
        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT:
            return "VkPipelineRasterizationStateStreamCreateInfoEXT";
        case VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX:
            return "VkCuModuleCreateInfoNVX";
        case VK_STRUCTURE_TYPE_CU_MODULE_TEXTURING_MODE_CREATE_INFO_NVX:
            return "VkCuModuleTexturingModeCreateInfoNVX";
        case VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX:
            return "VkCuFunctionCreateInfoNVX";
        case VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX:
            return "VkCuLaunchInfoNVX";
        case VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX:
            return "VkImageViewHandleInfoNVX";
        case VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX:
            return "VkImageViewAddressPropertiesNVX";
        case VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD:
            return "VkTextureLODGatherFormatPropertiesAMD";
#ifdef VK_USE_PLATFORM_GGP
        case VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP:
            return "VkStreamDescriptorSurfaceCreateInfoGGP";
#endif  // VK_USE_PLATFORM_GGP
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV:
            return "VkPhysicalDeviceCornerSampledImageFeaturesNV";
        case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV:
            return "VkExternalMemoryImageCreateInfoNV";
        case VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV:
            return "VkExportMemoryAllocateInfoNV";
#ifdef VK_USE_PLATFORM_WIN32_KHR
        case VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV:
            return "VkImportMemoryWin32HandleInfoNV";
        case VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV:
            return "VkExportMemoryWin32HandleInfoNV";
        case VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV:
            return "VkWin32KeyedMutexAcquireReleaseInfoNV";
#endif  // VK_USE_PLATFORM_WIN32_KHR
        case VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT:
            return "VkValidationFlagsEXT";
#ifdef VK_USE_PLATFORM_VI_NN
        case VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN:
            return "VkViSurfaceCreateInfoNN";
#endif  // VK_USE_PLATFORM_VI_NN
        case VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT:
            return "VkImageViewASTCDecodeModeEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT:
            return "VkPhysicalDeviceASTCDecodeFeaturesEXT";
        case VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT:
            return "VkConditionalRenderingBeginInfoEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT:
            return "VkPhysicalDeviceConditionalRenderingFeaturesEXT";
        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT:
            return "VkCommandBufferInheritanceConditionalRenderingInfoEXT";
        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV:
            return "VkPipelineViewportWScalingStateCreateInfoNV";
        case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT:
            return "VkSurfaceCapabilities2EXT";
        case VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT:
            return "VkDisplayPowerInfoEXT";
        case VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT:
            return "VkDeviceEventInfoEXT";
        case VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT:
            return "VkDisplayEventInfoEXT";
        case VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT:
            return "VkSwapchainCounterCreateInfoEXT";
        case VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE:
            return "VkPresentTimesInfoGOOGLE";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX:
            return "VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX";
        case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX:
            return "VkMultiviewPerViewAttributesInfoNVX";
        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV:
            return "VkPipelineViewportSwizzleStateCreateInfoNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT:
            return "VkPhysicalDeviceDiscardRectanglePropertiesEXT";
        case VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT:
            return "VkPipelineDiscardRectangleStateCreateInfoEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT:
            return "VkPhysicalDeviceConservativeRasterizationPropertiesEXT";
        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT:
            return "VkPipelineRasterizationConservativeStateCreateInfoEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT:
            return "VkPhysicalDeviceDepthClipEnableFeaturesEXT";
        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT:
            return "VkPipelineRasterizationDepthClipStateCreateInfoEXT";
        case VK_STRUCTURE_TYPE_HDR_METADATA_EXT:
            return "VkHdrMetadataEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG:
            return "VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG";
#ifdef VK_USE_PLATFORM_IOS_MVK
        case VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK:
            return "VkIOSSurfaceCreateInfoMVK";
#endif  // VK_USE_PLATFORM_IOS_MVK
#ifdef VK_USE_PLATFORM_MACOS_MVK
        case VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK:
            return "VkMacOSSurfaceCreateInfoMVK";
#endif  // VK_USE_PLATFORM_MACOS_MVK
        case VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT:
            return "VkDebugUtilsLabelEXT";
        case VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT:
            return "VkDebugUtilsObjectNameInfoEXT";
        case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT:
            return "VkDebugUtilsMessengerCallbackDataEXT";
        case VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT:
            return "VkDebugUtilsMessengerCreateInfoEXT";
        case VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT:
            return "VkDebugUtilsObjectTagInfoEXT";
#ifdef VK_USE_PLATFORM_ANDROID_KHR
        case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID:
            return "VkAndroidHardwareBufferUsageANDROID";
        case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID:
            return "VkAndroidHardwareBufferPropertiesANDROID";
        case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID:
            return "VkAndroidHardwareBufferFormatPropertiesANDROID";
        case VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID:
            return "VkImportAndroidHardwareBufferInfoANDROID";
        case VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID:
            return "VkMemoryGetAndroidHardwareBufferInfoANDROID";
        case VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID:
            return "VkExternalFormatANDROID";
        case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID:
            return "VkAndroidHardwareBufferFormatProperties2ANDROID";
#endif  // VK_USE_PLATFORM_ANDROID_KHR
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX:
            return "VkPhysicalDeviceShaderEnqueueFeaturesAMDX";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX:
            return "VkPhysicalDeviceShaderEnqueuePropertiesAMDX";
        case VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX:
            return "VkExecutionGraphPipelineScratchSizeAMDX";
        case VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX:
            return "VkExecutionGraphPipelineCreateInfoAMDX";
        case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX:
            return "VkPipelineShaderStageNodeCreateInfoAMDX";
#endif  // VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_TEXEL_BUFFER_DESCRIPTOR_INFO_EXT:
            return "VkTexelBufferDescriptorInfoEXT";
        case VK_STRUCTURE_TYPE_IMAGE_DESCRIPTOR_INFO_EXT:
            return "VkImageDescriptorInfoEXT";
        case VK_STRUCTURE_TYPE_TENSOR_VIEW_CREATE_INFO_ARM:
            return "VkTensorViewCreateInfoARM";
        case VK_STRUCTURE_TYPE_RESOURCE_DESCRIPTOR_INFO_EXT:
            return "VkResourceDescriptorInfoEXT";
        case VK_STRUCTURE_TYPE_BIND_HEAP_INFO_EXT:
            return "VkBindHeapInfoEXT";
        case VK_STRUCTURE_TYPE_PUSH_DATA_INFO_EXT:
            return "VkPushDataInfoEXT";
        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_AND_BINDING_MAPPING_EXT:
            return "VkDescriptorSetAndBindingMappingEXT";
        case VK_STRUCTURE_TYPE_SHADER_DESCRIPTOR_SET_AND_BINDING_MAPPING_INFO_EXT:
            return "VkShaderDescriptorSetAndBindingMappingInfoEXT";
        case VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DATA_CREATE_INFO_EXT:
            return "VkOpaqueCaptureDataCreateInfoEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_HEAP_FEATURES_EXT:
            return "VkPhysicalDeviceDescriptorHeapFeaturesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_HEAP_PROPERTIES_EXT:
            return "VkPhysicalDeviceDescriptorHeapPropertiesEXT";
        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_DESCRIPTOR_HEAP_INFO_EXT:
            return "VkCommandBufferInheritanceDescriptorHeapInfoEXT";
        case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_INDEX_CREATE_INFO_EXT:
            return "VkSamplerCustomBorderColorIndexCreateInfoEXT";
        case VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT:
            return "VkSamplerCustomBorderColorCreateInfoEXT";
        case VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_PUSH_DATA_TOKEN_NV:
            return "VkIndirectCommandsLayoutPushDataTokenNV";
        case VK_STRUCTURE_TYPE_SUBSAMPLED_IMAGE_FORMAT_PROPERTIES_EXT:
            return "VkSubsampledImageFormatPropertiesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_HEAP_TENSOR_PROPERTIES_ARM:
            return "VkPhysicalDeviceDescriptorHeapTensorPropertiesARM";
        case VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD:
            return "VkAttachmentSampleCountInfoAMD";
        case VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT:
            return "VkSampleLocationsInfoEXT";
        case VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT:
            return "VkRenderPassSampleLocationsBeginInfoEXT";
        case VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT:
            return "VkPipelineSampleLocationsStateCreateInfoEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT:
            return "VkPhysicalDeviceSampleLocationsPropertiesEXT";
        case VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT:
            return "VkMultisamplePropertiesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT:
            return "VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT:
            return "VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT";
        case VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT:
            return "VkPipelineColorBlendAdvancedStateCreateInfoEXT";
        case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV:
            return "VkPipelineCoverageToColorStateCreateInfoNV";
        case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV:
            return "VkPipelineCoverageModulationStateCreateInfoNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV:
            return "VkPhysicalDeviceShaderSMBuiltinsPropertiesNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV:
            return "VkPhysicalDeviceShaderSMBuiltinsFeaturesNV";
        case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT:
            return "VkDrmFormatModifierPropertiesListEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT:
            return "VkPhysicalDeviceImageDrmFormatModifierInfoEXT";
        case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT:
            return "VkImageDrmFormatModifierListCreateInfoEXT";
        case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT:
            return "VkImageDrmFormatModifierExplicitCreateInfoEXT";
        case VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT:
            return "VkImageDrmFormatModifierPropertiesEXT";
        case VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT:
            return "VkDrmFormatModifierPropertiesList2EXT";
        case VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT:
            return "VkValidationCacheCreateInfoEXT";
        case VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT:
            return "VkShaderModuleValidationCacheCreateInfoEXT";
        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV:
            return "VkPipelineViewportShadingRateImageStateCreateInfoNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV:
            return "VkPhysicalDeviceShadingRateImageFeaturesNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV:
            return "VkPhysicalDeviceShadingRateImagePropertiesNV";
        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV:
            return "VkPipelineViewportCoarseSampleOrderStateCreateInfoNV";
        case VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV:
            return "VkRayTracingShaderGroupCreateInfoNV";
        case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV:
            return "VkRayTracingPipelineCreateInfoNV";
        case VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV:
            return "VkGeometryTrianglesNV";
        case VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV:
            return "VkGeometryAABBNV";
        case VK_STRUCTURE_TYPE_GEOMETRY_NV:
            return "VkGeometryNV";
        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV:
            return "VkAccelerationStructureInfoNV";
        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV:
            return "VkAccelerationStructureCreateInfoNV";
        case VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV:
            return "VkBindAccelerationStructureMemoryInfoNV";
        case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV:
            return "VkWriteDescriptorSetAccelerationStructureNV";
        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV:
            return "VkAccelerationStructureMemoryRequirementsInfoNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV:
            return "VkPhysicalDeviceRayTracingPropertiesNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV:
            return "VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV";
        case VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV:
            return "VkPipelineRepresentativeFragmentTestStateCreateInfoNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT:
            return "VkPhysicalDeviceImageViewImageFormatInfoEXT";
        case VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT:
            return "VkFilterCubicImageViewImageFormatPropertiesEXT";
        case VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT:
            return "VkImportMemoryHostPointerInfoEXT";
        case VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT:
            return "VkMemoryHostPointerPropertiesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT:
            return "VkPhysicalDeviceExternalMemoryHostPropertiesEXT";
        case VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD:
            return "VkPipelineCompilerControlCreateInfoAMD";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD:
            return "VkPhysicalDeviceShaderCorePropertiesAMD";
        case VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD:
            return "VkDeviceMemoryOverallocationCreateInfoAMD";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT:
            return "VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT";
#ifdef VK_USE_PLATFORM_GGP
        case VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP:
            return "VkPresentFrameTokenGGP";
#endif  // VK_USE_PLATFORM_GGP
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV:
            return "VkPhysicalDeviceMeshShaderFeaturesNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV:
            return "VkPhysicalDeviceMeshShaderPropertiesNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV:
            return "VkPhysicalDeviceShaderImageFootprintFeaturesNV";
        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV:
            return "VkPipelineViewportExclusiveScissorStateCreateInfoNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV:
            return "VkPhysicalDeviceExclusiveScissorFeaturesNV";
        case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV:
            return "VkQueueFamilyCheckpointPropertiesNV";
        case VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV:
            return "VkCheckpointDataNV";
        case VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV:
            return "VkQueueFamilyCheckpointProperties2NV";
        case VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV:
            return "VkCheckpointData2NV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_TIMING_FEATURES_EXT:
            return "VkPhysicalDevicePresentTimingFeaturesEXT";
        case VK_STRUCTURE_TYPE_PRESENT_TIMING_SURFACE_CAPABILITIES_EXT:
            return "VkPresentTimingSurfaceCapabilitiesEXT";
        case VK_STRUCTURE_TYPE_SWAPCHAIN_CALIBRATED_TIMESTAMP_INFO_EXT:
            return "VkSwapchainCalibratedTimestampInfoEXT";
        case VK_STRUCTURE_TYPE_SWAPCHAIN_TIMING_PROPERTIES_EXT:
            return "VkSwapchainTimingPropertiesEXT";
        case VK_STRUCTURE_TYPE_SWAPCHAIN_TIME_DOMAIN_PROPERTIES_EXT:
            return "VkSwapchainTimeDomainPropertiesEXT";
        case VK_STRUCTURE_TYPE_PAST_PRESENTATION_TIMING_INFO_EXT:
            return "VkPastPresentationTimingInfoEXT";
        case VK_STRUCTURE_TYPE_PAST_PRESENTATION_TIMING_EXT:
            return "VkPastPresentationTimingEXT";
        case VK_STRUCTURE_TYPE_PAST_PRESENTATION_TIMING_PROPERTIES_EXT:
            return "VkPastPresentationTimingPropertiesEXT";
        case VK_STRUCTURE_TYPE_PRESENT_TIMING_INFO_EXT:
            return "VkPresentTimingInfoEXT";
        case VK_STRUCTURE_TYPE_PRESENT_TIMINGS_INFO_EXT:
            return "VkPresentTimingsInfoEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL:
            return "VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL";
        case VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL:
            return "VkInitializePerformanceApiInfoINTEL";
        case VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL:
            return "VkQueryPoolPerformanceQueryCreateInfoINTEL";
        case VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL:
            return "VkPerformanceMarkerInfoINTEL";
        case VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL:
            return "VkPerformanceStreamMarkerInfoINTEL";
        case VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL:
            return "VkPerformanceOverrideInfoINTEL";
        case VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL:
            return "VkPerformanceConfigurationAcquireInfoINTEL";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT:
            return "VkPhysicalDevicePCIBusInfoPropertiesEXT";
        case VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD:
            return "VkDisplayNativeHdrSurfaceCapabilitiesAMD";
        case VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD:
            return "VkSwapchainDisplayNativeHdrCreateInfoAMD";
#ifdef VK_USE_PLATFORM_FUCHSIA
        case VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA:
            return "VkImagePipeSurfaceCreateInfoFUCHSIA";
#endif  // VK_USE_PLATFORM_FUCHSIA
#ifdef VK_USE_PLATFORM_METAL_EXT
        case VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT:
            return "VkMetalSurfaceCreateInfoEXT";
#endif  // VK_USE_PLATFORM_METAL_EXT
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT:
            return "VkPhysicalDeviceFragmentDensityMapFeaturesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT:
            return "VkPhysicalDeviceFragmentDensityMapPropertiesEXT";
        case VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT:
            return "VkRenderPassFragmentDensityMapCreateInfoEXT";
        case VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT:
            return "VkRenderingFragmentDensityMapAttachmentInfoEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD:
            return "VkPhysicalDeviceShaderCoreProperties2AMD";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD:
            return "VkPhysicalDeviceCoherentMemoryFeaturesAMD";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT:
            return "VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT:
            return "VkPhysicalDeviceMemoryBudgetPropertiesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT:
            return "VkPhysicalDeviceMemoryPriorityFeaturesEXT";
        case VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT:
            return "VkMemoryPriorityAllocateInfoEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV:
            return "VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT:
            return "VkPhysicalDeviceBufferDeviceAddressFeaturesEXT";
        case VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT:
            return "VkBufferDeviceAddressCreateInfoEXT";
        case VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT:
            return "VkValidationFeaturesEXT";
        case VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV:
            return "VkCooperativeMatrixPropertiesNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV:
            return "VkPhysicalDeviceCooperativeMatrixFeaturesNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV:
            return "VkPhysicalDeviceCooperativeMatrixPropertiesNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV:
            return "VkPhysicalDeviceCoverageReductionModeFeaturesNV";
        case VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV:
            return "VkPipelineCoverageReductionStateCreateInfoNV";
        case VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV:
            return "VkFramebufferMixedSamplesCombinationNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT:
            return "VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT:
            return "VkPhysicalDeviceYcbcrImageArraysFeaturesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT:
            return "VkPhysicalDeviceProvokingVertexFeaturesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT:
            return "VkPhysicalDeviceProvokingVertexPropertiesEXT";
        case VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT:
            return "VkPipelineRasterizationProvokingVertexStateCreateInfoEXT";
#ifdef VK_USE_PLATFORM_WIN32_KHR
        case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT:
            return "VkSurfaceFullScreenExclusiveInfoEXT";
        case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT:
            return "VkSurfaceCapabilitiesFullScreenExclusiveEXT";
        case VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT:
            return "VkSurfaceFullScreenExclusiveWin32InfoEXT";
#endif  // VK_USE_PLATFORM_WIN32_KHR
        case VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT:
            return "VkHeadlessSurfaceCreateInfoEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT:
            return "VkPhysicalDeviceShaderAtomicFloatFeaturesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT:
            return "VkPhysicalDeviceExtendedDynamicStateFeaturesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT:
            return "VkPhysicalDeviceMapMemoryPlacedFeaturesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT:
            return "VkPhysicalDeviceMapMemoryPlacedPropertiesEXT";
        case VK_STRUCTURE_TYPE_MEMORY_MAP_PLACED_INFO_EXT:
            return "VkMemoryMapPlacedInfoEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT:
            return "VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV:
            return "VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV:
            return "VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV";
        case VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV:
            return "VkGraphicsShaderGroupCreateInfoNV";
        case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV:
            return "VkGraphicsPipelineShaderGroupsCreateInfoNV";
        case VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV:
            return "VkIndirectCommandsLayoutTokenNV";
        case VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV:
            return "VkIndirectCommandsLayoutCreateInfoNV";
        case VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV:
            return "VkGeneratedCommandsInfoNV";
        case VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV:
            return "VkGeneratedCommandsMemoryRequirementsInfoNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV:
            return "VkPhysicalDeviceInheritedViewportScissorFeaturesNV";
        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV:
            return "VkCommandBufferInheritanceViewportScissorInfoNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT:
            return "VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT";
        case VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM:
            return "VkRenderPassTransformBeginInfoQCOM";
        case VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM:
            return "VkCommandBufferInheritanceRenderPassTransformInfoQCOM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT:
            return "VkPhysicalDeviceDepthBiasControlFeaturesEXT";
        case VK_STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT:
            return "VkDepthBiasInfoEXT";
        case VK_STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT:
            return "VkDepthBiasRepresentationInfoEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT:
            return "VkPhysicalDeviceDeviceMemoryReportFeaturesEXT";
        case VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT:
            return "VkDeviceMemoryReportCallbackDataEXT";
        case VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT:
            return "VkDeviceDeviceMemoryReportCreateInfoEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT:
            return "VkPhysicalDeviceCustomBorderColorPropertiesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT:
            return "VkPhysicalDeviceCustomBorderColorFeaturesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_3D_FEATURES_EXT:
            return "VkPhysicalDeviceTextureCompressionASTC3DFeaturesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV:
            return "VkPhysicalDevicePresentBarrierFeaturesNV";
        case VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV:
            return "VkSurfaceCapabilitiesPresentBarrierNV";
        case VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV:
            return "VkSwapchainPresentBarrierCreateInfoNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV:
            return "VkPhysicalDeviceDiagnosticsConfigFeaturesNV";
        case VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV:
            return "VkDeviceDiagnosticsConfigCreateInfoNV";
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_CUDA_MODULE_CREATE_INFO_NV:
            return "VkCudaModuleCreateInfoNV";
        case VK_STRUCTURE_TYPE_CUDA_FUNCTION_CREATE_INFO_NV:
            return "VkCudaFunctionCreateInfoNV";
        case VK_STRUCTURE_TYPE_CUDA_LAUNCH_INFO_NV:
            return "VkCudaLaunchInfoNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV:
            return "VkPhysicalDeviceCudaKernelLaunchFeaturesNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV:
            return "VkPhysicalDeviceCudaKernelLaunchPropertiesNV";
#endif  // VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_SHADING_FEATURES_QCOM:
            return "VkPhysicalDeviceTileShadingFeaturesQCOM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_SHADING_PROPERTIES_QCOM:
            return "VkPhysicalDeviceTileShadingPropertiesQCOM";
        case VK_STRUCTURE_TYPE_RENDER_PASS_TILE_SHADING_CREATE_INFO_QCOM:
            return "VkRenderPassTileShadingCreateInfoQCOM";
        case VK_STRUCTURE_TYPE_PER_TILE_BEGIN_INFO_QCOM:
            return "VkPerTileBeginInfoQCOM";
        case VK_STRUCTURE_TYPE_PER_TILE_END_INFO_QCOM:
            return "VkPerTileEndInfoQCOM";
        case VK_STRUCTURE_TYPE_DISPATCH_TILE_INFO_QCOM:
            return "VkDispatchTileInfoQCOM";
        case VK_STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV:
            return "VkQueryLowLatencySupportNV";
#ifdef VK_USE_PLATFORM_METAL_EXT
        case VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT:
            return "VkExportMetalObjectCreateInfoEXT";
        case VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT:
            return "VkExportMetalObjectsInfoEXT";
        case VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT:
            return "VkExportMetalDeviceInfoEXT";
        case VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT:
            return "VkExportMetalCommandQueueInfoEXT";
        case VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT:
            return "VkExportMetalBufferInfoEXT";
        case VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT:
            return "VkImportMetalBufferInfoEXT";
        case VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT:
            return "VkExportMetalTextureInfoEXT";
        case VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT:
            return "VkImportMetalTextureInfoEXT";
        case VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT:
            return "VkExportMetalIOSurfaceInfoEXT";
        case VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT:
            return "VkImportMetalIOSurfaceInfoEXT";
        case VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT:
            return "VkExportMetalSharedEventInfoEXT";
        case VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT:
            return "VkImportMetalSharedEventInfoEXT";
#endif  // VK_USE_PLATFORM_METAL_EXT
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT:
            return "VkPhysicalDeviceDescriptorBufferPropertiesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT:
            return "VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT:
            return "VkPhysicalDeviceDescriptorBufferFeaturesEXT";
        case VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT:
            return "VkDescriptorAddressInfoEXT";
        case VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT:
            return "VkDescriptorBufferBindingInfoEXT";
        case VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT:
            return "VkDescriptorBufferBindingPushDescriptorBufferHandleEXT";
        case VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT:
            return "VkDescriptorGetInfoEXT";
        case VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT:
            return "VkBufferCaptureDescriptorDataInfoEXT";
        case VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT:
            return "VkImageCaptureDescriptorDataInfoEXT";
        case VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT:
            return "VkImageViewCaptureDescriptorDataInfoEXT";
        case VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT:
            return "VkSamplerCaptureDescriptorDataInfoEXT";
        case VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT:
            return "VkOpaqueCaptureDescriptorDataCreateInfoEXT";
        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT:
            return "VkAccelerationStructureCaptureDescriptorDataInfoEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT:
            return "VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT:
            return "VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT";
        case VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT:
            return "VkGraphicsPipelineLibraryCreateInfoEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD:
            return "VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV:
            return "VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV:
            return "VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV";
        case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV:
            return "VkPipelineFragmentShadingRateEnumStateCreateInfoNV";
        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV:
            return "VkAccelerationStructureGeometryMotionTrianglesDataNV";
        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV:
            return "VkAccelerationStructureMotionInfoNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV:
            return "VkPhysicalDeviceRayTracingMotionBlurFeaturesNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT:
            return "VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT:
            return "VkPhysicalDeviceFragmentDensityMap2FeaturesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT:
            return "VkPhysicalDeviceFragmentDensityMap2PropertiesEXT";
        case VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM:
            return "VkCopyCommandTransformInfoQCOM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT:
            return "VkPhysicalDeviceImageCompressionControlFeaturesEXT";
        case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT:
            return "VkImageCompressionControlEXT";
        case VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT:
            return "VkImageCompressionPropertiesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT:
            return "VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT:
            return "VkPhysicalDevice4444FormatsFeaturesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT:
            return "VkPhysicalDeviceFaultFeaturesEXT";
        case VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT:
            return "VkDeviceFaultCountsEXT";
        case VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT:
            return "VkDeviceFaultInfoEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT:
            return "VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT:
            return "VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT";
#ifdef VK_USE_PLATFORM_DIRECTFB_EXT
        case VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT:
            return "VkDirectFBSurfaceCreateInfoEXT";
#endif  // VK_USE_PLATFORM_DIRECTFB_EXT
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT:
            return "VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT";
        case VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT:
            return "VkMutableDescriptorTypeCreateInfoEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT:
            return "VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT";
        case VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT:
            return "VkVertexInputBindingDescription2EXT";
        case VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT:
            return "VkVertexInputAttributeDescription2EXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT:
            return "VkPhysicalDeviceDrmPropertiesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT:
            return "VkPhysicalDeviceAddressBindingReportFeaturesEXT";
        case VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT:
            return "VkDeviceAddressBindingCallbackDataEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT:
            return "VkPhysicalDeviceDepthClipControlFeaturesEXT";
        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT:
            return "VkPipelineViewportDepthClipControlCreateInfoEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT:
            return "VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT";
#ifdef VK_USE_PLATFORM_FUCHSIA
        case VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA:
            return "VkImportMemoryZirconHandleInfoFUCHSIA";
        case VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA:
            return "VkMemoryZirconHandlePropertiesFUCHSIA";
        case VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA:
            return "VkMemoryGetZirconHandleInfoFUCHSIA";
        case VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA:
            return "VkImportSemaphoreZirconHandleInfoFUCHSIA";
        case VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA:
            return "VkSemaphoreGetZirconHandleInfoFUCHSIA";
        case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA:
            return "VkBufferCollectionCreateInfoFUCHSIA";
        case VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA:
            return "VkImportMemoryBufferCollectionFUCHSIA";
        case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA:
            return "VkBufferCollectionImageCreateInfoFUCHSIA";
        case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA:
            return "VkBufferCollectionConstraintsInfoFUCHSIA";
        case VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA:
            return "VkBufferConstraintsInfoFUCHSIA";
        case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA:
            return "VkBufferCollectionBufferCreateInfoFUCHSIA";
        case VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA:
            return "VkSysmemColorSpaceFUCHSIA";
        case VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA:
            return "VkBufferCollectionPropertiesFUCHSIA";
        case VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA:
            return "VkImageFormatConstraintsInfoFUCHSIA";
        case VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA:
            return "VkImageConstraintsInfoFUCHSIA";
#endif  // VK_USE_PLATFORM_FUCHSIA
        case VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI:
            return "VkSubpassShadingPipelineCreateInfoHUAWEI";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI:
            return "VkPhysicalDeviceSubpassShadingFeaturesHUAWEI";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI:
            return "VkPhysicalDeviceSubpassShadingPropertiesHUAWEI";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI:
            return "VkPhysicalDeviceInvocationMaskFeaturesHUAWEI";
        case VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV:
            return "VkMemoryGetRemoteAddressInfoNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV:
            return "VkPhysicalDeviceExternalMemoryRDMAFeaturesNV";
        case VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT:
            return "VkPipelinePropertiesIdentifierEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT:
            return "VkPhysicalDevicePipelinePropertiesFeaturesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT:
            return "VkPhysicalDeviceFrameBoundaryFeaturesEXT";
        case VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT:
            return "VkFrameBoundaryEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT:
            return "VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT";
        case VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT:
            return "VkSubpassResolvePerformanceQueryEXT";
        case VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT:
            return "VkMultisampledRenderToSingleSampledInfoEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT:
            return "VkPhysicalDeviceExtendedDynamicState2FeaturesEXT";
#ifdef VK_USE_PLATFORM_SCREEN_QNX
        case VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX:
            return "VkScreenSurfaceCreateInfoQNX";
#endif  // VK_USE_PLATFORM_SCREEN_QNX
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT:
            return "VkPhysicalDeviceColorWriteEnableFeaturesEXT";
        case VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT:
            return "VkPipelineColorWriteCreateInfoEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT:
            return "VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_RGB_CONVERSION_FEATURES_VALVE:
            return "VkPhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_RGB_CONVERSION_CAPABILITIES_VALVE:
            return "VkVideoEncodeRgbConversionCapabilitiesVALVE";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_PROFILE_RGB_CONVERSION_INFO_VALVE:
            return "VkVideoEncodeProfileRgbConversionInfoVALVE";
        case VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_RGB_CONVERSION_CREATE_INFO_VALVE:
            return "VkVideoEncodeSessionRgbConversionCreateInfoVALVE";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT:
            return "VkPhysicalDeviceImageViewMinLodFeaturesEXT";
        case VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT:
            return "VkImageViewMinLodCreateInfoEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT:
            return "VkPhysicalDeviceMultiDrawFeaturesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT:
            return "VkPhysicalDeviceMultiDrawPropertiesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT:
            return "VkPhysicalDeviceImage2DViewOf3DFeaturesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT:
            return "VkPhysicalDeviceShaderTileImageFeaturesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT:
            return "VkPhysicalDeviceShaderTileImagePropertiesEXT";
        case VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT:
            return "VkMicromapBuildInfoEXT";
        case VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT:
            return "VkMicromapCreateInfoEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT:
            return "VkPhysicalDeviceOpacityMicromapFeaturesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT:
            return "VkPhysicalDeviceOpacityMicromapPropertiesEXT";
        case VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT:
            return "VkMicromapVersionInfoEXT";
        case VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT:
            return "VkCopyMicromapToMemoryInfoEXT";
        case VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT:
            return "VkCopyMemoryToMicromapInfoEXT";
        case VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT:
            return "VkCopyMicromapInfoEXT";
        case VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT:
            return "VkMicromapBuildSizesInfoEXT";
        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT:
            return "VkAccelerationStructureTrianglesOpacityMicromapEXT";
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV:
            return "VkPhysicalDeviceDisplacementMicromapFeaturesNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV:
            return "VkPhysicalDeviceDisplacementMicromapPropertiesNV";
        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV:
            return "VkAccelerationStructureTrianglesDisplacementMicromapNV";
#endif  // VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI:
            return "VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI:
            return "VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI:
            return "VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT:
            return "VkPhysicalDeviceBorderColorSwizzleFeaturesEXT";
        case VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT:
            return "VkSamplerBorderColorComponentMappingCreateInfoEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT:
            return "VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM:
            return "VkPhysicalDeviceShaderCorePropertiesARM";
        case VK_STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM:
            return "VkDeviceQueueShaderCoreControlCreateInfoARM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM:
            return "VkPhysicalDeviceSchedulingControlsFeaturesARM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM:
            return "VkPhysicalDeviceSchedulingControlsPropertiesARM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT:
            return "VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT";
        case VK_STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT:
            return "VkImageViewSlicedCreateInfoEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE:
            return "VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE";
        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE:
            return "VkDescriptorSetBindingReferenceVALVE";
        case VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE:
            return "VkDescriptorSetLayoutHostMappingInfoVALVE";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT:
            return "VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM:
            return "VkPhysicalDeviceRenderPassStripedFeaturesARM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM:
            return "VkPhysicalDeviceRenderPassStripedPropertiesARM";
        case VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM:
            return "VkRenderPassStripeInfoARM";
        case VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM:
            return "VkRenderPassStripeBeginInfoARM";
        case VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM:
            return "VkRenderPassStripeSubmitInfoARM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_EXT:
            return "VkPhysicalDeviceFragmentDensityMapOffsetFeaturesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_EXT:
            return "VkPhysicalDeviceFragmentDensityMapOffsetPropertiesEXT";
        case VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_EXT:
            return "VkRenderPassFragmentDensityMapOffsetEndInfoEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV:
            return "VkPhysicalDeviceCopyMemoryIndirectFeaturesNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_EXT:
            return "VkPhysicalDeviceMemoryDecompressionFeaturesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_EXT:
            return "VkPhysicalDeviceMemoryDecompressionPropertiesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV:
            return "VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV";
        case VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV:
            return "VkComputePipelineIndirectBufferInfoNV";
        case VK_STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV:
            return "VkPipelineIndirectDeviceAddressInfoNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_LINEAR_SWEPT_SPHERES_FEATURES_NV:
            return "VkPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV";
        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_LINEAR_SWEPT_SPHERES_DATA_NV:
            return "VkAccelerationStructureGeometryLinearSweptSpheresDataNV";
        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_SPHERES_DATA_NV:
            return "VkAccelerationStructureGeometrySpheresDataNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV:
            return "VkPhysicalDeviceLinearColorAttachmentFeaturesNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT:
            return "VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT";
        case VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM:
            return "VkImageViewSampleWeightCreateInfoQCOM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM:
            return "VkPhysicalDeviceImageProcessingFeaturesQCOM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM:
            return "VkPhysicalDeviceImageProcessingPropertiesQCOM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT:
            return "VkPhysicalDeviceNestedCommandBufferFeaturesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT:
            return "VkPhysicalDeviceNestedCommandBufferPropertiesEXT";
#ifdef VK_USE_PLATFORM_OHOS
        case VK_STRUCTURE_TYPE_NATIVE_BUFFER_USAGE_OHOS:
            return "VkNativeBufferUsageOHOS";
        case VK_STRUCTURE_TYPE_NATIVE_BUFFER_PROPERTIES_OHOS:
            return "VkNativeBufferPropertiesOHOS";
        case VK_STRUCTURE_TYPE_NATIVE_BUFFER_FORMAT_PROPERTIES_OHOS:
            return "VkNativeBufferFormatPropertiesOHOS";
        case VK_STRUCTURE_TYPE_IMPORT_NATIVE_BUFFER_INFO_OHOS:
            return "VkImportNativeBufferInfoOHOS";
        case VK_STRUCTURE_TYPE_MEMORY_GET_NATIVE_BUFFER_INFO_OHOS:
            return "VkMemoryGetNativeBufferInfoOHOS";
        case VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_OHOS:
            return "VkExternalFormatOHOS";
#endif  // VK_USE_PLATFORM_OHOS
        case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT:
            return "VkExternalMemoryAcquireUnmodifiedEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT:
            return "VkPhysicalDeviceExtendedDynamicState3FeaturesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT:
            return "VkPhysicalDeviceExtendedDynamicState3PropertiesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT:
            return "VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT";
        case VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT:
            return "VkRenderPassCreationControlEXT";
        case VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT:
            return "VkRenderPassCreationFeedbackCreateInfoEXT";
        case VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT:
            return "VkRenderPassSubpassFeedbackCreateInfoEXT";
        case VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG:
            return "VkDirectDriverLoadingInfoLUNARG";
        case VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG:
            return "VkDirectDriverLoadingListLUNARG";
        case VK_STRUCTURE_TYPE_TENSOR_DESCRIPTION_ARM:
            return "VkTensorDescriptionARM";
        case VK_STRUCTURE_TYPE_TENSOR_CREATE_INFO_ARM:
            return "VkTensorCreateInfoARM";
        case VK_STRUCTURE_TYPE_TENSOR_MEMORY_REQUIREMENTS_INFO_ARM:
            return "VkTensorMemoryRequirementsInfoARM";
        case VK_STRUCTURE_TYPE_BIND_TENSOR_MEMORY_INFO_ARM:
            return "VkBindTensorMemoryInfoARM";
        case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_TENSOR_ARM:
            return "VkWriteDescriptorSetTensorARM";
        case VK_STRUCTURE_TYPE_TENSOR_FORMAT_PROPERTIES_ARM:
            return "VkTensorFormatPropertiesARM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TENSOR_PROPERTIES_ARM:
            return "VkPhysicalDeviceTensorPropertiesARM";
        case VK_STRUCTURE_TYPE_TENSOR_MEMORY_BARRIER_ARM:
            return "VkTensorMemoryBarrierARM";
        case VK_STRUCTURE_TYPE_TENSOR_DEPENDENCY_INFO_ARM:
            return "VkTensorDependencyInfoARM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TENSOR_FEATURES_ARM:
            return "VkPhysicalDeviceTensorFeaturesARM";
        case VK_STRUCTURE_TYPE_DEVICE_TENSOR_MEMORY_REQUIREMENTS_ARM:
            return "VkDeviceTensorMemoryRequirementsARM";
        case VK_STRUCTURE_TYPE_TENSOR_COPY_ARM:
            return "VkTensorCopyARM";
        case VK_STRUCTURE_TYPE_COPY_TENSOR_INFO_ARM:
            return "VkCopyTensorInfoARM";
        case VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_TENSOR_ARM:
            return "VkMemoryDedicatedAllocateInfoTensorARM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_TENSOR_INFO_ARM:
            return "VkPhysicalDeviceExternalTensorInfoARM";
        case VK_STRUCTURE_TYPE_EXTERNAL_TENSOR_PROPERTIES_ARM:
            return "VkExternalTensorPropertiesARM";
        case VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_TENSOR_CREATE_INFO_ARM:
            return "VkExternalMemoryTensorCreateInfoARM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_TENSOR_FEATURES_ARM:
            return "VkPhysicalDeviceDescriptorBufferTensorFeaturesARM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_TENSOR_PROPERTIES_ARM:
            return "VkPhysicalDeviceDescriptorBufferTensorPropertiesARM";
        case VK_STRUCTURE_TYPE_DESCRIPTOR_GET_TENSOR_INFO_ARM:
            return "VkDescriptorGetTensorInfoARM";
        case VK_STRUCTURE_TYPE_TENSOR_CAPTURE_DESCRIPTOR_DATA_INFO_ARM:
            return "VkTensorCaptureDescriptorDataInfoARM";
        case VK_STRUCTURE_TYPE_TENSOR_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_ARM:
            return "VkTensorViewCaptureDescriptorDataInfoARM";
        case VK_STRUCTURE_TYPE_FRAME_BOUNDARY_TENSORS_ARM:
            return "VkFrameBoundaryTensorsARM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT:
            return "VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT:
            return "VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT";
        case VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT:
            return "VkPipelineShaderStageModuleIdentifierCreateInfoEXT";
        case VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT:
            return "VkShaderModuleIdentifierEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV:
            return "VkPhysicalDeviceOpticalFlowFeaturesNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV:
            return "VkPhysicalDeviceOpticalFlowPropertiesNV";
        case VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV:
            return "VkOpticalFlowImageFormatInfoNV";
        case VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV:
            return "VkOpticalFlowImageFormatPropertiesNV";
        case VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV:
            return "VkOpticalFlowSessionCreateInfoNV";
        case VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV:
            return "VkOpticalFlowSessionCreatePrivateDataInfoNV";
        case VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV:
            return "VkOpticalFlowExecuteInfoNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT:
            return "VkPhysicalDeviceLegacyDitheringFeaturesEXT";
#ifdef VK_USE_PLATFORM_ANDROID_KHR
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID:
            return "VkPhysicalDeviceExternalFormatResolveFeaturesANDROID";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID:
            return "VkPhysicalDeviceExternalFormatResolvePropertiesANDROID";
        case VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID:
            return "VkAndroidHardwareBufferFormatResolvePropertiesANDROID";
#endif  // VK_USE_PLATFORM_ANDROID_KHR
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD:
            return "VkPhysicalDeviceAntiLagFeaturesAMD";
        case VK_STRUCTURE_TYPE_ANTI_LAG_PRESENTATION_INFO_AMD:
            return "VkAntiLagPresentationInfoAMD";
        case VK_STRUCTURE_TYPE_ANTI_LAG_DATA_AMD:
            return "VkAntiLagDataAMD";
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DENSE_GEOMETRY_FORMAT_FEATURES_AMDX:
            return "VkPhysicalDeviceDenseGeometryFormatFeaturesAMDX";
        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DENSE_GEOMETRY_FORMAT_TRIANGLES_DATA_AMDX:
            return "VkAccelerationStructureDenseGeometryFormatTrianglesDataAMDX";
#endif  // VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT:
            return "VkPhysicalDeviceShaderObjectFeaturesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT:
            return "VkPhysicalDeviceShaderObjectPropertiesEXT";
        case VK_STRUCTURE_TYPE_SHADER_CREATE_INFO_EXT:
            return "VkShaderCreateInfoEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM:
            return "VkPhysicalDeviceTilePropertiesFeaturesQCOM";
        case VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM:
            return "VkTilePropertiesQCOM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC:
            return "VkPhysicalDeviceAmigoProfilingFeaturesSEC";
        case VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC:
            return "VkAmigoProfilingSubmitInfoSEC";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM:
            return "VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV:
            return "VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV:
            return "VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_VECTOR_PROPERTIES_NV:
            return "VkPhysicalDeviceCooperativeVectorPropertiesNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_VECTOR_FEATURES_NV:
            return "VkPhysicalDeviceCooperativeVectorFeaturesNV";
        case VK_STRUCTURE_TYPE_COOPERATIVE_VECTOR_PROPERTIES_NV:
            return "VkCooperativeVectorPropertiesNV";
        case VK_STRUCTURE_TYPE_CONVERT_COOPERATIVE_VECTOR_MATRIX_INFO_NV:
            return "VkConvertCooperativeVectorMatrixInfoNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV:
            return "VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV:
            return "VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT:
            return "VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT:
            return "VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT";
        case VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT:
            return "VkLayerSettingsCreateInfoEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM:
            return "VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM:
            return "VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT:
            return "VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT:
            return "VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT";
        case VK_STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV:
            return "VkLatencySleepModeInfoNV";
        case VK_STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV:
            return "VkLatencySleepInfoNV";
        case VK_STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV:
            return "VkSetLatencyMarkerInfoNV";
        case VK_STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV:
            return "VkLatencyTimingsFrameReportNV";
        case VK_STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV:
            return "VkGetLatencyMarkerInfoNV";
        case VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV:
            return "VkLatencySubmissionPresentIdNV";
        case VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV:
            return "VkSwapchainLatencyCreateInfoNV";
        case VK_STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV:
            return "VkOutOfBandQueueTypeInfoNV";
        case VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV:
            return "VkLatencySurfaceCapabilitiesNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DATA_GRAPH_FEATURES_ARM:
            return "VkPhysicalDeviceDataGraphFeaturesARM";
        case VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_CONSTANT_ARM:
            return "VkDataGraphPipelineConstantARM";
        case VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_RESOURCE_INFO_ARM:
            return "VkDataGraphPipelineResourceInfoARM";
        case VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_COMPILER_CONTROL_CREATE_INFO_ARM:
            return "VkDataGraphPipelineCompilerControlCreateInfoARM";
        case VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_CREATE_INFO_ARM:
            return "VkDataGraphPipelineCreateInfoARM";
        case VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SHADER_MODULE_CREATE_INFO_ARM:
            return "VkDataGraphPipelineShaderModuleCreateInfoARM";
        case VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_CREATE_INFO_ARM:
            return "VkDataGraphPipelineSessionCreateInfoARM";
        case VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_REQUIREMENTS_INFO_ARM:
            return "VkDataGraphPipelineSessionBindPointRequirementsInfoARM";
        case VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_REQUIREMENT_ARM:
            return "VkDataGraphPipelineSessionBindPointRequirementARM";
        case VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_MEMORY_REQUIREMENTS_INFO_ARM:
            return "VkDataGraphPipelineSessionMemoryRequirementsInfoARM";
        case VK_STRUCTURE_TYPE_BIND_DATA_GRAPH_PIPELINE_SESSION_MEMORY_INFO_ARM:
            return "VkBindDataGraphPipelineSessionMemoryInfoARM";
        case VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_INFO_ARM:
            return "VkDataGraphPipelineInfoARM";
        case VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_PROPERTY_QUERY_RESULT_ARM:
            return "VkDataGraphPipelinePropertyQueryResultARM";
        case VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_IDENTIFIER_CREATE_INFO_ARM:
            return "VkDataGraphPipelineIdentifierCreateInfoARM";
        case VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_DISPATCH_INFO_ARM:
            return "VkDataGraphPipelineDispatchInfoARM";
        case VK_STRUCTURE_TYPE_QUEUE_FAMILY_DATA_GRAPH_PROPERTIES_ARM:
            return "VkQueueFamilyDataGraphPropertiesARM";
        case VK_STRUCTURE_TYPE_DATA_GRAPH_PROCESSING_ENGINE_CREATE_INFO_ARM:
            return "VkDataGraphProcessingEngineCreateInfoARM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_QUEUE_FAMILY_DATA_GRAPH_PROCESSING_ENGINE_INFO_ARM:
            return "VkPhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM";
        case VK_STRUCTURE_TYPE_QUEUE_FAMILY_DATA_GRAPH_PROCESSING_ENGINE_PROPERTIES_ARM:
            return "VkQueueFamilyDataGraphProcessingEnginePropertiesARM";
        case VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_CONSTANT_TENSOR_SEMI_STRUCTURED_SPARSITY_INFO_ARM:
            return "VkDataGraphPipelineConstantTensorSemiStructuredSparsityInfoARM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM:
            return "VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM";
        case VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM:
            return "VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV:
            return "VkPhysicalDevicePerStageDescriptorSetFeaturesNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM:
            return "VkPhysicalDeviceImageProcessing2FeaturesQCOM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM:
            return "VkPhysicalDeviceImageProcessing2PropertiesQCOM";
        case VK_STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM:
            return "VkSamplerBlockMatchWindowCreateInfoQCOM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM:
            return "VkPhysicalDeviceCubicWeightsFeaturesQCOM";
        case VK_STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM:
            return "VkSamplerCubicWeightsCreateInfoQCOM";
        case VK_STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM:
            return "VkBlitImageCubicWeightsInfoQCOM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM:
            return "VkPhysicalDeviceYcbcrDegammaFeaturesQCOM";
        case VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM:
            return "VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM:
            return "VkPhysicalDeviceCubicClampFeaturesQCOM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT:
            return "VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT";
#ifdef VK_USE_PLATFORM_SCREEN_QNX
        case VK_STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX:
            return "VkScreenBufferPropertiesQNX";
        case VK_STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX:
            return "VkScreenBufferFormatPropertiesQNX";
        case VK_STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX:
            return "VkImportScreenBufferInfoQNX";
        case VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX:
            return "VkExternalFormatQNX";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX:
            return "VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX";
#endif  // VK_USE_PLATFORM_SCREEN_QNX
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT:
            return "VkPhysicalDeviceLayeredDriverPropertiesMSFT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV:
            return "VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_MEMORY_HEAP_FEATURES_QCOM:
            return "VkPhysicalDeviceTileMemoryHeapFeaturesQCOM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_MEMORY_HEAP_PROPERTIES_QCOM:
            return "VkPhysicalDeviceTileMemoryHeapPropertiesQCOM";
        case VK_STRUCTURE_TYPE_TILE_MEMORY_REQUIREMENTS_QCOM:
            return "VkTileMemoryRequirementsQCOM";
        case VK_STRUCTURE_TYPE_TILE_MEMORY_BIND_INFO_QCOM:
            return "VkTileMemoryBindInfoQCOM";
        case VK_STRUCTURE_TYPE_TILE_MEMORY_SIZE_INFO_QCOM:
            return "VkTileMemorySizeInfoQCOM";
        case VK_STRUCTURE_TYPE_DECOMPRESS_MEMORY_INFO_EXT:
            return "VkDecompressMemoryInfoEXT";
        case VK_STRUCTURE_TYPE_DISPLAY_SURFACE_STEREO_CREATE_INFO_NV:
            return "VkDisplaySurfaceStereoCreateInfoNV";
        case VK_STRUCTURE_TYPE_DISPLAY_MODE_STEREO_PROPERTIES_NV:
            return "VkDisplayModeStereoPropertiesNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV:
            return "VkPhysicalDeviceRawAccessChainsFeaturesNV";
        case VK_STRUCTURE_TYPE_EXTERNAL_COMPUTE_QUEUE_DEVICE_CREATE_INFO_NV:
            return "VkExternalComputeQueueDeviceCreateInfoNV";
        case VK_STRUCTURE_TYPE_EXTERNAL_COMPUTE_QUEUE_CREATE_INFO_NV:
            return "VkExternalComputeQueueCreateInfoNV";
        case VK_STRUCTURE_TYPE_EXTERNAL_COMPUTE_QUEUE_DATA_PARAMS_NV:
            return "VkExternalComputeQueueDataParamsNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_COMPUTE_QUEUE_PROPERTIES_NV:
            return "VkPhysicalDeviceExternalComputeQueuePropertiesNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV:
            return "VkPhysicalDeviceCommandBufferInheritanceFeaturesNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV:
            return "VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT:
            return "VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT8_FEATURES_EXT:
            return "VkPhysicalDeviceShaderFloat8FeaturesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV:
            return "VkPhysicalDeviceRayTracingValidationFeaturesNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_FEATURES_NV:
            return "VkPhysicalDeviceClusterAccelerationStructureFeaturesNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_PROPERTIES_NV:
            return "VkPhysicalDeviceClusterAccelerationStructurePropertiesNV";
        case VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_CLUSTERS_BOTTOM_LEVEL_INPUT_NV:
            return "VkClusterAccelerationStructureClustersBottomLevelInputNV";
        case VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_TRIANGLE_CLUSTER_INPUT_NV:
            return "VkClusterAccelerationStructureTriangleClusterInputNV";
        case VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_MOVE_OBJECTS_INPUT_NV:
            return "VkClusterAccelerationStructureMoveObjectsInputNV";
        case VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_INPUT_INFO_NV:
            return "VkClusterAccelerationStructureInputInfoNV";
        case VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_COMMANDS_INFO_NV:
            return "VkClusterAccelerationStructureCommandsInfoNV";
        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR:
            return "VkAccelerationStructureBuildSizesInfoKHR";
        case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CLUSTER_ACCELERATION_STRUCTURE_CREATE_INFO_NV:
            return "VkRayTracingPipelineClusterAccelerationStructureCreateInfoNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_FEATURES_NV:
            return "VkPhysicalDevicePartitionedAccelerationStructureFeaturesNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_PROPERTIES_NV:
            return "VkPhysicalDevicePartitionedAccelerationStructurePropertiesNV";
        case VK_STRUCTURE_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_FLAGS_NV:
            return "VkPartitionedAccelerationStructureFlagsNV";
        case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_PARTITIONED_ACCELERATION_STRUCTURE_NV:
            return "VkWriteDescriptorSetPartitionedAccelerationStructureNV";
        case VK_STRUCTURE_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCES_INPUT_NV:
            return "VkPartitionedAccelerationStructureInstancesInputNV";
        case VK_STRUCTURE_TYPE_BUILD_PARTITIONED_ACCELERATION_STRUCTURE_INFO_NV:
            return "VkBuildPartitionedAccelerationStructureInfoNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT:
            return "VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT:
            return "VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT";
        case VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT:
            return "VkGeneratedCommandsMemoryRequirementsInfoEXT";
        case VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_PIPELINE_INFO_EXT:
            return "VkIndirectExecutionSetPipelineInfoEXT";
        case VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT:
            return "VkIndirectExecutionSetShaderLayoutInfoEXT";
        case VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_INFO_EXT:
            return "VkIndirectExecutionSetShaderInfoEXT";
        case VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_CREATE_INFO_EXT:
            return "VkIndirectExecutionSetCreateInfoEXT";
        case VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_EXT:
            return "VkGeneratedCommandsInfoEXT";
        case VK_STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_PIPELINE_EXT:
            return "VkWriteIndirectExecutionSetPipelineEXT";
        case VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT:
            return "VkIndirectCommandsLayoutTokenEXT";
        case VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT:
            return "VkIndirectCommandsLayoutCreateInfoEXT";
        case VK_STRUCTURE_TYPE_GENERATED_COMMANDS_PIPELINE_INFO_EXT:
            return "VkGeneratedCommandsPipelineInfoEXT";
        case VK_STRUCTURE_TYPE_GENERATED_COMMANDS_SHADER_INFO_EXT:
            return "VkGeneratedCommandsShaderInfoEXT";
        case VK_STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_SHADER_EXT:
            return "VkWriteIndirectExecutionSetShaderEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA:
            return "VkPhysicalDeviceImageAlignmentControlFeaturesMESA";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA:
            return "VkPhysicalDeviceImageAlignmentControlPropertiesMESA";
        case VK_STRUCTURE_TYPE_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA:
            return "VkImageAlignmentControlCreateInfoMESA";
        case VK_STRUCTURE_TYPE_PUSH_CONSTANT_BANK_INFO_NV:
            return "VkPushConstantBankInfoNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_CONSTANT_BANK_FEATURES_NV:
            return "VkPhysicalDevicePushConstantBankFeaturesNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_CONSTANT_BANK_PROPERTIES_NV:
            return "VkPhysicalDevicePushConstantBankPropertiesNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_EXT:
            return "VkPhysicalDeviceRayTracingInvocationReorderPropertiesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_EXT:
            return "VkPhysicalDeviceRayTracingInvocationReorderFeaturesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT:
            return "VkPhysicalDeviceDepthClampControlFeaturesEXT";
        case VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT:
            return "VkPipelineViewportDepthClampControlCreateInfoEXT";
#ifdef VK_USE_PLATFORM_OHOS
        case VK_STRUCTURE_TYPE_SURFACE_CREATE_INFO_OHOS:
            return "VkSurfaceCreateInfoOHOS";
#endif  // VK_USE_PLATFORM_OHOS
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI:
            return "VkPhysicalDeviceHdrVividFeaturesHUAWEI";
        case VK_STRUCTURE_TYPE_HDR_VIVID_DYNAMIC_METADATA_HUAWEI:
            return "VkHdrVividDynamicMetadataHUAWEI";
        case VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV:
            return "VkCooperativeMatrixFlexibleDimensionsPropertiesNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV:
            return "VkPhysicalDeviceCooperativeMatrix2FeaturesNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV:
            return "VkPhysicalDeviceCooperativeMatrix2PropertiesNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_OPACITY_MICROMAP_FEATURES_ARM:
            return "VkPhysicalDevicePipelineOpacityMicromapFeaturesARM";
#ifdef VK_USE_PLATFORM_METAL_EXT
        case VK_STRUCTURE_TYPE_IMPORT_MEMORY_METAL_HANDLE_INFO_EXT:
            return "VkImportMemoryMetalHandleInfoEXT";
        case VK_STRUCTURE_TYPE_MEMORY_METAL_HANDLE_PROPERTIES_EXT:
            return "VkMemoryMetalHandlePropertiesEXT";
        case VK_STRUCTURE_TYPE_MEMORY_GET_METAL_HANDLE_INFO_EXT:
            return "VkMemoryGetMetalHandleInfoEXT";
#endif  // VK_USE_PLATFORM_METAL_EXT
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_COUNTERS_BY_REGION_FEATURES_ARM:
            return "VkPhysicalDevicePerformanceCountersByRegionFeaturesARM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_COUNTERS_BY_REGION_PROPERTIES_ARM:
            return "VkPhysicalDevicePerformanceCountersByRegionPropertiesARM";
        case VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_ARM:
            return "VkPerformanceCounterARM";
        case VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_ARM:
            return "VkPerformanceCounterDescriptionARM";
        case VK_STRUCTURE_TYPE_RENDER_PASS_PERFORMANCE_COUNTERS_BY_REGION_BEGIN_INFO_ARM:
            return "VkRenderPassPerformanceCountersByRegionBeginInfoARM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_ROBUSTNESS_FEATURES_EXT:
            return "VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FORMAT_PACK_FEATURES_ARM:
            return "VkPhysicalDeviceFormatPackFeaturesARM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_LAYERED_FEATURES_VALVE:
            return "VkPhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_LAYERED_PROPERTIES_VALVE:
            return "VkPhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE";
        case VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_DENSITY_MAP_LAYERED_CREATE_INFO_VALVE:
            return "VkPipelineFragmentDensityMapLayeredCreateInfoVALVE";
#ifdef VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_SET_PRESENT_CONFIG_NV:
            return "VkSetPresentConfigNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_METERING_FEATURES_NV:
            return "VkPhysicalDevicePresentMeteringFeaturesNV";
#endif  // VK_ENABLE_BETA_EXTENSIONS
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_DEVICE_MEMORY_FEATURES_EXT:
            return "VkPhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_64_BIT_INDEXING_FEATURES_EXT:
            return "VkPhysicalDeviceShader64BitIndexingFeaturesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_RESOLVE_FEATURES_EXT:
            return "VkPhysicalDeviceCustomResolveFeaturesEXT";
        case VK_STRUCTURE_TYPE_BEGIN_CUSTOM_RESOLVE_INFO_EXT:
            return "VkBeginCustomResolveInfoEXT";
        case VK_STRUCTURE_TYPE_CUSTOM_RESOLVE_CREATE_INFO_EXT:
            return "VkCustomResolveCreateInfoEXT";
        case VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_BUILTIN_MODEL_CREATE_INFO_QCOM:
            return "VkDataGraphPipelineBuiltinModelCreateInfoQCOM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DATA_GRAPH_MODEL_FEATURES_QCOM:
            return "VkPhysicalDeviceDataGraphModelFeaturesQCOM";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_LONG_VECTOR_FEATURES_EXT:
            return "VkPhysicalDeviceShaderLongVectorFeaturesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_LONG_VECTOR_PROPERTIES_EXT:
            return "VkPhysicalDeviceShaderLongVectorPropertiesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CACHE_INCREMENTAL_MODE_FEATURES_SEC:
            return "VkPhysicalDevicePipelineCacheIncrementalModeFeaturesSEC";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_UNIFORM_BUFFER_UNSIZED_ARRAY_FEATURES_EXT:
            return "VkPhysicalDeviceShaderUniformBufferUnsizedArrayFeaturesEXT";
        case VK_STRUCTURE_TYPE_COMPUTE_OCCUPANCY_PRIORITY_PARAMETERS_NV:
            return "VkComputeOccupancyPriorityParametersNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_OCCUPANCY_PRIORITY_FEATURES_NV:
            return "VkPhysicalDeviceComputeOccupancyPriorityFeaturesNV";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_PARTITIONED_FEATURES_EXT:
            return "VkPhysicalDeviceShaderSubgroupPartitionedFeaturesEXT";
        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR:
            return "VkAccelerationStructureGeometryTrianglesDataKHR";
        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR:
            return "VkAccelerationStructureGeometryAabbsDataKHR";
        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR:
            return "VkAccelerationStructureGeometryInstancesDataKHR";
        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR:
            return "VkAccelerationStructureGeometryKHR";
        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR:
            return "VkAccelerationStructureBuildGeometryInfoKHR";
        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR:
            return "VkAccelerationStructureCreateInfoKHR";
        case VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR:
            return "VkWriteDescriptorSetAccelerationStructureKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR:
            return "VkPhysicalDeviceAccelerationStructureFeaturesKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR:
            return "VkPhysicalDeviceAccelerationStructurePropertiesKHR";
        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR:
            return "VkAccelerationStructureDeviceAddressInfoKHR";
        case VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR:
            return "VkAccelerationStructureVersionInfoKHR";
        case VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR:
            return "VkCopyAccelerationStructureToMemoryInfoKHR";
        case VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR:
            return "VkCopyMemoryToAccelerationStructureInfoKHR";
        case VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR:
            return "VkCopyAccelerationStructureInfoKHR";
        case VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR:
            return "VkRayTracingShaderGroupCreateInfoKHR";
        case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR:
            return "VkRayTracingPipelineInterfaceCreateInfoKHR";
        case VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR:
            return "VkRayTracingPipelineCreateInfoKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR:
            return "VkPhysicalDeviceRayTracingPipelineFeaturesKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR:
            return "VkPhysicalDeviceRayTracingPipelinePropertiesKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR:
            return "VkPhysicalDeviceRayQueryFeaturesKHR";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT:
            return "VkPhysicalDeviceMeshShaderFeaturesEXT";
        case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT:
            return "VkPhysicalDeviceMeshShaderPropertiesEXT";
        default:
            return "Unhandled VkStructureType";
    }
}
