#pragma once

#include <cstdint>
#include <string>
#include <vector>

namespace vkcheck {
namespace {
enum class ExtensionStatus : uint8_t {
    CORE_1_1,
    CORE_1_2,
    CORE_1_3,
    CORE_1_4,
    CORE_1_1_OPTIONAL,
    CORE_1_2_OPTIONAL,
    CORE_1_3_OPTIONAL,
    CORE_1_4_OPTIONAL,
    CURRENT,
    PROVISIONAL,
    DEPRECATED,
    UNREGISTERED,
    UNKNOWN,
};

struct Extension {
    ExtensionStatus status;
    std::string name;
};

const std::vector<Extension> known_instance_extensions = {
    {.status = ExtensionStatus::CORE_1_1, .name = "VK_KHR_device_group_creation"},
    {.status = ExtensionStatus::CORE_1_1, .name = "VK_KHR_external_fence_capabilities"},
    {.status = ExtensionStatus::CORE_1_1, .name = "VK_KHR_external_memory_capabilities"},
    {.status = ExtensionStatus::CORE_1_1, .name = "VK_KHR_external_semaphore_capabilities"},
    {.status = ExtensionStatus::CORE_1_1, .name = "VK_KHR_get_physical_device_properties2"},

    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_android_surface"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_display"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_get_display_properties2"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_get_surface_capabilities2"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_portability_enumeration"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_surface"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_surface_maintenance1"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_surface_protected_capabilities"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_wayland_surface"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_win32_surface"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_xcb_surface"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_xlib_surface"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_acquire_drm_display"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_acquire_xlib_display"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_debug_utils"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_direct_mode_display"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_directfb_surface"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_display_surface_counter"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_headless_surface"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_layer_settings"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_metal_surface"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_swapchain_colorspace"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_FUCHSIA_imagepipe_surface"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_GGP_stream_descriptor_surface"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_GOOGLE_surfaceless_query"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_LUNARG_direct_driver_loading"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NN_vi_surface"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NV_display_stereo"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_OHOS_surface"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_QNX_screen_surface"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_SEC_ubm_surface"},

    {.status = ExtensionStatus::DEPRECATED, .name = "VK_EXT_debug_report"},
    {.status = ExtensionStatus::DEPRECATED, .name = "VK_EXT_surface_maintenance1"},
    {.status = ExtensionStatus::DEPRECATED, .name = "VK_EXT_validation_features"},
    {.status = ExtensionStatus::DEPRECATED, .name = "VK_EXT_validation_flags"},
    {.status = ExtensionStatus::DEPRECATED, .name = "VK_MVK_ios_surface"},
    {.status = ExtensionStatus::DEPRECATED, .name = "VK_MVK_macos_surface"},
    {.status = ExtensionStatus::DEPRECATED, .name = "VK_NV_external_memory_capabilities"},
};

const std::vector<Extension> known_device_extensions = {
    {.status = ExtensionStatus::CORE_1_1, .name = "VK_KHR_bind_memory2"},
    {.status = ExtensionStatus::CORE_1_1, .name = "VK_KHR_dedicated_allocation"},
    {.status = ExtensionStatus::CORE_1_1, .name = "VK_KHR_descriptor_update_template"},
    {.status = ExtensionStatus::CORE_1_1, .name = "VK_KHR_device_group"},
    {.status = ExtensionStatus::CORE_1_1, .name = "VK_KHR_external_fence"},
    {.status = ExtensionStatus::CORE_1_1, .name = "VK_KHR_external_memory"},
    {.status = ExtensionStatus::CORE_1_1, .name = "VK_KHR_external_semaphore"},
    {.status = ExtensionStatus::CORE_1_1, .name = "VK_KHR_get_memory_requirements2"},
    {.status = ExtensionStatus::CORE_1_1, .name = "VK_KHR_maintenance1"},
    {.status = ExtensionStatus::CORE_1_1, .name = "VK_KHR_maintenance2"},
    {.status = ExtensionStatus::CORE_1_1, .name = "VK_KHR_maintenance3"},
    {.status = ExtensionStatus::CORE_1_1, .name = "VK_KHR_multiview"},
    {.status = ExtensionStatus::CORE_1_1, .name = "VK_KHR_relaxed_block_layout"},
    {.status = ExtensionStatus::CORE_1_1, .name = "VK_KHR_storage_buffer_storage_class"},
    {.status = ExtensionStatus::CORE_1_1_OPTIONAL, .name = "VK_KHR_16bit_storage"},
    {.status = ExtensionStatus::CORE_1_1_OPTIONAL, .name = "VK_KHR_sampler_ycbcr_conversion"},
    {.status = ExtensionStatus::CORE_1_1_OPTIONAL, .name = "VK_KHR_shader_draw_parameters"},
    {.status = ExtensionStatus::CORE_1_1_OPTIONAL, .name = "VK_KHR_variable_pointers"},

    {.status = ExtensionStatus::CORE_1_2, .name = "VK_KHR_create_renderpass2"},
    {.status = ExtensionStatus::CORE_1_2, .name = "VK_KHR_depth_stencil_resolve"},
    {.status = ExtensionStatus::CORE_1_2, .name = "VK_KHR_driver_properties"},
    {.status = ExtensionStatus::CORE_1_2, .name = "VK_KHR_image_format_list"},
    {.status = ExtensionStatus::CORE_1_2, .name = "VK_KHR_imageless_framebuffer"},
    {.status = ExtensionStatus::CORE_1_2, .name = "VK_KHR_separate_depth_stencil_layouts"},
    {.status = ExtensionStatus::CORE_1_2, .name = "VK_KHR_shader_float_controls"},
    {.status = ExtensionStatus::CORE_1_2, .name = "VK_KHR_shader_subgroup_extended_types"},
    {.status = ExtensionStatus::CORE_1_2, .name = "VK_KHR_spirv_1_4"},
    {.status = ExtensionStatus::CORE_1_2, .name = "VK_KHR_timeline_semaphore"},
    {.status = ExtensionStatus::CORE_1_2, .name = "VK_KHR_uniform_buffer_standard_layout"},
    {.status = ExtensionStatus::CORE_1_2, .name = "VK_EXT_host_query_reset"},
    {.status = ExtensionStatus::CORE_1_2, .name = "VK_EXT_sampler_filter_minmax"},
    {.status = ExtensionStatus::CORE_1_2, .name = "VK_EXT_separate_stencil_usage"},
    {.status = ExtensionStatus::CORE_1_2_OPTIONAL, .name = "VK_KHR_8bit_storage"},
    {.status = ExtensionStatus::CORE_1_2_OPTIONAL, .name = "VK_KHR_buffer_device_address"},
    {.status = ExtensionStatus::CORE_1_2_OPTIONAL, .name = "VK_KHR_draw_indirect_count"},
    {.status = ExtensionStatus::CORE_1_2_OPTIONAL, .name = "VK_KHR_sampler_mirror_clamp_to_edge"},
    {.status = ExtensionStatus::CORE_1_2_OPTIONAL, .name = "VK_KHR_shader_atomic_int64"},
    {.status = ExtensionStatus::CORE_1_2_OPTIONAL, .name = "VK_KHR_shader_float16_int8"},
    {.status = ExtensionStatus::CORE_1_2_OPTIONAL, .name = "VK_KHR_vulkan_memory_model"},
    {.status = ExtensionStatus::CORE_1_2_OPTIONAL, .name = "VK_EXT_descriptor_indexing"},
    {.status = ExtensionStatus::CORE_1_2_OPTIONAL, .name = "VK_EXT_scalar_block_layout"},
    {.status = ExtensionStatus::CORE_1_2_OPTIONAL, .name = "VK_EXT_shader_viewport_index_layer"},

    {.status = ExtensionStatus::CORE_1_3, .name = "VK_KHR_copy_commands2"},
    {.status = ExtensionStatus::CORE_1_3, .name = "VK_KHR_dynamic_rendering"},
    {.status = ExtensionStatus::CORE_1_3, .name = "VK_KHR_format_feature_flags2"},
    {.status = ExtensionStatus::CORE_1_3, .name = "VK_KHR_maintenance4"},
    {.status = ExtensionStatus::CORE_1_3, .name = "VK_KHR_shader_integer_dot_product"},
    {.status = ExtensionStatus::CORE_1_3, .name = "VK_KHR_shader_non_semantic_info"},
    {.status = ExtensionStatus::CORE_1_3, .name = "VK_KHR_shader_terminate_invocation"},
    {.status = ExtensionStatus::CORE_1_3, .name = "VK_KHR_synchronization2"},
    {.status = ExtensionStatus::CORE_1_3, .name = "VK_KHR_zero_initialize_workgroup_memory"},
    {.status = ExtensionStatus::CORE_1_3, .name = "VK_EXT_extended_dynamic_state"},
    {.status = ExtensionStatus::CORE_1_3, .name = "VK_EXT_extended_dynamic_state2"},
    {.status = ExtensionStatus::CORE_1_3, .name = "VK_EXT_image_robustness"},
    {.status = ExtensionStatus::CORE_1_3, .name = "VK_EXT_inline_uniform_block"},
    {.status = ExtensionStatus::CORE_1_3, .name = "VK_EXT_pipeline_creation_cache_control"},
    {.status = ExtensionStatus::CORE_1_3, .name = "VK_EXT_pipeline_creation_feedback"},
    {.status = ExtensionStatus::CORE_1_3, .name = "VK_EXT_private_data"},
    {.status = ExtensionStatus::CORE_1_3, .name = "VK_EXT_shader_demote_to_helper_invocation"},
    {.status = ExtensionStatus::CORE_1_3, .name = "VK_EXT_subgroup_size_control"},
    {.status = ExtensionStatus::CORE_1_3, .name = "VK_EXT_texel_buffer_alignment"},
    {.status = ExtensionStatus::CORE_1_3, .name = "VK_EXT_tooling_info"},
    {.status = ExtensionStatus::CORE_1_3_OPTIONAL, .name = "VK_EXT_4444_formats"},
    {.status = ExtensionStatus::CORE_1_3_OPTIONAL, .name = "VK_EXT_texture_compression_astc_hdr"},
    {.status = ExtensionStatus::CORE_1_3_OPTIONAL, .name = "VK_EXT_ycbcr_2plane_444_formats"},

    {.status = ExtensionStatus::CORE_1_4, .name = "VK_KHR_dynamic_rendering_local_read"},
    {.status = ExtensionStatus::CORE_1_4, .name = "VK_KHR_global_priority"},
    {.status = ExtensionStatus::CORE_1_4, .name = "VK_KHR_index_type_uint8"},
    {.status = ExtensionStatus::CORE_1_4, .name = "VK_KHR_line_rasterization"},
    {.status = ExtensionStatus::CORE_1_4, .name = "VK_KHR_load_store_op_none"},
    {.status = ExtensionStatus::CORE_1_4, .name = "VK_KHR_maintenance5"},
    {.status = ExtensionStatus::CORE_1_4, .name = "VK_KHR_maintenance6"},
    {.status = ExtensionStatus::CORE_1_4, .name = "VK_KHR_map_memory2"},
    {.status = ExtensionStatus::CORE_1_4, .name = "VK_KHR_push_descriptor"},
    {.status = ExtensionStatus::CORE_1_4, .name = "VK_KHR_shader_expect_assume"},
    {.status = ExtensionStatus::CORE_1_4, .name = "VK_KHR_shader_float_controls2"},
    {.status = ExtensionStatus::CORE_1_4, .name = "VK_KHR_shader_subgroup_rotate"},
    {.status = ExtensionStatus::CORE_1_4, .name = "VK_KHR_vertex_attribute_divisor"},
    {.status = ExtensionStatus::CORE_1_4, .name = "VK_EXT_pipeline_robustness"},
    {.status = ExtensionStatus::CORE_1_4_OPTIONAL, .name = "VK_EXT_host_image_copy"},
    {.status = ExtensionStatus::CORE_1_4_OPTIONAL, .name = "VK_EXT_pipeline_protected_access"},

    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_acceleration_structure"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_calibrated_timestamps"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_compute_shader_derivatives"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_cooperative_matrix"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_copy_memory_indirect"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_deferred_host_operations"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_depth_clamp_zero_one"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_display_swapchain"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_external_fence_fd"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_external_fence_win32"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_external_memory_fd"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_external_memory_win32"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_external_semaphore_fd"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_external_semaphore_win32"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_fragment_shader_barycentric"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_fragment_shading_rate"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_incremental_present"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_internally_synchronized_queues"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_maintenance10"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_maintenance7"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_maintenance8"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_maintenance9"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_performance_query"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_pipeline_binary"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_pipeline_executable_properties"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_pipeline_library"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_present_id"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_present_id2"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_present_mode_fifo_latest_ready"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_present_wait"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_present_wait2"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_ray_query"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_ray_tracing_maintenance1"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_ray_tracing_pipeline"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_ray_tracing_position_fetch"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_robustness2"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_shader_bfloat16"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_shader_clock"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_shader_fma"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_shader_maximal_reconvergence"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_shader_quad_control"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_shader_relaxed_extended_instruction"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_shader_subgroup_uniform_control_flow"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_shader_untyped_pointers"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_shared_presentable_image"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_swapchain"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_swapchain_maintenance1"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_swapchain_mutable_format"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_unified_image_layouts"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_video_decode_av1"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_video_decode_h264"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_video_decode_h265"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_video_decode_queue"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_video_decode_vp9"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_video_encode_av1"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_video_encode_h264"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_video_encode_h265"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_video_encode_intra_refresh"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_video_encode_quantization_map"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_video_encode_queue"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_video_maintenance1"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_video_maintenance2"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_video_queue"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_win32_keyed_mutex"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_KHR_workgroup_memory_explicit_layout"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_astc_decode_mode"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_attachment_feedback_loop_dynamic_state"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_attachment_feedback_loop_layout"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_blend_operation_advanced"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_border_color_swizzle"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_color_write_enable"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_conditional_rendering"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_conservative_rasterization"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_custom_border_color"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_custom_resolve"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_depth_bias_control"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_depth_clamp_control"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_depth_clip_control"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_depth_clip_enable"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_depth_range_unrestricted"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_descriptor_heap"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_device_address_binding_report"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_device_fault"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_device_generated_commands"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_device_memory_report"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_discard_rectangles"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_display_control"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_dynamic_rendering_unused_attachments"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_extended_dynamic_state3"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_external_memory_acquire_unmodified"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_external_memory_dma_buf"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_external_memory_host"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_external_memory_metal"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_filter_cubic"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_fragment_density_map"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_fragment_density_map2"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_fragment_density_map_offset"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_fragment_shader_interlock"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_frame_boundary"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_full_screen_exclusive"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_graphics_pipeline_library"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_hdr_metadata"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_image_2d_view_of_3d"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_image_compression_control"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_image_compression_control_swapchain"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_image_drm_format_modifier"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_image_sliced_view_of_3d"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_image_view_min_lod"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_legacy_dithering"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_legacy_vertex_attributes"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_map_memory_placed"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_memory_budget"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_memory_decompression"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_memory_priority"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_mesh_shader"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_metal_objects"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_multi_draw"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_multisampled_render_to_single_sampled"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_mutable_descriptor_type"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_nested_command_buffer"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_non_seamless_cube_map"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_opacity_micromap"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_pageable_device_local_memory"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_pci_bus_info"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_physical_device_drm"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_pipeline_library_group_handles"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_pipeline_properties"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_post_depth_coverage"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_present_timing"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_primitives_generated_query"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_primitive_restart_index"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_primitive_topology_list_restart"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_provoking_vertex"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_queue_family_foreign"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_rasterization_order_attachment_access"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_ray_tracing_invocation_reorder"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_rgba10x6_formats"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_sample_locations"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_shader_64bit_indexing"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_shader_atomic_float"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_shader_atomic_float2"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_shader_float8"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_shader_image_atomic_int64"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_shader_long_vector"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_shader_module_identifier"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_shader_object"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_shader_replicated_composites"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_shader_stencil_export"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_shader_subgroup_partitioned"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_shader_tile_image"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_shader_uniform_buffer_unsized_array"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_subpass_merge_feedback"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_texture_compression_astc_3d"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_transform_feedback"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_validation_cache"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_vertex_input_dynamic_state"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_ycbcr_image_arrays"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_EXT_zero_initialize_device_memory"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_AMD_anti_lag"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_AMD_buffer_marker"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_AMD_device_coherent_memory"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_AMD_display_native_hdr"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_AMD_gcn_shader"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_AMD_memory_overallocation_behavior"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_AMD_mixed_attachment_samples"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_AMD_pipeline_compiler_control"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_AMD_rasterization_order"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_AMD_shader_ballot"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_AMD_shader_core_properties"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_AMD_shader_core_properties2"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_AMD_shader_early_and_late_fragment_tests"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_AMD_shader_explicit_vertex_parameter"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_AMD_shader_fragment_mask"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_AMD_shader_image_load_store_lod"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_AMD_shader_info"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_AMD_shader_trinary_minmax"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_AMD_texture_gather_bias_lod"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_ANDROID_external_format_resolve"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_ANDROID_external_memory_android_hardware_buffer"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_ARM_data_graph"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_ARM_format_pack"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_ARM_graph_instruction_set_tosa"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_ARM_performance_counters_by_region"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_ARM_pipeline_opacity_micromap"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_ARM_render_pass_striped"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_ARM_scheduling_controls"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_ARM_shader_core_builtins"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_ARM_shader_core_properties"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_ARM_shader_instrumentation"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_ARM_tensors"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_FUCHSIA_buffer_collection"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_FUCHSIA_external_memory"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_FUCHSIA_external_semaphore"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_GGP_frame_token"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_GOOGLE_decorate_string"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_GOOGLE_display_timing"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_GOOGLE_hlsl_functionality1"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_GOOGLE_user_type"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_HUAWEI_cluster_culling_shader"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_HUAWEI_hdr_vivid"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_HUAWEI_invocation_mask"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_HUAWEI_subpass_shading"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_IMG_filter_cubic"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_IMG_relaxed_line_rasterization"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_INTEL_performance_query"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_INTEL_shader_integer_functions2"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_MESA_image_alignment_control"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_MSFT_layered_driver"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NV_acquire_winrt_display"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NV_clip_space_w_scaling"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NV_cluster_acceleration_structure"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NV_command_buffer_inheritance"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NV_compute_occupancy_priority"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NV_cooperative_matrix"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NV_cooperative_matrix2"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NV_cooperative_vector"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NV_corner_sampled_image"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NV_coverage_reduction_mode"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NV_dedicated_allocation_image_aliasing"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NV_descriptor_pool_overallocation"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NV_device_diagnostic_checkpoints"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NV_device_diagnostics_config"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NV_device_generated_commands"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NV_device_generated_commands_compute"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NV_extended_sparse_address_space"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NV_external_compute_queue"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NV_external_memory_rdma"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NV_fill_rectangle"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NV_fragment_coverage_to_color"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NV_fragment_shading_rate_enums"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NV_framebuffer_mixed_samples"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NV_geometry_shader_passthrough"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NV_inherited_viewport_scissor"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NV_linear_color_attachment"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NV_low_latency"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NV_low_latency2"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NV_mesh_shader"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NV_optical_flow"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NV_partitioned_acceleration_structure"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NV_per_stage_descriptor_set"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NV_present_barrier"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NV_present_metering"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NV_push_constant_bank"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NV_raw_access_chains"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NV_ray_tracing_linear_swept_spheres"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NV_ray_tracing_motion_blur"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NV_ray_tracing_validation"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NV_representative_fragment_test"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NV_sample_mask_override_coverage"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NV_scissor_exclusive"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NV_shader_atomic_float16_vector"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NV_shader_image_footprint"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NV_shader_sm_builtins"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NV_shading_rate_image"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NV_viewport_array2"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NV_viewport_swizzle"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NVX_binary_import"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NVX_image_view_handle"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_NVX_multiview_per_view_attributes"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_OHOS_external_memory"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_QCOM_cooperative_matrix_conversion"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_QCOM_data_graph_model"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_QCOM_filter_cubic_clamp"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_QCOM_filter_cubic_weights"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_QCOM_image_processing"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_QCOM_image_processing2"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_QCOM_multiview_per_view_render_areas"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_QCOM_multiview_per_view_viewports"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_QCOM_queue_perf_hint"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_QCOM_render_pass_store_ops"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_QCOM_render_pass_transform"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_QCOM_rotated_copy_commands"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_QCOM_tile_memory_heap"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_QCOM_tile_properties"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_QCOM_tile_shading"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_QCOM_ycbcr_degamma"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_QNX_external_memory_screen_buffer"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_SEC_amigo_profiling"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_SEC_pipeline_cache_incremental_mode"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_VALVE_descriptor_set_host_mapping"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_VALVE_fragment_density_map_layered"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_VALVE_shader_mixed_float_dot_product"},
    {.status = ExtensionStatus::CURRENT, .name = "VK_VALVE_video_encode_rgb_conversion"},

