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

    #ifndef MESA_VK_ENUM_TO_STR_H
    #define MESA_VK_ENUM_TO_STR_H

    #include <vulkan/vulkan.h>
    #include <vulkan/vk_android_native_buffer.h>

    #ifdef __cplusplus
    extern "C" {
    #endif

    #define _VK_AMD_buffer_marker_number (180)
    #define _VK_AMD_device_coherent_memory_number (230)
    #define _VK_AMD_display_native_hdr_number (214)
    #define _VK_AMD_draw_indirect_count_number (34)
    #define _VK_AMD_gcn_shader_number (26)
    #define _VK_AMD_gpu_shader_half_float_number (37)
    #define _VK_AMD_gpu_shader_int16_number (133)
    #define _VK_AMD_memory_overallocation_behavior_number (190)
    #define _VK_AMD_mixed_attachment_samples_number (137)
    #define _VK_AMD_negative_viewport_height_number (36)
    #define _VK_AMD_pipeline_compiler_control_number (184)
    #define _VK_AMD_rasterization_order_number (19)
    #define _VK_AMD_shader_ballot_number (38)
    #define _VK_AMD_shader_core_properties_number (186)
    #define _VK_AMD_shader_core_properties2_number (228)
    #define _VK_AMD_shader_explicit_vertex_parameter_number (22)
    #define _VK_AMD_shader_fragment_mask_number (138)
    #define _VK_AMD_shader_image_load_store_lod_number (47)
    #define _VK_AMD_shader_info_number (43)
    #define _VK_AMD_shader_trinary_minmax_number (21)
    #define _VK_AMD_texture_gather_bias_lod_number (42)
    #define _VK_ANDROID_external_memory_android_hardware_buffer_number (130)
    #define _VK_EXT_acquire_xlib_display_number (90)
    #define _VK_EXT_astc_decode_mode_number (68)
    #define _VK_EXT_blend_operation_advanced_number (149)
    #define _VK_EXT_buffer_device_address_number (245)
    #define _VK_EXT_calibrated_timestamps_number (185)
    #define _VK_EXT_conditional_rendering_number (82)
    #define _VK_EXT_conservative_rasterization_number (102)
    #define _VK_EXT_debug_marker_number (23)
    #define _VK_EXT_debug_report_number (12)
    #define _VK_EXT_debug_utils_number (129)
    #define _VK_EXT_depth_clip_enable_number (103)
    #define _VK_EXT_depth_range_unrestricted_number (14)
    #define _VK_EXT_descriptor_indexing_number (162)
    #define _VK_EXT_direct_mode_display_number (89)
    #define _VK_EXT_discard_rectangles_number (100)
    #define _VK_EXT_display_control_number (92)
    #define _VK_EXT_display_surface_counter_number (91)
    #define _VK_EXT_external_memory_dma_buf_number (126)
    #define _VK_EXT_external_memory_host_number (179)
    #define _VK_EXT_filter_cubic_number (171)
    #define _VK_EXT_fragment_density_map_number (219)
    #define _VK_EXT_fragment_shader_interlock_number (252)
    #define _VK_EXT_full_screen_exclusive_number (256)
    #define _VK_EXT_global_priority_number (175)
    #define _VK_EXT_hdr_metadata_number (106)
    #define _VK_EXT_headless_surface_number (257)
    #define _VK_EXT_host_query_reset_number (262)
    #define _VK_EXT_image_drm_format_modifier_number (159)
    #define _VK_EXT_index_type_uint8_number (266)
    #define _VK_EXT_inline_uniform_block_number (139)
    #define _VK_EXT_line_rasterization_number (260)
    #define _VK_EXT_memory_budget_number (238)
    #define _VK_EXT_memory_priority_number (239)
    #define _VK_EXT_metal_surface_number (218)
    #define _VK_EXT_pci_bus_info_number (213)
    #define _VK_EXT_pipeline_creation_feedback_number (193)
    #define _VK_EXT_post_depth_coverage_number (156)
    #define _VK_EXT_queue_family_foreign_number (127)
    #define _VK_EXT_sample_locations_number (144)
    #define _VK_EXT_sampler_filter_minmax_number (131)
    #define _VK_EXT_scalar_block_layout_number (222)
    #define _VK_EXT_separate_stencil_usage_number (247)
    #define _VK_EXT_shader_demote_to_helper_invocation_number (277)
    #define _VK_EXT_shader_stencil_export_number (141)
    #define _VK_EXT_shader_subgroup_ballot_number (65)
    #define _VK_EXT_shader_subgroup_vote_number (66)
    #define _VK_EXT_shader_viewport_index_layer_number (163)
    #define _VK_EXT_subgroup_size_control_number (226)
    #define _VK_EXT_swapchain_colorspace_number (105)
    #define _VK_EXT_texel_buffer_alignment_number (282)
    #define _VK_EXT_texture_compression_astc_hdr_number (67)
    #define _VK_EXT_tooling_info_number (246)
    #define _VK_EXT_transform_feedback_number (29)
    #define _VK_EXT_validation_cache_number (161)
    #define _VK_EXT_validation_features_number (248)
    #define _VK_EXT_validation_flags_number (62)
    #define _VK_EXT_vertex_attribute_divisor_number (191)
    #define _VK_EXT_ycbcr_image_arrays_number (253)
    #define _VK_FUCHSIA_imagepipe_surface_number (215)
    #define _VK_GGP_frame_token_number (192)
    #define _VK_GGP_stream_descriptor_surface_number (50)
    #define _VK_GOOGLE_decorate_string_number (225)
    #define _VK_GOOGLE_display_timing_number (93)
    #define _VK_GOOGLE_hlsl_functionality1_number (224)
    #define _VK_GOOGLE_user_type_number (290)
    #define _VK_IMG_filter_cubic_number (16)
    #define _VK_IMG_format_pvrtc_number (55)
    #define _VK_INTEL_performance_query_number (211)
    #define _VK_INTEL_shader_integer_functions2_number (210)
    #define _VK_KHR_16bit_storage_number (84)
    #define _VK_KHR_8bit_storage_number (178)
    #define _VK_KHR_android_surface_number (9)
    #define _VK_KHR_bind_memory2_number (158)
    #define _VK_KHR_buffer_device_address_number (258)
    #define _VK_KHR_create_renderpass2_number (110)
    #define _VK_KHR_dedicated_allocation_number (128)
    #define _VK_KHR_depth_stencil_resolve_number (200)
    #define _VK_KHR_descriptor_update_template_number (86)
    #define _VK_KHR_device_group_number (61)
    #define _VK_KHR_device_group_creation_number (71)
    #define _VK_KHR_display_number (3)
    #define _VK_KHR_display_swapchain_number (4)
    #define _VK_KHR_draw_indirect_count_number (170)
    #define _VK_KHR_driver_properties_number (197)
    #define _VK_KHR_external_fence_number (114)
    #define _VK_KHR_external_fence_capabilities_number (113)
    #define _VK_KHR_external_fence_fd_number (116)
    #define _VK_KHR_external_fence_win32_number (115)
    #define _VK_KHR_external_memory_number (73)
    #define _VK_KHR_external_memory_capabilities_number (72)
    #define _VK_KHR_external_memory_fd_number (75)
    #define _VK_KHR_external_memory_win32_number (74)
    #define _VK_KHR_external_semaphore_number (78)
    #define _VK_KHR_external_semaphore_capabilities_number (77)
    #define _VK_KHR_external_semaphore_fd_number (80)
    #define _VK_KHR_external_semaphore_win32_number (79)
    #define _VK_KHR_get_display_properties2_number (122)
    #define _VK_KHR_get_memory_requirements2_number (147)
    #define _VK_KHR_get_physical_device_properties2_number (60)
    #define _VK_KHR_get_surface_capabilities2_number (120)
    #define _VK_KHR_image_format_list_number (148)
    #define _VK_KHR_imageless_framebuffer_number (109)
    #define _VK_KHR_incremental_present_number (85)
    #define _VK_KHR_maintenance1_number (70)
    #define _VK_KHR_maintenance2_number (118)
    #define _VK_KHR_maintenance3_number (169)
    #define _VK_KHR_multiview_number (54)
    #define _VK_KHR_performance_query_number (117)
    #define _VK_KHR_pipeline_executable_properties_number (270)
    #define _VK_KHR_push_descriptor_number (81)
    #define _VK_KHR_relaxed_block_layout_number (145)
    #define _VK_KHR_sampler_mirror_clamp_to_edge_number (15)
    #define _VK_KHR_sampler_ycbcr_conversion_number (157)
    #define _VK_KHR_separate_depth_stencil_layouts_number (242)
    #define _VK_KHR_shader_atomic_int64_number (181)
    #define _VK_KHR_shader_clock_number (182)
    #define _VK_KHR_shader_draw_parameters_number (64)
    #define _VK_KHR_shader_float16_int8_number (83)
    #define _VK_KHR_shader_float_controls_number (198)
    #define _VK_KHR_shader_subgroup_extended_types_number (176)
    #define _VK_KHR_shared_presentable_image_number (112)
    #define _VK_KHR_spirv_1_4_number (237)
    #define _VK_KHR_storage_buffer_storage_class_number (132)
    #define _VK_KHR_surface_number (1)
    #define _VK_KHR_surface_protected_capabilities_number (240)
    #define _VK_KHR_swapchain_number (2)
    #define _VK_KHR_swapchain_mutable_format_number (201)
    #define _VK_KHR_timeline_semaphore_number (208)
    #define _VK_KHR_uniform_buffer_standard_layout_number (254)
    #define _VK_KHR_variable_pointers_number (121)
    #define _VK_KHR_vulkan_memory_model_number (212)
    #define _VK_KHR_wayland_surface_number (7)
    #define _VK_KHR_win32_keyed_mutex_number (76)
    #define _VK_KHR_win32_surface_number (10)
    #define _VK_KHR_xcb_surface_number (6)
    #define _VK_KHR_xlib_surface_number (5)
    #define _VK_MVK_ios_surface_number (123)
    #define _VK_MVK_macos_surface_number (124)
    #define _VK_NN_vi_surface_number (63)
    #define _VK_NVX_device_generated_commands_number (87)
    #define _VK_NVX_image_view_handle_number (31)
    #define _VK_NVX_multiview_per_view_attributes_number (98)
    #define _VK_NV_clip_space_w_scaling_number (88)
    #define _VK_NV_compute_shader_derivatives_number (202)
    #define _VK_NV_cooperative_matrix_number (250)
    #define _VK_NV_corner_sampled_image_number (51)
    #define _VK_NV_coverage_reduction_mode_number (251)
    #define _VK_NV_dedicated_allocation_number (27)
    #define _VK_NV_dedicated_allocation_image_aliasing_number (241)
    #define _VK_NV_device_diagnostic_checkpoints_number (207)
    #define _VK_NV_external_memory_number (57)
    #define _VK_NV_external_memory_capabilities_number (56)
    #define _VK_NV_external_memory_win32_number (58)
    #define _VK_NV_fill_rectangle_number (154)
    #define _VK_NV_fragment_coverage_to_color_number (150)
    #define _VK_NV_fragment_shader_barycentric_number (204)
    #define _VK_NV_framebuffer_mixed_samples_number (153)
    #define _VK_NV_geometry_shader_passthrough_number (96)
    #define _VK_NV_glsl_shader_number (13)
    #define _VK_NV_mesh_shader_number (203)
    #define _VK_NV_ray_tracing_number (166)
    #define _VK_NV_representative_fragment_test_number (167)
    #define _VK_NV_sample_mask_override_coverage_number (95)
    #define _VK_NV_scissor_exclusive_number (206)
    #define _VK_NV_shader_image_footprint_number (205)
    #define _VK_NV_shader_sm_builtins_number (155)
    #define _VK_NV_shader_subgroup_partitioned_number (199)
    #define _VK_NV_shading_rate_image_number (165)
    #define _VK_NV_viewport_array2_number (97)
    #define _VK_NV_viewport_swizzle_number (99)
    #define _VK_NV_win32_keyed_mutex_number (59)

    const char * vk_AccelerationStructureMemoryRequirementsTypeNV_to_str(VkAccelerationStructureMemoryRequirementsTypeNV input);
    const char * vk_AccelerationStructureTypeNV_to_str(VkAccelerationStructureTypeNV input);
    const char * vk_AttachmentLoadOp_to_str(VkAttachmentLoadOp input);
    const char * vk_AttachmentStoreOp_to_str(VkAttachmentStoreOp input);
    const char * vk_BlendFactor_to_str(VkBlendFactor input);
    const char * vk_BlendOp_to_str(VkBlendOp input);
    const char * vk_BlendOverlapEXT_to_str(VkBlendOverlapEXT input);
    const char * vk_BorderColor_to_str(VkBorderColor input);
    const char * vk_ChromaLocation_to_str(VkChromaLocation input);
    const char * vk_CoarseSampleOrderTypeNV_to_str(VkCoarseSampleOrderTypeNV input);
    const char * vk_ColorSpaceKHR_to_str(VkColorSpaceKHR input);
    const char * vk_CommandBufferLevel_to_str(VkCommandBufferLevel input);
    const char * vk_CompareOp_to_str(VkCompareOp input);
    const char * vk_ComponentSwizzle_to_str(VkComponentSwizzle input);
    const char * vk_ComponentTypeNV_to_str(VkComponentTypeNV input);
    const char * vk_ConservativeRasterizationModeEXT_to_str(VkConservativeRasterizationModeEXT input);
    const char * vk_CopyAccelerationStructureModeNV_to_str(VkCopyAccelerationStructureModeNV input);
    const char * vk_CoverageModulationModeNV_to_str(VkCoverageModulationModeNV input);
    const char * vk_CoverageReductionModeNV_to_str(VkCoverageReductionModeNV input);
    const char * vk_DebugReportObjectTypeEXT_to_str(VkDebugReportObjectTypeEXT input);
    const char * vk_DescriptorType_to_str(VkDescriptorType input);
    const char * vk_DescriptorUpdateTemplateType_to_str(VkDescriptorUpdateTemplateType input);
    const char * vk_DeviceEventTypeEXT_to_str(VkDeviceEventTypeEXT input);
    const char * vk_DiscardRectangleModeEXT_to_str(VkDiscardRectangleModeEXT input);
    const char * vk_DisplayEventTypeEXT_to_str(VkDisplayEventTypeEXT input);
    const char * vk_DisplayPowerStateEXT_to_str(VkDisplayPowerStateEXT input);
    const char * vk_DriverId_to_str(VkDriverId input);
    const char * vk_DynamicState_to_str(VkDynamicState input);
    const char * vk_Filter_to_str(VkFilter input);
    const char * vk_Format_to_str(VkFormat input);
    const char * vk_FrontFace_to_str(VkFrontFace input);
#ifdef VK_USE_PLATFORM_WIN32_KHR
    const char * vk_FullScreenExclusiveEXT_to_str(VkFullScreenExclusiveEXT input);
#endif
    const char * vk_GeometryTypeNV_to_str(VkGeometryTypeNV input);
    const char * vk_ImageLayout_to_str(VkImageLayout input);
    const char * vk_ImageTiling_to_str(VkImageTiling input);
    const char * vk_ImageType_to_str(VkImageType input);
    const char * vk_ImageViewType_to_str(VkImageViewType input);
    const char * vk_IndexType_to_str(VkIndexType input);
    const char * vk_IndirectCommandsTokenTypeNVX_to_str(VkIndirectCommandsTokenTypeNVX input);
    const char * vk_InternalAllocationType_to_str(VkInternalAllocationType input);
    const char * vk_LineRasterizationModeEXT_to_str(VkLineRasterizationModeEXT input);
    const char * vk_LogicOp_to_str(VkLogicOp input);
    const char * vk_MemoryOverallocationBehaviorAMD_to_str(VkMemoryOverallocationBehaviorAMD input);
    const char * vk_ObjectEntryTypeNVX_to_str(VkObjectEntryTypeNVX input);
    const char * vk_ObjectType_to_str(VkObjectType input);
    const char * vk_PerformanceConfigurationTypeINTEL_to_str(VkPerformanceConfigurationTypeINTEL input);
    const char * vk_PerformanceCounterScopeKHR_to_str(VkPerformanceCounterScopeKHR input);
    const char * vk_PerformanceCounterStorageKHR_to_str(VkPerformanceCounterStorageKHR input);
    const char * vk_PerformanceCounterUnitKHR_to_str(VkPerformanceCounterUnitKHR input);
    const char * vk_PerformanceOverrideTypeINTEL_to_str(VkPerformanceOverrideTypeINTEL input);
    const char * vk_PerformanceParameterTypeINTEL_to_str(VkPerformanceParameterTypeINTEL input);
    const char * vk_PerformanceValueTypeINTEL_to_str(VkPerformanceValueTypeINTEL input);
    const char * vk_PhysicalDeviceType_to_str(VkPhysicalDeviceType input);
    const char * vk_PipelineBindPoint_to_str(VkPipelineBindPoint input);
    const char * vk_PipelineCacheHeaderVersion_to_str(VkPipelineCacheHeaderVersion input);
    const char * vk_PipelineExecutableStatisticFormatKHR_to_str(VkPipelineExecutableStatisticFormatKHR input);
    const char * vk_PointClippingBehavior_to_str(VkPointClippingBehavior input);
    const char * vk_PolygonMode_to_str(VkPolygonMode input);
    const char * vk_PresentModeKHR_to_str(VkPresentModeKHR input);
    const char * vk_PrimitiveTopology_to_str(VkPrimitiveTopology input);
    const char * vk_QueryPoolSamplingModeINTEL_to_str(VkQueryPoolSamplingModeINTEL input);
    const char * vk_QueryType_to_str(VkQueryType input);
    const char * vk_QueueGlobalPriorityEXT_to_str(VkQueueGlobalPriorityEXT input);
    const char * vk_RasterizationOrderAMD_to_str(VkRasterizationOrderAMD input);
    const char * vk_RayTracingShaderGroupTypeNV_to_str(VkRayTracingShaderGroupTypeNV input);
    const char * vk_Result_to_str(VkResult input);
    const char * vk_SamplerAddressMode_to_str(VkSamplerAddressMode input);
    const char * vk_SamplerMipmapMode_to_str(VkSamplerMipmapMode input);
    const char * vk_SamplerReductionMode_to_str(VkSamplerReductionMode input);
    const char * vk_SamplerYcbcrModelConversion_to_str(VkSamplerYcbcrModelConversion input);
    const char * vk_SamplerYcbcrRange_to_str(VkSamplerYcbcrRange input);
    const char * vk_ScopeNV_to_str(VkScopeNV input);
    const char * vk_SemaphoreType_to_str(VkSemaphoreType input);
    const char * vk_ShaderFloatControlsIndependence_to_str(VkShaderFloatControlsIndependence input);
    const char * vk_ShaderInfoTypeAMD_to_str(VkShaderInfoTypeAMD input);
    const char * vk_ShadingRatePaletteEntryNV_to_str(VkShadingRatePaletteEntryNV input);
    const char * vk_SharingMode_to_str(VkSharingMode input);
    const char * vk_StencilOp_to_str(VkStencilOp input);
    const char * vk_StructureType_to_str(VkStructureType input);
    const char * vk_SubpassContents_to_str(VkSubpassContents input);
    const char * vk_SystemAllocationScope_to_str(VkSystemAllocationScope input);
    const char * vk_TessellationDomainOrigin_to_str(VkTessellationDomainOrigin input);
    const char * vk_TimeDomainEXT_to_str(VkTimeDomainEXT input);
    const char * vk_ValidationCacheHeaderVersionEXT_to_str(VkValidationCacheHeaderVersionEXT input);
    const char * vk_ValidationCheckEXT_to_str(VkValidationCheckEXT input);
    const char * vk_ValidationFeatureDisableEXT_to_str(VkValidationFeatureDisableEXT input);
    const char * vk_ValidationFeatureEnableEXT_to_str(VkValidationFeatureEnableEXT input);
    const char * vk_VendorId_to_str(VkVendorId input);
    const char * vk_VertexInputRate_to_str(VkVertexInputRate input);
    const char * vk_ViewportCoordinateSwizzleNV_to_str(VkViewportCoordinateSwizzleNV input);

    size_t vk_structure_type_size(const struct VkBaseInStructure *item);

    struct vk_instance_dispatch_table {
        PFN_vkGetInstanceProcAddr GetInstanceProcAddr;
    #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
        PFN_vkAcquireXlibDisplayEXT AcquireXlibDisplayEXT;
    #endif
    #ifdef VK_USE_PLATFORM_ANDROID_KHR
        PFN_vkCreateAndroidSurfaceKHR CreateAndroidSurfaceKHR;
    #endif
        PFN_vkCreateDebugReportCallbackEXT CreateDebugReportCallbackEXT;
        PFN_vkCreateDebugUtilsMessengerEXT CreateDebugUtilsMessengerEXT;
        PFN_vkCreateDevice CreateDevice;
        PFN_vkCreateDisplayModeKHR CreateDisplayModeKHR;
        PFN_vkCreateDisplayPlaneSurfaceKHR CreateDisplayPlaneSurfaceKHR;
        PFN_vkCreateHeadlessSurfaceEXT CreateHeadlessSurfaceEXT;
    #ifdef VK_USE_PLATFORM_IOS_MVK
        PFN_vkCreateIOSSurfaceMVK CreateIOSSurfaceMVK;
    #endif
    #ifdef VK_USE_PLATFORM_FUCHSIA
        PFN_vkCreateImagePipeSurfaceFUCHSIA CreateImagePipeSurfaceFUCHSIA;
    #endif
        PFN_vkCreateInstance CreateInstance;
    #ifdef VK_USE_PLATFORM_MACOS_MVK
        PFN_vkCreateMacOSSurfaceMVK CreateMacOSSurfaceMVK;
    #endif
    #ifdef VK_USE_PLATFORM_METAL_EXT
        PFN_vkCreateMetalSurfaceEXT CreateMetalSurfaceEXT;
    #endif
    #ifdef VK_USE_PLATFORM_GGP
        PFN_vkCreateStreamDescriptorSurfaceGGP CreateStreamDescriptorSurfaceGGP;
    #endif
    #ifdef VK_USE_PLATFORM_VI_NN
        PFN_vkCreateViSurfaceNN CreateViSurfaceNN;
    #endif
    #ifdef VK_USE_PLATFORM_WAYLAND_KHR
        PFN_vkCreateWaylandSurfaceKHR CreateWaylandSurfaceKHR;
    #endif
    #ifdef VK_USE_PLATFORM_WIN32_KHR
        PFN_vkCreateWin32SurfaceKHR CreateWin32SurfaceKHR;
    #endif
    #ifdef VK_USE_PLATFORM_XCB_KHR
        PFN_vkCreateXcbSurfaceKHR CreateXcbSurfaceKHR;
    #endif
    #ifdef VK_USE_PLATFORM_XLIB_KHR
        PFN_vkCreateXlibSurfaceKHR CreateXlibSurfaceKHR;
    #endif
        PFN_vkDebugReportMessageEXT DebugReportMessageEXT;
        PFN_vkDestroyDebugReportCallbackEXT DestroyDebugReportCallbackEXT;
        PFN_vkDestroyDebugUtilsMessengerEXT DestroyDebugUtilsMessengerEXT;
        PFN_vkDestroyInstance DestroyInstance;
        PFN_vkDestroySurfaceKHR DestroySurfaceKHR;
        PFN_vkEnumerateDeviceExtensionProperties EnumerateDeviceExtensionProperties;
        PFN_vkEnumerateDeviceLayerProperties EnumerateDeviceLayerProperties;
        PFN_vkEnumerateInstanceExtensionProperties EnumerateInstanceExtensionProperties;
        PFN_vkEnumerateInstanceLayerProperties EnumerateInstanceLayerProperties;
        PFN_vkEnumerateInstanceVersion EnumerateInstanceVersion;
        PFN_vkEnumeratePhysicalDeviceGroups EnumeratePhysicalDeviceGroups;
        PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR EnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR;
        PFN_vkEnumeratePhysicalDevices EnumeratePhysicalDevices;
        PFN_vkGetDisplayModeProperties2KHR GetDisplayModeProperties2KHR;
        PFN_vkGetDisplayModePropertiesKHR GetDisplayModePropertiesKHR;
        PFN_vkGetDisplayPlaneCapabilities2KHR GetDisplayPlaneCapabilities2KHR;
        PFN_vkGetDisplayPlaneCapabilitiesKHR GetDisplayPlaneCapabilitiesKHR;
        PFN_vkGetDisplayPlaneSupportedDisplaysKHR GetDisplayPlaneSupportedDisplaysKHR;
        PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT GetPhysicalDeviceCalibrateableTimeDomainsEXT;
        PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV GetPhysicalDeviceCooperativeMatrixPropertiesNV;
        PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR GetPhysicalDeviceDisplayPlaneProperties2KHR;
        PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR GetPhysicalDeviceDisplayPlanePropertiesKHR;
        PFN_vkGetPhysicalDeviceDisplayProperties2KHR GetPhysicalDeviceDisplayProperties2KHR;
        PFN_vkGetPhysicalDeviceDisplayPropertiesKHR GetPhysicalDeviceDisplayPropertiesKHR;
        PFN_vkGetPhysicalDeviceExternalBufferProperties GetPhysicalDeviceExternalBufferProperties;
        PFN_vkGetPhysicalDeviceExternalFenceProperties GetPhysicalDeviceExternalFenceProperties;
        PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV GetPhysicalDeviceExternalImageFormatPropertiesNV;
        PFN_vkGetPhysicalDeviceExternalSemaphoreProperties GetPhysicalDeviceExternalSemaphoreProperties;
        PFN_vkGetPhysicalDeviceFeatures GetPhysicalDeviceFeatures;
        PFN_vkGetPhysicalDeviceFeatures2 GetPhysicalDeviceFeatures2;
        PFN_vkGetPhysicalDeviceFormatProperties GetPhysicalDeviceFormatProperties;
        PFN_vkGetPhysicalDeviceFormatProperties2 GetPhysicalDeviceFormatProperties2;
        PFN_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX GetPhysicalDeviceGeneratedCommandsPropertiesNVX;
        PFN_vkGetPhysicalDeviceImageFormatProperties GetPhysicalDeviceImageFormatProperties;
        PFN_vkGetPhysicalDeviceImageFormatProperties2 GetPhysicalDeviceImageFormatProperties2;
        PFN_vkGetPhysicalDeviceMemoryProperties GetPhysicalDeviceMemoryProperties;
        PFN_vkGetPhysicalDeviceMemoryProperties2 GetPhysicalDeviceMemoryProperties2;
        PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT GetPhysicalDeviceMultisamplePropertiesEXT;
        PFN_vkGetPhysicalDevicePresentRectanglesKHR GetPhysicalDevicePresentRectanglesKHR;
        PFN_vkGetPhysicalDeviceProperties GetPhysicalDeviceProperties;
        PFN_vkGetPhysicalDeviceProperties2 GetPhysicalDeviceProperties2;
        PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR GetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR;
        PFN_vkGetPhysicalDeviceQueueFamilyProperties GetPhysicalDeviceQueueFamilyProperties;
        PFN_vkGetPhysicalDeviceQueueFamilyProperties2 GetPhysicalDeviceQueueFamilyProperties2;
        PFN_vkGetPhysicalDeviceSparseImageFormatProperties GetPhysicalDeviceSparseImageFormatProperties;
        PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 GetPhysicalDeviceSparseImageFormatProperties2;
        PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV GetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV;
        PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT GetPhysicalDeviceSurfaceCapabilities2EXT;
        PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR GetPhysicalDeviceSurfaceCapabilities2KHR;
        PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR GetPhysicalDeviceSurfaceCapabilitiesKHR;
        PFN_vkGetPhysicalDeviceSurfaceFormats2KHR GetPhysicalDeviceSurfaceFormats2KHR;
        PFN_vkGetPhysicalDeviceSurfaceFormatsKHR GetPhysicalDeviceSurfaceFormatsKHR;
    #ifdef VK_USE_PLATFORM_WIN32_KHR
        PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT GetPhysicalDeviceSurfacePresentModes2EXT;
    #endif
        PFN_vkGetPhysicalDeviceSurfacePresentModesKHR GetPhysicalDeviceSurfacePresentModesKHR;
        PFN_vkGetPhysicalDeviceSurfaceSupportKHR GetPhysicalDeviceSurfaceSupportKHR;
        PFN_vkGetPhysicalDeviceToolPropertiesEXT GetPhysicalDeviceToolPropertiesEXT;
    #ifdef VK_USE_PLATFORM_WAYLAND_KHR
        PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR GetPhysicalDeviceWaylandPresentationSupportKHR;
    #endif
    #ifdef VK_USE_PLATFORM_WIN32_KHR
        PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR GetPhysicalDeviceWin32PresentationSupportKHR;
    #endif
    #ifdef VK_USE_PLATFORM_XCB_KHR
        PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR GetPhysicalDeviceXcbPresentationSupportKHR;
    #endif
    #ifdef VK_USE_PLATFORM_XLIB_KHR
        PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR GetPhysicalDeviceXlibPresentationSupportKHR;
    #endif
    #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT
        PFN_vkGetRandROutputDisplayEXT GetRandROutputDisplayEXT;
    #endif
        PFN_vkReleaseDisplayEXT ReleaseDisplayEXT;
        PFN_vkSubmitDebugUtilsMessageEXT SubmitDebugUtilsMessageEXT;
    };

    struct vk_device_dispatch_table {
        PFN_vkGetDeviceProcAddr GetDeviceProcAddr;
    #ifdef VK_USE_PLATFORM_WIN32_KHR
        PFN_vkAcquireFullScreenExclusiveModeEXT AcquireFullScreenExclusiveModeEXT;
    #endif
        PFN_vkAcquireImageANDROID AcquireImageANDROID;
        PFN_vkAcquireNextImage2KHR AcquireNextImage2KHR;
        PFN_vkAcquireNextImageKHR AcquireNextImageKHR;
        PFN_vkAcquirePerformanceConfigurationINTEL AcquirePerformanceConfigurationINTEL;
        PFN_vkAcquireProfilingLockKHR AcquireProfilingLockKHR;
        PFN_vkAllocateCommandBuffers AllocateCommandBuffers;
        PFN_vkAllocateDescriptorSets AllocateDescriptorSets;
        PFN_vkAllocateMemory AllocateMemory;
        PFN_vkBeginCommandBuffer BeginCommandBuffer;
        PFN_vkBindAccelerationStructureMemoryNV BindAccelerationStructureMemoryNV;
        PFN_vkBindBufferMemory BindBufferMemory;
        PFN_vkBindBufferMemory2 BindBufferMemory2;
        PFN_vkBindImageMemory BindImageMemory;
        PFN_vkBindImageMemory2 BindImageMemory2;
        PFN_vkCmdBeginConditionalRenderingEXT CmdBeginConditionalRenderingEXT;
        PFN_vkCmdBeginDebugUtilsLabelEXT CmdBeginDebugUtilsLabelEXT;
        PFN_vkCmdBeginQuery CmdBeginQuery;
        PFN_vkCmdBeginQueryIndexedEXT CmdBeginQueryIndexedEXT;
        PFN_vkCmdBeginRenderPass CmdBeginRenderPass;
        PFN_vkCmdBeginRenderPass2 CmdBeginRenderPass2;
        PFN_vkCmdBeginTransformFeedbackEXT CmdBeginTransformFeedbackEXT;
        PFN_vkCmdBindDescriptorSets CmdBindDescriptorSets;
        PFN_vkCmdBindIndexBuffer CmdBindIndexBuffer;
        PFN_vkCmdBindPipeline CmdBindPipeline;
        PFN_vkCmdBindShadingRateImageNV CmdBindShadingRateImageNV;
        PFN_vkCmdBindTransformFeedbackBuffersEXT CmdBindTransformFeedbackBuffersEXT;
        PFN_vkCmdBindVertexBuffers CmdBindVertexBuffers;
        PFN_vkCmdBlitImage CmdBlitImage;
        PFN_vkCmdBuildAccelerationStructureNV CmdBuildAccelerationStructureNV;
        PFN_vkCmdClearAttachments CmdClearAttachments;
        PFN_vkCmdClearColorImage CmdClearColorImage;
        PFN_vkCmdClearDepthStencilImage CmdClearDepthStencilImage;
        PFN_vkCmdCopyAccelerationStructureNV CmdCopyAccelerationStructureNV;
        PFN_vkCmdCopyBuffer CmdCopyBuffer;
        PFN_vkCmdCopyBufferToImage CmdCopyBufferToImage;
        PFN_vkCmdCopyImage CmdCopyImage;
        PFN_vkCmdCopyImageToBuffer CmdCopyImageToBuffer;
        PFN_vkCmdCopyQueryPoolResults CmdCopyQueryPoolResults;
        PFN_vkCmdDebugMarkerBeginEXT CmdDebugMarkerBeginEXT;
        PFN_vkCmdDebugMarkerEndEXT CmdDebugMarkerEndEXT;
        PFN_vkCmdDebugMarkerInsertEXT CmdDebugMarkerInsertEXT;
        PFN_vkCmdDispatch CmdDispatch;
        PFN_vkCmdDispatchBase CmdDispatchBase;
        PFN_vkCmdDispatchIndirect CmdDispatchIndirect;
        PFN_vkCmdDraw CmdDraw;
        PFN_vkCmdDrawIndexed CmdDrawIndexed;
        PFN_vkCmdDrawIndexedIndirect CmdDrawIndexedIndirect;
        PFN_vkCmdDrawIndexedIndirectCount CmdDrawIndexedIndirectCount;
        PFN_vkCmdDrawIndirect CmdDrawIndirect;
        PFN_vkCmdDrawIndirectByteCountEXT CmdDrawIndirectByteCountEXT;
        PFN_vkCmdDrawIndirectCount CmdDrawIndirectCount;
        PFN_vkCmdDrawMeshTasksIndirectCountNV CmdDrawMeshTasksIndirectCountNV;
        PFN_vkCmdDrawMeshTasksIndirectNV CmdDrawMeshTasksIndirectNV;
        PFN_vkCmdDrawMeshTasksNV CmdDrawMeshTasksNV;
        PFN_vkCmdEndConditionalRenderingEXT CmdEndConditionalRenderingEXT;
        PFN_vkCmdEndDebugUtilsLabelEXT CmdEndDebugUtilsLabelEXT;
        PFN_vkCmdEndQuery CmdEndQuery;
        PFN_vkCmdEndQueryIndexedEXT CmdEndQueryIndexedEXT;
        PFN_vkCmdEndRenderPass CmdEndRenderPass;
        PFN_vkCmdEndRenderPass2 CmdEndRenderPass2;
        PFN_vkCmdEndTransformFeedbackEXT CmdEndTransformFeedbackEXT;
        PFN_vkCmdExecuteCommands CmdExecuteCommands;
        PFN_vkCmdFillBuffer CmdFillBuffer;
        PFN_vkCmdInsertDebugUtilsLabelEXT CmdInsertDebugUtilsLabelEXT;
        PFN_vkCmdNextSubpass CmdNextSubpass;
        PFN_vkCmdNextSubpass2 CmdNextSubpass2;
        PFN_vkCmdPipelineBarrier CmdPipelineBarrier;
        PFN_vkCmdProcessCommandsNVX CmdProcessCommandsNVX;
        PFN_vkCmdPushConstants CmdPushConstants;
        PFN_vkCmdPushDescriptorSetKHR CmdPushDescriptorSetKHR;
        PFN_vkCmdPushDescriptorSetWithTemplateKHR CmdPushDescriptorSetWithTemplateKHR;
        PFN_vkCmdReserveSpaceForCommandsNVX CmdReserveSpaceForCommandsNVX;
        PFN_vkCmdResetEvent CmdResetEvent;
        PFN_vkCmdResetQueryPool CmdResetQueryPool;
        PFN_vkCmdResolveImage CmdResolveImage;
        PFN_vkCmdSetBlendConstants CmdSetBlendConstants;
        PFN_vkCmdSetCheckpointNV CmdSetCheckpointNV;
        PFN_vkCmdSetCoarseSampleOrderNV CmdSetCoarseSampleOrderNV;
        PFN_vkCmdSetDepthBias CmdSetDepthBias;
        PFN_vkCmdSetDepthBounds CmdSetDepthBounds;
        PFN_vkCmdSetDeviceMask CmdSetDeviceMask;
        PFN_vkCmdSetDiscardRectangleEXT CmdSetDiscardRectangleEXT;
        PFN_vkCmdSetEvent CmdSetEvent;
        PFN_vkCmdSetExclusiveScissorNV CmdSetExclusiveScissorNV;
        PFN_vkCmdSetLineStippleEXT CmdSetLineStippleEXT;
        PFN_vkCmdSetLineWidth CmdSetLineWidth;
        PFN_vkCmdSetPerformanceMarkerINTEL CmdSetPerformanceMarkerINTEL;
        PFN_vkCmdSetPerformanceOverrideINTEL CmdSetPerformanceOverrideINTEL;
        PFN_vkCmdSetPerformanceStreamMarkerINTEL CmdSetPerformanceStreamMarkerINTEL;
        PFN_vkCmdSetSampleLocationsEXT CmdSetSampleLocationsEXT;
        PFN_vkCmdSetScissor CmdSetScissor;
        PFN_vkCmdSetStencilCompareMask CmdSetStencilCompareMask;
        PFN_vkCmdSetStencilReference CmdSetStencilReference;
        PFN_vkCmdSetStencilWriteMask CmdSetStencilWriteMask;
        PFN_vkCmdSetViewport CmdSetViewport;
        PFN_vkCmdSetViewportShadingRatePaletteNV CmdSetViewportShadingRatePaletteNV;
        PFN_vkCmdSetViewportWScalingNV CmdSetViewportWScalingNV;
        PFN_vkCmdTraceRaysNV CmdTraceRaysNV;
        PFN_vkCmdUpdateBuffer CmdUpdateBuffer;
        PFN_vkCmdWaitEvents CmdWaitEvents;
        PFN_vkCmdWriteAccelerationStructuresPropertiesNV CmdWriteAccelerationStructuresPropertiesNV;
        PFN_vkCmdWriteBufferMarkerAMD CmdWriteBufferMarkerAMD;
        PFN_vkCmdWriteTimestamp CmdWriteTimestamp;
        PFN_vkCompileDeferredNV CompileDeferredNV;
        PFN_vkCreateAccelerationStructureNV CreateAccelerationStructureNV;
        PFN_vkCreateBuffer CreateBuffer;
        PFN_vkCreateBufferView CreateBufferView;
        PFN_vkCreateCommandPool CreateCommandPool;
        PFN_vkCreateComputePipelines CreateComputePipelines;
        PFN_vkCreateDescriptorPool CreateDescriptorPool;
        PFN_vkCreateDescriptorSetLayout CreateDescriptorSetLayout;
        PFN_vkCreateDescriptorUpdateTemplate CreateDescriptorUpdateTemplate;
        PFN_vkCreateEvent CreateEvent;
        PFN_vkCreateFence CreateFence;
        PFN_vkCreateFramebuffer CreateFramebuffer;
        PFN_vkCreateGraphicsPipelines CreateGraphicsPipelines;
        PFN_vkCreateImage CreateImage;
        PFN_vkCreateImageView CreateImageView;
        PFN_vkCreateIndirectCommandsLayoutNVX CreateIndirectCommandsLayoutNVX;
        PFN_vkCreateObjectTableNVX CreateObjectTableNVX;
        PFN_vkCreatePipelineCache CreatePipelineCache;
        PFN_vkCreatePipelineLayout CreatePipelineLayout;
        PFN_vkCreateQueryPool CreateQueryPool;
        PFN_vkCreateRayTracingPipelinesNV CreateRayTracingPipelinesNV;
        PFN_vkCreateRenderPass CreateRenderPass;
        PFN_vkCreateRenderPass2 CreateRenderPass2;
        PFN_vkCreateSampler CreateSampler;
        PFN_vkCreateSamplerYcbcrConversion CreateSamplerYcbcrConversion;
        PFN_vkCreateSemaphore CreateSemaphore;
        PFN_vkCreateShaderModule CreateShaderModule;
        PFN_vkCreateSharedSwapchainsKHR CreateSharedSwapchainsKHR;
        PFN_vkCreateSwapchainKHR CreateSwapchainKHR;
        PFN_vkCreateValidationCacheEXT CreateValidationCacheEXT;
        PFN_vkDebugMarkerSetObjectNameEXT DebugMarkerSetObjectNameEXT;
        PFN_vkDebugMarkerSetObjectTagEXT DebugMarkerSetObjectTagEXT;
        PFN_vkDestroyAccelerationStructureNV DestroyAccelerationStructureNV;
        PFN_vkDestroyBuffer DestroyBuffer;
        PFN_vkDestroyBufferView DestroyBufferView;
        PFN_vkDestroyCommandPool DestroyCommandPool;
        PFN_vkDestroyDescriptorPool DestroyDescriptorPool;
        PFN_vkDestroyDescriptorSetLayout DestroyDescriptorSetLayout;
        PFN_vkDestroyDescriptorUpdateTemplate DestroyDescriptorUpdateTemplate;
        PFN_vkDestroyDevice DestroyDevice;
        PFN_vkDestroyEvent DestroyEvent;
        PFN_vkDestroyFence DestroyFence;
        PFN_vkDestroyFramebuffer DestroyFramebuffer;
        PFN_vkDestroyImage DestroyImage;
        PFN_vkDestroyImageView DestroyImageView;
        PFN_vkDestroyIndirectCommandsLayoutNVX DestroyIndirectCommandsLayoutNVX;
        PFN_vkDestroyObjectTableNVX DestroyObjectTableNVX;
        PFN_vkDestroyPipeline DestroyPipeline;
        PFN_vkDestroyPipelineCache DestroyPipelineCache;
        PFN_vkDestroyPipelineLayout DestroyPipelineLayout;
        PFN_vkDestroyQueryPool DestroyQueryPool;
        PFN_vkDestroyRenderPass DestroyRenderPass;
        PFN_vkDestroySampler DestroySampler;
        PFN_vkDestroySamplerYcbcrConversion DestroySamplerYcbcrConversion;
        PFN_vkDestroySemaphore DestroySemaphore;
        PFN_vkDestroyShaderModule DestroyShaderModule;
        PFN_vkDestroySwapchainKHR DestroySwapchainKHR;
        PFN_vkDestroyValidationCacheEXT DestroyValidationCacheEXT;
        PFN_vkDeviceWaitIdle DeviceWaitIdle;
        PFN_vkDisplayPowerControlEXT DisplayPowerControlEXT;
        PFN_vkEndCommandBuffer EndCommandBuffer;
        PFN_vkFlushMappedMemoryRanges FlushMappedMemoryRanges;
        PFN_vkFreeCommandBuffers FreeCommandBuffers;
        PFN_vkFreeDescriptorSets FreeDescriptorSets;
        PFN_vkFreeMemory FreeMemory;
        PFN_vkGetAccelerationStructureHandleNV GetAccelerationStructureHandleNV;
        PFN_vkGetAccelerationStructureMemoryRequirementsNV GetAccelerationStructureMemoryRequirementsNV;
    #ifdef VK_USE_PLATFORM_ANDROID_KHR
        PFN_vkGetAndroidHardwareBufferPropertiesANDROID GetAndroidHardwareBufferPropertiesANDROID;
    #endif
        PFN_vkGetBufferDeviceAddress GetBufferDeviceAddress;
        PFN_vkGetBufferMemoryRequirements GetBufferMemoryRequirements;
        PFN_vkGetBufferMemoryRequirements2 GetBufferMemoryRequirements2;
        PFN_vkGetBufferOpaqueCaptureAddress GetBufferOpaqueCaptureAddress;
        PFN_vkGetCalibratedTimestampsEXT GetCalibratedTimestampsEXT;
        PFN_vkGetDescriptorSetLayoutSupport GetDescriptorSetLayoutSupport;
        PFN_vkGetDeviceGroupPeerMemoryFeatures GetDeviceGroupPeerMemoryFeatures;
        PFN_vkGetDeviceGroupPresentCapabilitiesKHR GetDeviceGroupPresentCapabilitiesKHR;
    #ifdef VK_USE_PLATFORM_WIN32_KHR
        PFN_vkGetDeviceGroupSurfacePresentModes2EXT GetDeviceGroupSurfacePresentModes2EXT;
    #endif
        PFN_vkGetDeviceGroupSurfacePresentModesKHR GetDeviceGroupSurfacePresentModesKHR;
        PFN_vkGetDeviceMemoryCommitment GetDeviceMemoryCommitment;
        PFN_vkGetDeviceMemoryOpaqueCaptureAddress GetDeviceMemoryOpaqueCaptureAddress;
        PFN_vkGetDeviceQueue GetDeviceQueue;
        PFN_vkGetDeviceQueue2 GetDeviceQueue2;
        PFN_vkGetEventStatus GetEventStatus;
        PFN_vkGetFenceFdKHR GetFenceFdKHR;
        PFN_vkGetFenceStatus GetFenceStatus;
    #ifdef VK_USE_PLATFORM_WIN32_KHR
        PFN_vkGetFenceWin32HandleKHR GetFenceWin32HandleKHR;
    #endif
        PFN_vkGetImageDrmFormatModifierPropertiesEXT GetImageDrmFormatModifierPropertiesEXT;
        PFN_vkGetImageMemoryRequirements GetImageMemoryRequirements;
        PFN_vkGetImageMemoryRequirements2 GetImageMemoryRequirements2;
        PFN_vkGetImageSparseMemoryRequirements GetImageSparseMemoryRequirements;
        PFN_vkGetImageSparseMemoryRequirements2 GetImageSparseMemoryRequirements2;
        PFN_vkGetImageSubresourceLayout GetImageSubresourceLayout;
        PFN_vkGetImageViewHandleNVX GetImageViewHandleNVX;
    #ifdef VK_USE_PLATFORM_ANDROID_KHR
        PFN_vkGetMemoryAndroidHardwareBufferANDROID GetMemoryAndroidHardwareBufferANDROID;
    #endif
        PFN_vkGetMemoryFdKHR GetMemoryFdKHR;
        PFN_vkGetMemoryFdPropertiesKHR GetMemoryFdPropertiesKHR;
        PFN_vkGetMemoryHostPointerPropertiesEXT GetMemoryHostPointerPropertiesEXT;
    #ifdef VK_USE_PLATFORM_WIN32_KHR
        PFN_vkGetMemoryWin32HandleKHR GetMemoryWin32HandleKHR;
    #endif
    #ifdef VK_USE_PLATFORM_WIN32_KHR
        PFN_vkGetMemoryWin32HandleNV GetMemoryWin32HandleNV;
    #endif
    #ifdef VK_USE_PLATFORM_WIN32_KHR
        PFN_vkGetMemoryWin32HandlePropertiesKHR GetMemoryWin32HandlePropertiesKHR;
    #endif
        PFN_vkGetPastPresentationTimingGOOGLE GetPastPresentationTimingGOOGLE;
        PFN_vkGetPerformanceParameterINTEL GetPerformanceParameterINTEL;
        PFN_vkGetPipelineCacheData GetPipelineCacheData;
        PFN_vkGetPipelineExecutableInternalRepresentationsKHR GetPipelineExecutableInternalRepresentationsKHR;
        PFN_vkGetPipelineExecutablePropertiesKHR GetPipelineExecutablePropertiesKHR;
        PFN_vkGetPipelineExecutableStatisticsKHR GetPipelineExecutableStatisticsKHR;
        PFN_vkGetQueryPoolResults GetQueryPoolResults;
        PFN_vkGetQueueCheckpointDataNV GetQueueCheckpointDataNV;
        PFN_vkGetRayTracingShaderGroupHandlesNV GetRayTracingShaderGroupHandlesNV;
        PFN_vkGetRefreshCycleDurationGOOGLE GetRefreshCycleDurationGOOGLE;
        PFN_vkGetRenderAreaGranularity GetRenderAreaGranularity;
        PFN_vkGetSemaphoreCounterValue GetSemaphoreCounterValue;
        PFN_vkGetSemaphoreFdKHR GetSemaphoreFdKHR;
    #ifdef VK_USE_PLATFORM_WIN32_KHR
        PFN_vkGetSemaphoreWin32HandleKHR GetSemaphoreWin32HandleKHR;
    #endif
        PFN_vkGetShaderInfoAMD GetShaderInfoAMD;
        PFN_vkGetSwapchainCounterEXT GetSwapchainCounterEXT;
        PFN_vkGetSwapchainGrallocUsage2ANDROID GetSwapchainGrallocUsage2ANDROID;
        PFN_vkGetSwapchainGrallocUsageANDROID GetSwapchainGrallocUsageANDROID;
        PFN_vkGetSwapchainImagesKHR GetSwapchainImagesKHR;
        PFN_vkGetSwapchainStatusKHR GetSwapchainStatusKHR;
        PFN_vkGetValidationCacheDataEXT GetValidationCacheDataEXT;
        PFN_vkImportFenceFdKHR ImportFenceFdKHR;
    #ifdef VK_USE_PLATFORM_WIN32_KHR
        PFN_vkImportFenceWin32HandleKHR ImportFenceWin32HandleKHR;
    #endif
        PFN_vkImportSemaphoreFdKHR ImportSemaphoreFdKHR;
    #ifdef VK_USE_PLATFORM_WIN32_KHR
        PFN_vkImportSemaphoreWin32HandleKHR ImportSemaphoreWin32HandleKHR;
    #endif
        PFN_vkInitializePerformanceApiINTEL InitializePerformanceApiINTEL;
        PFN_vkInvalidateMappedMemoryRanges InvalidateMappedMemoryRanges;
        PFN_vkMapMemory MapMemory;
        PFN_vkMergePipelineCaches MergePipelineCaches;
        PFN_vkMergeValidationCachesEXT MergeValidationCachesEXT;
        PFN_vkQueueBeginDebugUtilsLabelEXT QueueBeginDebugUtilsLabelEXT;
        PFN_vkQueueBindSparse QueueBindSparse;
        PFN_vkQueueEndDebugUtilsLabelEXT QueueEndDebugUtilsLabelEXT;
        PFN_vkQueueInsertDebugUtilsLabelEXT QueueInsertDebugUtilsLabelEXT;
        PFN_vkQueuePresentKHR QueuePresentKHR;
        PFN_vkQueueSetPerformanceConfigurationINTEL QueueSetPerformanceConfigurationINTEL;
        PFN_vkQueueSignalReleaseImageANDROID QueueSignalReleaseImageANDROID;
        PFN_vkQueueSubmit QueueSubmit;
        PFN_vkQueueWaitIdle QueueWaitIdle;
        PFN_vkRegisterDeviceEventEXT RegisterDeviceEventEXT;
        PFN_vkRegisterDisplayEventEXT RegisterDisplayEventEXT;
        PFN_vkRegisterObjectsNVX RegisterObjectsNVX;
    #ifdef VK_USE_PLATFORM_WIN32_KHR
        PFN_vkReleaseFullScreenExclusiveModeEXT ReleaseFullScreenExclusiveModeEXT;
    #endif
        PFN_vkReleasePerformanceConfigurationINTEL ReleasePerformanceConfigurationINTEL;
        PFN_vkReleaseProfilingLockKHR ReleaseProfilingLockKHR;
        PFN_vkResetCommandBuffer ResetCommandBuffer;
        PFN_vkResetCommandPool ResetCommandPool;
        PFN_vkResetDescriptorPool ResetDescriptorPool;
        PFN_vkResetEvent ResetEvent;
        PFN_vkResetFences ResetFences;
        PFN_vkResetQueryPool ResetQueryPool;
        PFN_vkSetDebugUtilsObjectNameEXT SetDebugUtilsObjectNameEXT;
        PFN_vkSetDebugUtilsObjectTagEXT SetDebugUtilsObjectTagEXT;
        PFN_vkSetEvent SetEvent;
        PFN_vkSetHdrMetadataEXT SetHdrMetadataEXT;
        PFN_vkSetLocalDimmingAMD SetLocalDimmingAMD;
        PFN_vkSignalSemaphore SignalSemaphore;
        PFN_vkTrimCommandPool TrimCommandPool;
        PFN_vkUninitializePerformanceApiINTEL UninitializePerformanceApiINTEL;
        PFN_vkUnmapMemory UnmapMemory;
        PFN_vkUnregisterObjectsNVX UnregisterObjectsNVX;
        PFN_vkUpdateDescriptorSetWithTemplate UpdateDescriptorSetWithTemplate;
        PFN_vkUpdateDescriptorSets UpdateDescriptorSets;
        PFN_vkWaitForFences WaitForFences;
        PFN_vkWaitSemaphores WaitSemaphores;
    };

    void vk_load_instance_commands(VkInstance instance, PFN_vkGetInstanceProcAddr gpa, struct vk_instance_dispatch_table *table);
    void vk_load_device_commands(VkDevice device, PFN_vkGetDeviceProcAddr gpa, struct vk_device_dispatch_table *table);

    #ifdef __cplusplus
    } /* extern "C" */
    #endif

    #endif
