/**
 * Loader generated by glad 2.0.0-beta on Wed Nov 18 17:59:49 2020
 *
 * Generator: C/C++
 * Specification: vk
 * Extensions: 211
 *
 * APIs:
 *  - vulkan=1.2
 *
 * Options:
 *  - MX_GLOBAL = False
 *  - ON_DEMAND = False
 *  - LOADER = False
 *  - ALIAS = False
 *  - HEADER_ONLY = False
 *  - DEBUG = False
 *  - MX = False
 *
 * Commandline:
 *    --api='vulkan=1.2' --extensions='VK_AMD_buffer_marker,VK_AMD_device_coherent_memory,VK_AMD_display_native_hdr,VK_AMD_draw_indirect_count,VK_AMD_gcn_shader,VK_AMD_gpu_shader_half_float,VK_AMD_gpu_shader_int16,VK_AMD_memory_overallocation_behavior,VK_AMD_mixed_attachment_samples,VK_AMD_negative_viewport_height,VK_AMD_pipeline_compiler_control,VK_AMD_rasterization_order,VK_AMD_shader_ballot,VK_AMD_shader_core_properties,VK_AMD_shader_core_properties2,VK_AMD_shader_explicit_vertex_parameter,VK_AMD_shader_fragment_mask,VK_AMD_shader_image_load_store_lod,VK_AMD_shader_info,VK_AMD_shader_trinary_minmax,VK_AMD_texture_gather_bias_lod,VK_ANDROID_external_memory_android_hardware_buffer,VK_EXT_4444_formats,VK_EXT_acquire_xlib_display,VK_EXT_astc_decode_mode,VK_EXT_blend_operation_advanced,VK_EXT_buffer_device_address,VK_EXT_calibrated_timestamps,VK_EXT_conditional_rendering,VK_EXT_conservative_rasterization,VK_EXT_custom_border_color,VK_EXT_debug_marker,VK_EXT_debug_report,VK_EXT_debug_utils,VK_EXT_depth_clip_enable,VK_EXT_depth_range_unrestricted,VK_EXT_descriptor_indexing,VK_EXT_direct_mode_display,VK_EXT_directfb_surface,VK_EXT_discard_rectangles,VK_EXT_display_control,VK_EXT_display_surface_counter,VK_EXT_extended_dynamic_state,VK_EXT_external_memory_dma_buf,VK_EXT_external_memory_host,VK_EXT_filter_cubic,VK_EXT_fragment_density_map,VK_EXT_fragment_density_map2,VK_EXT_fragment_shader_interlock,VK_EXT_full_screen_exclusive,VK_EXT_global_priority,VK_EXT_hdr_metadata,VK_EXT_headless_surface,VK_EXT_host_query_reset,VK_EXT_image_drm_format_modifier,VK_EXT_image_robustness,VK_EXT_index_type_uint8,VK_EXT_inline_uniform_block,VK_EXT_line_rasterization,VK_EXT_memory_budget,VK_EXT_memory_priority,VK_EXT_metal_surface,VK_EXT_pci_bus_info,VK_EXT_pipeline_creation_cache_control,VK_EXT_pipeline_creation_feedback,VK_EXT_post_depth_coverage,VK_EXT_private_data,VK_EXT_queue_family_foreign,VK_EXT_robustness2,VK_EXT_sample_locations,VK_EXT_sampler_filter_minmax,VK_EXT_scalar_block_layout,VK_EXT_separate_stencil_usage,VK_EXT_shader_atomic_float,VK_EXT_shader_demote_to_helper_invocation,VK_EXT_shader_stencil_export,VK_EXT_shader_subgroup_ballot,VK_EXT_shader_subgroup_vote,VK_EXT_shader_viewport_index_layer,VK_EXT_subgroup_size_control,VK_EXT_swapchain_colorspace,VK_EXT_texel_buffer_alignment,VK_EXT_texture_compression_astc_hdr,VK_EXT_tooling_info,VK_EXT_transform_feedback,VK_EXT_validation_cache,VK_EXT_validation_features,VK_EXT_validation_flags,VK_EXT_vertex_attribute_divisor,VK_EXT_ycbcr_image_arrays,VK_FUCHSIA_imagepipe_surface,VK_GGP_frame_token,VK_GGP_stream_descriptor_surface,VK_GOOGLE_decorate_string,VK_GOOGLE_display_timing,VK_GOOGLE_hlsl_functionality1,VK_GOOGLE_user_type,VK_IMG_filter_cubic,VK_IMG_format_pvrtc,VK_INTEL_performance_query,VK_INTEL_shader_integer_functions2,VK_KHR_16bit_storage,VK_KHR_8bit_storage,VK_KHR_android_surface,VK_KHR_bind_memory2,VK_KHR_buffer_device_address,VK_KHR_create_renderpass2,VK_KHR_dedicated_allocation,VK_KHR_deferred_host_operations,VK_KHR_depth_stencil_resolve,VK_KHR_descriptor_update_template,VK_KHR_device_group,VK_KHR_device_group_creation,VK_KHR_display,VK_KHR_display_swapchain,VK_KHR_draw_indirect_count,VK_KHR_driver_properties,VK_KHR_external_fence,VK_KHR_external_fence_capabilities,VK_KHR_external_fence_fd,VK_KHR_external_fence_win32,VK_KHR_external_memory,VK_KHR_external_memory_capabilities,VK_KHR_external_memory_fd,VK_KHR_external_memory_win32,VK_KHR_external_semaphore,VK_KHR_external_semaphore_capabilities,VK_KHR_external_semaphore_fd,VK_KHR_external_semaphore_win32,VK_KHR_get_display_properties2,VK_KHR_get_memory_requirements2,VK_KHR_get_physical_device_properties2,VK_KHR_get_surface_capabilities2,VK_KHR_image_format_list,VK_KHR_imageless_framebuffer,VK_KHR_incremental_present,VK_KHR_maintenance1,VK_KHR_maintenance2,VK_KHR_maintenance3,VK_KHR_multiview,VK_KHR_performance_query,VK_KHR_pipeline_executable_properties,VK_KHR_pipeline_library,VK_KHR_push_descriptor,VK_KHR_ray_tracing,VK_KHR_relaxed_block_layout,VK_KHR_sampler_mirror_clamp_to_edge,VK_KHR_sampler_ycbcr_conversion,VK_KHR_separate_depth_stencil_layouts,VK_KHR_shader_atomic_int64,VK_KHR_shader_clock,VK_KHR_shader_draw_parameters,VK_KHR_shader_float16_int8,VK_KHR_shader_float_controls,VK_KHR_shader_non_semantic_info,VK_KHR_shader_subgroup_extended_types,VK_KHR_shared_presentable_image,VK_KHR_spirv_1_4,VK_KHR_storage_buffer_storage_class,VK_KHR_surface,VK_KHR_surface_protected_capabilities,VK_KHR_swapchain,VK_KHR_swapchain_mutable_format,VK_KHR_timeline_semaphore,VK_KHR_uniform_buffer_standard_layout,VK_KHR_variable_pointers,VK_KHR_vulkan_memory_model,VK_KHR_wayland_surface,VK_KHR_win32_keyed_mutex,VK_KHR_win32_surface,VK_KHR_xcb_surface,VK_KHR_xlib_surface,VK_MVK_ios_surface,VK_MVK_macos_surface,VK_NN_vi_surface,VK_NVX_image_view_handle,VK_NVX_multiview_per_view_attributes,VK_NV_clip_space_w_scaling,VK_NV_compute_shader_derivatives,VK_NV_cooperative_matrix,VK_NV_corner_sampled_image,VK_NV_coverage_reduction_mode,VK_NV_dedicated_allocation,VK_NV_dedicated_allocation_image_aliasing,VK_NV_device_diagnostic_checkpoints,VK_NV_device_diagnostics_config,VK_NV_device_generated_commands,VK_NV_external_memory,VK_NV_external_memory_capabilities,VK_NV_external_memory_win32,VK_NV_fill_rectangle,VK_NV_fragment_coverage_to_color,VK_NV_fragment_shader_barycentric,VK_NV_framebuffer_mixed_samples,VK_NV_geometry_shader_passthrough,VK_NV_glsl_shader,VK_NV_mesh_shader,VK_NV_ray_tracing,VK_NV_representative_fragment_test,VK_NV_sample_mask_override_coverage,VK_NV_scissor_exclusive,VK_NV_shader_image_footprint,VK_NV_shader_sm_builtins,VK_NV_shader_subgroup_partitioned,VK_NV_shading_rate_image,VK_NV_viewport_array2,VK_NV_viewport_swizzle,VK_NV_win32_keyed_mutex,VK_QCOM_render_pass_shader_resolve,VK_QCOM_render_pass_store_ops,VK_QCOM_render_pass_transform' c
 *
 * Online:
 *    http://glad.sh/#api=vulkan%3D1.2&generator=c&options=
 *
 */

#ifndef GLAD_VULKAN_H_
#define GLAD_VULKAN_H_

#ifdef VULKAN_H_
  #error  header already included (API: vulkan), remove previous include!
#endif
#define VULKAN_H_ 1

#ifdef VULKAN_CORE_H_
  #error  header already included (API: vulkan), remove previous include!
#endif
#define VULKAN_CORE_H_ 1


#define GLAD_VULKAN

#ifdef __cplusplus
extern "C" {
#endif

#ifndef GLAD_PLATFORM_H_
#define GLAD_PLATFORM_H_

#ifndef GLAD_PLATFORM_WIN32
  #if defined(_WIN32) || defined(__WIN32__) || defined(WIN32) || defined(__MINGW32__)
    #define GLAD_PLATFORM_WIN32 1
  #else
    #define GLAD_PLATFORM_WIN32 0
  #endif
#endif

#ifndef GLAD_PLATFORM_APPLE
  #ifdef __APPLE__
    #define GLAD_PLATFORM_APPLE 1
  #else
    #define GLAD_PLATFORM_APPLE 0
  #endif
#endif

#ifndef GLAD_PLATFORM_EMSCRIPTEN
  #ifdef __EMSCRIPTEN__
    #define GLAD_PLATFORM_EMSCRIPTEN 1
  #else
    #define GLAD_PLATFORM_EMSCRIPTEN 0
  #endif
#endif

#ifndef GLAD_PLATFORM_UWP
  #if defined(_MSC_VER) && !defined(GLAD_INTERNAL_HAVE_WINAPIFAMILY)
    #ifdef __has_include
      #if __has_include(<winapifamily.h>)
        #define GLAD_INTERNAL_HAVE_WINAPIFAMILY 1
      #endif
    #elif _MSC_VER >= 1700 && !_USING_V110_SDK71_
      #define GLAD_INTERNAL_HAVE_WINAPIFAMILY 1
    #endif
  #endif

  #ifdef GLAD_INTERNAL_HAVE_WINAPIFAMILY
    #include <winapifamily.h>
    #if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) && WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
      #define GLAD_PLATFORM_UWP 1
    #endif
  #endif

  #ifndef GLAD_PLATFORM_UWP
    #define GLAD_PLATFORM_UWP 0
  #endif
#endif

#ifdef __GNUC__
  #define GLAD_GNUC_EXTENSION __extension__
#else
  #define GLAD_GNUC_EXTENSION
#endif

#ifndef GLAD_API_CALL
  #if defined(GLAD_API_CALL_EXPORT)
    #if GLAD_PLATFORM_WIN32 || defined(__CYGWIN__)
      #if defined(GLAD_API_CALL_EXPORT_BUILD)
        #if defined(__GNUC__)
          #define GLAD_API_CALL __attribute__ ((dllexport)) extern
        #else
          #define GLAD_API_CALL __declspec(dllexport) extern
        #endif
      #else
        #if defined(__GNUC__)
          #define GLAD_API_CALL __attribute__ ((dllimport)) extern
        #else
          #define GLAD_API_CALL __declspec(dllimport) extern
        #endif
      #endif
    #elif defined(__GNUC__) && defined(GLAD_API_CALL_EXPORT_BUILD)
      #define GLAD_API_CALL __attribute__ ((visibility ("default"))) extern
    #else
      #define GLAD_API_CALL extern
    #endif
  #else
    #define GLAD_API_CALL extern
  #endif
#endif

#ifdef APIENTRY
  #define GLAD_API_PTR APIENTRY
#elif GLAD_PLATFORM_WIN32
  #define GLAD_API_PTR __stdcall
#else
  #define GLAD_API_PTR
#endif

#ifndef GLAPI
#define GLAPI GLAD_API_CALL
#endif

#ifndef GLAPIENTRY
#define GLAPIENTRY GLAD_API_PTR
#endif

#define GLAD_MAKE_VERSION(major, minor) (major * 10000 + minor)
#define GLAD_VERSION_MAJOR(version) (version / 10000)
#define GLAD_VERSION_MINOR(version) (version % 10000)

#define GLAD_GENERATOR_VERSION "2.0.0-beta"

typedef void (*GLADapiproc)(void);

typedef GLADapiproc (*GLADloadfunc)(const char *name);
typedef GLADapiproc (*GLADuserptrloadfunc)(void *userptr, const char *name);

typedef void (*GLADprecallback)(const char *name, GLADapiproc apiproc, int len_args, ...);
typedef void (*GLADpostcallback)(void *ret, const char *name, GLADapiproc apiproc, int len_args, ...);

#endif /* GLAD_PLATFORM_H_ */

#define VK_AMD_BUFFER_MARKER_EXTENSION_NAME "VK_AMD_buffer_marker"
#define VK_AMD_BUFFER_MARKER_SPEC_VERSION 1
#define VK_AMD_DEVICE_COHERENT_MEMORY_EXTENSION_NAME "VK_AMD_device_coherent_memory"
#define VK_AMD_DEVICE_COHERENT_MEMORY_SPEC_VERSION 1
#define VK_AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME "VK_AMD_display_native_hdr"
#define VK_AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION 1
#define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count"
#define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 2
#define VK_AMD_GCN_SHADER_EXTENSION_NAME "VK_AMD_gcn_shader"
#define VK_AMD_GCN_SHADER_SPEC_VERSION 1
#define VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME "VK_AMD_gpu_shader_half_float"
#define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 2
#define VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME "VK_AMD_gpu_shader_int16"
#define VK_AMD_GPU_SHADER_INT16_SPEC_VERSION 2
#define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_EXTENSION_NAME "VK_AMD_memory_overallocation_behavior"
#define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_SPEC_VERSION 1
#define VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME "VK_AMD_mixed_attachment_samples"
#define VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION 1
#define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height"
#define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1
#define VK_AMD_PIPELINE_COMPILER_CONTROL_EXTENSION_NAME "VK_AMD_pipeline_compiler_control"
#define VK_AMD_PIPELINE_COMPILER_CONTROL_SPEC_VERSION 1
#define VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME "VK_AMD_rasterization_order"
#define VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION 1
#define VK_AMD_SHADER_BALLOT_EXTENSION_NAME "VK_AMD_shader_ballot"
#define VK_AMD_SHADER_BALLOT_SPEC_VERSION 1
#define VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME "VK_AMD_shader_core_properties2"
#define VK_AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION 1
#define VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_AMD_shader_core_properties"
#define VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION 2
#define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME "VK_AMD_shader_explicit_vertex_parameter"
#define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION 1
#define VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME "VK_AMD_shader_fragment_mask"
#define VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION 1
#define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME "VK_AMD_shader_image_load_store_lod"
#define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION 1
#define VK_AMD_SHADER_INFO_EXTENSION_NAME "VK_AMD_shader_info"
#define VK_AMD_SHADER_INFO_SPEC_VERSION 1
#define VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME "VK_AMD_shader_trinary_minmax"
#define VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION 1
#define VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME "VK_AMD_texture_gather_bias_lod"
#define VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION 1
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
#define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME "VK_ANDROID_external_memory_android_hardware_buffer"
#endif
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
#define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION 3
#endif
#define VK_ATTACHMENT_UNUSED (~0U)
#define VK_EXT_4444_FORMATS_EXTENSION_NAME "VK_EXT_4444_formats"
#define VK_EXT_4444_FORMATS_SPEC_VERSION 1
#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
#define VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME "VK_EXT_acquire_xlib_display"
#endif
#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
#define VK_EXT_ACQUIRE_XLIB_DISPLAY_SPEC_VERSION 1
#endif
#define VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME "VK_EXT_astc_decode_mode"
#define VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION 1
#define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced"
#define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2
#define VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_EXT_buffer_device_address"
#define VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 2
#define VK_EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME "VK_EXT_calibrated_timestamps"
#define VK_EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION 1
#define VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME "VK_EXT_conditional_rendering"
#define VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION 2
#define VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME "VK_EXT_conservative_rasterization"
#define VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION 1
#define VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME "VK_EXT_custom_border_color"
#define VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION 12
#define VK_EXT_DEBUG_MARKER_EXTENSION_NAME "VK_EXT_debug_marker"
#define VK_EXT_DEBUG_MARKER_SPEC_VERSION 4
#define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report"
#define VK_EXT_DEBUG_REPORT_SPEC_VERSION 9
#define VK_EXT_DEBUG_UTILS_EXTENSION_NAME "VK_EXT_debug_utils"
#define VK_EXT_DEBUG_UTILS_SPEC_VERSION 2
#define VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME "VK_EXT_depth_clip_enable"
#define VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION 1
#define VK_EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME "VK_EXT_depth_range_unrestricted"
#define VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION 1
#define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME "VK_EXT_descriptor_indexing"
#define VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION 2
#if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
#define VK_EXT_DIRECTFB_SURFACE_EXTENSION_NAME "VK_EXT_directfb_surface"
#endif
#if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
#define VK_EXT_DIRECTFB_SURFACE_SPEC_VERSION 1
#endif
#define VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME "VK_EXT_direct_mode_display"
#define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1
#define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles"
#define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 1
#define VK_EXT_DISPLAY_CONTROL_EXTENSION_NAME "VK_EXT_display_control"
#define VK_EXT_DISPLAY_CONTROL_SPEC_VERSION 1
#define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter"
#define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1
#define VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_extended_dynamic_state"
#define VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION 1
#define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME "VK_EXT_external_memory_dma_buf"
#define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION 1
#define VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME "VK_EXT_external_memory_host"
#define VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION 1
#define VK_EXT_FILTER_CUBIC_EXTENSION_NAME "VK_EXT_filter_cubic"
#define VK_EXT_FILTER_CUBIC_SPEC_VERSION 3
#define VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME "VK_EXT_fragment_density_map2"
#define VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION 1
#define VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME "VK_EXT_fragment_density_map"
#define VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION 1
#define VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME "VK_EXT_fragment_shader_interlock"
#define VK_EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION 1
#if defined(VK_USE_PLATFORM_WIN32_KHR)
#define VK_EXT_FULL_SCREEN_EXCLUSIVE_EXTENSION_NAME "VK_EXT_full_screen_exclusive"
#endif
#if defined(VK_USE_PLATFORM_WIN32_KHR)
#define VK_EXT_FULL_SCREEN_EXCLUSIVE_SPEC_VERSION 4
#endif
#define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority"
#define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 2
#define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata"
#define VK_EXT_HDR_METADATA_SPEC_VERSION 2
#define VK_EXT_HEADLESS_SURFACE_EXTENSION_NAME "VK_EXT_headless_surface"
#define VK_EXT_HEADLESS_SURFACE_SPEC_VERSION 1
#define VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME "VK_EXT_host_query_reset"
#define VK_EXT_HOST_QUERY_RESET_SPEC_VERSION 1
#define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME "VK_EXT_image_drm_format_modifier"
#define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION 1
#define VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_image_robustness"
#define VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION 1
#define VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME "VK_EXT_index_type_uint8"
#define VK_EXT_INDEX_TYPE_UINT8_SPEC_VERSION 1
#define VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME "VK_EXT_inline_uniform_block"
#define VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION 1
#define VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME "VK_EXT_line_rasterization"
#define VK_EXT_LINE_RASTERIZATION_SPEC_VERSION 1
#define VK_EXT_MEMORY_BUDGET_EXTENSION_NAME "VK_EXT_memory_budget"
#define VK_EXT_MEMORY_BUDGET_SPEC_VERSION 1
#define VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME "VK_EXT_memory_priority"
#define VK_EXT_MEMORY_PRIORITY_SPEC_VERSION 1
#if defined(VK_USE_PLATFORM_METAL_EXT)
#define VK_EXT_METAL_SURFACE_EXTENSION_NAME "VK_EXT_metal_surface"
#endif
#if defined(VK_USE_PLATFORM_METAL_EXT)
#define VK_EXT_METAL_SURFACE_SPEC_VERSION 1
#endif
#define VK_EXT_PCI_BUS_INFO_EXTENSION_NAME "VK_EXT_pci_bus_info"
#define VK_EXT_PCI_BUS_INFO_SPEC_VERSION 2
#define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME "VK_EXT_pipeline_creation_cache_control"
#define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION 3
#define VK_EXT_PIPELINE_CREATION_FEEDBACK_EXTENSION_NAME "VK_EXT_pipeline_creation_feedback"
#define VK_EXT_PIPELINE_CREATION_FEEDBACK_SPEC_VERSION 1
#define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage"
#define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1
#define VK_EXT_PRIVATE_DATA_EXTENSION_NAME "VK_EXT_private_data"
#define VK_EXT_PRIVATE_DATA_SPEC_VERSION 1
#define VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME "VK_EXT_queue_family_foreign"
#define VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION 1
#define VK_EXT_ROBUSTNESS_2_EXTENSION_NAME "VK_EXT_robustness2"
#define VK_EXT_ROBUSTNESS_2_SPEC_VERSION 1
#define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax"
#define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 2
#define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations"
#define VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION 1
#define VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME "VK_EXT_scalar_block_layout"
#define VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION 1
#define VK_EXT_SEPARATE_STENCIL_USAGE_EXTENSION_NAME "VK_EXT_separate_stencil_usage"
#define VK_EXT_SEPARATE_STENCIL_USAGE_SPEC_VERSION 1
#define VK_EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME "VK_EXT_shader_atomic_float"
#define VK_EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION 1
#define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME "VK_EXT_shader_demote_to_helper_invocation"
#define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION 1
#define VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME "VK_EXT_shader_stencil_export"
#define VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION 1
#define VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME "VK_EXT_shader_subgroup_ballot"
#define VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION 1
#define VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME "VK_EXT_shader_subgroup_vote"
#define VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION 1
#define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME "VK_EXT_shader_viewport_index_layer"
#define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION 1
#define VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME "VK_EXT_subgroup_size_control"
#define VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION 2
#define VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace"
#define VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION 4
#define VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME "VK_EXT_texel_buffer_alignment"
#define VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION 1
#define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME "VK_EXT_texture_compression_astc_hdr"
#define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION 1
#define VK_EXT_TOOLING_INFO_EXTENSION_NAME "VK_EXT_tooling_info"
#define VK_EXT_TOOLING_INFO_SPEC_VERSION 1
#define VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME "VK_EXT_transform_feedback"
#define VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION 1
#define VK_EXT_VALIDATION_CACHE_EXTENSION_NAME "VK_EXT_validation_cache"
#define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1
#define VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME "VK_EXT_validation_features"
#define VK_EXT_VALIDATION_FEATURES_SPEC_VERSION 4
#define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags"
#define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 2
#define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_EXT_vertex_attribute_divisor"
#define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 3
#define VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME "VK_EXT_ycbcr_image_arrays"
#define VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION 1
#define VK_FALSE 0
#if defined(VK_USE_PLATFORM_FUCHSIA)
#define VK_FUCHSIA_IMAGEPIPE_SURFACE_EXTENSION_NAME "VK_FUCHSIA_imagepipe_surface"
#endif
#if defined(VK_USE_PLATFORM_FUCHSIA)
#define VK_FUCHSIA_IMAGEPIPE_SURFACE_SPEC_VERSION 1
#endif
#if defined(VK_USE_PLATFORM_GGP)
#define VK_GGP_FRAME_TOKEN_EXTENSION_NAME "VK_GGP_frame_token"
#endif
#if defined(VK_USE_PLATFORM_GGP)
#define VK_GGP_FRAME_TOKEN_SPEC_VERSION 1
#endif
#if defined(VK_USE_PLATFORM_GGP)
#define VK_GGP_STREAM_DESCRIPTOR_SURFACE_EXTENSION_NAME "VK_GGP_stream_descriptor_surface"
#endif
#if defined(VK_USE_PLATFORM_GGP)
#define VK_GGP_STREAM_DESCRIPTOR_SURFACE_SPEC_VERSION 1
#endif
#define VK_GOOGLE_DECORATE_STRING_EXTENSION_NAME "VK_GOOGLE_decorate_string"
#define VK_GOOGLE_DECORATE_STRING_SPEC_VERSION 1
#define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing"
#define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1
#define VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME "VK_GOOGLE_hlsl_functionality1"
#define VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION 1
#define VK_GOOGLE_USER_TYPE_EXTENSION_NAME "VK_GOOGLE_user_type"
#define VK_GOOGLE_USER_TYPE_SPEC_VERSION 1
#define VK_IMG_FILTER_CUBIC_EXTENSION_NAME "VK_IMG_filter_cubic"
#define VK_IMG_FILTER_CUBIC_SPEC_VERSION 1
#define VK_IMG_FORMAT_PVRTC_EXTENSION_NAME "VK_IMG_format_pvrtc"
#define VK_IMG_FORMAT_PVRTC_SPEC_VERSION 1
#define VK_INTEL_PERFORMANCE_QUERY_EXTENSION_NAME "VK_INTEL_performance_query"
#define VK_INTEL_PERFORMANCE_QUERY_SPEC_VERSION 2
#define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME "VK_INTEL_shader_integer_functions2"
#define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION 1
#define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage"
#define VK_KHR_16BIT_STORAGE_SPEC_VERSION 1
#define VK_KHR_8BIT_STORAGE_EXTENSION_NAME "VK_KHR_8bit_storage"
#define VK_KHR_8BIT_STORAGE_SPEC_VERSION 1
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
#define VK_KHR_ANDROID_SURFACE_EXTENSION_NAME "VK_KHR_android_surface"
#endif
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
#define VK_KHR_ANDROID_SURFACE_SPEC_VERSION 6
#endif
#define VK_KHR_BIND_MEMORY_2_EXTENSION_NAME "VK_KHR_bind_memory2"
#define VK_KHR_BIND_MEMORY_2_SPEC_VERSION 1
#define VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_KHR_buffer_device_address"
#define VK_KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 1
#define VK_KHR_CREATE_RENDERPASS_2_EXTENSION_NAME "VK_KHR_create_renderpass2"
#define VK_KHR_CREATE_RENDERPASS_2_SPEC_VERSION 1
#define VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_KHR_dedicated_allocation"
#define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3
#if defined(VK_ENABLE_BETA_EXTENSIONS)
#define VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME "VK_KHR_deferred_host_operations"
#endif
#if defined(VK_ENABLE_BETA_EXTENSIONS)
#define VK_KHR_DEFERRED_HOST_OPERATIONS_SPEC_VERSION 3
#endif
#define VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME "VK_KHR_depth_stencil_resolve"
#define VK_KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION 1
#define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME "VK_KHR_descriptor_update_template"
#define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1
#define VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME "VK_KHR_device_group_creation"
#define VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION 1
#define VK_KHR_DEVICE_GROUP_EXTENSION_NAME "VK_KHR_device_group"
#define VK_KHR_DEVICE_GROUP_SPEC_VERSION 4
#define VK_KHR_DISPLAY_EXTENSION_NAME "VK_KHR_display"
#define VK_KHR_DISPLAY_SPEC_VERSION 23
#define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain"
#define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 10
#define VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_KHR_draw_indirect_count"
#define VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
#define VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME "VK_KHR_driver_properties"
#define VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION 1
#define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_fence_capabilities"
#define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION 1
#define VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME "VK_KHR_external_fence"
#define VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME "VK_KHR_external_fence_fd"
#define VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION 1
#define VK_KHR_EXTERNAL_FENCE_SPEC_VERSION 1
#if defined(VK_USE_PLATFORM_WIN32_KHR)
#define VK_KHR_EXTERNAL_FENCE_WIN32_EXTENSION_NAME "VK_KHR_external_fence_win32"
#endif
#if defined(VK_USE_PLATFORM_WIN32_KHR)
#define VK_KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION 1
#endif
#define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_memory_capabilities"
#define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
#define VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME "VK_KHR_external_memory"
#define VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME "VK_KHR_external_memory_fd"
#define VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION 1
#define VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION 1
#if defined(VK_USE_PLATFORM_WIN32_KHR)
#define VK_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_KHR_external_memory_win32"
#endif
#if defined(VK_USE_PLATFORM_WIN32_KHR)
#define VK_KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1
#endif
#define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_semaphore_capabilities"
#define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION 1
#define VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_KHR_external_semaphore"
#define VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME "VK_KHR_external_semaphore_fd"
#define VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION 1
#define VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION 1
#if defined(VK_USE_PLATFORM_WIN32_KHR)
#define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME "VK_KHR_external_semaphore_win32"
#endif
#if defined(VK_USE_PLATFORM_WIN32_KHR)
#define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION 1
#endif
#define VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_display_properties2"
#define VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION 1
#define VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME "VK_KHR_get_memory_requirements2"
#define VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION 1
#define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2"
#define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 2
#define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2"
#define VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION 1
#define VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME "VK_KHR_imageless_framebuffer"
#define VK_KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION 1
#define VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME "VK_KHR_image_format_list"
#define VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION 1
#define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present"
#define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 1
#define VK_KHR_MAINTENANCE1_EXTENSION_NAME "VK_KHR_maintenance1"
#define VK_KHR_MAINTENANCE1_SPEC_VERSION 2
#define VK_KHR_MAINTENANCE2_EXTENSION_NAME "VK_KHR_maintenance2"
#define VK_KHR_MAINTENANCE2_SPEC_VERSION 1
#define VK_KHR_MAINTENANCE3_EXTENSION_NAME "VK_KHR_maintenance3"
#define VK_KHR_MAINTENANCE3_SPEC_VERSION 1
#define VK_KHR_MULTIVIEW_EXTENSION_NAME "VK_KHR_multiview"
#define VK_KHR_MULTIVIEW_SPEC_VERSION 1
#define VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME "VK_KHR_performance_query"
#define VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION 1
#define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME "VK_KHR_pipeline_executable_properties"
#define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION 1
#if defined(VK_ENABLE_BETA_EXTENSIONS)
#define VK_KHR_PIPELINE_LIBRARY_EXTENSION_NAME "VK_KHR_pipeline_library"
#endif
#if defined(VK_ENABLE_BETA_EXTENSIONS)
#define VK_KHR_PIPELINE_LIBRARY_SPEC_VERSION 1
#endif
#define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor"
#define VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION 2
#if defined(VK_ENABLE_BETA_EXTENSIONS)
#define VK_KHR_RAY_TRACING_EXTENSION_NAME "VK_KHR_ray_tracing"
#endif
#if defined(VK_ENABLE_BETA_EXTENSIONS)
#define VK_KHR_RAY_TRACING_SPEC_VERSION 8
#endif
#define VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME "VK_KHR_relaxed_block_layout"
#define VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION 1
#define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME "VK_KHR_sampler_mirror_clamp_to_edge"
#define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 3
#define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion"
#define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 14
#define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME "VK_KHR_separate_depth_stencil_layouts"
#define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_SPEC_VERSION 1
#define VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME "VK_KHR_shader_atomic_int64"
#define VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION 1
#define VK_KHR_SHADER_CLOCK_EXTENSION_NAME "VK_KHR_shader_clock"
#define VK_KHR_SHADER_CLOCK_SPEC_VERSION 1
#define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters"
#define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1
#define VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME "VK_KHR_shader_float16_int8"
#define VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION 1
#define VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME "VK_KHR_shader_float_controls"
#define VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION 4
#define VK_KHR_SHADER_NON_SEMANTIC_INFO_EXTENSION_NAME "VK_KHR_shader_non_semantic_info"
#define VK_KHR_SHADER_NON_SEMANTIC_INFO_SPEC_VERSION 1
#define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME "VK_KHR_shader_subgroup_extended_types"
#define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION 1
#define VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME "VK_KHR_shared_presentable_image"
#define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1
#define VK_KHR_SPIRV_1_4_EXTENSION_NAME "VK_KHR_spirv_1_4"
#define VK_KHR_SPIRV_1_4_SPEC_VERSION 1
#define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME "VK_KHR_storage_buffer_storage_class"
#define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION 1
#define VK_KHR_SURFACE_EXTENSION_NAME "VK_KHR_surface"
#define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME "VK_KHR_surface_protected_capabilities"
#define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_SPEC_VERSION 1
#define VK_KHR_SURFACE_SPEC_VERSION 25
#define VK_KHR_SWAPCHAIN_EXTENSION_NAME "VK_KHR_swapchain"
#define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_EXTENSION_NAME "VK_KHR_swapchain_mutable_format"
#define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_SPEC_VERSION 1
#define VK_KHR_SWAPCHAIN_SPEC_VERSION 70
#define VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME "VK_KHR_timeline_semaphore"
#define VK_KHR_TIMELINE_SEMAPHORE_SPEC_VERSION 2
#define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME "VK_KHR_uniform_buffer_standard_layout"
#define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION 1
#define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers"
#define VK_KHR_VARIABLE_POINTERS_SPEC_VERSION 1
#define VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME "VK_KHR_vulkan_memory_model"
#define VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION 3
#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
#define VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME "VK_KHR_wayland_surface"
#endif
#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
#define VK_KHR_WAYLAND_SURFACE_SPEC_VERSION 6
#endif
#if defined(VK_USE_PLATFORM_WIN32_KHR)
#define VK_KHR_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_KHR_win32_keyed_mutex"
#endif
#if defined(VK_USE_PLATFORM_WIN32_KHR)
#define VK_KHR_WIN32_KEYED_MUTEX_SPEC_VERSION 1
#endif
#if defined(VK_USE_PLATFORM_WIN32_KHR)
#define VK_KHR_WIN32_SURFACE_EXTENSION_NAME "VK_KHR_win32_surface"
#endif
#if defined(VK_USE_PLATFORM_WIN32_KHR)
#define VK_KHR_WIN32_SURFACE_SPEC_VERSION 6
#endif
#if defined(VK_USE_PLATFORM_XCB_KHR)
#define VK_KHR_XCB_SURFACE_EXTENSION_NAME "VK_KHR_xcb_surface"
#endif
#if defined(VK_USE_PLATFORM_XCB_KHR)
#define VK_KHR_XCB_SURFACE_SPEC_VERSION 6
#endif
#if defined(VK_USE_PLATFORM_XLIB_KHR)
#define VK_KHR_XLIB_SURFACE_EXTENSION_NAME "VK_KHR_xlib_surface"
#endif
#if defined(VK_USE_PLATFORM_XLIB_KHR)
#define VK_KHR_XLIB_SURFACE_SPEC_VERSION 6
#endif
#define VK_LOD_CLAMP_NONE 1000.0f
#define VK_LUID_SIZE 8
#define VK_LUID_SIZE_KHR 8
#define VK_MAX_DESCRIPTION_SIZE 256
#define VK_MAX_DEVICE_GROUP_SIZE 32
#define VK_MAX_DEVICE_GROUP_SIZE_KHR 32
#define VK_MAX_DRIVER_INFO_SIZE 256
#define VK_MAX_DRIVER_INFO_SIZE_KHR 256
#define VK_MAX_DRIVER_NAME_SIZE 256
#define VK_MAX_DRIVER_NAME_SIZE_KHR 256
#define VK_MAX_EXTENSION_NAME_SIZE 256
#define VK_MAX_MEMORY_HEAPS 16
#define VK_MAX_MEMORY_TYPES 32
#define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE 256
#if defined(VK_USE_PLATFORM_IOS_MVK)
#define VK_MVK_IOS_SURFACE_EXTENSION_NAME "VK_MVK_ios_surface"
#endif
#if defined(VK_USE_PLATFORM_IOS_MVK)
#define VK_MVK_IOS_SURFACE_SPEC_VERSION 3
#endif
#if defined(VK_USE_PLATFORM_MACOS_MVK)
#define VK_MVK_MACOS_SURFACE_EXTENSION_NAME "VK_MVK_macos_surface"
#endif
#if defined(VK_USE_PLATFORM_MACOS_MVK)
#define VK_MVK_MACOS_SURFACE_SPEC_VERSION 3
#endif
#if defined(VK_USE_PLATFORM_VI_NN)
#define VK_NN_VI_SURFACE_EXTENSION_NAME "VK_NN_vi_surface"
#endif
#if defined(VK_USE_PLATFORM_VI_NN)
#define VK_NN_VI_SURFACE_SPEC_VERSION 1
#endif
#define VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME "VK_NVX_image_view_handle"
#define VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION 2
#define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes"
#define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION 1
#define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling"
#define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1
#define VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_NV_compute_shader_derivatives"
#define VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION 1
#define VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_NV_cooperative_matrix"
#define VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION 1
#define VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME "VK_NV_corner_sampled_image"
#define VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION 2
#define VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME "VK_NV_coverage_reduction_mode"
#define VK_NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION 1
#define VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_NV_dedicated_allocation"
#define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME "VK_NV_dedicated_allocation_image_aliasing"
#define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION 1
#define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1
#define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME "VK_NV_device_diagnostics_config"
#define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION 1
#define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME "VK_NV_device_diagnostic_checkpoints"
#define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION 2
#define VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NV_device_generated_commands"
#define VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3
#define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities"
#define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
#define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory"
#define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1
#if defined(VK_USE_PLATFORM_WIN32_KHR)
#define VK_NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_NV_external_memory_win32"
#endif
#if defined(VK_USE_PLATFORM_WIN32_KHR)
#define VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1
#endif
#define VK_NV_FILL_RECTANGLE_EXTENSION_NAME "VK_NV_fill_rectangle"
#define VK_NV_FILL_RECTANGLE_SPEC_VERSION 1
#define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME "VK_NV_fragment_coverage_to_color"
#define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION 1
#define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_NV_fragment_shader_barycentric"
#define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1
#define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME "VK_NV_framebuffer_mixed_samples"
#define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION 1
#define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME "VK_NV_geometry_shader_passthrough"
#define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION 1
#define VK_NV_GLSL_SHADER_EXTENSION_NAME "VK_NV_glsl_shader"
#define VK_NV_GLSL_SHADER_SPEC_VERSION 1
#define VK_NV_MESH_SHADER_EXTENSION_NAME "VK_NV_mesh_shader"
#define VK_NV_MESH_SHADER_SPEC_VERSION 1
#define VK_NV_RAY_TRACING_EXTENSION_NAME "VK_NV_ray_tracing"
#define VK_NV_RAY_TRACING_SPEC_VERSION 3
#define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME "VK_NV_representative_fragment_test"
#define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION 2
#define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME "VK_NV_sample_mask_override_coverage"
#define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION 1
#define VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME "VK_NV_scissor_exclusive"
#define VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION 1
#define VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME "VK_NV_shader_image_footprint"
#define VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION 2
#define VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME "VK_NV_shader_sm_builtins"
#define VK_NV_SHADER_SM_BUILTINS_SPEC_VERSION 1
#define VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME "VK_NV_shader_subgroup_partitioned"
#define VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION 1
#define VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME "VK_NV_shading_rate_image"
#define VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION 3
#define VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME "VK_NV_viewport_array2"
#define VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION 1
#define VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME "VK_NV_viewport_swizzle"
#define VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION 1
#if defined(VK_USE_PLATFORM_WIN32_KHR)
#define VK_NV_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_NV_win32_keyed_mutex"
#endif
#if defined(VK_USE_PLATFORM_WIN32_KHR)
#define VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION 2
#endif
#define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_EXTENSION_NAME "VK_QCOM_render_pass_shader_resolve"
#define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_SPEC_VERSION 4
#define VK_QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME "VK_QCOM_render_pass_transform"
#define VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION 1
#define VK_QCOM_render_pass_store_ops_EXTENSION_NAME "VK_QCOM_render_pass_store_ops"
#define VK_QCOM_render_pass_store_ops_SPEC_VERSION 2
#define VK_QUEUE_FAMILY_EXTERNAL (~0U-1)
#define VK_QUEUE_FAMILY_EXTERNAL_KHR (~0U-1)
#define VK_QUEUE_FAMILY_FOREIGN_EXT (~0U-2)
#define VK_QUEUE_FAMILY_IGNORED (~0U)
#define VK_REMAINING_ARRAY_LAYERS (~0U)
#define VK_REMAINING_MIP_LEVELS (~0U)
#define VK_SHADER_UNUSED_KHR (~0U)
#define VK_SHADER_UNUSED_NV (~0U)
#define VK_SUBPASS_EXTERNAL (~0U)
#define VK_TRUE 1
#define VK_UUID_SIZE 16
#define VK_WHOLE_SIZE (~0ULL)


#include "vk_platform.h"

#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT) || defined(VK_USE_PLATFORM_XLIB_KHR)
#endif

#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
#endif

#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
#endif

#if defined(VK_USE_PLATFORM_WIN32_KHR) || defined(VK_USE_PLATFORM_WIN32_KHR) || defined(VK_USE_PLATFORM_WIN32_KHR) || defined(VK_USE_PLATFORM_WIN32_KHR) || defined(VK_USE_PLATFORM_WIN32_KHR) || defined(VK_USE_PLATFORM_WIN32_KHR)
#endif

#if defined(VK_USE_PLATFORM_XCB_KHR)
#endif

#if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
#endif

#if defined(VK_USE_PLATFORM_FUCHSIA)
#endif

#if defined(VK_USE_PLATFORM_GGP) || defined(VK_USE_PLATFORM_GGP)
#endif

#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT) || defined(VK_USE_PLATFORM_XLIB_KHR)
#endif

#if defined(VK_USE_PLATFORM_XLIB_KHR)
#endif

#if defined(VK_USE_PLATFORM_XLIB_KHR)
#endif

#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
#endif

#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
#endif

#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
#endif

#if defined(VK_USE_PLATFORM_WIN32_KHR)
#endif

#if defined(VK_USE_PLATFORM_WIN32_KHR)
#endif

#if defined(VK_USE_PLATFORM_WIN32_KHR)
#endif

#if defined(VK_USE_PLATFORM_WIN32_KHR) || defined(VK_USE_PLATFORM_WIN32_KHR) || defined(VK_USE_PLATFORM_WIN32_KHR) || defined(VK_USE_PLATFORM_WIN32_KHR)
#endif

#if defined(VK_USE_PLATFORM_WIN32_KHR) || defined(VK_USE_PLATFORM_WIN32_KHR) || defined(VK_USE_PLATFORM_WIN32_KHR) || defined(VK_USE_PLATFORM_WIN32_KHR)
#endif

#if defined(VK_USE_PLATFORM_WIN32_KHR) || defined(VK_USE_PLATFORM_WIN32_KHR) || defined(VK_USE_PLATFORM_WIN32_KHR) || defined(VK_USE_PLATFORM_WIN32_KHR)
#endif

#if defined(VK_USE_PLATFORM_WIN32_KHR) || defined(VK_USE_PLATFORM_WIN32_KHR) || defined(VK_USE_PLATFORM_WIN32_KHR)
#endif

#if defined(VK_USE_PLATFORM_XCB_KHR)
#endif

#if defined(VK_USE_PLATFORM_XCB_KHR)
#endif

#if defined(VK_USE_PLATFORM_XCB_KHR)
#endif

#if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
#endif

#if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
#endif

#if defined(VK_USE_PLATFORM_FUCHSIA)
#endif

#if defined(VK_USE_PLATFORM_GGP)
#endif

#if defined(VK_USE_PLATFORM_GGP)
#endif

#define VK_MAKE_VERSION(major, minor, patch) \
    ((((uint32_t)(major)) << 22) | (((uint32_t)(minor)) << 12) | ((uint32_t)(patch)))

#define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22)

#define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff)

#define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff)

/* DEPRECATED: This define has been removed. Specific version defines (e.g. VK_API_VERSION_1_0), or the VK_MAKE_VERSION macro, should be used instead. */
/*#define VK_API_VERSION VK_MAKE_VERSION(1, 0, 0) // Patch version should always be set to 0 */

/* Vulkan 1.0 version number */
#define VK_API_VERSION_1_0 VK_MAKE_VERSION(1, 0, 0)/* Patch version should always be set to 0 */

/* Vulkan 1.1 version number */
#define VK_API_VERSION_1_1 VK_MAKE_VERSION(1, 1, 0)/* Patch version should always be set to 0 */

/* Vulkan 1.2 version number */
#define VK_API_VERSION_1_2 VK_MAKE_VERSION(1, 2, 0)/* Patch version should always be set to 0 */

/* Version of this file */
#define VK_HEADER_VERSION 152

/* Complete version of this file */
#define VK_HEADER_VERSION_COMPLETE VK_MAKE_VERSION(1, 2, VK_HEADER_VERSION)

#define VK_DEFINE_HANDLE(object) typedef struct object##_T* object;

#if !defined(VK_DEFINE_NON_DISPATCHABLE_HANDLE)
#if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__)
        #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object;
#else
        #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object;
#endif
#endif

#define VK_NULL_HANDLE 0

#if defined(VK_USE_PLATFORM_ANDROID_KHR)
struct ANativeWindow;
#endif

#if defined(VK_USE_PLATFORM_ANDROID_KHR)
struct AHardwareBuffer;
#endif

#if defined(VK_USE_PLATFORM_METAL_EXT)
#ifdef __OBJC__
@class CAMetalLayer;
#else
typedef void CAMetalLayer;
#endif
#endif













VK_DEFINE_HANDLE(VkInstance)

VK_DEFINE_HANDLE(VkPhysicalDevice)

VK_DEFINE_HANDLE(VkDevice)

VK_DEFINE_HANDLE(VkQueue)

VK_DEFINE_HANDLE(VkCommandBuffer)

VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeviceMemory)

VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool)

VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer)

VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferView)

VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImage)

VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImageView)

VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderModule)

VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipeline)

VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineLayout)

VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSampler)

VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet)

VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSetLayout)

VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool)

VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFence)

VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSemaphore)

VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkEvent)

VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkQueryPool)

VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer)

VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass)

VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineCache)

VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNV)

VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorUpdateTemplate)

#define VkDescriptorUpdateTemplateKHR VkDescriptorUpdateTemplate

VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSamplerYcbcrConversion)

#define VkSamplerYcbcrConversionKHR VkSamplerYcbcrConversion

VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkValidationCacheEXT)

VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureKHR)

#define VkAccelerationStructureNV VkAccelerationStructureKHR

VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPerformanceConfigurationINTEL)

#if defined(VK_ENABLE_BETA_EXTENSIONS)
VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeferredOperationKHR)
#endif

VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPrivateDataSlotEXT)

VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR)

VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR)

VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR)

VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR)

VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)

VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugUtilsMessengerEXT)

typedef enum VkAttachmentLoadOp {
    VK_ATTACHMENT_LOAD_OP_LOAD = 0,
    VK_ATTACHMENT_LOAD_OP_CLEAR = 1,
    VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2
} VkAttachmentLoadOp;

typedef enum VkAttachmentStoreOp {
    VK_ATTACHMENT_STORE_OP_STORE = 0,
    VK_ATTACHMENT_STORE_OP_DONT_CARE = 1,
    VK_ATTACHMENT_STORE_OP_NONE_QCOM = 1000301000
} VkAttachmentStoreOp;

typedef enum VkBlendFactor {
    VK_BLEND_FACTOR_ZERO = 0,
    VK_BLEND_FACTOR_ONE = 1,
    VK_BLEND_FACTOR_SRC_COLOR = 2,
    VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3,
    VK_BLEND_FACTOR_DST_COLOR = 4,
    VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5,
    VK_BLEND_FACTOR_SRC_ALPHA = 6,
    VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7,
    VK_BLEND_FACTOR_DST_ALPHA = 8,
    VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9,
    VK_BLEND_FACTOR_CONSTANT_COLOR = 10,
    VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11,
    VK_BLEND_FACTOR_CONSTANT_ALPHA = 12,
    VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13,
    VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14,
    VK_BLEND_FACTOR_SRC1_COLOR = 15,
    VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16,
    VK_BLEND_FACTOR_SRC1_ALPHA = 17,
    VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18
} VkBlendFactor;

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

typedef enum VkBorderColor {
    VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
    VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1,
    VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2,
    VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3,
    VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4,
    VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5,
    VK_BORDER_COLOR_FLOAT_CUSTOM_EXT = 1000287003,
    VK_BORDER_COLOR_INT_CUSTOM_EXT = 1000287004
} VkBorderColor;

typedef enum VkFramebufferCreateFlagBits {
    VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT = 1,
    VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT
} VkFramebufferCreateFlagBits;

typedef enum VkRenderPassCreateFlagBits {
    VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM = 2
} VkRenderPassCreateFlagBits;

typedef enum VkSamplerCreateFlagBits {
    VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT = 1,
    VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT = 2
} VkSamplerCreateFlagBits;

typedef enum VkPipelineCacheHeaderVersion {
    VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1
} VkPipelineCacheHeaderVersion;

typedef enum VkPipelineCacheCreateFlagBits {
    VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT = 1
} VkPipelineCacheCreateFlagBits;

typedef enum VkPipelineShaderStageCreateFlagBits {
    VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = 1,
    VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = 2
} VkPipelineShaderStageCreateFlagBits;

typedef enum VkDescriptorSetLayoutCreateFlagBits {
    VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = 2,
    VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 1,
    VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT
} VkDescriptorSetLayoutCreateFlagBits;

typedef enum VkDeviceQueueCreateFlagBits {
    VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 1
} VkDeviceQueueCreateFlagBits;

typedef enum VkBufferCreateFlagBits {
    VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 1,
    VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 2,
    VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 4,
    VK_BUFFER_CREATE_PROTECTED_BIT = 8,
    VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 16,
    VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
    VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT
} VkBufferCreateFlagBits;

typedef enum VkBufferUsageFlagBits {
    VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 1,
    VK_BUFFER_USAGE_TRANSFER_DST_BIT = 2,
    VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 4,
    VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 8,
    VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 16,
    VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 32,
    VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 64,
    VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 128,
    VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 256,
    VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = 131072,
    VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 2048,
    VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 4096,
    VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 512,
    VK_BUFFER_USAGE_RAY_TRACING_BIT_KHR = 1024,
    VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = VK_BUFFER_USAGE_RAY_TRACING_BIT_KHR,
    VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
    VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT
} VkBufferUsageFlagBits;

typedef enum VkColorComponentFlagBits {
    VK_COLOR_COMPONENT_R_BIT = 1,
    VK_COLOR_COMPONENT_G_BIT = 2,
    VK_COLOR_COMPONENT_B_BIT = 4,
    VK_COLOR_COMPONENT_A_BIT = 8
} VkColorComponentFlagBits;

typedef enum VkComponentSwizzle {
    VK_COMPONENT_SWIZZLE_IDENTITY = 0,
    VK_COMPONENT_SWIZZLE_ZERO = 1,
    VK_COMPONENT_SWIZZLE_ONE = 2,
    VK_COMPONENT_SWIZZLE_R = 3,
    VK_COMPONENT_SWIZZLE_G = 4,
    VK_COMPONENT_SWIZZLE_B = 5,
    VK_COMPONENT_SWIZZLE_A = 6
} VkComponentSwizzle;

typedef enum VkCommandPoolCreateFlagBits {
    VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 1,
    VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 2,
    VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 4
} VkCommandPoolCreateFlagBits;

typedef enum VkCommandPoolResetFlagBits {
    VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 1
} VkCommandPoolResetFlagBits;

typedef enum VkCommandBufferResetFlagBits {
    VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 1
} VkCommandBufferResetFlagBits;

typedef enum VkCommandBufferLevel {
    VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0,
    VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1
} VkCommandBufferLevel;

typedef enum VkCommandBufferUsageFlagBits {
    VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 1,
    VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 2,
    VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 4
} VkCommandBufferUsageFlagBits;

typedef enum VkCompareOp {
    VK_COMPARE_OP_NEVER = 0,
    VK_COMPARE_OP_LESS = 1,
    VK_COMPARE_OP_EQUAL = 2,
    VK_COMPARE_OP_LESS_OR_EQUAL = 3,
    VK_COMPARE_OP_GREATER = 4,
    VK_COMPARE_OP_NOT_EQUAL = 5,
    VK_COMPARE_OP_GREATER_OR_EQUAL = 6,
    VK_COMPARE_OP_ALWAYS = 7
} VkCompareOp;

typedef enum VkCullModeFlagBits {
    VK_CULL_MODE_NONE = 0,
    VK_CULL_MODE_FRONT_BIT = 1,
    VK_CULL_MODE_BACK_BIT = 2,
    VK_CULL_MODE_FRONT_AND_BACK = 0x00000003
} VkCullModeFlagBits;

typedef enum VkDescriptorType {
    VK_DESCRIPTOR_TYPE_SAMPLER = 0,
    VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1,
    VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2,
    VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3,
    VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4,
    VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5,
    VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6,
    VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7,
    VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8,
    VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9,
    VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10,
    VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = 1000138000,
    VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR = 1000165000,
    VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR
} VkDescriptorType;

typedef enum VkDynamicState {
    VK_DYNAMIC_STATE_VIEWPORT = 0,
    VK_DYNAMIC_STATE_SCISSOR = 1,
    VK_DYNAMIC_STATE_LINE_WIDTH = 2,
    VK_DYNAMIC_STATE_DEPTH_BIAS = 3,
    VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4,
    VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5,
    VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6,
    VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7,
    VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8,
    VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000,
    VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000,
    VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000,
    VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV = 1000164004,
    VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = 1000164006,
    VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = 1000205001,
    VK_DYNAMIC_STATE_LINE_STIPPLE_EXT = 1000259000,
    VK_DYNAMIC_STATE_CULL_MODE_EXT = 1000267000,
    VK_DYNAMIC_STATE_FRONT_FACE_EXT = 1000267001,
    VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT = 1000267002,
    VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT = 1000267003,
    VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT = 1000267004,
    VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT = 1000267005,
    VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT = 1000267006,
    VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT = 1000267007,
    VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT = 1000267008,
    VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT = 1000267009,
    VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT = 1000267010,
    VK_DYNAMIC_STATE_STENCIL_OP_EXT = 1000267011
} VkDynamicState;

typedef enum VkFenceCreateFlagBits {
    VK_FENCE_CREATE_SIGNALED_BIT = 1
} VkFenceCreateFlagBits;

typedef enum VkPolygonMode {
    VK_POLYGON_MODE_FILL = 0,
    VK_POLYGON_MODE_LINE = 1,
    VK_POLYGON_MODE_POINT = 2,
    VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000
} VkPolygonMode;

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

typedef enum VkFormatFeatureFlagBits {
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 1,
    VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 2,
    VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 4,
    VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 8,
    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 16,
    VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 32,
    VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 64,
    VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 128,
    VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 256,
    VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 512,
    VK_FORMAT_FEATURE_BLIT_SRC_BIT = 1024,
    VK_FORMAT_FEATURE_BLIT_DST_BIT = 2048,
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 4096,
    VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 16384,
    VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 32768,
    VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 131072,
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 262144,
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 524288,
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 1048576,
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 2097152,
    VK_FORMAT_FEATURE_DISJOINT_BIT = 4194304,
    VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 8388608,
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 65536,
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 8192,
    VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,
    VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_DST_BIT,
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT,
    VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 536870912,
    VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT,
    VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = VK_FORMAT_FEATURE_DISJOINT_BIT,
    VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,
    VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG,
    VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 16777216
} VkFormatFeatureFlagBits;

typedef enum VkFrontFace {
    VK_FRONT_FACE_COUNTER_CLOCKWISE = 0,
    VK_FRONT_FACE_CLOCKWISE = 1
} VkFrontFace;

typedef enum VkImageAspectFlagBits {
    VK_IMAGE_ASPECT_COLOR_BIT = 1,
    VK_IMAGE_ASPECT_DEPTH_BIT = 2,
    VK_IMAGE_ASPECT_STENCIL_BIT = 4,
    VK_IMAGE_ASPECT_METADATA_BIT = 8,
    VK_IMAGE_ASPECT_PLANE_0_BIT = 16,
    VK_IMAGE_ASPECT_PLANE_1_BIT = 32,
    VK_IMAGE_ASPECT_PLANE_2_BIT = 64,
    VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = VK_IMAGE_ASPECT_PLANE_0_BIT,
    VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = VK_IMAGE_ASPECT_PLANE_1_BIT,
    VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = VK_IMAGE_ASPECT_PLANE_2_BIT,
    VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 128,
    VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 256,
    VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 512,
    VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 1024
} VkImageAspectFlagBits;

typedef enum VkImageCreateFlagBits {
    VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 1,
    VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 2,
    VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 4,
    VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 8,
    VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 16,
    VK_IMAGE_CREATE_ALIAS_BIT = 1024,
    VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 64,
    VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 32,
    VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 128,
    VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 256,
    VK_IMAGE_CREATE_PROTECTED_BIT = 2048,
    VK_IMAGE_CREATE_DISJOINT_BIT = 512,
    VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 8192,
    VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,
    VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,
    VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,
    VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,
    VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 4096,
    VK_IMAGE_CREATE_DISJOINT_BIT_KHR = VK_IMAGE_CREATE_DISJOINT_BIT,
    VK_IMAGE_CREATE_ALIAS_BIT_KHR = VK_IMAGE_CREATE_ALIAS_BIT,
    VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 16384
} VkImageCreateFlagBits;

typedef enum VkImageLayout {
    VK_IMAGE_LAYOUT_UNDEFINED = 0,
    VK_IMAGE_LAYOUT_GENERAL = 1,
    VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2,
    VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3,
    VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4,
    VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5,
    VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6,
    VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7,
    VK_IMAGE_LAYOUT_PREINITIALIZED = 8,
    VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000,
    VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001,
    VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL = 1000241000,
    VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL = 1000241001,
    VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL = 1000241002,
    VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL = 1000241003,
    VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
    VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000,
    VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
    VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
    VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = 1000164003,
    VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000,
    VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL,
    VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,
    VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL,
    VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL
} VkImageLayout;

typedef enum VkImageTiling {
    VK_IMAGE_TILING_OPTIMAL = 0,
    VK_IMAGE_TILING_LINEAR = 1,
    VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT = 1000158000
} VkImageTiling;

typedef enum VkImageType {
    VK_IMAGE_TYPE_1D = 0,
    VK_IMAGE_TYPE_2D = 1,
    VK_IMAGE_TYPE_3D = 2
} VkImageType;

typedef enum VkImageUsageFlagBits {
    VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 1,
    VK_IMAGE_USAGE_TRANSFER_DST_BIT = 2,
    VK_IMAGE_USAGE_SAMPLED_BIT = 4,
    VK_IMAGE_USAGE_STORAGE_BIT = 8,
    VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 16,
    VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 32,
    VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 64,
    VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 128,
    VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = 256,
    VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 512
} VkImageUsageFlagBits;

typedef enum VkImageViewCreateFlagBits {
    VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 1,
    VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = 2
} VkImageViewCreateFlagBits;

typedef enum VkImageViewType {
    VK_IMAGE_VIEW_TYPE_1D = 0,
    VK_IMAGE_VIEW_TYPE_2D = 1,
    VK_IMAGE_VIEW_TYPE_3D = 2,
    VK_IMAGE_VIEW_TYPE_CUBE = 3,
    VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4,
    VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5,
    VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6
} VkImageViewType;

typedef enum VkSharingMode {
    VK_SHARING_MODE_EXCLUSIVE = 0,
    VK_SHARING_MODE_CONCURRENT = 1
} VkSharingMode;

typedef enum VkIndexType {
    VK_INDEX_TYPE_UINT16 = 0,
    VK_INDEX_TYPE_UINT32 = 1,
    VK_INDEX_TYPE_NONE_KHR = 1000165000,
    VK_INDEX_TYPE_NONE_NV = VK_INDEX_TYPE_NONE_KHR,
    VK_INDEX_TYPE_UINT8_EXT = 1000265000
} VkIndexType;

typedef enum VkLogicOp {
    VK_LOGIC_OP_CLEAR = 0,
    VK_LOGIC_OP_AND = 1,
    VK_LOGIC_OP_AND_REVERSE = 2,
    VK_LOGIC_OP_COPY = 3,
    VK_LOGIC_OP_AND_INVERTED = 4,
    VK_LOGIC_OP_NO_OP = 5,
    VK_LOGIC_OP_XOR = 6,
    VK_LOGIC_OP_OR = 7,
    VK_LOGIC_OP_NOR = 8,
    VK_LOGIC_OP_EQUIVALENT = 9,
    VK_LOGIC_OP_INVERT = 10,
    VK_LOGIC_OP_OR_REVERSE = 11,
    VK_LOGIC_OP_COPY_INVERTED = 12,
    VK_LOGIC_OP_OR_INVERTED = 13,
    VK_LOGIC_OP_NAND = 14,
    VK_LOGIC_OP_SET = 15
} VkLogicOp;

typedef enum VkMemoryHeapFlagBits {
    VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 1,
    VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 2,
    VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT
} VkMemoryHeapFlagBits;

typedef enum VkAccessFlagBits {
    VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 1,
    VK_ACCESS_INDEX_READ_BIT = 2,
    VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 4,
    VK_ACCESS_UNIFORM_READ_BIT = 8,
    VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 16,
    VK_ACCESS_SHADER_READ_BIT = 32,
    VK_ACCESS_SHADER_WRITE_BIT = 64,
    VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 128,
    VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 256,
    VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 512,
    VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 1024,
    VK_ACCESS_TRANSFER_READ_BIT = 2048,
    VK_ACCESS_TRANSFER_WRITE_BIT = 4096,
    VK_ACCESS_HOST_READ_BIT = 8192,
    VK_ACCESS_HOST_WRITE_BIT = 16384,
    VK_ACCESS_MEMORY_READ_BIT = 32768,
    VK_ACCESS_MEMORY_WRITE_BIT = 65536,
    VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 33554432,
    VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 67108864,
    VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 134217728,
    VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 1048576,
    VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 524288,
    VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR = 2097152,
    VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 4194304,
    VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = 8388608,
    VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR,
    VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,
    VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 16777216,
    VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV = 131072,
    VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV = 262144
} VkAccessFlagBits;

typedef enum VkMemoryPropertyFlagBits {
    VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 1,
    VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 2,
    VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 4,
    VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 8,
    VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 16,
    VK_MEMORY_PROPERTY_PROTECTED_BIT = 32,
    VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD = 64,
    VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD = 128
} VkMemoryPropertyFlagBits;

typedef enum VkPhysicalDeviceType {
    VK_PHYSICAL_DEVICE_TYPE_OTHER = 0,
    VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1,
    VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2,
    VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3,
    VK_PHYSICAL_DEVICE_TYPE_CPU = 4
} VkPhysicalDeviceType;

typedef enum VkPipelineBindPoint {
    VK_PIPELINE_BIND_POINT_GRAPHICS = 0,
    VK_PIPELINE_BIND_POINT_COMPUTE = 1,
    VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR = 1000165000,
    VK_PIPELINE_BIND_POINT_RAY_TRACING_NV = VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR
} VkPipelineBindPoint;

typedef enum VkPipelineCreateFlagBits {
    VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 1,
    VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 2,
    VK_PIPELINE_CREATE_DERIVATIVE_BIT = 4,
    VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 8,
    VK_PIPELINE_CREATE_DISPATCH_BASE_BIT = 16,
    VK_PIPELINE_CREATE_DISPATCH_BASE = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,
    VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,
    VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = VK_PIPELINE_CREATE_DISPATCH_BASE,
    VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = 16384,
    VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = 32768,
    VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = 65536,
    VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = 131072,
    VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = 4096,
    VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR = 8192,
    VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV = 32,
    VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR = 64,
    VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 128,
    VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV = 262144,
    VK_PIPELINE_CREATE_LIBRARY_BIT_KHR = 2048,
    VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT = 256,
    VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT = 512
} VkPipelineCreateFlagBits;

typedef enum VkPrimitiveTopology {
    VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0,
    VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1,
    VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2,
    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3,
    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4,
    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5,
    VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6,
    VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7,
    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8,
    VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9,
    VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10
} VkPrimitiveTopology;

typedef enum VkQueryControlFlagBits {
    VK_QUERY_CONTROL_PRECISE_BIT = 1
} VkQueryControlFlagBits;

typedef enum VkQueryPipelineStatisticFlagBits {
    VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 1,
    VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 2,
    VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 4,
    VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 8,
    VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 16,
    VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 32,
    VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 64,
    VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 128,
    VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 256,
    VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 512,
    VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 1024
} VkQueryPipelineStatisticFlagBits;

typedef enum VkQueryResultFlagBits {
    VK_QUERY_RESULT_64_BIT = 1,
    VK_QUERY_RESULT_WAIT_BIT = 2,
    VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 4,
    VK_QUERY_RESULT_PARTIAL_BIT = 8
} VkQueryResultFlagBits;

typedef enum VkQueryType {
    VK_QUERY_TYPE_OCCLUSION = 0,
    VK_QUERY_TYPE_PIPELINE_STATISTICS = 1,
    VK_QUERY_TYPE_TIMESTAMP = 2,
    VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004,
    VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR = 1000116000,
    VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR = 1000165000,
    VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR = 1000150000,
    VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR,
    VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL = 1000210000
} VkQueryType;

typedef enum VkQueueFlagBits {
    VK_QUEUE_GRAPHICS_BIT = 1,
    VK_QUEUE_COMPUTE_BIT = 2,
    VK_QUEUE_TRANSFER_BIT = 4,
    VK_QUEUE_SPARSE_BINDING_BIT = 8,
    VK_QUEUE_PROTECTED_BIT = 16
} VkQueueFlagBits;

typedef enum VkSubpassContents {
    VK_SUBPASS_CONTENTS_INLINE = 0,
    VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1
} VkSubpassContents;

typedef enum VkResult {
    VK_SUCCESS = 0,
    VK_NOT_READY = 1,
    VK_TIMEOUT = 2,
    VK_EVENT_SET = 3,
    VK_EVENT_RESET = 4,
    VK_INCOMPLETE = 5,
    VK_ERROR_OUT_OF_HOST_MEMORY = -1,
    VK_ERROR_OUT_OF_DEVICE_MEMORY = -2,
    VK_ERROR_INITIALIZATION_FAILED = -3,
    VK_ERROR_DEVICE_LOST = -4,
    VK_ERROR_MEMORY_MAP_FAILED = -5,
    VK_ERROR_LAYER_NOT_PRESENT = -6,
    VK_ERROR_EXTENSION_NOT_PRESENT = -7,
    VK_ERROR_FEATURE_NOT_PRESENT = -8,
    VK_ERROR_INCOMPATIBLE_DRIVER = -9,
    VK_ERROR_TOO_MANY_OBJECTS = -10,
    VK_ERROR_FORMAT_NOT_SUPPORTED = -11,
    VK_ERROR_FRAGMENTED_POOL = -12,
    VK_ERROR_UNKNOWN = -13,
    VK_ERROR_OUT_OF_POOL_MEMORY = -1000069000,
    VK_ERROR_INVALID_EXTERNAL_HANDLE = -1000072003,
    VK_ERROR_FRAGMENTATION = -1000161000,
    VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS = -1000257000,
    VK_ERROR_SURFACE_LOST_KHR = -1000000000,
    VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = -1000000001,
    VK_SUBOPTIMAL_KHR = 1000001003,
    VK_ERROR_OUT_OF_DATE_KHR = -1000001004,
    VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001,
    VK_ERROR_VALIDATION_FAILED_EXT = -1000011001,
    VK_ERROR_INVALID_SHADER_NV = -1000012000,
    VK_ERROR_OUT_OF_POOL_MEMORY_KHR = VK_ERROR_OUT_OF_POOL_MEMORY,
    VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = VK_ERROR_INVALID_EXTERNAL_HANDLE,
    VK_ERROR_INCOMPATIBLE_VERSION_KHR = -1000150000,
    VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = -1000158000,
    VK_ERROR_FRAGMENTATION_EXT = VK_ERROR_FRAGMENTATION,
    VK_ERROR_NOT_PERMITTED_EXT = -1000174001,
    VK_ERROR_INVALID_DEVICE_ADDRESS_EXT = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
    VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = -1000255000,
    VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
    VK_THREAD_IDLE_KHR = 1000268000,
    VK_THREAD_DONE_KHR = 1000268001,
    VK_OPERATION_DEFERRED_KHR = 1000268002,
    VK_OPERATION_NOT_DEFERRED_KHR = 1000268003,
    VK_PIPELINE_COMPILE_REQUIRED_EXT = 1000297000,
    VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT = VK_PIPELINE_COMPILE_REQUIRED_EXT
} VkResult;

typedef enum VkShaderStageFlagBits {
    VK_SHADER_STAGE_VERTEX_BIT = 1,
    VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 2,
    VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 4,
    VK_SHADER_STAGE_GEOMETRY_BIT = 8,
    VK_SHADER_STAGE_FRAGMENT_BIT = 16,
    VK_SHADER_STAGE_COMPUTE_BIT = 32,
    VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
    VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
    VK_SHADER_STAGE_RAYGEN_BIT_KHR = 256,
    VK_SHADER_STAGE_ANY_HIT_BIT_KHR = 512,
    VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR = 1024,
    VK_SHADER_STAGE_MISS_BIT_KHR = 2048,
    VK_SHADER_STAGE_INTERSECTION_BIT_KHR = 4096,
    VK_SHADER_STAGE_CALLABLE_BIT_KHR = 8192,
    VK_SHADER_STAGE_RAYGEN_BIT_NV = VK_SHADER_STAGE_RAYGEN_BIT_KHR,
    VK_SHADER_STAGE_ANY_HIT_BIT_NV = VK_SHADER_STAGE_ANY_HIT_BIT_KHR,
    VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR,
    VK_SHADER_STAGE_MISS_BIT_NV = VK_SHADER_STAGE_MISS_BIT_KHR,
    VK_SHADER_STAGE_INTERSECTION_BIT_NV = VK_SHADER_STAGE_INTERSECTION_BIT_KHR,
    VK_SHADER_STAGE_CALLABLE_BIT_NV = VK_SHADER_STAGE_CALLABLE_BIT_KHR,
    VK_SHADER_STAGE_TASK_BIT_NV = 64,
    VK_SHADER_STAGE_MESH_BIT_NV = 128
} VkShaderStageFlagBits;

typedef enum VkSparseMemoryBindFlagBits {
    VK_SPARSE_MEMORY_BIND_METADATA_BIT = 1
} VkSparseMemoryBindFlagBits;

typedef enum VkStencilFaceFlagBits {
    VK_STENCIL_FACE_FRONT_BIT = 1,
    VK_STENCIL_FACE_BACK_BIT = 2,
    VK_STENCIL_FACE_FRONT_AND_BACK = 0x00000003,
    VK_STENCIL_FRONT_AND_BACK = VK_STENCIL_FACE_FRONT_AND_BACK
} VkStencilFaceFlagBits;

typedef enum VkStencilOp {
    VK_STENCIL_OP_KEEP = 0,
    VK_STENCIL_OP_ZERO = 1,
    VK_STENCIL_OP_REPLACE = 2,
    VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3,
    VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4,
    VK_STENCIL_OP_INVERT = 5,
    VK_STENCIL_OP_INCREMENT_AND_WRAP = 6,
    VK_STENCIL_OP_DECREMENT_AND_WRAP = 7
} VkStencilOp;

typedef enum VkStructureType {
    VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
    VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
    VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
    VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
    VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
    VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5,
    VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
    VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
    VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
    VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
    VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
    VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
    VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
    VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
    VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
    VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
    VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
    VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17,
    VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18,
    VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19,
    VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20,
    VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21,
    VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22,
    VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23,
    VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24,
    VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25,
    VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26,
    VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27,
    VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28,
    VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29,
    VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30,
    VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31,
    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32,
    VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34,
    VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35,
    VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36,
    VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37,
    VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38,
    VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39,
    VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40,
    VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41,
    VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42,
    VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
    VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44,
    VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45,
    VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46,
    VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47,
    VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = 1000094000,
    VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = 1000157000,
    VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = 1000157001,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = 1000083000,
    VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = 1000127000,
    VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001,
    VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = 1000060000,
    VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = 1000060003,
    VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = 1000060004,
    VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = 1000060005,
    VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = 1000060006,
    VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = 1000060013,
    VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = 1000060014,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = 1000070000,
    VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = 1000070001,
    VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = 1000146000,
    VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = 1000146001,
    VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = 1000146002,
    VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = 1000146003,
    VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = 1000146004,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = 1000059000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001,
    VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = 1000059002,
    VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = 1000059003,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = 1000059004,
    VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = 1000059005,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006,
    VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = 1000059007,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = 1000059008,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = 1000117000,
    VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = 1000117001,
    VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = 1000117002,
    VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = 1000117003,
    VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES = 1000120000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
    VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002,
    VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = 1000145003,
    VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = 1000156000,
    VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = 1000156001,
    VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = 1000156002,
    VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = 1000156003,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = 1000156004,
    VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = 1000156005,
    VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = 1000085000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = 1000071000,
    VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = 1000071001,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = 1000071002,
    VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = 1000071003,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = 1000071004,
    VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = 1000072000,
    VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = 1000072001,
    VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = 1000072002,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = 1000112000,
    VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = 1000112001,
    VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = 1000113000,
    VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = 1000077000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = 1000076000,
    VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000,
    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES = 1000063000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES = 49,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES = 50,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES = 51,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES = 52,
    VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO = 1000147000,
    VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2 = 1000109000,
    VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2 = 1000109001,
    VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2 = 1000109002,
    VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2 = 1000109003,
    VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2 = 1000109004,
    VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO = 1000109005,
    VK_STRUCTURE_TYPE_SUBPASS_END_INFO = 1000109006,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES = 1000177000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES = 1000196000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES = 1000180000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES = 1000082000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES = 1000197000,
    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO = 1000161000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES = 1000161001,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES = 1000161002,
    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO = 1000161003,
    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT = 1000161004,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES = 1000199000,
    VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE = 1000199001,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES = 1000221000,
    VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO = 1000246000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES = 1000130000,
    VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO = 1000130001,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES = 1000211000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES = 1000108000,
    VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO = 1000108001,
    VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO = 1000108002,
    VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO = 1000108003,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES = 1000253000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES = 1000175000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES = 1000241000,
    VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT = 1000241001,
    VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT = 1000241002,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES = 1000261000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES = 1000207000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES = 1000207001,
    VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO = 1000207002,
    VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO = 1000207003,
    VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO = 1000207004,
    VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO = 1000207005,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES = 1000257000,
    VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO = 1000244001,
    VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO = 1000257002,
    VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO = 1000257003,
    VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO = 1000257004,
    VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000,
    VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001,
    VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
    VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008,
    VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009,
    VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010,
    VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011,
    VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012,
    VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000,
    VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001,
    VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR = 1000003000,
    VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000,
    VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000,
    VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000,
    VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000,
    VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000,
    VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000,
    VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
    VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000,
    VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000,
    VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001,
    VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002,
    VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000,
    VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001,
    VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT = 1000028000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT = 1000028001,
    VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT = 1000028002,
    VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = 1000030000,
    VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX = 1000030001,
    VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000,
    VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP = 1000049000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000,
    VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,
    VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
    VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001,
    VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000,
    VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001,
    VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2,
    VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2,
    VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2,
    VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2,
    VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2,
    VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO,
    VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO,
    VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO,
    VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO,
    VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO,
    VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO,
    VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO,
    VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000,
    VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT = 1000066000,
    VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES,
    VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO,
    VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO,
    VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES,
    VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO,
    VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO,
    VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO,
    VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000,
    VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001,
    VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002,
    VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR = 1000073003,
    VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = 1000074000,
    VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = 1000074001,
    VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR = 1000074002,
    VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = 1000075000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO,
    VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES,
    VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO,
    VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078000,
    VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078001,
    VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = 1000078002,
    VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR = 1000078003,
    VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000,
    VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000,
    VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = 1000081000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = 1000081001,
    VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = 1000081002,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES,
    VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000,
    VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO,
    VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000,
    VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000,
    VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT,
    VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000,
    VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001,
    VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002,
    VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003,
    VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000,
    VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000,
    VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000,
    VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT = 1000102000,
    VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT = 1000102001,
    VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES,
    VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO,
    VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO,
    VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO,
    VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2,
    VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
    VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2,
    VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
    VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2,
    VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO,
    VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR = VK_STRUCTURE_TYPE_SUBPASS_END_INFO,
    VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO,
    VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES,
    VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO,
    VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000,
    VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001,
    VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002,
    VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000,
    VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR = 1000116000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR = 1000116001,
    VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR = 1000116002,
    VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR = 1000116003,
    VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR = 1000116004,
    VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR = 1000116005,
    VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR = 1000116006,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES,
    VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO,
    VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO,
    VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000,
    VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001,
    VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR,
    VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR = 1000121000,
    VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR = 1000121001,
    VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR = 1000121002,
    VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR = 1000121003,
    VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR = 1000121004,
    VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000,
    VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000,
    VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS,
    VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO,
    VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000128000,
    VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT = 1000128001,
    VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = 1000128002,
    VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000128003,
    VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000128004,
    VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = 1000129000,
    VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = 1000129001,
    VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = 1000129002,
    VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129003,
    VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004,
    VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES,
    VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT = 1000138000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT = 1000138001,
    VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT = 1000138002,
    VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT = 1000138003,
    VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000,
    VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001,
    VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003,
    VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004,
    VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2,
    VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2,
    VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2,
    VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2,
    VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2,
    VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001,
    VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002,
    VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000,
    VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_KHR = 1000165006,
    VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR = 1000165007,
    VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR = 1000150000,
    VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_GEOMETRY_TYPE_INFO_KHR = 1000150001,
    VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR = 1000150002,
    VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR = 1000150003,
    VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR = 1000150004,
    VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR = 1000150005,
    VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR = 1000150006,
    VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_KHR = 1000150008,
    VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_KHR = 1000150009,
    VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR = 1000150010,
    VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR = 1000150011,
    VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR = 1000150012,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_FEATURES_KHR = 1000150013,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_KHR = 1000150014,
    VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR = 1000150015,
    VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR = 1000150016,
    VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR = 1000150017,
    VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR = 1000150018,
    VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV = 1000154000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV = 1000154001,
    VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO,
    VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO,
    VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO,
    VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES,
    VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES,
    VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO,
    VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO,
    VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT = 1000158000,
    VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158001,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT = 1000158002,
    VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT = 1000158003,
    VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT = 1000158004,
    VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158005,
    VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000,
    VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001,
    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES,
    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO,
    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT,
    VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV = 1000164000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV = 1000164001,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV = 1000164002,
    VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV = 1000164005,
    VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV = 1000165000,
    VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV = 1000165001,
    VK_STRUCTURE_TYPE_GEOMETRY_NV = 1000165003,
    VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV = 1000165004,
    VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV = 1000165005,
    VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV = VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_KHR,
    VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR,
    VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV = 1000165008,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV = 1000165009,
    VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV = 1000165011,
    VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV = 1000165012,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV = 1000166000,
    VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV = 1000166001,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES,
    VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT = 1000170000,
    VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT = 1000170001,
    VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = 1000174000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES,
    VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000,
    VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR = 1000181000,
    VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = 1000183000,
    VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = 1000184000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000,
    VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD = 1000189000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000,
    VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = 1000190001,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = 1000190002,
    VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP = 1000191000,
    VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT = 1000192000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES,
    VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = 1000201000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = 1000202000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = 1000202001,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = 1000203000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = 1000204000,
    VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = 1000205000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = 1000205002,
    VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000,
    VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES,
    VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO,
    VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO,
    VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO,
    VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL = 1000209000,
    VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL = 1000210000,
    VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL,
    VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL = 1000210001,
    VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL = 1000210002,
    VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL = 1000210003,
    VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL = 1000210004,
    VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL = 1000210005,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT = 1000212000,
    VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD = 1000213000,
    VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD = 1000213001,
    VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA = 1000214000,
    VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT = 1000217000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT = 1000218000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT = 1000218001,
    VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT = 1000218002,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT = 1000225000,
    VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = 1000225001,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT = 1000225002,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD = 1000227000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD = 1000229000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT = 1000237000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT = 1000238000,
    VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT = 1000238001,
    VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR = 1000239000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV = 1000240000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES,
    VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT,
    VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT = 1000244000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT,
    VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
    VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT = 1000244002,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT = 1000245000,
    VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO,
    VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT = 1000247000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV = 1000249000,
    VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249001,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249002,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV = 1000250000,
    VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV = 1000250001,
    VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV = 1000250002,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT = 1000251000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT = 1000252000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES,
    VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT = 1000255000,
    VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT = 1000255002,
    VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT = 1000255001,
    VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT = 1000256000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES,
    VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
    VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO,
    VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO,
    VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT = 1000259000,
    VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT = 1000259001,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT = 1000259002,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT = 1000260000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT = 1000265000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT = 1000267000,
    VK_STRUCTURE_TYPE_DEFERRED_OPERATION_INFO_KHR = 1000268000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR = 1000269000,
    VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR = 1000269001,
    VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR = 1000269002,
    VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR = 1000269003,
    VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = 1000269004,
    VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = 1000269005,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT = 1000276000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV = 1000277000,
    VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV = 1000277001,
    VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV = 1000277002,
    VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV = 1000277003,
    VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV = 1000277004,
    VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV = 1000277005,
    VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV = 1000277006,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV = 1000277007,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = 1000281000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT = 1000281001,
    VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM = 1000282000,
    VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM = 1000282001,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT = 1000286000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT = 1000286001,
    VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT = 1000287000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT = 1000287001,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT = 1000287002,
    VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR = 1000290000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT = 1000295000,
    VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT = 1000295001,
    VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT = 1000295002,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT = 1000297000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = 1000300000,
    VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = 1000300001,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = 1000332000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = 1000332001,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT = 1000335000,
    VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT = 1000340000,
    VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT = 1000346000
} VkStructureType;

typedef enum VkSystemAllocationScope {
    VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0,
    VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1,
    VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2,
    VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3,
    VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4
} VkSystemAllocationScope;

typedef enum VkInternalAllocationType {
    VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0
} VkInternalAllocationType;

typedef enum VkSamplerAddressMode {
    VK_SAMPLER_ADDRESS_MODE_REPEAT = 0,
    VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1,
    VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2,
    VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3,
    VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4,
    VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE
} VkSamplerAddressMode;

typedef enum VkFilter {
    VK_FILTER_NEAREST = 0,
    VK_FILTER_LINEAR = 1,
    VK_FILTER_CUBIC_IMG = 1000015000,
    VK_FILTER_CUBIC_EXT = VK_FILTER_CUBIC_IMG
} VkFilter;

typedef enum VkSamplerMipmapMode {
    VK_SAMPLER_MIPMAP_MODE_NEAREST = 0,
    VK_SAMPLER_MIPMAP_MODE_LINEAR = 1
} VkSamplerMipmapMode;

typedef enum VkVertexInputRate {
    VK_VERTEX_INPUT_RATE_VERTEX = 0,
    VK_VERTEX_INPUT_RATE_INSTANCE = 1
} VkVertexInputRate;

typedef enum VkPipelineStageFlagBits {
    VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 1,
    VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 2,
    VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 4,
    VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 8,
    VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 16,
    VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 32,
    VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 64,
    VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 128,
    VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 256,
    VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 512,
    VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 1024,
    VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 2048,
    VK_PIPELINE_STAGE_TRANSFER_BIT = 4096,
    VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 8192,
    VK_PIPELINE_STAGE_HOST_BIT = 16384,
    VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 32768,
    VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 65536,
    VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = 16777216,
    VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 262144,
    VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR = 2097152,
    VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 33554432,
    VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = 4194304,
    VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,
    VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,
    VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 524288,
    VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 1048576,
    VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 8388608,
    VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV = 131072
} VkPipelineStageFlagBits;

typedef enum VkSparseImageFormatFlagBits {
    VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 1,
    VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 2,
    VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 4
} VkSparseImageFormatFlagBits;

typedef enum VkSampleCountFlagBits {
    VK_SAMPLE_COUNT_1_BIT = 1,
    VK_SAMPLE_COUNT_2_BIT = 2,
    VK_SAMPLE_COUNT_4_BIT = 4,
    VK_SAMPLE_COUNT_8_BIT = 8,
    VK_SAMPLE_COUNT_16_BIT = 16,
    VK_SAMPLE_COUNT_32_BIT = 32,
    VK_SAMPLE_COUNT_64_BIT = 64
} VkSampleCountFlagBits;

typedef enum VkAttachmentDescriptionFlagBits {
    VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 1
} VkAttachmentDescriptionFlagBits;

typedef enum VkDescriptorPoolCreateFlagBits {
    VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 1,
    VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 2,
    VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT
} VkDescriptorPoolCreateFlagBits;

typedef enum VkDependencyFlagBits {
    VK_DEPENDENCY_BY_REGION_BIT = 1,
    VK_DEPENDENCY_DEVICE_GROUP_BIT = 4,
    VK_DEPENDENCY_VIEW_LOCAL_BIT = 2,
    VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = VK_DEPENDENCY_VIEW_LOCAL_BIT,
    VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = VK_DEPENDENCY_DEVICE_GROUP_BIT
} VkDependencyFlagBits;

typedef enum VkObjectType {
    VK_OBJECT_TYPE_UNKNOWN = 0,
    VK_OBJECT_TYPE_INSTANCE = 1,
    VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2,
    VK_OBJECT_TYPE_DEVICE = 3,
    VK_OBJECT_TYPE_QUEUE = 4,
    VK_OBJECT_TYPE_SEMAPHORE = 5,
    VK_OBJECT_TYPE_COMMAND_BUFFER = 6,
    VK_OBJECT_TYPE_FENCE = 7,
    VK_OBJECT_TYPE_DEVICE_MEMORY = 8,
    VK_OBJECT_TYPE_BUFFER = 9,
    VK_OBJECT_TYPE_IMAGE = 10,
    VK_OBJECT_TYPE_EVENT = 11,
    VK_OBJECT_TYPE_QUERY_POOL = 12,
    VK_OBJECT_TYPE_BUFFER_VIEW = 13,
    VK_OBJECT_TYPE_IMAGE_VIEW = 14,
    VK_OBJECT_TYPE_SHADER_MODULE = 15,
    VK_OBJECT_TYPE_PIPELINE_CACHE = 16,
    VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17,
    VK_OBJECT_TYPE_RENDER_PASS = 18,
    VK_OBJECT_TYPE_PIPELINE = 19,
    VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20,
    VK_OBJECT_TYPE_SAMPLER = 21,
    VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22,
    VK_OBJECT_TYPE_DESCRIPTOR_SET = 23,
    VK_OBJECT_TYPE_FRAMEBUFFER = 24,
    VK_OBJECT_TYPE_COMMAND_POOL = 25,
    VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000,
    VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000,
    VK_OBJECT_TYPE_SURFACE_KHR = 1000000000,
    VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000,
    VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000,
    VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001,
    VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000,
    VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
    VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000,
    VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR = 1000165000,
    VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,
    VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000,
    VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV = VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR,
    VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL = 1000210000,
    VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR = 1000268000,
    VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV = 1000277000,
    VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT = 1000295000
} VkObjectType;

typedef enum VkIndirectCommandsLayoutUsageFlagBitsNV {
    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 1,
    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 2,
    VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 4
} VkIndirectCommandsLayoutUsageFlagBitsNV;

typedef enum VkIndirectCommandsTokenTypeNV {
    VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0,
    VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1,
    VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2,
    VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3,
    VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4,
    VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5,
    VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6,
    VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7
} VkIndirectCommandsTokenTypeNV;

typedef enum VkIndirectStateFlagBitsNV {
    VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 1
} VkIndirectStateFlagBitsNV;


typedef enum VkDescriptorUpdateTemplateType {
    VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0,
    VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1,
    VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET
} VkDescriptorUpdateTemplateType;

typedef enum VkDescriptorUpdateTemplateType VkDescriptorUpdateTemplateTypeKHR;

typedef enum VkViewportCoordinateSwizzleNV {
    VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0,
    VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1,
    VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2,
    VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3,
    VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4,
    VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5,
    VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6,
    VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7
} VkViewportCoordinateSwizzleNV;

typedef enum VkDiscardRectangleModeEXT {
    VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0,
    VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1
} VkDiscardRectangleModeEXT;

typedef enum VkSubpassDescriptionFlagBits {
    VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 1,
    VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 2,
    VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM = 4,
    VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM = 8
} VkSubpassDescriptionFlagBits;

typedef enum VkPointClippingBehavior {
    VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0,
    VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1,
    VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES,
    VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY
} VkPointClippingBehavior;

typedef enum VkPointClippingBehavior VkPointClippingBehaviorKHR;

typedef enum VkCoverageModulationModeNV {
    VK_COVERAGE_MODULATION_MODE_NONE_NV = 0,
    VK_COVERAGE_MODULATION_MODE_RGB_NV = 1,
    VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2,
    VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3
} VkCoverageModulationModeNV;

typedef enum VkCoverageReductionModeNV {
    VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0,
    VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1
} VkCoverageReductionModeNV;

typedef enum VkValidationCacheHeaderVersionEXT {
    VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1
} VkValidationCacheHeaderVersionEXT;

typedef enum VkShaderInfoTypeAMD {
    VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0,
    VK_SHADER_INFO_TYPE_BINARY_AMD = 1,
    VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2
} VkShaderInfoTypeAMD;

typedef enum VkQueueGlobalPriorityEXT {
    VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128,
    VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256,
    VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512,
    VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024
} VkQueueGlobalPriorityEXT;

typedef enum VkTimeDomainEXT {
    VK_TIME_DOMAIN_DEVICE_EXT = 0,
    VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1,
    VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2,
    VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3
} VkTimeDomainEXT;

typedef enum VkConservativeRasterizationModeEXT {
    VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0,
    VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1,
    VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2
} VkConservativeRasterizationModeEXT;

typedef enum VkResolveModeFlagBits {
    VK_RESOLVE_MODE_NONE = 0,
    VK_RESOLVE_MODE_SAMPLE_ZERO_BIT = 1,
    VK_RESOLVE_MODE_AVERAGE_BIT = 2,
    VK_RESOLVE_MODE_MIN_BIT = 4,
    VK_RESOLVE_MODE_MAX_BIT = 8,
    VK_RESOLVE_MODE_NONE_KHR = VK_RESOLVE_MODE_NONE,
    VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR = VK_RESOLVE_MODE_SAMPLE_ZERO_BIT,
    VK_RESOLVE_MODE_AVERAGE_BIT_KHR = VK_RESOLVE_MODE_AVERAGE_BIT,
    VK_RESOLVE_MODE_MIN_BIT_KHR = VK_RESOLVE_MODE_MIN_BIT,
    VK_RESOLVE_MODE_MAX_BIT_KHR = VK_RESOLVE_MODE_MAX_BIT
} VkResolveModeFlagBits;

typedef enum VkResolveModeFlagBits VkResolveModeFlagBitsKHR;

typedef enum VkDescriptorBindingFlagBits {
    VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT = 1,
    VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT = 2,
    VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT = 4,
    VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT = 8,
    VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT = VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT,
    VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT = VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT,
    VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT = VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT,
    VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT = VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT
} VkDescriptorBindingFlagBits;

typedef enum VkDescriptorBindingFlagBits VkDescriptorBindingFlagBitsEXT;

typedef enum VkConditionalRenderingFlagBitsEXT {
    VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 1
} VkConditionalRenderingFlagBitsEXT;

typedef enum VkSemaphoreType {
    VK_SEMAPHORE_TYPE_BINARY = 0,
    VK_SEMAPHORE_TYPE_TIMELINE = 1,
    VK_SEMAPHORE_TYPE_BINARY_KHR = VK_SEMAPHORE_TYPE_BINARY,
    VK_SEMAPHORE_TYPE_TIMELINE_KHR = VK_SEMAPHORE_TYPE_TIMELINE
} VkSemaphoreType;

typedef enum VkSemaphoreType VkSemaphoreTypeKHR;

typedef enum VkGeometryFlagBitsKHR {
    VK_GEOMETRY_OPAQUE_BIT_KHR = 1,
    VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 2,
    VK_GEOMETRY_OPAQUE_BIT_NV = VK_GEOMETRY_OPAQUE_BIT_KHR,
    VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR
} VkGeometryFlagBitsKHR;

typedef enum VkGeometryFlagBitsKHR VkGeometryFlagBitsNV;

typedef enum VkGeometryInstanceFlagBitsKHR {
    VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 1,
    VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = 2,
    VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 4,
    VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 8,
    VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR,
    VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR,
    VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR,
    VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR
} VkGeometryInstanceFlagBitsKHR;

typedef enum VkGeometryInstanceFlagBitsKHR VkGeometryInstanceFlagBitsNV;

typedef enum VkBuildAccelerationStructureFlagBitsKHR {
    VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 1,
    VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 2,
    VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 4,
    VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 8,
    VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 16,
    VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,
    VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,
    VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR,
    VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR,
    VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR
} VkBuildAccelerationStructureFlagBitsKHR;

typedef enum VkBuildAccelerationStructureFlagBitsKHR VkBuildAccelerationStructureFlagBitsNV;

typedef enum VkCopyAccelerationStructureModeKHR {
    VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0,
    VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1,
    VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2,
    VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3,
    VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR,
    VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR
} VkCopyAccelerationStructureModeKHR;

typedef enum VkCopyAccelerationStructureModeKHR VkCopyAccelerationStructureModeNV;

typedef enum VkAccelerationStructureTypeKHR {
    VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0,
    VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1,
    VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR,
    VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR
} VkAccelerationStructureTypeKHR;

typedef enum VkAccelerationStructureTypeKHR VkAccelerationStructureTypeNV;

typedef enum VkGeometryTypeKHR {
    VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0,
    VK_GEOMETRY_TYPE_AABBS_KHR = 1,
    VK_GEOMETRY_TYPE_INSTANCES_KHR = 1000150000,
    VK_GEOMETRY_TYPE_TRIANGLES_NV = VK_GEOMETRY_TYPE_TRIANGLES_KHR,
    VK_GEOMETRY_TYPE_AABBS_NV = VK_GEOMETRY_TYPE_AABBS_KHR
} VkGeometryTypeKHR;

typedef enum VkGeometryTypeKHR VkGeometryTypeNV;

typedef enum VkRayTracingShaderGroupTypeKHR {
    VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0,
    VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1,
    VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2,
    VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR,
    VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR,
    VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR
} VkRayTracingShaderGroupTypeKHR;

typedef enum VkRayTracingShaderGroupTypeKHR VkRayTracingShaderGroupTypeNV;

typedef enum VkAccelerationStructureMemoryRequirementsTypeKHR {
    VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_KHR = 0,
    VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_KHR = 1,
    VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_KHR = 2,
    VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_KHR,
    VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_KHR,
    VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_KHR
} VkAccelerationStructureMemoryRequirementsTypeKHR;

typedef enum VkAccelerationStructureMemoryRequirementsTypeKHR VkAccelerationStructureMemoryRequirementsTypeNV;

#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef enum VkAccelerationStructureBuildTypeKHR {
    VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0,
    VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1,
    VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2
} VkAccelerationStructureBuildTypeKHR;
#endif

typedef enum VkMemoryOverallocationBehaviorAMD {
    VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0,
    VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1,
    VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2
} VkMemoryOverallocationBehaviorAMD;

typedef enum VkScopeNV {
    VK_SCOPE_DEVICE_NV = 1,
    VK_SCOPE_WORKGROUP_NV = 2,
    VK_SCOPE_SUBGROUP_NV = 3,
    VK_SCOPE_QUEUE_FAMILY_NV = 5
} VkScopeNV;

typedef enum VkComponentTypeNV {
    VK_COMPONENT_TYPE_FLOAT16_NV = 0,
    VK_COMPONENT_TYPE_FLOAT32_NV = 1,
    VK_COMPONENT_TYPE_FLOAT64_NV = 2,
    VK_COMPONENT_TYPE_SINT8_NV = 3,
    VK_COMPONENT_TYPE_SINT16_NV = 4,
    VK_COMPONENT_TYPE_SINT32_NV = 5,
    VK_COMPONENT_TYPE_SINT64_NV = 6,
    VK_COMPONENT_TYPE_UINT8_NV = 7,
    VK_COMPONENT_TYPE_UINT16_NV = 8,
    VK_COMPONENT_TYPE_UINT32_NV = 9,
    VK_COMPONENT_TYPE_UINT64_NV = 10
} VkComponentTypeNV;

typedef enum VkDeviceDiagnosticsConfigFlagBitsNV {
    VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 1,
    VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 2,
    VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 4
} VkDeviceDiagnosticsConfigFlagBitsNV;

typedef enum VkPipelineCreationFeedbackFlagBitsEXT {
    VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT = 1,
    VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT = 2,
    VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT = 4
} VkPipelineCreationFeedbackFlagBitsEXT;

typedef enum VkPerformanceCounterScopeKHR {
    VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0,
    VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1,
    VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2,
    VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR,
    VK_QUERY_SCOPE_RENDER_PASS_KHR = VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR,
    VK_QUERY_SCOPE_COMMAND_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR
} VkPerformanceCounterScopeKHR;

typedef enum VkPerformanceCounterUnitKHR {
    VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0,
    VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1,
    VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2,
    VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3,
    VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4,
    VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5,
    VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6,
    VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7,
    VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8,
    VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9,
    VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10
} VkPerformanceCounterUnitKHR;

typedef enum VkPerformanceCounterStorageKHR {
    VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0,
    VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1,
    VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2,
    VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3,
    VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4,
    VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5
} VkPerformanceCounterStorageKHR;

typedef enum VkPerformanceCounterDescriptionFlagBitsKHR {
    VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = 1,
    VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = 2
} VkPerformanceCounterDescriptionFlagBitsKHR;


typedef enum VkSemaphoreWaitFlagBits {
    VK_SEMAPHORE_WAIT_ANY_BIT = 1,
    VK_SEMAPHORE_WAIT_ANY_BIT_KHR = VK_SEMAPHORE_WAIT_ANY_BIT
} VkSemaphoreWaitFlagBits;

typedef enum VkSemaphoreWaitFlagBits VkSemaphoreWaitFlagBitsKHR;

typedef enum VkPerformanceConfigurationTypeINTEL {
    VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0
} VkPerformanceConfigurationTypeINTEL;

typedef enum VkQueryPoolSamplingModeINTEL {
    VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0
} VkQueryPoolSamplingModeINTEL;

typedef enum VkPerformanceOverrideTypeINTEL {
    VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0,
    VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1
} VkPerformanceOverrideTypeINTEL;

typedef enum VkPerformanceParameterTypeINTEL {
    VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0,
    VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1
} VkPerformanceParameterTypeINTEL;

typedef enum VkPerformanceValueTypeINTEL {
    VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0,
    VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1,
    VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2,
    VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3,
    VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4
} VkPerformanceValueTypeINTEL;

typedef enum VkLineRasterizationModeEXT {
    VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = 0,
    VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = 1,
    VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = 2,
    VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = 3
} VkLineRasterizationModeEXT;




typedef enum VkToolPurposeFlagBitsEXT {
    VK_TOOL_PURPOSE_VALIDATION_BIT_EXT = 1,
    VK_TOOL_PURPOSE_PROFILING_BIT_EXT = 2,
    VK_TOOL_PURPOSE_TRACING_BIT_EXT = 4,
    VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT = 8,
    VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT = 16,
    VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT = 32,
    VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT = 64
} VkToolPurposeFlagBitsEXT;

typedef enum VkColorSpaceKHR {
    VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0,
    VK_COLORSPACE_SRGB_NONLINEAR_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
    VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001,
    VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002,
    VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT = 1000104003,
    VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004,
    VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005,
    VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006,
    VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007,
    VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008,
    VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009,
    VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010,
    VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011,
    VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012,
    VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013,
    VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014,
    VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT,
    VK_COLOR_SPACE_DISPLAY_NATIVE_AMD = 1000213000
} VkColorSpaceKHR;

typedef enum VkCompositeAlphaFlagBitsKHR {
    VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 1,
    VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 2,
    VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 4,
    VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 8
} VkCompositeAlphaFlagBitsKHR;

typedef enum VkDisplayPlaneAlphaFlagBitsKHR {
    VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 1,
    VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 2,
    VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 4,
    VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 8
} VkDisplayPlaneAlphaFlagBitsKHR;

typedef enum VkPresentModeKHR {
    VK_PRESENT_MODE_IMMEDIATE_KHR = 0,
    VK_PRESENT_MODE_MAILBOX_KHR = 1,
    VK_PRESENT_MODE_FIFO_KHR = 2,
    VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3,
    VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000,
    VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001
} VkPresentModeKHR;

typedef enum VkSurfaceTransformFlagBitsKHR {
    VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 1,
    VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 2,
    VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 4,
    VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 8,
    VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 16,
    VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 32,
    VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 64,
    VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 128,
    VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 256
} VkSurfaceTransformFlagBitsKHR;

typedef enum VkDebugReportFlagBitsEXT {
    VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 1,
    VK_DEBUG_REPORT_WARNING_BIT_EXT = 2,
    VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 4,
    VK_DEBUG_REPORT_ERROR_BIT_EXT = 8,
    VK_DEBUG_REPORT_DEBUG_BIT_EXT = 16
} VkDebugReportFlagBitsEXT;

typedef enum VkDebugReportObjectTypeEXT {
    VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0,
    VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1,
    VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2,
    VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3,
    VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4,
    VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5,
    VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6,
    VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7,
    VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8,
    VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9,
    VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10,
    VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11,
    VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12,
    VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13,
    VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14,
    VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15,
    VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16,
    VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17,
    VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18,
    VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19,
    VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20,
    VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21,
    VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22,
    VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23,
    VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24,
    VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25,
    VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
    VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
    VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28,
    VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT,
    VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29,
    VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
    VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33,
    VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
    VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000,
    VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000,
    VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT,
    VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000165000,
    VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT,
    VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT
} VkDebugReportObjectTypeEXT;

typedef enum VkRasterizationOrderAMD {
    VK_RASTERIZATION_ORDER_STRICT_AMD = 0,
    VK_RASTERIZATION_ORDER_RELAXED_AMD = 1
} VkRasterizationOrderAMD;

typedef enum VkExternalMemoryHandleTypeFlagBitsNV {
    VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 1,
    VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 2,
    VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 4,
    VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 8
} VkExternalMemoryHandleTypeFlagBitsNV;

typedef enum VkExternalMemoryFeatureFlagBitsNV {
    VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 1,
    VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 2,
    VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 4
} VkExternalMemoryFeatureFlagBitsNV;

typedef enum VkValidationCheckEXT {
    VK_VALIDATION_CHECK_ALL_EXT = 0,
    VK_VALIDATION_CHECK_SHADERS_EXT = 1
} VkValidationCheckEXT;

typedef enum VkValidationFeatureEnableEXT {
    VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0,
    VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1,
    VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2,
    VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3,
    VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4
} VkValidationFeatureEnableEXT;

typedef enum VkValidationFeatureDisableEXT {
    VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0,
    VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1,
    VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2,
    VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3,
    VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4,
    VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5,
    VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6
} VkValidationFeatureDisableEXT;

typedef enum VkExternalMemoryHandleTypeFlagBits {
    VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 1,
    VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 2,
    VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 4,
    VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 8,
    VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 16,
    VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 32,
    VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 64,
    VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,
    VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,
    VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
    VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT,
    VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT,
    VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT,
    VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT,
    VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 512,
    VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 1024,
    VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 128,
    VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 256
} VkExternalMemoryHandleTypeFlagBits;

typedef enum VkExternalMemoryHandleTypeFlagBits VkExternalMemoryHandleTypeFlagBitsKHR;

typedef enum VkExternalMemoryFeatureFlagBits {
    VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 1,
    VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 2,
    VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 4,
    VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT,
    VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT,
    VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT
} VkExternalMemoryFeatureFlagBits;

typedef enum VkExternalMemoryFeatureFlagBits VkExternalMemoryFeatureFlagBitsKHR;

typedef enum VkExternalSemaphoreHandleTypeFlagBits {
    VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 1,
    VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 2,
    VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 4,
    VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 8,
    VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
    VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 16,
    VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,
    VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
    VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
    VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
    VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT
} VkExternalSemaphoreHandleTypeFlagBits;

typedef enum VkExternalSemaphoreHandleTypeFlagBits VkExternalSemaphoreHandleTypeFlagBitsKHR;

typedef enum VkExternalSemaphoreFeatureFlagBits {
    VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 1,
    VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 2,
    VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT,
    VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT
} VkExternalSemaphoreFeatureFlagBits;

typedef enum VkExternalSemaphoreFeatureFlagBits VkExternalSemaphoreFeatureFlagBitsKHR;

typedef enum VkSemaphoreImportFlagBits {
    VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 1,
    VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR = VK_SEMAPHORE_IMPORT_TEMPORARY_BIT
} VkSemaphoreImportFlagBits;

typedef enum VkSemaphoreImportFlagBits VkSemaphoreImportFlagBitsKHR;

typedef enum VkExternalFenceHandleTypeFlagBits {
    VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 1,
    VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 2,
    VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 4,
    VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 8,
    VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT,
    VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
    VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
    VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT
} VkExternalFenceHandleTypeFlagBits;

typedef enum VkExternalFenceHandleTypeFlagBits VkExternalFenceHandleTypeFlagBitsKHR;

typedef enum VkExternalFenceFeatureFlagBits {
    VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 1,
    VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 2,
    VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT,
    VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT
} VkExternalFenceFeatureFlagBits;

typedef enum VkExternalFenceFeatureFlagBits VkExternalFenceFeatureFlagBitsKHR;

typedef enum VkFenceImportFlagBits {
    VK_FENCE_IMPORT_TEMPORARY_BIT = 1,
    VK_FENCE_IMPORT_TEMPORARY_BIT_KHR = VK_FENCE_IMPORT_TEMPORARY_BIT
} VkFenceImportFlagBits;

typedef enum VkFenceImportFlagBits VkFenceImportFlagBitsKHR;

typedef enum VkSurfaceCounterFlagBitsEXT {
    VK_SURFACE_COUNTER_VBLANK_EXT = 1
} VkSurfaceCounterFlagBitsEXT;

typedef enum VkDisplayPowerStateEXT {
    VK_DISPLAY_POWER_STATE_OFF_EXT = 0,
    VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1,
    VK_DISPLAY_POWER_STATE_ON_EXT = 2
} VkDisplayPowerStateEXT;

typedef enum VkDeviceEventTypeEXT {
    VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0
} VkDeviceEventTypeEXT;

typedef enum VkDisplayEventTypeEXT {
    VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0
} VkDisplayEventTypeEXT;

typedef enum VkPeerMemoryFeatureFlagBits {
    VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 1,
    VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 2,
    VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 4,
    VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 8,
    VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT,
    VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_DST_BIT,
    VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT,
    VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT
} VkPeerMemoryFeatureFlagBits;

typedef enum VkPeerMemoryFeatureFlagBits VkPeerMemoryFeatureFlagBitsKHR;

typedef enum VkMemoryAllocateFlagBits {
    VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 1,
    VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT = 2,
    VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 4,
    VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT,
    VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT,
    VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT
} VkMemoryAllocateFlagBits;

typedef enum VkMemoryAllocateFlagBits VkMemoryAllocateFlagBitsKHR;

typedef enum VkDeviceGroupPresentModeFlagBitsKHR {
    VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 1,
    VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 2,
    VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 4,
    VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 8
} VkDeviceGroupPresentModeFlagBitsKHR;

typedef enum VkSwapchainCreateFlagBitsKHR {
    VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 1,
    VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 2,
    VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 4
} VkSwapchainCreateFlagBitsKHR;

typedef enum VkSubgroupFeatureFlagBits {
    VK_SUBGROUP_FEATURE_BASIC_BIT = 1,
    VK_SUBGROUP_FEATURE_VOTE_BIT = 2,
    VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 4,
    VK_SUBGROUP_FEATURE_BALLOT_BIT = 8,
    VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 16,
    VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 32,
    VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 64,
    VK_SUBGROUP_FEATURE_QUAD_BIT = 128,
    VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = 256
} VkSubgroupFeatureFlagBits;

typedef enum VkTessellationDomainOrigin {
    VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0,
    VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1,
    VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT,
    VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT
} VkTessellationDomainOrigin;

typedef enum VkTessellationDomainOrigin VkTessellationDomainOriginKHR;

typedef enum VkSamplerYcbcrModelConversion {
    VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = 0,
    VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = 1,
    VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = 2,
    VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = 3,
    VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4,
    VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY,
    VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY,
    VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709,
    VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601,
    VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020
} VkSamplerYcbcrModelConversion;

typedef enum VkSamplerYcbcrModelConversion VkSamplerYcbcrModelConversionKHR;

typedef enum VkSamplerYcbcrRange {
    VK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0,
    VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1,
    VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_FULL,
    VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW
} VkSamplerYcbcrRange;

typedef enum VkSamplerYcbcrRange VkSamplerYcbcrRangeKHR;

typedef enum VkChromaLocation {
    VK_CHROMA_LOCATION_COSITED_EVEN = 0,
    VK_CHROMA_LOCATION_MIDPOINT = 1,
    VK_CHROMA_LOCATION_COSITED_EVEN_KHR = VK_CHROMA_LOCATION_COSITED_EVEN,
    VK_CHROMA_LOCATION_MIDPOINT_KHR = VK_CHROMA_LOCATION_MIDPOINT
} VkChromaLocation;

typedef enum VkChromaLocation VkChromaLocationKHR;

typedef enum VkSamplerReductionMode {
    VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE = 0,
    VK_SAMPLER_REDUCTION_MODE_MIN = 1,
    VK_SAMPLER_REDUCTION_MODE_MAX = 2,
    VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE,
    VK_SAMPLER_REDUCTION_MODE_MIN_EXT = VK_SAMPLER_REDUCTION_MODE_MIN,
    VK_SAMPLER_REDUCTION_MODE_MAX_EXT = VK_SAMPLER_REDUCTION_MODE_MAX
} VkSamplerReductionMode;

typedef enum VkSamplerReductionMode VkSamplerReductionModeEXT;

typedef enum VkBlendOverlapEXT {
    VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0,
    VK_BLEND_OVERLAP_DISJOINT_EXT = 1,
    VK_BLEND_OVERLAP_CONJOINT_EXT = 2
} VkBlendOverlapEXT;

typedef enum VkDebugUtilsMessageSeverityFlagBitsEXT {
    VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 1,
    VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 16,
    VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 256,
    VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 4096
} VkDebugUtilsMessageSeverityFlagBitsEXT;

typedef enum VkDebugUtilsMessageTypeFlagBitsEXT {
    VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 1,
    VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 2,
    VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 4
} VkDebugUtilsMessageTypeFlagBitsEXT;

#if defined(VK_USE_PLATFORM_WIN32_KHR)
typedef enum VkFullScreenExclusiveEXT {
    VK_FULL_SCREEN_EXCLUSIVE_DEFAULT_EXT = 0,
    VK_FULL_SCREEN_EXCLUSIVE_ALLOWED_EXT = 1,
    VK_FULL_SCREEN_EXCLUSIVE_DISALLOWED_EXT = 2,
    VK_FULL_SCREEN_EXCLUSIVE_APPLICATION_CONTROLLED_EXT = 3
} VkFullScreenExclusiveEXT;
#endif

typedef enum VkShaderFloatControlsIndependence {
    VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY = 0,
    VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL = 1,
    VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE = 2,
    VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY,
    VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL,
    VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE
} VkShaderFloatControlsIndependence;

typedef enum VkShaderFloatControlsIndependence VkShaderFloatControlsIndependenceKHR;

typedef enum VkVendorId {
    VK_VENDOR_ID_VIV = 0x10001,
    VK_VENDOR_ID_VSI = 0x10002,
    VK_VENDOR_ID_KAZAN = 0x10003,
    VK_VENDOR_ID_CODEPLAY = 0x10004,
    VK_VENDOR_ID_MESA = 0x10005
} VkVendorId;

typedef enum VkDriverId {
    VK_DRIVER_ID_AMD_PROPRIETARY = 1,
    VK_DRIVER_ID_AMD_OPEN_SOURCE = 2,
    VK_DRIVER_ID_MESA_RADV = 3,
    VK_DRIVER_ID_NVIDIA_PROPRIETARY = 4,
    VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS = 5,
    VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA = 6,
    VK_DRIVER_ID_IMAGINATION_PROPRIETARY = 7,
    VK_DRIVER_ID_QUALCOMM_PROPRIETARY = 8,
    VK_DRIVER_ID_ARM_PROPRIETARY = 9,
    VK_DRIVER_ID_GOOGLE_SWIFTSHADER = 10,
    VK_DRIVER_ID_GGP_PROPRIETARY = 11,
    VK_DRIVER_ID_BROADCOM_PROPRIETARY = 12,
    VK_DRIVER_ID_MESA_LLVMPIPE = 13,
    VK_DRIVER_ID_MOLTENVK = 14,
    VK_DRIVER_ID_AMD_PROPRIETARY_KHR = VK_DRIVER_ID_AMD_PROPRIETARY,
    VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = VK_DRIVER_ID_AMD_OPEN_SOURCE,
    VK_DRIVER_ID_MESA_RADV_KHR = VK_DRIVER_ID_MESA_RADV,
    VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR = VK_DRIVER_ID_NVIDIA_PROPRIETARY,
    VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR = VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS,
    VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA,
    VK_DRIVER_ID_IMAGINATION_PROPRIETARY_KHR = VK_DRIVER_ID_IMAGINATION_PROPRIETARY,
    VK_DRIVER_ID_QUALCOMM_PROPRIETARY_KHR = VK_DRIVER_ID_QUALCOMM_PROPRIETARY,
    VK_DRIVER_ID_ARM_PROPRIETARY_KHR = VK_DRIVER_ID_ARM_PROPRIETARY,
    VK_DRIVER_ID_GOOGLE_SWIFTSHADER_KHR = VK_DRIVER_ID_GOOGLE_SWIFTSHADER,
    VK_DRIVER_ID_GGP_PROPRIETARY_KHR = VK_DRIVER_ID_GGP_PROPRIETARY,
    VK_DRIVER_ID_BROADCOM_PROPRIETARY_KHR = VK_DRIVER_ID_BROADCOM_PROPRIETARY
} VkDriverId;

typedef enum VkDriverId VkDriverIdKHR;

typedef enum VkShadingRatePaletteEntryNV {
    VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0,
    VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1,
    VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2,
    VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3,
    VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4,
    VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5,
    VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6,
    VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7,
    VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8,
    VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9,
    VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10,
    VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11
} VkShadingRatePaletteEntryNV;

typedef enum VkCoarseSampleOrderTypeNV {
    VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0,
    VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1,
    VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2,
    VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3
} VkCoarseSampleOrderTypeNV;

typedef enum VkPipelineExecutableStatisticFormatKHR {
    VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0,
    VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1,
    VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2,
    VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3
} VkPipelineExecutableStatisticFormatKHR;

typedef void (VKAPI_PTR *PFN_vkInternalAllocationNotification)(
    void*                                       pUserData,
    size_t                                      size,
    VkInternalAllocationType                    allocationType,
    VkSystemAllocationScope                     allocationScope);

typedef void (VKAPI_PTR *PFN_vkInternalFreeNotification)(
    void*                                       pUserData,
    size_t                                      size,
    VkInternalAllocationType                    allocationType,
    VkSystemAllocationScope                     allocationScope);

typedef void* (VKAPI_PTR *PFN_vkReallocationFunction)(
    void*                                       pUserData,
    void*                                       pOriginal,
    size_t                                      size,
    size_t                                      alignment,
    VkSystemAllocationScope                     allocationScope);

typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)(
    void*                                       pUserData,
    size_t                                      size,
    size_t                                      alignment,
    VkSystemAllocationScope                     allocationScope);

typedef void (VKAPI_PTR *PFN_vkFreeFunction)(
    void*                                       pUserData,
    void*                                       pMemory);

typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void);

typedef struct VkBaseOutStructure {
    VkStructureType   sType;
    struct  VkBaseOutStructure *  pNext;
} VkBaseOutStructure;

typedef struct VkBaseInStructure {
    VkStructureType   sType;
    const struct  VkBaseInStructure *  pNext;
} VkBaseInStructure;

typedef struct VkOffset2D {
    int32_t          x;
    int32_t          y;
} VkOffset2D;

typedef struct VkOffset3D {
    int32_t          x;
    int32_t          y;
    int32_t          z;
} VkOffset3D;

typedef struct VkExtent2D {
    uint32_t          width;
    uint32_t          height;
} VkExtent2D;

typedef struct VkExtent3D {
    uint32_t          width;
    uint32_t          height;
    uint32_t          depth;
} VkExtent3D;

typedef struct VkViewport {
    float   x;
    float   y;
    float   width;
    float   height;
    float                         minDepth;
    float                         maxDepth;
} VkViewport;

typedef struct VkRect2D {
    VkOffset2D       offset;
    VkExtent2D       extent;
} VkRect2D;

typedef struct VkClearRect {
    VkRect2D         rect;
    uint32_t         baseArrayLayer;
    uint32_t         layerCount;
} VkClearRect;

typedef struct VkComponentMapping {
    VkComponentSwizzle   r;
    VkComponentSwizzle   g;
    VkComponentSwizzle   b;
    VkComponentSwizzle   a;
} VkComponentMapping;

typedef struct VkExtensionProperties {
    char              extensionName [ VK_MAX_EXTENSION_NAME_SIZE ];
    uint32_t          specVersion;
} VkExtensionProperties;

typedef struct VkLayerProperties {
    char              layerName [ VK_MAX_EXTENSION_NAME_SIZE ];
    uint32_t          specVersion;
    uint32_t          implementationVersion;
    char              description [ VK_MAX_DESCRIPTION_SIZE ];
} VkLayerProperties;

typedef struct VkApplicationInfo {
    VkStructureType   sType;
    const  void *      pNext;
    const  char *      pApplicationName;
    uint32_t          applicationVersion;
    const  char *      pEngineName;
    uint32_t          engineVersion;
    uint32_t          apiVersion;
} VkApplicationInfo;

typedef struct VkAllocationCallbacks {
    void *            pUserData;
    PFN_vkAllocationFunction     pfnAllocation;
    PFN_vkReallocationFunction   pfnReallocation;
    PFN_vkFreeFunction      pfnFree;
    PFN_vkInternalAllocationNotification   pfnInternalAllocation;
    PFN_vkInternalFreeNotification   pfnInternalFree;
} VkAllocationCallbacks;

typedef struct VkDescriptorImageInfo {
    VkSampler         sampler;
    VkImageView       imageView;
    VkImageLayout     imageLayout;
} VkDescriptorImageInfo;

typedef struct VkCopyDescriptorSet {
    VkStructureType   sType;
    const  void *             pNext;
    VkDescriptorSet          srcSet;
    uint32_t                 srcBinding;
    uint32_t                 srcArrayElement;
    VkDescriptorSet          dstSet;
    uint32_t                 dstBinding;
    uint32_t                 dstArrayElement;
    uint32_t                 descriptorCount;
} VkCopyDescriptorSet;

typedef struct VkDescriptorPoolSize {
    VkDescriptorType         type;
    uint32_t                 descriptorCount;
} VkDescriptorPoolSize;

typedef struct VkDescriptorSetAllocateInfo {
    VkStructureType   sType;
    const  void *             pNext;
    VkDescriptorPool         descriptorPool;
    uint32_t                 descriptorSetCount;
    const  VkDescriptorSetLayout *  pSetLayouts;
} VkDescriptorSetAllocateInfo;

typedef struct VkSpecializationMapEntry {
    uint32_t                       constantID;
    uint32_t                       offset;
    size_t   size;
} VkSpecializationMapEntry;

typedef struct VkSpecializationInfo {
    uint32_t                 mapEntryCount;
    const  VkSpecializationMapEntry *  pMapEntries;
    size_t                   dataSize;
    const  void *             pData;
} VkSpecializationInfo;

typedef struct VkVertexInputBindingDescription {
    uint32_t                 binding;
    uint32_t                 stride;
    VkVertexInputRate        inputRate;
} VkVertexInputBindingDescription;

typedef struct VkVertexInputAttributeDescription {
    uint32_t                 location;
    uint32_t                 binding;
    VkFormat                 format;
    uint32_t                 offset;
} VkVertexInputAttributeDescription;

typedef struct VkStencilOpState {
    VkStencilOp              failOp;
    VkStencilOp              passOp;
    VkStencilOp              depthFailOp;
    VkCompareOp              compareOp;
    uint32_t                 compareMask;
    uint32_t                 writeMask;
    uint32_t                 reference;
} VkStencilOpState;

typedef struct VkCommandBufferAllocateInfo {
    VkStructureType   sType;
    const  void *             pNext;
    VkCommandPool            commandPool;
    VkCommandBufferLevel     level;
    uint32_t                 commandBufferCount;
} VkCommandBufferAllocateInfo;

typedef union VkClearColorValue {
    float                    float32 [4];
    int32_t                  int32 [4];
    uint32_t                 uint32 [4];
} VkClearColorValue;

typedef struct VkClearDepthStencilValue {
    float                    depth;
    uint32_t                 stencil;
} VkClearDepthStencilValue;

typedef union VkClearValue {
    VkClearColorValue        color;
    VkClearDepthStencilValue   depthStencil;
} VkClearValue;

typedef struct VkAttachmentReference {
    uint32_t                 attachment;
    VkImageLayout            layout;
} VkAttachmentReference;

typedef struct VkDrawIndirectCommand {
    uint32_t                         vertexCount;
    uint32_t                         instanceCount;
    uint32_t                         firstVertex;
    uint32_t   firstInstance;
} VkDrawIndirectCommand;

typedef struct VkDrawIndexedIndirectCommand {
    uint32_t                         indexCount;
    uint32_t                         instanceCount;
    uint32_t                         firstIndex;
    int32_t                          vertexOffset;
    uint32_t   firstInstance;
} VkDrawIndexedIndirectCommand;

typedef struct VkDispatchIndirectCommand {
    uint32_t   x;
    uint32_t   y;
    uint32_t   z;
} VkDispatchIndirectCommand;

typedef struct VkDisplayPlanePropertiesKHR {
    VkDisplayKHR                       currentDisplay;
    uint32_t                           currentStackIndex;
} VkDisplayPlanePropertiesKHR;

typedef struct VkDisplayModeParametersKHR {
    VkExtent2D                         visibleRegion;
    uint32_t     refreshRate;
} VkDisplayModeParametersKHR;

typedef struct VkDisplayModePropertiesKHR {
    VkDisplayModeKHR                   displayMode;
    VkDisplayModeParametersKHR         parameters;
} VkDisplayModePropertiesKHR;

typedef struct VkSurfaceFormatKHR {
    VkFormat                           format;
    VkColorSpaceKHR                    colorSpace;
} VkSurfaceFormatKHR;

typedef struct VkPresentInfoKHR {
    VkStructureType   sType;
    const  void *   pNext;
    uint32_t           waitSemaphoreCount;
    const  VkSemaphore *  pWaitSemaphores;
    uint32_t                           swapchainCount;
    const  VkSwapchainKHR *  pSwapchains;
    const  uint32_t *  pImageIndices;
    VkResult *  pResults;
} VkPresentInfoKHR;

typedef struct VkValidationFlagsEXT {
    VkStructureType                    sType;
    const  void *                       pNext;
    uint32_t                           disabledValidationCheckCount;
    const  VkValidationCheckEXT *  pDisabledValidationChecks;
} VkValidationFlagsEXT;

typedef struct VkValidationFeaturesEXT {
    VkStructureType    sType;
    const  void *                       pNext;
    uint32_t                           enabledValidationFeatureCount;
    const  VkValidationFeatureEnableEXT *  pEnabledValidationFeatures;
    uint32_t                           disabledValidationFeatureCount;
    const  VkValidationFeatureDisableEXT *  pDisabledValidationFeatures;
} VkValidationFeaturesEXT;

typedef struct VkPipelineRasterizationStateRasterizationOrderAMD {
    VkStructureType   sType;
    const  void *                       pNext;
    VkRasterizationOrderAMD            rasterizationOrder;
} VkPipelineRasterizationStateRasterizationOrderAMD;

typedef struct VkDebugMarkerObjectNameInfoEXT {
    VkStructureType   sType;
    const  void *                       pNext;
    VkDebugReportObjectTypeEXT         objectType;
    uint64_t                           object;
    const  char *  pObjectName;
} VkDebugMarkerObjectNameInfoEXT;

typedef struct VkDebugMarkerObjectTagInfoEXT {
    VkStructureType   sType;
    const  void *                       pNext;
    VkDebugReportObjectTypeEXT         objectType;
    uint64_t                           object;
    uint64_t                           tagName;
    size_t                             tagSize;
    const  void *         pTag;
} VkDebugMarkerObjectTagInfoEXT;

typedef struct VkDebugMarkerMarkerInfoEXT {
    VkStructureType   sType;
    const  void *                       pNext;
    const  char *  pMarkerName;
    float              color [4];
} VkDebugMarkerMarkerInfoEXT;

typedef struct VkDedicatedAllocationMemoryAllocateInfoNV {
    VkStructureType   sType;
    const  void *                       pNext;
    VkImage            image;
    VkBuffer           buffer;
} VkDedicatedAllocationMemoryAllocateInfoNV;

#if defined(VK_USE_PLATFORM_WIN32_KHR)
typedef struct VkExportMemoryWin32HandleInfoNV {
    VkStructureType   sType;
    const  void *                       pNext;
    const  SECURITY_ATTRIBUTES *        pAttributes;
    DWORD                              dwAccess;
} VkExportMemoryWin32HandleInfoNV;
#endif

#if defined(VK_USE_PLATFORM_WIN32_KHR)
typedef struct VkWin32KeyedMutexAcquireReleaseInfoNV {
    VkStructureType   sType;
    const  void *                       pNext;
    uint32_t                           acquireCount;
    const  VkDeviceMemory *             pAcquireSyncs;
    const  uint64_t *                   pAcquireKeys;
    const  uint32_t *                   pAcquireTimeoutMilliseconds;
    uint32_t                           releaseCount;
    const  VkDeviceMemory *             pReleaseSyncs;
    const  uint64_t *                   pReleaseKeys;
} VkWin32KeyedMutexAcquireReleaseInfoNV;
#endif

typedef struct VkDevicePrivateDataCreateInfoEXT {
    VkStructureType   sType;
    const  void *                             pNext;
    uint32_t                                 privateDataSlotRequestCount;
} VkDevicePrivateDataCreateInfoEXT;

typedef struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV {
    VkStructureType   sType;
    void *     pNext;
    uint32_t           maxGraphicsShaderGroupCount;
    uint32_t           maxIndirectSequenceCount;
    uint32_t           maxIndirectCommandsTokenCount;
    uint32_t           maxIndirectCommandsStreamCount;
    uint32_t           maxIndirectCommandsTokenOffset;
    uint32_t           maxIndirectCommandsStreamStride;
    uint32_t           minSequencesCountBufferOffsetAlignment;
    uint32_t           minSequencesIndexBufferOffsetAlignment;
    uint32_t           minIndirectCommandsBufferOffsetAlignment;
} VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV;

typedef struct VkBindShaderGroupIndirectCommandNV {
    uint32_t           groupIndex;
} VkBindShaderGroupIndirectCommandNV;

typedef struct VkSetStateFlagsIndirectCommandNV {
    uint32_t            data;
} VkSetStateFlagsIndirectCommandNV;

typedef struct VkGeneratedCommandsMemoryRequirementsInfoNV {
    VkStructureType   sType;
    const  void *                  pNext;
    VkPipelineBindPoint           pipelineBindPoint;
    VkPipeline                    pipeline;
    VkIndirectCommandsLayoutNV    indirectCommandsLayout;
    uint32_t                      maxSequencesCount;
} VkGeneratedCommandsMemoryRequirementsInfoNV;

typedef struct VkPhysicalDevicePushDescriptorPropertiesKHR {
    VkStructureType   sType;
    void *                             pNext;
    uint32_t                           maxPushDescriptors;
} VkPhysicalDevicePushDescriptorPropertiesKHR;

typedef struct VkConformanceVersion {
    uint8_t                            major;
    uint8_t                            minor;
    uint8_t                            subminor;
    uint8_t                            patch;
} VkConformanceVersion;

typedef struct VkConformanceVersion  VkConformanceVersionKHR;

typedef struct VkPhysicalDeviceDriverProperties {
    VkStructureType   sType;
    void *                             pNext;
    VkDriverId                         driverID;
    char                               driverName [ VK_MAX_DRIVER_NAME_SIZE ];
    char                               driverInfo [ VK_MAX_DRIVER_INFO_SIZE ];
    VkConformanceVersion               conformanceVersion;
} VkPhysicalDeviceDriverProperties;

typedef struct VkPhysicalDeviceDriverProperties  VkPhysicalDeviceDriverPropertiesKHR;

typedef struct VkRectLayerKHR {
    VkOffset2D                         offset;
    VkExtent2D   extent;
    uint32_t                           layer;
} VkRectLayerKHR;

typedef struct VkPhysicalDeviceExternalImageFormatInfo {
    VkStructureType   sType;
    const  void *                       pNext;
    VkExternalMemoryHandleTypeFlagBits   handleType;
} VkPhysicalDeviceExternalImageFormatInfo;

typedef struct VkPhysicalDeviceExternalImageFormatInfo  VkPhysicalDeviceExternalImageFormatInfoKHR;

#if defined(VK_USE_PLATFORM_WIN32_KHR)
typedef struct VkImportMemoryWin32HandleInfoKHR {
    VkStructureType   sType;
    const  void *                       pNext;
    VkExternalMemoryHandleTypeFlagBits   handleType;
    HANDLE             handle;
    LPCWSTR            name;
} VkImportMemoryWin32HandleInfoKHR;
#endif

#if defined(VK_USE_PLATFORM_WIN32_KHR)
typedef struct VkExportMemoryWin32HandleInfoKHR {
    VkStructureType   sType;
    const  void *                       pNext;
    const  SECURITY_ATTRIBUTES *  pAttributes;
    DWORD                              dwAccess;
    LPCWSTR                            name;
} VkExportMemoryWin32HandleInfoKHR;
#endif

#if defined(VK_USE_PLATFORM_WIN32_KHR)
typedef struct VkMemoryWin32HandlePropertiesKHR {
    VkStructureType   sType;
    void *                             pNext;
    uint32_t                           memoryTypeBits;
} VkMemoryWin32HandlePropertiesKHR;
#endif

#if defined(VK_USE_PLATFORM_WIN32_KHR)
typedef struct VkMemoryGetWin32HandleInfoKHR {
    VkStructureType   sType;
    const  void *                       pNext;
    VkDeviceMemory                     memory;
    VkExternalMemoryHandleTypeFlagBits   handleType;
} VkMemoryGetWin32HandleInfoKHR;
#endif

typedef struct VkImportMemoryFdInfoKHR {
    VkStructureType   sType;
    const  void *                       pNext;
    VkExternalMemoryHandleTypeFlagBits   handleType;
    int                                fd;
} VkImportMemoryFdInfoKHR;

typedef struct VkMemoryFdPropertiesKHR {
    VkStructureType   sType;
    void *                             pNext;
    uint32_t                           memoryTypeBits;
} VkMemoryFdPropertiesKHR;

typedef struct VkMemoryGetFdInfoKHR {
    VkStructureType   sType;
    const  void *                       pNext;
    VkDeviceMemory                     memory;
    VkExternalMemoryHandleTypeFlagBits   handleType;
} VkMemoryGetFdInfoKHR;

#if defined(VK_USE_PLATFORM_WIN32_KHR)
typedef struct VkWin32KeyedMutexAcquireReleaseInfoKHR {
    VkStructureType   sType;
    const  void *                       pNext;
    uint32_t           acquireCount;
    const  VkDeviceMemory *  pAcquireSyncs;
    const  uint64_t *  pAcquireKeys;
    const  uint32_t *  pAcquireTimeouts;
    uint32_t           releaseCount;
    const  VkDeviceMemory *  pReleaseSyncs;
    const  uint64_t *  pReleaseKeys;
} VkWin32KeyedMutexAcquireReleaseInfoKHR;
#endif

typedef struct VkPhysicalDeviceExternalSemaphoreInfo {
    VkStructureType   sType;
    const  void *                       pNext;
    VkExternalSemaphoreHandleTypeFlagBits   handleType;
} VkPhysicalDeviceExternalSemaphoreInfo;

typedef struct VkPhysicalDeviceExternalSemaphoreInfo  VkPhysicalDeviceExternalSemaphoreInfoKHR;

#if defined(VK_USE_PLATFORM_WIN32_KHR)
typedef struct VkExportSemaphoreWin32HandleInfoKHR {
    VkStructureType   sType;
    const  void *                       pNext;
    const  SECURITY_ATTRIBUTES *        pAttributes;
    DWORD                              dwAccess;
    LPCWSTR                            name;
} VkExportSemaphoreWin32HandleInfoKHR;
#endif

#if defined(VK_USE_PLATFORM_WIN32_KHR)
typedef struct VkD3D12FenceSubmitInfoKHR {
    VkStructureType   sType;
    const  void *                       pNext;
    uint32_t           waitSemaphoreValuesCount;
    const  uint64_t *  pWaitSemaphoreValues;
    uint32_t           signalSemaphoreValuesCount;
    const  uint64_t *  pSignalSemaphoreValues;
} VkD3D12FenceSubmitInfoKHR;
#endif

#if defined(VK_USE_PLATFORM_WIN32_KHR)
typedef struct VkSemaphoreGetWin32HandleInfoKHR {
    VkStructureType   sType;
    const  void *                       pNext;
    VkSemaphore                        semaphore;
    VkExternalSemaphoreHandleTypeFlagBits   handleType;
} VkSemaphoreGetWin32HandleInfoKHR;
#endif

typedef struct VkSemaphoreGetFdInfoKHR {
    VkStructureType   sType;
    const  void *                       pNext;
    VkSemaphore                        semaphore;
    VkExternalSemaphoreHandleTypeFlagBits   handleType;
} VkSemaphoreGetFdInfoKHR;

typedef struct VkPhysicalDeviceExternalFenceInfo {
    VkStructureType   sType;
    const  void *                       pNext;
    VkExternalFenceHandleTypeFlagBits   handleType;
} VkPhysicalDeviceExternalFenceInfo;

typedef struct VkPhysicalDeviceExternalFenceInfo  VkPhysicalDeviceExternalFenceInfoKHR;

#if defined(VK_USE_PLATFORM_WIN32_KHR)
typedef struct VkExportFenceWin32HandleInfoKHR {
    VkStructureType   sType;
    const  void *                                 pNext;
    const  SECURITY_ATTRIBUTES *  pAttributes;
    DWORD                                        dwAccess;
    LPCWSTR                                      name;
} VkExportFenceWin32HandleInfoKHR;
#endif

#if defined(VK_USE_PLATFORM_WIN32_KHR)
typedef struct VkFenceGetWin32HandleInfoKHR {
    VkStructureType   sType;
    const  void *                             pNext;
    VkFence                                  fence;
    VkExternalFenceHandleTypeFlagBits     handleType;
} VkFenceGetWin32HandleInfoKHR;
#endif

typedef struct VkFenceGetFdInfoKHR {
    VkStructureType   sType;
    const  void *                             pNext;
    VkFence                                  fence;
    VkExternalFenceHandleTypeFlagBits     handleType;
} VkFenceGetFdInfoKHR;

typedef struct VkPhysicalDeviceMultiviewProperties {
    VkStructureType   sType;
    void *                             pNext;
    uint32_t                           maxMultiviewViewCount;
    uint32_t                           maxMultiviewInstanceIndex;
} VkPhysicalDeviceMultiviewProperties;

typedef struct VkPhysicalDeviceMultiviewProperties  VkPhysicalDeviceMultiviewPropertiesKHR;

typedef struct VkRenderPassMultiviewCreateInfo {
    VkStructureType          sType;
    const  void *             pNext;
    uint32_t                 subpassCount;
    const  uint32_t *      pViewMasks;
    uint32_t                 dependencyCount;
    const  int32_t *    pViewOffsets;
    uint32_t                 correlationMaskCount;
    const  uint32_t *  pCorrelationMasks;
} VkRenderPassMultiviewCreateInfo;

typedef struct VkRenderPassMultiviewCreateInfo  VkRenderPassMultiviewCreateInfoKHR;

typedef struct VkDisplayPowerInfoEXT {
    VkStructureType   sType;
    const  void *                       pNext;
    VkDisplayPowerStateEXT             powerState;
} VkDisplayPowerInfoEXT;

typedef struct VkDeviceEventInfoEXT {
    VkStructureType   sType;
    const  void *                       pNext;
    VkDeviceEventTypeEXT               deviceEvent;
} VkDeviceEventInfoEXT;

typedef struct VkDisplayEventInfoEXT {
    VkStructureType   sType;
    const  void *                       pNext;
    VkDisplayEventTypeEXT              displayEvent;
} VkDisplayEventInfoEXT;

typedef struct VkBindBufferMemoryDeviceGroupInfo {
    VkStructureType   sType;
    const  void *                       pNext;
    uint32_t           deviceIndexCount;
    const  uint32_t *   pDeviceIndices;
} VkBindBufferMemoryDeviceGroupInfo;

typedef struct VkBindBufferMemoryDeviceGroupInfo  VkBindBufferMemoryDeviceGroupInfoKHR;

typedef struct VkBindImageMemoryDeviceGroupInfo {
    VkStructureType   sType;
    const  void *                       pNext;
    uint32_t           deviceIndexCount;
    const  uint32_t *   pDeviceIndices;
    uint32_t           splitInstanceBindRegionCount;
    const  VkRect2D *   pSplitInstanceBindRegions;
} VkBindImageMemoryDeviceGroupInfo;

typedef struct VkBindImageMemoryDeviceGroupInfo  VkBindImageMemoryDeviceGroupInfoKHR;

typedef struct VkDeviceGroupRenderPassBeginInfo {
    VkStructureType   sType;
    const  void *                       pNext;
    uint32_t                           deviceMask;
    uint32_t           deviceRenderAreaCount;
    const  VkRect2D *   pDeviceRenderAreas;
} VkDeviceGroupRenderPassBeginInfo;

typedef struct VkDeviceGroupRenderPassBeginInfo  VkDeviceGroupRenderPassBeginInfoKHR;

typedef struct VkDeviceGroupCommandBufferBeginInfo {
    VkStructureType   sType;
    const  void *                       pNext;
    uint32_t                           deviceMask;
} VkDeviceGroupCommandBufferBeginInfo;

typedef struct VkDeviceGroupCommandBufferBeginInfo  VkDeviceGroupCommandBufferBeginInfoKHR;

typedef struct VkDeviceGroupSubmitInfo {
    VkStructureType   sType;
    const  void *                       pNext;
    uint32_t           waitSemaphoreCount;
    const  uint32_t *     pWaitSemaphoreDeviceIndices;
    uint32_t           commandBufferCount;
    const  uint32_t *     pCommandBufferDeviceMasks;
    uint32_t           signalSemaphoreCount;
    const  uint32_t *   pSignalSemaphoreDeviceIndices;
} VkDeviceGroupSubmitInfo;

typedef struct VkDeviceGroupSubmitInfo  VkDeviceGroupSubmitInfoKHR;

typedef struct VkDeviceGroupBindSparseInfo {
    VkStructureType   sType;
    const  void *                       pNext;
    uint32_t                           resourceDeviceIndex;
    uint32_t                           memoryDeviceIndex;
} VkDeviceGroupBindSparseInfo;

typedef struct VkDeviceGroupBindSparseInfo  VkDeviceGroupBindSparseInfoKHR;

typedef struct VkImageSwapchainCreateInfoKHR {
    VkStructureType   sType;
    const  void *                       pNext;
    VkSwapchainKHR     swapchain;
} VkImageSwapchainCreateInfoKHR;

typedef struct VkBindImageMemorySwapchainInfoKHR {
    VkStructureType   sType;
    const  void *                       pNext;
    VkSwapchainKHR   swapchain;
    uint32_t                           imageIndex;
} VkBindImageMemorySwapchainInfoKHR;

typedef struct VkAcquireNextImageInfoKHR {
    VkStructureType   sType;
    const  void *                       pNext;
    VkSwapchainKHR   swapchain;
    uint64_t                           timeout;
    VkSemaphore   semaphore;
    VkFence   fence;
    uint32_t                           deviceMask;
} VkAcquireNextImageInfoKHR;

typedef struct VkDeviceGroupPresentInfoKHR {
    VkStructureType   sType;
    const  void *                       pNext;
    uint32_t           swapchainCount;
    const  uint32_t *  pDeviceMasks;
    VkDeviceGroupPresentModeFlagBitsKHR   mode;
} VkDeviceGroupPresentInfoKHR;

typedef struct VkDeviceGroupDeviceCreateInfo {
    VkStructureType   sType;
    const  void *                       pNext;
    uint32_t                           physicalDeviceCount;
    const  VkPhysicalDevice *   pPhysicalDevices;
} VkDeviceGroupDeviceCreateInfo;

typedef struct VkDeviceGroupDeviceCreateInfo  VkDeviceGroupDeviceCreateInfoKHR;

typedef struct VkDescriptorUpdateTemplateEntry {
    uint32_t                           dstBinding;
    uint32_t                           dstArrayElement;
    uint32_t                           descriptorCount;
    VkDescriptorType                   descriptorType;
    size_t                             offset;
    size_t                             stride;
} VkDescriptorUpdateTemplateEntry;

typedef struct VkDescriptorUpdateTemplateEntry  VkDescriptorUpdateTemplateEntryKHR;

typedef struct VkXYColorEXT {
    float     x;
    float     y;
} VkXYColorEXT;

typedef struct VkHdrMetadataEXT {
    VkStructureType   sType;
    const  void *     pNext;
    VkXYColorEXT     displayPrimaryRed;
    VkXYColorEXT     displayPrimaryGreen;
    VkXYColorEXT     displayPrimaryBlue;
    VkXYColorEXT     whitePoint;
    float            maxLuminance;
    float            minLuminance;
    float            maxContentLightLevel;
    float            maxFrameAverageLightLevel;
} VkHdrMetadataEXT;

typedef struct VkRefreshCycleDurationGOOGLE {
    uint64_t                           refreshDuration;
} VkRefreshCycleDurationGOOGLE;

typedef struct VkPastPresentationTimingGOOGLE {
    uint32_t                           presentID;
    uint64_t                           desiredPresentTime;
    uint64_t                           actualPresentTime;
    uint64_t                           earliestPresentTime;
    uint64_t                           presentMargin;
} VkPastPresentationTimingGOOGLE;

typedef struct VkPresentTimeGOOGLE {
    uint32_t                           presentID;
    uint64_t                           desiredPresentTime;
} VkPresentTimeGOOGLE;

typedef struct VkViewportWScalingNV {
    float            xcoeff;
    float            ycoeff;
} VkViewportWScalingNV;

typedef struct VkViewportSwizzleNV {
    VkViewportCoordinateSwizzleNV            x;
    VkViewportCoordinateSwizzleNV            y;
    VkViewportCoordinateSwizzleNV            z;
    VkViewportCoordinateSwizzleNV            w;
} VkViewportSwizzleNV;

typedef struct VkPhysicalDeviceDiscardRectanglePropertiesEXT {
    VkStructureType   sType;
    void *                   pNext;
    uint32_t                 maxDiscardRectangles;
} VkPhysicalDeviceDiscardRectanglePropertiesEXT;

typedef struct VkPhysicalDeviceSurfaceInfo2KHR {
    VkStructureType   sType;
    const  void *  pNext;
    VkSurfaceKHR   surface;
} VkPhysicalDeviceSurfaceInfo2KHR;

typedef struct VkSurfaceFormat2KHR {
    VkStructureType   sType;
    void *  pNext;
    VkSurfaceFormatKHR   surfaceFormat;
} VkSurfaceFormat2KHR;

typedef struct VkDisplayPlaneProperties2KHR {
    VkStructureType   sType;
    void *  pNext;
    VkDisplayPlanePropertiesKHR   displayPlaneProperties;
} VkDisplayPlaneProperties2KHR;

typedef struct VkDisplayModeProperties2KHR {
    VkStructureType   sType;
    void *  pNext;
    VkDisplayModePropertiesKHR   displayModeProperties;
} VkDisplayModeProperties2KHR;

typedef struct VkDisplayPlaneInfo2KHR {
    VkStructureType   sType;
    const  void *  pNext;
    VkDisplayModeKHR   mode;
    uint32_t   planeIndex;
} VkDisplayPlaneInfo2KHR;

typedef struct VkBufferMemoryRequirementsInfo2 {
    VkStructureType   sType;
    const  void *                                                           pNext;
    VkBuffer                                                               buffer;
} VkBufferMemoryRequirementsInfo2;

typedef struct VkBufferMemoryRequirementsInfo2  VkBufferMemoryRequirementsInfo2KHR;

typedef struct VkImageMemoryRequirementsInfo2 {
    VkStructureType   sType;
    const  void *                                                           pNext;
    VkImage                                                                image;
} VkImageMemoryRequirementsInfo2;

typedef struct VkImageMemoryRequirementsInfo2  VkImageMemoryRequirementsInfo2KHR;

typedef struct VkImageSparseMemoryRequirementsInfo2 {
    VkStructureType   sType;
    const  void *                                                           pNext;
    VkImage                                                                image;
} VkImageSparseMemoryRequirementsInfo2;

typedef struct VkImageSparseMemoryRequirementsInfo2  VkImageSparseMemoryRequirementsInfo2KHR;

typedef struct VkPhysicalDevicePointClippingProperties {
    VkStructureType   sType;
    void *                             pNext;
    VkPointClippingBehavior        pointClippingBehavior;
} VkPhysicalDevicePointClippingProperties;

typedef struct VkPhysicalDevicePointClippingProperties  VkPhysicalDevicePointClippingPropertiesKHR;

typedef struct VkMemoryDedicatedAllocateInfo {
    VkStructureType   sType;
    const  void *                       pNext;
    VkImage            image;
    VkBuffer           buffer;
} VkMemoryDedicatedAllocateInfo;

typedef struct VkMemoryDedicatedAllocateInfo  VkMemoryDedicatedAllocateInfoKHR;

typedef struct VkPipelineTessellationDomainOriginStateCreateInfo {
    VkStructureType   sType;
    const  void *                       pNext;
    VkTessellationDomainOrigin      domainOrigin;
} VkPipelineTessellationDomainOriginStateCreateInfo;

typedef struct VkPipelineTessellationDomainOriginStateCreateInfo  VkPipelineTessellationDomainOriginStateCreateInfoKHR;

typedef struct VkSamplerYcbcrConversionInfo {
    VkStructureType   sType;
    const  void *                       pNext;
    VkSamplerYcbcrConversion        conversion;
} VkSamplerYcbcrConversionInfo;

typedef struct VkSamplerYcbcrConversionInfo  VkSamplerYcbcrConversionInfoKHR;

typedef struct VkBindImagePlaneMemoryInfo {
    VkStructureType   sType;
    const  void *                       pNext;
    VkImageAspectFlagBits              planeAspect;
} VkBindImagePlaneMemoryInfo;

typedef struct VkBindImagePlaneMemoryInfo  VkBindImagePlaneMemoryInfoKHR;

typedef struct VkImagePlaneMemoryRequirementsInfo {
    VkStructureType   sType;
    const  void *                       pNext;
    VkImageAspectFlagBits              planeAspect;
} VkImagePlaneMemoryRequirementsInfo;

typedef struct VkImagePlaneMemoryRequirementsInfo  VkImagePlaneMemoryRequirementsInfoKHR;

typedef struct VkSamplerYcbcrConversionImageFormatProperties {
    VkStructureType   sType;
    void *       pNext;
    uint32_t                           combinedImageSamplerDescriptorCount;
} VkSamplerYcbcrConversionImageFormatProperties;

typedef struct VkSamplerYcbcrConversionImageFormatProperties  VkSamplerYcbcrConversionImageFormatPropertiesKHR;

typedef struct VkSampleLocationEXT {
    float                              x;
    float                              y;
} VkSampleLocationEXT;

typedef struct VkSampleLocationsInfoEXT {
    VkStructureType   sType;
    const  void *                             pNext;
    VkSampleCountFlagBits    sampleLocationsPerPixel;
    VkExtent2D                               sampleLocationGridSize;
    uint32_t                 sampleLocationsCount;
    const  VkSampleLocationEXT *  pSampleLocations;
} VkSampleLocationsInfoEXT;

typedef struct VkAttachmentSampleLocationsEXT {
    uint32_t                           attachmentIndex;
    VkSampleLocationsInfoEXT           sampleLocationsInfo;
} VkAttachmentSampleLocationsEXT;

typedef struct VkSubpassSampleLocationsEXT {
    uint32_t                           subpassIndex;
    VkSampleLocationsInfoEXT           sampleLocationsInfo;
} VkSubpassSampleLocationsEXT;

typedef struct VkRenderPassSampleLocationsBeginInfoEXT {
    VkStructureType   sType;
    const  void *                       pNext;
    uint32_t           attachmentInitialSampleLocationsCount;
    const  VkAttachmentSampleLocationsEXT *  pAttachmentInitialSampleLocations;
    uint32_t           postSubpassSampleLocationsCount;
    const  VkSubpassSampleLocationsEXT *  pPostSubpassSampleLocations;
} VkRenderPassSampleLocationsBeginInfoEXT;

typedef struct VkMultisamplePropertiesEXT {
    VkStructureType   sType;
    void *                             pNext;
    VkExtent2D                         maxSampleLocationGridSize;
} VkMultisamplePropertiesEXT;

typedef struct VkSamplerReductionModeCreateInfo {
    VkStructureType   sType;
    const  void *                       pNext;
    VkSamplerReductionMode             reductionMode;
} VkSamplerReductionModeCreateInfo;

typedef struct VkSamplerReductionModeCreateInfo  VkSamplerReductionModeCreateInfoEXT;

typedef struct VkPhysicalDeviceInlineUniformBlockPropertiesEXT {
    VkStructureType   sType;
    void *                   pNext;
    uint32_t                 maxInlineUniformBlockSize;
    uint32_t                 maxPerStageDescriptorInlineUniformBlocks;
    uint32_t                 maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
    uint32_t                 maxDescriptorSetInlineUniformBlocks;
    uint32_t                 maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
} VkPhysicalDeviceInlineUniformBlockPropertiesEXT;

typedef struct VkWriteDescriptorSetInlineUniformBlockEXT {
    VkStructureType   sType;
    const  void *             pNext;
    uint32_t                 dataSize;
    const  void *  pData;
} VkWriteDescriptorSetInlineUniformBlockEXT;

typedef struct VkDescriptorPoolInlineUniformBlockCreateInfoEXT {
    VkStructureType   sType;
    const  void *             pNext;
    uint32_t                 maxInlineUniformBlockBindings;
} VkDescriptorPoolInlineUniformBlockCreateInfoEXT;

typedef struct VkImageFormatListCreateInfo {
    VkStructureType   sType;
    const  void *                             pNext;
    uint32_t                 viewFormatCount;
    const  VkFormat *   pViewFormats;
} VkImageFormatListCreateInfo;

typedef struct VkImageFormatListCreateInfo  VkImageFormatListCreateInfoKHR;

typedef struct VkShaderModuleValidationCacheCreateInfoEXT {
    VkStructureType   sType;
    const  void *             pNext;
    VkValidationCacheEXT      validationCache;
} VkShaderModuleValidationCacheCreateInfoEXT;

typedef struct VkShaderResourceUsageAMD {
    uint32_t   numUsedVgprs;
    uint32_t   numUsedSgprs;
    uint32_t   ldsSizePerLocalWorkGroup;
    size_t   ldsUsageSizeInBytes;
    size_t   scratchMemUsageInBytes;
} VkShaderResourceUsageAMD;

typedef struct VkDeviceQueueGlobalPriorityCreateInfoEXT {
    VkStructureType   sType;
    const  void *                     pNext;
    VkQueueGlobalPriorityEXT         globalPriority;
} VkDeviceQueueGlobalPriorityCreateInfoEXT;

typedef struct VkDebugUtilsObjectNameInfoEXT {
    VkStructureType   sType;
    const  void *                                             pNext;
    VkObjectType                                             objectType;
    uint64_t                                                 objectHandle;
    const  char *       pObjectName;
} VkDebugUtilsObjectNameInfoEXT;

typedef struct VkDebugUtilsObjectTagInfoEXT {
    VkStructureType   sType;
    const  void *                             pNext;
    VkObjectType                             objectType;
    uint64_t                                 objectHandle;
    uint64_t                                 tagName;
    size_t                                   tagSize;
    const  void *               pTag;
} VkDebugUtilsObjectTagInfoEXT;

typedef struct VkDebugUtilsLabelEXT {
    VkStructureType   sType;
    const  void *                             pNext;
    const  char *       pLabelName;
    float                    color [4];
} VkDebugUtilsLabelEXT;

typedef struct VkImportMemoryHostPointerInfoEXT {
    VkStructureType   sType;
    const  void *  pNext;
    VkExternalMemoryHandleTypeFlagBits   handleType;
    void *  pHostPointer;
} VkImportMemoryHostPointerInfoEXT;

typedef struct VkMemoryHostPointerPropertiesEXT {
    VkStructureType   sType;
    void *  pNext;
    uint32_t   memoryTypeBits;
} VkMemoryHostPointerPropertiesEXT;

typedef struct VkCalibratedTimestampInfoEXT {
    VkStructureType   sType;
    const  void *             pNext;
    VkTimeDomainEXT          timeDomain;
} VkCalibratedTimestampInfoEXT;

typedef struct VkPhysicalDeviceShaderCorePropertiesAMD {
    VkStructureType   sType;
    void *     pNext;
    uint32_t   shaderEngineCount;
    uint32_t   shaderArraysPerEngineCount;
    uint32_t   computeUnitsPerShaderArray;
    uint32_t   simdPerComputeUnit;
    uint32_t   wavefrontsPerSimd;
    uint32_t   wavefrontSize;
    uint32_t   sgprsPerSimd;
    uint32_t   minSgprAllocation;
    uint32_t   maxSgprAllocation;
    uint32_t   sgprAllocationGranularity;
    uint32_t   vgprsPerSimd;
    uint32_t   minVgprAllocation;
    uint32_t   maxVgprAllocation;
    uint32_t   vgprAllocationGranularity;
} VkPhysicalDeviceShaderCorePropertiesAMD;

typedef struct VkDescriptorSetVariableDescriptorCountAllocateInfo {
    VkStructureType   sType;
    const  void *                             pNext;
    uint32_t                 descriptorSetCount;
    const  uint32_t *  pDescriptorCounts;
} VkDescriptorSetVariableDescriptorCountAllocateInfo;

typedef struct VkDescriptorSetVariableDescriptorCountAllocateInfo  VkDescriptorSetVariableDescriptorCountAllocateInfoEXT;

typedef struct VkDescriptorSetVariableDescriptorCountLayoutSupport {
    VkStructureType   sType;
    void *             pNext;
    uint32_t           maxVariableDescriptorCount;
} VkDescriptorSetVariableDescriptorCountLayoutSupport;

typedef struct VkDescriptorSetVariableDescriptorCountLayoutSupport  VkDescriptorSetVariableDescriptorCountLayoutSupportEXT;

typedef struct VkSubpassBeginInfo {
    VkStructureType   sType;
    const  void *             pNext;
    VkSubpassContents        contents;
} VkSubpassBeginInfo;

typedef struct VkSubpassBeginInfo  VkSubpassBeginInfoKHR;

typedef struct VkSubpassEndInfo {
    VkStructureType   sType;
    const  void *             pNext;
} VkSubpassEndInfo;

typedef struct VkSubpassEndInfo  VkSubpassEndInfoKHR;

typedef struct VkPhysicalDeviceTimelineSemaphoreProperties {
    VkStructureType   sType;
    void *                   pNext;
    uint64_t                 maxTimelineSemaphoreValueDifference;
} VkPhysicalDeviceTimelineSemaphoreProperties;

typedef struct VkPhysicalDeviceTimelineSemaphoreProperties  VkPhysicalDeviceTimelineSemaphorePropertiesKHR;

typedef struct VkSemaphoreTypeCreateInfo {
    VkStructureType   sType;
    const  void *             pNext;
    VkSemaphoreType          semaphoreType;
    uint64_t                 initialValue;
} VkSemaphoreTypeCreateInfo;

typedef struct VkSemaphoreTypeCreateInfo  VkSemaphoreTypeCreateInfoKHR;

typedef struct VkTimelineSemaphoreSubmitInfo {
    VkStructureType   sType;
    const  void *                       pNext;
    uint32_t           waitSemaphoreValueCount;
    const  uint64_t *  pWaitSemaphoreValues;
    uint32_t           signalSemaphoreValueCount;
    const  uint64_t *  pSignalSemaphoreValues;
} VkTimelineSemaphoreSubmitInfo;

typedef struct VkTimelineSemaphoreSubmitInfo  VkTimelineSemaphoreSubmitInfoKHR;

typedef struct VkSemaphoreSignalInfo {
    VkStructureType   sType;
    const  void *             pNext;
    VkSemaphore              semaphore;
    uint64_t                 value;
} VkSemaphoreSignalInfo;

typedef struct VkSemaphoreSignalInfo  VkSemaphoreSignalInfoKHR;

typedef struct VkVertexInputBindingDivisorDescriptionEXT {
    uint32_t            binding;
    uint32_t            divisor;
} VkVertexInputBindingDivisorDescriptionEXT;

typedef struct VkPipelineVertexInputDivisorStateCreateInfoEXT {
    VkStructureType   sType;
    const  void *                          pNext;
    uint32_t                              vertexBindingDivisorCount;
    const  VkVertexInputBindingDivisorDescriptionEXT *       pVertexBindingDivisors;
} VkPipelineVertexInputDivisorStateCreateInfoEXT;

typedef struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT {
    VkStructureType   sType;
    void *                   pNext;
    uint32_t                 maxVertexAttribDivisor;
} VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT;

typedef struct VkPhysicalDevicePCIBusInfoPropertiesEXT {
    VkStructureType   sType;
    void *                   pNext;
    uint32_t                 pciDomain;
    uint32_t                 pciBus;
    uint32_t                 pciDevice;
    uint32_t                 pciFunction;
} VkPhysicalDevicePCIBusInfoPropertiesEXT;

#if defined(VK_USE_PLATFORM_ANDROID_KHR)
typedef struct VkImportAndroidHardwareBufferInfoANDROID {
    VkStructureType   sType;
    const  void *                         pNext;
    struct  AHardwareBuffer *             buffer;
} VkImportAndroidHardwareBufferInfoANDROID;
#endif

#if defined(VK_USE_PLATFORM_ANDROID_KHR)
typedef struct VkAndroidHardwareBufferUsageANDROID {
    VkStructureType   sType;
    void *                               pNext;
    uint64_t                             androidHardwareBufferUsage;
} VkAndroidHardwareBufferUsageANDROID;
#endif

#if defined(VK_USE_PLATFORM_ANDROID_KHR)
typedef struct VkMemoryGetAndroidHardwareBufferInfoANDROID {
    VkStructureType   sType;
    const  void *                         pNext;
    VkDeviceMemory                       memory;
} VkMemoryGetAndroidHardwareBufferInfoANDROID;
#endif

#if defined(VK_USE_PLATFORM_ANDROID_KHR)
typedef struct VkExternalFormatANDROID {
    VkStructureType   sType;
    void *                               pNext;
    uint64_t                             externalFormat;
} VkExternalFormatANDROID;
#endif

typedef struct VkCheckpointDataNV {
    VkStructureType   sType;
    void *                   pNext;
    VkPipelineStageFlagBits     stage;
    void *  pCheckpointMarker;
} VkCheckpointDataNV;

typedef struct VkImageViewASTCDecodeModeEXT {
    VkStructureType   sType;
    const  void *                       pNext;
    VkFormat                           decodeMode;
} VkImageViewASTCDecodeModeEXT;

typedef struct VkPipelineViewportExclusiveScissorStateCreateInfoNV {
    VkStructureType   sType;
    const  void *                                                        pNext;
    uint32_t                                            exclusiveScissorCount;
    const  VkRect2D *  pExclusiveScissors;
} VkPipelineViewportExclusiveScissorStateCreateInfoNV;

typedef struct VkShadingRatePaletteNV {
    uint32_t                                                                 shadingRatePaletteEntryCount;
    const  VkShadingRatePaletteEntryNV *   pShadingRatePaletteEntries;
} VkShadingRatePaletteNV;

typedef struct VkPhysicalDeviceShadingRateImagePropertiesNV {
    VkStructureType   sType;
    void *                                pNext;
    VkExtent2D                            shadingRateTexelSize;
    uint32_t                              shadingRatePaletteSize;
    uint32_t                              shadingRateMaxCoarseSamples;
} VkPhysicalDeviceShadingRateImagePropertiesNV;

typedef struct VkCoarseSampleLocationNV {
    uint32_t                              pixelX;
    uint32_t                              pixelY;
    uint32_t                              sample;
} VkCoarseSampleLocationNV;

typedef struct VkCoarseSampleOrderCustomNV {
    VkShadingRatePaletteEntryNV           shadingRate;
    uint32_t                              sampleCount;
    uint32_t                              sampleLocationCount;
    const  VkCoarseSampleLocationNV *  pSampleLocations;
} VkCoarseSampleOrderCustomNV;

typedef struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV {
    VkStructureType   sType;
    const  void *                                                             pNext;
    VkCoarseSampleOrderTypeNV                                                sampleOrderType;
    uint32_t                                                 customSampleOrderCount;
    const  VkCoarseSampleOrderCustomNV *         pCustomSampleOrders;
} VkPipelineViewportCoarseSampleOrderStateCreateInfoNV;

typedef struct VkPhysicalDeviceMeshShaderPropertiesNV {
    VkStructureType   sType;
    void *                                pNext;
    uint32_t                              maxDrawMeshTasksCount;
    uint32_t                              maxTaskWorkGroupInvocations;
    uint32_t                              maxTaskWorkGroupSize [3];
    uint32_t                              maxTaskTotalMemorySize;
    uint32_t                              maxTaskOutputCount;
    uint32_t                              maxMeshWorkGroupInvocations;
    uint32_t                              maxMeshWorkGroupSize [3];
    uint32_t                              maxMeshTotalMemorySize;
    uint32_t                              maxMeshOutputVertices;
    uint32_t                              maxMeshOutputPrimitives;
    uint32_t                              maxMeshMultiviewViewCount;
    uint32_t                              meshOutputPerVertexGranularity;
    uint32_t                              meshOutputPerPrimitiveGranularity;
} VkPhysicalDeviceMeshShaderPropertiesNV;

typedef struct VkDrawMeshTasksIndirectCommandNV {
    uint32_t                 taskCount;
    uint32_t                 firstTask;
} VkDrawMeshTasksIndirectCommandNV;

typedef struct VkRayTracingShaderGroupCreateInfoNV {
    VkStructureType   sType;
    const  void *             pNext;
    VkRayTracingShaderGroupTypeKHR   type;
    uint32_t                 generalShader;
    uint32_t                 closestHitShader;
    uint32_t                 anyHitShader;
    uint32_t                 intersectionShader;
} VkRayTracingShaderGroupCreateInfoNV;

#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef struct VkRayTracingShaderGroupCreateInfoKHR {
    VkStructureType   sType;
    const  void *             pNext;
    VkRayTracingShaderGroupTypeKHR   type;
    uint32_t                 generalShader;
    uint32_t                 closestHitShader;
    uint32_t                 anyHitShader;
    uint32_t                 intersectionShader;
    const  void *  pShaderGroupCaptureReplayHandle;
} VkRayTracingShaderGroupCreateInfoKHR;
#endif

typedef struct VkWriteDescriptorSetAccelerationStructureKHR {
    VkStructureType   sType;
    const  void *                       pNext;
    uint32_t                           accelerationStructureCount;
    const  VkAccelerationStructureKHR *  pAccelerationStructures;
} VkWriteDescriptorSetAccelerationStructureKHR;

typedef struct VkWriteDescriptorSetAccelerationStructureKHR  VkWriteDescriptorSetAccelerationStructureNV;

#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef struct VkAccelerationStructureMemoryRequirementsInfoKHR {
    VkStructureType   sType;
    const  void *                                                           pNext;
    VkAccelerationStructureMemoryRequirementsTypeKHR                       type;
    VkAccelerationStructureBuildTypeKHR                                    buildType;
    VkAccelerationStructureKHR                                             accelerationStructure;
} VkAccelerationStructureMemoryRequirementsInfoKHR;
#endif

typedef struct VkAccelerationStructureMemoryRequirementsInfoNV {
    VkStructureType   sType;
    const  void *                                                           pNext;
    VkAccelerationStructureMemoryRequirementsTypeNV                       type;
    VkAccelerationStructureNV                                             accelerationStructure;
} VkAccelerationStructureMemoryRequirementsInfoNV;

#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef struct VkPhysicalDeviceRayTracingPropertiesKHR {
    VkStructureType   sType;
    void *                             pNext;
    uint32_t                           shaderGroupHandleSize;
    uint32_t                           maxRecursionDepth;
    uint32_t                           maxShaderGroupStride;
    uint32_t                           shaderGroupBaseAlignment;
    uint64_t                           maxGeometryCount;
    uint64_t                           maxInstanceCount;
    uint64_t                           maxPrimitiveCount;
    uint32_t                           maxDescriptorSetAccelerationStructures;
    uint32_t                           shaderGroupHandleCaptureReplaySize;
} VkPhysicalDeviceRayTracingPropertiesKHR;
#endif

typedef struct VkPhysicalDeviceRayTracingPropertiesNV {
    VkStructureType   sType;
    void *                             pNext;
    uint32_t                           shaderGroupHandleSize;
    uint32_t                           maxRecursionDepth;
    uint32_t                           maxShaderGroupStride;
    uint32_t                           shaderGroupBaseAlignment;
    uint64_t                           maxGeometryCount;
    uint64_t                           maxInstanceCount;
    uint64_t                           maxTriangleCount;
    uint32_t                           maxDescriptorSetAccelerationStructures;
} VkPhysicalDeviceRayTracingPropertiesNV;

#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef struct VkTraceRaysIndirectCommandKHR {
    uint32_t                 width;
    uint32_t                 height;
    uint32_t                 depth;
} VkTraceRaysIndirectCommandKHR;
#endif

typedef struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT {
    VkStructureType   sType;
    const  void *  pNext;
    uint64_t   drmFormatModifier;
    VkSharingMode   sharingMode;
    uint32_t   queueFamilyIndexCount;
    const  uint32_t *  pQueueFamilyIndices;
} VkPhysicalDeviceImageDrmFormatModifierInfoEXT;

typedef struct VkImageDrmFormatModifierListCreateInfoEXT {
    VkStructureType   sType;
    const  void *  pNext;
    uint32_t   drmFormatModifierCount;
    const  uint64_t *  pDrmFormatModifiers;
} VkImageDrmFormatModifierListCreateInfoEXT;

typedef struct VkImageDrmFormatModifierPropertiesEXT {
    VkStructureType   sType;
    void *  pNext;
    uint64_t   drmFormatModifier;
} VkImageDrmFormatModifierPropertiesEXT;

typedef struct VkDeviceMemoryOverallocationCreateInfoAMD {
    VkStructureType   sType;
    const  void *                       pNext;
    VkMemoryOverallocationBehaviorAMD   overallocationBehavior;
} VkDeviceMemoryOverallocationCreateInfoAMD;

typedef struct VkRenderPassFragmentDensityMapCreateInfoEXT {
    VkStructureType   sType;
    const  void *                       pNext;
    VkAttachmentReference              fragmentDensityMapAttachment;
} VkRenderPassFragmentDensityMapCreateInfoEXT;

typedef struct VkMemoryPriorityAllocateInfoEXT {
    VkStructureType   sType;
    const  void *                         pNext;
    float                                priority;
} VkMemoryPriorityAllocateInfoEXT;

typedef struct VkBufferDeviceAddressInfo {
    VkStructureType   sType;
    const  void *                                             pNext;
    VkBuffer                                                 buffer;
} VkBufferDeviceAddressInfo;

typedef struct VkBufferDeviceAddressInfo  VkBufferDeviceAddressInfoKHR;

typedef struct VkBufferDeviceAddressInfo  VkBufferDeviceAddressInfoEXT;

typedef struct VkBufferOpaqueCaptureAddressCreateInfo {
    VkStructureType   sType;
    const  void *                       pNext;
    uint64_t                           opaqueCaptureAddress;
} VkBufferOpaqueCaptureAddressCreateInfo;

typedef struct VkBufferOpaqueCaptureAddressCreateInfo  VkBufferOpaqueCaptureAddressCreateInfoKHR;

typedef struct VkPhysicalDeviceImageViewImageFormatInfoEXT {
    VkStructureType   sType;
    void *                             pNext;
    VkImageViewType                    imageViewType;
} VkPhysicalDeviceImageViewImageFormatInfoEXT;

typedef struct VkRenderPassAttachmentBeginInfo {
    VkStructureType   sType;
    const  void *                               pNext;
    uint32_t                   attachmentCount;
    const  VkImageView *  pAttachments;
} VkRenderPassAttachmentBeginInfo;

typedef struct VkRenderPassAttachmentBeginInfo  VkRenderPassAttachmentBeginInfoKHR;

typedef struct VkCooperativeMatrixPropertiesNV {
    VkStructureType   sType;
    void *                                pNext;
    uint32_t                              MSize;
    uint32_t                              NSize;
    uint32_t                              KSize;
    VkComponentTypeNV                     AType;
    VkComponentTypeNV                     BType;
    VkComponentTypeNV                     CType;
    VkComponentTypeNV                     DType;
    VkScopeNV                             scope;
} VkCooperativeMatrixPropertiesNV;

typedef struct VkImageViewHandleInfoNVX {
    VkStructureType   sType;
    const  void *             pNext;
    VkImageView                           imageView;
    VkDescriptorType                      descriptorType;
    VkSampler             sampler;
} VkImageViewHandleInfoNVX;

#if defined(VK_USE_PLATFORM_GGP)
typedef struct VkPresentFrameTokenGGP {
    VkStructureType   sType;
    const  void *                       pNext;
    GgpFrameToken                      frameToken;
} VkPresentFrameTokenGGP;
#endif

#if defined(VK_USE_PLATFORM_WIN32_KHR)
typedef struct VkSurfaceFullScreenExclusiveInfoEXT {
    VkStructureType   sType;
    void *                             pNext;
    VkFullScreenExclusiveEXT           fullScreenExclusive;
} VkSurfaceFullScreenExclusiveInfoEXT;
#endif

#if defined(VK_USE_PLATFORM_WIN32_KHR)
typedef struct VkSurfaceFullScreenExclusiveWin32InfoEXT {
    VkStructureType   sType;
    const  void *       pNext;
    HMONITOR           hmonitor;
} VkSurfaceFullScreenExclusiveWin32InfoEXT;
#endif

typedef struct VkPerformanceCounterKHR {
    VkStructureType   sType;
    const  void *                              pNext;
    VkPerformanceCounterUnitKHR          unit;
    VkPerformanceCounterScopeKHR         scope;
    VkPerformanceCounterStorageKHR       storage;
    uint8_t   uuid [ VK_UUID_SIZE ];
} VkPerformanceCounterKHR;

typedef struct VkQueryPoolPerformanceCreateInfoKHR {
    VkStructureType   sType;
    const  void *                              pNext;
    uint32_t                                  queueFamilyIndex;
    uint32_t                                  counterIndexCount;
    const  uint32_t *  pCounterIndices;
} VkQueryPoolPerformanceCreateInfoKHR;

typedef union VkPerformanceCounterResultKHR {
    int32_t    int32;
    int64_t    int64;
    uint32_t   uint32;
    uint64_t   uint64;
    float      float32;
    double     float64;
} VkPerformanceCounterResultKHR;

typedef struct VkPerformanceQuerySubmitInfoKHR {
    VkStructureType   sType;
    const  void *          pNext;
    uint32_t              counterPassIndex;
} VkPerformanceQuerySubmitInfoKHR;

typedef struct VkInitializePerformanceApiInfoINTEL {
    VkStructureType   sType;
    const  void *                          pNext;
    void *                pUserData;
} VkInitializePerformanceApiInfoINTEL;

typedef struct VkQueryPoolPerformanceQueryCreateInfoINTEL {
    VkStructureType   sType;
    const  void *                          pNext;
    VkQueryPoolSamplingModeINTEL          performanceCountersSampling;
} VkQueryPoolPerformanceQueryCreateInfoINTEL;

typedef struct VkQueryPoolPerformanceQueryCreateInfoINTEL  VkQueryPoolCreateInfoINTEL;

typedef struct VkPerformanceMarkerInfoINTEL {
    VkStructureType   sType;
    const  void *                          pNext;
    uint64_t                              marker;
} VkPerformanceMarkerInfoINTEL;

typedef struct VkPerformanceStreamMarkerInfoINTEL {
    VkStructureType   sType;
    const  void *                          pNext;
    uint32_t                              marker;
} VkPerformanceStreamMarkerInfoINTEL;

typedef struct VkPerformanceConfigurationAcquireInfoINTEL {
    VkStructureType   sType;
    const  void *                          pNext;
    VkPerformanceConfigurationTypeINTEL   type;
} VkPerformanceConfigurationAcquireInfoINTEL;

typedef struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV {
    VkStructureType   sType;
    void *                           pNext;
    uint32_t                         shaderSMCount;
    uint32_t                         shaderWarpsPerSM;
} VkPhysicalDeviceShaderSMBuiltinsPropertiesNV;

typedef struct VkAttachmentReferenceStencilLayout {
    VkStructureType sType;
    void *     pNext;
    VkImageLayout                    stencilLayout;
} VkAttachmentReferenceStencilLayout;

typedef struct VkAttachmentReferenceStencilLayout  VkAttachmentReferenceStencilLayoutKHR;

typedef struct VkAttachmentDescriptionStencilLayout {
    VkStructureType sType;
    void *     pNext;
    VkImageLayout                    stencilInitialLayout;
    VkImageLayout                    stencilFinalLayout;
} VkAttachmentDescriptionStencilLayout;

typedef struct VkAttachmentDescriptionStencilLayout  VkAttachmentDescriptionStencilLayoutKHR;

typedef struct VkPipelineInfoKHR {
    VkStructureType   sType;
    const  void *         pNext;
    VkPipeline           pipeline;
} VkPipelineInfoKHR;

typedef struct VkPipelineExecutableInfoKHR {
    VkStructureType   sType;
    const  void *         pNext;
    VkPipeline           pipeline;
    uint32_t             executableIndex;
} VkPipelineExecutableInfoKHR;

typedef struct VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT {
    VkStructureType   sType;
    void *                   pNext;
    uint32_t                 requiredSubgroupSize;
} VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT;

typedef struct VkMemoryOpaqueCaptureAddressAllocateInfo {
    VkStructureType   sType;
    const  void *                    pNext;
    uint64_t                        opaqueCaptureAddress;
} VkMemoryOpaqueCaptureAddressAllocateInfo;

typedef struct VkMemoryOpaqueCaptureAddressAllocateInfo  VkMemoryOpaqueCaptureAddressAllocateInfoKHR;

typedef struct VkDeviceMemoryOpaqueCaptureAddressInfo {
    VkStructureType   sType;
    const  void *                       pNext;
    VkDeviceMemory                     memory;
} VkDeviceMemoryOpaqueCaptureAddressInfo;

typedef struct VkDeviceMemoryOpaqueCaptureAddressInfo  VkDeviceMemoryOpaqueCaptureAddressInfoKHR;

typedef struct VkPhysicalDeviceLineRasterizationPropertiesEXT {
    VkStructureType   sType;
    void *                                pNext;
    uint32_t                              lineSubPixelPrecisionBits;
} VkPhysicalDeviceLineRasterizationPropertiesEXT;

typedef struct VkSamplerCustomBorderColorCreateInfoEXT {
    VkStructureType   sType;
    const  void *                                                                             pNext;
    VkClearColorValue                                                                        customBorderColor;
    VkFormat                                                                                 format;
} VkSamplerCustomBorderColorCreateInfoEXT;

typedef struct VkPhysicalDeviceCustomBorderColorPropertiesEXT {
    VkStructureType   sType;
    void *                                                                    pNext;
    uint32_t                                                                                        maxCustomBorderColorSamplers;
} VkPhysicalDeviceCustomBorderColorPropertiesEXT;

#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef struct VkAccelerationStructureBuildOffsetInfoKHR {
    uint32_t                                                  primitiveCount;
    uint32_t                                                  primitiveOffset;
    uint32_t                                  firstVertex;
    uint32_t                                  transformOffset;
} VkAccelerationStructureBuildOffsetInfoKHR;
#endif

typedef struct VkAabbPositionsKHR {
    float                                                     minX;
    float                                                     minY;
    float                                                     minZ;
    float                                                     maxX;
    float                                                     maxY;
    float                                                     maxZ;
} VkAabbPositionsKHR;

typedef struct VkAabbPositionsKHR  VkAabbPositionsNV;

typedef struct VkTransformMatrixKHR {
    float                                                     matrix [3][4];
} VkTransformMatrixKHR;

typedef struct VkTransformMatrixKHR  VkTransformMatrixNV;

#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef struct VkAccelerationStructureDeviceAddressInfoKHR {
    VkStructureType   sType;
    const  void *                                             pNext;
    VkAccelerationStructureKHR                               accelerationStructure;
} VkAccelerationStructureDeviceAddressInfoKHR;
#endif

#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef struct VkAccelerationStructureVersionKHR {
    VkStructureType   sType;
    const  void *                                             pNext;
    const  uint8_t *                     versionData;
} VkAccelerationStructureVersionKHR;
#endif

#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef struct VkCopyAccelerationStructureInfoKHR {
    VkStructureType   sType;
    const  void *                                             pNext;
    VkAccelerationStructureKHR                               src;
    VkAccelerationStructureKHR                               dst;
    VkCopyAccelerationStructureModeKHR                       mode;
} VkCopyAccelerationStructureInfoKHR;
#endif

#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef struct VkRayTracingPipelineInterfaceCreateInfoKHR {
    VkStructureType   sType;
    const  void *                                             pNext;
    uint32_t                                                 maxPayloadSize;
    uint32_t                                                 maxAttributeSize;
    uint32_t                                                 maxCallableSize;
} VkRayTracingPipelineInterfaceCreateInfoKHR;
#endif

#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef struct VkDeferredOperationInfoKHR {
    VkStructureType   sType;
    const  void *                    pNext;
    VkDeferredOperationKHR          operationHandle;
} VkDeferredOperationInfoKHR;
#endif

#if defined(VK_ENABLE_BETA_EXTENSIONS) || defined(VK_ENABLE_BETA_EXTENSIONS)
typedef struct VkPipelineLibraryCreateInfoKHR {
    VkStructureType   sType;
    const  void *                                             pNext;
    uint32_t                                 libraryCount;
    const  VkPipeline *                    pLibraries;
} VkPipelineLibraryCreateInfoKHR;
#endif

typedef struct VkRenderPassTransformBeginInfoQCOM {
    VkStructureType   sType;
    void *                            pNext;
    VkSurfaceTransformFlagBitsKHR     transform;
} VkRenderPassTransformBeginInfoQCOM;

typedef struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM {
    VkStructureType   sType;
    void *                            pNext;
    VkSurfaceTransformFlagBitsKHR     transform;
    VkRect2D                          renderArea;
} VkCommandBufferInheritanceRenderPassTransformInfoQCOM;

typedef uint32_t VkSampleMask;

typedef uint32_t VkBool32;

typedef uint32_t VkFlags;

typedef uint64_t VkDeviceSize;

typedef uint64_t VkDeviceAddress;

typedef VkFlags VkFramebufferCreateFlags;

typedef VkFlags VkQueryPoolCreateFlags;

typedef VkFlags VkRenderPassCreateFlags;

typedef VkFlags VkSamplerCreateFlags;

typedef VkFlags VkPipelineLayoutCreateFlags;

typedef VkFlags VkPipelineCacheCreateFlags;

typedef VkFlags VkPipelineDepthStencilStateCreateFlags;

typedef VkFlags VkPipelineDynamicStateCreateFlags;

typedef VkFlags VkPipelineColorBlendStateCreateFlags;

typedef VkFlags VkPipelineMultisampleStateCreateFlags;

typedef VkFlags VkPipelineRasterizationStateCreateFlags;

typedef VkFlags VkPipelineViewportStateCreateFlags;

typedef VkFlags VkPipelineTessellationStateCreateFlags;

typedef VkFlags VkPipelineInputAssemblyStateCreateFlags;

typedef VkFlags VkPipelineVertexInputStateCreateFlags;

typedef VkFlags VkPipelineShaderStageCreateFlags;

typedef VkFlags VkDescriptorSetLayoutCreateFlags;

typedef VkFlags VkBufferViewCreateFlags;

typedef VkFlags VkInstanceCreateFlags;

typedef VkFlags VkDeviceCreateFlags;

typedef VkFlags VkDeviceQueueCreateFlags;

typedef VkFlags VkQueueFlags;

typedef VkFlags VkMemoryPropertyFlags;

typedef VkFlags VkMemoryHeapFlags;

typedef VkFlags VkAccessFlags;

typedef VkFlags VkBufferUsageFlags;

typedef VkFlags VkBufferCreateFlags;

typedef VkFlags VkShaderStageFlags;

typedef VkFlags VkImageUsageFlags;

typedef VkFlags VkImageCreateFlags;

typedef VkFlags VkImageViewCreateFlags;

typedef VkFlags VkPipelineCreateFlags;

typedef VkFlags VkColorComponentFlags;

typedef VkFlags VkFenceCreateFlags;

typedef VkFlags VkSemaphoreCreateFlags;

typedef VkFlags VkFormatFeatureFlags;

typedef VkFlags VkQueryControlFlags;

typedef VkFlags VkQueryResultFlags;

typedef VkFlags VkShaderModuleCreateFlags;

typedef VkFlags VkEventCreateFlags;

typedef VkFlags VkCommandPoolCreateFlags;

typedef VkFlags VkCommandPoolResetFlags;

typedef VkFlags VkCommandBufferResetFlags;

typedef VkFlags VkCommandBufferUsageFlags;

typedef VkFlags VkQueryPipelineStatisticFlags;

typedef VkFlags VkMemoryMapFlags;

typedef VkFlags VkImageAspectFlags;

typedef VkFlags VkSparseMemoryBindFlags;

typedef VkFlags VkSparseImageFormatFlags;

typedef VkFlags VkSubpassDescriptionFlags;

typedef VkFlags VkPipelineStageFlags;

typedef VkFlags VkSampleCountFlags;

typedef VkFlags VkAttachmentDescriptionFlags;

typedef VkFlags VkStencilFaceFlags;

typedef VkFlags VkCullModeFlags;

typedef VkFlags VkDescriptorPoolCreateFlags;

typedef VkFlags VkDescriptorPoolResetFlags;

typedef VkFlags VkDependencyFlags;

typedef VkFlags VkSubgroupFeatureFlags;

typedef VkFlags VkIndirectCommandsLayoutUsageFlagsNV;

typedef VkFlags VkIndirectStateFlagsNV;

typedef VkFlags VkGeometryFlagsKHR;

#define VkGeometryFlagsNV VkGeometryFlagsKHR

typedef VkFlags VkGeometryInstanceFlagsKHR;

#define VkGeometryInstanceFlagsNV VkGeometryInstanceFlagsKHR

typedef VkFlags VkBuildAccelerationStructureFlagsKHR;

#define VkBuildAccelerationStructureFlagsNV VkBuildAccelerationStructureFlagsKHR

typedef VkFlags VkPrivateDataSlotCreateFlagsEXT;

typedef VkFlags VkDescriptorUpdateTemplateCreateFlags;

#define VkDescriptorUpdateTemplateCreateFlagsKHR VkDescriptorUpdateTemplateCreateFlags

typedef VkFlags VkPipelineCreationFeedbackFlagsEXT;

typedef VkFlags VkPerformanceCounterDescriptionFlagsKHR;

typedef VkFlags VkAcquireProfilingLockFlagsKHR;

typedef VkFlags VkSemaphoreWaitFlags;

#define VkSemaphoreWaitFlagsKHR VkSemaphoreWaitFlags

typedef VkFlags VkPipelineCompilerControlFlagsAMD;

typedef VkFlags VkShaderCorePropertiesFlagsAMD;

typedef VkFlags VkDeviceDiagnosticsConfigFlagsNV;

typedef VkFlags VkCompositeAlphaFlagsKHR;

typedef VkFlags VkDisplayPlaneAlphaFlagsKHR;

typedef VkFlags VkSurfaceTransformFlagsKHR;

typedef VkFlags VkSwapchainCreateFlagsKHR;

typedef VkFlags VkDisplayModeCreateFlagsKHR;

typedef VkFlags VkDisplaySurfaceCreateFlagsKHR;

#if defined(VK_USE_PLATFORM_ANDROID_KHR)
typedef VkFlags VkAndroidSurfaceCreateFlagsKHR;
#endif

#if defined(VK_USE_PLATFORM_VI_NN)
typedef VkFlags VkViSurfaceCreateFlagsNN;
#endif

#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
typedef VkFlags VkWaylandSurfaceCreateFlagsKHR;
#endif

#if defined(VK_USE_PLATFORM_WIN32_KHR)
typedef VkFlags VkWin32SurfaceCreateFlagsKHR;
#endif

#if defined(VK_USE_PLATFORM_XLIB_KHR)
typedef VkFlags VkXlibSurfaceCreateFlagsKHR;
#endif

#if defined(VK_USE_PLATFORM_XCB_KHR)
typedef VkFlags VkXcbSurfaceCreateFlagsKHR;
#endif

#if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
typedef VkFlags VkDirectFBSurfaceCreateFlagsEXT;
#endif

#if defined(VK_USE_PLATFORM_IOS_MVK)
typedef VkFlags VkIOSSurfaceCreateFlagsMVK;
#endif

#if defined(VK_USE_PLATFORM_MACOS_MVK)
typedef VkFlags VkMacOSSurfaceCreateFlagsMVK;
#endif

#if defined(VK_USE_PLATFORM_METAL_EXT)
typedef VkFlags VkMetalSurfaceCreateFlagsEXT;
#endif

#if defined(VK_USE_PLATFORM_FUCHSIA)
typedef VkFlags VkImagePipeSurfaceCreateFlagsFUCHSIA;
#endif

#if defined(VK_USE_PLATFORM_GGP)
typedef VkFlags VkStreamDescriptorSurfaceCreateFlagsGGP;
#endif

typedef VkFlags VkHeadlessSurfaceCreateFlagsEXT;

typedef VkFlags VkPeerMemoryFeatureFlags;

#define VkPeerMemoryFeatureFlagsKHR VkPeerMemoryFeatureFlags

typedef VkFlags VkMemoryAllocateFlags;

#define VkMemoryAllocateFlagsKHR VkMemoryAllocateFlags

typedef VkFlags VkDeviceGroupPresentModeFlagsKHR;

typedef VkFlags VkDebugReportFlagsEXT;

typedef VkFlags VkCommandPoolTrimFlags;

#define VkCommandPoolTrimFlagsKHR VkCommandPoolTrimFlags

typedef VkFlags VkExternalMemoryHandleTypeFlagsNV;

typedef VkFlags VkExternalMemoryFeatureFlagsNV;

typedef VkFlags VkExternalMemoryHandleTypeFlags;

#define VkExternalMemoryHandleTypeFlagsKHR VkExternalMemoryHandleTypeFlags

typedef VkFlags VkExternalMemoryFeatureFlags;

#define VkExternalMemoryFeatureFlagsKHR VkExternalMemoryFeatureFlags

typedef VkFlags VkExternalSemaphoreHandleTypeFlags;

#define VkExternalSemaphoreHandleTypeFlagsKHR VkExternalSemaphoreHandleTypeFlags

typedef VkFlags VkExternalSemaphoreFeatureFlags;

#define VkExternalSemaphoreFeatureFlagsKHR VkExternalSemaphoreFeatureFlags

typedef VkFlags VkSemaphoreImportFlags;

#define VkSemaphoreImportFlagsKHR VkSemaphoreImportFlags

typedef VkFlags VkExternalFenceHandleTypeFlags;

#define VkExternalFenceHandleTypeFlagsKHR VkExternalFenceHandleTypeFlags

typedef VkFlags VkExternalFenceFeatureFlags;

#define VkExternalFenceFeatureFlagsKHR VkExternalFenceFeatureFlags

typedef VkFlags VkFenceImportFlags;

#define VkFenceImportFlagsKHR VkFenceImportFlags

typedef VkFlags VkSurfaceCounterFlagsEXT;

typedef VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV;

typedef VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT;

typedef VkFlags VkPipelineCoverageToColorStateCreateFlagsNV;

typedef VkFlags VkPipelineCoverageModulationStateCreateFlagsNV;

typedef VkFlags VkPipelineCoverageReductionStateCreateFlagsNV;

typedef VkFlags VkValidationCacheCreateFlagsEXT;

typedef VkFlags VkDebugUtilsMessageSeverityFlagsEXT;

typedef VkFlags VkDebugUtilsMessageTypeFlagsEXT;

typedef VkFlags VkDebugUtilsMessengerCreateFlagsEXT;

typedef VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT;

typedef VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT;

typedef VkFlags VkDescriptorBindingFlags;

#define VkDescriptorBindingFlagsEXT VkDescriptorBindingFlags

typedef VkFlags VkConditionalRenderingFlagsEXT;

typedef VkFlags VkResolveModeFlags;

#define VkResolveModeFlagsKHR VkResolveModeFlags

typedef VkFlags VkPipelineRasterizationStateStreamCreateFlagsEXT;

typedef VkFlags VkPipelineRasterizationDepthClipStateCreateFlagsEXT;

typedef VkFlags VkToolPurposeFlagsEXT;

typedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)(
    VkDebugReportFlagsEXT                       flags,
    VkDebugReportObjectTypeEXT                  objectType,
    uint64_t                                    object,
    size_t                                      location,
    int32_t                                     messageCode,
    const char*                                 pLayerPrefix,
    const char*                                 pMessage,
    void*                                       pUserData);

typedef struct VkDeviceQueueCreateInfo {
    VkStructureType   sType;
    const  void *      pNext;
    VkDeviceQueueCreateFlags      flags;
    uint32_t          queueFamilyIndex;
    uint32_t          queueCount;
    const  float *     pQueuePriorities;
} VkDeviceQueueCreateInfo;

typedef struct VkInstanceCreateInfo {
    VkStructureType   sType;
    const  void *      pNext;
    VkInstanceCreateFlags    flags;
    const  VkApplicationInfo *  pApplicationInfo;
    uint32_t                 enabledLayerCount;
    const  char * const*       ppEnabledLayerNames;
    uint32_t                 enabledExtensionCount;
    const  char * const*       ppEnabledExtensionNames;
} VkInstanceCreateInfo;

typedef struct VkQueueFamilyProperties {
    VkQueueFlags             queueFlags;
    uint32_t                 queueCount;
    uint32_t                 timestampValidBits;
    VkExtent3D               minImageTransferGranularity;
} VkQueueFamilyProperties;

typedef struct VkMemoryAllocateInfo {
    VkStructureType   sType;
    const  void *             pNext;
    VkDeviceSize             allocationSize;
    uint32_t                 memoryTypeIndex;
} VkMemoryAllocateInfo;

typedef struct VkMemoryRequirements {
    VkDeviceSize             size;
    VkDeviceSize             alignment;
    uint32_t                 memoryTypeBits;
} VkMemoryRequirements;

typedef struct VkSparseImageFormatProperties {
    VkImageAspectFlags       aspectMask;
    VkExtent3D               imageGranularity;
    VkSparseImageFormatFlags   flags;
} VkSparseImageFormatProperties;

typedef struct VkSparseImageMemoryRequirements {
    VkSparseImageFormatProperties   formatProperties;
    uint32_t                 imageMipTailFirstLod;
    VkDeviceSize             imageMipTailSize;
    VkDeviceSize             imageMipTailOffset;
    VkDeviceSize             imageMipTailStride;
} VkSparseImageMemoryRequirements;

typedef struct VkMemoryType {
    VkMemoryPropertyFlags    propertyFlags;
    uint32_t                 heapIndex;
} VkMemoryType;

typedef struct VkMemoryHeap {
    VkDeviceSize             size;
    VkMemoryHeapFlags        flags;
} VkMemoryHeap;

typedef struct VkMappedMemoryRange {
    VkStructureType   sType;
    const  void *             pNext;
    VkDeviceMemory           memory;
    VkDeviceSize             offset;
    VkDeviceSize             size;
} VkMappedMemoryRange;

typedef struct VkFormatProperties {
    VkFormatFeatureFlags     linearTilingFeatures;
    VkFormatFeatureFlags     optimalTilingFeatures;
    VkFormatFeatureFlags     bufferFeatures;
} VkFormatProperties;

typedef struct VkImageFormatProperties {
    VkExtent3D               maxExtent;
    uint32_t                 maxMipLevels;
    uint32_t                 maxArrayLayers;
    VkSampleCountFlags       sampleCounts;
    VkDeviceSize             maxResourceSize;
} VkImageFormatProperties;

typedef struct VkDescriptorBufferInfo {
    VkBuffer                 buffer;
    VkDeviceSize             offset;
    VkDeviceSize             range;
} VkDescriptorBufferInfo;

typedef struct VkWriteDescriptorSet {
    VkStructureType   sType;
    const  void *             pNext;
    VkDescriptorSet          dstSet;
    uint32_t                 dstBinding;
    uint32_t                 dstArrayElement;
    uint32_t                 descriptorCount;
    VkDescriptorType         descriptorType;
    const  VkDescriptorImageInfo *  pImageInfo;
    const  VkDescriptorBufferInfo *  pBufferInfo;
    const  VkBufferView *     pTexelBufferView;
} VkWriteDescriptorSet;

typedef struct VkBufferCreateInfo {
    VkStructureType   sType;
    const  void *             pNext;
    VkBufferCreateFlags      flags;
    VkDeviceSize             size;
    VkBufferUsageFlags       usage;
    VkSharingMode            sharingMode;
    uint32_t                 queueFamilyIndexCount;
    const  uint32_t *         pQueueFamilyIndices;
} VkBufferCreateInfo;

typedef struct VkBufferViewCreateInfo {
    VkStructureType   sType;
    const  void *             pNext;
    VkBufferViewCreateFlags flags;
    VkBuffer                 buffer;
    VkFormat                 format;
    VkDeviceSize             offset;
    VkDeviceSize             range;
} VkBufferViewCreateInfo;

typedef struct VkImageSubresource {
    VkImageAspectFlags       aspectMask;
    uint32_t                 mipLevel;
    uint32_t                 arrayLayer;
} VkImageSubresource;

typedef struct VkImageSubresourceLayers {
    VkImageAspectFlags       aspectMask;
    uint32_t                 mipLevel;
    uint32_t                 baseArrayLayer;
    uint32_t                 layerCount;
} VkImageSubresourceLayers;

typedef struct VkImageSubresourceRange {
    VkImageAspectFlags       aspectMask;
    uint32_t                 baseMipLevel;
    uint32_t                 levelCount;
    uint32_t                 baseArrayLayer;
    uint32_t                 layerCount;
} VkImageSubresourceRange;

typedef struct VkMemoryBarrier {
    VkStructureType   sType;
    const  void *             pNext;
    VkAccessFlags            srcAccessMask;
    VkAccessFlags            dstAccessMask;
} VkMemoryBarrier;

typedef struct VkBufferMemoryBarrier {
    VkStructureType   sType;
    const  void *             pNext;
    VkAccessFlags            srcAccessMask;
    VkAccessFlags            dstAccessMask;
    uint32_t                 srcQueueFamilyIndex;
    uint32_t                 dstQueueFamilyIndex;
    VkBuffer                 buffer;
    VkDeviceSize             offset;
    VkDeviceSize             size;
} VkBufferMemoryBarrier;

typedef struct VkImageMemoryBarrier {
    VkStructureType   sType;
    const  void *             pNext;
    VkAccessFlags            srcAccessMask;
    VkAccessFlags            dstAccessMask;
    VkImageLayout            oldLayout;
    VkImageLayout            newLayout;
    uint32_t                 srcQueueFamilyIndex;
    uint32_t                 dstQueueFamilyIndex;
    VkImage                  image;
    VkImageSubresourceRange   subresourceRange;
} VkImageMemoryBarrier;

typedef struct VkImageCreateInfo {
    VkStructureType   sType;
    const  void *             pNext;
    VkImageCreateFlags       flags;
    VkImageType              imageType;
    VkFormat                 format;
    VkExtent3D               extent;
    uint32_t                 mipLevels;
    uint32_t                 arrayLayers;
    VkSampleCountFlagBits    samples;
    VkImageTiling            tiling;
    VkImageUsageFlags        usage;
    VkSharingMode            sharingMode;
    uint32_t                 queueFamilyIndexCount;
    const  uint32_t *         pQueueFamilyIndices;
    VkImageLayout            initialLayout;
} VkImageCreateInfo;

typedef struct VkSubresourceLayout {
    VkDeviceSize             offset;
    VkDeviceSize             size;
    VkDeviceSize             rowPitch;
    VkDeviceSize             arrayPitch;
    VkDeviceSize             depthPitch;
} VkSubresourceLayout;

typedef struct VkImageViewCreateInfo {
    VkStructureType   sType;
    const  void *             pNext;
    VkImageViewCreateFlags   flags;
    VkImage                  image;
    VkImageViewType          viewType;
    VkFormat                 format;
    VkComponentMapping       components;
    VkImageSubresourceRange   subresourceRange;
} VkImageViewCreateInfo;

typedef struct VkBufferCopy {
    VkDeviceSize                         srcOffset;
    VkDeviceSize                         dstOffset;
    VkDeviceSize   size;
} VkBufferCopy;

typedef struct VkSparseMemoryBind {
    VkDeviceSize             resourceOffset;
    VkDeviceSize             size;
    VkDeviceMemory           memory;
    VkDeviceSize             memoryOffset;
    VkSparseMemoryBindFlags flags;
} VkSparseMemoryBind;

typedef struct VkSparseImageMemoryBind {
    VkImageSubresource       subresource;
    VkOffset3D               offset;
    VkExtent3D               extent;
    VkDeviceMemory           memory;
    VkDeviceSize             memoryOffset;
    VkSparseMemoryBindFlags flags;
} VkSparseImageMemoryBind;

typedef struct VkSparseBufferMemoryBindInfo {
    VkBuffer   buffer;
    uint32_t                 bindCount;
    const  VkSparseMemoryBind *  pBinds;
} VkSparseBufferMemoryBindInfo;

typedef struct VkSparseImageOpaqueMemoryBindInfo {
    VkImage   image;
    uint32_t                 bindCount;
    const  VkSparseMemoryBind *  pBinds;
} VkSparseImageOpaqueMemoryBindInfo;

typedef struct VkSparseImageMemoryBindInfo {
    VkImage   image;
    uint32_t                 bindCount;
    const  VkSparseImageMemoryBind *  pBinds;
} VkSparseImageMemoryBindInfo;

typedef struct VkBindSparseInfo {
    VkStructureType   sType;
    const  void *             pNext;
    uint32_t                 waitSemaphoreCount;
    const  VkSemaphore *      pWaitSemaphores;
    uint32_t                 bufferBindCount;
    const  VkSparseBufferMemoryBindInfo *  pBufferBinds;
    uint32_t                 imageOpaqueBindCount;
    const  VkSparseImageOpaqueMemoryBindInfo *  pImageOpaqueBinds;
    uint32_t                 imageBindCount;
    const  VkSparseImageMemoryBindInfo *  pImageBinds;
    uint32_t                 signalSemaphoreCount;
    const  VkSemaphore *      pSignalSemaphores;
} VkBindSparseInfo;

typedef struct VkImageCopy {
    VkImageSubresourceLayers   srcSubresource;
    VkOffset3D               srcOffset;
    VkImageSubresourceLayers   dstSubresource;
    VkOffset3D               dstOffset;
    VkExtent3D               extent;
} VkImageCopy;

typedef struct VkImageBlit {
    VkImageSubresourceLayers   srcSubresource;
    VkOffset3D               srcOffsets [2];
    VkImageSubresourceLayers   dstSubresource;
    VkOffset3D               dstOffsets [2];
} VkImageBlit;

typedef struct VkBufferImageCopy {
    VkDeviceSize             bufferOffset;
    uint32_t                 bufferRowLength;
    uint32_t                 bufferImageHeight;
    VkImageSubresourceLayers   imageSubresource;
    VkOffset3D               imageOffset;
    VkExtent3D               imageExtent;
} VkBufferImageCopy;

typedef struct VkImageResolve {
    VkImageSubresourceLayers   srcSubresource;
    VkOffset3D               srcOffset;
    VkImageSubresourceLayers   dstSubresource;
    VkOffset3D               dstOffset;
    VkExtent3D               extent;
} VkImageResolve;

typedef struct VkShaderModuleCreateInfo {
    VkStructureType   sType;
    const  void *             pNext;
    VkShaderModuleCreateFlags   flags;
    size_t                   codeSize;
    const  uint32_t *             pCode;
} VkShaderModuleCreateInfo;

typedef struct VkDescriptorSetLayoutBinding {
    uint32_t                 binding;
    VkDescriptorType         descriptorType;
    uint32_t   descriptorCount;
    VkShaderStageFlags       stageFlags;
    const  VkSampler *        pImmutableSamplers;
} VkDescriptorSetLayoutBinding;

typedef struct VkDescriptorSetLayoutCreateInfo {
    VkStructureType   sType;
    const  void *             pNext;
    VkDescriptorSetLayoutCreateFlags      flags;
    uint32_t                 bindingCount;
    const  VkDescriptorSetLayoutBinding *  pBindings;
} VkDescriptorSetLayoutCreateInfo;

typedef struct VkDescriptorPoolCreateInfo {
    VkStructureType   sType;
    const  void *             pNext;
    VkDescriptorPoolCreateFlags    flags;
    uint32_t                 maxSets;
    uint32_t                 poolSizeCount;
    const  VkDescriptorPoolSize *  pPoolSizes;
} VkDescriptorPoolCreateInfo;

typedef struct VkPipelineShaderStageCreateInfo {
    VkStructureType   sType;
    const  void *             pNext;
    VkPipelineShaderStageCreateFlags      flags;
    VkShaderStageFlagBits    stage;
    VkShaderModule           module;
    const  char *             pName;
    const  VkSpecializationInfo *  pSpecializationInfo;
} VkPipelineShaderStageCreateInfo;

typedef struct VkComputePipelineCreateInfo {
    VkStructureType   sType;
    const  void *             pNext;
    VkPipelineCreateFlags    flags;
    VkPipelineShaderStageCreateInfo   stage;
    VkPipelineLayout         layout;
    VkPipeline        basePipelineHandle;
    int32_t                  basePipelineIndex;
} VkComputePipelineCreateInfo;

typedef struct VkPipelineVertexInputStateCreateInfo {
    VkStructureType   sType;
    const  void *             pNext;
    VkPipelineVertexInputStateCreateFlags      flags;
    uint32_t                 vertexBindingDescriptionCount;
    const  VkVertexInputBindingDescription *  pVertexBindingDescriptions;
    uint32_t                 vertexAttributeDescriptionCount;
    const  VkVertexInputAttributeDescription *  pVertexAttributeDescriptions;
} VkPipelineVertexInputStateCreateInfo;

typedef struct VkPipelineInputAssemblyStateCreateInfo {
    VkStructureType   sType;
    const  void *             pNext;
    VkPipelineInputAssemblyStateCreateFlags      flags;
    VkPrimitiveTopology      topology;
    VkBool32                 primitiveRestartEnable;
} VkPipelineInputAssemblyStateCreateInfo;

typedef struct VkPipelineTessellationStateCreateInfo {
    VkStructureType   sType;
    const  void *             pNext;
    VkPipelineTessellationStateCreateFlags      flags;
    uint32_t                 patchControlPoints;
} VkPipelineTessellationStateCreateInfo;

typedef struct VkPipelineViewportStateCreateInfo {
    VkStructureType   sType;
    const  void *             pNext;
    VkPipelineViewportStateCreateFlags      flags;
    uint32_t                 viewportCount;
    const  VkViewport *       pViewports;
    uint32_t                 scissorCount;
    const  VkRect2D *         pScissors;
} VkPipelineViewportStateCreateInfo;

typedef struct VkPipelineRasterizationStateCreateInfo {
    VkStructureType   sType;
    const  void *  pNext;
    VkPipelineRasterizationStateCreateFlags      flags;
    VkBool32                 depthClampEnable;
    VkBool32                 rasterizerDiscardEnable;
    VkPolygonMode            polygonMode;
    VkCullModeFlags          cullMode;
    VkFrontFace              frontFace;
    VkBool32                 depthBiasEnable;
    float                    depthBiasConstantFactor;
    float                    depthBiasClamp;
    float                    depthBiasSlopeFactor;
    float                    lineWidth;
} VkPipelineRasterizationStateCreateInfo;

typedef struct VkPipelineMultisampleStateCreateInfo {
    VkStructureType   sType;
    const  void *             pNext;
    VkPipelineMultisampleStateCreateFlags      flags;
    VkSampleCountFlagBits    rasterizationSamples;
    VkBool32                 sampleShadingEnable;
    float                    minSampleShading;
    const  VkSampleMask *     pSampleMask;
    VkBool32                 alphaToCoverageEnable;
    VkBool32                 alphaToOneEnable;
} VkPipelineMultisampleStateCreateInfo;

typedef struct VkPipelineColorBlendAttachmentState {
    VkBool32                 blendEnable;
    VkBlendFactor            srcColorBlendFactor;
    VkBlendFactor            dstColorBlendFactor;
    VkBlendOp                colorBlendOp;
    VkBlendFactor            srcAlphaBlendFactor;
    VkBlendFactor            dstAlphaBlendFactor;
    VkBlendOp                alphaBlendOp;
    VkColorComponentFlags    colorWriteMask;
} VkPipelineColorBlendAttachmentState;

typedef struct VkPipelineColorBlendStateCreateInfo {
    VkStructureType   sType;
    const  void *             pNext;
    VkPipelineColorBlendStateCreateFlags      flags;
    VkBool32                 logicOpEnable;
    VkLogicOp                logicOp;
    uint32_t                 attachmentCount;
    const  VkPipelineColorBlendAttachmentState *  pAttachments;
    float                    blendConstants [4];
} VkPipelineColorBlendStateCreateInfo;

typedef struct VkPipelineDynamicStateCreateInfo {
    VkStructureType   sType;
    const  void *             pNext;
    VkPipelineDynamicStateCreateFlags      flags;
    uint32_t                 dynamicStateCount;
    const  VkDynamicState *   pDynamicStates;
} VkPipelineDynamicStateCreateInfo;

typedef struct VkPipelineDepthStencilStateCreateInfo {
    VkStructureType   sType;
    const  void *             pNext;
    VkPipelineDepthStencilStateCreateFlags      flags;
    VkBool32                 depthTestEnable;
    VkBool32                 depthWriteEnable;
    VkCompareOp              depthCompareOp;
    VkBool32                 depthBoundsTestEnable;
    VkBool32                 stencilTestEnable;
    VkStencilOpState         front;
    VkStencilOpState         back;
    float                    minDepthBounds;
    float                    maxDepthBounds;
} VkPipelineDepthStencilStateCreateInfo;

typedef struct VkGraphicsPipelineCreateInfo {
    VkStructureType   sType;
    const  void *             pNext;
    VkPipelineCreateFlags    flags;
    uint32_t                 stageCount;
    const  VkPipelineShaderStageCreateInfo *  pStages;
    const  VkPipelineVertexInputStateCreateInfo *  pVertexInputState;
    const  VkPipelineInputAssemblyStateCreateInfo *  pInputAssemblyState;
    const  VkPipelineTessellationStateCreateInfo *  pTessellationState;
    const  VkPipelineViewportStateCreateInfo *  pViewportState;
    const  VkPipelineRasterizationStateCreateInfo *  pRasterizationState;
    const  VkPipelineMultisampleStateCreateInfo *  pMultisampleState;
    const  VkPipelineDepthStencilStateCreateInfo *  pDepthStencilState;
    const  VkPipelineColorBlendStateCreateInfo *  pColorBlendState;
    const  VkPipelineDynamicStateCreateInfo *  pDynamicState;
    VkPipelineLayout         layout;
    VkRenderPass             renderPass;
    uint32_t                 subpass;
    VkPipeline        basePipelineHandle;
    int32_t                  basePipelineIndex;
} VkGraphicsPipelineCreateInfo;

typedef struct VkPipelineCacheCreateInfo {
    VkStructureType   sType;
    const  void *             pNext;
    VkPipelineCacheCreateFlags      flags;
    size_t                   initialDataSize;
    const  void *             pInitialData;
} VkPipelineCacheCreateInfo;

typedef struct VkPushConstantRange {
    VkShaderStageFlags       stageFlags;
    uint32_t                 offset;
    uint32_t                 size;
} VkPushConstantRange;

typedef struct VkPipelineLayoutCreateInfo {
    VkStructureType   sType;
    const  void *             pNext;
    VkPipelineLayoutCreateFlags      flags;
    uint32_t                 setLayoutCount;
    const  VkDescriptorSetLayout *  pSetLayouts;
    uint32_t                 pushConstantRangeCount;
    const  VkPushConstantRange *  pPushConstantRanges;
} VkPipelineLayoutCreateInfo;

typedef struct VkSamplerCreateInfo {
    VkStructureType   sType;
    const  void *             pNext;
    VkSamplerCreateFlags     flags;
    VkFilter                 magFilter;
    VkFilter                 minFilter;
    VkSamplerMipmapMode      mipmapMode;
    VkSamplerAddressMode     addressModeU;
    VkSamplerAddressMode     addressModeV;
    VkSamplerAddressMode     addressModeW;
    float                    mipLodBias;
    VkBool32                 anisotropyEnable;
    float                    maxAnisotropy;
    VkBool32                 compareEnable;
    VkCompareOp              compareOp;
    float                    minLod;
    float                    maxLod;
    VkBorderColor            borderColor;
    VkBool32                 unnormalizedCoordinates;
} VkSamplerCreateInfo;

typedef struct VkCommandPoolCreateInfo {
    VkStructureType   sType;
    const  void *             pNext;
    VkCommandPoolCreateFlags     flags;
    uint32_t                 queueFamilyIndex;
} VkCommandPoolCreateInfo;

typedef struct VkCommandBufferInheritanceInfo {
    VkStructureType   sType;
    const  void *             pNext;
    VkRenderPass      renderPass;
    uint32_t                 subpass;
    VkFramebuffer     framebuffer;
    VkBool32                 occlusionQueryEnable;
    VkQueryControlFlags      queryFlags;
    VkQueryPipelineStatisticFlags   pipelineStatistics;
} VkCommandBufferInheritanceInfo;

typedef struct VkCommandBufferBeginInfo {
    VkStructureType   sType;
    const  void *             pNext;
    VkCommandBufferUsageFlags    flags;
    const  VkCommandBufferInheritanceInfo *        pInheritanceInfo;
} VkCommandBufferBeginInfo;

typedef struct VkRenderPassBeginInfo {
    VkStructureType   sType;
    const  void *             pNext;
    VkRenderPass             renderPass;
    VkFramebuffer            framebuffer;
    VkRect2D                 renderArea;
    uint32_t                 clearValueCount;
    const  VkClearValue *     pClearValues;
} VkRenderPassBeginInfo;

typedef struct VkClearAttachment {
    VkImageAspectFlags       aspectMask;
    uint32_t                 colorAttachment;
    VkClearValue             clearValue;
} VkClearAttachment;

typedef struct VkAttachmentDescription {
    VkAttachmentDescriptionFlags   flags;
    VkFormat                 format;
    VkSampleCountFlagBits    samples;
    VkAttachmentLoadOp       loadOp;
    VkAttachmentStoreOp      storeOp;
    VkAttachmentLoadOp       stencilLoadOp;
    VkAttachmentStoreOp      stencilStoreOp;
    VkImageLayout            initialLayout;
    VkImageLayout            finalLayout;
} VkAttachmentDescription;

typedef struct VkSubpassDescription {
    VkSubpassDescriptionFlags   flags;
    VkPipelineBindPoint      pipelineBindPoint;
    uint32_t                 inputAttachmentCount;
    const  VkAttachmentReference *  pInputAttachments;
    uint32_t                 colorAttachmentCount;
    const  VkAttachmentReference *  pColorAttachments;
    const  VkAttachmentReference *  pResolveAttachments;
    const  VkAttachmentReference *  pDepthStencilAttachment;
    uint32_t                 preserveAttachmentCount;
    const  uint32_t *  pPreserveAttachments;
} VkSubpassDescription;

typedef struct VkSubpassDependency {
    uint32_t                 srcSubpass;
    uint32_t                 dstSubpass;
    VkPipelineStageFlags     srcStageMask;
    VkPipelineStageFlags     dstStageMask;
    VkAccessFlags            srcAccessMask;
    VkAccessFlags            dstAccessMask;
    VkDependencyFlags        dependencyFlags;
} VkSubpassDependency;

typedef struct VkRenderPassCreateInfo {
    VkStructureType   sType;
    const  void *             pNext;
    VkRenderPassCreateFlags   flags;
    uint32_t     attachmentCount;
    const  VkAttachmentDescription *  pAttachments;
    uint32_t                 subpassCount;
    const  VkSubpassDescription *  pSubpasses;
    uint32_t         dependencyCount;
    const  VkSubpassDependency *  pDependencies;
} VkRenderPassCreateInfo;

typedef struct VkEventCreateInfo {
    VkStructureType   sType;
    const  void *             pNext;
    VkEventCreateFlags       flags;
} VkEventCreateInfo;

typedef struct VkFenceCreateInfo {
    VkStructureType   sType;
    const  void *             pNext;
    VkFenceCreateFlags       flags;
} VkFenceCreateInfo;

typedef struct VkPhysicalDeviceFeatures {
    VkBool32                 robustBufferAccess;
    VkBool32                 fullDrawIndexUint32;
    VkBool32                 imageCubeArray;
    VkBool32                 independentBlend;
    VkBool32                 geometryShader;
    VkBool32                 tessellationShader;
    VkBool32                 sampleRateShading;
    VkBool32                 dualSrcBlend;
    VkBool32                 logicOp;
    VkBool32                 multiDrawIndirect;
    VkBool32                 drawIndirectFirstInstance;
    VkBool32                 depthClamp;
    VkBool32                 depthBiasClamp;
    VkBool32                 fillModeNonSolid;
    VkBool32                 depthBounds;
    VkBool32                 wideLines;
    VkBool32                 largePoints;
    VkBool32                 alphaToOne;
    VkBool32                 multiViewport;
    VkBool32                 samplerAnisotropy;
    VkBool32                 textureCompressionETC2;
    VkBool32                 textureCompressionASTC_LDR;
    VkBool32                 textureCompressionBC;
    VkBool32                 occlusionQueryPrecise;
    VkBool32                 pipelineStatisticsQuery;
    VkBool32                 vertexPipelineStoresAndAtomics;
    VkBool32                 fragmentStoresAndAtomics;
    VkBool32                 shaderTessellationAndGeometryPointSize;
    VkBool32                 shaderImageGatherExtended;
    VkBool32                 shaderStorageImageExtendedFormats;
    VkBool32                 shaderStorageImageMultisample;
    VkBool32                 shaderStorageImageReadWithoutFormat;
    VkBool32                 shaderStorageImageWriteWithoutFormat;
    VkBool32                 shaderUniformBufferArrayDynamicIndexing;
    VkBool32                 shaderSampledImageArrayDynamicIndexing;
    VkBool32                 shaderStorageBufferArrayDynamicIndexing;
    VkBool32                 shaderStorageImageArrayDynamicIndexing;
    VkBool32                 shaderClipDistance;
    VkBool32                 shaderCullDistance;
    VkBool32                 shaderFloat64;
    VkBool32                 shaderInt64;
    VkBool32                 shaderInt16;
    VkBool32                 shaderResourceResidency;
    VkBool32                 shaderResourceMinLod;
    VkBool32                 sparseBinding;
    VkBool32                 sparseResidencyBuffer;
    VkBool32                 sparseResidencyImage2D;
    VkBool32                 sparseResidencyImage3D;
    VkBool32                 sparseResidency2Samples;
    VkBool32                 sparseResidency4Samples;
    VkBool32                 sparseResidency8Samples;
    VkBool32                 sparseResidency16Samples;
    VkBool32                 sparseResidencyAliased;
    VkBool32                 variableMultisampleRate;
    VkBool32                 inheritedQueries;
} VkPhysicalDeviceFeatures;

typedef struct VkPhysicalDeviceSparseProperties {
    VkBool32                 residencyStandard2DBlockShape;
    VkBool32                 residencyStandard2DMultisampleBlockShape;
    VkBool32                 residencyStandard3DBlockShape;
    VkBool32                 residencyAlignedMipSize;
    VkBool32                 residencyNonResidentStrict;
} VkPhysicalDeviceSparseProperties;

typedef struct VkPhysicalDeviceLimits {
    uint32_t                 maxImageDimension1D;
    uint32_t                 maxImageDimension2D;
    uint32_t                 maxImageDimension3D;
    uint32_t                 maxImageDimensionCube;
    uint32_t                 maxImageArrayLayers;
    uint32_t                 maxTexelBufferElements;
    uint32_t                 maxUniformBufferRange;
    uint32_t                 maxStorageBufferRange;
    uint32_t                 maxPushConstantsSize;
    uint32_t                 maxMemoryAllocationCount;
    uint32_t                 maxSamplerAllocationCount;
    VkDeviceSize             bufferImageGranularity;
    VkDeviceSize             sparseAddressSpaceSize;
    uint32_t                 maxBoundDescriptorSets;
    uint32_t                 maxPerStageDescriptorSamplers;
    uint32_t                 maxPerStageDescriptorUniformBuffers;
    uint32_t                 maxPerStageDescriptorStorageBuffers;
    uint32_t                 maxPerStageDescriptorSampledImages;
    uint32_t                 maxPerStageDescriptorStorageImages;
    uint32_t                 maxPerStageDescriptorInputAttachments;
    uint32_t                 maxPerStageResources;
    uint32_t                 maxDescriptorSetSamplers;
    uint32_t                 maxDescriptorSetUniformBuffers;
    uint32_t                 maxDescriptorSetUniformBuffersDynamic;
    uint32_t                 maxDescriptorSetStorageBuffers;
    uint32_t                 maxDescriptorSetStorageBuffersDynamic;
    uint32_t                 maxDescriptorSetSampledImages;
    uint32_t                 maxDescriptorSetStorageImages;
    uint32_t                 maxDescriptorSetInputAttachments;
    uint32_t                 maxVertexInputAttributes;
    uint32_t                 maxVertexInputBindings;
    uint32_t                 maxVertexInputAttributeOffset;
    uint32_t                 maxVertexInputBindingStride;
    uint32_t                 maxVertexOutputComponents;
    uint32_t                 maxTessellationGenerationLevel;
    uint32_t                 maxTessellationPatchSize;
    uint32_t                 maxTessellationControlPerVertexInputComponents;
    uint32_t                 maxTessellationControlPerVertexOutputComponents;
    uint32_t                 maxTessellationControlPerPatchOutputComponents;
    uint32_t                 maxTessellationControlTotalOutputComponents;
    uint32_t                 maxTessellationEvaluationInputComponents;
    uint32_t                 maxTessellationEvaluationOutputComponents;
    uint32_t                 maxGeometryShaderInvocations;
    uint32_t                 maxGeometryInputComponents;
    uint32_t                 maxGeometryOutputComponents;
    uint32_t                 maxGeometryOutputVertices;
    uint32_t                 maxGeometryTotalOutputComponents;
    uint32_t                 maxFragmentInputComponents;
    uint32_t                 maxFragmentOutputAttachments;
    uint32_t                 maxFragmentDualSrcAttachments;
    uint32_t                 maxFragmentCombinedOutputResources;
    uint32_t                 maxComputeSharedMemorySize;
    uint32_t                 maxComputeWorkGroupCount [3];
    uint32_t                 maxComputeWorkGroupInvocations;
    uint32_t                 maxComputeWorkGroupSize [3];
    uint32_t                 subPixelPrecisionBits;
    uint32_t                 subTexelPrecisionBits;
    uint32_t                 mipmapPrecisionBits;
    uint32_t                 maxDrawIndexedIndexValue;
    uint32_t                 maxDrawIndirectCount;
    float                    maxSamplerLodBias;
    float                    maxSamplerAnisotropy;
    uint32_t                 maxViewports;
    uint32_t                 maxViewportDimensions [2];
    float                    viewportBoundsRange [2];
    uint32_t                 viewportSubPixelBits;
    size_t                   minMemoryMapAlignment;
    VkDeviceSize             minTexelBufferOffsetAlignment;
    VkDeviceSize             minUniformBufferOffsetAlignment;
    VkDeviceSize             minStorageBufferOffsetAlignment;
    int32_t                  minTexelOffset;
    uint32_t                 maxTexelOffset;
    int32_t                  minTexelGatherOffset;
    uint32_t                 maxTexelGatherOffset;
    float                    minInterpolationOffset;
    float                    maxInterpolationOffset;
    uint32_t                 subPixelInterpolationOffsetBits;
    uint32_t                 maxFramebufferWidth;
    uint32_t                 maxFramebufferHeight;
    uint32_t                 maxFramebufferLayers;
    VkSampleCountFlags       framebufferColorSampleCounts;
    VkSampleCountFlags       framebufferDepthSampleCounts;
    VkSampleCountFlags       framebufferStencilSampleCounts;
    VkSampleCountFlags       framebufferNoAttachmentsSampleCounts;
    uint32_t                 maxColorAttachments;
    VkSampleCountFlags       sampledImageColorSampleCounts;
    VkSampleCountFlags       sampledImageIntegerSampleCounts;
    VkSampleCountFlags       sampledImageDepthSampleCounts;
    VkSampleCountFlags       sampledImageStencilSampleCounts;
    VkSampleCountFlags       storageImageSampleCounts;
    uint32_t                 maxSampleMaskWords;
    VkBool32                 timestampComputeAndGraphics;
    float                    timestampPeriod;
    uint32_t                 maxClipDistances;
    uint32_t                 maxCullDistances;
    uint32_t                 maxCombinedClipAndCullDistances;
    uint32_t                 discreteQueuePriorities;
    float                    pointSizeRange [2];
    float                    lineWidthRange [2];
    float                    pointSizeGranularity;
    float                    lineWidthGranularity;
    VkBool32                 strictLines;
    VkBool32                 standardSampleLocations;
    VkDeviceSize             optimalBufferCopyOffsetAlignment;
    VkDeviceSize             optimalBufferCopyRowPitchAlignment;
    VkDeviceSize             nonCoherentAtomSize;
} VkPhysicalDeviceLimits;

typedef struct VkSemaphoreCreateInfo {
    VkStructureType   sType;
    const  void *             pNext;
    VkSemaphoreCreateFlags   flags;
} VkSemaphoreCreateInfo;

typedef struct VkQueryPoolCreateInfo {
    VkStructureType   sType;
    const  void *             pNext;
    VkQueryPoolCreateFlags   flags;
    VkQueryType              queryType;
    uint32_t                 queryCount;
    VkQueryPipelineStatisticFlags   pipelineStatistics;
} VkQueryPoolCreateInfo;

typedef struct VkFramebufferCreateInfo {
    VkStructureType   sType;
    const  void *             pNext;
    VkFramebufferCreateFlags      flags;
    VkRenderPass             renderPass;
    uint32_t                 attachmentCount;
    const  VkImageView *      pAttachments;
    uint32_t                 width;
    uint32_t                 height;
    uint32_t                 layers;
} VkFramebufferCreateInfo;

typedef struct VkSubmitInfo {
    VkStructureType   sType;
    const  void *  pNext;
    uint32_t         waitSemaphoreCount;
    const  VkSemaphore *      pWaitSemaphores;
    const  VkPipelineStageFlags *            pWaitDstStageMask;
    uint32_t         commandBufferCount;
    const  VkCommandBuffer *      pCommandBuffers;
    uint32_t         signalSemaphoreCount;
    const  VkSemaphore *      pSignalSemaphores;
} VkSubmitInfo;

typedef struct VkDisplayPropertiesKHR {
    VkDisplayKHR                       display;
    const  char *                       displayName;
    VkExtent2D                         physicalDimensions;
    VkExtent2D                         physicalResolution;
    VkSurfaceTransformFlagsKHR         supportedTransforms;
    VkBool32                           planeReorderPossible;
    VkBool32                           persistentContent;
} VkDisplayPropertiesKHR;

typedef struct VkDisplayModeCreateInfoKHR {
    VkStructureType   sType;
    const  void *                       pNext;
    VkDisplayModeCreateFlagsKHR        flags;
    VkDisplayModeParametersKHR         parameters;
} VkDisplayModeCreateInfoKHR;

typedef struct VkDisplayPlaneCapabilitiesKHR {
    VkDisplayPlaneAlphaFlagsKHR        supportedAlpha;
    VkOffset2D                         minSrcPosition;
    VkOffset2D                         maxSrcPosition;
    VkExtent2D                         minSrcExtent;
    VkExtent2D                         maxSrcExtent;
    VkOffset2D                         minDstPosition;
    VkOffset2D                         maxDstPosition;
    VkExtent2D                         minDstExtent;
    VkExtent2D                         maxDstExtent;
} VkDisplayPlaneCapabilitiesKHR;

typedef struct VkDisplaySurfaceCreateInfoKHR {
    VkStructureType   sType;
    const  void *                       pNext;
    VkDisplaySurfaceCreateFlagsKHR     flags;
    VkDisplayModeKHR                   displayMode;
    uint32_t                           planeIndex;
    uint32_t                           planeStackIndex;
    VkSurfaceTransformFlagBitsKHR      transform;
    float                              globalAlpha;
    VkDisplayPlaneAlphaFlagBitsKHR     alphaMode;
    VkExtent2D                         imageExtent;
} VkDisplaySurfaceCreateInfoKHR;

typedef struct VkDisplayPresentInfoKHR {
    VkStructureType   sType;
    const  void *                       pNext;
    VkRect2D                           srcRect;
    VkRect2D                           dstRect;
    VkBool32                           persistent;
} VkDisplayPresentInfoKHR;

typedef struct VkSurfaceCapabilitiesKHR {
    uint32_t                           minImageCount;
    uint32_t                           maxImageCount;
    VkExtent2D                         currentExtent;
    VkExtent2D                         minImageExtent;
    VkExtent2D                         maxImageExtent;
    uint32_t                           maxImageArrayLayers;
    VkSurfaceTransformFlagsKHR         supportedTransforms;
    VkSurfaceTransformFlagBitsKHR      currentTransform;
    VkCompositeAlphaFlagsKHR           supportedCompositeAlpha;
    VkImageUsageFlags                  supportedUsageFlags;
} VkSurfaceCapabilitiesKHR;

#if defined(VK_USE_PLATFORM_ANDROID_KHR)
typedef struct VkAndroidSurfaceCreateInfoKHR {
    VkStructureType   sType;
    const  void *                                     pNext;
    VkAndroidSurfaceCreateFlagsKHR   flags;
    struct  ANativeWindow *     window;
} VkAndroidSurfaceCreateInfoKHR;
#endif

#if defined(VK_USE_PLATFORM_VI_NN)
typedef struct VkViSurfaceCreateInfoNN {
    VkStructureType   sType;
    const  void *                       pNext;
    VkViSurfaceCreateFlagsNN     flags;
    void *                             window;
} VkViSurfaceCreateInfoNN;
#endif

#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
typedef struct VkWaylandSurfaceCreateInfoKHR {
    VkStructureType   sType;
    const  void *                       pNext;
    VkWaylandSurfaceCreateFlagsKHR     flags;
    struct  wl_display *                display;
    struct  wl_surface *                surface;
} VkWaylandSurfaceCreateInfoKHR;
#endif

#if defined(VK_USE_PLATFORM_WIN32_KHR)
typedef struct VkWin32SurfaceCreateInfoKHR {
    VkStructureType   sType;
    const  void *                       pNext;
    VkWin32SurfaceCreateFlagsKHR     flags;
    HINSTANCE                          hinstance;
    HWND                               hwnd;
} VkWin32SurfaceCreateInfoKHR;
#endif

#if defined(VK_USE_PLATFORM_XLIB_KHR)
typedef struct VkXlibSurfaceCreateInfoKHR {
    VkStructureType   sType;
    const  void *                       pNext;
    VkXlibSurfaceCreateFlagsKHR     flags;
    Display *                          dpy;
    Window                             window;
} VkXlibSurfaceCreateInfoKHR;
#endif

#if defined(VK_USE_PLATFORM_XCB_KHR)
typedef struct VkXcbSurfaceCreateInfoKHR {
    VkStructureType   sType;
    const  void *                       pNext;
    VkXcbSurfaceCreateFlagsKHR     flags;
    xcb_connection_t *                 connection;
    xcb_window_t                       window;
} VkXcbSurfaceCreateInfoKHR;
#endif

#if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
typedef struct VkDirectFBSurfaceCreateInfoEXT {
    VkStructureType   sType;
    const  void *                       pNext;
    VkDirectFBSurfaceCreateFlagsEXT     flags;
    IDirectFB *                        dfb;
    IDirectFBSurface *                 surface;
} VkDirectFBSurfaceCreateInfoEXT;
#endif

#if defined(VK_USE_PLATFORM_FUCHSIA)
typedef struct VkImagePipeSurfaceCreateInfoFUCHSIA {
    VkStructureType   sType;
    const  void *                       pNext;
    VkImagePipeSurfaceCreateFlagsFUCHSIA     flags;
    zx_handle_t                        imagePipeHandle;
} VkImagePipeSurfaceCreateInfoFUCHSIA;
#endif

#if defined(VK_USE_PLATFORM_GGP)
typedef struct VkStreamDescriptorSurfaceCreateInfoGGP {
    VkStructureType   sType;
    const  void *                       pNext;
    VkStreamDescriptorSurfaceCreateFlagsGGP   flags;
    GgpStreamDescriptor                streamDescriptor;
} VkStreamDescriptorSurfaceCreateInfoGGP;
#endif

typedef struct VkSwapchainCreateInfoKHR {
    VkStructureType   sType;
    const  void *                       pNext;
    VkSwapchainCreateFlagsKHR          flags;
    VkSurfaceKHR                       surface;
    uint32_t                           minImageCount;
    VkFormat                           imageFormat;
    VkColorSpaceKHR                    imageColorSpace;
    VkExtent2D                         imageExtent;
    uint32_t                           imageArrayLayers;
    VkImageUsageFlags                  imageUsage;
    VkSharingMode                      imageSharingMode;
    uint32_t           queueFamilyIndexCount;
    const  uint32_t *                   pQueueFamilyIndices;
    VkSurfaceTransformFlagBitsKHR      preTransform;
    VkCompositeAlphaFlagBitsKHR        compositeAlpha;
    VkPresentModeKHR                   presentMode;
    VkBool32                           clipped;
    VkSwapchainKHR     oldSwapchain;
} VkSwapchainCreateInfoKHR;

typedef struct VkDebugReportCallbackCreateInfoEXT {
    VkStructureType   sType;
    const  void *                       pNext;
    VkDebugReportFlagsEXT              flags;
    PFN_vkDebugReportCallbackEXT       pfnCallback;
    void *             pUserData;
} VkDebugReportCallbackCreateInfoEXT;

typedef struct VkDedicatedAllocationImageCreateInfoNV {
    VkStructureType   sType;
    const  void *                       pNext;
    VkBool32                           dedicatedAllocation;
} VkDedicatedAllocationImageCreateInfoNV;

typedef struct VkDedicatedAllocationBufferCreateInfoNV {
    VkStructureType   sType;
    const  void *                       pNext;
    VkBool32                           dedicatedAllocation;
} VkDedicatedAllocationBufferCreateInfoNV;

typedef struct VkExternalImageFormatPropertiesNV {
    VkImageFormatProperties            imageFormatProperties;
    VkExternalMemoryFeatureFlagsNV     externalMemoryFeatures;
    VkExternalMemoryHandleTypeFlagsNV   exportFromImportedHandleTypes;
    VkExternalMemoryHandleTypeFlagsNV   compatibleHandleTypes;
} VkExternalImageFormatPropertiesNV;

typedef struct VkExternalMemoryImageCreateInfoNV {
    VkStructureType   sType;
    const  void *                       pNext;
    VkExternalMemoryHandleTypeFlagsNV   handleTypes;
} VkExternalMemoryImageCreateInfoNV;

typedef struct VkExportMemoryAllocateInfoNV {
    VkStructureType   sType;
    const  void *                       pNext;
    VkExternalMemoryHandleTypeFlagsNV   handleTypes;
} VkExportMemoryAllocateInfoNV;

#if defined(VK_USE_PLATFORM_WIN32_KHR)
typedef struct VkImportMemoryWin32HandleInfoNV {
    VkStructureType   sType;
    const  void *                       pNext;
    VkExternalMemoryHandleTypeFlagsNV   handleType;
    HANDLE                             handle;
} VkImportMemoryWin32HandleInfoNV;
#endif

typedef struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV {
    VkStructureType sType;
    void *     pNext;
    VkBool32                         deviceGeneratedCommands;
} VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV;

typedef struct VkPrivateDataSlotCreateInfoEXT {
    VkStructureType   sType;
    const  void *                             pNext;
    VkPrivateDataSlotCreateFlagsEXT          flags;
} VkPrivateDataSlotCreateInfoEXT;

typedef struct VkPhysicalDevicePrivateDataFeaturesEXT {
    VkStructureType   sType;
    void *                                   pNext;
    VkBool32                                 privateData;
} VkPhysicalDevicePrivateDataFeaturesEXT;

typedef struct VkGraphicsShaderGroupCreateInfoNV {
    VkStructureType   sType;
    const  void *                                                 pNext;
    uint32_t                                                     stageCount;
    const  VkPipelineShaderStageCreateInfo *     pStages;
    const  VkPipelineVertexInputStateCreateInfo *                 pVertexInputState;
    const  VkPipelineTessellationStateCreateInfo *                pTessellationState;
} VkGraphicsShaderGroupCreateInfoNV;

typedef struct VkGraphicsPipelineShaderGroupsCreateInfoNV {
    VkStructureType   sType;
    const  void *                                                 pNext;
    uint32_t                                                     groupCount;
    const  VkGraphicsShaderGroupCreateInfoNV *   pGroups;
    uint32_t                                     pipelineCount;
    const  VkPipeline *                       pPipelines;
} VkGraphicsPipelineShaderGroupsCreateInfoNV;

typedef struct VkBindIndexBufferIndirectCommandNV {
    VkDeviceAddress    bufferAddress;
    uint32_t           size;
    VkIndexType        indexType;
} VkBindIndexBufferIndirectCommandNV;

typedef struct VkBindVertexBufferIndirectCommandNV {
    VkDeviceAddress    bufferAddress;
    uint32_t           size;
    uint32_t           stride;
} VkBindVertexBufferIndirectCommandNV;

typedef struct VkIndirectCommandsStreamNV {
    VkBuffer        buffer;
    VkDeviceSize    offset;
} VkIndirectCommandsStreamNV;

typedef struct VkIndirectCommandsLayoutTokenNV {
    VkStructureType   sType;
    const  void *                     pNext;
    VkIndirectCommandsTokenTypeNV    tokenType;
    uint32_t                         stream;
    uint32_t                         offset;
    uint32_t                                  vertexBindingUnit;
    VkBool32                                  vertexDynamicStride;
    VkPipelineLayout          pushconstantPipelineLayout;
    VkShaderStageFlags        pushconstantShaderStageFlags;
    uint32_t                                  pushconstantOffset;
    uint32_t                                  pushconstantSize;
    VkIndirectStateFlagsNV    indirectStateFlags;
    uint32_t                  indexTypeCount;
    const  VkIndexType *  pIndexTypes;
    const  uint32_t *     pIndexTypeValues;
} VkIndirectCommandsLayoutTokenNV;

typedef struct VkIndirectCommandsLayoutCreateInfoNV {
    VkStructureType   sType;
    const  void *                              pNext;
    VkIndirectCommandsLayoutUsageFlagsNV      flags;
    VkPipelineBindPoint                       pipelineBindPoint;
    uint32_t                                  tokenCount;
    const  VkIndirectCommandsLayoutTokenNV *   pTokens;
    uint32_t                                  streamCount;
    const  uint32_t *        pStreamStrides;
} VkIndirectCommandsLayoutCreateInfoNV;

typedef struct VkGeneratedCommandsInfoNV {
    VkStructureType   sType;
    const  void *                         pNext;
    VkPipelineBindPoint                  pipelineBindPoint;
    VkPipeline                           pipeline;
    VkIndirectCommandsLayoutNV           indirectCommandsLayout;
    uint32_t                             streamCount;
    const  VkIndirectCommandsStreamNV *   pStreams;
    uint32_t                             sequencesCount;
    VkBuffer                             preprocessBuffer;
    VkDeviceSize                         preprocessOffset;
    VkDeviceSize                         preprocessSize;
    VkBuffer             sequencesCountBuffer;
    VkDeviceSize         sequencesCountOffset;
    VkBuffer             sequencesIndexBuffer;
    VkDeviceSize         sequencesIndexOffset;
} VkGeneratedCommandsInfoNV;

typedef struct VkPhysicalDeviceFeatures2 {
    VkStructureType   sType;
    void *                             pNext;
    VkPhysicalDeviceFeatures           features;
} VkPhysicalDeviceFeatures2;

typedef struct VkPhysicalDeviceFeatures2  VkPhysicalDeviceFeatures2KHR;

typedef struct VkFormatProperties2 {
    VkStructureType   sType;
    void *                             pNext;
    VkFormatProperties                 formatProperties;
} VkFormatProperties2;

typedef struct VkFormatProperties2  VkFormatProperties2KHR;

typedef struct VkImageFormatProperties2 {
    VkStructureType   sType;
    void *  pNext;
    VkImageFormatProperties            imageFormatProperties;
} VkImageFormatProperties2;

typedef struct VkImageFormatProperties2  VkImageFormatProperties2KHR;

typedef struct VkPhysicalDeviceImageFormatInfo2 {
    VkStructureType   sType;
    const  void *  pNext;
    VkFormat                           format;
    VkImageType                        type;
    VkImageTiling                      tiling;
    VkImageUsageFlags                  usage;
    VkImageCreateFlags   flags;
} VkPhysicalDeviceImageFormatInfo2;

typedef struct VkPhysicalDeviceImageFormatInfo2  VkPhysicalDeviceImageFormatInfo2KHR;

typedef struct VkQueueFamilyProperties2 {
    VkStructureType   sType;
    void *                             pNext;
    VkQueueFamilyProperties            queueFamilyProperties;
} VkQueueFamilyProperties2;

typedef struct VkQueueFamilyProperties2  VkQueueFamilyProperties2KHR;

typedef struct VkSparseImageFormatProperties2 {
    VkStructureType   sType;
    void *                             pNext;
    VkSparseImageFormatProperties      properties;
} VkSparseImageFormatProperties2;

typedef struct VkSparseImageFormatProperties2  VkSparseImageFormatProperties2KHR;

typedef struct VkPhysicalDeviceSparseImageFormatInfo2 {
    VkStructureType   sType;
    const  void *                       pNext;
    VkFormat                           format;
    VkImageType                        type;
    VkSampleCountFlagBits              samples;
    VkImageUsageFlags                  usage;
    VkImageTiling                      tiling;
} VkPhysicalDeviceSparseImageFormatInfo2;

typedef struct VkPhysicalDeviceSparseImageFormatInfo2  VkPhysicalDeviceSparseImageFormatInfo2KHR;

typedef struct VkPresentRegionKHR {
    uint32_t           rectangleCount;
    const  VkRectLayerKHR *    pRectangles;
} VkPresentRegionKHR;

typedef struct VkPhysicalDeviceVariablePointersFeatures {
    VkStructureType   sType;
    void *                             pNext;
    VkBool32                           variablePointersStorageBuffer;
    VkBool32                           variablePointers;
} VkPhysicalDeviceVariablePointersFeatures;

typedef struct VkPhysicalDeviceVariablePointersFeatures  VkPhysicalDeviceVariablePointersFeaturesKHR;

typedef struct VkPhysicalDeviceVariablePointersFeatures  VkPhysicalDeviceVariablePointerFeaturesKHR;

typedef struct VkPhysicalDeviceVariablePointersFeatures  VkPhysicalDeviceVariablePointerFeatures;

typedef struct VkExternalMemoryProperties {
    VkExternalMemoryFeatureFlags    externalMemoryFeatures;
    VkExternalMemoryHandleTypeFlags   exportFromImportedHandleTypes;
    VkExternalMemoryHandleTypeFlags   compatibleHandleTypes;
} VkExternalMemoryProperties;

typedef struct VkExternalMemoryProperties  VkExternalMemoryPropertiesKHR;

typedef struct VkExternalImageFormatProperties {
    VkStructureType   sType;
    void *                             pNext;
    VkExternalMemoryProperties   externalMemoryProperties;
} VkExternalImageFormatProperties;

typedef struct VkExternalImageFormatProperties  VkExternalImageFormatPropertiesKHR;

typedef struct VkPhysicalDeviceExternalBufferInfo {
    VkStructureType   sType;
    const  void *                       pNext;
    VkBufferCreateFlags   flags;
    VkBufferUsageFlags                 usage;
    VkExternalMemoryHandleTypeFlagBits   handleType;
} VkPhysicalDeviceExternalBufferInfo;

typedef struct VkPhysicalDeviceExternalBufferInfo  VkPhysicalDeviceExternalBufferInfoKHR;

typedef struct VkExternalBufferProperties {
    VkStructureType   sType;
    void *                             pNext;
    VkExternalMemoryProperties      externalMemoryProperties;
} VkExternalBufferProperties;

typedef struct VkExternalBufferProperties  VkExternalBufferPropertiesKHR;

typedef struct VkPhysicalDeviceIDProperties {
    VkStructureType   sType;
    void *                             pNext;
    uint8_t                            deviceUUID [ VK_UUID_SIZE ];
    uint8_t                            driverUUID [ VK_UUID_SIZE ];
    uint8_t                            deviceLUID [ VK_LUID_SIZE ];
    uint32_t                           deviceNodeMask;
    VkBool32                           deviceLUIDValid;
} VkPhysicalDeviceIDProperties;

typedef struct VkPhysicalDeviceIDProperties  VkPhysicalDeviceIDPropertiesKHR;

typedef struct VkExternalMemoryImageCreateInfo {
    VkStructureType   sType;
    const  void *                       pNext;
    VkExternalMemoryHandleTypeFlags   handleTypes;
} VkExternalMemoryImageCreateInfo;

typedef struct VkExternalMemoryImageCreateInfo  VkExternalMemoryImageCreateInfoKHR;

typedef struct VkExternalMemoryBufferCreateInfo {
    VkStructureType   sType;
    const  void *                       pNext;
    VkExternalMemoryHandleTypeFlags   handleTypes;
} VkExternalMemoryBufferCreateInfo;

typedef struct VkExternalMemoryBufferCreateInfo  VkExternalMemoryBufferCreateInfoKHR;

typedef struct VkExportMemoryAllocateInfo {
    VkStructureType   sType;
    const  void *                       pNext;
    VkExternalMemoryHandleTypeFlags   handleTypes;
} VkExportMemoryAllocateInfo;

typedef struct VkExportMemoryAllocateInfo  VkExportMemoryAllocateInfoKHR;

typedef struct VkExternalSemaphoreProperties {
    VkStructureType   sType;
    void *                             pNext;
    VkExternalSemaphoreHandleTypeFlags   exportFromImportedHandleTypes;
    VkExternalSemaphoreHandleTypeFlags   compatibleHandleTypes;
    VkExternalSemaphoreFeatureFlags   externalSemaphoreFeatures;
} VkExternalSemaphoreProperties;

typedef struct VkExternalSemaphoreProperties  VkExternalSemaphorePropertiesKHR;

typedef struct VkExportSemaphoreCreateInfo {
    VkStructureType   sType;
    const  void *                       pNext;
    VkExternalSemaphoreHandleTypeFlags   handleTypes;
} VkExportSemaphoreCreateInfo;

typedef struct VkExportSemaphoreCreateInfo  VkExportSemaphoreCreateInfoKHR;

#if defined(VK_USE_PLATFORM_WIN32_KHR)
typedef struct VkImportSemaphoreWin32HandleInfoKHR {
    VkStructureType   sType;
    const  void *                       pNext;
    VkSemaphore      semaphore;
    VkSemaphoreImportFlags   flags;
    VkExternalSemaphoreHandleTypeFlagBits   handleType;
    HANDLE             handle;
    LPCWSTR            name;
} VkImportSemaphoreWin32HandleInfoKHR;
#endif

typedef struct VkImportSemaphoreFdInfoKHR {
    VkStructureType   sType;
    const  void *                       pNext;
    VkSemaphore      semaphore;
    VkSemaphoreImportFlags   flags;
    VkExternalSemaphoreHandleTypeFlagBits   handleType;
    int                                fd;
} VkImportSemaphoreFdInfoKHR;

typedef struct VkExternalFenceProperties {
    VkStructureType   sType;
    void *                             pNext;
    VkExternalFenceHandleTypeFlags   exportFromImportedHandleTypes;
    VkExternalFenceHandleTypeFlags   compatibleHandleTypes;
    VkExternalFenceFeatureFlags   externalFenceFeatures;
} VkExternalFenceProperties;

typedef struct VkExternalFenceProperties  VkExternalFencePropertiesKHR;

typedef struct VkExportFenceCreateInfo {
    VkStructureType   sType;
    const  void *                       pNext;
    VkExternalFenceHandleTypeFlags   handleTypes;
} VkExportFenceCreateInfo;

typedef struct VkExportFenceCreateInfo  VkExportFenceCreateInfoKHR;

#if defined(VK_USE_PLATFORM_WIN32_KHR)
typedef struct VkImportFenceWin32HandleInfoKHR {
    VkStructureType   sType;
    const  void *                                         pNext;
    VkFence                            fence;
    VkFenceImportFlags                flags;
    VkExternalFenceHandleTypeFlagBits    handleType;
    HANDLE                               handle;
    LPCWSTR                              name;
} VkImportFenceWin32HandleInfoKHR;
#endif

typedef struct VkImportFenceFdInfoKHR {
    VkStructureType   sType;
    const  void *                             pNext;
    VkFence                fence;
    VkFenceImportFlags    flags;
    VkExternalFenceHandleTypeFlagBits     handleType;
    int                                      fd;
} VkImportFenceFdInfoKHR;

typedef struct VkPhysicalDeviceMultiviewFeatures {
    VkStructureType   sType;
    void *                             pNext;
    VkBool32                           multiview;
    VkBool32                           multiviewGeometryShader;
    VkBool32                           multiviewTessellationShader;
} VkPhysicalDeviceMultiviewFeatures;

typedef struct VkPhysicalDeviceMultiviewFeatures  VkPhysicalDeviceMultiviewFeaturesKHR;

typedef struct VkSurfaceCapabilities2EXT {
    VkStructureType   sType;
    void *                             pNext;
    uint32_t                           minImageCount;
    uint32_t                           maxImageCount;
    VkExtent2D                         currentExtent;
    VkExtent2D                         minImageExtent;
    VkExtent2D                         maxImageExtent;
    uint32_t                           maxImageArrayLayers;
    VkSurfaceTransformFlagsKHR         supportedTransforms;
    VkSurfaceTransformFlagBitsKHR      currentTransform;
    VkCompositeAlphaFlagsKHR           supportedCompositeAlpha;
    VkImageUsageFlags                  supportedUsageFlags;
    VkSurfaceCounterFlagsEXT   supportedSurfaceCounters;
} VkSurfaceCapabilities2EXT;

typedef struct VkSwapchainCounterCreateInfoEXT {
    VkStructureType   sType;
    const  void *                       pNext;
    VkSurfaceCounterFlagsEXT           surfaceCounters;
} VkSwapchainCounterCreateInfoEXT;

typedef struct VkPhysicalDeviceGroupProperties {
    VkStructureType   sType;
    void *                             pNext;
    uint32_t                           physicalDeviceCount;
    VkPhysicalDevice                   physicalDevices [ VK_MAX_DEVICE_GROUP_SIZE ];
    VkBool32                           subsetAllocation;
} VkPhysicalDeviceGroupProperties;

typedef struct VkPhysicalDeviceGroupProperties  VkPhysicalDeviceGroupPropertiesKHR;

typedef struct VkMemoryAllocateFlagsInfo {
    VkStructureType   sType;
    const  void *                       pNext;
    VkMemoryAllocateFlags   flags;
    uint32_t                           deviceMask;
} VkMemoryAllocateFlagsInfo;

typedef struct VkMemoryAllocateFlagsInfo  VkMemoryAllocateFlagsInfoKHR;

typedef struct VkBindBufferMemoryInfo {
    VkStructureType   sType;
    const  void *                       pNext;
    VkBuffer                           buffer;
    VkDeviceMemory                     memory;
    VkDeviceSize                       memoryOffset;
} VkBindBufferMemoryInfo;

typedef struct VkBindBufferMemoryInfo  VkBindBufferMemoryInfoKHR;

typedef struct VkBindImageMemoryInfo {
    VkStructureType   sType;
    const  void *                       pNext;
    VkImage                            image;
    VkDeviceMemory                     memory;
    VkDeviceSize                       memoryOffset;
} VkBindImageMemoryInfo;

typedef struct VkBindImageMemoryInfo  VkBindImageMemoryInfoKHR;

typedef struct VkDeviceGroupPresentCapabilitiesKHR {
    VkStructureType   sType;
    const  void *                       pNext;
    uint32_t                           presentMask [ VK_MAX_DEVICE_GROUP_SIZE ];
    VkDeviceGroupPresentModeFlagsKHR   modes;
} VkDeviceGroupPresentCapabilitiesKHR;

typedef struct VkDeviceGroupSwapchainCreateInfoKHR {
    VkStructureType   sType;
    const  void *                       pNext;
    VkDeviceGroupPresentModeFlagsKHR                           modes;
} VkDeviceGroupSwapchainCreateInfoKHR;

typedef struct VkDescriptorUpdateTemplateCreateInfo {
    VkStructureType   sType;
    const  void *                                pNext;
    VkDescriptorUpdateTemplateCreateFlags      flags;
    uint32_t                   descriptorUpdateEntryCount;
    const  VkDescriptorUpdateTemplateEntry *  pDescriptorUpdateEntries;
    VkDescriptorUpdateTemplateType   templateType;
    VkDescriptorSetLayout   descriptorSetLayout;
    VkPipelineBindPoint   pipelineBindPoint;
    VkPipelineLayout pipelineLayout;
    uint32_t   set;
} VkDescriptorUpdateTemplateCreateInfo;

typedef struct VkDescriptorUpdateTemplateCreateInfo  VkDescriptorUpdateTemplateCreateInfoKHR;

typedef struct VkDisplayNativeHdrSurfaceCapabilitiesAMD {
    VkStructureType   sType;
    void *           pNext;
    VkBool32         localDimmingSupport;
} VkDisplayNativeHdrSurfaceCapabilitiesAMD;

typedef struct VkSwapchainDisplayNativeHdrCreateInfoAMD {
    VkStructureType   sType;
    const  void *     pNext;
    VkBool32         localDimmingEnable;
} VkSwapchainDisplayNativeHdrCreateInfoAMD;

typedef struct VkPresentTimesInfoGOOGLE {
    VkStructureType   sType;
    const  void *                       pNext;
    uint32_t                           swapchainCount;
    const  VkPresentTimeGOOGLE *    pTimes;
} VkPresentTimesInfoGOOGLE;

#if defined(VK_USE_PLATFORM_IOS_MVK)
typedef struct VkIOSSurfaceCreateInfoMVK {
    VkStructureType   sType;
    const  void *                                     pNext;
    VkIOSSurfaceCreateFlagsMVK       flags;
    const  void *                                     pView;
} VkIOSSurfaceCreateInfoMVK;
#endif

#if defined(VK_USE_PLATFORM_MACOS_MVK)
typedef struct VkMacOSSurfaceCreateInfoMVK {
    VkStructureType   sType;
    const  void *                                     pNext;
    VkMacOSSurfaceCreateFlagsMVK     flags;
    const  void *                                     pView;
} VkMacOSSurfaceCreateInfoMVK;
#endif

#if defined(VK_USE_PLATFORM_METAL_EXT)
typedef struct VkMetalSurfaceCreateInfoEXT {
    VkStructureType   sType;
    const  void *                                     pNext;
    VkMetalSurfaceCreateFlagsEXT     flags;
    const  CAMetalLayer *       pLayer;
} VkMetalSurfaceCreateInfoEXT;
#endif

typedef struct VkPipelineViewportWScalingStateCreateInfoNV {
    VkStructureType   sType;
    const  void *                       pNext;
    VkBool32                 viewportWScalingEnable;
    uint32_t                 viewportCount;
    const  VkViewportWScalingNV *       pViewportWScalings;
} VkPipelineViewportWScalingStateCreateInfoNV;

typedef struct VkPipelineViewportSwizzleStateCreateInfoNV {
    VkStructureType   sType;
    const  void *             pNext;
    VkPipelineViewportSwizzleStateCreateFlagsNV      flags;
    uint32_t                 viewportCount;
    const  VkViewportSwizzleNV *       pViewportSwizzles;
} VkPipelineViewportSwizzleStateCreateInfoNV;

typedef struct VkPipelineDiscardRectangleStateCreateInfoEXT {
    VkStructureType   sType;
    const  void *                                                        pNext;
    VkPipelineDiscardRectangleStateCreateFlagsEXT       flags;
    VkDiscardRectangleModeEXT                                           discardRectangleMode;
    uint32_t                                            discardRectangleCount;
    const  VkRect2D *  pDiscardRectangles;
} VkPipelineDiscardRectangleStateCreateInfoEXT;

typedef struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
    VkStructureType   sType;
    void *                             pNext;
    VkBool32                           perViewPositionAllComponents;
} VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;

typedef struct VkInputAttachmentAspectReference {
    uint32_t                          subpass;
    uint32_t                          inputAttachmentIndex;
    VkImageAspectFlags                aspectMask;
} VkInputAttachmentAspectReference;

typedef struct VkInputAttachmentAspectReference  VkInputAttachmentAspectReferenceKHR;

typedef struct VkRenderPassInputAttachmentAspectCreateInfo {
    VkStructureType   sType;
    const  void *                      pNext;
    uint32_t                          aspectReferenceCount;
    const  VkInputAttachmentAspectReference *  pAspectReferences;
} VkRenderPassInputAttachmentAspectCreateInfo;

typedef struct VkRenderPassInputAttachmentAspectCreateInfo  VkRenderPassInputAttachmentAspectCreateInfoKHR;

typedef struct VkSurfaceCapabilities2KHR {
    VkStructureType   sType;
    void *    pNext;
    VkSurfaceCapabilitiesKHR   surfaceCapabilities;
} VkSurfaceCapabilities2KHR;

typedef struct VkDisplayProperties2KHR {
    VkStructureType   sType;
    void *  pNext;
    VkDisplayPropertiesKHR   displayProperties;
} VkDisplayProperties2KHR;

typedef struct VkDisplayPlaneCapabilities2KHR {
    VkStructureType   sType;
    void *  pNext;
    VkDisplayPlaneCapabilitiesKHR   capabilities;
} VkDisplayPlaneCapabilities2KHR;

typedef struct VkSharedPresentSurfaceCapabilitiesKHR {
    VkStructureType   sType;
    void *                             pNext;
    VkImageUsageFlags   sharedPresentSupportedUsageFlags;
} VkSharedPresentSurfaceCapabilitiesKHR;

typedef struct VkPhysicalDevice16BitStorageFeatures {
    VkStructureType   sType;
    void *       pNext;
    VkBool32                           storageBuffer16BitAccess;
    VkBool32                           uniformAndStorageBuffer16BitAccess;
    VkBool32                           storagePushConstant16;
    VkBool32                           storageInputOutput16;
} VkPhysicalDevice16BitStorageFeatures;

typedef struct VkPhysicalDevice16BitStorageFeatures  VkPhysicalDevice16BitStorageFeaturesKHR;

typedef struct VkPhysicalDeviceSubgroupProperties {
    VkStructureType   sType;
    void *                    pNext;
    uint32_t                        subgroupSize;
    VkShaderStageFlags              supportedStages;
    VkSubgroupFeatureFlags          supportedOperations;
    VkBool32   quadOperationsInAllStages;
} VkPhysicalDeviceSubgroupProperties;

typedef struct VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures {
    VkStructureType   sType;
    void *                           pNext;
    VkBool32   shaderSubgroupExtendedTypes;
} VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures;

typedef struct VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures  VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR;

typedef struct VkMemoryRequirements2 {
    VkStructureType   sType;
    void *  pNext;
    VkMemoryRequirements                                                   memoryRequirements;
} VkMemoryRequirements2;

typedef struct VkMemoryRequirements2  VkMemoryRequirements2KHR;

typedef struct VkSparseImageMemoryRequirements2 {
    VkStructureType   sType;
    void *                                        pNext;
    VkSparseImageMemoryRequirements                                        memoryRequirements;
} VkSparseImageMemoryRequirements2;

typedef struct VkSparseImageMemoryRequirements2  VkSparseImageMemoryRequirements2KHR;

typedef struct VkMemoryDedicatedRequirements {
    VkStructureType   sType;
    void *                             pNext;
    VkBool32                           prefersDedicatedAllocation;
    VkBool32                           requiresDedicatedAllocation;
} VkMemoryDedicatedRequirements;

typedef struct VkMemoryDedicatedRequirements  VkMemoryDedicatedRequirementsKHR;

typedef struct VkImageViewUsageCreateInfo {
    VkStructureType   sType;
    const  void *  pNext;
    VkImageUsageFlags   usage;
} VkImageViewUsageCreateInfo;

typedef struct VkImageViewUsageCreateInfo  VkImageViewUsageCreateInfoKHR;

typedef struct VkSamplerYcbcrConversionCreateInfo {
    VkStructureType   sType;
    const  void *                       pNext;
    VkFormat                           format;
    VkSamplerYcbcrModelConversion   ycbcrModel;
    VkSamplerYcbcrRange             ycbcrRange;
    VkComponentMapping                 components;
    VkChromaLocation                xChromaOffset;
    VkChromaLocation                yChromaOffset;
    VkFilter                           chromaFilter;
    VkBool32                           forceExplicitReconstruction;
} VkSamplerYcbcrConversionCreateInfo;

typedef struct VkSamplerYcbcrConversionCreateInfo  VkSamplerYcbcrConversionCreateInfoKHR;

typedef struct VkPhysicalDeviceSamplerYcbcrConversionFeatures {
    VkStructureType   sType;
    void *       pNext;
    VkBool32                           samplerYcbcrConversion;
} VkPhysicalDeviceSamplerYcbcrConversionFeatures;

typedef struct VkPhysicalDeviceSamplerYcbcrConversionFeatures  VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR;

typedef struct VkTextureLODGatherFormatPropertiesAMD {
    VkStructureType   sType;
    void *                             pNext;
    VkBool32                           supportsTextureGatherLODBiasAMD;
} VkTextureLODGatherFormatPropertiesAMD;

typedef struct VkConditionalRenderingBeginInfoEXT {
    VkStructureType   sType;
    const  void *                       pNext;
    VkBuffer                           buffer;
    VkDeviceSize                       offset;
    VkConditionalRenderingFlagsEXT      flags;
} VkConditionalRenderingBeginInfoEXT;

typedef struct VkProtectedSubmitInfo {
    VkStructureType   sType;
    const  void *                      pNext;
    VkBool32                          protectedSubmit;
} VkProtectedSubmitInfo;

typedef struct VkPhysicalDeviceProtectedMemoryFeatures {
    VkStructureType   sType;
    void *                                pNext;
    VkBool32                              protectedMemory;
} VkPhysicalDeviceProtectedMemoryFeatures;

typedef struct VkPhysicalDeviceProtectedMemoryProperties {
    VkStructureType   sType;
    void *                                pNext;
    VkBool32                              protectedNoFault;
} VkPhysicalDeviceProtectedMemoryProperties;

typedef struct VkDeviceQueueInfo2 {
    VkStructureType   sType;
    const  void *                          pNext;
    VkDeviceQueueCreateFlags              flags;
    uint32_t                              queueFamilyIndex;
    uint32_t                              queueIndex;
} VkDeviceQueueInfo2;

typedef struct VkPipelineCoverageToColorStateCreateInfoNV {
    VkStructureType   sType;
    const  void *                                                                       pNext;
    VkPipelineCoverageToColorStateCreateFlagsNV                      flags;
    VkBool32                           coverageToColorEnable;
    uint32_t           coverageToColorLocation;
} VkPipelineCoverageToColorStateCreateInfoNV;

typedef struct VkPhysicalDeviceSamplerFilterMinmaxProperties {
    VkStructureType   sType;
    void *                   pNext;
    VkBool32                 filterMinmaxSingleComponentFormats;
    VkBool32                 filterMinmaxImageComponentMapping;
} VkPhysicalDeviceSamplerFilterMinmaxProperties;

typedef struct VkPhysicalDeviceSamplerFilterMinmaxProperties  VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT;

typedef struct VkPipelineSampleLocationsStateCreateInfoEXT {
    VkStructureType   sType;
    const  void *                       pNext;
    VkBool32                           sampleLocationsEnable;
    VkSampleLocationsInfoEXT           sampleLocationsInfo;
} VkPipelineSampleLocationsStateCreateInfoEXT;

typedef struct VkPhysicalDeviceSampleLocationsPropertiesEXT {
    VkStructureType   sType;
    void *                             pNext;
    VkSampleCountFlags                 sampleLocationSampleCounts;
    VkExtent2D                         maxSampleLocationGridSize;
    float                              sampleLocationCoordinateRange [2];
    uint32_t                           sampleLocationSubPixelBits;
    VkBool32                           variableSampleLocations;
} VkPhysicalDeviceSampleLocationsPropertiesEXT;

typedef struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT {
    VkStructureType   sType;
    void *                             pNext;
    VkBool32                           advancedBlendCoherentOperations;
} VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT;

typedef struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT {
    VkStructureType   sType;
    void *                             pNext;
    uint32_t                           advancedBlendMaxColorAttachments;
    VkBool32                           advancedBlendIndependentBlend;
    VkBool32                           advancedBlendNonPremultipliedSrcColor;
    VkBool32                           advancedBlendNonPremultipliedDstColor;
    VkBool32                           advancedBlendCorrelatedOverlap;
    VkBool32                           advancedBlendAllOperations;
} VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT;

typedef struct VkPipelineColorBlendAdvancedStateCreateInfoEXT {
    VkStructureType   sType;
    const  void *             pNext;
    VkBool32                 srcPremultiplied;
    VkBool32                 dstPremultiplied;
    VkBlendOverlapEXT        blendOverlap;
} VkPipelineColorBlendAdvancedStateCreateInfoEXT;

typedef struct VkPhysicalDeviceInlineUniformBlockFeaturesEXT {
    VkStructureType   sType;
    void *                   pNext;
    VkBool32                 inlineUniformBlock;
    VkBool32                 descriptorBindingInlineUniformBlockUpdateAfterBind;
} VkPhysicalDeviceInlineUniformBlockFeaturesEXT;

typedef struct VkPipelineCoverageModulationStateCreateInfoNV {
    VkStructureType   sType;
    const  void *                                                                       pNext;
    VkPipelineCoverageModulationStateCreateFlagsNV                     flags;
    VkCoverageModulationModeNV                                                         coverageModulationMode;
    VkBool32                                                                           coverageModulationTableEnable;
    uint32_t                                                           coverageModulationTableCount;
    const  float *  pCoverageModulationTable;
} VkPipelineCoverageModulationStateCreateInfoNV;

typedef struct VkValidationCacheCreateInfoEXT {
    VkStructureType   sType;
    const  void *             pNext;
    VkValidationCacheCreateFlagsEXT      flags;
    size_t                   initialDataSize;
    const  void *             pInitialData;
} VkValidationCacheCreateInfoEXT;

typedef struct VkPhysicalDeviceMaintenance3Properties {
    VkStructureType   sType;
    void *                             pNext;
    uint32_t                           maxPerSetDescriptors;
    VkDeviceSize                       maxMemoryAllocationSize;
} VkPhysicalDeviceMaintenance3Properties;

typedef struct VkPhysicalDeviceMaintenance3Properties  VkPhysicalDeviceMaintenance3PropertiesKHR;

typedef struct VkDescriptorSetLayoutSupport {
    VkStructureType   sType;
    void *             pNext;
    VkBool32           supported;
} VkDescriptorSetLayoutSupport;

typedef struct VkDescriptorSetLayoutSupport  VkDescriptorSetLayoutSupportKHR;

typedef struct VkPhysicalDeviceShaderDrawParametersFeatures {
    VkStructureType   sType;
    void *                             pNext;
    VkBool32                           shaderDrawParameters;
} VkPhysicalDeviceShaderDrawParametersFeatures;

typedef struct VkPhysicalDeviceShaderDrawParametersFeatures  VkPhysicalDeviceShaderDrawParameterFeatures;

typedef struct VkPhysicalDeviceShaderFloat16Int8Features {
    VkStructureType   sType;
    void *       pNext;
    VkBool32                           shaderFloat16;
    VkBool32                           shaderInt8;
} VkPhysicalDeviceShaderFloat16Int8Features;

typedef struct VkPhysicalDeviceShaderFloat16Int8Features  VkPhysicalDeviceShaderFloat16Int8FeaturesKHR;

typedef struct VkPhysicalDeviceShaderFloat16Int8Features  VkPhysicalDeviceFloat16Int8FeaturesKHR;

typedef struct VkPhysicalDeviceFloatControlsProperties {
    VkStructureType   sType;
    void *                             pNext;
    VkShaderFloatControlsIndependence   denormBehaviorIndependence;
    VkShaderFloatControlsIndependence   roundingModeIndependence;
    VkBool32                           shaderSignedZeroInfNanPreserveFloat16;
    VkBool32                           shaderSignedZeroInfNanPreserveFloat32;
    VkBool32                           shaderSignedZeroInfNanPreserveFloat64;
    VkBool32                           shaderDenormPreserveFloat16;
    VkBool32                           shaderDenormPreserveFloat32;
    VkBool32                           shaderDenormPreserveFloat64;
    VkBool32                           shaderDenormFlushToZeroFloat16;
    VkBool32                           shaderDenormFlushToZeroFloat32;
    VkBool32                           shaderDenormFlushToZeroFloat64;
    VkBool32                           shaderRoundingModeRTEFloat16;
    VkBool32                           shaderRoundingModeRTEFloat32;
    VkBool32                           shaderRoundingModeRTEFloat64;
    VkBool32                           shaderRoundingModeRTZFloat16;
    VkBool32                           shaderRoundingModeRTZFloat32;
    VkBool32                           shaderRoundingModeRTZFloat64;
} VkPhysicalDeviceFloatControlsProperties;

typedef struct VkPhysicalDeviceFloatControlsProperties  VkPhysicalDeviceFloatControlsPropertiesKHR;

typedef struct VkPhysicalDeviceHostQueryResetFeatures {
    VkStructureType   sType;
    void *         pNext;
    VkBool32                             hostQueryReset;
} VkPhysicalDeviceHostQueryResetFeatures;

typedef struct VkPhysicalDeviceHostQueryResetFeatures  VkPhysicalDeviceHostQueryResetFeaturesEXT;

typedef struct VkShaderStatisticsInfoAMD {
    VkShaderStageFlags   shaderStageMask;
    VkShaderResourceUsageAMD   resourceUsage;
    uint32_t   numPhysicalVgprs;
    uint32_t   numPhysicalSgprs;
    uint32_t   numAvailableVgprs;
    uint32_t   numAvailableSgprs;
    uint32_t   computeWorkGroupSize [3];
} VkShaderStatisticsInfoAMD;

typedef struct VkDebugUtilsMessengerCallbackDataEXT {
    VkStructureType   sType;
    const  void *                                                         pNext;
    VkDebugUtilsMessengerCallbackDataFlagsEXT                            flags;
    const  char *                                   pMessageIdName;
    int32_t                                                              messageIdNumber;
    const  char *                                                   pMessage;
    uint32_t                                                             queueLabelCount;
    const  VkDebugUtilsLabelEXT *                   pQueueLabels;
    uint32_t                                                             cmdBufLabelCount;
    const  VkDebugUtilsLabelEXT *                  pCmdBufLabels;
    uint32_t                                                             objectCount;
    const  VkDebugUtilsObjectNameInfoEXT *              pObjects;
} VkDebugUtilsMessengerCallbackDataEXT;

typedef struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT {
    VkStructureType   sType;
    void *  pNext;
    VkDeviceSize   minImportedHostPointerAlignment;
} VkPhysicalDeviceExternalMemoryHostPropertiesEXT;

typedef struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT {
    VkStructureType   sType;
    void *                   pNext;
    float                    primitiveOverestimationSize;
    float                    maxExtraPrimitiveOverestimationSize;
    float                    extraPrimitiveOverestimationSizeGranularity;
    VkBool32                 primitiveUnderestimation;
    VkBool32                 conservativePointAndLineRasterization;
    VkBool32                 degenerateTrianglesRasterized;
    VkBool32                 degenerateLinesRasterized;
    VkBool32                 fullyCoveredFragmentShaderInputVariable;
    VkBool32                 conservativeRasterizationPostDepthCoverage;
} VkPhysicalDeviceConservativeRasterizationPropertiesEXT;

typedef struct VkPhysicalDeviceShaderCoreProperties2AMD {
    VkStructureType   sType;
    void *     pNext;
    VkShaderCorePropertiesFlagsAMD   shaderCoreFeatures;
    uint32_t   activeComputeUnitCount;
} VkPhysicalDeviceShaderCoreProperties2AMD;

typedef struct VkPipelineRasterizationConservativeStateCreateInfoEXT {
    VkStructureType   sType;
    const  void *                                                                       pNext;
    VkPipelineRasterizationConservativeStateCreateFlagsEXT             flags;
    VkConservativeRasterizationModeEXT                                                 conservativeRasterizationMode;
    float                                                                              extraPrimitiveOverestimationSize;
} VkPipelineRasterizationConservativeStateCreateInfoEXT;

typedef struct VkPhysicalDeviceDescriptorIndexingFeatures {
    VkStructureType   sType;
    void *                             pNext;
    VkBool32                 shaderInputAttachmentArrayDynamicIndexing;
    VkBool32                 shaderUniformTexelBufferArrayDynamicIndexing;
    VkBool32                 shaderStorageTexelBufferArrayDynamicIndexing;
    VkBool32                 shaderUniformBufferArrayNonUniformIndexing;
    VkBool32                 shaderSampledImageArrayNonUniformIndexing;
    VkBool32                 shaderStorageBufferArrayNonUniformIndexing;
    VkBool32                 shaderStorageImageArrayNonUniformIndexing;
    VkBool32                 shaderInputAttachmentArrayNonUniformIndexing;
    VkBool32                 shaderUniformTexelBufferArrayNonUniformIndexing;
    VkBool32                 shaderStorageTexelBufferArrayNonUniformIndexing;
    VkBool32                 descriptorBindingUniformBufferUpdateAfterBind;
    VkBool32                 descriptorBindingSampledImageUpdateAfterBind;
    VkBool32                 descriptorBindingStorageImageUpdateAfterBind;
    VkBool32                 descriptorBindingStorageBufferUpdateAfterBind;
    VkBool32                 descriptorBindingUniformTexelBufferUpdateAfterBind;
    VkBool32                 descriptorBindingStorageTexelBufferUpdateAfterBind;
    VkBool32                 descriptorBindingUpdateUnusedWhilePending;
    VkBool32                 descriptorBindingPartiallyBound;
    VkBool32                 descriptorBindingVariableDescriptorCount;
    VkBool32                 runtimeDescriptorArray;
} VkPhysicalDeviceDescriptorIndexingFeatures;

typedef struct VkPhysicalDeviceDescriptorIndexingFeatures  VkPhysicalDeviceDescriptorIndexingFeaturesEXT;

typedef struct VkPhysicalDeviceDescriptorIndexingProperties {
    VkStructureType   sType;
    void *                             pNext;
    uint32_t                 maxUpdateAfterBindDescriptorsInAllPools;
    VkBool32                 shaderUniformBufferArrayNonUniformIndexingNative;
    VkBool32                 shaderSampledImageArrayNonUniformIndexingNative;
    VkBool32                 shaderStorageBufferArrayNonUniformIndexingNative;
    VkBool32                 shaderStorageImageArrayNonUniformIndexingNative;
    VkBool32                 shaderInputAttachmentArrayNonUniformIndexingNative;
    VkBool32                 robustBufferAccessUpdateAfterBind;
    VkBool32                 quadDivergentImplicitLod;
    uint32_t                 maxPerStageDescriptorUpdateAfterBindSamplers;
    uint32_t                 maxPerStageDescriptorUpdateAfterBindUniformBuffers;
    uint32_t                 maxPerStageDescriptorUpdateAfterBindStorageBuffers;
    uint32_t                 maxPerStageDescriptorUpdateAfterBindSampledImages;
    uint32_t                 maxPerStageDescriptorUpdateAfterBindStorageImages;
    uint32_t                 maxPerStageDescriptorUpdateAfterBindInputAttachments;
    uint32_t                 maxPerStageUpdateAfterBindResources;
    uint32_t                 maxDescriptorSetUpdateAfterBindSamplers;
    uint32_t                 maxDescriptorSetUpdateAfterBindUniformBuffers;
    uint32_t                 maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
    uint32_t                 maxDescriptorSetUpdateAfterBindStorageBuffers;
    uint32_t                 maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
    uint32_t                 maxDescriptorSetUpdateAfterBindSampledImages;
    uint32_t                 maxDescriptorSetUpdateAfterBindStorageImages;
    uint32_t                 maxDescriptorSetUpdateAfterBindInputAttachments;
} VkPhysicalDeviceDescriptorIndexingProperties;

typedef struct VkPhysicalDeviceDescriptorIndexingProperties  VkPhysicalDeviceDescriptorIndexingPropertiesEXT;

typedef struct VkDescriptorSetLayoutBindingFlagsCreateInfo {
    VkStructureType   sType;
    const  void *                                                         pNext;
    uint32_t                                             bindingCount;
    const  VkDescriptorBindingFlags *  pBindingFlags;
} VkDescriptorSetLayoutBindingFlagsCreateInfo;

typedef struct VkDescriptorSetLayoutBindingFlagsCreateInfo  VkDescriptorSetLayoutBindingFlagsCreateInfoEXT;

typedef struct VkAttachmentDescription2 {
    VkStructureType   sType;
    const  void *             pNext;
    VkAttachmentDescriptionFlags   flags;
    VkFormat                                       format;
    VkSampleCountFlagBits                          samples;
    VkAttachmentLoadOp                             loadOp;
    VkAttachmentStoreOp                            storeOp;
    VkAttachmentLoadOp                             stencilLoadOp;
    VkAttachmentStoreOp                            stencilStoreOp;
    VkImageLayout                                  initialLayout;
    VkImageLayout                                  finalLayout;
} VkAttachmentDescription2;

typedef struct VkAttachmentDescription2  VkAttachmentDescription2KHR;

typedef struct VkAttachmentReference2 {
    VkStructureType   sType;
    const  void *  pNext;
    uint32_t                            attachment;
    VkImageLayout                       layout;
    VkImageAspectFlags   aspectMask;
} VkAttachmentReference2;

typedef struct VkAttachmentReference2  VkAttachmentReference2KHR;

typedef struct VkSubpassDescription2 {
    VkStructureType   sType;
    const  void *                            pNext;
    VkSubpassDescriptionFlags                     flags;
    VkPipelineBindPoint                                           pipelineBindPoint;
    uint32_t                                                      viewMask;
    uint32_t                                      inputAttachmentCount;
    const  VkAttachmentReference2 *     pInputAttachments;
    uint32_t                                      colorAttachmentCount;
    const  VkAttachmentReference2 *     pColorAttachments;
    const  VkAttachmentReference2 *  pResolveAttachments;
    const  VkAttachmentReference2 *                pDepthStencilAttachment;
    uint32_t                                      preserveAttachmentCount;
    const  uint32_t *                pPreserveAttachments;
} VkSubpassDescription2;

typedef struct VkSubpassDescription2  VkSubpassDescription2KHR;

typedef struct VkSubpassDependency2 {
    VkStructureType   sType;
    const  void *  pNext;
    uint32_t                            srcSubpass;
    uint32_t                            dstSubpass;
    VkPipelineStageFlags                srcStageMask;
    VkPipelineStageFlags                dstStageMask;
    VkAccessFlags       srcAccessMask;
    VkAccessFlags       dstAccessMask;
    VkDependencyFlags   dependencyFlags;
    int32_t             viewOffset;
} VkSubpassDependency2;

typedef struct VkSubpassDependency2  VkSubpassDependency2KHR;

typedef struct VkRenderPassCreateInfo2 {
    VkStructureType   sType;
    const  void *                                               pNext;
    VkRenderPassCreateFlags                    flags;
    uint32_t                                   attachmentCount;
    const  VkAttachmentDescription2 *     pAttachments;
    uint32_t                                                   subpassCount;
    const  VkSubpassDescription2 *           pSubpasses;
    uint32_t                                   dependencyCount;
    const  VkSubpassDependency2 *         pDependencies;
    uint32_t                                   correlatedViewMaskCount;
    const  uint32_t *             pCorrelatedViewMasks;
} VkRenderPassCreateInfo2;

typedef struct VkRenderPassCreateInfo2  VkRenderPassCreateInfo2KHR;

typedef struct VkPhysicalDeviceTimelineSemaphoreFeatures {
    VkStructureType   sType;
    void *                   pNext;
    VkBool32                 timelineSemaphore;
} VkPhysicalDeviceTimelineSemaphoreFeatures;

typedef struct VkPhysicalDeviceTimelineSemaphoreFeatures  VkPhysicalDeviceTimelineSemaphoreFeaturesKHR;

typedef struct VkSemaphoreWaitInfo {
    VkStructureType   sType;
    const  void *             pNext;
    VkSemaphoreWaitFlags   flags;
    uint32_t                 semaphoreCount;
    const  VkSemaphore *  pSemaphores;
    const  uint64_t *     pValues;
} VkSemaphoreWaitInfo;

typedef struct VkSemaphoreWaitInfo  VkSemaphoreWaitInfoKHR;

#if defined(VK_USE_PLATFORM_ANDROID_KHR)
typedef struct VkAndroidHardwareBufferPropertiesANDROID {
    VkStructureType   sType;
    void *                               pNext;
    VkDeviceSize                         allocationSize;
    uint32_t                             memoryTypeBits;
} VkAndroidHardwareBufferPropertiesANDROID;
#endif

#if defined(VK_USE_PLATFORM_ANDROID_KHR)
typedef struct VkAndroidHardwareBufferFormatPropertiesANDROID {
    VkStructureType   sType;
    void *                               pNext;
    VkFormat                             format;
    uint64_t                             externalFormat;
    VkFormatFeatureFlags                 formatFeatures;
    VkComponentMapping                   samplerYcbcrConversionComponents;
    VkSamplerYcbcrModelConversion        suggestedYcbcrModel;
    VkSamplerYcbcrRange                  suggestedYcbcrRange;
    VkChromaLocation                     suggestedXChromaOffset;
    VkChromaLocation                     suggestedYChromaOffset;
} VkAndroidHardwareBufferFormatPropertiesANDROID;
#endif

typedef struct VkCommandBufferInheritanceConditionalRenderingInfoEXT {
    VkStructureType   sType;
    const  void *                          pNext;
    VkBool32                              conditionalRenderingEnable;
} VkCommandBufferInheritanceConditionalRenderingInfoEXT;

typedef struct VkPhysicalDevice8BitStorageFeatures {
    VkStructureType   sType;
    void *       pNext;
    VkBool32                           storageBuffer8BitAccess;
    VkBool32                           uniformAndStorageBuffer8BitAccess;
    VkBool32                           storagePushConstant8;
} VkPhysicalDevice8BitStorageFeatures;

typedef struct VkPhysicalDevice8BitStorageFeatures  VkPhysicalDevice8BitStorageFeaturesKHR;

typedef struct VkPhysicalDeviceConditionalRenderingFeaturesEXT {
    VkStructureType   sType;
    void *         pNext;
    VkBool32                             conditionalRendering;
    VkBool32                             inheritedConditionalRendering;
} VkPhysicalDeviceConditionalRenderingFeaturesEXT;

typedef struct VkPhysicalDeviceVulkanMemoryModelFeatures {
    VkStructureType   sType;
    void *       pNext;
    VkBool32                           vulkanMemoryModel;
    VkBool32                           vulkanMemoryModelDeviceScope;
    VkBool32                           vulkanMemoryModelAvailabilityVisibilityChains;
} VkPhysicalDeviceVulkanMemoryModelFeatures;

typedef struct VkPhysicalDeviceVulkanMemoryModelFeatures  VkPhysicalDeviceVulkanMemoryModelFeaturesKHR;

typedef struct VkPhysicalDeviceShaderAtomicInt64Features {
    VkStructureType   sType;
    void *                                pNext;
    VkBool32                              shaderBufferInt64Atomics;
    VkBool32                              shaderSharedInt64Atomics;
} VkPhysicalDeviceShaderAtomicInt64Features;

typedef struct VkPhysicalDeviceShaderAtomicInt64Features  VkPhysicalDeviceShaderAtomicInt64FeaturesKHR;

typedef struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT {
    VkStructureType   sType;
    void *                                pNext;
    VkBool32                              shaderBufferFloat32Atomics;
    VkBool32                              shaderBufferFloat32AtomicAdd;
    VkBool32                              shaderBufferFloat64Atomics;
    VkBool32                              shaderBufferFloat64AtomicAdd;
    VkBool32                              shaderSharedFloat32Atomics;
    VkBool32                              shaderSharedFloat32AtomicAdd;
    VkBool32                              shaderSharedFloat64Atomics;
    VkBool32                              shaderSharedFloat64AtomicAdd;
    VkBool32                              shaderImageFloat32Atomics;
    VkBool32                              shaderImageFloat32AtomicAdd;
    VkBool32                              sparseImageFloat32Atomics;
    VkBool32                              sparseImageFloat32AtomicAdd;
} VkPhysicalDeviceShaderAtomicFloatFeaturesEXT;

typedef struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT {
    VkStructureType   sType;
    void *         pNext;
    VkBool32                             vertexAttributeInstanceRateDivisor;
    VkBool32                             vertexAttributeInstanceRateZeroDivisor;
} VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT;

typedef struct VkQueueFamilyCheckpointPropertiesNV {
    VkStructureType   sType;
    void *            pNext;
    VkPipelineStageFlags   checkpointExecutionStageMask;
} VkQueueFamilyCheckpointPropertiesNV;

typedef struct VkPhysicalDeviceDepthStencilResolveProperties {
    VkStructureType   sType;
    void *                                 pNext;
    VkResolveModeFlags                     supportedDepthResolveModes;
    VkResolveModeFlags                     supportedStencilResolveModes;
    VkBool32                               independentResolveNone;
    VkBool32                               independentResolve;
} VkPhysicalDeviceDepthStencilResolveProperties;

typedef struct VkPhysicalDeviceDepthStencilResolveProperties  VkPhysicalDeviceDepthStencilResolvePropertiesKHR;

typedef struct VkSubpassDescriptionDepthStencilResolve {
    VkStructureType   sType;
    const  void *                                               pNext;
    VkResolveModeFlagBits                                      depthResolveMode;
    VkResolveModeFlagBits                                      stencilResolveMode;
    const  VkAttachmentReference2 *             pDepthStencilResolveAttachment;
} VkSubpassDescriptionDepthStencilResolve;

typedef struct VkSubpassDescriptionDepthStencilResolve  VkSubpassDescriptionDepthStencilResolveKHR;

typedef struct VkPhysicalDeviceASTCDecodeFeaturesEXT {
    VkStructureType   sType;
    void *       pNext;
    VkBool32                           decodeModeSharedExponent;
} VkPhysicalDeviceASTCDecodeFeaturesEXT;

typedef struct VkPhysicalDeviceTransformFeedbackFeaturesEXT {
    VkStructureType   sType;
    void *                   pNext;
    VkBool32                 transformFeedback;
    VkBool32                 geometryStreams;
} VkPhysicalDeviceTransformFeedbackFeaturesEXT;

typedef struct VkPhysicalDeviceTransformFeedbackPropertiesEXT {
    VkStructureType   sType;
    void *                   pNext;
    uint32_t                 maxTransformFeedbackStreams;
    uint32_t                 maxTransformFeedbackBuffers;
    VkDeviceSize             maxTransformFeedbackBufferSize;
    uint32_t                 maxTransformFeedbackStreamDataSize;
    uint32_t                 maxTransformFeedbackBufferDataSize;
    uint32_t                 maxTransformFeedbackBufferDataStride;
    VkBool32                 transformFeedbackQueries;
    VkBool32                 transformFeedbackStreamsLinesTriangles;
    VkBool32                 transformFeedbackRasterizationStreamSelect;
    VkBool32                 transformFeedbackDraw;
} VkPhysicalDeviceTransformFeedbackPropertiesEXT;

typedef struct VkPipelineRasterizationStateStreamCreateInfoEXT {
    VkStructureType   sType;
    const  void *                                                                       pNext;
    VkPipelineRasterizationStateStreamCreateFlagsEXT                   flags;
    uint32_t                                                                           rasterizationStream;
} VkPipelineRasterizationStateStreamCreateInfoEXT;

typedef struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV {
    VkStructureType sType;
    void *     pNext;
    VkBool32                         representativeFragmentTest;
} VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV;

typedef struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV {
    VkStructureType   sType;
    const  void *     pNext;
    VkBool32         representativeFragmentTestEnable;
} VkPipelineRepresentativeFragmentTestStateCreateInfoNV;

typedef struct VkPhysicalDeviceExclusiveScissorFeaturesNV {
    VkStructureType   sType;
    void *                             pNext;
    VkBool32                           exclusiveScissor;
} VkPhysicalDeviceExclusiveScissorFeaturesNV;

typedef struct VkPhysicalDeviceCornerSampledImageFeaturesNV {
    VkStructureType   sType;
    void *                               pNext;
    VkBool32                             cornerSampledImage;
} VkPhysicalDeviceCornerSampledImageFeaturesNV;

typedef struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV {
    VkStructureType   sType;
    void *                             pNext;
    VkBool32                           computeDerivativeGroupQuads;
    VkBool32                           computeDerivativeGroupLinear;
} VkPhysicalDeviceComputeShaderDerivativesFeaturesNV;

typedef struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV {
    VkStructureType   sType;
    void *                             pNext;
    VkBool32                           fragmentShaderBarycentric;
} VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV;

typedef struct VkPhysicalDeviceShaderImageFootprintFeaturesNV {
    VkStructureType   sType;
    void *                               pNext;
    VkBool32                             imageFootprint;
} VkPhysicalDeviceShaderImageFootprintFeaturesNV;

typedef struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV {
    VkStructureType   sType;
    void *                             pNext;
    VkBool32                           dedicatedAllocationImageAliasing;
} VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;

typedef struct VkPipelineViewportShadingRateImageStateCreateInfoNV {
    VkStructureType   sType;
    const  void *                                                              pNext;
    VkBool32                                                                  shadingRateImageEnable;
    uint32_t                                                  viewportCount;
    const  VkShadingRatePaletteNV *  pShadingRatePalettes;
} VkPipelineViewportShadingRateImageStateCreateInfoNV;

typedef struct VkPhysicalDeviceShadingRateImageFeaturesNV {
    VkStructureType   sType;
    void *                                pNext;
    VkBool32                              shadingRateImage;
    VkBool32                              shadingRateCoarseSampleOrder;
} VkPhysicalDeviceShadingRateImageFeaturesNV;

typedef struct VkPhysicalDeviceMeshShaderFeaturesNV {
    VkStructureType   sType;
    void *                                pNext;
    VkBool32                              taskShader;
    VkBool32                              meshShader;
} VkPhysicalDeviceMeshShaderFeaturesNV;

typedef struct VkRayTracingPipelineCreateInfoNV {
    VkStructureType   sType;
    const  void *             pNext;
    VkPipelineCreateFlags    flags;
    uint32_t                 stageCount;
    const  VkPipelineShaderStageCreateInfo *  pStages;
    uint32_t                 groupCount;
    const  VkRayTracingShaderGroupCreateInfoNV *  pGroups;
    uint32_t                 maxRecursionDepth;
    VkPipelineLayout         layout;
    VkPipeline        basePipelineHandle;
    int32_t                  basePipelineIndex;
} VkRayTracingPipelineCreateInfoNV;

#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef struct VkRayTracingPipelineCreateInfoKHR {
    VkStructureType   sType;
    const  void *             pNext;
    VkPipelineCreateFlags    flags;
    uint32_t   stageCount;
    const  VkPipelineShaderStageCreateInfo *  pStages;
    uint32_t   groupCount;
    const  VkRayTracingShaderGroupCreateInfoKHR *  pGroups;
    uint32_t                 maxRecursionDepth;
    VkPipelineLibraryCreateInfoKHR   libraries;
    const  VkRayTracingPipelineInterfaceCreateInfoKHR *  pLibraryInterface;
    VkPipelineLayout         layout;
    VkPipeline        basePipelineHandle;
    int32_t                  basePipelineIndex;
} VkRayTracingPipelineCreateInfoKHR;
#endif

typedef struct VkGeometryTrianglesNV {
    VkStructureType   sType;
    const  void *                 pNext;
    VkBuffer     vertexData;
    VkDeviceSize                 vertexOffset;
    uint32_t                     vertexCount;
    VkDeviceSize                 vertexStride;
    VkFormat                     vertexFormat;
    VkBuffer     indexData;
    VkDeviceSize                 indexOffset;
    uint32_t                     indexCount;
    VkIndexType                  indexType;
    VkBuffer     transformData;
    VkDeviceSize                 transformOffset;
} VkGeometryTrianglesNV;

typedef struct VkGeometryAABBNV {
    VkStructureType   sType;
    const  void *                 pNext;
    VkBuffer     aabbData;
    uint32_t                     numAABBs;
    uint32_t                     stride;
    VkDeviceSize                 offset;
} VkGeometryAABBNV;

typedef struct VkGeometryDataNV {
    VkGeometryTrianglesNV                    triangles;
    VkGeometryAABBNV                         aabbs;
} VkGeometryDataNV;

typedef struct VkGeometryNV {
    VkStructureType   sType;
    const  void *                                    pNext;
    VkGeometryTypeKHR                    geometryType;
    VkGeometryDataNV                                geometry;
    VkGeometryFlagsKHR   flags;
} VkGeometryNV;

typedef struct VkAccelerationStructureInfoNV {
    VkStructureType   sType;
    const  void *                             pNext;
    VkAccelerationStructureTypeNV           type;
    VkBuildAccelerationStructureFlagsNV flags;
    uint32_t                 instanceCount;
    uint32_t                 geometryCount;
    const  VkGeometryNV *  pGeometries;
} VkAccelerationStructureInfoNV;

typedef struct VkAccelerationStructureCreateInfoNV {
    VkStructureType   sType;
    const  void *                             pNext;
    VkDeviceSize                             compactedSize;
    VkAccelerationStructureInfoNV            info;
} VkAccelerationStructureCreateInfoNV;

typedef struct VkBindAccelerationStructureMemoryInfoKHR {
    VkStructureType   sType;
    const  void *                       pNext;
    VkAccelerationStructureKHR         accelerationStructure;
    VkDeviceMemory                     memory;
    VkDeviceSize                       memoryOffset;
    uint32_t           deviceIndexCount;
    const  uint32_t *   pDeviceIndices;
} VkBindAccelerationStructureMemoryInfoKHR;

typedef struct VkBindAccelerationStructureMemoryInfoKHR  VkBindAccelerationStructureMemoryInfoNV;

#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef struct VkPhysicalDeviceRayTracingFeaturesKHR {
    VkStructureType   sType;
    void *                             pNext;
    VkBool32                           rayTracing;
    VkBool32                           rayTracingShaderGroupHandleCaptureReplay;
    VkBool32                           rayTracingShaderGroupHandleCaptureReplayMixed;
    VkBool32                           rayTracingAccelerationStructureCaptureReplay;
    VkBool32                           rayTracingIndirectTraceRays;
    VkBool32                           rayTracingIndirectAccelerationStructureBuild;
    VkBool32                           rayTracingHostAccelerationStructureCommands;
    VkBool32                           rayQuery;
    VkBool32                           rayTracingPrimitiveCulling;
} VkPhysicalDeviceRayTracingFeaturesKHR;
#endif

#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef struct VkStridedBufferRegionKHR {
    VkBuffer           buffer;
    VkDeviceSize                       offset;
    VkDeviceSize                       stride;
    VkDeviceSize                       size;
} VkStridedBufferRegionKHR;
#endif

typedef struct VkDrmFormatModifierPropertiesEXT {
    uint64_t   drmFormatModifier;
    uint32_t   drmFormatModifierPlaneCount;
    VkFormatFeatureFlags   drmFormatModifierTilingFeatures;
} VkDrmFormatModifierPropertiesEXT;

typedef struct VkImageDrmFormatModifierExplicitCreateInfoEXT {
    VkStructureType   sType;
    const  void *  pNext;
    uint64_t   drmFormatModifier;
    uint32_t   drmFormatModifierPlaneCount;
    const  VkSubresourceLayout *  pPlaneLayouts;
} VkImageDrmFormatModifierExplicitCreateInfoEXT;

typedef struct VkImageStencilUsageCreateInfo {
    VkStructureType   sType;
    const  void *  pNext;
    VkImageUsageFlags   stencilUsage;
} VkImageStencilUsageCreateInfo;

typedef struct VkImageStencilUsageCreateInfo  VkImageStencilUsageCreateInfoEXT;

typedef struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT {
    VkStructureType   sType;
    void *                             pNext;
    VkBool32                           fragmentDensityMap;
    VkBool32                           fragmentDensityMapDynamic;
    VkBool32                           fragmentDensityMapNonSubsampledImages;
} VkPhysicalDeviceFragmentDensityMapFeaturesEXT;

typedef struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT {
    VkStructureType   sType;
    void *                             pNext;
    VkBool32                           fragmentDensityMapDeferred;
} VkPhysicalDeviceFragmentDensityMap2FeaturesEXT;

typedef struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT {
    VkStructureType   sType;
    void *                             pNext;
    VkExtent2D                         minFragmentDensityTexelSize;
    VkExtent2D                         maxFragmentDensityTexelSize;
    VkBool32                           fragmentDensityInvocations;
} VkPhysicalDeviceFragmentDensityMapPropertiesEXT;

typedef struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT {
    VkStructureType   sType;
    void *                           pNext;
    VkBool32                         subsampledLoads;
    VkBool32                         subsampledCoarseReconstructionEarlyAccess;
    uint32_t                         maxSubsampledArrayLayers;
    uint32_t                         maxDescriptorSetSubsampledSamplers;
} VkPhysicalDeviceFragmentDensityMap2PropertiesEXT;

typedef struct VkPhysicalDeviceScalarBlockLayoutFeatures {
    VkStructureType   sType;
    void *                                pNext;
    VkBool32                              scalarBlockLayout;
} VkPhysicalDeviceScalarBlockLayoutFeatures;

typedef struct VkPhysicalDeviceScalarBlockLayoutFeatures  VkPhysicalDeviceScalarBlockLayoutFeaturesEXT;

typedef struct VkSurfaceProtectedCapabilitiesKHR {
    VkStructureType   sType;
    const  void *  pNext;
    VkBool32   supportsProtected;
} VkSurfaceProtectedCapabilitiesKHR;

typedef struct VkPhysicalDeviceUniformBufferStandardLayoutFeatures {
    VkStructureType   sType;
    void *                                pNext;
    VkBool32                              uniformBufferStandardLayout;
} VkPhysicalDeviceUniformBufferStandardLayoutFeatures;

typedef struct VkPhysicalDeviceUniformBufferStandardLayoutFeatures  VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR;

typedef struct VkPhysicalDeviceDepthClipEnableFeaturesEXT {
    VkStructureType   sType;
    void *                   pNext;
    VkBool32                 depthClipEnable;
} VkPhysicalDeviceDepthClipEnableFeaturesEXT;

typedef struct VkPipelineRasterizationDepthClipStateCreateInfoEXT {
    VkStructureType   sType;
    const  void *                                                                  pNext;
    VkPipelineRasterizationDepthClipStateCreateFlagsEXT           flags;
    VkBool32                                                                      depthClipEnable;
} VkPipelineRasterizationDepthClipStateCreateInfoEXT;

typedef struct VkPhysicalDeviceMemoryBudgetPropertiesEXT {
    VkStructureType   sType;
    void *         pNext;
    VkDeviceSize                         heapBudget [ VK_MAX_MEMORY_HEAPS ];
    VkDeviceSize                         heapUsage [ VK_MAX_MEMORY_HEAPS ];
} VkPhysicalDeviceMemoryBudgetPropertiesEXT;

typedef struct VkPhysicalDeviceMemoryPriorityFeaturesEXT {
    VkStructureType   sType;
    void *         pNext;
    VkBool32                             memoryPriority;
} VkPhysicalDeviceMemoryPriorityFeaturesEXT;

typedef struct VkPhysicalDeviceBufferDeviceAddressFeatures {
    VkStructureType   sType;
    void *         pNext;
    VkBool32                             bufferDeviceAddress;
    VkBool32                             bufferDeviceAddressCaptureReplay;
    VkBool32                             bufferDeviceAddressMultiDevice;
} VkPhysicalDeviceBufferDeviceAddressFeatures;

typedef struct VkPhysicalDeviceBufferDeviceAddressFeatures  VkPhysicalDeviceBufferDeviceAddressFeaturesKHR;

typedef struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT {
    VkStructureType   sType;
    void *         pNext;
    VkBool32                             bufferDeviceAddress;
    VkBool32                             bufferDeviceAddressCaptureReplay;
    VkBool32                             bufferDeviceAddressMultiDevice;
} VkPhysicalDeviceBufferDeviceAddressFeaturesEXT;

typedef struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT  VkPhysicalDeviceBufferAddressFeaturesEXT;

typedef struct VkBufferDeviceAddressCreateInfoEXT {
    VkStructureType   sType;
    const  void *                       pNext;
    VkDeviceAddress                    deviceAddress;
} VkBufferDeviceAddressCreateInfoEXT;

typedef struct VkFilterCubicImageViewImageFormatPropertiesEXT {
    VkStructureType   sType;
    void *                             pNext;
    VkBool32                           filterCubic;
    VkBool32                           filterCubicMinmax;
} VkFilterCubicImageViewImageFormatPropertiesEXT;

typedef struct VkPhysicalDeviceImagelessFramebufferFeatures {
    VkStructureType   sType;
    void *                                     pNext;
    VkBool32                                   imagelessFramebuffer;
} VkPhysicalDeviceImagelessFramebufferFeatures;

typedef struct VkPhysicalDeviceImagelessFramebufferFeatures  VkPhysicalDeviceImagelessFramebufferFeaturesKHR;

typedef struct VkFramebufferAttachmentImageInfo {
    VkStructureType   sType;
    const  void *                               pNext;
    VkImageCreateFlags         flags;
    VkImageUsageFlags                          usage;
    uint32_t                                   width;
    uint32_t                                   height;
    uint32_t                                   layerCount;
    uint32_t                   viewFormatCount;
    const  VkFormat *     pViewFormats;
} VkFramebufferAttachmentImageInfo;

typedef struct VkFramebufferAttachmentImageInfo  VkFramebufferAttachmentImageInfoKHR;

typedef struct VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT {
    VkStructureType   sType;
    void *                   pNext;
    VkBool32                 textureCompressionASTC_HDR;
} VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT;

typedef struct VkPhysicalDeviceCooperativeMatrixFeaturesNV {
    VkStructureType   sType;
    void *                                pNext;
    VkBool32                              cooperativeMatrix;
    VkBool32                              cooperativeMatrixRobustBufferAccess;
} VkPhysicalDeviceCooperativeMatrixFeaturesNV;

typedef struct VkPhysicalDeviceCooperativeMatrixPropertiesNV {
    VkStructureType   sType;
    void *                                pNext;
    VkShaderStageFlags                    cooperativeMatrixSupportedStages;
} VkPhysicalDeviceCooperativeMatrixPropertiesNV;

typedef struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT {
    VkStructureType   sType;
    void *         pNext;
    VkBool32                             ycbcrImageArrays;
} VkPhysicalDeviceYcbcrImageArraysFeaturesEXT;

typedef struct VkImageViewAddressPropertiesNVX {
    VkStructureType   sType;
    void *               pNext;
    VkDeviceAddress      deviceAddress;
    VkDeviceSize         size;
} VkImageViewAddressPropertiesNVX;

typedef struct VkPipelineCreationFeedbackEXT {
    VkPipelineCreationFeedbackFlagsEXT    flags;
    uint64_t                              duration;
} VkPipelineCreationFeedbackEXT;

typedef struct VkPipelineCreationFeedbackCreateInfoEXT {
    VkStructureType   sType;
    const  void *                          pNext;
    VkPipelineCreationFeedbackEXT *       pPipelineCreationFeedback;
    uint32_t                              pipelineStageCreationFeedbackCount;
    VkPipelineCreationFeedbackEXT *  pPipelineStageCreationFeedbacks;
} VkPipelineCreationFeedbackCreateInfoEXT;

#if defined(VK_USE_PLATFORM_WIN32_KHR)
typedef struct VkSurfaceCapabilitiesFullScreenExclusiveEXT {
    VkStructureType   sType;
    void *             pNext;
    VkBool32           fullScreenExclusiveSupported;
} VkSurfaceCapabilitiesFullScreenExclusiveEXT;
#endif

typedef struct VkPhysicalDevicePerformanceQueryFeaturesKHR {
    VkStructureType   sType;
    void *       pNext;
    VkBool32                           performanceCounterQueryPools;
    VkBool32                           performanceCounterMultipleQueryPools;
} VkPhysicalDevicePerformanceQueryFeaturesKHR;

typedef struct VkPhysicalDevicePerformanceQueryPropertiesKHR {
    VkStructureType   sType;
    void *  pNext;
    VkBool32   allowCommandBufferQueryCopies;
} VkPhysicalDevicePerformanceQueryPropertiesKHR;

typedef struct VkPerformanceCounterDescriptionKHR {
    VkStructureType   sType;
    const  void *                              pNext;
    VkPerformanceCounterDescriptionFlagsKHR   flags;
    char                                      name [ VK_MAX_DESCRIPTION_SIZE ];
    char                                      category [ VK_MAX_DESCRIPTION_SIZE ];
    char                                      description [ VK_MAX_DESCRIPTION_SIZE ];
} VkPerformanceCounterDescriptionKHR;

typedef struct VkAcquireProfilingLockInfoKHR {
    VkStructureType   sType;
    const  void *             pNext;
    VkAcquireProfilingLockFlagsKHR   flags;
    uint64_t   timeout;
} VkAcquireProfilingLockInfoKHR;

typedef struct VkHeadlessSurfaceCreateInfoEXT {
    VkStructureType   sType;
    const  void *             pNext;
    VkHeadlessSurfaceCreateFlagsEXT     flags;
} VkHeadlessSurfaceCreateInfoEXT;

typedef struct VkPhysicalDeviceCoverageReductionModeFeaturesNV {
    VkStructureType sType;
    void *     pNext;
    VkBool32                         coverageReductionMode;
} VkPhysicalDeviceCoverageReductionModeFeaturesNV;

typedef struct VkPipelineCoverageReductionStateCreateInfoNV {
    VkStructureType   sType;
    const  void *                                                         pNext;
    VkPipelineCoverageReductionStateCreateFlagsNV        flags;
    VkCoverageReductionModeNV                                            coverageReductionMode;
} VkPipelineCoverageReductionStateCreateInfoNV;

typedef struct VkFramebufferMixedSamplesCombinationNV {
    VkStructureType   sType;
    void *                       pNext;
    VkCoverageReductionModeNV    coverageReductionMode;
    VkSampleCountFlagBits        rasterizationSamples;
    VkSampleCountFlags           depthStencilSamples;
    VkSampleCountFlags           colorSamples;
} VkFramebufferMixedSamplesCombinationNV;

typedef struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL {
    VkStructureType   sType;
    void *                             pNext;
    VkBool32                           shaderIntegerFunctions2;
} VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;

typedef union VkPerformanceValueDataINTEL {
    uint32_t                             value32;
    uint64_t                             value64;
    float                                 valueFloat;
    VkBool32                               valueBool;
    const  char *   valueString;
} VkPerformanceValueDataINTEL;

typedef struct VkPerformanceValueINTEL {
    VkPerformanceValueTypeINTEL          type;
    VkPerformanceValueDataINTEL          data;
} VkPerformanceValueINTEL;

typedef struct VkPerformanceOverrideInfoINTEL {
    VkStructureType   sType;
    const  void *                          pNext;
    VkPerformanceOverrideTypeINTEL        type;
    VkBool32                              enable;
    uint64_t                              parameter;
} VkPerformanceOverrideInfoINTEL;

typedef struct VkPhysicalDeviceShaderClockFeaturesKHR {
    VkStructureType   sType;
    void *                                pNext;
    VkBool32                              shaderSubgroupClock;
    VkBool32                              shaderDeviceClock;
} VkPhysicalDeviceShaderClockFeaturesKHR;

typedef struct VkPhysicalDeviceIndexTypeUint8FeaturesEXT {
    VkStructureType   sType;
    void *         pNext;
    VkBool32                             indexTypeUint8;
} VkPhysicalDeviceIndexTypeUint8FeaturesEXT;

typedef struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV {
    VkStructureType sType;
    void *     pNext;
    VkBool32                         shaderSMBuiltins;
} VkPhysicalDeviceShaderSMBuiltinsFeaturesNV;

typedef struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT {
    VkStructureType   sType;
    void *                   pNext;
    VkBool32                 fragmentShaderSampleInterlock;
    VkBool32                 fragmentShaderPixelInterlock;
    VkBool32                 fragmentShaderShadingRateInterlock;
} VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT;

typedef struct VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures {
    VkStructureType sType;
    void *     pNext;
    VkBool32                         separateDepthStencilLayouts;
} VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures;

typedef struct VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures  VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR;

typedef struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR {
    VkStructureType   sType;
    void *               pNext;
    VkBool32             pipelineExecutableInfo;
} VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR;

typedef struct VkPipelineExecutablePropertiesKHR {
    VkStructureType   sType;
    void *               pNext;
    VkShaderStageFlags   stages;
    char                 name [ VK_MAX_DESCRIPTION_SIZE ];
    char                 description [ VK_MAX_DESCRIPTION_SIZE ];
    uint32_t             subgroupSize;
} VkPipelineExecutablePropertiesKHR;

typedef union VkPipelineExecutableStatisticValueKHR {
    VkBool32             b32;
    int64_t              i64;
    uint64_t             u64;
    double               f64;
} VkPipelineExecutableStatisticValueKHR;

typedef struct VkPipelineExecutableStatisticKHR {
    VkStructureType   sType;
    void *               pNext;
    char                 name [ VK_MAX_DESCRIPTION_SIZE ];
    char                 description [ VK_MAX_DESCRIPTION_SIZE ];
    VkPipelineExecutableStatisticFormatKHR   format;
    VkPipelineExecutableStatisticValueKHR    value;
} VkPipelineExecutableStatisticKHR;

typedef struct VkPipelineExecutableInternalRepresentationKHR {
    VkStructureType   sType;
    void *               pNext;
    char                 name [ VK_MAX_DESCRIPTION_SIZE ];
    char                 description [ VK_MAX_DESCRIPTION_SIZE ];
    VkBool32             isText;
    size_t                 dataSize;
    void *  pData;
} VkPipelineExecutableInternalRepresentationKHR;

typedef struct VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT {
    VkStructureType   sType;
    void *         pNext;
    VkBool32                             shaderDemoteToHelperInvocation;
} VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT;

typedef struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT {
    VkStructureType   sType;
    void *         pNext;
    VkBool32                             texelBufferAlignment;
} VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT;

typedef struct VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT {
    VkStructureType   sType;
    void *         pNext;
    VkDeviceSize                         storageTexelBufferOffsetAlignmentBytes;
    VkBool32                             storageTexelBufferOffsetSingleTexelAlignment;
    VkDeviceSize                         uniformTexelBufferOffsetAlignmentBytes;
    VkBool32                             uniformTexelBufferOffsetSingleTexelAlignment;
} VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT;

typedef struct VkPhysicalDeviceSubgroupSizeControlFeaturesEXT {
    VkStructureType   sType;
    void *                           pNext;
    VkBool32   subgroupSizeControl;
    VkBool32   computeFullSubgroups;
} VkPhysicalDeviceSubgroupSizeControlFeaturesEXT;

typedef struct VkPhysicalDeviceSubgroupSizeControlPropertiesEXT {
    VkStructureType   sType;
    void *                           pNext;
    uint32_t   minSubgroupSize;
    uint32_t   maxSubgroupSize;
    uint32_t   maxComputeWorkgroupSubgroups;
    VkShaderStageFlags               requiredSubgroupSizeStages;
} VkPhysicalDeviceSubgroupSizeControlPropertiesEXT;

typedef struct VkPhysicalDeviceLineRasterizationFeaturesEXT {
    VkStructureType   sType;
    void *         pNext;
    VkBool32                             rectangularLines;
    VkBool32                             bresenhamLines;
    VkBool32                             smoothLines;
    VkBool32                             stippledRectangularLines;
    VkBool32                             stippledBresenhamLines;
    VkBool32                             stippledSmoothLines;
} VkPhysicalDeviceLineRasterizationFeaturesEXT;

typedef struct VkPipelineRasterizationLineStateCreateInfoEXT {
    VkStructureType   sType;
    const  void *                                                       pNext;
    VkLineRasterizationModeEXT                                         lineRasterizationMode;
    VkBool32                                                           stippledLineEnable;
    uint32_t                                           lineStippleFactor;
    uint16_t                                           lineStipplePattern;
} VkPipelineRasterizationLineStateCreateInfoEXT;

typedef struct VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT {
    VkStructureType   sType;
    void *  pNext;
    VkBool32                                                           pipelineCreationCacheControl;
} VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT;

typedef struct VkPhysicalDeviceVulkan11Features {
    VkStructureType sType;
    void *     pNext;
    VkBool32                           storageBuffer16BitAccess;
    VkBool32                           uniformAndStorageBuffer16BitAccess;
    VkBool32                           storagePushConstant16;
    VkBool32                           storageInputOutput16;
    VkBool32                           multiview;
    VkBool32                           multiviewGeometryShader;
    VkBool32                           multiviewTessellationShader;
    VkBool32                           variablePointersStorageBuffer;
    VkBool32                           variablePointers;
    VkBool32                           protectedMemory;
    VkBool32                           samplerYcbcrConversion;
    VkBool32                           shaderDrawParameters;
} VkPhysicalDeviceVulkan11Features;

typedef struct VkPhysicalDeviceVulkan11Properties {
    VkStructureType sType;
    void *       pNext;
    uint8_t                            deviceUUID [ VK_UUID_SIZE ];
    uint8_t                            driverUUID [ VK_UUID_SIZE ];
    uint8_t                            deviceLUID [ VK_LUID_SIZE ];
    uint32_t                           deviceNodeMask;
    VkBool32                           deviceLUIDValid;
    uint32_t                        subgroupSize;
    VkShaderStageFlags              subgroupSupportedStages;
    VkSubgroupFeatureFlags          subgroupSupportedOperations;
    VkBool32                        subgroupQuadOperationsInAllStages;
    VkPointClippingBehavior            pointClippingBehavior;
    uint32_t                           maxMultiviewViewCount;
    uint32_t                           maxMultiviewInstanceIndex;
    VkBool32                           protectedNoFault;
    uint32_t                           maxPerSetDescriptors;
    VkDeviceSize                       maxMemoryAllocationSize;
} VkPhysicalDeviceVulkan11Properties;

typedef struct VkPhysicalDeviceVulkan12Features {
    VkStructureType sType;
    void *     pNext;
    VkBool32                           samplerMirrorClampToEdge;
    VkBool32                           drawIndirectCount;
    VkBool32                           storageBuffer8BitAccess;
    VkBool32                           uniformAndStorageBuffer8BitAccess;
    VkBool32                           storagePushConstant8;
    VkBool32                           shaderBufferInt64Atomics;
    VkBool32                           shaderSharedInt64Atomics;
    VkBool32                           shaderFloat16;
    VkBool32                           shaderInt8;
    VkBool32                           descriptorIndexing;
    VkBool32                           shaderInputAttachmentArrayDynamicIndexing;
    VkBool32                           shaderUniformTexelBufferArrayDynamicIndexing;
    VkBool32                           shaderStorageTexelBufferArrayDynamicIndexing;
    VkBool32                           shaderUniformBufferArrayNonUniformIndexing;
    VkBool32                           shaderSampledImageArrayNonUniformIndexing;
    VkBool32                           shaderStorageBufferArrayNonUniformIndexing;
    VkBool32                           shaderStorageImageArrayNonUniformIndexing;
    VkBool32                           shaderInputAttachmentArrayNonUniformIndexing;
    VkBool32                           shaderUniformTexelBufferArrayNonUniformIndexing;
    VkBool32                           shaderStorageTexelBufferArrayNonUniformIndexing;
    VkBool32                           descriptorBindingUniformBufferUpdateAfterBind;
    VkBool32                           descriptorBindingSampledImageUpdateAfterBind;
    VkBool32                           descriptorBindingStorageImageUpdateAfterBind;
    VkBool32                           descriptorBindingStorageBufferUpdateAfterBind;
    VkBool32                           descriptorBindingUniformTexelBufferUpdateAfterBind;
    VkBool32                           descriptorBindingStorageTexelBufferUpdateAfterBind;
    VkBool32                           descriptorBindingUpdateUnusedWhilePending;
    VkBool32                           descriptorBindingPartiallyBound;
    VkBool32                           descriptorBindingVariableDescriptorCount;
    VkBool32                           runtimeDescriptorArray;
    VkBool32                           samplerFilterMinmax;
    VkBool32                           scalarBlockLayout;
    VkBool32                           imagelessFramebuffer;
    VkBool32                           uniformBufferStandardLayout;
    VkBool32                           shaderSubgroupExtendedTypes;
    VkBool32                           separateDepthStencilLayouts;
    VkBool32                           hostQueryReset;
    VkBool32                           timelineSemaphore;
    VkBool32                           bufferDeviceAddress;
    VkBool32                           bufferDeviceAddressCaptureReplay;
    VkBool32                           bufferDeviceAddressMultiDevice;
    VkBool32                           vulkanMemoryModel;
    VkBool32                           vulkanMemoryModelDeviceScope;
    VkBool32                           vulkanMemoryModelAvailabilityVisibilityChains;
    VkBool32                           shaderOutputViewportIndex;
    VkBool32                           shaderOutputLayer;
    VkBool32                           subgroupBroadcastDynamicId;
} VkPhysicalDeviceVulkan12Features;

typedef struct VkPhysicalDeviceVulkan12Properties {
    VkStructureType sType;
    void *     pNext;
    VkDriverId                         driverID;
    char                               driverName [ VK_MAX_DRIVER_NAME_SIZE ];
    char                               driverInfo [ VK_MAX_DRIVER_INFO_SIZE ];
    VkConformanceVersion               conformanceVersion;
    VkShaderFloatControlsIndependence denormBehaviorIndependence;
    VkShaderFloatControlsIndependence roundingModeIndependence;
    VkBool32                           shaderSignedZeroInfNanPreserveFloat16;
    VkBool32                           shaderSignedZeroInfNanPreserveFloat32;
    VkBool32                           shaderSignedZeroInfNanPreserveFloat64;
    VkBool32                           shaderDenormPreserveFloat16;
    VkBool32                           shaderDenormPreserveFloat32;
    VkBool32                           shaderDenormPreserveFloat64;
    VkBool32                           shaderDenormFlushToZeroFloat16;
    VkBool32                           shaderDenormFlushToZeroFloat32;
    VkBool32                           shaderDenormFlushToZeroFloat64;
    VkBool32                           shaderRoundingModeRTEFloat16;
    VkBool32                           shaderRoundingModeRTEFloat32;
    VkBool32                           shaderRoundingModeRTEFloat64;
    VkBool32                           shaderRoundingModeRTZFloat16;
    VkBool32                           shaderRoundingModeRTZFloat32;
    VkBool32                           shaderRoundingModeRTZFloat64;
    uint32_t                           maxUpdateAfterBindDescriptorsInAllPools;
    VkBool32                           shaderUniformBufferArrayNonUniformIndexingNative;
    VkBool32                           shaderSampledImageArrayNonUniformIndexingNative;
    VkBool32                           shaderStorageBufferArrayNonUniformIndexingNative;
    VkBool32                           shaderStorageImageArrayNonUniformIndexingNative;
    VkBool32                           shaderInputAttachmentArrayNonUniformIndexingNative;
    VkBool32                           robustBufferAccessUpdateAfterBind;
    VkBool32                           quadDivergentImplicitLod;
    uint32_t                           maxPerStageDescriptorUpdateAfterBindSamplers;
    uint32_t                           maxPerStageDescriptorUpdateAfterBindUniformBuffers;
    uint32_t                           maxPerStageDescriptorUpdateAfterBindStorageBuffers;
    uint32_t                           maxPerStageDescriptorUpdateAfterBindSampledImages;
    uint32_t                           maxPerStageDescriptorUpdateAfterBindStorageImages;
    uint32_t                           maxPerStageDescriptorUpdateAfterBindInputAttachments;
    uint32_t                           maxPerStageUpdateAfterBindResources;
    uint32_t                           maxDescriptorSetUpdateAfterBindSamplers;
    uint32_t                           maxDescriptorSetUpdateAfterBindUniformBuffers;
    uint32_t                           maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
    uint32_t                           maxDescriptorSetUpdateAfterBindStorageBuffers;
    uint32_t                           maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
    uint32_t                           maxDescriptorSetUpdateAfterBindSampledImages;
    uint32_t                           maxDescriptorSetUpdateAfterBindStorageImages;
    uint32_t                           maxDescriptorSetUpdateAfterBindInputAttachments;
    VkResolveModeFlags                 supportedDepthResolveModes;
    VkResolveModeFlags                 supportedStencilResolveModes;
    VkBool32                           independentResolveNone;
    VkBool32                           independentResolve;
    VkBool32                           filterMinmaxSingleComponentFormats;
    VkBool32                           filterMinmaxImageComponentMapping;
    uint64_t                           maxTimelineSemaphoreValueDifference;
    VkSampleCountFlags   framebufferIntegerColorSampleCounts;
} VkPhysicalDeviceVulkan12Properties;

typedef struct VkPipelineCompilerControlCreateInfoAMD {
    VkStructureType     sType;
    const  void *                                                                             pNext;
    VkPipelineCompilerControlFlagsAMD                                        compilerControlFlags;
} VkPipelineCompilerControlCreateInfoAMD;

typedef struct VkPhysicalDeviceCoherentMemoryFeaturesAMD {
    VkStructureType   sType;
    void *         pNext;
    VkBool32                             deviceCoherentMemory;
} VkPhysicalDeviceCoherentMemoryFeaturesAMD;

typedef struct VkPhysicalDeviceToolPropertiesEXT {
    VkStructureType   sType;
    void *  pNext;
    char              name [ VK_MAX_EXTENSION_NAME_SIZE ];
    char              version [ VK_MAX_EXTENSION_NAME_SIZE ];
    VkToolPurposeFlagsEXT   purposes;
    char              description [ VK_MAX_DESCRIPTION_SIZE ];
    char              layer [ VK_MAX_EXTENSION_NAME_SIZE ];
} VkPhysicalDeviceToolPropertiesEXT;

typedef struct VkPhysicalDeviceCustomBorderColorFeaturesEXT {
    VkStructureType   sType;
    void *         pNext;
    VkBool32                             customBorderColors;
    VkBool32                             customBorderColorWithoutFormat;
} VkPhysicalDeviceCustomBorderColorFeaturesEXT;

#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef union VkDeviceOrHostAddressKHR {
    VkDeviceAddress              deviceAddress;
    void *                       hostAddress;
} VkDeviceOrHostAddressKHR;
#endif

#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef union VkDeviceOrHostAddressConstKHR {
    VkDeviceAddress              deviceAddress;
    const  void *                 hostAddress;
} VkDeviceOrHostAddressConstKHR;
#endif

#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef struct VkAccelerationStructureGeometryTrianglesDataKHR {
    VkStructureType   sType;
    const  void *                                    pNext;
    VkFormat                                        vertexFormat;
    VkDeviceOrHostAddressConstKHR                   vertexData;
    VkDeviceSize                                    vertexStride;
    VkIndexType                                     indexType;
    VkDeviceOrHostAddressConstKHR   indexData;
    VkDeviceOrHostAddressConstKHR   transformData;
} VkAccelerationStructureGeometryTrianglesDataKHR;
#endif

#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef struct VkAccelerationStructureGeometryAabbsDataKHR {
    VkStructureType   sType;
    const  void *                            pNext;
    VkDeviceOrHostAddressConstKHR           data;
    VkDeviceSize                            stride;
} VkAccelerationStructureGeometryAabbsDataKHR;
#endif

#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef struct VkAccelerationStructureGeometryInstancesDataKHR {
    VkStructureType   sType;
    const  void *                            pNext;
    VkBool32                                arrayOfPointers;
    VkDeviceOrHostAddressConstKHR           data;
} VkAccelerationStructureGeometryInstancesDataKHR;
#endif

#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef union VkAccelerationStructureGeometryDataKHR {
    VkAccelerationStructureGeometryTrianglesDataKHR   triangles;
    VkAccelerationStructureGeometryAabbsDataKHR           aabbs;
    VkAccelerationStructureGeometryInstancesDataKHR   instances;
} VkAccelerationStructureGeometryDataKHR;
#endif

#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef struct VkAccelerationStructureGeometryKHR {
    VkStructureType   sType;
    const  void *                             pNext;
    VkGeometryTypeKHR                        geometryType;
    VkAccelerationStructureGeometryDataKHR   geometry;
    VkGeometryFlagsKHR       flags;
} VkAccelerationStructureGeometryKHR;
#endif

#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef struct VkAccelerationStructureBuildGeometryInfoKHR {
    VkStructureType   sType;
    const  void *                                                         pNext;
    VkAccelerationStructureTypeKHR                                       type;
    VkBuildAccelerationStructureFlagsKHR                 flags;
    VkBool32                                                             update;
    VkAccelerationStructureKHR                           srcAccelerationStructure;
    VkAccelerationStructureKHR                                           dstAccelerationStructure;
    VkBool32                                                             geometryArrayOfPointers;
    uint32_t                                             geometryCount;
    const  VkAccelerationStructureGeometryKHR * const*    ppGeometries;
    VkDeviceOrHostAddressKHR                                             scratchData;
} VkAccelerationStructureBuildGeometryInfoKHR;
#endif

#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef struct VkAccelerationStructureCreateGeometryTypeInfoKHR {
    VkStructureType   sType;
    const  void *                                              pNext;
    VkGeometryTypeKHR                                         geometryType;
    uint32_t                                                  maxPrimitiveCount;
    VkIndexType                                                indexType;
    uint32_t                                  maxVertexCount;
    VkFormat                                  vertexFormat;
    VkBool32                                  allowsTransforms;
} VkAccelerationStructureCreateGeometryTypeInfoKHR;
#endif

#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef struct VkAccelerationStructureCreateInfoKHR {
    VkStructureType   sType;
    const  void *                                              pNext;
    VkDeviceSize                                              compactedSize;
    VkAccelerationStructureTypeKHR                            type;
    VkBuildAccelerationStructureFlagsKHR      flags;
    uint32_t                                  maxGeometryCount;
    const  VkAccelerationStructureCreateGeometryTypeInfoKHR *  pGeometryInfos;
    VkDeviceAddress                           deviceAddress;
} VkAccelerationStructureCreateInfoKHR;
#endif

typedef struct VkAccelerationStructureInstanceKHR {
    VkTransformMatrixKHR                                      transform;
    uint32_t                                                  instanceCustomIndex :24;
    uint32_t                                                  mask :8;
    uint32_t                                                  instanceShaderBindingTableRecordOffset :24;
    VkGeometryInstanceFlagsKHR                flags :8;
    uint64_t                                                  accelerationStructureReference;
} VkAccelerationStructureInstanceKHR;

typedef struct VkAccelerationStructureInstanceKHR  VkAccelerationStructureInstanceNV;

#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef struct VkCopyAccelerationStructureToMemoryInfoKHR {
    VkStructureType   sType;
    const  void *                                             pNext;
    VkAccelerationStructureKHR                               src;
    VkDeviceOrHostAddressKHR                                 dst;
    VkCopyAccelerationStructureModeKHR                       mode;
} VkCopyAccelerationStructureToMemoryInfoKHR;
#endif

#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef struct VkCopyMemoryToAccelerationStructureInfoKHR {
    VkStructureType   sType;
    const  void *                                             pNext;
    VkDeviceOrHostAddressConstKHR                            src;
    VkAccelerationStructureKHR                               dst;
    VkCopyAccelerationStructureModeKHR                       mode;
} VkCopyMemoryToAccelerationStructureInfoKHR;
#endif

typedef struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT {
    VkStructureType   sType;
    void *         pNext;
    VkBool32                             extendedDynamicState;
} VkPhysicalDeviceExtendedDynamicStateFeaturesEXT;

typedef struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV {
    VkStructureType sType;
    void *     pNext;
    VkBool32                         diagnosticsConfig;
} VkPhysicalDeviceDiagnosticsConfigFeaturesNV;

typedef struct VkDeviceDiagnosticsConfigCreateInfoNV {
    VkStructureType   sType;
    const  void *                                          pNext;
    VkDeviceDiagnosticsConfigFlagsNV      flags;
} VkDeviceDiagnosticsConfigCreateInfoNV;

typedef struct VkPhysicalDeviceRobustness2FeaturesEXT {
    VkStructureType   sType;
    void *         pNext;
    VkBool32                             robustBufferAccess2;
    VkBool32                             robustImageAccess2;
    VkBool32                             nullDescriptor;
} VkPhysicalDeviceRobustness2FeaturesEXT;

typedef struct VkPhysicalDeviceRobustness2PropertiesEXT {
    VkStructureType   sType;
    void *         pNext;
    VkDeviceSize                         robustStorageBufferAccessSizeAlignment;
    VkDeviceSize                         robustUniformBufferAccessSizeAlignment;
} VkPhysicalDeviceRobustness2PropertiesEXT;

typedef struct VkPhysicalDeviceImageRobustnessFeaturesEXT {
    VkStructureType   sType;
    void *         pNext;
    VkBool32                             robustImageAccess;
} VkPhysicalDeviceImageRobustnessFeaturesEXT;

typedef struct VkPhysicalDevice4444FormatsFeaturesEXT {
    VkStructureType   sType;
    void *         pNext;
    VkBool32                             formatA4R4G4B4;
    VkBool32                             formatA4B4G4R4;
} VkPhysicalDevice4444FormatsFeaturesEXT;

typedef VkBool32 (VKAPI_PTR *PFN_vkDebugUtilsMessengerCallbackEXT)(
    VkDebugUtilsMessageSeverityFlagBitsEXT           messageSeverity,
    VkDebugUtilsMessageTypeFlagsEXT                  messageTypes,
    const VkDebugUtilsMessengerCallbackDataEXT*      pCallbackData,
    void*                                            pUserData);

typedef struct VkPhysicalDeviceProperties {
    uint32_t         apiVersion;
    uint32_t         driverVersion;
    uint32_t         vendorID;
    uint32_t         deviceID;
    VkPhysicalDeviceType   deviceType;
    char             deviceName [ VK_MAX_PHYSICAL_DEVICE_NAME_SIZE ];
    uint8_t          pipelineCacheUUID [ VK_UUID_SIZE ];
    VkPhysicalDeviceLimits   limits;
    VkPhysicalDeviceSparseProperties   sparseProperties;
} VkPhysicalDeviceProperties;

typedef struct VkDeviceCreateInfo {
    VkStructureType   sType;
    const  void *      pNext;
    VkDeviceCreateFlags      flags;
    uint32_t          queueCreateInfoCount;
    const  VkDeviceQueueCreateInfo *  pQueueCreateInfos;
    uint32_t                 enabledLayerCount;
    const  char * const*       ppEnabledLayerNames;
    uint32_t                 enabledExtensionCount;
    const  char * const*       ppEnabledExtensionNames;
    const  VkPhysicalDeviceFeatures *  pEnabledFeatures;
} VkDeviceCreateInfo;

typedef struct VkPhysicalDeviceMemoryProperties {
    uint32_t                 memoryTypeCount;
    VkMemoryType             memoryTypes [ VK_MAX_MEMORY_TYPES ];
    uint32_t                 memoryHeapCount;
    VkMemoryHeap             memoryHeaps [ VK_MAX_MEMORY_HEAPS ];
} VkPhysicalDeviceMemoryProperties;

typedef struct VkPhysicalDeviceProperties2 {
    VkStructureType   sType;
    void *                             pNext;
    VkPhysicalDeviceProperties         properties;
} VkPhysicalDeviceProperties2;

typedef struct VkPhysicalDeviceProperties2  VkPhysicalDeviceProperties2KHR;

typedef struct VkPhysicalDeviceMemoryProperties2 {
    VkStructureType   sType;
    void *                             pNext;
    VkPhysicalDeviceMemoryProperties   memoryProperties;
} VkPhysicalDeviceMemoryProperties2;

typedef struct VkPhysicalDeviceMemoryProperties2  VkPhysicalDeviceMemoryProperties2KHR;

typedef struct VkPresentRegionsKHR {
    VkStructureType   sType;
    const  void *                       pNext;
    uint32_t                           swapchainCount;
    const  VkPresentRegionKHR *    pRegions;
} VkPresentRegionsKHR;

typedef struct VkDebugUtilsMessengerCreateInfoEXT {
    VkStructureType   sType;
    const  void *                                           pNext;
    VkDebugUtilsMessengerCreateFlagsEXT    flags;
    VkDebugUtilsMessageSeverityFlagsEXT                    messageSeverity;
    VkDebugUtilsMessageTypeFlagsEXT                        messageType;
    PFN_vkDebugUtilsMessengerCallbackEXT                   pfnUserCallback;
    void *                                 pUserData;
} VkDebugUtilsMessengerCreateInfoEXT;

typedef struct VkDrmFormatModifierPropertiesListEXT {
    VkStructureType   sType;
    void *  pNext;
    uint32_t   drmFormatModifierCount;
    VkDrmFormatModifierPropertiesEXT *  pDrmFormatModifierProperties;
} VkDrmFormatModifierPropertiesListEXT;

typedef struct VkFramebufferAttachmentsCreateInfo {
    VkStructureType   sType;
    const  void *                               pNext;
    uint32_t                   attachmentImageInfoCount;
    const  VkFramebufferAttachmentImageInfo *  pAttachmentImageInfos;
} VkFramebufferAttachmentsCreateInfo;

typedef struct VkFramebufferAttachmentsCreateInfo  VkFramebufferAttachmentsCreateInfoKHR;



#define VK_VERSION_1_0 1
GLAD_API_CALL int GLAD_VK_VERSION_1_0;
#define VK_VERSION_1_1 1
GLAD_API_CALL int GLAD_VK_VERSION_1_1;
#define VK_VERSION_1_2 1
GLAD_API_CALL int GLAD_VK_VERSION_1_2;
#define VK_AMD_buffer_marker 1
GLAD_API_CALL int GLAD_VK_AMD_buffer_marker;
#define VK_AMD_device_coherent_memory 1
GLAD_API_CALL int GLAD_VK_AMD_device_coherent_memory;
#define VK_AMD_display_native_hdr 1
GLAD_API_CALL int GLAD_VK_AMD_display_native_hdr;
#define VK_AMD_draw_indirect_count 1
GLAD_API_CALL int GLAD_VK_AMD_draw_indirect_count;
#define VK_AMD_gcn_shader 1
GLAD_API_CALL int GLAD_VK_AMD_gcn_shader;
#define VK_AMD_gpu_shader_half_float 1
GLAD_API_CALL int GLAD_VK_AMD_gpu_shader_half_float;
#define VK_AMD_gpu_shader_int16 1
GLAD_API_CALL int GLAD_VK_AMD_gpu_shader_int16;
#define VK_AMD_memory_overallocation_behavior 1
GLAD_API_CALL int GLAD_VK_AMD_memory_overallocation_behavior;
#define VK_AMD_mixed_attachment_samples 1
GLAD_API_CALL int GLAD_VK_AMD_mixed_attachment_samples;
#define VK_AMD_negative_viewport_height 1
GLAD_API_CALL int GLAD_VK_AMD_negative_viewport_height;
#define VK_AMD_pipeline_compiler_control 1
GLAD_API_CALL int GLAD_VK_AMD_pipeline_compiler_control;
#define VK_AMD_rasterization_order 1
GLAD_API_CALL int GLAD_VK_AMD_rasterization_order;
#define VK_AMD_shader_ballot 1
GLAD_API_CALL int GLAD_VK_AMD_shader_ballot;
#define VK_AMD_shader_core_properties 1
GLAD_API_CALL int GLAD_VK_AMD_shader_core_properties;
#define VK_AMD_shader_core_properties2 1
GLAD_API_CALL int GLAD_VK_AMD_shader_core_properties2;
#define VK_AMD_shader_explicit_vertex_parameter 1
GLAD_API_CALL int GLAD_VK_AMD_shader_explicit_vertex_parameter;
#define VK_AMD_shader_fragment_mask 1
GLAD_API_CALL int GLAD_VK_AMD_shader_fragment_mask;
#define VK_AMD_shader_image_load_store_lod 1
GLAD_API_CALL int GLAD_VK_AMD_shader_image_load_store_lod;
#define VK_AMD_shader_info 1
GLAD_API_CALL int GLAD_VK_AMD_shader_info;
#define VK_AMD_shader_trinary_minmax 1
GLAD_API_CALL int GLAD_VK_AMD_shader_trinary_minmax;
#define VK_AMD_texture_gather_bias_lod 1
GLAD_API_CALL int GLAD_VK_AMD_texture_gather_bias_lod;
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
#define VK_ANDROID_external_memory_android_hardware_buffer 1
GLAD_API_CALL int GLAD_VK_ANDROID_external_memory_android_hardware_buffer;
#endif
#define VK_EXT_4444_formats 1
GLAD_API_CALL int GLAD_VK_EXT_4444_formats;
#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
#define VK_EXT_acquire_xlib_display 1
GLAD_API_CALL int GLAD_VK_EXT_acquire_xlib_display;
#endif
#define VK_EXT_astc_decode_mode 1
GLAD_API_CALL int GLAD_VK_EXT_astc_decode_mode;
#define VK_EXT_blend_operation_advanced 1
GLAD_API_CALL int GLAD_VK_EXT_blend_operation_advanced;
#define VK_EXT_buffer_device_address 1
GLAD_API_CALL int GLAD_VK_EXT_buffer_device_address;
#define VK_EXT_calibrated_timestamps 1
GLAD_API_CALL int GLAD_VK_EXT_calibrated_timestamps;
#define VK_EXT_conditional_rendering 1
GLAD_API_CALL int GLAD_VK_EXT_conditional_rendering;
#define VK_EXT_conservative_rasterization 1
GLAD_API_CALL int GLAD_VK_EXT_conservative_rasterization;
#define VK_EXT_custom_border_color 1
GLAD_API_CALL int GLAD_VK_EXT_custom_border_color;
#define VK_EXT_debug_marker 1
GLAD_API_CALL int GLAD_VK_EXT_debug_marker;
#define VK_EXT_debug_report 1
GLAD_API_CALL int GLAD_VK_EXT_debug_report;
#define VK_EXT_debug_utils 1
GLAD_API_CALL int GLAD_VK_EXT_debug_utils;
#define VK_EXT_depth_clip_enable 1
GLAD_API_CALL int GLAD_VK_EXT_depth_clip_enable;
#define VK_EXT_depth_range_unrestricted 1
GLAD_API_CALL int GLAD_VK_EXT_depth_range_unrestricted;
#define VK_EXT_descriptor_indexing 1
GLAD_API_CALL int GLAD_VK_EXT_descriptor_indexing;
#define VK_EXT_direct_mode_display 1
GLAD_API_CALL int GLAD_VK_EXT_direct_mode_display;
#if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
#define VK_EXT_directfb_surface 1
GLAD_API_CALL int GLAD_VK_EXT_directfb_surface;
#endif
#define VK_EXT_discard_rectangles 1
GLAD_API_CALL int GLAD_VK_EXT_discard_rectangles;
#define VK_EXT_display_control 1
GLAD_API_CALL int GLAD_VK_EXT_display_control;
#define VK_EXT_display_surface_counter 1
GLAD_API_CALL int GLAD_VK_EXT_display_surface_counter;
#define VK_EXT_extended_dynamic_state 1
GLAD_API_CALL int GLAD_VK_EXT_extended_dynamic_state;
#define VK_EXT_external_memory_dma_buf 1
GLAD_API_CALL int GLAD_VK_EXT_external_memory_dma_buf;
#define VK_EXT_external_memory_host 1
GLAD_API_CALL int GLAD_VK_EXT_external_memory_host;
#define VK_EXT_filter_cubic 1
GLAD_API_CALL int GLAD_VK_EXT_filter_cubic;
#define VK_EXT_fragment_density_map 1
GLAD_API_CALL int GLAD_VK_EXT_fragment_density_map;
#define VK_EXT_fragment_density_map2 1
GLAD_API_CALL int GLAD_VK_EXT_fragment_density_map2;
#define VK_EXT_fragment_shader_interlock 1
GLAD_API_CALL int GLAD_VK_EXT_fragment_shader_interlock;
#if defined(VK_USE_PLATFORM_WIN32_KHR)
#define VK_EXT_full_screen_exclusive 1
GLAD_API_CALL int GLAD_VK_EXT_full_screen_exclusive;
#endif
#define VK_EXT_global_priority 1
GLAD_API_CALL int GLAD_VK_EXT_global_priority;
#define VK_EXT_hdr_metadata 1
GLAD_API_CALL int GLAD_VK_EXT_hdr_metadata;
#define VK_EXT_headless_surface 1
GLAD_API_CALL int GLAD_VK_EXT_headless_surface;
#define VK_EXT_host_query_reset 1
GLAD_API_CALL int GLAD_VK_EXT_host_query_reset;
#define VK_EXT_image_drm_format_modifier 1
GLAD_API_CALL int GLAD_VK_EXT_image_drm_format_modifier;
#define VK_EXT_image_robustness 1
GLAD_API_CALL int GLAD_VK_EXT_image_robustness;
#define VK_EXT_index_type_uint8 1
GLAD_API_CALL int GLAD_VK_EXT_index_type_uint8;
#define VK_EXT_inline_uniform_block 1
GLAD_API_CALL int GLAD_VK_EXT_inline_uniform_block;
#define VK_EXT_line_rasterization 1
GLAD_API_CALL int GLAD_VK_EXT_line_rasterization;
#define VK_EXT_memory_budget 1
GLAD_API_CALL int GLAD_VK_EXT_memory_budget;
#define VK_EXT_memory_priority 1
GLAD_API_CALL int GLAD_VK_EXT_memory_priority;
#if defined(VK_USE_PLATFORM_METAL_EXT)
#define VK_EXT_metal_surface 1
GLAD_API_CALL int GLAD_VK_EXT_metal_surface;
#endif
#define VK_EXT_pci_bus_info 1
GLAD_API_CALL int GLAD_VK_EXT_pci_bus_info;
#define VK_EXT_pipeline_creation_cache_control 1
GLAD_API_CALL int GLAD_VK_EXT_pipeline_creation_cache_control;
#define VK_EXT_pipeline_creation_feedback 1
GLAD_API_CALL int GLAD_VK_EXT_pipeline_creation_feedback;
#define VK_EXT_post_depth_coverage 1
GLAD_API_CALL int GLAD_VK_EXT_post_depth_coverage;
#define VK_EXT_private_data 1
GLAD_API_CALL int GLAD_VK_EXT_private_data;
#define VK_EXT_queue_family_foreign 1
GLAD_API_CALL int GLAD_VK_EXT_queue_family_foreign;
#define VK_EXT_robustness2 1
GLAD_API_CALL int GLAD_VK_EXT_robustness2;
#define VK_EXT_sample_locations 1
GLAD_API_CALL int GLAD_VK_EXT_sample_locations;
#define VK_EXT_sampler_filter_minmax 1
GLAD_API_CALL int GLAD_VK_EXT_sampler_filter_minmax;
#define VK_EXT_scalar_block_layout 1
GLAD_API_CALL int GLAD_VK_EXT_scalar_block_layout;
#define VK_EXT_separate_stencil_usage 1
GLAD_API_CALL int GLAD_VK_EXT_separate_stencil_usage;
#define VK_EXT_shader_atomic_float 1
GLAD_API_CALL int GLAD_VK_EXT_shader_atomic_float;
#define VK_EXT_shader_demote_to_helper_invocation 1
GLAD_API_CALL int GLAD_VK_EXT_shader_demote_to_helper_invocation;
#define VK_EXT_shader_stencil_export 1
GLAD_API_CALL int GLAD_VK_EXT_shader_stencil_export;
#define VK_EXT_shader_subgroup_ballot 1
GLAD_API_CALL int GLAD_VK_EXT_shader_subgroup_ballot;
#define VK_EXT_shader_subgroup_vote 1
GLAD_API_CALL int GLAD_VK_EXT_shader_subgroup_vote;
#define VK_EXT_shader_viewport_index_layer 1
GLAD_API_CALL int GLAD_VK_EXT_shader_viewport_index_layer;
#define VK_EXT_subgroup_size_control 1
GLAD_API_CALL int GLAD_VK_EXT_subgroup_size_control;
#define VK_EXT_swapchain_colorspace 1
GLAD_API_CALL int GLAD_VK_EXT_swapchain_colorspace;
#define VK_EXT_texel_buffer_alignment 1
GLAD_API_CALL int GLAD_VK_EXT_texel_buffer_alignment;
#define VK_EXT_texture_compression_astc_hdr 1
GLAD_API_CALL int GLAD_VK_EXT_texture_compression_astc_hdr;
#define VK_EXT_tooling_info 1
GLAD_API_CALL int GLAD_VK_EXT_tooling_info;
#define VK_EXT_transform_feedback 1
GLAD_API_CALL int GLAD_VK_EXT_transform_feedback;
#define VK_EXT_validation_cache 1
GLAD_API_CALL int GLAD_VK_EXT_validation_cache;
#define VK_EXT_validation_features 1
GLAD_API_CALL int GLAD_VK_EXT_validation_features;
#define VK_EXT_validation_flags 1
GLAD_API_CALL int GLAD_VK_EXT_validation_flags;
#define VK_EXT_vertex_attribute_divisor 1
GLAD_API_CALL int GLAD_VK_EXT_vertex_attribute_divisor;
#define VK_EXT_ycbcr_image_arrays 1
GLAD_API_CALL int GLAD_VK_EXT_ycbcr_image_arrays;
#if defined(VK_USE_PLATFORM_FUCHSIA)
#define VK_FUCHSIA_imagepipe_surface 1
GLAD_API_CALL int GLAD_VK_FUCHSIA_imagepipe_surface;
#endif
#if defined(VK_USE_PLATFORM_GGP)
#define VK_GGP_frame_token 1
GLAD_API_CALL int GLAD_VK_GGP_frame_token;
#endif
#if defined(VK_USE_PLATFORM_GGP)
#define VK_GGP_stream_descriptor_surface 1
GLAD_API_CALL int GLAD_VK_GGP_stream_descriptor_surface;
#endif
#define VK_GOOGLE_decorate_string 1
GLAD_API_CALL int GLAD_VK_GOOGLE_decorate_string;
#define VK_GOOGLE_display_timing 1
GLAD_API_CALL int GLAD_VK_GOOGLE_display_timing;
#define VK_GOOGLE_hlsl_functionality1 1
GLAD_API_CALL int GLAD_VK_GOOGLE_hlsl_functionality1;
#define VK_GOOGLE_user_type 1
GLAD_API_CALL int GLAD_VK_GOOGLE_user_type;
#define VK_IMG_filter_cubic 1
GLAD_API_CALL int GLAD_VK_IMG_filter_cubic;
#define VK_IMG_format_pvrtc 1
GLAD_API_CALL int GLAD_VK_IMG_format_pvrtc;
#define VK_INTEL_performance_query 1
GLAD_API_CALL int GLAD_VK_INTEL_performance_query;
#define VK_INTEL_shader_integer_functions2 1
GLAD_API_CALL int GLAD_VK_INTEL_shader_integer_functions2;
#define VK_KHR_16bit_storage 1
GLAD_API_CALL int GLAD_VK_KHR_16bit_storage;
#define VK_KHR_8bit_storage 1
GLAD_API_CALL int GLAD_VK_KHR_8bit_storage;
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
#define VK_KHR_android_surface 1
GLAD_API_CALL int GLAD_VK_KHR_android_surface;
#endif
#define VK_KHR_bind_memory2 1
GLAD_API_CALL int GLAD_VK_KHR_bind_memory2;
#define VK_KHR_buffer_device_address 1
GLAD_API_CALL int GLAD_VK_KHR_buffer_device_address;
#define VK_KHR_create_renderpass2 1
GLAD_API_CALL int GLAD_VK_KHR_create_renderpass2;
#define VK_KHR_dedicated_allocation 1
GLAD_API_CALL int GLAD_VK_KHR_dedicated_allocation;
#if defined(VK_ENABLE_BETA_EXTENSIONS)
#define VK_KHR_deferred_host_operations 1
GLAD_API_CALL int GLAD_VK_KHR_deferred_host_operations;
#endif
#define VK_KHR_depth_stencil_resolve 1
GLAD_API_CALL int GLAD_VK_KHR_depth_stencil_resolve;
#define VK_KHR_descriptor_update_template 1
GLAD_API_CALL int GLAD_VK_KHR_descriptor_update_template;
#define VK_KHR_device_group 1
GLAD_API_CALL int GLAD_VK_KHR_device_group;
#define VK_KHR_device_group_creation 1
GLAD_API_CALL int GLAD_VK_KHR_device_group_creation;
#define VK_KHR_display 1
GLAD_API_CALL int GLAD_VK_KHR_display;
#define VK_KHR_display_swapchain 1
GLAD_API_CALL int GLAD_VK_KHR_display_swapchain;
#define VK_KHR_draw_indirect_count 1
GLAD_API_CALL int GLAD_VK_KHR_draw_indirect_count;
#define VK_KHR_driver_properties 1
GLAD_API_CALL int GLAD_VK_KHR_driver_properties;
#define VK_KHR_external_fence 1
GLAD_API_CALL int GLAD_VK_KHR_external_fence;
#define VK_KHR_external_fence_capabilities 1
GLAD_API_CALL int GLAD_VK_KHR_external_fence_capabilities;
#define VK_KHR_external_fence_fd 1
GLAD_API_CALL int GLAD_VK_KHR_external_fence_fd;
#if defined(VK_USE_PLATFORM_WIN32_KHR)
#define VK_KHR_external_fence_win32 1
GLAD_API_CALL int GLAD_VK_KHR_external_fence_win32;
#endif
#define VK_KHR_external_memory 1
GLAD_API_CALL int GLAD_VK_KHR_external_memory;
#define VK_KHR_external_memory_capabilities 1
GLAD_API_CALL int GLAD_VK_KHR_external_memory_capabilities;
#define VK_KHR_external_memory_fd 1
GLAD_API_CALL int GLAD_VK_KHR_external_memory_fd;
#if defined(VK_USE_PLATFORM_WIN32_KHR)
#define VK_KHR_external_memory_win32 1
GLAD_API_CALL int GLAD_VK_KHR_external_memory_win32;
#endif
#define VK_KHR_external_semaphore 1
GLAD_API_CALL int GLAD_VK_KHR_external_semaphore;
#define VK_KHR_external_semaphore_capabilities 1
GLAD_API_CALL int GLAD_VK_KHR_external_semaphore_capabilities;
#define VK_KHR_external_semaphore_fd 1
GLAD_API_CALL int GLAD_VK_KHR_external_semaphore_fd;
#if defined(VK_USE_PLATFORM_WIN32_KHR)
#define VK_KHR_external_semaphore_win32 1
GLAD_API_CALL int GLAD_VK_KHR_external_semaphore_win32;
#endif
#define VK_KHR_get_display_properties2 1
GLAD_API_CALL int GLAD_VK_KHR_get_display_properties2;
#define VK_KHR_get_memory_requirements2 1
GLAD_API_CALL int GLAD_VK_KHR_get_memory_requirements2;
#define VK_KHR_get_physical_device_properties2 1
GLAD_API_CALL int GLAD_VK_KHR_get_physical_device_properties2;
#define VK_KHR_get_surface_capabilities2 1
GLAD_API_CALL int GLAD_VK_KHR_get_surface_capabilities2;
#define VK_KHR_image_format_list 1
GLAD_API_CALL int GLAD_VK_KHR_image_format_list;
#define VK_KHR_imageless_framebuffer 1
GLAD_API_CALL int GLAD_VK_KHR_imageless_framebuffer;
#define VK_KHR_incremental_present 1
GLAD_API_CALL int GLAD_VK_KHR_incremental_present;
#define VK_KHR_maintenance1 1
GLAD_API_CALL int GLAD_VK_KHR_maintenance1;
#define VK_KHR_maintenance2 1
GLAD_API_CALL int GLAD_VK_KHR_maintenance2;
#define VK_KHR_maintenance3 1
GLAD_API_CALL int GLAD_VK_KHR_maintenance3;
#define VK_KHR_multiview 1
GLAD_API_CALL int GLAD_VK_KHR_multiview;
#define VK_KHR_performance_query 1
GLAD_API_CALL int GLAD_VK_KHR_performance_query;
#define VK_KHR_pipeline_executable_properties 1
GLAD_API_CALL int GLAD_VK_KHR_pipeline_executable_properties;
#if defined(VK_ENABLE_BETA_EXTENSIONS)
#define VK_KHR_pipeline_library 1
GLAD_API_CALL int GLAD_VK_KHR_pipeline_library;
#endif
#define VK_KHR_push_descriptor 1
GLAD_API_CALL int GLAD_VK_KHR_push_descriptor;
#if defined(VK_ENABLE_BETA_EXTENSIONS)
#define VK_KHR_ray_tracing 1
GLAD_API_CALL int GLAD_VK_KHR_ray_tracing;
#endif
#define VK_KHR_relaxed_block_layout 1
GLAD_API_CALL int GLAD_VK_KHR_relaxed_block_layout;
#define VK_KHR_sampler_mirror_clamp_to_edge 1
GLAD_API_CALL int GLAD_VK_KHR_sampler_mirror_clamp_to_edge;
#define VK_KHR_sampler_ycbcr_conversion 1
GLAD_API_CALL int GLAD_VK_KHR_sampler_ycbcr_conversion;
#define VK_KHR_separate_depth_stencil_layouts 1
GLAD_API_CALL int GLAD_VK_KHR_separate_depth_stencil_layouts;
#define VK_KHR_shader_atomic_int64 1
GLAD_API_CALL int GLAD_VK_KHR_shader_atomic_int64;
#define VK_KHR_shader_clock 1
GLAD_API_CALL int GLAD_VK_KHR_shader_clock;
#define VK_KHR_shader_draw_parameters 1
GLAD_API_CALL int GLAD_VK_KHR_shader_draw_parameters;
#define VK_KHR_shader_float16_int8 1
GLAD_API_CALL int GLAD_VK_KHR_shader_float16_int8;
#define VK_KHR_shader_float_controls 1
GLAD_API_CALL int GLAD_VK_KHR_shader_float_controls;
#define VK_KHR_shader_non_semantic_info 1
GLAD_API_CALL int GLAD_VK_KHR_shader_non_semantic_info;
#define VK_KHR_shader_subgroup_extended_types 1
GLAD_API_CALL int GLAD_VK_KHR_shader_subgroup_extended_types;
#define VK_KHR_shared_presentable_image 1
GLAD_API_CALL int GLAD_VK_KHR_shared_presentable_image;
#define VK_KHR_spirv_1_4 1
GLAD_API_CALL int GLAD_VK_KHR_spirv_1_4;
#define VK_KHR_storage_buffer_storage_class 1
GLAD_API_CALL int GLAD_VK_KHR_storage_buffer_storage_class;
#define VK_KHR_surface 1
GLAD_API_CALL int GLAD_VK_KHR_surface;
#define VK_KHR_surface_protected_capabilities 1
GLAD_API_CALL int GLAD_VK_KHR_surface_protected_capabilities;
#define VK_KHR_swapchain 1
GLAD_API_CALL int GLAD_VK_KHR_swapchain;
#define VK_KHR_swapchain_mutable_format 1
GLAD_API_CALL int GLAD_VK_KHR_swapchain_mutable_format;
#define VK_KHR_timeline_semaphore 1
GLAD_API_CALL int GLAD_VK_KHR_timeline_semaphore;
#define VK_KHR_uniform_buffer_standard_layout 1
GLAD_API_CALL int GLAD_VK_KHR_uniform_buffer_standard_layout;
#define VK_KHR_variable_pointers 1
GLAD_API_CALL int GLAD_VK_KHR_variable_pointers;
#define VK_KHR_vulkan_memory_model 1
GLAD_API_CALL int GLAD_VK_KHR_vulkan_memory_model;
#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
#define VK_KHR_wayland_surface 1
GLAD_API_CALL int GLAD_VK_KHR_wayland_surface;
#endif
#if defined(VK_USE_PLATFORM_WIN32_KHR)
#define VK_KHR_win32_keyed_mutex 1
GLAD_API_CALL int GLAD_VK_KHR_win32_keyed_mutex;
#endif
#if defined(VK_USE_PLATFORM_WIN32_KHR)
#define VK_KHR_win32_surface 1
GLAD_API_CALL int GLAD_VK_KHR_win32_surface;
#endif
#if defined(VK_USE_PLATFORM_XCB_KHR)
#define VK_KHR_xcb_surface 1
GLAD_API_CALL int GLAD_VK_KHR_xcb_surface;
#endif
#if defined(VK_USE_PLATFORM_XLIB_KHR)
#define VK_KHR_xlib_surface 1
GLAD_API_CALL int GLAD_VK_KHR_xlib_surface;
#endif
#if defined(VK_USE_PLATFORM_IOS_MVK)
#define VK_MVK_ios_surface 1
GLAD_API_CALL int GLAD_VK_MVK_ios_surface;
#endif
#if defined(VK_USE_PLATFORM_MACOS_MVK)
#define VK_MVK_macos_surface 1
GLAD_API_CALL int GLAD_VK_MVK_macos_surface;
#endif
#if defined(VK_USE_PLATFORM_VI_NN)
#define VK_NN_vi_surface 1
GLAD_API_CALL int GLAD_VK_NN_vi_surface;
#endif
#define VK_NVX_image_view_handle 1
GLAD_API_CALL int GLAD_VK_NVX_image_view_handle;
#define VK_NVX_multiview_per_view_attributes 1
GLAD_API_CALL int GLAD_VK_NVX_multiview_per_view_attributes;
#define VK_NV_clip_space_w_scaling 1
GLAD_API_CALL int GLAD_VK_NV_clip_space_w_scaling;
#define VK_NV_compute_shader_derivatives 1
GLAD_API_CALL int GLAD_VK_NV_compute_shader_derivatives;
#define VK_NV_cooperative_matrix 1
GLAD_API_CALL int GLAD_VK_NV_cooperative_matrix;
#define VK_NV_corner_sampled_image 1
GLAD_API_CALL int GLAD_VK_NV_corner_sampled_image;
#define VK_NV_coverage_reduction_mode 1
GLAD_API_CALL int GLAD_VK_NV_coverage_reduction_mode;
#define VK_NV_dedicated_allocation 1
GLAD_API_CALL int GLAD_VK_NV_dedicated_allocation;
#define VK_NV_dedicated_allocation_image_aliasing 1
GLAD_API_CALL int GLAD_VK_NV_dedicated_allocation_image_aliasing;
#define VK_NV_device_diagnostic_checkpoints 1
GLAD_API_CALL int GLAD_VK_NV_device_diagnostic_checkpoints;
#define VK_NV_device_diagnostics_config 1
GLAD_API_CALL int GLAD_VK_NV_device_diagnostics_config;
#define VK_NV_device_generated_commands 1
GLAD_API_CALL int GLAD_VK_NV_device_generated_commands;
#define VK_NV_external_memory 1
GLAD_API_CALL int GLAD_VK_NV_external_memory;
#define VK_NV_external_memory_capabilities 1
GLAD_API_CALL int GLAD_VK_NV_external_memory_capabilities;
#if defined(VK_USE_PLATFORM_WIN32_KHR)
#define VK_NV_external_memory_win32 1
GLAD_API_CALL int GLAD_VK_NV_external_memory_win32;
#endif
#define VK_NV_fill_rectangle 1
GLAD_API_CALL int GLAD_VK_NV_fill_rectangle;
#define VK_NV_fragment_coverage_to_color 1
GLAD_API_CALL int GLAD_VK_NV_fragment_coverage_to_color;
#define VK_NV_fragment_shader_barycentric 1
GLAD_API_CALL int GLAD_VK_NV_fragment_shader_barycentric;
#define VK_NV_framebuffer_mixed_samples 1
GLAD_API_CALL int GLAD_VK_NV_framebuffer_mixed_samples;
#define VK_NV_geometry_shader_passthrough 1
GLAD_API_CALL int GLAD_VK_NV_geometry_shader_passthrough;
#define VK_NV_glsl_shader 1
GLAD_API_CALL int GLAD_VK_NV_glsl_shader;
#define VK_NV_mesh_shader 1
GLAD_API_CALL int GLAD_VK_NV_mesh_shader;
#define VK_NV_ray_tracing 1
GLAD_API_CALL int GLAD_VK_NV_ray_tracing;
#define VK_NV_representative_fragment_test 1
GLAD_API_CALL int GLAD_VK_NV_representative_fragment_test;
#define VK_NV_sample_mask_override_coverage 1
GLAD_API_CALL int GLAD_VK_NV_sample_mask_override_coverage;
#define VK_NV_scissor_exclusive 1
GLAD_API_CALL int GLAD_VK_NV_scissor_exclusive;
#define VK_NV_shader_image_footprint 1
GLAD_API_CALL int GLAD_VK_NV_shader_image_footprint;
#define VK_NV_shader_sm_builtins 1
GLAD_API_CALL int GLAD_VK_NV_shader_sm_builtins;
#define VK_NV_shader_subgroup_partitioned 1
GLAD_API_CALL int GLAD_VK_NV_shader_subgroup_partitioned;
#define VK_NV_shading_rate_image 1
GLAD_API_CALL int GLAD_VK_NV_shading_rate_image;
#define VK_NV_viewport_array2 1
GLAD_API_CALL int GLAD_VK_NV_viewport_array2;
#define VK_NV_viewport_swizzle 1
GLAD_API_CALL int GLAD_VK_NV_viewport_swizzle;
#if defined(VK_USE_PLATFORM_WIN32_KHR)
#define VK_NV_win32_keyed_mutex 1
GLAD_API_CALL int GLAD_VK_NV_win32_keyed_mutex;
#endif
#define VK_QCOM_render_pass_shader_resolve 1
GLAD_API_CALL int GLAD_VK_QCOM_render_pass_shader_resolve;
#define VK_QCOM_render_pass_store_ops 1
GLAD_API_CALL int GLAD_VK_QCOM_render_pass_store_ops;
#define VK_QCOM_render_pass_transform 1
GLAD_API_CALL int GLAD_VK_QCOM_render_pass_transform;


#if defined(VK_USE_PLATFORM_WIN32_KHR)
typedef VkResult (GLAD_API_PTR *PFN_vkAcquireFullScreenExclusiveModeEXT)(VkDevice device, VkSwapchainKHR swapchain);
#endif
typedef VkResult (GLAD_API_PTR *PFN_vkAcquireNextImage2KHR)(VkDevice device, const VkAcquireNextImageInfoKHR * pAcquireInfo, uint32_t * pImageIndex);
typedef VkResult (GLAD_API_PTR *PFN_vkAcquireNextImageKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t * pImageIndex);
typedef VkResult (GLAD_API_PTR *PFN_vkAcquirePerformanceConfigurationINTEL)(VkDevice device, const VkPerformanceConfigurationAcquireInfoINTEL * pAcquireInfo, VkPerformanceConfigurationINTEL * pConfiguration);
typedef VkResult (GLAD_API_PTR *PFN_vkAcquireProfilingLockKHR)(VkDevice device, const VkAcquireProfilingLockInfoKHR * pInfo);
#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
typedef VkResult (GLAD_API_PTR *PFN_vkAcquireXlibDisplayEXT)(VkPhysicalDevice physicalDevice, Display * dpy, VkDisplayKHR display);
#endif
typedef VkResult (GLAD_API_PTR *PFN_vkAllocateCommandBuffers)(VkDevice device, const VkCommandBufferAllocateInfo * pAllocateInfo, VkCommandBuffer * pCommandBuffers);
typedef VkResult (GLAD_API_PTR *PFN_vkAllocateDescriptorSets)(VkDevice device, const VkDescriptorSetAllocateInfo * pAllocateInfo, VkDescriptorSet * pDescriptorSets);
typedef VkResult (GLAD_API_PTR *PFN_vkAllocateMemory)(VkDevice device, const VkMemoryAllocateInfo * pAllocateInfo, const VkAllocationCallbacks * pAllocator, VkDeviceMemory * pMemory);
typedef VkResult (GLAD_API_PTR *PFN_vkBeginCommandBuffer)(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo * pBeginInfo);
#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef VkResult (GLAD_API_PTR *PFN_vkBindAccelerationStructureMemoryKHR)(VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoKHR * pBindInfos);
#endif
typedef VkResult (GLAD_API_PTR *PFN_vkBindAccelerationStructureMemoryNV)(VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoKHR * pBindInfos);
typedef VkResult (GLAD_API_PTR *PFN_vkBindBufferMemory)(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset);
typedef VkResult (GLAD_API_PTR *PFN_vkBindBufferMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo * pBindInfos);
typedef VkResult (GLAD_API_PTR *PFN_vkBindBufferMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo * pBindInfos);
typedef VkResult (GLAD_API_PTR *PFN_vkBindImageMemory)(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset);
typedef VkResult (GLAD_API_PTR *PFN_vkBindImageMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo * pBindInfos);
typedef VkResult (GLAD_API_PTR *PFN_vkBindImageMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo * pBindInfos);
#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef VkResult (GLAD_API_PTR *PFN_vkBuildAccelerationStructureKHR)(VkDevice device, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR * pInfos, const VkAccelerationStructureBuildOffsetInfoKHR * const* ppOffsetInfos);
#endif
typedef void (GLAD_API_PTR *PFN_vkCmdBeginConditionalRenderingEXT)(VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin);
typedef void (GLAD_API_PTR *PFN_vkCmdBeginDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT * pLabelInfo);
typedef void (GLAD_API_PTR *PFN_vkCmdBeginQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags);
typedef void (GLAD_API_PTR *PFN_vkCmdBeginQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index);
typedef void (GLAD_API_PTR *PFN_vkCmdBeginRenderPass)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo * pRenderPassBegin, VkSubpassContents contents);
typedef void (GLAD_API_PTR *PFN_vkCmdBeginRenderPass2)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo * pRenderPassBegin, const VkSubpassBeginInfo * pSubpassBeginInfo);
typedef void (GLAD_API_PTR *PFN_vkCmdBeginRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo * pRenderPassBegin, const VkSubpassBeginInfo * pSubpassBeginInfo);
typedef void (GLAD_API_PTR *PFN_vkCmdBeginTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer * pCounterBuffers, const VkDeviceSize * pCounterBufferOffsets);
typedef void (GLAD_API_PTR *PFN_vkCmdBindDescriptorSets)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const VkDescriptorSet * pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t * pDynamicOffsets);
typedef void (GLAD_API_PTR *PFN_vkCmdBindIndexBuffer)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
typedef void (GLAD_API_PTR *PFN_vkCmdBindPipeline)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
typedef void (GLAD_API_PTR *PFN_vkCmdBindPipelineShaderGroupNV)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline, uint32_t groupIndex);
typedef void (GLAD_API_PTR *PFN_vkCmdBindShadingRateImageNV)(VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout);
typedef void (GLAD_API_PTR *PFN_vkCmdBindTransformFeedbackBuffersEXT)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer * pBuffers, const VkDeviceSize * pOffsets, const VkDeviceSize * pSizes);
typedef void (GLAD_API_PTR *PFN_vkCmdBindVertexBuffers)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer * pBuffers, const VkDeviceSize * pOffsets);
typedef void (GLAD_API_PTR *PFN_vkCmdBindVertexBuffers2EXT)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer * pBuffers, const VkDeviceSize * pOffsets, const VkDeviceSize * pSizes, const VkDeviceSize * pStrides);
typedef void (GLAD_API_PTR *PFN_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit * pRegions, VkFilter filter);
#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef void (GLAD_API_PTR *PFN_vkCmdBuildAccelerationStructureIndirectKHR)(VkCommandBuffer commandBuffer, const VkAccelerationStructureBuildGeometryInfoKHR * pInfo, VkBuffer indirectBuffer, VkDeviceSize indirectOffset, uint32_t indirectStride);
#endif
#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef void (GLAD_API_PTR *PFN_vkCmdBuildAccelerationStructureKHR)(VkCommandBuffer commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR * pInfos, const VkAccelerationStructureBuildOffsetInfoKHR * const* ppOffsetInfos);
#endif
typedef void (GLAD_API_PTR *PFN_vkCmdBuildAccelerationStructureNV)(VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV * pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureKHR dst, VkAccelerationStructureKHR src, VkBuffer scratch, VkDeviceSize scratchOffset);
typedef void (GLAD_API_PTR *PFN_vkCmdClearAttachments)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment * pAttachments, uint32_t rectCount, const VkClearRect * pRects);
typedef void (GLAD_API_PTR *PFN_vkCmdClearColorImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue * pColor, uint32_t rangeCount, const VkImageSubresourceRange * pRanges);
typedef void (GLAD_API_PTR *PFN_vkCmdClearDepthStencilImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue * pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange * pRanges);
#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef void (GLAD_API_PTR *PFN_vkCmdCopyAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR * pInfo);
#endif
typedef void (GLAD_API_PTR *PFN_vkCmdCopyAccelerationStructureNV)(VkCommandBuffer commandBuffer, VkAccelerationStructureKHR dst, VkAccelerationStructureKHR src, VkCopyAccelerationStructureModeKHR mode);
#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef void (GLAD_API_PTR *PFN_vkCmdCopyAccelerationStructureToMemoryKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR * pInfo);
#endif
typedef void (GLAD_API_PTR *PFN_vkCmdCopyBuffer)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy * pRegions);
typedef void (GLAD_API_PTR *PFN_vkCmdCopyBufferToImage)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy * pRegions);
typedef void (GLAD_API_PTR *PFN_vkCmdCopyImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy * pRegions);
typedef void (GLAD_API_PTR *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy * pRegions);
#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef void (GLAD_API_PTR *PFN_vkCmdCopyMemoryToAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR * pInfo);
#endif
typedef void (GLAD_API_PTR *PFN_vkCmdCopyQueryPoolResults)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags);
typedef void (GLAD_API_PTR *PFN_vkCmdDebugMarkerBeginEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT * pMarkerInfo);
typedef void (GLAD_API_PTR *PFN_vkCmdDebugMarkerEndEXT)(VkCommandBuffer commandBuffer);
typedef void (GLAD_API_PTR *PFN_vkCmdDebugMarkerInsertEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT * pMarkerInfo);
typedef void (GLAD_API_PTR *PFN_vkCmdDispatch)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
typedef void (GLAD_API_PTR *PFN_vkCmdDispatchBase)(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
typedef void (GLAD_API_PTR *PFN_vkCmdDispatchBaseKHR)(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
typedef void (GLAD_API_PTR *PFN_vkCmdDispatchIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
typedef void (GLAD_API_PTR *PFN_vkCmdDraw)(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
typedef void (GLAD_API_PTR *PFN_vkCmdDrawIndexed)(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance);
typedef void (GLAD_API_PTR *PFN_vkCmdDrawIndexedIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
typedef void (GLAD_API_PTR *PFN_vkCmdDrawIndexedIndirectCount)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
typedef void (GLAD_API_PTR *PFN_vkCmdDrawIndexedIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
typedef void (GLAD_API_PTR *PFN_vkCmdDrawIndexedIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
typedef void (GLAD_API_PTR *PFN_vkCmdDrawIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
typedef void (GLAD_API_PTR *PFN_vkCmdDrawIndirectByteCountEXT)(VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride);
typedef void (GLAD_API_PTR *PFN_vkCmdDrawIndirectCount)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
typedef void (GLAD_API_PTR *PFN_vkCmdDrawIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
typedef void (GLAD_API_PTR *PFN_vkCmdDrawIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
typedef void (GLAD_API_PTR *PFN_vkCmdDrawMeshTasksIndirectCountNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
typedef void (GLAD_API_PTR *PFN_vkCmdDrawMeshTasksIndirectNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
typedef void (GLAD_API_PTR *PFN_vkCmdDrawMeshTasksNV)(VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask);
typedef void (GLAD_API_PTR *PFN_vkCmdEndConditionalRenderingEXT)(VkCommandBuffer commandBuffer);
typedef void (GLAD_API_PTR *PFN_vkCmdEndDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer);
typedef void (GLAD_API_PTR *PFN_vkCmdEndQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query);
typedef void (GLAD_API_PTR *PFN_vkCmdEndQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index);
typedef void (GLAD_API_PTR *PFN_vkCmdEndRenderPass)(VkCommandBuffer commandBuffer);
typedef void (GLAD_API_PTR *PFN_vkCmdEndRenderPass2)(VkCommandBuffer commandBuffer, const VkSubpassEndInfo * pSubpassEndInfo);
typedef void (GLAD_API_PTR *PFN_vkCmdEndRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassEndInfo * pSubpassEndInfo);
typedef void (GLAD_API_PTR *PFN_vkCmdEndTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer * pCounterBuffers, const VkDeviceSize * pCounterBufferOffsets);
typedef void (GLAD_API_PTR *PFN_vkCmdExecuteCommands)(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer * pCommandBuffers);
typedef void (GLAD_API_PTR *PFN_vkCmdExecuteGeneratedCommandsNV)(VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo);
typedef void (GLAD_API_PTR *PFN_vkCmdFillBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data);
typedef void (GLAD_API_PTR *PFN_vkCmdInsertDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT * pLabelInfo);
typedef void (GLAD_API_PTR *PFN_vkCmdNextSubpass)(VkCommandBuffer commandBuffer, VkSubpassContents contents);
typedef void (GLAD_API_PTR *PFN_vkCmdNextSubpass2)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo * pSubpassBeginInfo, const VkSubpassEndInfo * pSubpassEndInfo);
typedef void (GLAD_API_PTR *PFN_vkCmdNextSubpass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo * pSubpassBeginInfo, const VkSubpassEndInfo * pSubpassEndInfo);
typedef void (GLAD_API_PTR *PFN_vkCmdPipelineBarrier)(VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const VkMemoryBarrier * pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier * pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier * pImageMemoryBarriers);
typedef void (GLAD_API_PTR *PFN_vkCmdPreprocessGeneratedCommandsNV)(VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoNV * pGeneratedCommandsInfo);
typedef void (GLAD_API_PTR *PFN_vkCmdPushConstants)(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void * pValues);
typedef void (GLAD_API_PTR *PFN_vkCmdPushDescriptorSetKHR)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet * pDescriptorWrites);
typedef void (GLAD_API_PTR *PFN_vkCmdPushDescriptorSetWithTemplateKHR)(VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void * pData);
typedef void (GLAD_API_PTR *PFN_vkCmdResetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
typedef void (GLAD_API_PTR *PFN_vkCmdResetQueryPool)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
typedef void (GLAD_API_PTR *PFN_vkCmdResolveImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve * pRegions);
typedef void (GLAD_API_PTR *PFN_vkCmdSetBlendConstants)(VkCommandBuffer commandBuffer, const float blendConstants [4]);
typedef void (GLAD_API_PTR *PFN_vkCmdSetCheckpointNV)(VkCommandBuffer commandBuffer, const void * pCheckpointMarker);
typedef void (GLAD_API_PTR *PFN_vkCmdSetCoarseSampleOrderNV)(VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VkCoarseSampleOrderCustomNV * pCustomSampleOrders);
typedef void (GLAD_API_PTR *PFN_vkCmdSetCullModeEXT)(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode);
typedef void (GLAD_API_PTR *PFN_vkCmdSetDepthBias)(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
typedef void (GLAD_API_PTR *PFN_vkCmdSetDepthBounds)(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds);
typedef void (GLAD_API_PTR *PFN_vkCmdSetDepthBoundsTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable);
typedef void (GLAD_API_PTR *PFN_vkCmdSetDepthCompareOpEXT)(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp);
typedef void (GLAD_API_PTR *PFN_vkCmdSetDepthTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable);
typedef void (GLAD_API_PTR *PFN_vkCmdSetDepthWriteEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable);
typedef void (GLAD_API_PTR *PFN_vkCmdSetDeviceMask)(VkCommandBuffer commandBuffer, uint32_t deviceMask);
typedef void (GLAD_API_PTR *PFN_vkCmdSetDeviceMaskKHR)(VkCommandBuffer commandBuffer, uint32_t deviceMask);
typedef void (GLAD_API_PTR *PFN_vkCmdSetDiscardRectangleEXT)(VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D * pDiscardRectangles);
typedef void (GLAD_API_PTR *PFN_vkCmdSetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
typedef void (GLAD_API_PTR *PFN_vkCmdSetExclusiveScissorNV)(VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D * pExclusiveScissors);
typedef void (GLAD_API_PTR *PFN_vkCmdSetFrontFaceEXT)(VkCommandBuffer commandBuffer, VkFrontFace frontFace);
typedef void (GLAD_API_PTR *PFN_vkCmdSetLineStippleEXT)(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern);
typedef void (GLAD_API_PTR *PFN_vkCmdSetLineWidth)(VkCommandBuffer commandBuffer, float lineWidth);
typedef VkResult (GLAD_API_PTR *PFN_vkCmdSetPerformanceMarkerINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceMarkerInfoINTEL * pMarkerInfo);
typedef VkResult (GLAD_API_PTR *PFN_vkCmdSetPerformanceOverrideINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceOverrideInfoINTEL * pOverrideInfo);
typedef VkResult (GLAD_API_PTR *PFN_vkCmdSetPerformanceStreamMarkerINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceStreamMarkerInfoINTEL * pMarkerInfo);
typedef void (GLAD_API_PTR *PFN_vkCmdSetPrimitiveTopologyEXT)(VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology);
typedef void (GLAD_API_PTR *PFN_vkCmdSetSampleLocationsEXT)(VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT * pSampleLocationsInfo);
typedef void (GLAD_API_PTR *PFN_vkCmdSetScissor)(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D * pScissors);
typedef void (GLAD_API_PTR *PFN_vkCmdSetScissorWithCountEXT)(VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D * pScissors);
typedef void (GLAD_API_PTR *PFN_vkCmdSetStencilCompareMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask);
typedef void (GLAD_API_PTR *PFN_vkCmdSetStencilOpEXT)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp);
typedef void (GLAD_API_PTR *PFN_vkCmdSetStencilReference)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference);
typedef void (GLAD_API_PTR *PFN_vkCmdSetStencilTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable);
typedef void (GLAD_API_PTR *PFN_vkCmdSetStencilWriteMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask);
typedef void (GLAD_API_PTR *PFN_vkCmdSetViewport)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport * pViewports);
typedef void (GLAD_API_PTR *PFN_vkCmdSetViewportShadingRatePaletteNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkShadingRatePaletteNV * pShadingRatePalettes);
typedef void (GLAD_API_PTR *PFN_vkCmdSetViewportWScalingNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV * pViewportWScalings);
typedef void (GLAD_API_PTR *PFN_vkCmdSetViewportWithCountEXT)(VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport * pViewports);
#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef void (GLAD_API_PTR *PFN_vkCmdTraceRaysIndirectKHR)(VkCommandBuffer commandBuffer, const VkStridedBufferRegionKHR * pRaygenShaderBindingTable, const VkStridedBufferRegionKHR * pMissShaderBindingTable, const VkStridedBufferRegionKHR * pHitShaderBindingTable, const VkStridedBufferRegionKHR * pCallableShaderBindingTable, VkBuffer buffer, VkDeviceSize offset);
#endif
#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef void (GLAD_API_PTR *PFN_vkCmdTraceRaysKHR)(VkCommandBuffer commandBuffer, const VkStridedBufferRegionKHR * pRaygenShaderBindingTable, const VkStridedBufferRegionKHR * pMissShaderBindingTable, const VkStridedBufferRegionKHR * pHitShaderBindingTable, const VkStridedBufferRegionKHR * pCallableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth);
#endif
typedef void (GLAD_API_PTR *PFN_vkCmdTraceRaysNV)(VkCommandBuffer commandBuffer, VkBuffer raygenShaderBindingTableBuffer, VkDeviceSize raygenShaderBindingOffset, VkBuffer missShaderBindingTableBuffer, VkDeviceSize missShaderBindingOffset, VkDeviceSize missShaderBindingStride, VkBuffer hitShaderBindingTableBuffer, VkDeviceSize hitShaderBindingOffset, VkDeviceSize hitShaderBindingStride, VkBuffer callableShaderBindingTableBuffer, VkDeviceSize callableShaderBindingOffset, VkDeviceSize callableShaderBindingStride, uint32_t width, uint32_t height, uint32_t depth);
typedef void (GLAD_API_PTR *PFN_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void * pData);
typedef void (GLAD_API_PTR *PFN_vkCmdWaitEvents)(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent * pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const VkMemoryBarrier * pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier * pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier * pImageMemoryBarriers);
#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef void (GLAD_API_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesKHR)(VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR * pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
#endif
typedef void (GLAD_API_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesNV)(VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR * pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
typedef void (GLAD_API_PTR *PFN_vkCmdWriteBufferMarkerAMD)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker);
typedef void (GLAD_API_PTR *PFN_vkCmdWriteTimestamp)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query);
typedef VkResult (GLAD_API_PTR *PFN_vkCompileDeferredNV)(VkDevice device, VkPipeline pipeline, uint32_t shader);
#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef VkResult (GLAD_API_PTR *PFN_vkCopyAccelerationStructureKHR)(VkDevice device, const VkCopyAccelerationStructureInfoKHR * pInfo);
#endif
#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef VkResult (GLAD_API_PTR *PFN_vkCopyAccelerationStructureToMemoryKHR)(VkDevice device, const VkCopyAccelerationStructureToMemoryInfoKHR * pInfo);
#endif
#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef VkResult (GLAD_API_PTR *PFN_vkCopyMemoryToAccelerationStructureKHR)(VkDevice device, const VkCopyMemoryToAccelerationStructureInfoKHR * pInfo);
#endif
#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef VkResult (GLAD_API_PTR *PFN_vkCreateAccelerationStructureKHR)(VkDevice device, const VkAccelerationStructureCreateInfoKHR * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkAccelerationStructureKHR * pAccelerationStructure);
#endif
typedef VkResult (GLAD_API_PTR *PFN_vkCreateAccelerationStructureNV)(VkDevice device, const VkAccelerationStructureCreateInfoNV * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkAccelerationStructureNV * pAccelerationStructure);
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
typedef VkResult (GLAD_API_PTR *PFN_vkCreateAndroidSurfaceKHR)(VkInstance instance, const VkAndroidSurfaceCreateInfoKHR * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkSurfaceKHR * pSurface);
#endif
typedef VkResult (GLAD_API_PTR *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkBuffer * pBuffer);
typedef VkResult (GLAD_API_PTR *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkBufferView * pView);
typedef VkResult (GLAD_API_PTR *PFN_vkCreateCommandPool)(VkDevice device, const VkCommandPoolCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkCommandPool * pCommandPool);
typedef VkResult (GLAD_API_PTR *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo * pCreateInfos, const VkAllocationCallbacks * pAllocator, VkPipeline * pPipelines);
typedef VkResult (GLAD_API_PTR *PFN_vkCreateDebugReportCallbackEXT)(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkDebugReportCallbackEXT * pCallback);
typedef VkResult (GLAD_API_PTR *PFN_vkCreateDebugUtilsMessengerEXT)(VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkDebugUtilsMessengerEXT * pMessenger);
#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef VkResult (GLAD_API_PTR *PFN_vkCreateDeferredOperationKHR)(VkDevice device, const VkAllocationCallbacks * pAllocator, VkDeferredOperationKHR * pDeferredOperation);
#endif
typedef VkResult (GLAD_API_PTR *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkDescriptorPool * pDescriptorPool);
typedef VkResult (GLAD_API_PTR *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkDescriptorSetLayout * pSetLayout);
typedef VkResult (GLAD_API_PTR *PFN_vkCreateDescriptorUpdateTemplate)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate);
typedef VkResult (GLAD_API_PTR *PFN_vkCreateDescriptorUpdateTemplateKHR)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkDescriptorUpdateTemplate * pDescriptorUpdateTemplate);
typedef VkResult (GLAD_API_PTR *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkDevice * pDevice);
#if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
typedef VkResult (GLAD_API_PTR *PFN_vkCreateDirectFBSurfaceEXT)(VkInstance instance, const VkDirectFBSurfaceCreateInfoEXT * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkSurfaceKHR * pSurface);
#endif
typedef VkResult (GLAD_API_PTR *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkDisplayModeKHR * pMode);
typedef VkResult (GLAD_API_PTR *PFN_vkCreateDisplayPlaneSurfaceKHR)(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkSurfaceKHR * pSurface);
typedef VkResult (GLAD_API_PTR *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkEvent * pEvent);
typedef VkResult (GLAD_API_PTR *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkFence * pFence);
typedef VkResult (GLAD_API_PTR *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkFramebuffer * pFramebuffer);
typedef VkResult (GLAD_API_PTR *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo * pCreateInfos, const VkAllocationCallbacks * pAllocator, VkPipeline * pPipelines);
typedef VkResult (GLAD_API_PTR *PFN_vkCreateHeadlessSurfaceEXT)(VkInstance instance, const VkHeadlessSurfaceCreateInfoEXT * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkSurfaceKHR * pSurface);
#if defined(VK_USE_PLATFORM_IOS_MVK)
typedef VkResult (GLAD_API_PTR *PFN_vkCreateIOSSurfaceMVK)(VkInstance instance, const VkIOSSurfaceCreateInfoMVK * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkSurfaceKHR * pSurface);
#endif
typedef VkResult (GLAD_API_PTR *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkImage * pImage);
#if defined(VK_USE_PLATFORM_FUCHSIA)
typedef VkResult (GLAD_API_PTR *PFN_vkCreateImagePipeSurfaceFUCHSIA)(VkInstance instance, const VkImagePipeSurfaceCreateInfoFUCHSIA * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkSurfaceKHR * pSurface);
#endif
typedef VkResult (GLAD_API_PTR *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkImageView * pView);
typedef VkResult (GLAD_API_PTR *PFN_vkCreateIndirectCommandsLayoutNV)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoNV * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkIndirectCommandsLayoutNV * pIndirectCommandsLayout);
typedef VkResult (GLAD_API_PTR *PFN_vkCreateInstance)(const VkInstanceCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkInstance * pInstance);
#if defined(VK_USE_PLATFORM_MACOS_MVK)
typedef VkResult (GLAD_API_PTR *PFN_vkCreateMacOSSurfaceMVK)(VkInstance instance, const VkMacOSSurfaceCreateInfoMVK * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkSurfaceKHR * pSurface);
#endif
#if defined(VK_USE_PLATFORM_METAL_EXT)
typedef VkResult (GLAD_API_PTR *PFN_vkCreateMetalSurfaceEXT)(VkInstance instance, const VkMetalSurfaceCreateInfoEXT * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkSurfaceKHR * pSurface);
#endif
typedef VkResult (GLAD_API_PTR *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkPipelineCache * pPipelineCache);
typedef VkResult (GLAD_API_PTR *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkPipelineLayout * pPipelineLayout);
typedef VkResult (GLAD_API_PTR *PFN_vkCreatePrivateDataSlotEXT)(VkDevice device, const VkPrivateDataSlotCreateInfoEXT * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkPrivateDataSlotEXT * pPrivateDataSlot);
typedef VkResult (GLAD_API_PTR *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkQueryPool * pQueryPool);
#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef VkResult (GLAD_API_PTR *PFN_vkCreateRayTracingPipelinesKHR)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoKHR * pCreateInfos, const VkAllocationCallbacks * pAllocator, VkPipeline * pPipelines);
#endif
typedef VkResult (GLAD_API_PTR *PFN_vkCreateRayTracingPipelinesNV)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoNV * pCreateInfos, const VkAllocationCallbacks * pAllocator, VkPipeline * pPipelines);
typedef VkResult (GLAD_API_PTR *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkRenderPass * pRenderPass);
typedef VkResult (GLAD_API_PTR *PFN_vkCreateRenderPass2)(VkDevice device, const VkRenderPassCreateInfo2 * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkRenderPass * pRenderPass);
typedef VkResult (GLAD_API_PTR *PFN_vkCreateRenderPass2KHR)(VkDevice device, const VkRenderPassCreateInfo2 * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkRenderPass * pRenderPass);
typedef VkResult (GLAD_API_PTR *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkSampler * pSampler);
typedef VkResult (GLAD_API_PTR *PFN_vkCreateSamplerYcbcrConversion)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkSamplerYcbcrConversion * pYcbcrConversion);
typedef VkResult (GLAD_API_PTR *PFN_vkCreateSamplerYcbcrConversionKHR)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkSamplerYcbcrConversion * pYcbcrConversion);
typedef VkResult (GLAD_API_PTR *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkSemaphore * pSemaphore);
typedef VkResult (GLAD_API_PTR *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkShaderModule * pShaderModule);
typedef VkResult (GLAD_API_PTR *PFN_vkCreateSharedSwapchainsKHR)(VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR * pCreateInfos, const VkAllocationCallbacks * pAllocator, VkSwapchainKHR * pSwapchains);
#if defined(VK_USE_PLATFORM_GGP)
typedef VkResult (GLAD_API_PTR *PFN_vkCreateStreamDescriptorSurfaceGGP)(VkInstance instance, const VkStreamDescriptorSurfaceCreateInfoGGP * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkSurfaceKHR * pSurface);
#endif
typedef VkResult (GLAD_API_PTR *PFN_vkCreateSwapchainKHR)(VkDevice device, const VkSwapchainCreateInfoKHR * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkSwapchainKHR * pSwapchain);
typedef VkResult (GLAD_API_PTR *PFN_vkCreateValidationCacheEXT)(VkDevice device, const VkValidationCacheCreateInfoEXT * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkValidationCacheEXT * pValidationCache);
#if defined(VK_USE_PLATFORM_VI_NN)
typedef VkResult (GLAD_API_PTR *PFN_vkCreateViSurfaceNN)(VkInstance instance, const VkViSurfaceCreateInfoNN * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkSurfaceKHR * pSurface);
#endif
#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
typedef VkResult (GLAD_API_PTR *PFN_vkCreateWaylandSurfaceKHR)(VkInstance instance, const VkWaylandSurfaceCreateInfoKHR * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkSurfaceKHR * pSurface);
#endif
#if defined(VK_USE_PLATFORM_WIN32_KHR)
typedef VkResult (GLAD_API_PTR *PFN_vkCreateWin32SurfaceKHR)(VkInstance instance, const VkWin32SurfaceCreateInfoKHR * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkSurfaceKHR * pSurface);
#endif
#if defined(VK_USE_PLATFORM_XCB_KHR)
typedef VkResult (GLAD_API_PTR *PFN_vkCreateXcbSurfaceKHR)(VkInstance instance, const VkXcbSurfaceCreateInfoKHR * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkSurfaceKHR * pSurface);
#endif
#if defined(VK_USE_PLATFORM_XLIB_KHR)
typedef VkResult (GLAD_API_PTR *PFN_vkCreateXlibSurfaceKHR)(VkInstance instance, const VkXlibSurfaceCreateInfoKHR * pCreateInfo, const VkAllocationCallbacks * pAllocator, VkSurfaceKHR * pSurface);
#endif
typedef VkResult (GLAD_API_PTR *PFN_vkDebugMarkerSetObjectNameEXT)(VkDevice device, const VkDebugMarkerObjectNameInfoEXT * pNameInfo);
typedef VkResult (GLAD_API_PTR *PFN_vkDebugMarkerSetObjectTagEXT)(VkDevice device, const VkDebugMarkerObjectTagInfoEXT * pTagInfo);
typedef void (GLAD_API_PTR *PFN_vkDebugReportMessageEXT)(VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char * pLayerPrefix, const char * pMessage);
#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef VkResult (GLAD_API_PTR *PFN_vkDeferredOperationJoinKHR)(VkDevice device, VkDeferredOperationKHR operation);
#endif
#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef void (GLAD_API_PTR *PFN_vkDestroyAccelerationStructureKHR)(VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks * pAllocator);
#endif
typedef void (GLAD_API_PTR *PFN_vkDestroyAccelerationStructureNV)(VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks * pAllocator);
typedef void (GLAD_API_PTR *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks * pAllocator);
typedef void (GLAD_API_PTR *PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks * pAllocator);
typedef void (GLAD_API_PTR *PFN_vkDestroyCommandPool)(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks * pAllocator);
typedef void (GLAD_API_PTR *PFN_vkDestroyDebugReportCallbackEXT)(VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks * pAllocator);
typedef void (GLAD_API_PTR *PFN_vkDestroyDebugUtilsMessengerEXT)(VkInstance instance, VkDebugUtilsMessengerEXT messenger, const VkAllocationCallbacks * pAllocator);
#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef void (GLAD_API_PTR *PFN_vkDestroyDeferredOperationKHR)(VkDevice device, VkDeferredOperationKHR operation, const VkAllocationCallbacks * pAllocator);
#endif
typedef void (GLAD_API_PTR *PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks * pAllocator);
typedef void (GLAD_API_PTR *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks * pAllocator);
typedef void (GLAD_API_PTR *PFN_vkDestroyDescriptorUpdateTemplate)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks * pAllocator);
typedef void (GLAD_API_PTR *PFN_vkDestroyDescriptorUpdateTemplateKHR)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks * pAllocator);
typedef void (GLAD_API_PTR *PFN_vkDestroyDevice)(VkDevice device, const VkAllocationCallbacks * pAllocator);
typedef void (GLAD_API_PTR *PFN_vkDestroyEvent)(VkDevice device, VkEvent event, const VkAllocationCallbacks * pAllocator);
typedef void (GLAD_API_PTR *PFN_vkDestroyFence)(VkDevice device, VkFence fence, const VkAllocationCallbacks * pAllocator);
typedef void (GLAD_API_PTR *PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks * pAllocator);
typedef void (GLAD_API_PTR *PFN_vkDestroyImage)(VkDevice device, VkImage image, const VkAllocationCallbacks * pAllocator);
typedef void (GLAD_API_PTR *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView, const VkAllocationCallbacks * pAllocator);
typedef void (GLAD_API_PTR *PFN_vkDestroyIndirectCommandsLayoutNV)(VkDevice device, VkIndirectCommandsLayoutNV indirectCommandsLayout, const VkAllocationCallbacks * pAllocator);
typedef void (GLAD_API_PTR *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks * pAllocator);
typedef void (GLAD_API_PTR *PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks * pAllocator);
typedef void (GLAD_API_PTR *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks * pAllocator);
typedef void (GLAD_API_PTR *PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks * pAllocator);
typedef void (GLAD_API_PTR *PFN_vkDestroyPrivateDataSlotEXT)(VkDevice device, VkPrivateDataSlotEXT privateDataSlot, const VkAllocationCallbacks * pAllocator);
typedef void (GLAD_API_PTR *PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks * pAllocator);
typedef void (GLAD_API_PTR *PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks * pAllocator);
typedef void (GLAD_API_PTR *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler, const VkAllocationCallbacks * pAllocator);
typedef void (GLAD_API_PTR *PFN_vkDestroySamplerYcbcrConversion)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks * pAllocator);
typedef void (GLAD_API_PTR *PFN_vkDestroySamplerYcbcrConversionKHR)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks * pAllocator);
typedef void (GLAD_API_PTR *PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks * pAllocator);
typedef void (GLAD_API_PTR *PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks * pAllocator);
typedef void (GLAD_API_PTR *PFN_vkDestroySurfaceKHR)(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks * pAllocator);
typedef void (GLAD_API_PTR *PFN_vkDestroySwapchainKHR)(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks * pAllocator);
typedef void (GLAD_API_PTR *PFN_vkDestroyValidationCacheEXT)(VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks * pAllocator);
typedef VkResult (GLAD_API_PTR *PFN_vkDeviceWaitIdle)(VkDevice device);
typedef VkResult (GLAD_API_PTR *PFN_vkDisplayPowerControlEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT * pDisplayPowerInfo);
typedef VkResult (GLAD_API_PTR *PFN_vkEndCommandBuffer)(VkCommandBuffer commandBuffer);
typedef VkResult (GLAD_API_PTR *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char * pLayerName, uint32_t * pPropertyCount, VkExtensionProperties * pProperties);
typedef VkResult (GLAD_API_PTR *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t * pPropertyCount, VkLayerProperties * pProperties);
typedef VkResult (GLAD_API_PTR *PFN_vkEnumerateInstanceExtensionProperties)(const char * pLayerName, uint32_t * pPropertyCount, VkExtensionProperties * pProperties);
typedef VkResult (GLAD_API_PTR *PFN_vkEnumerateInstanceLayerProperties)(uint32_t * pPropertyCount, VkLayerProperties * pProperties);
typedef VkResult (GLAD_API_PTR *PFN_vkEnumerateInstanceVersion)(uint32_t * pApiVersion);
typedef VkResult (GLAD_API_PTR *PFN_vkEnumeratePhysicalDeviceGroups)(VkInstance instance, uint32_t * pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties);
typedef VkResult (GLAD_API_PTR *PFN_vkEnumeratePhysicalDeviceGroupsKHR)(VkInstance instance, uint32_t * pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties);
typedef VkResult (GLAD_API_PTR *PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t * pCounterCount, VkPerformanceCounterKHR * pCounters, VkPerformanceCounterDescriptionKHR * pCounterDescriptions);
typedef VkResult (GLAD_API_PTR *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t * pPhysicalDeviceCount, VkPhysicalDevice * pPhysicalDevices);
typedef VkResult (GLAD_API_PTR *PFN_vkFlushMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange * pMemoryRanges);
typedef void (GLAD_API_PTR *PFN_vkFreeCommandBuffers)(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer * pCommandBuffers);
typedef VkResult (GLAD_API_PTR *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet * pDescriptorSets);
typedef void (GLAD_API_PTR *PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks * pAllocator);
#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef VkDeviceAddress (GLAD_API_PTR *PFN_vkGetAccelerationStructureDeviceAddressKHR)(VkDevice device, const VkAccelerationStructureDeviceAddressInfoKHR * pInfo);
#endif
typedef VkResult (GLAD_API_PTR *PFN_vkGetAccelerationStructureHandleNV)(VkDevice device, VkAccelerationStructureKHR accelerationStructure, size_t dataSize, void * pData);
#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef void (GLAD_API_PTR *PFN_vkGetAccelerationStructureMemoryRequirementsKHR)(VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoKHR * pInfo, VkMemoryRequirements2 * pMemoryRequirements);
#endif
typedef void (GLAD_API_PTR *PFN_vkGetAccelerationStructureMemoryRequirementsNV)(VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNV * pInfo, VkMemoryRequirements2KHR * pMemoryRequirements);
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
typedef VkResult (GLAD_API_PTR *PFN_vkGetAndroidHardwareBufferPropertiesANDROID)(VkDevice device, const struct AHardwareBuffer * buffer, VkAndroidHardwareBufferPropertiesANDROID * pProperties);
#endif
typedef VkDeviceAddress (GLAD_API_PTR *PFN_vkGetBufferDeviceAddress)(VkDevice device, const VkBufferDeviceAddressInfo * pInfo);
typedef VkDeviceAddress (GLAD_API_PTR *PFN_vkGetBufferDeviceAddressEXT)(VkDevice device, const VkBufferDeviceAddressInfo * pInfo);
typedef VkDeviceAddress (GLAD_API_PTR *PFN_vkGetBufferDeviceAddressKHR)(VkDevice device, const VkBufferDeviceAddressInfo * pInfo);
typedef void (GLAD_API_PTR *PFN_vkGetBufferMemoryRequirements)(VkDevice device, VkBuffer buffer, VkMemoryRequirements * pMemoryRequirements);
typedef void (GLAD_API_PTR *PFN_vkGetBufferMemoryRequirements2)(VkDevice device, const VkBufferMemoryRequirementsInfo2 * pInfo, VkMemoryRequirements2 * pMemoryRequirements);
typedef void (GLAD_API_PTR *PFN_vkGetBufferMemoryRequirements2KHR)(VkDevice device, const VkBufferMemoryRequirementsInfo2 * pInfo, VkMemoryRequirements2 * pMemoryRequirements);
typedef uint64_t (GLAD_API_PTR *PFN_vkGetBufferOpaqueCaptureAddress)(VkDevice device, const VkBufferDeviceAddressInfo * pInfo);
typedef uint64_t (GLAD_API_PTR *PFN_vkGetBufferOpaqueCaptureAddressKHR)(VkDevice device, const VkBufferDeviceAddressInfo * pInfo);
typedef VkResult (GLAD_API_PTR *PFN_vkGetCalibratedTimestampsEXT)(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoEXT * pTimestampInfos, uint64_t * pTimestamps, uint64_t * pMaxDeviation);
#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef uint32_t (GLAD_API_PTR *PFN_vkGetDeferredOperationMaxConcurrencyKHR)(VkDevice device, VkDeferredOperationKHR operation);
#endif
#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef VkResult (GLAD_API_PTR *PFN_vkGetDeferredOperationResultKHR)(VkDevice device, VkDeferredOperationKHR operation);
#endif
typedef void (GLAD_API_PTR *PFN_vkGetDescriptorSetLayoutSupport)(VkDevice device, const VkDescriptorSetLayoutCreateInfo * pCreateInfo, VkDescriptorSetLayoutSupport * pSupport);
typedef void (GLAD_API_PTR *PFN_vkGetDescriptorSetLayoutSupportKHR)(VkDevice device, const VkDescriptorSetLayoutCreateInfo * pCreateInfo, VkDescriptorSetLayoutSupport * pSupport);
#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef VkResult (GLAD_API_PTR *PFN_vkGetDeviceAccelerationStructureCompatibilityKHR)(VkDevice device, const VkAccelerationStructureVersionKHR * version);
#endif
typedef void (GLAD_API_PTR *PFN_vkGetDeviceGroupPeerMemoryFeatures)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags * pPeerMemoryFeatures);
typedef void (GLAD_API_PTR *PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags * pPeerMemoryFeatures);
typedef VkResult (GLAD_API_PTR *PFN_vkGetDeviceGroupPresentCapabilitiesKHR)(VkDevice device, VkDeviceGroupPresentCapabilitiesKHR * pDeviceGroupPresentCapabilities);
#if defined(VK_USE_PLATFORM_WIN32_KHR)
typedef VkResult (GLAD_API_PTR *PFN_vkGetDeviceGroupSurfacePresentModes2EXT)(VkDevice device, const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo, VkDeviceGroupPresentModeFlagsKHR * pModes);
#endif
typedef VkResult (GLAD_API_PTR *PFN_vkGetDeviceGroupSurfacePresentModesKHR)(VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR * pModes);
typedef void (GLAD_API_PTR *PFN_vkGetDeviceMemoryCommitment)(VkDevice device, VkDeviceMemory memory, VkDeviceSize * pCommittedMemoryInBytes);
typedef uint64_t (GLAD_API_PTR *PFN_vkGetDeviceMemoryOpaqueCaptureAddress)(VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo);
typedef uint64_t (GLAD_API_PTR *PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR)(VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo * pInfo);
typedef PFN_vkVoidFunction (GLAD_API_PTR *PFN_vkGetDeviceProcAddr)(VkDevice device, const char * pName);
typedef void (GLAD_API_PTR *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue * pQueue);
typedef void (GLAD_API_PTR *PFN_vkGetDeviceQueue2)(VkDevice device, const VkDeviceQueueInfo2 * pQueueInfo, VkQueue * pQueue);
typedef VkResult (GLAD_API_PTR *PFN_vkGetDisplayModeProperties2KHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t * pPropertyCount, VkDisplayModeProperties2KHR * pProperties);
typedef VkResult (GLAD_API_PTR *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t * pPropertyCount, VkDisplayModePropertiesKHR * pProperties);
typedef VkResult (GLAD_API_PTR *PFN_vkGetDisplayPlaneCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR * pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR * pCapabilities);
typedef VkResult (GLAD_API_PTR *PFN_vkGetDisplayPlaneCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR * pCapabilities);
typedef VkResult (GLAD_API_PTR *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t * pDisplayCount, VkDisplayKHR * pDisplays);
typedef VkResult (GLAD_API_PTR *PFN_vkGetEventStatus)(VkDevice device, VkEvent event);
typedef VkResult (GLAD_API_PTR *PFN_vkGetFenceFdKHR)(VkDevice device, const VkFenceGetFdInfoKHR * pGetFdInfo, int * pFd);
typedef VkResult (GLAD_API_PTR *PFN_vkGetFenceStatus)(VkDevice device, VkFence fence);
#if defined(VK_USE_PLATFORM_WIN32_KHR)
typedef VkResult (GLAD_API_PTR *PFN_vkGetFenceWin32HandleKHR)(VkDevice device, const VkFenceGetWin32HandleInfoKHR * pGetWin32HandleInfo, HANDLE * pHandle);
#endif
typedef void (GLAD_API_PTR *PFN_vkGetGeneratedCommandsMemoryRequirementsNV)(VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoNV * pInfo, VkMemoryRequirements2 * pMemoryRequirements);
typedef VkResult (GLAD_API_PTR *PFN_vkGetImageDrmFormatModifierPropertiesEXT)(VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT * pProperties);
typedef void (GLAD_API_PTR *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements * pMemoryRequirements);
typedef void (GLAD_API_PTR *PFN_vkGetImageMemoryRequirements2)(VkDevice device, const VkImageMemoryRequirementsInfo2 * pInfo, VkMemoryRequirements2 * pMemoryRequirements);
typedef void (GLAD_API_PTR *PFN_vkGetImageMemoryRequirements2KHR)(VkDevice device, const VkImageMemoryRequirementsInfo2 * pInfo, VkMemoryRequirements2 * pMemoryRequirements);
typedef void (GLAD_API_PTR *PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, uint32_t * pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements * pSparseMemoryRequirements);
typedef void (GLAD_API_PTR *PFN_vkGetImageSparseMemoryRequirements2)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2 * pInfo, uint32_t * pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements);
typedef void (GLAD_API_PTR *PFN_vkGetImageSparseMemoryRequirements2KHR)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2 * pInfo, uint32_t * pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2 * pSparseMemoryRequirements);
typedef void (GLAD_API_PTR *PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource * pSubresource, VkSubresourceLayout * pLayout);
typedef VkResult (GLAD_API_PTR *PFN_vkGetImageViewAddressNVX)(VkDevice device, VkImageView imageView, VkImageViewAddressPropertiesNVX * pProperties);
typedef uint32_t (GLAD_API_PTR *PFN_vkGetImageViewHandleNVX)(VkDevice device, const VkImageViewHandleInfoNVX * pInfo);
typedef PFN_vkVoidFunction (GLAD_API_PTR *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char * pName);
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
typedef VkResult (GLAD_API_PTR *PFN_vkGetMemoryAndroidHardwareBufferANDROID)(VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID * pInfo, struct AHardwareBuffer ** pBuffer);
#endif
typedef VkResult (GLAD_API_PTR *PFN_vkGetMemoryFdKHR)(VkDevice device, const VkMemoryGetFdInfoKHR * pGetFdInfo, int * pFd);
typedef VkResult (GLAD_API_PTR *PFN_vkGetMemoryFdPropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR * pMemoryFdProperties);
typedef VkResult (GLAD_API_PTR *PFN_vkGetMemoryHostPointerPropertiesEXT)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void * pHostPointer, VkMemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties);
#if defined(VK_USE_PLATFORM_WIN32_KHR)
typedef VkResult (GLAD_API_PTR *PFN_vkGetMemoryWin32HandleKHR)(VkDevice device, const VkMemoryGetWin32HandleInfoKHR * pGetWin32HandleInfo, HANDLE * pHandle);
#endif
#if defined(VK_USE_PLATFORM_WIN32_KHR)
typedef VkResult (GLAD_API_PTR *PFN_vkGetMemoryWin32HandleNV)(VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, HANDLE * pHandle);
#endif
#if defined(VK_USE_PLATFORM_WIN32_KHR)
typedef VkResult (GLAD_API_PTR *PFN_vkGetMemoryWin32HandlePropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, VkMemoryWin32HandlePropertiesKHR * pMemoryWin32HandleProperties);
#endif
typedef VkResult (GLAD_API_PTR *PFN_vkGetPastPresentationTimingGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, uint32_t * pPresentationTimingCount, VkPastPresentationTimingGOOGLE * pPresentationTimings);
typedef VkResult (GLAD_API_PTR *PFN_vkGetPerformanceParameterINTEL)(VkDevice device, VkPerformanceParameterTypeINTEL parameter, VkPerformanceValueINTEL * pValue);
typedef VkResult (GLAD_API_PTR *PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)(VkPhysicalDevice physicalDevice, uint32_t * pTimeDomainCount, VkTimeDomainEXT * pTimeDomains);
typedef VkResult (GLAD_API_PTR *PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV)(VkPhysicalDevice physicalDevice, uint32_t * pPropertyCount, VkCooperativeMatrixPropertiesNV * pProperties);
#if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
typedef VkBool32 (GLAD_API_PTR *PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, IDirectFB * dfb);
#endif
typedef VkResult (GLAD_API_PTR *PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t * pPropertyCount, VkDisplayPlaneProperties2KHR * pProperties);
typedef VkResult (GLAD_API_PTR *PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t * pPropertyCount, VkDisplayPlanePropertiesKHR * pProperties);
typedef VkResult (GLAD_API_PTR *PFN_vkGetPhysicalDeviceDisplayProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t * pPropertyCount, VkDisplayProperties2KHR * pProperties);
typedef VkResult (GLAD_API_PTR *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t * pPropertyCount, VkDisplayPropertiesKHR * pProperties);
typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceExternalBufferProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo, VkExternalBufferProperties * pExternalBufferProperties);
typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo * pExternalBufferInfo, VkExternalBufferProperties * pExternalBufferProperties);
typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceExternalFenceProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo, VkExternalFenceProperties * pExternalFenceProperties);
typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo * pExternalFenceInfo, VkExternalFenceProperties * pExternalFenceProperties);
typedef VkResult (GLAD_API_PTR *PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV * pExternalImageFormatProperties);
typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceExternalSemaphoreProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo, VkExternalSemaphoreProperties * pExternalSemaphoreProperties);
typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo, VkExternalSemaphoreProperties * pExternalSemaphoreProperties);
typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures * pFeatures);
typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceFeatures2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2 * pFeatures);
typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceFeatures2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2 * pFeatures);
typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties * pFormatProperties);
typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceFormatProperties2)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2 * pFormatProperties);
typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceFormatProperties2KHR)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2 * pFormatProperties);
typedef VkResult (GLAD_API_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties * pImageFormatProperties);
typedef VkResult (GLAD_API_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo, VkImageFormatProperties2 * pImageFormatProperties);
typedef VkResult (GLAD_API_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2 * pImageFormatInfo, VkImageFormatProperties2 * pImageFormatProperties);
typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties * pMemoryProperties);
typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2 * pMemoryProperties);
typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2 * pMemoryProperties);
typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)(VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT * pMultisampleProperties);
typedef VkResult (GLAD_API_PTR *PFN_vkGetPhysicalDevicePresentRectanglesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t * pRectCount, VkRect2D * pRects);
typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties * pProperties);
typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2 * pProperties);
typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2 * pProperties);
typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR)(VkPhysicalDevice physicalDevice, const VkQueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo, uint32_t * pNumPasses);
typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, uint32_t * pQueueFamilyPropertyCount, VkQueueFamilyProperties * pQueueFamilyProperties);
typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2)(VkPhysicalDevice physicalDevice, uint32_t * pQueueFamilyPropertyCount, VkQueueFamilyProperties2 * pQueueFamilyProperties);
typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t * pQueueFamilyPropertyCount, VkQueueFamilyProperties2 * pQueueFamilyProperties);
typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t * pPropertyCount, VkSparseImageFormatProperties * pProperties);
typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo, uint32_t * pPropertyCount, VkSparseImageFormatProperties2 * pProperties);
typedef void (GLAD_API_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2 * pFormatInfo, uint32_t * pPropertyCount, VkSparseImageFormatProperties2 * pProperties);
typedef VkResult (GLAD_API_PTR *PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV)(VkPhysicalDevice physicalDevice, uint32_t * pCombinationCount, VkFramebufferMixedSamplesCombinationNV * pCombinations);
typedef VkResult (GLAD_API_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT * pSurfaceCapabilities);
typedef VkResult (GLAD_API_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo, VkSurfaceCapabilities2KHR * pSurfaceCapabilities);
typedef VkResult (GLAD_API_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR * pSurfaceCapabilities);
typedef VkResult (GLAD_API_PTR *PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo, uint32_t * pSurfaceFormatCount, VkSurfaceFormat2KHR * pSurfaceFormats);
typedef VkResult (GLAD_API_PTR *PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t * pSurfaceFormatCount, VkSurfaceFormatKHR * pSurfaceFormats);
#if defined(VK_USE_PLATFORM_WIN32_KHR)
typedef VkResult (GLAD_API_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo, uint32_t * pPresentModeCount, VkPresentModeKHR * pPresentModes);
#endif
typedef VkResult (GLAD_API_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t * pPresentModeCount, VkPresentModeKHR * pPresentModes);
typedef VkResult (GLAD_API_PTR *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32 * pSupported);
typedef VkResult (GLAD_API_PTR *PFN_vkGetPhysicalDeviceToolPropertiesEXT)(VkPhysicalDevice physicalDevice, uint32_t * pToolCount, VkPhysicalDeviceToolPropertiesEXT * pToolProperties);
#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
typedef VkBool32 (GLAD_API_PTR *PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct wl_display * display);
#endif
#if defined(VK_USE_PLATFORM_WIN32_KHR)
typedef VkBool32 (GLAD_API_PTR *PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex);
#endif
#if defined(VK_USE_PLATFORM_XCB_KHR)
typedef VkBool32 (GLAD_API_PTR *PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, xcb_connection_t * connection, xcb_visualid_t visual_id);
#endif
#if defined(VK_USE_PLATFORM_XLIB_KHR)
typedef VkBool32 (GLAD_API_PTR *PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, Display * dpy, VisualID visualID);
#endif
typedef VkResult (GLAD_API_PTR *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, size_t * pDataSize, void * pData);
typedef VkResult (GLAD_API_PTR *PFN_vkGetPipelineExecutableInternalRepresentationsKHR)(VkDevice device, const VkPipelineExecutableInfoKHR * pExecutableInfo, uint32_t * pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR * pInternalRepresentations);
typedef VkResult (GLAD_API_PTR *PFN_vkGetPipelineExecutablePropertiesKHR)(VkDevice device, const VkPipelineInfoKHR * pPipelineInfo, uint32_t * pExecutableCount, VkPipelineExecutablePropertiesKHR * pProperties);
typedef VkResult (GLAD_API_PTR *PFN_vkGetPipelineExecutableStatisticsKHR)(VkDevice device, const VkPipelineExecutableInfoKHR * pExecutableInfo, uint32_t * pStatisticCount, VkPipelineExecutableStatisticKHR * pStatistics);
typedef void (GLAD_API_PTR *PFN_vkGetPrivateDataEXT)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlotEXT privateDataSlot, uint64_t * pData);
typedef VkResult (GLAD_API_PTR *PFN_vkGetQueryPoolResults)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void * pData, VkDeviceSize stride, VkQueryResultFlags flags);
typedef void (GLAD_API_PTR *PFN_vkGetQueueCheckpointDataNV)(VkQueue queue, uint32_t * pCheckpointDataCount, VkCheckpointDataNV * pCheckpointData);
#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
typedef VkResult (GLAD_API_PTR *PFN_vkGetRandROutputDisplayEXT)(VkPhysicalDevice physicalDevice, Display * dpy, RROutput rrOutput, VkDisplayKHR * pDisplay);
#endif
#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef VkResult (GLAD_API_PTR *PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void * pData);
#endif
#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef VkResult (GLAD_API_PTR *PFN_vkGetRayTracingShaderGroupHandlesKHR)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void * pData);
#endif
typedef VkResult (GLAD_API_PTR *PFN_vkGetRayTracingShaderGroupHandlesNV)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void * pData);
typedef VkResult (GLAD_API_PTR *PFN_vkGetRefreshCycleDurationGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE * pDisplayTimingProperties);
typedef void (GLAD_API_PTR *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D * pGranularity);
typedef VkResult (GLAD_API_PTR *PFN_vkGetSemaphoreCounterValue)(VkDevice device, VkSemaphore semaphore, uint64_t * pValue);
typedef VkResult (GLAD_API_PTR *PFN_vkGetSemaphoreCounterValueKHR)(VkDevice device, VkSemaphore semaphore, uint64_t * pValue);
typedef VkResult (GLAD_API_PTR *PFN_vkGetSemaphoreFdKHR)(VkDevice device, const VkSemaphoreGetFdInfoKHR * pGetFdInfo, int * pFd);
#if defined(VK_USE_PLATFORM_WIN32_KHR)
typedef VkResult (GLAD_API_PTR *PFN_vkGetSemaphoreWin32HandleKHR)(VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR * pGetWin32HandleInfo, HANDLE * pHandle);
#endif
typedef VkResult (GLAD_API_PTR *PFN_vkGetShaderInfoAMD)(VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t * pInfoSize, void * pInfo);
typedef VkResult (GLAD_API_PTR *PFN_vkGetSwapchainCounterEXT)(VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t * pCounterValue);
typedef VkResult (GLAD_API_PTR *PFN_vkGetSwapchainImagesKHR)(VkDevice device, VkSwapchainKHR swapchain, uint32_t * pSwapchainImageCount, VkImage * pSwapchainImages);
typedef VkResult (GLAD_API_PTR *PFN_vkGetSwapchainStatusKHR)(VkDevice device, VkSwapchainKHR swapchain);
typedef VkResult (GLAD_API_PTR *PFN_vkGetValidationCacheDataEXT)(VkDevice device, VkValidationCacheEXT validationCache, size_t * pDataSize, void * pData);
typedef VkResult (GLAD_API_PTR *PFN_vkImportFenceFdKHR)(VkDevice device, const VkImportFenceFdInfoKHR * pImportFenceFdInfo);
#if defined(VK_USE_PLATFORM_WIN32_KHR)
typedef VkResult (GLAD_API_PTR *PFN_vkImportFenceWin32HandleKHR)(VkDevice device, const VkImportFenceWin32HandleInfoKHR * pImportFenceWin32HandleInfo);
#endif
typedef VkResult (GLAD_API_PTR *PFN_vkImportSemaphoreFdKHR)(VkDevice device, const VkImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo);
#if defined(VK_USE_PLATFORM_WIN32_KHR)
typedef VkResult (GLAD_API_PTR *PFN_vkImportSemaphoreWin32HandleKHR)(VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR * pImportSemaphoreWin32HandleInfo);
#endif
typedef VkResult (GLAD_API_PTR *PFN_vkInitializePerformanceApiINTEL)(VkDevice device, const VkInitializePerformanceApiInfoINTEL * pInitializeInfo);
typedef VkResult (GLAD_API_PTR *PFN_vkInvalidateMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange * pMemoryRanges);
typedef VkResult (GLAD_API_PTR *PFN_vkMapMemory)(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void ** ppData);
typedef VkResult (GLAD_API_PTR *PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache * pSrcCaches);
typedef VkResult (GLAD_API_PTR *PFN_vkMergeValidationCachesEXT)(VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT * pSrcCaches);
typedef void (GLAD_API_PTR *PFN_vkQueueBeginDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT * pLabelInfo);
typedef VkResult (GLAD_API_PTR *PFN_vkQueueBindSparse)(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo * pBindInfo, VkFence fence);
typedef void (GLAD_API_PTR *PFN_vkQueueEndDebugUtilsLabelEXT)(VkQueue queue);
typedef void (GLAD_API_PTR *PFN_vkQueueInsertDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT * pLabelInfo);
typedef VkResult (GLAD_API_PTR *PFN_vkQueuePresentKHR)(VkQueue queue, const VkPresentInfoKHR * pPresentInfo);
typedef VkResult (GLAD_API_PTR *PFN_vkQueueSetPerformanceConfigurationINTEL)(VkQueue queue, VkPerformanceConfigurationINTEL configuration);
typedef VkResult (GLAD_API_PTR *PFN_vkQueueSubmit)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo * pSubmits, VkFence fence);
typedef VkResult (GLAD_API_PTR *PFN_vkQueueWaitIdle)(VkQueue queue);
typedef VkResult (GLAD_API_PTR *PFN_vkRegisterDeviceEventEXT)(VkDevice device, const VkDeviceEventInfoEXT * pDeviceEventInfo, const VkAllocationCallbacks * pAllocator, VkFence * pFence);
typedef VkResult (GLAD_API_PTR *PFN_vkRegisterDisplayEventEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT * pDisplayEventInfo, const VkAllocationCallbacks * pAllocator, VkFence * pFence);
typedef VkResult (GLAD_API_PTR *PFN_vkReleaseDisplayEXT)(VkPhysicalDevice physicalDevice, VkDisplayKHR display);
#if defined(VK_USE_PLATFORM_WIN32_KHR)
typedef VkResult (GLAD_API_PTR *PFN_vkReleaseFullScreenExclusiveModeEXT)(VkDevice device, VkSwapchainKHR swapchain);
#endif
typedef VkResult (GLAD_API_PTR *PFN_vkReleasePerformanceConfigurationINTEL)(VkDevice device, VkPerformanceConfigurationINTEL configuration);
typedef void (GLAD_API_PTR *PFN_vkReleaseProfilingLockKHR)(VkDevice device);
typedef VkResult (GLAD_API_PTR *PFN_vkResetCommandBuffer)(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags);
typedef VkResult (GLAD_API_PTR *PFN_vkResetCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags);
typedef VkResult (GLAD_API_PTR *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
typedef VkResult (GLAD_API_PTR *PFN_vkResetEvent)(VkDevice device, VkEvent event);
typedef VkResult (GLAD_API_PTR *PFN_vkResetFences)(VkDevice device, uint32_t fenceCount, const VkFence * pFences);
typedef void (GLAD_API_PTR *PFN_vkResetQueryPool)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
typedef void (GLAD_API_PTR *PFN_vkResetQueryPoolEXT)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
typedef VkResult (GLAD_API_PTR *PFN_vkSetDebugUtilsObjectNameEXT)(VkDevice device, const VkDebugUtilsObjectNameInfoEXT * pNameInfo);
typedef VkResult (GLAD_API_PTR *PFN_vkSetDebugUtilsObjectTagEXT)(VkDevice device, const VkDebugUtilsObjectTagInfoEXT * pTagInfo);
typedef VkResult (GLAD_API_PTR *PFN_vkSetEvent)(VkDevice device, VkEvent event);
typedef void (GLAD_API_PTR *PFN_vkSetHdrMetadataEXT)(VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR * pSwapchains, const VkHdrMetadataEXT * pMetadata);
typedef void (GLAD_API_PTR *PFN_vkSetLocalDimmingAMD)(VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable);
typedef VkResult (GLAD_API_PTR *PFN_vkSetPrivateDataEXT)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlotEXT privateDataSlot, uint64_t data);
typedef VkResult (GLAD_API_PTR *PFN_vkSignalSemaphore)(VkDevice device, const VkSemaphoreSignalInfo * pSignalInfo);
typedef VkResult (GLAD_API_PTR *PFN_vkSignalSemaphoreKHR)(VkDevice device, const VkSemaphoreSignalInfo * pSignalInfo);
typedef void (GLAD_API_PTR *PFN_vkSubmitDebugUtilsMessageEXT)(VkInstance instance, VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT * pCallbackData);
typedef void (GLAD_API_PTR *PFN_vkTrimCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
typedef void (GLAD_API_PTR *PFN_vkTrimCommandPoolKHR)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
typedef void (GLAD_API_PTR *PFN_vkUninitializePerformanceApiINTEL)(VkDevice device);
typedef void (GLAD_API_PTR *PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory memory);
typedef void (GLAD_API_PTR *PFN_vkUpdateDescriptorSetWithTemplate)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void * pData);
typedef void (GLAD_API_PTR *PFN_vkUpdateDescriptorSetWithTemplateKHR)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void * pData);
typedef void (GLAD_API_PTR *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet * pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet * pDescriptorCopies);
typedef VkResult (GLAD_API_PTR *PFN_vkWaitForFences)(VkDevice device, uint32_t fenceCount, const VkFence * pFences, VkBool32 waitAll, uint64_t timeout);
typedef VkResult (GLAD_API_PTR *PFN_vkWaitSemaphores)(VkDevice device, const VkSemaphoreWaitInfo * pWaitInfo, uint64_t timeout);
typedef VkResult (GLAD_API_PTR *PFN_vkWaitSemaphoresKHR)(VkDevice device, const VkSemaphoreWaitInfo * pWaitInfo, uint64_t timeout);
#if defined(VK_ENABLE_BETA_EXTENSIONS)
typedef VkResult (GLAD_API_PTR *PFN_vkWriteAccelerationStructuresPropertiesKHR)(VkDevice device, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR * pAccelerationStructures, VkQueryType queryType, size_t dataSize, void * pData, size_t stride);
#endif

#if defined(VK_USE_PLATFORM_WIN32_KHR)
GLAD_API_CALL PFN_vkAcquireFullScreenExclusiveModeEXT glad_vkAcquireFullScreenExclusiveModeEXT;
#define vkAcquireFullScreenExclusiveModeEXT glad_vkAcquireFullScreenExclusiveModeEXT
#endif
GLAD_API_CALL PFN_vkAcquireNextImage2KHR glad_vkAcquireNextImage2KHR;
#define vkAcquireNextImage2KHR glad_vkAcquireNextImage2KHR
GLAD_API_CALL PFN_vkAcquireNextImageKHR glad_vkAcquireNextImageKHR;
#define vkAcquireNextImageKHR glad_vkAcquireNextImageKHR
GLAD_API_CALL PFN_vkAcquirePerformanceConfigurationINTEL glad_vkAcquirePerformanceConfigurationINTEL;
#define vkAcquirePerformanceConfigurationINTEL glad_vkAcquirePerformanceConfigurationINTEL
GLAD_API_CALL PFN_vkAcquireProfilingLockKHR glad_vkAcquireProfilingLockKHR;
#define vkAcquireProfilingLockKHR glad_vkAcquireProfilingLockKHR
#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
GLAD_API_CALL PFN_vkAcquireXlibDisplayEXT glad_vkAcquireXlibDisplayEXT;
#define vkAcquireXlibDisplayEXT glad_vkAcquireXlibDisplayEXT
#endif
GLAD_API_CALL PFN_vkAllocateCommandBuffers glad_vkAllocateCommandBuffers;
#define vkAllocateCommandBuffers glad_vkAllocateCommandBuffers
GLAD_API_CALL PFN_vkAllocateDescriptorSets glad_vkAllocateDescriptorSets;
#define vkAllocateDescriptorSets glad_vkAllocateDescriptorSets
GLAD_API_CALL PFN_vkAllocateMemory glad_vkAllocateMemory;
#define vkAllocateMemory glad_vkAllocateMemory
GLAD_API_CALL PFN_vkBeginCommandBuffer glad_vkBeginCommandBuffer;
#define vkBeginCommandBuffer glad_vkBeginCommandBuffer
#if defined(VK_ENABLE_BETA_EXTENSIONS)
GLAD_API_CALL PFN_vkBindAccelerationStructureMemoryKHR glad_vkBindAccelerationStructureMemoryKHR;
#define vkBindAccelerationStructureMemoryKHR glad_vkBindAccelerationStructureMemoryKHR
#endif
GLAD_API_CALL PFN_vkBindAccelerationStructureMemoryNV glad_vkBindAccelerationStructureMemoryNV;
#define vkBindAccelerationStructureMemoryNV glad_vkBindAccelerationStructureMemoryNV
GLAD_API_CALL PFN_vkBindBufferMemory glad_vkBindBufferMemory;
#define vkBindBufferMemory glad_vkBindBufferMemory
GLAD_API_CALL PFN_vkBindBufferMemory2 glad_vkBindBufferMemory2;
#define vkBindBufferMemory2 glad_vkBindBufferMemory2
GLAD_API_CALL PFN_vkBindBufferMemory2KHR glad_vkBindBufferMemory2KHR;
#define vkBindBufferMemory2KHR glad_vkBindBufferMemory2KHR
GLAD_API_CALL PFN_vkBindImageMemory glad_vkBindImageMemory;
#define vkBindImageMemory glad_vkBindImageMemory
GLAD_API_CALL PFN_vkBindImageMemory2 glad_vkBindImageMemory2;
#define vkBindImageMemory2 glad_vkBindImageMemory2
GLAD_API_CALL PFN_vkBindImageMemory2KHR glad_vkBindImageMemory2KHR;
#define vkBindImageMemory2KHR glad_vkBindImageMemory2KHR
#if defined(VK_ENABLE_BETA_EXTENSIONS)
GLAD_API_CALL PFN_vkBuildAccelerationStructureKHR glad_vkBuildAccelerationStructureKHR;
#define vkBuildAccelerationStructureKHR glad_vkBuildAccelerationStructureKHR
#endif
GLAD_API_CALL PFN_vkCmdBeginConditionalRenderingEXT glad_vkCmdBeginConditionalRenderingEXT;
#define vkCmdBeginConditionalRenderingEXT glad_vkCmdBeginConditionalRenderingEXT
GLAD_API_CALL PFN_vkCmdBeginDebugUtilsLabelEXT glad_vkCmdBeginDebugUtilsLabelEXT;
#define vkCmdBeginDebugUtilsLabelEXT glad_vkCmdBeginDebugUtilsLabelEXT
GLAD_API_CALL PFN_vkCmdBeginQuery glad_vkCmdBeginQuery;
#define vkCmdBeginQuery glad_vkCmdBeginQuery
GLAD_API_CALL PFN_vkCmdBeginQueryIndexedEXT glad_vkCmdBeginQueryIndexedEXT;
#define vkCmdBeginQueryIndexedEXT glad_vkCmdBeginQueryIndexedEXT
GLAD_API_CALL PFN_vkCmdBeginRenderPass glad_vkCmdBeginRenderPass;
#define vkCmdBeginRenderPass glad_vkCmdBeginRenderPass
GLAD_API_CALL PFN_vkCmdBeginRenderPass2 glad_vkCmdBeginRenderPass2;
#define vkCmdBeginRenderPass2 glad_vkCmdBeginRenderPass2
GLAD_API_CALL PFN_vkCmdBeginRenderPass2KHR glad_vkCmdBeginRenderPass2KHR;
#define vkCmdBeginRenderPass2KHR glad_vkCmdBeginRenderPass2KHR
GLAD_API_CALL PFN_vkCmdBeginTransformFeedbackEXT glad_vkCmdBeginTransformFeedbackEXT;
#define vkCmdBeginTransformFeedbackEXT glad_vkCmdBeginTransformFeedbackEXT
GLAD_API_CALL PFN_vkCmdBindDescriptorSets glad_vkCmdBindDescriptorSets;
#define vkCmdBindDescriptorSets glad_vkCmdBindDescriptorSets
GLAD_API_CALL PFN_vkCmdBindIndexBuffer glad_vkCmdBindIndexBuffer;
#define vkCmdBindIndexBuffer glad_vkCmdBindIndexBuffer
GLAD_API_CALL PFN_vkCmdBindPipeline glad_vkCmdBindPipeline;
#define vkCmdBindPipeline glad_vkCmdBindPipeline
GLAD_API_CALL PFN_vkCmdBindPipelineShaderGroupNV glad_vkCmdBindPipelineShaderGroupNV;
#define vkCmdBindPipelineShaderGroupNV glad_vkCmdBindPipelineShaderGroupNV
GLAD_API_CALL PFN_vkCmdBindShadingRateImageNV glad_vkCmdBindShadingRateImageNV;
#define vkCmdBindShadingRateImageNV glad_vkCmdBindShadingRateImageNV
GLAD_API_CALL PFN_vkCmdBindTransformFeedbackBuffersEXT glad_vkCmdBindTransformFeedbackBuffersEXT;
#define vkCmdBindTransformFeedbackBuffersEXT glad_vkCmdBindTransformFeedbackBuffersEXT
GLAD_API_CALL PFN_vkCmdBindVertexBuffers glad_vkCmdBindVertexBuffers;
#define vkCmdBindVertexBuffers glad_vkCmdBindVertexBuffers
GLAD_API_CALL PFN_vkCmdBindVertexBuffers2EXT glad_vkCmdBindVertexBuffers2EXT;
#define vkCmdBindVertexBuffers2EXT glad_vkCmdBindVertexBuffers2EXT
GLAD_API_CALL PFN_vkCmdBlitImage glad_vkCmdBlitImage;
#define vkCmdBlitImage glad_vkCmdBlitImage
#if defined(VK_ENABLE_BETA_EXTENSIONS)
GLAD_API_CALL PFN_vkCmdBuildAccelerationStructureIndirectKHR glad_vkCmdBuildAccelerationStructureIndirectKHR;
#define vkCmdBuildAccelerationStructureIndirectKHR glad_vkCmdBuildAccelerationStructureIndirectKHR
#endif
#if defined(VK_ENABLE_BETA_EXTENSIONS)
GLAD_API_CALL PFN_vkCmdBuildAccelerationStructureKHR glad_vkCmdBuildAccelerationStructureKHR;
#define vkCmdBuildAccelerationStructureKHR glad_vkCmdBuildAccelerationStructureKHR
#endif
GLAD_API_CALL PFN_vkCmdBuildAccelerationStructureNV glad_vkCmdBuildAccelerationStructureNV;
#define vkCmdBuildAccelerationStructureNV glad_vkCmdBuildAccelerationStructureNV
GLAD_API_CALL PFN_vkCmdClearAttachments glad_vkCmdClearAttachments;
#define vkCmdClearAttachments glad_vkCmdClearAttachments
GLAD_API_CALL PFN_vkCmdClearColorImage glad_vkCmdClearColorImage;
#define vkCmdClearColorImage glad_vkCmdClearColorImage
GLAD_API_CALL PFN_vkCmdClearDepthStencilImage glad_vkCmdClearDepthStencilImage;
#define vkCmdClearDepthStencilImage glad_vkCmdClearDepthStencilImage
#if defined(VK_ENABLE_BETA_EXTENSIONS)
GLAD_API_CALL PFN_vkCmdCopyAccelerationStructureKHR glad_vkCmdCopyAccelerationStructureKHR;
#define vkCmdCopyAccelerationStructureKHR glad_vkCmdCopyAccelerationStructureKHR
#endif
GLAD_API_CALL PFN_vkCmdCopyAccelerationStructureNV glad_vkCmdCopyAccelerationStructureNV;
#define vkCmdCopyAccelerationStructureNV glad_vkCmdCopyAccelerationStructureNV
#if defined(VK_ENABLE_BETA_EXTENSIONS)
GLAD_API_CALL PFN_vkCmdCopyAccelerationStructureToMemoryKHR glad_vkCmdCopyAccelerationStructureToMemoryKHR;
#define vkCmdCopyAccelerationStructureToMemoryKHR glad_vkCmdCopyAccelerationStructureToMemoryKHR
#endif
GLAD_API_CALL PFN_vkCmdCopyBuffer glad_vkCmdCopyBuffer;
#define vkCmdCopyBuffer glad_vkCmdCopyBuffer
GLAD_API_CALL PFN_vkCmdCopyBufferToImage glad_vkCmdCopyBufferToImage;
#define vkCmdCopyBufferToImage glad_vkCmdCopyBufferToImage
GLAD_API_CALL PFN_vkCmdCopyImage glad_vkCmdCopyImage;
#define vkCmdCopyImage glad_vkCmdCopyImage
GLAD_API_CALL PFN_vkCmdCopyImageToBuffer glad_vkCmdCopyImageToBuffer;
#define vkCmdCopyImageToBuffer glad_vkCmdCopyImageToBuffer
#if defined(VK_ENABLE_BETA_EXTENSIONS)
GLAD_API_CALL PFN_vkCmdCopyMemoryToAccelerationStructureKHR glad_vkCmdCopyMemoryToAccelerationStructureKHR;
#define vkCmdCopyMemoryToAccelerationStructureKHR glad_vkCmdCopyMemoryToAccelerationStructureKHR
#endif
GLAD_API_CALL PFN_vkCmdCopyQueryPoolResults glad_vkCmdCopyQueryPoolResults;
#define vkCmdCopyQueryPoolResults glad_vkCmdCopyQueryPoolResults
GLAD_API_CALL PFN_vkCmdDebugMarkerBeginEXT glad_vkCmdDebugMarkerBeginEXT;
#define vkCmdDebugMarkerBeginEXT glad_vkCmdDebugMarkerBeginEXT
GLAD_API_CALL PFN_vkCmdDebugMarkerEndEXT glad_vkCmdDebugMarkerEndEXT;
#define vkCmdDebugMarkerEndEXT glad_vkCmdDebugMarkerEndEXT
GLAD_API_CALL PFN_vkCmdDebugMarkerInsertEXT glad_vkCmdDebugMarkerInsertEXT;
#define vkCmdDebugMarkerInsertEXT glad_vkCmdDebugMarkerInsertEXT
GLAD_API_CALL PFN_vkCmdDispatch glad_vkCmdDispatch;
#define vkCmdDispatch glad_vkCmdDispatch
GLAD_API_CALL PFN_vkCmdDispatchBase glad_vkCmdDispatchBase;
#define vkCmdDispatchBase glad_vkCmdDispatchBase
GLAD_API_CALL PFN_vkCmdDispatchBaseKHR glad_vkCmdDispatchBaseKHR;
#define vkCmdDispatchBaseKHR glad_vkCmdDispatchBaseKHR
GLAD_API_CALL PFN_vkCmdDispatchIndirect glad_vkCmdDispatchIndirect;
#define vkCmdDispatchIndirect glad_vkCmdDispatchIndirect
GLAD_API_CALL PFN_vkCmdDraw glad_vkCmdDraw;
#define vkCmdDraw glad_vkCmdDraw
GLAD_API_CALL PFN_vkCmdDrawIndexed glad_vkCmdDrawIndexed;
#define vkCmdDrawIndexed glad_vkCmdDrawIndexed
GLAD_API_CALL PFN_vkCmdDrawIndexedIndirect glad_vkCmdDrawIndexedIndirect;
#define vkCmdDrawIndexedIndirect glad_vkCmdDrawIndexedIndirect
GLAD_API_CALL PFN_vkCmdDrawIndexedIndirectCount glad_vkCmdDrawIndexedIndirectCount;
#define vkCmdDrawIndexedIndirectCount glad_vkCmdDrawIndexedIndirectCount
GLAD_API_CALL PFN_vkCmdDrawIndexedIndirectCountAMD glad_vkCmdDrawIndexedIndirectCountAMD;
#define vkCmdDrawIndexedIndirectCountAMD glad_vkCmdDrawIndexedIndirectCountAMD
GLAD_API_CALL PFN_vkCmdDrawIndexedIndirectCountKHR glad_vkCmdDrawIndexedIndirectCountKHR;
#define vkCmdDrawIndexedIndirectCountKHR glad_vkCmdDrawIndexedIndirectCountKHR
GLAD_API_CALL PFN_vkCmdDrawIndirect glad_vkCmdDrawIndirect;
#define vkCmdDrawIndirect glad_vkCmdDrawIndirect
GLAD_API_CALL PFN_vkCmdDrawIndirectByteCountEXT glad_vkCmdDrawIndirectByteCountEXT;
#define vkCmdDrawIndirectByteCountEXT glad_vkCmdDrawIndirectByteCountEXT
GLAD_API_CALL PFN_vkCmdDrawIndirectCount glad_vkCmdDrawIndirectCount;
#define vkCmdDrawIndirectCount glad_vkCmdDrawIndirectCount
GLAD_API_CALL PFN_vkCmdDrawIndirectCountAMD glad_vkCmdDrawIndirectCountAMD;
#define vkCmdDrawIndirectCountAMD glad_vkCmdDrawIndirectCountAMD
GLAD_API_CALL PFN_vkCmdDrawIndirectCountKHR glad_vkCmdDrawIndirectCountKHR;
#define vkCmdDrawIndirectCountKHR glad_vkCmdDrawIndirectCountKHR
GLAD_API_CALL PFN_vkCmdDrawMeshTasksIndirectCountNV glad_vkCmdDrawMeshTasksIndirectCountNV;
#define vkCmdDrawMeshTasksIndirectCountNV glad_vkCmdDrawMeshTasksIndirectCountNV
GLAD_API_CALL PFN_vkCmdDrawMeshTasksIndirectNV glad_vkCmdDrawMeshTasksIndirectNV;
#define vkCmdDrawMeshTasksIndirectNV glad_vkCmdDrawMeshTasksIndirectNV
GLAD_API_CALL PFN_vkCmdDrawMeshTasksNV glad_vkCmdDrawMeshTasksNV;
#define vkCmdDrawMeshTasksNV glad_vkCmdDrawMeshTasksNV
GLAD_API_CALL PFN_vkCmdEndConditionalRenderingEXT glad_vkCmdEndConditionalRenderingEXT;
#define vkCmdEndConditionalRenderingEXT glad_vkCmdEndConditionalRenderingEXT
GLAD_API_CALL PFN_vkCmdEndDebugUtilsLabelEXT glad_vkCmdEndDebugUtilsLabelEXT;
#define vkCmdEndDebugUtilsLabelEXT glad_vkCmdEndDebugUtilsLabelEXT
GLAD_API_CALL PFN_vkCmdEndQuery glad_vkCmdEndQuery;
#define vkCmdEndQuery glad_vkCmdEndQuery
GLAD_API_CALL PFN_vkCmdEndQueryIndexedEXT glad_vkCmdEndQueryIndexedEXT;
#define vkCmdEndQueryIndexedEXT glad_vkCmdEndQueryIndexedEXT
GLAD_API_CALL PFN_vkCmdEndRenderPass glad_vkCmdEndRenderPass;
#define vkCmdEndRenderPass glad_vkCmdEndRenderPass
GLAD_API_CALL PFN_vkCmdEndRenderPass2 glad_vkCmdEndRenderPass2;
#define vkCmdEndRenderPass2 glad_vkCmdEndRenderPass2
GLAD_API_CALL PFN_vkCmdEndRenderPass2KHR glad_vkCmdEndRenderPass2KHR;
#define vkCmdEndRenderPass2KHR glad_vkCmdEndRenderPass2KHR
GLAD_API_CALL PFN_vkCmdEndTransformFeedbackEXT glad_vkCmdEndTransformFeedbackEXT;
#define vkCmdEndTransformFeedbackEXT glad_vkCmdEndTransformFeedbackEXT
GLAD_API_CALL PFN_vkCmdExecuteCommands glad_vkCmdExecuteCommands;
#define vkCmdExecuteCommands glad_vkCmdExecuteCommands
GLAD_API_CALL PFN_vkCmdExecuteGeneratedCommandsNV glad_vkCmdExecuteGeneratedCommandsNV;
#define vkCmdExecuteGeneratedCommandsNV glad_vkCmdExecuteGeneratedCommandsNV
GLAD_API_CALL PFN_vkCmdFillBuffer glad_vkCmdFillBuffer;
#define vkCmdFillBuffer glad_vkCmdFillBuffer
GLAD_API_CALL PFN_vkCmdInsertDebugUtilsLabelEXT glad_vkCmdInsertDebugUtilsLabelEXT;
#define vkCmdInsertDebugUtilsLabelEXT glad_vkCmdInsertDebugUtilsLabelEXT
GLAD_API_CALL PFN_vkCmdNextSubpass glad_vkCmdNextSubpass;
#define vkCmdNextSubpass glad_vkCmdNextSubpass
GLAD_API_CALL PFN_vkCmdNextSubpass2 glad_vkCmdNextSubpass2;
#define vkCmdNextSubpass2 glad_vkCmdNextSubpass2
GLAD_API_CALL PFN_vkCmdNextSubpass2KHR glad_vkCmdNextSubpass2KHR;
#define vkCmdNextSubpass2KHR glad_vkCmdNextSubpass2KHR
GLAD_API_CALL PFN_vkCmdPipelineBarrier glad_vkCmdPipelineBarrier;
#define vkCmdPipelineBarrier glad_vkCmdPipelineBarrier
GLAD_API_CALL PFN_vkCmdPreprocessGeneratedCommandsNV glad_vkCmdPreprocessGeneratedCommandsNV;
#define vkCmdPreprocessGeneratedCommandsNV glad_vkCmdPreprocessGeneratedCommandsNV
GLAD_API_CALL PFN_vkCmdPushConstants glad_vkCmdPushConstants;
#define vkCmdPushConstants glad_vkCmdPushConstants
GLAD_API_CALL PFN_vkCmdPushDescriptorSetKHR glad_vkCmdPushDescriptorSetKHR;
#define vkCmdPushDescriptorSetKHR glad_vkCmdPushDescriptorSetKHR
GLAD_API_CALL PFN_vkCmdPushDescriptorSetWithTemplateKHR glad_vkCmdPushDescriptorSetWithTemplateKHR;
#define vkCmdPushDescriptorSetWithTemplateKHR glad_vkCmdPushDescriptorSetWithTemplateKHR
GLAD_API_CALL PFN_vkCmdResetEvent glad_vkCmdResetEvent;
#define vkCmdResetEvent glad_vkCmdResetEvent
GLAD_API_CALL PFN_vkCmdResetQueryPool glad_vkCmdResetQueryPool;
#define vkCmdResetQueryPool glad_vkCmdResetQueryPool
GLAD_API_CALL PFN_vkCmdResolveImage glad_vkCmdResolveImage;
#define vkCmdResolveImage glad_vkCmdResolveImage
GLAD_API_CALL PFN_vkCmdSetBlendConstants glad_vkCmdSetBlendConstants;
#define vkCmdSetBlendConstants glad_vkCmdSetBlendConstants
GLAD_API_CALL PFN_vkCmdSetCheckpointNV glad_vkCmdSetCheckpointNV;
#define vkCmdSetCheckpointNV glad_vkCmdSetCheckpointNV
GLAD_API_CALL PFN_vkCmdSetCoarseSampleOrderNV glad_vkCmdSetCoarseSampleOrderNV;
#define vkCmdSetCoarseSampleOrderNV glad_vkCmdSetCoarseSampleOrderNV
GLAD_API_CALL PFN_vkCmdSetCullModeEXT glad_vkCmdSetCullModeEXT;
#define vkCmdSetCullModeEXT glad_vkCmdSetCullModeEXT
GLAD_API_CALL PFN_vkCmdSetDepthBias glad_vkCmdSetDepthBias;
#define vkCmdSetDepthBias glad_vkCmdSetDepthBias
GLAD_API_CALL PFN_vkCmdSetDepthBounds glad_vkCmdSetDepthBounds;
#define vkCmdSetDepthBounds glad_vkCmdSetDepthBounds
GLAD_API_CALL PFN_vkCmdSetDepthBoundsTestEnableEXT glad_vkCmdSetDepthBoundsTestEnableEXT;
#define vkCmdSetDepthBoundsTestEnableEXT glad_vkCmdSetDepthBoundsTestEnableEXT
GLAD_API_CALL PFN_vkCmdSetDepthCompareOpEXT glad_vkCmdSetDepthCompareOpEXT;
#define vkCmdSetDepthCompareOpEXT glad_vkCmdSetDepthCompareOpEXT
GLAD_API_CALL PFN_vkCmdSetDepthTestEnableEXT glad_vkCmdSetDepthTestEnableEXT;
#define vkCmdSetDepthTestEnableEXT glad_vkCmdSetDepthTestEnableEXT
GLAD_API_CALL PFN_vkCmdSetDepthWriteEnableEXT glad_vkCmdSetDepthWriteEnableEXT;
#define vkCmdSetDepthWriteEnableEXT glad_vkCmdSetDepthWriteEnableEXT
GLAD_API_CALL PFN_vkCmdSetDeviceMask glad_vkCmdSetDeviceMask;
#define vkCmdSetDeviceMask glad_vkCmdSetDeviceMask
GLAD_API_CALL PFN_vkCmdSetDeviceMaskKHR glad_vkCmdSetDeviceMaskKHR;
#define vkCmdSetDeviceMaskKHR glad_vkCmdSetDeviceMaskKHR
GLAD_API_CALL PFN_vkCmdSetDiscardRectangleEXT glad_vkCmdSetDiscardRectangleEXT;
#define vkCmdSetDiscardRectangleEXT glad_vkCmdSetDiscardRectangleEXT
GLAD_API_CALL PFN_vkCmdSetEvent glad_vkCmdSetEvent;
#define vkCmdSetEvent glad_vkCmdSetEvent
GLAD_API_CALL PFN_vkCmdSetExclusiveScissorNV glad_vkCmdSetExclusiveScissorNV;
#define vkCmdSetExclusiveScissorNV glad_vkCmdSetExclusiveScissorNV
GLAD_API_CALL PFN_vkCmdSetFrontFaceEXT glad_vkCmdSetFrontFaceEXT;
#define vkCmdSetFrontFaceEXT glad_vkCmdSetFrontFaceEXT
GLAD_API_CALL PFN_vkCmdSetLineStippleEXT glad_vkCmdSetLineStippleEXT;
#define vkCmdSetLineStippleEXT glad_vkCmdSetLineStippleEXT
GLAD_API_CALL PFN_vkCmdSetLineWidth glad_vkCmdSetLineWidth;
#define vkCmdSetLineWidth glad_vkCmdSetLineWidth
GLAD_API_CALL PFN_vkCmdSetPerformanceMarkerINTEL glad_vkCmdSetPerformanceMarkerINTEL;
#define vkCmdSetPerformanceMarkerINTEL glad_vkCmdSetPerformanceMarkerINTEL
GLAD_API_CALL PFN_vkCmdSetPerformanceOverrideINTEL glad_vkCmdSetPerformanceOverrideINTEL;
#define vkCmdSetPerformanceOverrideINTEL glad_vkCmdSetPerformanceOverrideINTEL
GLAD_API_CALL PFN_vkCmdSetPerformanceStreamMarkerINTEL glad_vkCmdSetPerformanceStreamMarkerINTEL;
#define vkCmdSetPerformanceStreamMarkerINTEL glad_vkCmdSetPerformanceStreamMarkerINTEL
GLAD_API_CALL PFN_vkCmdSetPrimitiveTopologyEXT glad_vkCmdSetPrimitiveTopologyEXT;
#define vkCmdSetPrimitiveTopologyEXT glad_vkCmdSetPrimitiveTopologyEXT
GLAD_API_CALL PFN_vkCmdSetSampleLocationsEXT glad_vkCmdSetSampleLocationsEXT;
#define vkCmdSetSampleLocationsEXT glad_vkCmdSetSampleLocationsEXT
GLAD_API_CALL PFN_vkCmdSetScissor glad_vkCmdSetScissor;
#define vkCmdSetScissor glad_vkCmdSetScissor
GLAD_API_CALL PFN_vkCmdSetScissorWithCountEXT glad_vkCmdSetScissorWithCountEXT;
#define vkCmdSetScissorWithCountEXT glad_vkCmdSetScissorWithCountEXT
GLAD_API_CALL PFN_vkCmdSetStencilCompareMask glad_vkCmdSetStencilCompareMask;
#define vkCmdSetStencilCompareMask glad_vkCmdSetStencilCompareMask
GLAD_API_CALL PFN_vkCmdSetStencilOpEXT glad_vkCmdSetStencilOpEXT;
#define vkCmdSetStencilOpEXT glad_vkCmdSetStencilOpEXT
GLAD_API_CALL PFN_vkCmdSetStencilReference glad_vkCmdSetStencilReference;
#define vkCmdSetStencilReference glad_vkCmdSetStencilReference
GLAD_API_CALL PFN_vkCmdSetStencilTestEnableEXT glad_vkCmdSetStencilTestEnableEXT;
#define vkCmdSetStencilTestEnableEXT glad_vkCmdSetStencilTestEnableEXT
GLAD_API_CALL PFN_vkCmdSetStencilWriteMask glad_vkCmdSetStencilWriteMask;
#define vkCmdSetStencilWriteMask glad_vkCmdSetStencilWriteMask
GLAD_API_CALL PFN_vkCmdSetViewport glad_vkCmdSetViewport;
#define vkCmdSetViewport glad_vkCmdSetViewport
GLAD_API_CALL PFN_vkCmdSetViewportShadingRatePaletteNV glad_vkCmdSetViewportShadingRatePaletteNV;
#define vkCmdSetViewportShadingRatePaletteNV glad_vkCmdSetViewportShadingRatePaletteNV
GLAD_API_CALL PFN_vkCmdSetViewportWScalingNV glad_vkCmdSetViewportWScalingNV;
#define vkCmdSetViewportWScalingNV glad_vkCmdSetViewportWScalingNV
GLAD_API_CALL PFN_vkCmdSetViewportWithCountEXT glad_vkCmdSetViewportWithCountEXT;
#define vkCmdSetViewportWithCountEXT glad_vkCmdSetViewportWithCountEXT
#if defined(VK_ENABLE_BETA_EXTENSIONS)
GLAD_API_CALL PFN_vkCmdTraceRaysIndirectKHR glad_vkCmdTraceRaysIndirectKHR;
#define vkCmdTraceRaysIndirectKHR glad_vkCmdTraceRaysIndirectKHR
#endif
#if defined(VK_ENABLE_BETA_EXTENSIONS)
GLAD_API_CALL PFN_vkCmdTraceRaysKHR glad_vkCmdTraceRaysKHR;
#define vkCmdTraceRaysKHR glad_vkCmdTraceRaysKHR
#endif
GLAD_API_CALL PFN_vkCmdTraceRaysNV glad_vkCmdTraceRaysNV;
#define vkCmdTraceRaysNV glad_vkCmdTraceRaysNV
GLAD_API_CALL PFN_vkCmdUpdateBuffer glad_vkCmdUpdateBuffer;
#define vkCmdUpdateBuffer glad_vkCmdUpdateBuffer
GLAD_API_CALL PFN_vkCmdWaitEvents glad_vkCmdWaitEvents;
#define vkCmdWaitEvents glad_vkCmdWaitEvents
#if defined(VK_ENABLE_BETA_EXTENSIONS)
GLAD_API_CALL PFN_vkCmdWriteAccelerationStructuresPropertiesKHR glad_vkCmdWriteAccelerationStructuresPropertiesKHR;
#define vkCmdWriteAccelerationStructuresPropertiesKHR glad_vkCmdWriteAccelerationStructuresPropertiesKHR
#endif
GLAD_API_CALL PFN_vkCmdWriteAccelerationStructuresPropertiesNV glad_vkCmdWriteAccelerationStructuresPropertiesNV;
#define vkCmdWriteAccelerationStructuresPropertiesNV glad_vkCmdWriteAccelerationStructuresPropertiesNV
GLAD_API_CALL PFN_vkCmdWriteBufferMarkerAMD glad_vkCmdWriteBufferMarkerAMD;
#define vkCmdWriteBufferMarkerAMD glad_vkCmdWriteBufferMarkerAMD
GLAD_API_CALL PFN_vkCmdWriteTimestamp glad_vkCmdWriteTimestamp;
#define vkCmdWriteTimestamp glad_vkCmdWriteTimestamp
GLAD_API_CALL PFN_vkCompileDeferredNV glad_vkCompileDeferredNV;
#define vkCompileDeferredNV glad_vkCompileDeferredNV
#if defined(VK_ENABLE_BETA_EXTENSIONS)
GLAD_API_CALL PFN_vkCopyAccelerationStructureKHR glad_vkCopyAccelerationStructureKHR;
#define vkCopyAccelerationStructureKHR glad_vkCopyAccelerationStructureKHR
#endif
#if defined(VK_ENABLE_BETA_EXTENSIONS)
GLAD_API_CALL PFN_vkCopyAccelerationStructureToMemoryKHR glad_vkCopyAccelerationStructureToMemoryKHR;
#define vkCopyAccelerationStructureToMemoryKHR glad_vkCopyAccelerationStructureToMemoryKHR
#endif
#if defined(VK_ENABLE_BETA_EXTENSIONS)
GLAD_API_CALL PFN_vkCopyMemoryToAccelerationStructureKHR glad_vkCopyMemoryToAccelerationStructureKHR;
#define vkCopyMemoryToAccelerationStructureKHR glad_vkCopyMemoryToAccelerationStructureKHR
#endif
#if defined(VK_ENABLE_BETA_EXTENSIONS)
GLAD_API_CALL PFN_vkCreateAccelerationStructureKHR glad_vkCreateAccelerationStructureKHR;
#define vkCreateAccelerationStructureKHR glad_vkCreateAccelerationStructureKHR
#endif
GLAD_API_CALL PFN_vkCreateAccelerationStructureNV glad_vkCreateAccelerationStructureNV;
#define vkCreateAccelerationStructureNV glad_vkCreateAccelerationStructureNV
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
GLAD_API_CALL PFN_vkCreateAndroidSurfaceKHR glad_vkCreateAndroidSurfaceKHR;
#define vkCreateAndroidSurfaceKHR glad_vkCreateAndroidSurfaceKHR
#endif
GLAD_API_CALL PFN_vkCreateBuffer glad_vkCreateBuffer;
#define vkCreateBuffer glad_vkCreateBuffer
GLAD_API_CALL PFN_vkCreateBufferView glad_vkCreateBufferView;
#define vkCreateBufferView glad_vkCreateBufferView
GLAD_API_CALL PFN_vkCreateCommandPool glad_vkCreateCommandPool;
#define vkCreateCommandPool glad_vkCreateCommandPool
GLAD_API_CALL PFN_vkCreateComputePipelines glad_vkCreateComputePipelines;
#define vkCreateComputePipelines glad_vkCreateComputePipelines
GLAD_API_CALL PFN_vkCreateDebugReportCallbackEXT glad_vkCreateDebugReportCallbackEXT;
#define vkCreateDebugReportCallbackEXT glad_vkCreateDebugReportCallbackEXT
GLAD_API_CALL PFN_vkCreateDebugUtilsMessengerEXT glad_vkCreateDebugUtilsMessengerEXT;
#define vkCreateDebugUtilsMessengerEXT glad_vkCreateDebugUtilsMessengerEXT
#if defined(VK_ENABLE_BETA_EXTENSIONS)
GLAD_API_CALL PFN_vkCreateDeferredOperationKHR glad_vkCreateDeferredOperationKHR;
#define vkCreateDeferredOperationKHR glad_vkCreateDeferredOperationKHR
#endif
GLAD_API_CALL PFN_vkCreateDescriptorPool glad_vkCreateDescriptorPool;
#define vkCreateDescriptorPool glad_vkCreateDescriptorPool
GLAD_API_CALL PFN_vkCreateDescriptorSetLayout glad_vkCreateDescriptorSetLayout;
#define vkCreateDescriptorSetLayout glad_vkCreateDescriptorSetLayout
GLAD_API_CALL PFN_vkCreateDescriptorUpdateTemplate glad_vkCreateDescriptorUpdateTemplate;
#define vkCreateDescriptorUpdateTemplate glad_vkCreateDescriptorUpdateTemplate
GLAD_API_CALL PFN_vkCreateDescriptorUpdateTemplateKHR glad_vkCreateDescriptorUpdateTemplateKHR;
#define vkCreateDescriptorUpdateTemplateKHR glad_vkCreateDescriptorUpdateTemplateKHR
GLAD_API_CALL PFN_vkCreateDevice glad_vkCreateDevice;
#define vkCreateDevice glad_vkCreateDevice
#if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
GLAD_API_CALL PFN_vkCreateDirectFBSurfaceEXT glad_vkCreateDirectFBSurfaceEXT;
#define vkCreateDirectFBSurfaceEXT glad_vkCreateDirectFBSurfaceEXT
#endif
GLAD_API_CALL PFN_vkCreateDisplayModeKHR glad_vkCreateDisplayModeKHR;
#define vkCreateDisplayModeKHR glad_vkCreateDisplayModeKHR
GLAD_API_CALL PFN_vkCreateDisplayPlaneSurfaceKHR glad_vkCreateDisplayPlaneSurfaceKHR;
#define vkCreateDisplayPlaneSurfaceKHR glad_vkCreateDisplayPlaneSurfaceKHR
GLAD_API_CALL PFN_vkCreateEvent glad_vkCreateEvent;
#define vkCreateEvent glad_vkCreateEvent
GLAD_API_CALL PFN_vkCreateFence glad_vkCreateFence;
#define vkCreateFence glad_vkCreateFence
GLAD_API_CALL PFN_vkCreateFramebuffer glad_vkCreateFramebuffer;
#define vkCreateFramebuffer glad_vkCreateFramebuffer
GLAD_API_CALL PFN_vkCreateGraphicsPipelines glad_vkCreateGraphicsPipelines;
#define vkCreateGraphicsPipelines glad_vkCreateGraphicsPipelines
GLAD_API_CALL PFN_vkCreateHeadlessSurfaceEXT glad_vkCreateHeadlessSurfaceEXT;
#define vkCreateHeadlessSurfaceEXT glad_vkCreateHeadlessSurfaceEXT
#if defined(VK_USE_PLATFORM_IOS_MVK)
GLAD_API_CALL PFN_vkCreateIOSSurfaceMVK glad_vkCreateIOSSurfaceMVK;
#define vkCreateIOSSurfaceMVK glad_vkCreateIOSSurfaceMVK
#endif
GLAD_API_CALL PFN_vkCreateImage glad_vkCreateImage;
#define vkCreateImage glad_vkCreateImage
#if defined(VK_USE_PLATFORM_FUCHSIA)
GLAD_API_CALL PFN_vkCreateImagePipeSurfaceFUCHSIA glad_vkCreateImagePipeSurfaceFUCHSIA;
#define vkCreateImagePipeSurfaceFUCHSIA glad_vkCreateImagePipeSurfaceFUCHSIA
#endif
GLAD_API_CALL PFN_vkCreateImageView glad_vkCreateImageView;
#define vkCreateImageView glad_vkCreateImageView
GLAD_API_CALL PFN_vkCreateIndirectCommandsLayoutNV glad_vkCreateIndirectCommandsLayoutNV;
#define vkCreateIndirectCommandsLayoutNV glad_vkCreateIndirectCommandsLayoutNV
GLAD_API_CALL PFN_vkCreateInstance glad_vkCreateInstance;
#define vkCreateInstance glad_vkCreateInstance
#if defined(VK_USE_PLATFORM_MACOS_MVK)
GLAD_API_CALL PFN_vkCreateMacOSSurfaceMVK glad_vkCreateMacOSSurfaceMVK;
#define vkCreateMacOSSurfaceMVK glad_vkCreateMacOSSurfaceMVK
#endif
#if defined(VK_USE_PLATFORM_METAL_EXT)
GLAD_API_CALL PFN_vkCreateMetalSurfaceEXT glad_vkCreateMetalSurfaceEXT;
#define vkCreateMetalSurfaceEXT glad_vkCreateMetalSurfaceEXT
#endif
GLAD_API_CALL PFN_vkCreatePipelineCache glad_vkCreatePipelineCache;
#define vkCreatePipelineCache glad_vkCreatePipelineCache
GLAD_API_CALL PFN_vkCreatePipelineLayout glad_vkCreatePipelineLayout;
#define vkCreatePipelineLayout glad_vkCreatePipelineLayout
GLAD_API_CALL PFN_vkCreatePrivateDataSlotEXT glad_vkCreatePrivateDataSlotEXT;
#define vkCreatePrivateDataSlotEXT glad_vkCreatePrivateDataSlotEXT
GLAD_API_CALL PFN_vkCreateQueryPool glad_vkCreateQueryPool;
#define vkCreateQueryPool glad_vkCreateQueryPool
#if defined(VK_ENABLE_BETA_EXTENSIONS)
GLAD_API_CALL PFN_vkCreateRayTracingPipelinesKHR glad_vkCreateRayTracingPipelinesKHR;
#define vkCreateRayTracingPipelinesKHR glad_vkCreateRayTracingPipelinesKHR
#endif
GLAD_API_CALL PFN_vkCreateRayTracingPipelinesNV glad_vkCreateRayTracingPipelinesNV;
#define vkCreateRayTracingPipelinesNV glad_vkCreateRayTracingPipelinesNV
GLAD_API_CALL PFN_vkCreateRenderPass glad_vkCreateRenderPass;
#define vkCreateRenderPass glad_vkCreateRenderPass
GLAD_API_CALL PFN_vkCreateRenderPass2 glad_vkCreateRenderPass2;
#define vkCreateRenderPass2 glad_vkCreateRenderPass2
GLAD_API_CALL PFN_vkCreateRenderPass2KHR glad_vkCreateRenderPass2KHR;
#define vkCreateRenderPass2KHR glad_vkCreateRenderPass2KHR
GLAD_API_CALL PFN_vkCreateSampler glad_vkCreateSampler;
#define vkCreateSampler glad_vkCreateSampler
GLAD_API_CALL PFN_vkCreateSamplerYcbcrConversion glad_vkCreateSamplerYcbcrConversion;
#define vkCreateSamplerYcbcrConversion glad_vkCreateSamplerYcbcrConversion
GLAD_API_CALL PFN_vkCreateSamplerYcbcrConversionKHR glad_vkCreateSamplerYcbcrConversionKHR;
#define vkCreateSamplerYcbcrConversionKHR glad_vkCreateSamplerYcbcrConversionKHR
GLAD_API_CALL PFN_vkCreateSemaphore glad_vkCreateSemaphore;
#define vkCreateSemaphore glad_vkCreateSemaphore
GLAD_API_CALL PFN_vkCreateShaderModule glad_vkCreateShaderModule;
#define vkCreateShaderModule glad_vkCreateShaderModule
GLAD_API_CALL PFN_vkCreateSharedSwapchainsKHR glad_vkCreateSharedSwapchainsKHR;
#define vkCreateSharedSwapchainsKHR glad_vkCreateSharedSwapchainsKHR
#if defined(VK_USE_PLATFORM_GGP)
GLAD_API_CALL PFN_vkCreateStreamDescriptorSurfaceGGP glad_vkCreateStreamDescriptorSurfaceGGP;
#define vkCreateStreamDescriptorSurfaceGGP glad_vkCreateStreamDescriptorSurfaceGGP
#endif
GLAD_API_CALL PFN_vkCreateSwapchainKHR glad_vkCreateSwapchainKHR;
#define vkCreateSwapchainKHR glad_vkCreateSwapchainKHR
GLAD_API_CALL PFN_vkCreateValidationCacheEXT glad_vkCreateValidationCacheEXT;
#define vkCreateValidationCacheEXT glad_vkCreateValidationCacheEXT
#if defined(VK_USE_PLATFORM_VI_NN)
GLAD_API_CALL PFN_vkCreateViSurfaceNN glad_vkCreateViSurfaceNN;
#define vkCreateViSurfaceNN glad_vkCreateViSurfaceNN
#endif
#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
GLAD_API_CALL PFN_vkCreateWaylandSurfaceKHR glad_vkCreateWaylandSurfaceKHR;
#define vkCreateWaylandSurfaceKHR glad_vkCreateWaylandSurfaceKHR
#endif
#if defined(VK_USE_PLATFORM_WIN32_KHR)
GLAD_API_CALL PFN_vkCreateWin32SurfaceKHR glad_vkCreateWin32SurfaceKHR;
#define vkCreateWin32SurfaceKHR glad_vkCreateWin32SurfaceKHR
#endif
#if defined(VK_USE_PLATFORM_XCB_KHR)
GLAD_API_CALL PFN_vkCreateXcbSurfaceKHR glad_vkCreateXcbSurfaceKHR;
#define vkCreateXcbSurfaceKHR glad_vkCreateXcbSurfaceKHR
#endif
#if defined(VK_USE_PLATFORM_XLIB_KHR)
GLAD_API_CALL PFN_vkCreateXlibSurfaceKHR glad_vkCreateXlibSurfaceKHR;
#define vkCreateXlibSurfaceKHR glad_vkCreateXlibSurfaceKHR
#endif
GLAD_API_CALL PFN_vkDebugMarkerSetObjectNameEXT glad_vkDebugMarkerSetObjectNameEXT;
#define vkDebugMarkerSetObjectNameEXT glad_vkDebugMarkerSetObjectNameEXT
GLAD_API_CALL PFN_vkDebugMarkerSetObjectTagEXT glad_vkDebugMarkerSetObjectTagEXT;
#define vkDebugMarkerSetObjectTagEXT glad_vkDebugMarkerSetObjectTagEXT
GLAD_API_CALL PFN_vkDebugReportMessageEXT glad_vkDebugReportMessageEXT;
#define vkDebugReportMessageEXT glad_vkDebugReportMessageEXT
#if defined(VK_ENABLE_BETA_EXTENSIONS)
GLAD_API_CALL PFN_vkDeferredOperationJoinKHR glad_vkDeferredOperationJoinKHR;
#define vkDeferredOperationJoinKHR glad_vkDeferredOperationJoinKHR
#endif
#if defined(VK_ENABLE_BETA_EXTENSIONS)
GLAD_API_CALL PFN_vkDestroyAccelerationStructureKHR glad_vkDestroyAccelerationStructureKHR;
#define vkDestroyAccelerationStructureKHR glad_vkDestroyAccelerationStructureKHR
#endif
GLAD_API_CALL PFN_vkDestroyAccelerationStructureNV glad_vkDestroyAccelerationStructureNV;
#define vkDestroyAccelerationStructureNV glad_vkDestroyAccelerationStructureNV
GLAD_API_CALL PFN_vkDestroyBuffer glad_vkDestroyBuffer;
#define vkDestroyBuffer glad_vkDestroyBuffer
GLAD_API_CALL PFN_vkDestroyBufferView glad_vkDestroyBufferView;
#define vkDestroyBufferView glad_vkDestroyBufferView
GLAD_API_CALL PFN_vkDestroyCommandPool glad_vkDestroyCommandPool;
#define vkDestroyCommandPool glad_vkDestroyCommandPool
GLAD_API_CALL PFN_vkDestroyDebugReportCallbackEXT glad_vkDestroyDebugReportCallbackEXT;
#define vkDestroyDebugReportCallbackEXT glad_vkDestroyDebugReportCallbackEXT
GLAD_API_CALL PFN_vkDestroyDebugUtilsMessengerEXT glad_vkDestroyDebugUtilsMessengerEXT;
#define vkDestroyDebugUtilsMessengerEXT glad_vkDestroyDebugUtilsMessengerEXT
#if defined(VK_ENABLE_BETA_EXTENSIONS)
GLAD_API_CALL PFN_vkDestroyDeferredOperationKHR glad_vkDestroyDeferredOperationKHR;
#define vkDestroyDeferredOperationKHR glad_vkDestroyDeferredOperationKHR
#endif
GLAD_API_CALL PFN_vkDestroyDescriptorPool glad_vkDestroyDescriptorPool;
#define vkDestroyDescriptorPool glad_vkDestroyDescriptorPool
GLAD_API_CALL PFN_vkDestroyDescriptorSetLayout glad_vkDestroyDescriptorSetLayout;
#define vkDestroyDescriptorSetLayout glad_vkDestroyDescriptorSetLayout
GLAD_API_CALL PFN_vkDestroyDescriptorUpdateTemplate glad_vkDestroyDescriptorUpdateTemplate;
#define vkDestroyDescriptorUpdateTemplate glad_vkDestroyDescriptorUpdateTemplate
GLAD_API_CALL PFN_vkDestroyDescriptorUpdateTemplateKHR glad_vkDestroyDescriptorUpdateTemplateKHR;
#define vkDestroyDescriptorUpdateTemplateKHR glad_vkDestroyDescriptorUpdateTemplateKHR
GLAD_API_CALL PFN_vkDestroyDevice glad_vkDestroyDevice;
#define vkDestroyDevice glad_vkDestroyDevice
GLAD_API_CALL PFN_vkDestroyEvent glad_vkDestroyEvent;
#define vkDestroyEvent glad_vkDestroyEvent
GLAD_API_CALL PFN_vkDestroyFence glad_vkDestroyFence;
#define vkDestroyFence glad_vkDestroyFence
GLAD_API_CALL PFN_vkDestroyFramebuffer glad_vkDestroyFramebuffer;
#define vkDestroyFramebuffer glad_vkDestroyFramebuffer
GLAD_API_CALL PFN_vkDestroyImage glad_vkDestroyImage;
#define vkDestroyImage glad_vkDestroyImage
GLAD_API_CALL PFN_vkDestroyImageView glad_vkDestroyImageView;
#define vkDestroyImageView glad_vkDestroyImageView
GLAD_API_CALL PFN_vkDestroyIndirectCommandsLayoutNV glad_vkDestroyIndirectCommandsLayoutNV;
#define vkDestroyIndirectCommandsLayoutNV glad_vkDestroyIndirectCommandsLayoutNV
GLAD_API_CALL PFN_vkDestroyInstance glad_vkDestroyInstance;
#define vkDestroyInstance glad_vkDestroyInstance
GLAD_API_CALL PFN_vkDestroyPipeline glad_vkDestroyPipeline;
#define vkDestroyPipeline glad_vkDestroyPipeline
GLAD_API_CALL PFN_vkDestroyPipelineCache glad_vkDestroyPipelineCache;
#define vkDestroyPipelineCache glad_vkDestroyPipelineCache
GLAD_API_CALL PFN_vkDestroyPipelineLayout glad_vkDestroyPipelineLayout;
#define vkDestroyPipelineLayout glad_vkDestroyPipelineLayout
GLAD_API_CALL PFN_vkDestroyPrivateDataSlotEXT glad_vkDestroyPrivateDataSlotEXT;
#define vkDestroyPrivateDataSlotEXT glad_vkDestroyPrivateDataSlotEXT
GLAD_API_CALL PFN_vkDestroyQueryPool glad_vkDestroyQueryPool;
#define vkDestroyQueryPool glad_vkDestroyQueryPool
GLAD_API_CALL PFN_vkDestroyRenderPass glad_vkDestroyRenderPass;
#define vkDestroyRenderPass glad_vkDestroyRenderPass
GLAD_API_CALL PFN_vkDestroySampler glad_vkDestroySampler;
#define vkDestroySampler glad_vkDestroySampler
GLAD_API_CALL PFN_vkDestroySamplerYcbcrConversion glad_vkDestroySamplerYcbcrConversion;
#define vkDestroySamplerYcbcrConversion glad_vkDestroySamplerYcbcrConversion
GLAD_API_CALL PFN_vkDestroySamplerYcbcrConversionKHR glad_vkDestroySamplerYcbcrConversionKHR;
#define vkDestroySamplerYcbcrConversionKHR glad_vkDestroySamplerYcbcrConversionKHR
GLAD_API_CALL PFN_vkDestroySemaphore glad_vkDestroySemaphore;
#define vkDestroySemaphore glad_vkDestroySemaphore
GLAD_API_CALL PFN_vkDestroyShaderModule glad_vkDestroyShaderModule;
#define vkDestroyShaderModule glad_vkDestroyShaderModule
GLAD_API_CALL PFN_vkDestroySurfaceKHR glad_vkDestroySurfaceKHR;
#define vkDestroySurfaceKHR glad_vkDestroySurfaceKHR
GLAD_API_CALL PFN_vkDestroySwapchainKHR glad_vkDestroySwapchainKHR;
#define vkDestroySwapchainKHR glad_vkDestroySwapchainKHR
GLAD_API_CALL PFN_vkDestroyValidationCacheEXT glad_vkDestroyValidationCacheEXT;
#define vkDestroyValidationCacheEXT glad_vkDestroyValidationCacheEXT
GLAD_API_CALL PFN_vkDeviceWaitIdle glad_vkDeviceWaitIdle;
#define vkDeviceWaitIdle glad_vkDeviceWaitIdle
GLAD_API_CALL PFN_vkDisplayPowerControlEXT glad_vkDisplayPowerControlEXT;
#define vkDisplayPowerControlEXT glad_vkDisplayPowerControlEXT
GLAD_API_CALL PFN_vkEndCommandBuffer glad_vkEndCommandBuffer;
#define vkEndCommandBuffer glad_vkEndCommandBuffer
GLAD_API_CALL PFN_vkEnumerateDeviceExtensionProperties glad_vkEnumerateDeviceExtensionProperties;
#define vkEnumerateDeviceExtensionProperties glad_vkEnumerateDeviceExtensionProperties
GLAD_API_CALL PFN_vkEnumerateDeviceLayerProperties glad_vkEnumerateDeviceLayerProperties;
#define vkEnumerateDeviceLayerProperties glad_vkEnumerateDeviceLayerProperties
GLAD_API_CALL PFN_vkEnumerateInstanceExtensionProperties glad_vkEnumerateInstanceExtensionProperties;
#define vkEnumerateInstanceExtensionProperties glad_vkEnumerateInstanceExtensionProperties
GLAD_API_CALL PFN_vkEnumerateInstanceLayerProperties glad_vkEnumerateInstanceLayerProperties;
#define vkEnumerateInstanceLayerProperties glad_vkEnumerateInstanceLayerProperties
GLAD_API_CALL PFN_vkEnumerateInstanceVersion glad_vkEnumerateInstanceVersion;
#define vkEnumerateInstanceVersion glad_vkEnumerateInstanceVersion
GLAD_API_CALL PFN_vkEnumeratePhysicalDeviceGroups glad_vkEnumeratePhysicalDeviceGroups;
#define vkEnumeratePhysicalDeviceGroups glad_vkEnumeratePhysicalDeviceGroups
GLAD_API_CALL PFN_vkEnumeratePhysicalDeviceGroupsKHR glad_vkEnumeratePhysicalDeviceGroupsKHR;
#define vkEnumeratePhysicalDeviceGroupsKHR glad_vkEnumeratePhysicalDeviceGroupsKHR
GLAD_API_CALL PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR glad_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR;
#define vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR glad_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR
GLAD_API_CALL PFN_vkEnumeratePhysicalDevices glad_vkEnumeratePhysicalDevices;
#define vkEnumeratePhysicalDevices glad_vkEnumeratePhysicalDevices
GLAD_API_CALL PFN_vkFlushMappedMemoryRanges glad_vkFlushMappedMemoryRanges;
#define vkFlushMappedMemoryRanges glad_vkFlushMappedMemoryRanges
GLAD_API_CALL PFN_vkFreeCommandBuffers glad_vkFreeCommandBuffers;
#define vkFreeCommandBuffers glad_vkFreeCommandBuffers
GLAD_API_CALL PFN_vkFreeDescriptorSets glad_vkFreeDescriptorSets;
#define vkFreeDescriptorSets glad_vkFreeDescriptorSets
GLAD_API_CALL PFN_vkFreeMemory glad_vkFreeMemory;
#define vkFreeMemory glad_vkFreeMemory
#if defined(VK_ENABLE_BETA_EXTENSIONS)
GLAD_API_CALL PFN_vkGetAccelerationStructureDeviceAddressKHR glad_vkGetAccelerationStructureDeviceAddressKHR;
#define vkGetAccelerationStructureDeviceAddressKHR glad_vkGetAccelerationStructureDeviceAddressKHR
#endif
GLAD_API_CALL PFN_vkGetAccelerationStructureHandleNV glad_vkGetAccelerationStructureHandleNV;
#define vkGetAccelerationStructureHandleNV glad_vkGetAccelerationStructureHandleNV
#if defined(VK_ENABLE_BETA_EXTENSIONS)
GLAD_API_CALL PFN_vkGetAccelerationStructureMemoryRequirementsKHR glad_vkGetAccelerationStructureMemoryRequirementsKHR;
#define vkGetAccelerationStructureMemoryRequirementsKHR glad_vkGetAccelerationStructureMemoryRequirementsKHR
#endif
GLAD_API_CALL PFN_vkGetAccelerationStructureMemoryRequirementsNV glad_vkGetAccelerationStructureMemoryRequirementsNV;
#define vkGetAccelerationStructureMemoryRequirementsNV glad_vkGetAccelerationStructureMemoryRequirementsNV
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
GLAD_API_CALL PFN_vkGetAndroidHardwareBufferPropertiesANDROID glad_vkGetAndroidHardwareBufferPropertiesANDROID;
#define vkGetAndroidHardwareBufferPropertiesANDROID glad_vkGetAndroidHardwareBufferPropertiesANDROID
#endif
GLAD_API_CALL PFN_vkGetBufferDeviceAddress glad_vkGetBufferDeviceAddress;
#define vkGetBufferDeviceAddress glad_vkGetBufferDeviceAddress
GLAD_API_CALL PFN_vkGetBufferDeviceAddressEXT glad_vkGetBufferDeviceAddressEXT;
#define vkGetBufferDeviceAddressEXT glad_vkGetBufferDeviceAddressEXT
GLAD_API_CALL PFN_vkGetBufferDeviceAddressKHR glad_vkGetBufferDeviceAddressKHR;
#define vkGetBufferDeviceAddressKHR glad_vkGetBufferDeviceAddressKHR
GLAD_API_CALL PFN_vkGetBufferMemoryRequirements glad_vkGetBufferMemoryRequirements;
#define vkGetBufferMemoryRequirements glad_vkGetBufferMemoryRequirements
GLAD_API_CALL PFN_vkGetBufferMemoryRequirements2 glad_vkGetBufferMemoryRequirements2;
#define vkGetBufferMemoryRequirements2 glad_vkGetBufferMemoryRequirements2
GLAD_API_CALL PFN_vkGetBufferMemoryRequirements2KHR glad_vkGetBufferMemoryRequirements2KHR;
#define vkGetBufferMemoryRequirements2KHR glad_vkGetBufferMemoryRequirements2KHR
GLAD_API_CALL PFN_vkGetBufferOpaqueCaptureAddress glad_vkGetBufferOpaqueCaptureAddress;
#define vkGetBufferOpaqueCaptureAddress glad_vkGetBufferOpaqueCaptureAddress
GLAD_API_CALL PFN_vkGetBufferOpaqueCaptureAddressKHR glad_vkGetBufferOpaqueCaptureAddressKHR;
#define vkGetBufferOpaqueCaptureAddressKHR glad_vkGetBufferOpaqueCaptureAddressKHR
GLAD_API_CALL PFN_vkGetCalibratedTimestampsEXT glad_vkGetCalibratedTimestampsEXT;
#define vkGetCalibratedTimestampsEXT glad_vkGetCalibratedTimestampsEXT
#if defined(VK_ENABLE_BETA_EXTENSIONS)
GLAD_API_CALL PFN_vkGetDeferredOperationMaxConcurrencyKHR glad_vkGetDeferredOperationMaxConcurrencyKHR;
#define vkGetDeferredOperationMaxConcurrencyKHR glad_vkGetDeferredOperationMaxConcurrencyKHR
#endif
#if defined(VK_ENABLE_BETA_EXTENSIONS)
GLAD_API_CALL PFN_vkGetDeferredOperationResultKHR glad_vkGetDeferredOperationResultKHR;
#define vkGetDeferredOperationResultKHR glad_vkGetDeferredOperationResultKHR
#endif
GLAD_API_CALL PFN_vkGetDescriptorSetLayoutSupport glad_vkGetDescriptorSetLayoutSupport;
#define vkGetDescriptorSetLayoutSupport glad_vkGetDescriptorSetLayoutSupport
GLAD_API_CALL PFN_vkGetDescriptorSetLayoutSupportKHR glad_vkGetDescriptorSetLayoutSupportKHR;
#define vkGetDescriptorSetLayoutSupportKHR glad_vkGetDescriptorSetLayoutSupportKHR
#if defined(VK_ENABLE_BETA_EXTENSIONS)
GLAD_API_CALL PFN_vkGetDeviceAccelerationStructureCompatibilityKHR glad_vkGetDeviceAccelerationStructureCompatibilityKHR;
#define vkGetDeviceAccelerationStructureCompatibilityKHR glad_vkGetDeviceAccelerationStructureCompatibilityKHR
#endif
GLAD_API_CALL PFN_vkGetDeviceGroupPeerMemoryFeatures glad_vkGetDeviceGroupPeerMemoryFeatures;
#define vkGetDeviceGroupPeerMemoryFeatures glad_vkGetDeviceGroupPeerMemoryFeatures
GLAD_API_CALL PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR glad_vkGetDeviceGroupPeerMemoryFeaturesKHR;
#define vkGetDeviceGroupPeerMemoryFeaturesKHR glad_vkGetDeviceGroupPeerMemoryFeaturesKHR
GLAD_API_CALL PFN_vkGetDeviceGroupPresentCapabilitiesKHR glad_vkGetDeviceGroupPresentCapabilitiesKHR;
#define vkGetDeviceGroupPresentCapabilitiesKHR glad_vkGetDeviceGroupPresentCapabilitiesKHR
#if defined(VK_USE_PLATFORM_WIN32_KHR)
GLAD_API_CALL PFN_vkGetDeviceGroupSurfacePresentModes2EXT glad_vkGetDeviceGroupSurfacePresentModes2EXT;
#define vkGetDeviceGroupSurfacePresentModes2EXT glad_vkGetDeviceGroupSurfacePresentModes2EXT
#endif
GLAD_API_CALL PFN_vkGetDeviceGroupSurfacePresentModesKHR glad_vkGetDeviceGroupSurfacePresentModesKHR;
#define vkGetDeviceGroupSurfacePresentModesKHR glad_vkGetDeviceGroupSurfacePresentModesKHR
GLAD_API_CALL PFN_vkGetDeviceMemoryCommitment glad_vkGetDeviceMemoryCommitment;
#define vkGetDeviceMemoryCommitment glad_vkGetDeviceMemoryCommitment
GLAD_API_CALL PFN_vkGetDeviceMemoryOpaqueCaptureAddress glad_vkGetDeviceMemoryOpaqueCaptureAddress;
#define vkGetDeviceMemoryOpaqueCaptureAddress glad_vkGetDeviceMemoryOpaqueCaptureAddress
GLAD_API_CALL PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR glad_vkGetDeviceMemoryOpaqueCaptureAddressKHR;
#define vkGetDeviceMemoryOpaqueCaptureAddressKHR glad_vkGetDeviceMemoryOpaqueCaptureAddressKHR
GLAD_API_CALL PFN_vkGetDeviceProcAddr glad_vkGetDeviceProcAddr;
#define vkGetDeviceProcAddr glad_vkGetDeviceProcAddr
GLAD_API_CALL PFN_vkGetDeviceQueue glad_vkGetDeviceQueue;
#define vkGetDeviceQueue glad_vkGetDeviceQueue
GLAD_API_CALL PFN_vkGetDeviceQueue2 glad_vkGetDeviceQueue2;
#define vkGetDeviceQueue2 glad_vkGetDeviceQueue2
GLAD_API_CALL PFN_vkGetDisplayModeProperties2KHR glad_vkGetDisplayModeProperties2KHR;
#define vkGetDisplayModeProperties2KHR glad_vkGetDisplayModeProperties2KHR
GLAD_API_CALL PFN_vkGetDisplayModePropertiesKHR glad_vkGetDisplayModePropertiesKHR;
#define vkGetDisplayModePropertiesKHR glad_vkGetDisplayModePropertiesKHR
GLAD_API_CALL PFN_vkGetDisplayPlaneCapabilities2KHR glad_vkGetDisplayPlaneCapabilities2KHR;
#define vkGetDisplayPlaneCapabilities2KHR glad_vkGetDisplayPlaneCapabilities2KHR
GLAD_API_CALL PFN_vkGetDisplayPlaneCapabilitiesKHR glad_vkGetDisplayPlaneCapabilitiesKHR;
#define vkGetDisplayPlaneCapabilitiesKHR glad_vkGetDisplayPlaneCapabilitiesKHR
GLAD_API_CALL PFN_vkGetDisplayPlaneSupportedDisplaysKHR glad_vkGetDisplayPlaneSupportedDisplaysKHR;
#define vkGetDisplayPlaneSupportedDisplaysKHR glad_vkGetDisplayPlaneSupportedDisplaysKHR
GLAD_API_CALL PFN_vkGetEventStatus glad_vkGetEventStatus;
#define vkGetEventStatus glad_vkGetEventStatus
GLAD_API_CALL PFN_vkGetFenceFdKHR glad_vkGetFenceFdKHR;
#define vkGetFenceFdKHR glad_vkGetFenceFdKHR
GLAD_API_CALL PFN_vkGetFenceStatus glad_vkGetFenceStatus;
#define vkGetFenceStatus glad_vkGetFenceStatus
#if defined(VK_USE_PLATFORM_WIN32_KHR)
GLAD_API_CALL PFN_vkGetFenceWin32HandleKHR glad_vkGetFenceWin32HandleKHR;
#define vkGetFenceWin32HandleKHR glad_vkGetFenceWin32HandleKHR
#endif
GLAD_API_CALL PFN_vkGetGeneratedCommandsMemoryRequirementsNV glad_vkGetGeneratedCommandsMemoryRequirementsNV;
#define vkGetGeneratedCommandsMemoryRequirementsNV glad_vkGetGeneratedCommandsMemoryRequirementsNV
GLAD_API_CALL PFN_vkGetImageDrmFormatModifierPropertiesEXT glad_vkGetImageDrmFormatModifierPropertiesEXT;
#define vkGetImageDrmFormatModifierPropertiesEXT glad_vkGetImageDrmFormatModifierPropertiesEXT
GLAD_API_CALL PFN_vkGetImageMemoryRequirements glad_vkGetImageMemoryRequirements;
#define vkGetImageMemoryRequirements glad_vkGetImageMemoryRequirements
GLAD_API_CALL PFN_vkGetImageMemoryRequirements2 glad_vkGetImageMemoryRequirements2;
#define vkGetImageMemoryRequirements2 glad_vkGetImageMemoryRequirements2
GLAD_API_CALL PFN_vkGetImageMemoryRequirements2KHR glad_vkGetImageMemoryRequirements2KHR;
#define vkGetImageMemoryRequirements2KHR glad_vkGetImageMemoryRequirements2KHR
GLAD_API_CALL PFN_vkGetImageSparseMemoryRequirements glad_vkGetImageSparseMemoryRequirements;
#define vkGetImageSparseMemoryRequirements glad_vkGetImageSparseMemoryRequirements
GLAD_API_CALL PFN_vkGetImageSparseMemoryRequirements2 glad_vkGetImageSparseMemoryRequirements2;
#define vkGetImageSparseMemoryRequirements2 glad_vkGetImageSparseMemoryRequirements2
GLAD_API_CALL PFN_vkGetImageSparseMemoryRequirements2KHR glad_vkGetImageSparseMemoryRequirements2KHR;
#define vkGetImageSparseMemoryRequirements2KHR glad_vkGetImageSparseMemoryRequirements2KHR
GLAD_API_CALL PFN_vkGetImageSubresourceLayout glad_vkGetImageSubresourceLayout;
#define vkGetImageSubresourceLayout glad_vkGetImageSubresourceLayout
GLAD_API_CALL PFN_vkGetImageViewAddressNVX glad_vkGetImageViewAddressNVX;
#define vkGetImageViewAddressNVX glad_vkGetImageViewAddressNVX
GLAD_API_CALL PFN_vkGetImageViewHandleNVX glad_vkGetImageViewHandleNVX;
#define vkGetImageViewHandleNVX glad_vkGetImageViewHandleNVX
GLAD_API_CALL PFN_vkGetInstanceProcAddr glad_vkGetInstanceProcAddr;
#define vkGetInstanceProcAddr glad_vkGetInstanceProcAddr
#if defined(VK_USE_PLATFORM_ANDROID_KHR)
GLAD_API_CALL PFN_vkGetMemoryAndroidHardwareBufferANDROID glad_vkGetMemoryAndroidHardwareBufferANDROID;
#define vkGetMemoryAndroidHardwareBufferANDROID glad_vkGetMemoryAndroidHardwareBufferANDROID
#endif
GLAD_API_CALL PFN_vkGetMemoryFdKHR glad_vkGetMemoryFdKHR;
#define vkGetMemoryFdKHR glad_vkGetMemoryFdKHR
GLAD_API_CALL PFN_vkGetMemoryFdPropertiesKHR glad_vkGetMemoryFdPropertiesKHR;
#define vkGetMemoryFdPropertiesKHR glad_vkGetMemoryFdPropertiesKHR
GLAD_API_CALL PFN_vkGetMemoryHostPointerPropertiesEXT glad_vkGetMemoryHostPointerPropertiesEXT;
#define vkGetMemoryHostPointerPropertiesEXT glad_vkGetMemoryHostPointerPropertiesEXT
#if defined(VK_USE_PLATFORM_WIN32_KHR)
GLAD_API_CALL PFN_vkGetMemoryWin32HandleKHR glad_vkGetMemoryWin32HandleKHR;
#define vkGetMemoryWin32HandleKHR glad_vkGetMemoryWin32HandleKHR
#endif
#if defined(VK_USE_PLATFORM_WIN32_KHR)
GLAD_API_CALL PFN_vkGetMemoryWin32HandleNV glad_vkGetMemoryWin32HandleNV;
#define vkGetMemoryWin32HandleNV glad_vkGetMemoryWin32HandleNV
#endif
#if defined(VK_USE_PLATFORM_WIN32_KHR)
GLAD_API_CALL PFN_vkGetMemoryWin32HandlePropertiesKHR glad_vkGetMemoryWin32HandlePropertiesKHR;
#define vkGetMemoryWin32HandlePropertiesKHR glad_vkGetMemoryWin32HandlePropertiesKHR
#endif
GLAD_API_CALL PFN_vkGetPastPresentationTimingGOOGLE glad_vkGetPastPresentationTimingGOOGLE;
#define vkGetPastPresentationTimingGOOGLE glad_vkGetPastPresentationTimingGOOGLE
GLAD_API_CALL PFN_vkGetPerformanceParameterINTEL glad_vkGetPerformanceParameterINTEL;
#define vkGetPerformanceParameterINTEL glad_vkGetPerformanceParameterINTEL
GLAD_API_CALL PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT glad_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT;
#define vkGetPhysicalDeviceCalibrateableTimeDomainsEXT glad_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT
GLAD_API_CALL PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV glad_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV;
#define vkGetPhysicalDeviceCooperativeMatrixPropertiesNV glad_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV
#if defined(VK_USE_PLATFORM_DIRECTFB_EXT)
GLAD_API_CALL PFN_vkGetPhysicalDeviceDirectFBPresentationSupportEXT glad_vkGetPhysicalDeviceDirectFBPresentationSupportEXT;
#define vkGetPhysicalDeviceDirectFBPresentationSupportEXT glad_vkGetPhysicalDeviceDirectFBPresentationSupportEXT
#endif
GLAD_API_CALL PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR glad_vkGetPhysicalDeviceDisplayPlaneProperties2KHR;
#define vkGetPhysicalDeviceDisplayPlaneProperties2KHR glad_vkGetPhysicalDeviceDisplayPlaneProperties2KHR
GLAD_API_CALL PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR glad_vkGetPhysicalDeviceDisplayPlanePropertiesKHR;
#define vkGetPhysicalDeviceDisplayPlanePropertiesKHR glad_vkGetPhysicalDeviceDisplayPlanePropertiesKHR
GLAD_API_CALL PFN_vkGetPhysicalDeviceDisplayProperties2KHR glad_vkGetPhysicalDeviceDisplayProperties2KHR;
#define vkGetPhysicalDeviceDisplayProperties2KHR glad_vkGetPhysicalDeviceDisplayProperties2KHR
GLAD_API_CALL PFN_vkGetPhysicalDeviceDisplayPropertiesKHR glad_vkGetPhysicalDeviceDisplayPropertiesKHR;
#define vkGetPhysicalDeviceDisplayPropertiesKHR glad_vkGetPhysicalDeviceDisplayPropertiesKHR
GLAD_API_CALL PFN_vkGetPhysicalDeviceExternalBufferProperties glad_vkGetPhysicalDeviceExternalBufferProperties;
#define vkGetPhysicalDeviceExternalBufferProperties glad_vkGetPhysicalDeviceExternalBufferProperties
GLAD_API_CALL PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR glad_vkGetPhysicalDeviceExternalBufferPropertiesKHR;
#define vkGetPhysicalDeviceExternalBufferPropertiesKHR glad_vkGetPhysicalDeviceExternalBufferPropertiesKHR
GLAD_API_CALL PFN_vkGetPhysicalDeviceExternalFenceProperties glad_vkGetPhysicalDeviceExternalFenceProperties;
#define vkGetPhysicalDeviceExternalFenceProperties glad_vkGetPhysicalDeviceExternalFenceProperties
GLAD_API_CALL PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR glad_vkGetPhysicalDeviceExternalFencePropertiesKHR;
#define vkGetPhysicalDeviceExternalFencePropertiesKHR glad_vkGetPhysicalDeviceExternalFencePropertiesKHR
GLAD_API_CALL PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV glad_vkGetPhysicalDeviceExternalImageFormatPropertiesNV;
#define vkGetPhysicalDeviceExternalImageFormatPropertiesNV glad_vkGetPhysicalDeviceExternalImageFormatPropertiesNV
GLAD_API_CALL PFN_vkGetPhysicalDeviceExternalSemaphoreProperties glad_vkGetPhysicalDeviceExternalSemaphoreProperties;
#define vkGetPhysicalDeviceExternalSemaphoreProperties glad_vkGetPhysicalDeviceExternalSemaphoreProperties
GLAD_API_CALL PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR glad_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR;
#define vkGetPhysicalDeviceExternalSemaphorePropertiesKHR glad_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR
GLAD_API_CALL PFN_vkGetPhysicalDeviceFeatures glad_vkGetPhysicalDeviceFeatures;
#define vkGetPhysicalDeviceFeatures glad_vkGetPhysicalDeviceFeatures
GLAD_API_CALL PFN_vkGetPhysicalDeviceFeatures2 glad_vkGetPhysicalDeviceFeatures2;
#define vkGetPhysicalDeviceFeatures2 glad_vkGetPhysicalDeviceFeatures2
GLAD_API_CALL PFN_vkGetPhysicalDeviceFeatures2KHR glad_vkGetPhysicalDeviceFeatures2KHR;
#define vkGetPhysicalDeviceFeatures2KHR glad_vkGetPhysicalDeviceFeatures2KHR
GLAD_API_CALL PFN_vkGetPhysicalDeviceFormatProperties glad_vkGetPhysicalDeviceFormatProperties;
#define vkGetPhysicalDeviceFormatProperties glad_vkGetPhysicalDeviceFormatProperties
GLAD_API_CALL PFN_vkGetPhysicalDeviceFormatProperties2 glad_vkGetPhysicalDeviceFormatProperties2;
#define vkGetPhysicalDeviceFormatProperties2 glad_vkGetPhysicalDeviceFormatProperties2
GLAD_API_CALL PFN_vkGetPhysicalDeviceFormatProperties2KHR glad_vkGetPhysicalDeviceFormatProperties2KHR;
#define vkGetPhysicalDeviceFormatProperties2KHR glad_vkGetPhysicalDeviceFormatProperties2KHR
GLAD_API_CALL PFN_vkGetPhysicalDeviceImageFormatProperties glad_vkGetPhysicalDeviceImageFormatProperties;
#define vkGetPhysicalDeviceImageFormatProperties glad_vkGetPhysicalDeviceImageFormatProperties
GLAD_API_CALL PFN_vkGetPhysicalDeviceImageFormatProperties2 glad_vkGetPhysicalDeviceImageFormatProperties2;
#define vkGetPhysicalDeviceImageFormatProperties2 glad_vkGetPhysicalDeviceImageFormatProperties2
GLAD_API_CALL PFN_vkGetPhysicalDeviceImageFormatProperties2KHR glad_vkGetPhysicalDeviceImageFormatProperties2KHR;
#define vkGetPhysicalDeviceImageFormatProperties2KHR glad_vkGetPhysicalDeviceImageFormatProperties2KHR
GLAD_API_CALL PFN_vkGetPhysicalDeviceMemoryProperties glad_vkGetPhysicalDeviceMemoryProperties;
#define vkGetPhysicalDeviceMemoryProperties glad_vkGetPhysicalDeviceMemoryProperties
GLAD_API_CALL PFN_vkGetPhysicalDeviceMemoryProperties2 glad_vkGetPhysicalDeviceMemoryProperties2;
#define vkGetPhysicalDeviceMemoryProperties2 glad_vkGetPhysicalDeviceMemoryProperties2
GLAD_API_CALL PFN_vkGetPhysicalDeviceMemoryProperties2KHR glad_vkGetPhysicalDeviceMemoryProperties2KHR;
#define vkGetPhysicalDeviceMemoryProperties2KHR glad_vkGetPhysicalDeviceMemoryProperties2KHR
GLAD_API_CALL PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT glad_vkGetPhysicalDeviceMultisamplePropertiesEXT;
#define vkGetPhysicalDeviceMultisamplePropertiesEXT glad_vkGetPhysicalDeviceMultisamplePropertiesEXT
GLAD_API_CALL PFN_vkGetPhysicalDevicePresentRectanglesKHR glad_vkGetPhysicalDevicePresentRectanglesKHR;
#define vkGetPhysicalDevicePresentRectanglesKHR glad_vkGetPhysicalDevicePresentRectanglesKHR
GLAD_API_CALL PFN_vkGetPhysicalDeviceProperties glad_vkGetPhysicalDeviceProperties;
#define vkGetPhysicalDeviceProperties glad_vkGetPhysicalDeviceProperties
GLAD_API_CALL PFN_vkGetPhysicalDeviceProperties2 glad_vkGetPhysicalDeviceProperties2;
#define vkGetPhysicalDeviceProperties2 glad_vkGetPhysicalDeviceProperties2
GLAD_API_CALL PFN_vkGetPhysicalDeviceProperties2KHR glad_vkGetPhysicalDeviceProperties2KHR;
#define vkGetPhysicalDeviceProperties2KHR glad_vkGetPhysicalDeviceProperties2KHR
GLAD_API_CALL PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR glad_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR;
#define vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR glad_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR
GLAD_API_CALL PFN_vkGetPhysicalDeviceQueueFamilyProperties glad_vkGetPhysicalDeviceQueueFamilyProperties;
#define vkGetPhysicalDeviceQueueFamilyProperties glad_vkGetPhysicalDeviceQueueFamilyProperties
GLAD_API_CALL PFN_vkGetPhysicalDeviceQueueFamilyProperties2 glad_vkGetPhysicalDeviceQueueFamilyProperties2;
#define vkGetPhysicalDeviceQueueFamilyProperties2 glad_vkGetPhysicalDeviceQueueFamilyProperties2
GLAD_API_CALL PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR glad_vkGetPhysicalDeviceQueueFamilyProperties2KHR;
#define vkGetPhysicalDeviceQueueFamilyProperties2KHR glad_vkGetPhysicalDeviceQueueFamilyProperties2KHR
GLAD_API_CALL PFN_vkGetPhysicalDeviceSparseImageFormatProperties glad_vkGetPhysicalDeviceSparseImageFormatProperties;
#define vkGetPhysicalDeviceSparseImageFormatProperties glad_vkGetPhysicalDeviceSparseImageFormatProperties
GLAD_API_CALL PFN_vkGetPhysicalDeviceSparseImageFormatProperties2 glad_vkGetPhysicalDeviceSparseImageFormatProperties2;
#define vkGetPhysicalDeviceSparseImageFormatProperties2 glad_vkGetPhysicalDeviceSparseImageFormatProperties2
GLAD_API_CALL PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR glad_vkGetPhysicalDeviceSparseImageFormatProperties2KHR;
#define vkGetPhysicalDeviceSparseImageFormatProperties2KHR glad_vkGetPhysicalDeviceSparseImageFormatProperties2KHR
GLAD_API_CALL PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV glad_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV;
#define vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV glad_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV
GLAD_API_CALL PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT glad_vkGetPhysicalDeviceSurfaceCapabilities2EXT;
#define vkGetPhysicalDeviceSurfaceCapabilities2EXT glad_vkGetPhysicalDeviceSurfaceCapabilities2EXT
GLAD_API_CALL PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR glad_vkGetPhysicalDeviceSurfaceCapabilities2KHR;
#define vkGetPhysicalDeviceSurfaceCapabilities2KHR glad_vkGetPhysicalDeviceSurfaceCapabilities2KHR
GLAD_API_CALL PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR glad_vkGetPhysicalDeviceSurfaceCapabilitiesKHR;
#define vkGetPhysicalDeviceSurfaceCapabilitiesKHR glad_vkGetPhysicalDeviceSurfaceCapabilitiesKHR
GLAD_API_CALL PFN_vkGetPhysicalDeviceSurfaceFormats2KHR glad_vkGetPhysicalDeviceSurfaceFormats2KHR;
#define vkGetPhysicalDeviceSurfaceFormats2KHR glad_vkGetPhysicalDeviceSurfaceFormats2KHR
GLAD_API_CALL PFN_vkGetPhysicalDeviceSurfaceFormatsKHR glad_vkGetPhysicalDeviceSurfaceFormatsKHR;
#define vkGetPhysicalDeviceSurfaceFormatsKHR glad_vkGetPhysicalDeviceSurfaceFormatsKHR
#if defined(VK_USE_PLATFORM_WIN32_KHR)
GLAD_API_CALL PFN_vkGetPhysicalDeviceSurfacePresentModes2EXT glad_vkGetPhysicalDeviceSurfacePresentModes2EXT;
#define vkGetPhysicalDeviceSurfacePresentModes2EXT glad_vkGetPhysicalDeviceSurfacePresentModes2EXT
#endif
GLAD_API_CALL PFN_vkGetPhysicalDeviceSurfacePresentModesKHR glad_vkGetPhysicalDeviceSurfacePresentModesKHR;
#define vkGetPhysicalDeviceSurfacePresentModesKHR glad_vkGetPhysicalDeviceSurfacePresentModesKHR
GLAD_API_CALL PFN_vkGetPhysicalDeviceSurfaceSupportKHR glad_vkGetPhysicalDeviceSurfaceSupportKHR;
#define vkGetPhysicalDeviceSurfaceSupportKHR glad_vkGetPhysicalDeviceSurfaceSupportKHR
GLAD_API_CALL PFN_vkGetPhysicalDeviceToolPropertiesEXT glad_vkGetPhysicalDeviceToolPropertiesEXT;
#define vkGetPhysicalDeviceToolPropertiesEXT glad_vkGetPhysicalDeviceToolPropertiesEXT
#if defined(VK_USE_PLATFORM_WAYLAND_KHR)
GLAD_API_CALL PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR glad_vkGetPhysicalDeviceWaylandPresentationSupportKHR;
#define vkGetPhysicalDeviceWaylandPresentationSupportKHR glad_vkGetPhysicalDeviceWaylandPresentationSupportKHR
#endif
#if defined(VK_USE_PLATFORM_WIN32_KHR)
GLAD_API_CALL PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR glad_vkGetPhysicalDeviceWin32PresentationSupportKHR;
#define vkGetPhysicalDeviceWin32PresentationSupportKHR glad_vkGetPhysicalDeviceWin32PresentationSupportKHR
#endif
#if defined(VK_USE_PLATFORM_XCB_KHR)
GLAD_API_CALL PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR glad_vkGetPhysicalDeviceXcbPresentationSupportKHR;
#define vkGetPhysicalDeviceXcbPresentationSupportKHR glad_vkGetPhysicalDeviceXcbPresentationSupportKHR
#endif
#if defined(VK_USE_PLATFORM_XLIB_KHR)
GLAD_API_CALL PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR glad_vkGetPhysicalDeviceXlibPresentationSupportKHR;
#define vkGetPhysicalDeviceXlibPresentationSupportKHR glad_vkGetPhysicalDeviceXlibPresentationSupportKHR
#endif
GLAD_API_CALL PFN_vkGetPipelineCacheData glad_vkGetPipelineCacheData;
#define vkGetPipelineCacheData glad_vkGetPipelineCacheData
GLAD_API_CALL PFN_vkGetPipelineExecutableInternalRepresentationsKHR glad_vkGetPipelineExecutableInternalRepresentationsKHR;
#define vkGetPipelineExecutableInternalRepresentationsKHR glad_vkGetPipelineExecutableInternalRepresentationsKHR
GLAD_API_CALL PFN_vkGetPipelineExecutablePropertiesKHR glad_vkGetPipelineExecutablePropertiesKHR;
#define vkGetPipelineExecutablePropertiesKHR glad_vkGetPipelineExecutablePropertiesKHR
GLAD_API_CALL PFN_vkGetPipelineExecutableStatisticsKHR glad_vkGetPipelineExecutableStatisticsKHR;
#define vkGetPipelineExecutableStatisticsKHR glad_vkGetPipelineExecutableStatisticsKHR
GLAD_API_CALL PFN_vkGetPrivateDataEXT glad_vkGetPrivateDataEXT;
#define vkGetPrivateDataEXT glad_vkGetPrivateDataEXT
GLAD_API_CALL PFN_vkGetQueryPoolResults glad_vkGetQueryPoolResults;
#define vkGetQueryPoolResults glad_vkGetQueryPoolResults
GLAD_API_CALL PFN_vkGetQueueCheckpointDataNV glad_vkGetQueueCheckpointDataNV;
#define vkGetQueueCheckpointDataNV glad_vkGetQueueCheckpointDataNV
#if defined(VK_USE_PLATFORM_XLIB_XRANDR_EXT)
GLAD_API_CALL PFN_vkGetRandROutputDisplayEXT glad_vkGetRandROutputDisplayEXT;
#define vkGetRandROutputDisplayEXT glad_vkGetRandROutputDisplayEXT
#endif
#if defined(VK_ENABLE_BETA_EXTENSIONS)
GLAD_API_CALL PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR glad_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR;
#define vkGetRayTracingCaptureReplayShaderGroupHandlesKHR glad_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR
#endif
#if defined(VK_ENABLE_BETA_EXTENSIONS)
GLAD_API_CALL PFN_vkGetRayTracingShaderGroupHandlesKHR glad_vkGetRayTracingShaderGroupHandlesKHR;
#define vkGetRayTracingShaderGroupHandlesKHR glad_vkGetRayTracingShaderGroupHandlesKHR
#endif
GLAD_API_CALL PFN_vkGetRayTracingShaderGroupHandlesNV glad_vkGetRayTracingShaderGroupHandlesNV;
#define vkGetRayTracingShaderGroupHandlesNV glad_vkGetRayTracingShaderGroupHandlesNV
GLAD_API_CALL PFN_vkGetRefreshCycleDurationGOOGLE glad_vkGetRefreshCycleDurationGOOGLE;
#define vkGetRefreshCycleDurationGOOGLE glad_vkGetRefreshCycleDurationGOOGLE
GLAD_API_CALL PFN_vkGetRenderAreaGranularity glad_vkGetRenderAreaGranularity;
#define vkGetRenderAreaGranularity glad_vkGetRenderAreaGranularity
GLAD_API_CALL PFN_vkGetSemaphoreCounterValue glad_vkGetSemaphoreCounterValue;
#define vkGetSemaphoreCounterValue glad_vkGetSemaphoreCounterValue
GLAD_API_CALL PFN_vkGetSemaphoreCounterValueKHR glad_vkGetSemaphoreCounterValueKHR;
#define vkGetSemaphoreCounterValueKHR glad_vkGetSemaphoreCounterValueKHR
GLAD_API_CALL PFN_vkGetSemaphoreFdKHR glad_vkGetSemaphoreFdKHR;
#define vkGetSemaphoreFdKHR glad_vkGetSemaphoreFdKHR
#if defined(VK_USE_PLATFORM_WIN32_KHR)
GLAD_API_CALL PFN_vkGetSemaphoreWin32HandleKHR glad_vkGetSemaphoreWin32HandleKHR;
#define vkGetSemaphoreWin32HandleKHR glad_vkGetSemaphoreWin32HandleKHR
#endif
GLAD_API_CALL PFN_vkGetShaderInfoAMD glad_vkGetShaderInfoAMD;
#define vkGetShaderInfoAMD glad_vkGetShaderInfoAMD
GLAD_API_CALL PFN_vkGetSwapchainCounterEXT glad_vkGetSwapchainCounterEXT;
#define vkGetSwapchainCounterEXT glad_vkGetSwapchainCounterEXT
GLAD_API_CALL PFN_vkGetSwapchainImagesKHR glad_vkGetSwapchainImagesKHR;
#define vkGetSwapchainImagesKHR glad_vkGetSwapchainImagesKHR
GLAD_API_CALL PFN_vkGetSwapchainStatusKHR glad_vkGetSwapchainStatusKHR;
#define vkGetSwapchainStatusKHR glad_vkGetSwapchainStatusKHR
GLAD_API_CALL PFN_vkGetValidationCacheDataEXT glad_vkGetValidationCacheDataEXT;
#define vkGetValidationCacheDataEXT glad_vkGetValidationCacheDataEXT
GLAD_API_CALL PFN_vkImportFenceFdKHR glad_vkImportFenceFdKHR;
#define vkImportFenceFdKHR glad_vkImportFenceFdKHR
#if defined(VK_USE_PLATFORM_WIN32_KHR)
GLAD_API_CALL PFN_vkImportFenceWin32HandleKHR glad_vkImportFenceWin32HandleKHR;
#define vkImportFenceWin32HandleKHR glad_vkImportFenceWin32HandleKHR
#endif
GLAD_API_CALL PFN_vkImportSemaphoreFdKHR glad_vkImportSemaphoreFdKHR;
#define vkImportSemaphoreFdKHR glad_vkImportSemaphoreFdKHR
#if defined(VK_USE_PLATFORM_WIN32_KHR)
GLAD_API_CALL PFN_vkImportSemaphoreWin32HandleKHR glad_vkImportSemaphoreWin32HandleKHR;
#define vkImportSemaphoreWin32HandleKHR glad_vkImportSemaphoreWin32HandleKHR
#endif
GLAD_API_CALL PFN_vkInitializePerformanceApiINTEL glad_vkInitializePerformanceApiINTEL;
#define vkInitializePerformanceApiINTEL glad_vkInitializePerformanceApiINTEL
GLAD_API_CALL PFN_vkInvalidateMappedMemoryRanges glad_vkInvalidateMappedMemoryRanges;
#define vkInvalidateMappedMemoryRanges glad_vkInvalidateMappedMemoryRanges
GLAD_API_CALL PFN_vkMapMemory glad_vkMapMemory;
#define vkMapMemory glad_vkMapMemory
GLAD_API_CALL PFN_vkMergePipelineCaches glad_vkMergePipelineCaches;
#define vkMergePipelineCaches glad_vkMergePipelineCaches
GLAD_API_CALL PFN_vkMergeValidationCachesEXT glad_vkMergeValidationCachesEXT;
#define vkMergeValidationCachesEXT glad_vkMergeValidationCachesEXT
GLAD_API_CALL PFN_vkQueueBeginDebugUtilsLabelEXT glad_vkQueueBeginDebugUtilsLabelEXT;
#define vkQueueBeginDebugUtilsLabelEXT glad_vkQueueBeginDebugUtilsLabelEXT
GLAD_API_CALL PFN_vkQueueBindSparse glad_vkQueueBindSparse;
#define vkQueueBindSparse glad_vkQueueBindSparse
GLAD_API_CALL PFN_vkQueueEndDebugUtilsLabelEXT glad_vkQueueEndDebugUtilsLabelEXT;
#define vkQueueEndDebugUtilsLabelEXT glad_vkQueueEndDebugUtilsLabelEXT
GLAD_API_CALL PFN_vkQueueInsertDebugUtilsLabelEXT glad_vkQueueInsertDebugUtilsLabelEXT;
#define vkQueueInsertDebugUtilsLabelEXT glad_vkQueueInsertDebugUtilsLabelEXT
GLAD_API_CALL PFN_vkQueuePresentKHR glad_vkQueuePresentKHR;
#define vkQueuePresentKHR glad_vkQueuePresentKHR
GLAD_API_CALL PFN_vkQueueSetPerformanceConfigurationINTEL glad_vkQueueSetPerformanceConfigurationINTEL;
#define vkQueueSetPerformanceConfigurationINTEL glad_vkQueueSetPerformanceConfigurationINTEL
GLAD_API_CALL PFN_vkQueueSubmit glad_vkQueueSubmit;
#define vkQueueSubmit glad_vkQueueSubmit
GLAD_API_CALL PFN_vkQueueWaitIdle glad_vkQueueWaitIdle;
#define vkQueueWaitIdle glad_vkQueueWaitIdle
GLAD_API_CALL PFN_vkRegisterDeviceEventEXT glad_vkRegisterDeviceEventEXT;
#define vkRegisterDeviceEventEXT glad_vkRegisterDeviceEventEXT
GLAD_API_CALL PFN_vkRegisterDisplayEventEXT glad_vkRegisterDisplayEventEXT;
#define vkRegisterDisplayEventEXT glad_vkRegisterDisplayEventEXT
GLAD_API_CALL PFN_vkReleaseDisplayEXT glad_vkReleaseDisplayEXT;
#define vkReleaseDisplayEXT glad_vkReleaseDisplayEXT
#if defined(VK_USE_PLATFORM_WIN32_KHR)
GLAD_API_CALL PFN_vkReleaseFullScreenExclusiveModeEXT glad_vkReleaseFullScreenExclusiveModeEXT;
#define vkReleaseFullScreenExclusiveModeEXT glad_vkReleaseFullScreenExclusiveModeEXT
#endif
GLAD_API_CALL PFN_vkReleasePerformanceConfigurationINTEL glad_vkReleasePerformanceConfigurationINTEL;
#define vkReleasePerformanceConfigurationINTEL glad_vkReleasePerformanceConfigurationINTEL
GLAD_API_CALL PFN_vkReleaseProfilingLockKHR glad_vkReleaseProfilingLockKHR;
#define vkReleaseProfilingLockKHR glad_vkReleaseProfilingLockKHR
GLAD_API_CALL PFN_vkResetCommandBuffer glad_vkResetCommandBuffer;
#define vkResetCommandBuffer glad_vkResetCommandBuffer
GLAD_API_CALL PFN_vkResetCommandPool glad_vkResetCommandPool;
#define vkResetCommandPool glad_vkResetCommandPool
GLAD_API_CALL PFN_vkResetDescriptorPool glad_vkResetDescriptorPool;
#define vkResetDescriptorPool glad_vkResetDescriptorPool
GLAD_API_CALL PFN_vkResetEvent glad_vkResetEvent;
#define vkResetEvent glad_vkResetEvent
GLAD_API_CALL PFN_vkResetFences glad_vkResetFences;
#define vkResetFences glad_vkResetFences
GLAD_API_CALL PFN_vkResetQueryPool glad_vkResetQueryPool;
#define vkResetQueryPool glad_vkResetQueryPool
GLAD_API_CALL PFN_vkResetQueryPoolEXT glad_vkResetQueryPoolEXT;
#define vkResetQueryPoolEXT glad_vkResetQueryPoolEXT
GLAD_API_CALL PFN_vkSetDebugUtilsObjectNameEXT glad_vkSetDebugUtilsObjectNameEXT;
#define vkSetDebugUtilsObjectNameEXT glad_vkSetDebugUtilsObjectNameEXT
GLAD_API_CALL PFN_vkSetDebugUtilsObjectTagEXT glad_vkSetDebugUtilsObjectTagEXT;
#define vkSetDebugUtilsObjectTagEXT glad_vkSetDebugUtilsObjectTagEXT
GLAD_API_CALL PFN_vkSetEvent glad_vkSetEvent;
#define vkSetEvent glad_vkSetEvent
GLAD_API_CALL PFN_vkSetHdrMetadataEXT glad_vkSetHdrMetadataEXT;
#define vkSetHdrMetadataEXT glad_vkSetHdrMetadataEXT
GLAD_API_CALL PFN_vkSetLocalDimmingAMD glad_vkSetLocalDimmingAMD;
#define vkSetLocalDimmingAMD glad_vkSetLocalDimmingAMD
GLAD_API_CALL PFN_vkSetPrivateDataEXT glad_vkSetPrivateDataEXT;
#define vkSetPrivateDataEXT glad_vkSetPrivateDataEXT
GLAD_API_CALL PFN_vkSignalSemaphore glad_vkSignalSemaphore;
#define vkSignalSemaphore glad_vkSignalSemaphore
GLAD_API_CALL PFN_vkSignalSemaphoreKHR glad_vkSignalSemaphoreKHR;
#define vkSignalSemaphoreKHR glad_vkSignalSemaphoreKHR
GLAD_API_CALL PFN_vkSubmitDebugUtilsMessageEXT glad_vkSubmitDebugUtilsMessageEXT;
#define vkSubmitDebugUtilsMessageEXT glad_vkSubmitDebugUtilsMessageEXT
GLAD_API_CALL PFN_vkTrimCommandPool glad_vkTrimCommandPool;
#define vkTrimCommandPool glad_vkTrimCommandPool
GLAD_API_CALL PFN_vkTrimCommandPoolKHR glad_vkTrimCommandPoolKHR;
#define vkTrimCommandPoolKHR glad_vkTrimCommandPoolKHR
GLAD_API_CALL PFN_vkUninitializePerformanceApiINTEL glad_vkUninitializePerformanceApiINTEL;
#define vkUninitializePerformanceApiINTEL glad_vkUninitializePerformanceApiINTEL
GLAD_API_CALL PFN_vkUnmapMemory glad_vkUnmapMemory;
#define vkUnmapMemory glad_vkUnmapMemory
GLAD_API_CALL PFN_vkUpdateDescriptorSetWithTemplate glad_vkUpdateDescriptorSetWithTemplate;
#define vkUpdateDescriptorSetWithTemplate glad_vkUpdateDescriptorSetWithTemplate
GLAD_API_CALL PFN_vkUpdateDescriptorSetWithTemplateKHR glad_vkUpdateDescriptorSetWithTemplateKHR;
#define vkUpdateDescriptorSetWithTemplateKHR glad_vkUpdateDescriptorSetWithTemplateKHR
GLAD_API_CALL PFN_vkUpdateDescriptorSets glad_vkUpdateDescriptorSets;
#define vkUpdateDescriptorSets glad_vkUpdateDescriptorSets
GLAD_API_CALL PFN_vkWaitForFences glad_vkWaitForFences;
#define vkWaitForFences glad_vkWaitForFences
GLAD_API_CALL PFN_vkWaitSemaphores glad_vkWaitSemaphores;
#define vkWaitSemaphores glad_vkWaitSemaphores
GLAD_API_CALL PFN_vkWaitSemaphoresKHR glad_vkWaitSemaphoresKHR;
#define vkWaitSemaphoresKHR glad_vkWaitSemaphoresKHR
#if defined(VK_ENABLE_BETA_EXTENSIONS)
GLAD_API_CALL PFN_vkWriteAccelerationStructuresPropertiesKHR glad_vkWriteAccelerationStructuresPropertiesKHR;
#define vkWriteAccelerationStructuresPropertiesKHR glad_vkWriteAccelerationStructuresPropertiesKHR
#endif





GLAD_API_CALL int gladLoadVulkanUserPtr( VkPhysicalDevice physical_device, GLADuserptrloadfunc load, void *userptr);
GLAD_API_CALL int gladLoadVulkan( VkPhysicalDevice physical_device, GLADloadfunc load);



#ifdef __cplusplus
}
#endif
#endif