    {.status = ExtensionStatus::PROVISIONAL, .name = "VK_KHR_portability_subset"},
    {.status = ExtensionStatus::PROVISIONAL, .name = "VK_AMDX_dense_geometry_format"},
    {.status = ExtensionStatus::PROVISIONAL, .name = "VK_AMDX_shader_enqueue"},
    {.status = ExtensionStatus::PROVISIONAL, .name = "VK_NV_cuda_kernel_launch"},

    {.status = ExtensionStatus::DEPRECATED, .name = "VK_EXT_buffer_device_address"},
    {.status = ExtensionStatus::DEPRECATED, .name = "VK_EXT_calibrated_timestamps"},
    {.status = ExtensionStatus::DEPRECATED, .name = "VK_EXT_debug_marker"},
    {.status = ExtensionStatus::DEPRECATED, .name = "VK_EXT_depth_clamp_zero_one"},
    {.status = ExtensionStatus::DEPRECATED, .name = "VK_EXT_descriptor_buffer"},
    {.status = ExtensionStatus::DEPRECATED, .name = "VK_EXT_global_priority"},
    {.status = ExtensionStatus::DEPRECATED, .name = "VK_EXT_global_priority_query"},
    {.status = ExtensionStatus::DEPRECATED, .name = "VK_EXT_index_type_uint8"},
    {.status = ExtensionStatus::DEPRECATED, .name = "VK_EXT_line_rasterization"},
    {.status = ExtensionStatus::DEPRECATED, .name = "VK_EXT_load_store_op_none"},
    {.status = ExtensionStatus::DEPRECATED, .name = "VK_EXT_present_mode_fifo_latest_ready"},
    {.status = ExtensionStatus::DEPRECATED, .name = "VK_EXT_robustness2"},
    {.status = ExtensionStatus::DEPRECATED, .name = "VK_EXT_shader_subgroup_ballot"},
    {.status = ExtensionStatus::DEPRECATED, .name = "VK_EXT_shader_subgroup_vote"},
    {.status = ExtensionStatus::DEPRECATED, .name = "VK_EXT_swapchain_maintenance1"},
    {.status = ExtensionStatus::DEPRECATED, .name = "VK_EXT_vertex_attribute_divisor"},
    {.status = ExtensionStatus::DEPRECATED, .name = "VK_EXT_vertex_attribute_robustness"},
    {.status = ExtensionStatus::DEPRECATED, .name = "VK_AMD_draw_indirect_count"},
    {.status = ExtensionStatus::DEPRECATED, .name = "VK_AMD_gpu_shader_half_float"},
    {.status = ExtensionStatus::DEPRECATED, .name = "VK_AMD_gpu_shader_int16"},
    {.status = ExtensionStatus::DEPRECATED, .name = "VK_AMD_negative_viewport_height"},
    {.status = ExtensionStatus::DEPRECATED, .name = "VK_ARM_rasterization_order_attachment_access"},
    {.status = ExtensionStatus::DEPRECATED, .name = "VK_IMG_format_pvrtc"},
    {.status = ExtensionStatus::DEPRECATED, .name = "VK_NV_compute_shader_derivatives"},
    {.status = ExtensionStatus::DEPRECATED, .name = "VK_NV_copy_memory_indirect"},
    {.status = ExtensionStatus::DEPRECATED, .name = "VK_NV_dedicated_allocation"},
    {.status = ExtensionStatus::DEPRECATED, .name = "VK_NV_displacement_micromap"},
    {.status = ExtensionStatus::DEPRECATED, .name = "VK_NV_external_memory"},
    {.status = ExtensionStatus::DEPRECATED, .name = "VK_NV_external_memory_win32"},
    {.status = ExtensionStatus::DEPRECATED, .name = "VK_NV_fragment_shader_barycentric"},
    {.status = ExtensionStatus::DEPRECATED, .name = "VK_NV_glsl_shader"},
    {.status = ExtensionStatus::DEPRECATED, .name = "VK_NV_memory_decompression"},
    {.status = ExtensionStatus::DEPRECATED, .name = "VK_NV_ray_tracing"},
    {.status = ExtensionStatus::DEPRECATED, .name = "VK_NV_ray_tracing_invocation_reorder"},
    {.status = ExtensionStatus::DEPRECATED, .name = "VK_NV_shader_subgroup_partitioned"},
    {.status = ExtensionStatus::DEPRECATED, .name = "VK_NV_win32_keyed_mutex"},
    {.status = ExtensionStatus::DEPRECATED, .name = "VK_QCOM_fragment_density_map_offset"},
    {.status = ExtensionStatus::DEPRECATED, .name = "VK_QCOM_render_pass_shader_resolve"},
    {.status = ExtensionStatus::DEPRECATED, .name = "VK_VALVE_mutable_descriptor_type"},

    {.status = ExtensionStatus::UNREGISTERED, .name = "VK_KHR_ray_tracing"},
    {.status = ExtensionStatus::UNREGISTERED, .name = "VK_EXT_2d_imageview_3d_image"},
    {.status = ExtensionStatus::UNREGISTERED, .name = "VK_EXT_progress_marker"},
    {.status = ExtensionStatus::UNREGISTERED, .name = "VK_EXT_swapchain_colorspace"},
    {.status = ExtensionStatus::UNREGISTERED, .name = "VK_EXT_video_decode_h264"},
    {.status = ExtensionStatus::UNREGISTERED, .name = "VK_EXT_video_decode_h265"},
    {.status = ExtensionStatus::UNREGISTERED, .name = "VK_EXT_video_encode_h264"},
    {.status = ExtensionStatus::UNREGISTERED, .name = "VK_EXT_video_encode_h265"},
    {.status = ExtensionStatus::UNREGISTERED, .name = "VK_AMD_calibrated_timestamps"},
    {.status = ExtensionStatus::UNREGISTERED, .name = "VK_AMD_gpa_interface"},
    {.status = ExtensionStatus::UNREGISTERED, .name = "VK_AMD_gpu_shader_half_float_fetch"},
    {.status = ExtensionStatus::UNREGISTERED, .name = "VK_AMD_image_layout_resolve"},
    {.status = ExtensionStatus::UNREGISTERED, .name = "VK_AMD_private_display"},
    {.status = ExtensionStatus::UNREGISTERED, .name = "VK_AMD_programmable_sample_locations"},
    {.status = ExtensionStatus::UNREGISTERED, .name = "VK_AMD_wave_limits"},
    {.status = ExtensionStatus::UNREGISTERED, .name = "VK_ANDROID_frame_boundary"},
    {.status = ExtensionStatus::UNREGISTERED, .name = "VK_EXTX_portability_subset"},
    {.status = ExtensionStatus::UNREGISTERED, .name = "VK_GOOGLE_sampler_filtering_precision"},
    {.status = ExtensionStatus::UNREGISTERED, .name = "VK_HUAWEI_partial_update"},
    {.status = ExtensionStatus::UNREGISTERED, .name = "VK_HUAWEI_performance_query"},
    {.status = ExtensionStatus::UNREGISTERED, .name = "VK_HUAWEI_prerotation"},
    {.status = ExtensionStatus::UNREGISTERED, .name = "VK_HUAWEI_smart_cache"},
    {.status = ExtensionStatus::UNREGISTERED, .name = "VK_IMG_conditional_rendering_comparison_info"},
    {.status = ExtensionStatus::UNREGISTERED, .name = "VK_KHX_device_group"},
    {.status = ExtensionStatus::UNREGISTERED, .name = "VK_KHX_external_memory"},
    {.status = ExtensionStatus::UNREGISTERED, .name = "VK_KHX_external_memory_fd"},
    {.status = ExtensionStatus::UNREGISTERED, .name = "VK_KHX_external_memory_win32"},
    {.status = ExtensionStatus::UNREGISTERED, .name = "VK_KHX_external_semaphore"},
    {.status = ExtensionStatus::UNREGISTERED, .name = "VK_KHX_external_semaphore_fd"},
    {.status = ExtensionStatus::UNREGISTERED, .name = "VK_KHX_external_semaphore_win32"},
    {.status = ExtensionStatus::UNREGISTERED, .name = "VK_KHX_multiview"},
    {.status = ExtensionStatus::UNREGISTERED, .name = "VK_KHX_win32_keyed_mutex"},
    {.status = ExtensionStatus::UNREGISTERED, .name = "VK_MESA_query_timestamp"},
    {.status = ExtensionStatus::UNREGISTERED, .name = "VK_MESA_video_decode_av1"},
    {.status = ExtensionStatus::UNREGISTERED, .name = "VK_MTK_dynamic_cache_memory"},
    {.status = ExtensionStatus::UNREGISTERED, .name = "VK_NEMU_api_batch_calling"},
    {.status = ExtensionStatus::UNREGISTERED, .name = "VK_NV_device_debug_checkpoints"},
    {.status = ExtensionStatus::UNREGISTERED, .name = "VK_NV_disk_cache_utils"},
    {.status = ExtensionStatus::UNREGISTERED, .name = "VK_NV_internal_nvpresent"},
    {.status = ExtensionStatus::UNREGISTERED, .name = "VK_NV_present_metering2"},
    {.status = ExtensionStatus::UNREGISTERED, .name = "VK_NV_rdma_memory"},
    {.status = ExtensionStatus::UNREGISTERED, .name = "VK_NV_texture_dirty_tile_map"},
    {.status = ExtensionStatus::UNREGISTERED, .name = "VK_NV_video_queue"},
    {.status = ExtensionStatus::UNREGISTERED, .name = "VK_NVX_device_generated_commands"},
    {.status = ExtensionStatus::UNREGISTERED, .name = "VK_NVX_display_timing"},
    {.status = ExtensionStatus::UNREGISTERED, .name = "VK_NVX_image_clear_padding"},
    {.status = ExtensionStatus::UNREGISTERED, .name = "VK_NVX_raytracing"},
    {.status = ExtensionStatus::UNREGISTERED, .name = "VK_WINE_openvr_device_extensions"},
    {.status = ExtensionStatus::UNREGISTERED, .name = "VK_WINE_openxr_device_extensions"},
    {.status = ExtensionStatus::UNREGISTERED, .name = "VK_XIAOMI_blur_drawcall"},
    {.status = ExtensionStatus::UNREGISTERED, .name = "VK_XIAOMI_partial_update"},
};
} // namespace
} // namespace vkcheck
