|  | #ifndef VULKAN_H_ | 
|  | #define VULKAN_H_ 1 | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | extern "C" { | 
|  | #endif | 
|  |  | 
|  | /* | 
|  | ** Copyright (c) 2015-2017 The Khronos Group Inc. | 
|  | ** | 
|  | ** Licensed under the Apache License, Version 2.0 (the "License"); | 
|  | ** you may not use this file except in compliance with the License. | 
|  | ** You may obtain a copy of the License at | 
|  | ** | 
|  | **     http://www.apache.org/licenses/LICENSE-2.0 | 
|  | ** | 
|  | ** Unless required by applicable law or agreed to in writing, software | 
|  | ** distributed under the License is distributed on an "AS IS" BASIS, | 
|  | ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
|  | ** See the License for the specific language governing permissions and | 
|  | ** limitations under the License. | 
|  | */ | 
|  |  | 
|  | /* | 
|  | ** This header is generated from the Khronos Vulkan XML API Registry. | 
|  | ** | 
|  | */ | 
|  |  | 
|  |  | 
|  | #define VK_VERSION_1_0 1 | 
|  | #include "vk_platform.h" | 
|  |  | 
|  | #define VK_MAKE_VERSION(major, minor, patch) \ | 
|  | (((major) << 22) | ((minor) << 12) | (patch)) | 
|  |  | 
|  | // 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 | 
|  |  | 
|  | #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) | 
|  | // Version of this file | 
|  | #define VK_HEADER_VERSION 65 | 
|  |  | 
|  |  | 
|  | #define VK_NULL_HANDLE 0 | 
|  |  | 
|  |  | 
|  |  | 
|  | #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 | 
|  |  | 
|  |  | 
|  |  | 
|  | typedef uint32_t VkFlags; | 
|  | typedef uint32_t VkBool32; | 
|  | typedef uint64_t VkDeviceSize; | 
|  | typedef uint32_t VkSampleMask; | 
|  |  | 
|  | VK_DEFINE_HANDLE(VkInstance) | 
|  | VK_DEFINE_HANDLE(VkPhysicalDevice) | 
|  | VK_DEFINE_HANDLE(VkDevice) | 
|  | VK_DEFINE_HANDLE(VkQueue) | 
|  | VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSemaphore) | 
|  | VK_DEFINE_HANDLE(VkCommandBuffer) | 
|  | VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFence) | 
|  | VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeviceMemory) | 
|  | VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer) | 
|  | VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImage) | 
|  | VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkEvent) | 
|  | VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkQueryPool) | 
|  | VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferView) | 
|  | VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImageView) | 
|  | VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderModule) | 
|  | VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineCache) | 
|  | VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineLayout) | 
|  | VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass) | 
|  | VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipeline) | 
|  | VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSetLayout) | 
|  | VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSampler) | 
|  | VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool) | 
|  | VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet) | 
|  | VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer) | 
|  | VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool) | 
|  |  | 
|  | #define VK_LOD_CLAMP_NONE                 1000.0f | 
|  | #define VK_REMAINING_MIP_LEVELS           (~0U) | 
|  | #define VK_REMAINING_ARRAY_LAYERS         (~0U) | 
|  | #define VK_WHOLE_SIZE                     (~0ULL) | 
|  | #define VK_ATTACHMENT_UNUSED              (~0U) | 
|  | #define VK_TRUE                           1 | 
|  | #define VK_FALSE                          0 | 
|  | #define VK_QUEUE_FAMILY_IGNORED           (~0U) | 
|  | #define VK_SUBPASS_EXTERNAL               (~0U) | 
|  | #define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE  256 | 
|  | #define VK_UUID_SIZE                      16 | 
|  | #define VK_MAX_MEMORY_TYPES               32 | 
|  | #define VK_MAX_MEMORY_HEAPS               16 | 
|  | #define VK_MAX_EXTENSION_NAME_SIZE        256 | 
|  | #define VK_MAX_DESCRIPTION_SIZE           256 | 
|  |  | 
|  |  | 
|  | typedef enum VkPipelineCacheHeaderVersion { | 
|  | VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1, | 
|  | VK_PIPELINE_CACHE_HEADER_VERSION_BEGIN_RANGE = VK_PIPELINE_CACHE_HEADER_VERSION_ONE, | 
|  | VK_PIPELINE_CACHE_HEADER_VERSION_END_RANGE = VK_PIPELINE_CACHE_HEADER_VERSION_ONE, | 
|  | VK_PIPELINE_CACHE_HEADER_VERSION_RANGE_SIZE = (VK_PIPELINE_CACHE_HEADER_VERSION_ONE - VK_PIPELINE_CACHE_HEADER_VERSION_ONE + 1), | 
|  | VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkPipelineCacheHeaderVersion; | 
|  |  | 
|  | 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_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 = -1000069000, | 
|  | VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = -1000072003, | 
|  | VK_ERROR_NOT_PERMITTED_EXT = -1000174001, | 
|  | VK_RESULT_BEGIN_RANGE = VK_ERROR_FRAGMENTED_POOL, | 
|  | VK_RESULT_END_RANGE = VK_INCOMPLETE, | 
|  | VK_RESULT_RANGE_SIZE = (VK_INCOMPLETE - VK_ERROR_FRAGMENTED_POOL + 1), | 
|  | VK_RESULT_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkResult; | 
|  |  | 
|  | 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_SWAPCHAIN_CREATE_INFO_KHR = 1000001000, | 
|  | VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001, | 
|  | 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_MIR_SURFACE_CREATE_INFO_KHR = 1000007000, | 
|  | 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_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_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000, | 
|  | VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHX = 1000053000, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHX = 1000053001, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHX = 1000053002, | 
|  | 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 = 1000059000, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = 1000059001, | 
|  | VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = 1000059002, | 
|  | VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059003, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = 1000059004, | 
|  | VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = 1000059005, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = 1000059006, | 
|  | VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059007, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = 1000059008, | 
|  | VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHX = 1000060000, | 
|  | VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHX = 1000060003, | 
|  | VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHX = 1000060004, | 
|  | VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHX = 1000060005, | 
|  | VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHX = 1000060006, | 
|  | VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHX = 1000060010, | 
|  | VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHX = 1000060013, | 
|  | VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHX = 1000060014, | 
|  | VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHX = 1000060007, | 
|  | VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHX = 1000060008, | 
|  | VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHX = 1000060009, | 
|  | VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHX = 1000060011, | 
|  | VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHX = 1000060012, | 
|  | VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000, | 
|  | VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHX = 1000070000, | 
|  | VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHX = 1000070001, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = 1000071000, | 
|  | VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR = 1000071001, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR = 1000071002, | 
|  | VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR = 1000071003, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR = 1000071004, | 
|  | VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR = 1000072000, | 
|  | VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR = 1000072001, | 
|  | VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR = 1000072002, | 
|  | 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 = 1000076000, | 
|  | VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = 1000076001, | 
|  | VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = 1000077000, | 
|  | 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_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = 1000083000, | 
|  | VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000, | 
|  | VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = 1000085000, | 
|  | VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX = 1000086000, | 
|  | VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX = 1000086001, | 
|  | VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX = 1000086002, | 
|  | VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX = 1000086003, | 
|  | VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX = 1000086004, | 
|  | VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX = 1000086005, | 
|  | VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000, | 
|  | VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000, | 
|  | 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_HDR_METADATA_EXT = 1000105000, | 
|  | VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = 1000112000, | 
|  | VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = 1000112001, | 
|  | VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = 1000113000, | 
|  | 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_POINT_CLIPPING_PROPERTIES_KHR = 1000117000, | 
|  | VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = 1000117001, | 
|  | VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = 1000117002, | 
|  | VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = 1000117003, | 
|  | 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_POINTER_FEATURES_KHR = 1000120000, | 
|  | 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 = 1000127000, | 
|  | VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = 1000127001, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = 1000130000, | 
|  | VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = 1000130001, | 
|  | 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 = 1000146000, | 
|  | VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146001, | 
|  | VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146002, | 
|  | VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = 1000146003, | 
|  | VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = 1000146004, | 
|  | VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = 1000147000, | 
|  | 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_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000, | 
|  | VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = 1000156000, | 
|  | VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = 1000156001, | 
|  | VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = 1000156002, | 
|  | VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR = 1000156003, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = 1000156004, | 
|  | VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = 1000156005, | 
|  | VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = 1000157000, | 
|  | VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = 1000157001, | 
|  | VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000, | 
|  | VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001, | 
|  | VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = 1000174000, | 
|  | VK_STRUCTURE_TYPE_BEGIN_RANGE = VK_STRUCTURE_TYPE_APPLICATION_INFO, | 
|  | VK_STRUCTURE_TYPE_END_RANGE = VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO, | 
|  | VK_STRUCTURE_TYPE_RANGE_SIZE = (VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO - VK_STRUCTURE_TYPE_APPLICATION_INFO + 1), | 
|  | VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF | 
|  | } 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, | 
|  | VK_SYSTEM_ALLOCATION_SCOPE_BEGIN_RANGE = VK_SYSTEM_ALLOCATION_SCOPE_COMMAND, | 
|  | VK_SYSTEM_ALLOCATION_SCOPE_END_RANGE = VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE, | 
|  | VK_SYSTEM_ALLOCATION_SCOPE_RANGE_SIZE = (VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE - VK_SYSTEM_ALLOCATION_SCOPE_COMMAND + 1), | 
|  | VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkSystemAllocationScope; | 
|  |  | 
|  | typedef enum VkInternalAllocationType { | 
|  | VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0, | 
|  | VK_INTERNAL_ALLOCATION_TYPE_BEGIN_RANGE = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE, | 
|  | VK_INTERNAL_ALLOCATION_TYPE_END_RANGE = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE, | 
|  | VK_INTERNAL_ALLOCATION_TYPE_RANGE_SIZE = (VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE - VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE + 1), | 
|  | VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkInternalAllocationType; | 
|  |  | 
|  | 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_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_G8B8G8R8_422_UNORM_KHR = 1000156000, | 
|  | VK_FORMAT_B8G8R8G8_422_UNORM_KHR = 1000156001, | 
|  | VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = 1000156002, | 
|  | VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR = 1000156003, | 
|  | VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR = 1000156004, | 
|  | VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR = 1000156005, | 
|  | VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR = 1000156006, | 
|  | VK_FORMAT_R10X6_UNORM_PACK16_KHR = 1000156007, | 
|  | VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR = 1000156008, | 
|  | VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = 1000156009, | 
|  | VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = 1000156010, | 
|  | VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = 1000156011, | 
|  | VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = 1000156012, | 
|  | VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = 1000156013, | 
|  | VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = 1000156014, | 
|  | VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = 1000156015, | 
|  | VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = 1000156016, | 
|  | VK_FORMAT_R12X4_UNORM_PACK16_KHR = 1000156017, | 
|  | VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR = 1000156018, | 
|  | VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = 1000156019, | 
|  | VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = 1000156020, | 
|  | VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = 1000156021, | 
|  | VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = 1000156022, | 
|  | VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = 1000156023, | 
|  | VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = 1000156024, | 
|  | VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = 1000156025, | 
|  | VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = 1000156026, | 
|  | VK_FORMAT_G16B16G16R16_422_UNORM_KHR = 1000156027, | 
|  | VK_FORMAT_B16G16R16G16_422_UNORM_KHR = 1000156028, | 
|  | VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR = 1000156029, | 
|  | VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR = 1000156030, | 
|  | VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = 1000156031, | 
|  | VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = 1000156032, | 
|  | VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = 1000156033, | 
|  | VK_FORMAT_BEGIN_RANGE = VK_FORMAT_UNDEFINED, | 
|  | VK_FORMAT_END_RANGE = VK_FORMAT_ASTC_12x12_SRGB_BLOCK, | 
|  | VK_FORMAT_RANGE_SIZE = (VK_FORMAT_ASTC_12x12_SRGB_BLOCK - VK_FORMAT_UNDEFINED + 1), | 
|  | VK_FORMAT_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkFormat; | 
|  |  | 
|  | typedef enum VkImageType { | 
|  | VK_IMAGE_TYPE_1D = 0, | 
|  | VK_IMAGE_TYPE_2D = 1, | 
|  | VK_IMAGE_TYPE_3D = 2, | 
|  | VK_IMAGE_TYPE_BEGIN_RANGE = VK_IMAGE_TYPE_1D, | 
|  | VK_IMAGE_TYPE_END_RANGE = VK_IMAGE_TYPE_3D, | 
|  | VK_IMAGE_TYPE_RANGE_SIZE = (VK_IMAGE_TYPE_3D - VK_IMAGE_TYPE_1D + 1), | 
|  | VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkImageType; | 
|  |  | 
|  | typedef enum VkImageTiling { | 
|  | VK_IMAGE_TILING_OPTIMAL = 0, | 
|  | VK_IMAGE_TILING_LINEAR = 1, | 
|  | VK_IMAGE_TILING_BEGIN_RANGE = VK_IMAGE_TILING_OPTIMAL, | 
|  | VK_IMAGE_TILING_END_RANGE = VK_IMAGE_TILING_LINEAR, | 
|  | VK_IMAGE_TILING_RANGE_SIZE = (VK_IMAGE_TILING_LINEAR - VK_IMAGE_TILING_OPTIMAL + 1), | 
|  | VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkImageTiling; | 
|  |  | 
|  | 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, | 
|  | VK_PHYSICAL_DEVICE_TYPE_BEGIN_RANGE = VK_PHYSICAL_DEVICE_TYPE_OTHER, | 
|  | VK_PHYSICAL_DEVICE_TYPE_END_RANGE = VK_PHYSICAL_DEVICE_TYPE_CPU, | 
|  | VK_PHYSICAL_DEVICE_TYPE_RANGE_SIZE = (VK_PHYSICAL_DEVICE_TYPE_CPU - VK_PHYSICAL_DEVICE_TYPE_OTHER + 1), | 
|  | VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkPhysicalDeviceType; | 
|  |  | 
|  | typedef enum VkQueryType { | 
|  | VK_QUERY_TYPE_OCCLUSION = 0, | 
|  | VK_QUERY_TYPE_PIPELINE_STATISTICS = 1, | 
|  | VK_QUERY_TYPE_TIMESTAMP = 2, | 
|  | VK_QUERY_TYPE_BEGIN_RANGE = VK_QUERY_TYPE_OCCLUSION, | 
|  | VK_QUERY_TYPE_END_RANGE = VK_QUERY_TYPE_TIMESTAMP, | 
|  | VK_QUERY_TYPE_RANGE_SIZE = (VK_QUERY_TYPE_TIMESTAMP - VK_QUERY_TYPE_OCCLUSION + 1), | 
|  | VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkQueryType; | 
|  |  | 
|  | typedef enum VkSharingMode { | 
|  | VK_SHARING_MODE_EXCLUSIVE = 0, | 
|  | VK_SHARING_MODE_CONCURRENT = 1, | 
|  | VK_SHARING_MODE_BEGIN_RANGE = VK_SHARING_MODE_EXCLUSIVE, | 
|  | VK_SHARING_MODE_END_RANGE = VK_SHARING_MODE_CONCURRENT, | 
|  | VK_SHARING_MODE_RANGE_SIZE = (VK_SHARING_MODE_CONCURRENT - VK_SHARING_MODE_EXCLUSIVE + 1), | 
|  | VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkSharingMode; | 
|  |  | 
|  | 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_PRESENT_SRC_KHR = 1000001002, | 
|  | VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000, | 
|  | VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = 1000117000, | 
|  | VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = 1000117001, | 
|  | VK_IMAGE_LAYOUT_BEGIN_RANGE = VK_IMAGE_LAYOUT_UNDEFINED, | 
|  | VK_IMAGE_LAYOUT_END_RANGE = VK_IMAGE_LAYOUT_PREINITIALIZED, | 
|  | VK_IMAGE_LAYOUT_RANGE_SIZE = (VK_IMAGE_LAYOUT_PREINITIALIZED - VK_IMAGE_LAYOUT_UNDEFINED + 1), | 
|  | VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkImageLayout; | 
|  |  | 
|  | 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, | 
|  | VK_IMAGE_VIEW_TYPE_BEGIN_RANGE = VK_IMAGE_VIEW_TYPE_1D, | 
|  | VK_IMAGE_VIEW_TYPE_END_RANGE = VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, | 
|  | VK_IMAGE_VIEW_TYPE_RANGE_SIZE = (VK_IMAGE_VIEW_TYPE_CUBE_ARRAY - VK_IMAGE_VIEW_TYPE_1D + 1), | 
|  | VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkImageViewType; | 
|  |  | 
|  | 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, | 
|  | VK_COMPONENT_SWIZZLE_BEGIN_RANGE = VK_COMPONENT_SWIZZLE_IDENTITY, | 
|  | VK_COMPONENT_SWIZZLE_END_RANGE = VK_COMPONENT_SWIZZLE_A, | 
|  | VK_COMPONENT_SWIZZLE_RANGE_SIZE = (VK_COMPONENT_SWIZZLE_A - VK_COMPONENT_SWIZZLE_IDENTITY + 1), | 
|  | VK_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkComponentSwizzle; | 
|  |  | 
|  | typedef enum VkVertexInputRate { | 
|  | VK_VERTEX_INPUT_RATE_VERTEX = 0, | 
|  | VK_VERTEX_INPUT_RATE_INSTANCE = 1, | 
|  | VK_VERTEX_INPUT_RATE_BEGIN_RANGE = VK_VERTEX_INPUT_RATE_VERTEX, | 
|  | VK_VERTEX_INPUT_RATE_END_RANGE = VK_VERTEX_INPUT_RATE_INSTANCE, | 
|  | VK_VERTEX_INPUT_RATE_RANGE_SIZE = (VK_VERTEX_INPUT_RATE_INSTANCE - VK_VERTEX_INPUT_RATE_VERTEX + 1), | 
|  | VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkVertexInputRate; | 
|  |  | 
|  | 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, | 
|  | VK_PRIMITIVE_TOPOLOGY_BEGIN_RANGE = VK_PRIMITIVE_TOPOLOGY_POINT_LIST, | 
|  | VK_PRIMITIVE_TOPOLOGY_END_RANGE = VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, | 
|  | VK_PRIMITIVE_TOPOLOGY_RANGE_SIZE = (VK_PRIMITIVE_TOPOLOGY_PATCH_LIST - VK_PRIMITIVE_TOPOLOGY_POINT_LIST + 1), | 
|  | VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkPrimitiveTopology; | 
|  |  | 
|  | 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, | 
|  | VK_POLYGON_MODE_BEGIN_RANGE = VK_POLYGON_MODE_FILL, | 
|  | VK_POLYGON_MODE_END_RANGE = VK_POLYGON_MODE_POINT, | 
|  | VK_POLYGON_MODE_RANGE_SIZE = (VK_POLYGON_MODE_POINT - VK_POLYGON_MODE_FILL + 1), | 
|  | VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkPolygonMode; | 
|  |  | 
|  | typedef enum VkFrontFace { | 
|  | VK_FRONT_FACE_COUNTER_CLOCKWISE = 0, | 
|  | VK_FRONT_FACE_CLOCKWISE = 1, | 
|  | VK_FRONT_FACE_BEGIN_RANGE = VK_FRONT_FACE_COUNTER_CLOCKWISE, | 
|  | VK_FRONT_FACE_END_RANGE = VK_FRONT_FACE_CLOCKWISE, | 
|  | VK_FRONT_FACE_RANGE_SIZE = (VK_FRONT_FACE_CLOCKWISE - VK_FRONT_FACE_COUNTER_CLOCKWISE + 1), | 
|  | VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkFrontFace; | 
|  |  | 
|  | 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, | 
|  | VK_COMPARE_OP_BEGIN_RANGE = VK_COMPARE_OP_NEVER, | 
|  | VK_COMPARE_OP_END_RANGE = VK_COMPARE_OP_ALWAYS, | 
|  | VK_COMPARE_OP_RANGE_SIZE = (VK_COMPARE_OP_ALWAYS - VK_COMPARE_OP_NEVER + 1), | 
|  | VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkCompareOp; | 
|  |  | 
|  | 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, | 
|  | VK_STENCIL_OP_BEGIN_RANGE = VK_STENCIL_OP_KEEP, | 
|  | VK_STENCIL_OP_END_RANGE = VK_STENCIL_OP_DECREMENT_AND_WRAP, | 
|  | VK_STENCIL_OP_RANGE_SIZE = (VK_STENCIL_OP_DECREMENT_AND_WRAP - VK_STENCIL_OP_KEEP + 1), | 
|  | VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkStencilOp; | 
|  |  | 
|  | 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, | 
|  | VK_LOGIC_OP_BEGIN_RANGE = VK_LOGIC_OP_CLEAR, | 
|  | VK_LOGIC_OP_END_RANGE = VK_LOGIC_OP_SET, | 
|  | VK_LOGIC_OP_RANGE_SIZE = (VK_LOGIC_OP_SET - VK_LOGIC_OP_CLEAR + 1), | 
|  | VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkLogicOp; | 
|  |  | 
|  | 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, | 
|  | VK_BLEND_FACTOR_BEGIN_RANGE = VK_BLEND_FACTOR_ZERO, | 
|  | VK_BLEND_FACTOR_END_RANGE = VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA, | 
|  | VK_BLEND_FACTOR_RANGE_SIZE = (VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA - VK_BLEND_FACTOR_ZERO + 1), | 
|  | VK_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF | 
|  | } 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, | 
|  | VK_BLEND_OP_BEGIN_RANGE = VK_BLEND_OP_ADD, | 
|  | VK_BLEND_OP_END_RANGE = VK_BLEND_OP_MAX, | 
|  | VK_BLEND_OP_RANGE_SIZE = (VK_BLEND_OP_MAX - VK_BLEND_OP_ADD + 1), | 
|  | VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkBlendOp; | 
|  |  | 
|  | 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_BEGIN_RANGE = VK_DYNAMIC_STATE_VIEWPORT, | 
|  | VK_DYNAMIC_STATE_END_RANGE = VK_DYNAMIC_STATE_STENCIL_REFERENCE, | 
|  | VK_DYNAMIC_STATE_RANGE_SIZE = (VK_DYNAMIC_STATE_STENCIL_REFERENCE - VK_DYNAMIC_STATE_VIEWPORT + 1), | 
|  | VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkDynamicState; | 
|  |  | 
|  | typedef enum VkFilter { | 
|  | VK_FILTER_NEAREST = 0, | 
|  | VK_FILTER_LINEAR = 1, | 
|  | VK_FILTER_CUBIC_IMG = 1000015000, | 
|  | VK_FILTER_BEGIN_RANGE = VK_FILTER_NEAREST, | 
|  | VK_FILTER_END_RANGE = VK_FILTER_LINEAR, | 
|  | VK_FILTER_RANGE_SIZE = (VK_FILTER_LINEAR - VK_FILTER_NEAREST + 1), | 
|  | VK_FILTER_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkFilter; | 
|  |  | 
|  | typedef enum VkSamplerMipmapMode { | 
|  | VK_SAMPLER_MIPMAP_MODE_NEAREST = 0, | 
|  | VK_SAMPLER_MIPMAP_MODE_LINEAR = 1, | 
|  | VK_SAMPLER_MIPMAP_MODE_BEGIN_RANGE = VK_SAMPLER_MIPMAP_MODE_NEAREST, | 
|  | VK_SAMPLER_MIPMAP_MODE_END_RANGE = VK_SAMPLER_MIPMAP_MODE_LINEAR, | 
|  | VK_SAMPLER_MIPMAP_MODE_RANGE_SIZE = (VK_SAMPLER_MIPMAP_MODE_LINEAR - VK_SAMPLER_MIPMAP_MODE_NEAREST + 1), | 
|  | VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkSamplerMipmapMode; | 
|  |  | 
|  | 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_BEGIN_RANGE = VK_SAMPLER_ADDRESS_MODE_REPEAT, | 
|  | VK_SAMPLER_ADDRESS_MODE_END_RANGE = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER, | 
|  | VK_SAMPLER_ADDRESS_MODE_RANGE_SIZE = (VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER - VK_SAMPLER_ADDRESS_MODE_REPEAT + 1), | 
|  | VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkSamplerAddressMode; | 
|  |  | 
|  | 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_BEGIN_RANGE = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK, | 
|  | VK_BORDER_COLOR_END_RANGE = VK_BORDER_COLOR_INT_OPAQUE_WHITE, | 
|  | VK_BORDER_COLOR_RANGE_SIZE = (VK_BORDER_COLOR_INT_OPAQUE_WHITE - VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK + 1), | 
|  | VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkBorderColor; | 
|  |  | 
|  | 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_BEGIN_RANGE = VK_DESCRIPTOR_TYPE_SAMPLER, | 
|  | VK_DESCRIPTOR_TYPE_END_RANGE = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, | 
|  | VK_DESCRIPTOR_TYPE_RANGE_SIZE = (VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT - VK_DESCRIPTOR_TYPE_SAMPLER + 1), | 
|  | VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkDescriptorType; | 
|  |  | 
|  | typedef enum VkAttachmentLoadOp { | 
|  | VK_ATTACHMENT_LOAD_OP_LOAD = 0, | 
|  | VK_ATTACHMENT_LOAD_OP_CLEAR = 1, | 
|  | VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2, | 
|  | VK_ATTACHMENT_LOAD_OP_BEGIN_RANGE = VK_ATTACHMENT_LOAD_OP_LOAD, | 
|  | VK_ATTACHMENT_LOAD_OP_END_RANGE = VK_ATTACHMENT_LOAD_OP_DONT_CARE, | 
|  | VK_ATTACHMENT_LOAD_OP_RANGE_SIZE = (VK_ATTACHMENT_LOAD_OP_DONT_CARE - VK_ATTACHMENT_LOAD_OP_LOAD + 1), | 
|  | VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkAttachmentLoadOp; | 
|  |  | 
|  | typedef enum VkAttachmentStoreOp { | 
|  | VK_ATTACHMENT_STORE_OP_STORE = 0, | 
|  | VK_ATTACHMENT_STORE_OP_DONT_CARE = 1, | 
|  | VK_ATTACHMENT_STORE_OP_BEGIN_RANGE = VK_ATTACHMENT_STORE_OP_STORE, | 
|  | VK_ATTACHMENT_STORE_OP_END_RANGE = VK_ATTACHMENT_STORE_OP_DONT_CARE, | 
|  | VK_ATTACHMENT_STORE_OP_RANGE_SIZE = (VK_ATTACHMENT_STORE_OP_DONT_CARE - VK_ATTACHMENT_STORE_OP_STORE + 1), | 
|  | VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkAttachmentStoreOp; | 
|  |  | 
|  | typedef enum VkPipelineBindPoint { | 
|  | VK_PIPELINE_BIND_POINT_GRAPHICS = 0, | 
|  | VK_PIPELINE_BIND_POINT_COMPUTE = 1, | 
|  | VK_PIPELINE_BIND_POINT_BEGIN_RANGE = VK_PIPELINE_BIND_POINT_GRAPHICS, | 
|  | VK_PIPELINE_BIND_POINT_END_RANGE = VK_PIPELINE_BIND_POINT_COMPUTE, | 
|  | VK_PIPELINE_BIND_POINT_RANGE_SIZE = (VK_PIPELINE_BIND_POINT_COMPUTE - VK_PIPELINE_BIND_POINT_GRAPHICS + 1), | 
|  | VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkPipelineBindPoint; | 
|  |  | 
|  | typedef enum VkCommandBufferLevel { | 
|  | VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0, | 
|  | VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1, | 
|  | VK_COMMAND_BUFFER_LEVEL_BEGIN_RANGE = VK_COMMAND_BUFFER_LEVEL_PRIMARY, | 
|  | VK_COMMAND_BUFFER_LEVEL_END_RANGE = VK_COMMAND_BUFFER_LEVEL_SECONDARY, | 
|  | VK_COMMAND_BUFFER_LEVEL_RANGE_SIZE = (VK_COMMAND_BUFFER_LEVEL_SECONDARY - VK_COMMAND_BUFFER_LEVEL_PRIMARY + 1), | 
|  | VK_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkCommandBufferLevel; | 
|  |  | 
|  | typedef enum VkIndexType { | 
|  | VK_INDEX_TYPE_UINT16 = 0, | 
|  | VK_INDEX_TYPE_UINT32 = 1, | 
|  | VK_INDEX_TYPE_BEGIN_RANGE = VK_INDEX_TYPE_UINT16, | 
|  | VK_INDEX_TYPE_END_RANGE = VK_INDEX_TYPE_UINT32, | 
|  | VK_INDEX_TYPE_RANGE_SIZE = (VK_INDEX_TYPE_UINT32 - VK_INDEX_TYPE_UINT16 + 1), | 
|  | VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkIndexType; | 
|  |  | 
|  | typedef enum VkSubpassContents { | 
|  | VK_SUBPASS_CONTENTS_INLINE = 0, | 
|  | VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1, | 
|  | VK_SUBPASS_CONTENTS_BEGIN_RANGE = VK_SUBPASS_CONTENTS_INLINE, | 
|  | VK_SUBPASS_CONTENTS_END_RANGE = VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS, | 
|  | VK_SUBPASS_CONTENTS_RANGE_SIZE = (VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS - VK_SUBPASS_CONTENTS_INLINE + 1), | 
|  | VK_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkSubpassContents; | 
|  |  | 
|  | 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_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 = 1000085000, | 
|  | VK_OBJECT_TYPE_OBJECT_TABLE_NVX = 1000086000, | 
|  | VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX = 1000086001, | 
|  | VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = 1000156000, | 
|  | VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000, | 
|  | VK_OBJECT_TYPE_BEGIN_RANGE = VK_OBJECT_TYPE_UNKNOWN, | 
|  | VK_OBJECT_TYPE_END_RANGE = VK_OBJECT_TYPE_COMMAND_POOL, | 
|  | VK_OBJECT_TYPE_RANGE_SIZE = (VK_OBJECT_TYPE_COMMAND_POOL - VK_OBJECT_TYPE_UNKNOWN + 1), | 
|  | VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkObjectType; | 
|  |  | 
|  | typedef VkFlags VkInstanceCreateFlags; | 
|  |  | 
|  | typedef enum VkFormatFeatureFlagBits { | 
|  | VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001, | 
|  | VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002, | 
|  | VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004, | 
|  | VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008, | 
|  | VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010, | 
|  | VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020, | 
|  | VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040, | 
|  | VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080, | 
|  | VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100, | 
|  | VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200, | 
|  | VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400, | 
|  | VK_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800, | 
|  | VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000, | 
|  | VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000, | 
|  | VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = 0x00004000, | 
|  | VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = 0x00008000, | 
|  | VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = 0x00010000, | 
|  | VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = 0x00020000, | 
|  | VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = 0x00040000, | 
|  | VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = 0x00080000, | 
|  | VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = 0x00100000, | 
|  | VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 0x00200000, | 
|  | VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = 0x00400000, | 
|  | VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = 0x00800000, | 
|  | VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkFormatFeatureFlagBits; | 
|  | typedef VkFlags VkFormatFeatureFlags; | 
|  |  | 
|  | typedef enum VkImageUsageFlagBits { | 
|  | VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001, | 
|  | VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002, | 
|  | VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004, | 
|  | VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008, | 
|  | VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010, | 
|  | VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020, | 
|  | VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040, | 
|  | VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080, | 
|  | VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkImageUsageFlagBits; | 
|  | typedef VkFlags VkImageUsageFlags; | 
|  |  | 
|  | typedef enum VkImageCreateFlagBits { | 
|  | VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001, | 
|  | VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, | 
|  | VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004, | 
|  | VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008, | 
|  | VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010, | 
|  | VK_IMAGE_CREATE_BIND_SFR_BIT_KHX = 0x00000040, | 
|  | VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = 0x00000020, | 
|  | VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = 0x00000080, | 
|  | VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR = 0x00000100, | 
|  | VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000, | 
|  | VK_IMAGE_CREATE_DISJOINT_BIT_KHR = 0x00000200, | 
|  | VK_IMAGE_CREATE_ALIAS_BIT_KHR = 0x00000400, | 
|  | VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkImageCreateFlagBits; | 
|  | typedef VkFlags VkImageCreateFlags; | 
|  |  | 
|  | typedef enum VkSampleCountFlagBits { | 
|  | VK_SAMPLE_COUNT_1_BIT = 0x00000001, | 
|  | VK_SAMPLE_COUNT_2_BIT = 0x00000002, | 
|  | VK_SAMPLE_COUNT_4_BIT = 0x00000004, | 
|  | VK_SAMPLE_COUNT_8_BIT = 0x00000008, | 
|  | VK_SAMPLE_COUNT_16_BIT = 0x00000010, | 
|  | VK_SAMPLE_COUNT_32_BIT = 0x00000020, | 
|  | VK_SAMPLE_COUNT_64_BIT = 0x00000040, | 
|  | VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkSampleCountFlagBits; | 
|  | typedef VkFlags VkSampleCountFlags; | 
|  |  | 
|  | typedef enum VkQueueFlagBits { | 
|  | VK_QUEUE_GRAPHICS_BIT = 0x00000001, | 
|  | VK_QUEUE_COMPUTE_BIT = 0x00000002, | 
|  | VK_QUEUE_TRANSFER_BIT = 0x00000004, | 
|  | VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008, | 
|  | VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkQueueFlagBits; | 
|  | typedef VkFlags VkQueueFlags; | 
|  |  | 
|  | typedef enum VkMemoryPropertyFlagBits { | 
|  | VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001, | 
|  | VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002, | 
|  | VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004, | 
|  | VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008, | 
|  | VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010, | 
|  | VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkMemoryPropertyFlagBits; | 
|  | typedef VkFlags VkMemoryPropertyFlags; | 
|  |  | 
|  | typedef enum VkMemoryHeapFlagBits { | 
|  | VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001, | 
|  | VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHX = 0x00000002, | 
|  | VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkMemoryHeapFlagBits; | 
|  | typedef VkFlags VkMemoryHeapFlags; | 
|  | typedef VkFlags VkDeviceCreateFlags; | 
|  | typedef VkFlags VkDeviceQueueCreateFlags; | 
|  |  | 
|  | typedef enum VkPipelineStageFlagBits { | 
|  | VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001, | 
|  | VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002, | 
|  | VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004, | 
|  | VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008, | 
|  | VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010, | 
|  | VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020, | 
|  | VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040, | 
|  | VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080, | 
|  | VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100, | 
|  | VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200, | 
|  | VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400, | 
|  | VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800, | 
|  | VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000, | 
|  | VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000, | 
|  | VK_PIPELINE_STAGE_HOST_BIT = 0x00004000, | 
|  | VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000, | 
|  | VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000, | 
|  | VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX = 0x00020000, | 
|  | VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkPipelineStageFlagBits; | 
|  | typedef VkFlags VkPipelineStageFlags; | 
|  | typedef VkFlags VkMemoryMapFlags; | 
|  |  | 
|  | typedef enum VkImageAspectFlagBits { | 
|  | VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001, | 
|  | VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002, | 
|  | VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004, | 
|  | VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008, | 
|  | VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = 0x00000010, | 
|  | VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = 0x00000020, | 
|  | VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = 0x00000040, | 
|  | VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkImageAspectFlagBits; | 
|  | typedef VkFlags VkImageAspectFlags; | 
|  |  | 
|  | typedef enum VkSparseImageFormatFlagBits { | 
|  | VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001, | 
|  | VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 0x00000002, | 
|  | VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004, | 
|  | VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkSparseImageFormatFlagBits; | 
|  | typedef VkFlags VkSparseImageFormatFlags; | 
|  |  | 
|  | typedef enum VkSparseMemoryBindFlagBits { | 
|  | VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001, | 
|  | VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkSparseMemoryBindFlagBits; | 
|  | typedef VkFlags VkSparseMemoryBindFlags; | 
|  |  | 
|  | typedef enum VkFenceCreateFlagBits { | 
|  | VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001, | 
|  | VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkFenceCreateFlagBits; | 
|  | typedef VkFlags VkFenceCreateFlags; | 
|  | typedef VkFlags VkSemaphoreCreateFlags; | 
|  | typedef VkFlags VkEventCreateFlags; | 
|  | typedef VkFlags VkQueryPoolCreateFlags; | 
|  |  | 
|  | typedef enum VkQueryPipelineStatisticFlagBits { | 
|  | VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001, | 
|  | VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002, | 
|  | VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004, | 
|  | VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008, | 
|  | VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010, | 
|  | VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020, | 
|  | VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040, | 
|  | VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080, | 
|  | VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100, | 
|  | VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200, | 
|  | VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400, | 
|  | VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkQueryPipelineStatisticFlagBits; | 
|  | typedef VkFlags VkQueryPipelineStatisticFlags; | 
|  |  | 
|  | typedef enum VkQueryResultFlagBits { | 
|  | VK_QUERY_RESULT_64_BIT = 0x00000001, | 
|  | VK_QUERY_RESULT_WAIT_BIT = 0x00000002, | 
|  | VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004, | 
|  | VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008, | 
|  | VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkQueryResultFlagBits; | 
|  | typedef VkFlags VkQueryResultFlags; | 
|  |  | 
|  | typedef enum VkBufferCreateFlagBits { | 
|  | VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001, | 
|  | VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, | 
|  | VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004, | 
|  | VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkBufferCreateFlagBits; | 
|  | typedef VkFlags VkBufferCreateFlags; | 
|  |  | 
|  | typedef enum VkBufferUsageFlagBits { | 
|  | VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001, | 
|  | VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002, | 
|  | VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004, | 
|  | VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008, | 
|  | VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010, | 
|  | VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020, | 
|  | VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040, | 
|  | VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080, | 
|  | VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100, | 
|  | VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkBufferUsageFlagBits; | 
|  | typedef VkFlags VkBufferUsageFlags; | 
|  | typedef VkFlags VkBufferViewCreateFlags; | 
|  | typedef VkFlags VkImageViewCreateFlags; | 
|  | typedef VkFlags VkShaderModuleCreateFlags; | 
|  | typedef VkFlags VkPipelineCacheCreateFlags; | 
|  |  | 
|  | typedef enum VkPipelineCreateFlagBits { | 
|  | VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001, | 
|  | VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002, | 
|  | VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004, | 
|  | VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHX = 0x00000008, | 
|  | VK_PIPELINE_CREATE_DISPATCH_BASE_KHX = 0x00000010, | 
|  | VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkPipelineCreateFlagBits; | 
|  | typedef VkFlags VkPipelineCreateFlags; | 
|  | typedef VkFlags VkPipelineShaderStageCreateFlags; | 
|  |  | 
|  | typedef enum VkShaderStageFlagBits { | 
|  | VK_SHADER_STAGE_VERTEX_BIT = 0x00000001, | 
|  | VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002, | 
|  | VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004, | 
|  | VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008, | 
|  | VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010, | 
|  | VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020, | 
|  | VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F, | 
|  | VK_SHADER_STAGE_ALL = 0x7FFFFFFF, | 
|  | VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkShaderStageFlagBits; | 
|  | typedef VkFlags VkPipelineVertexInputStateCreateFlags; | 
|  | typedef VkFlags VkPipelineInputAssemblyStateCreateFlags; | 
|  | typedef VkFlags VkPipelineTessellationStateCreateFlags; | 
|  | typedef VkFlags VkPipelineViewportStateCreateFlags; | 
|  | typedef VkFlags VkPipelineRasterizationStateCreateFlags; | 
|  |  | 
|  | typedef enum VkCullModeFlagBits { | 
|  | VK_CULL_MODE_NONE = 0, | 
|  | VK_CULL_MODE_FRONT_BIT = 0x00000001, | 
|  | VK_CULL_MODE_BACK_BIT = 0x00000002, | 
|  | VK_CULL_MODE_FRONT_AND_BACK = 0x00000003, | 
|  | VK_CULL_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkCullModeFlagBits; | 
|  | typedef VkFlags VkCullModeFlags; | 
|  | typedef VkFlags VkPipelineMultisampleStateCreateFlags; | 
|  | typedef VkFlags VkPipelineDepthStencilStateCreateFlags; | 
|  | typedef VkFlags VkPipelineColorBlendStateCreateFlags; | 
|  |  | 
|  | typedef enum VkColorComponentFlagBits { | 
|  | VK_COLOR_COMPONENT_R_BIT = 0x00000001, | 
|  | VK_COLOR_COMPONENT_G_BIT = 0x00000002, | 
|  | VK_COLOR_COMPONENT_B_BIT = 0x00000004, | 
|  | VK_COLOR_COMPONENT_A_BIT = 0x00000008, | 
|  | VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkColorComponentFlagBits; | 
|  | typedef VkFlags VkColorComponentFlags; | 
|  | typedef VkFlags VkPipelineDynamicStateCreateFlags; | 
|  | typedef VkFlags VkPipelineLayoutCreateFlags; | 
|  | typedef VkFlags VkShaderStageFlags; | 
|  | typedef VkFlags VkSamplerCreateFlags; | 
|  |  | 
|  | typedef enum VkDescriptorSetLayoutCreateFlagBits { | 
|  | VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001, | 
|  | VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkDescriptorSetLayoutCreateFlagBits; | 
|  | typedef VkFlags VkDescriptorSetLayoutCreateFlags; | 
|  |  | 
|  | typedef enum VkDescriptorPoolCreateFlagBits { | 
|  | VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001, | 
|  | VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkDescriptorPoolCreateFlagBits; | 
|  | typedef VkFlags VkDescriptorPoolCreateFlags; | 
|  | typedef VkFlags VkDescriptorPoolResetFlags; | 
|  | typedef VkFlags VkFramebufferCreateFlags; | 
|  | typedef VkFlags VkRenderPassCreateFlags; | 
|  |  | 
|  | typedef enum VkAttachmentDescriptionFlagBits { | 
|  | VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001, | 
|  | VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkAttachmentDescriptionFlagBits; | 
|  | typedef VkFlags VkAttachmentDescriptionFlags; | 
|  |  | 
|  | typedef enum VkSubpassDescriptionFlagBits { | 
|  | VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001, | 
|  | VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002, | 
|  | VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkSubpassDescriptionFlagBits; | 
|  | typedef VkFlags VkSubpassDescriptionFlags; | 
|  |  | 
|  | typedef enum VkAccessFlagBits { | 
|  | VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001, | 
|  | VK_ACCESS_INDEX_READ_BIT = 0x00000002, | 
|  | VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004, | 
|  | VK_ACCESS_UNIFORM_READ_BIT = 0x00000008, | 
|  | VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010, | 
|  | VK_ACCESS_SHADER_READ_BIT = 0x00000020, | 
|  | VK_ACCESS_SHADER_WRITE_BIT = 0x00000040, | 
|  | VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080, | 
|  | VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100, | 
|  | VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200, | 
|  | VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400, | 
|  | VK_ACCESS_TRANSFER_READ_BIT = 0x00000800, | 
|  | VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000, | 
|  | VK_ACCESS_HOST_READ_BIT = 0x00002000, | 
|  | VK_ACCESS_HOST_WRITE_BIT = 0x00004000, | 
|  | VK_ACCESS_MEMORY_READ_BIT = 0x00008000, | 
|  | VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000, | 
|  | VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX = 0x00020000, | 
|  | VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX = 0x00040000, | 
|  | VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000, | 
|  | VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkAccessFlagBits; | 
|  | typedef VkFlags VkAccessFlags; | 
|  |  | 
|  | typedef enum VkDependencyFlagBits { | 
|  | VK_DEPENDENCY_BY_REGION_BIT = 0x00000001, | 
|  | VK_DEPENDENCY_VIEW_LOCAL_BIT_KHX = 0x00000002, | 
|  | VK_DEPENDENCY_DEVICE_GROUP_BIT_KHX = 0x00000004, | 
|  | VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkDependencyFlagBits; | 
|  | typedef VkFlags VkDependencyFlags; | 
|  |  | 
|  | typedef enum VkCommandPoolCreateFlagBits { | 
|  | VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001, | 
|  | VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002, | 
|  | VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkCommandPoolCreateFlagBits; | 
|  | typedef VkFlags VkCommandPoolCreateFlags; | 
|  |  | 
|  | typedef enum VkCommandPoolResetFlagBits { | 
|  | VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001, | 
|  | VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkCommandPoolResetFlagBits; | 
|  | typedef VkFlags VkCommandPoolResetFlags; | 
|  |  | 
|  | typedef enum VkCommandBufferUsageFlagBits { | 
|  | VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001, | 
|  | VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002, | 
|  | VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004, | 
|  | VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkCommandBufferUsageFlagBits; | 
|  | typedef VkFlags VkCommandBufferUsageFlags; | 
|  |  | 
|  | typedef enum VkQueryControlFlagBits { | 
|  | VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001, | 
|  | VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkQueryControlFlagBits; | 
|  | typedef VkFlags VkQueryControlFlags; | 
|  |  | 
|  | typedef enum VkCommandBufferResetFlagBits { | 
|  | VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001, | 
|  | VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkCommandBufferResetFlagBits; | 
|  | typedef VkFlags VkCommandBufferResetFlags; | 
|  |  | 
|  | typedef enum VkStencilFaceFlagBits { | 
|  | VK_STENCIL_FACE_FRONT_BIT = 0x00000001, | 
|  | VK_STENCIL_FACE_BACK_BIT = 0x00000002, | 
|  | VK_STENCIL_FRONT_AND_BACK = 0x00000003, | 
|  | VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkStencilFaceFlagBits; | 
|  | typedef VkFlags VkStencilFaceFlags; | 
|  |  | 
|  | 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 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 void* (VKAPI_PTR *PFN_vkAllocationFunction)( | 
|  | void*                                       pUserData, | 
|  | size_t                                      size, | 
|  | size_t                                      alignment, | 
|  | 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_vkFreeFunction)( | 
|  | void*                                       pUserData, | 
|  | void*                                       pMemory); | 
|  |  | 
|  | 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 struct VkAllocationCallbacks { | 
|  | void*                                   pUserData; | 
|  | PFN_vkAllocationFunction                pfnAllocation; | 
|  | PFN_vkReallocationFunction              pfnReallocation; | 
|  | PFN_vkFreeFunction                      pfnFree; | 
|  | PFN_vkInternalAllocationNotification    pfnInternalAllocation; | 
|  | PFN_vkInternalFreeNotification          pfnInternalFree; | 
|  | } VkAllocationCallbacks; | 
|  |  | 
|  | 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 VkFormatProperties { | 
|  | VkFormatFeatureFlags    linearTilingFeatures; | 
|  | VkFormatFeatureFlags    optimalTilingFeatures; | 
|  | VkFormatFeatureFlags    bufferFeatures; | 
|  | } VkFormatProperties; | 
|  |  | 
|  | typedef struct VkExtent3D { | 
|  | uint32_t    width; | 
|  | uint32_t    height; | 
|  | uint32_t    depth; | 
|  | } VkExtent3D; | 
|  |  | 
|  | typedef struct VkImageFormatProperties { | 
|  | VkExtent3D            maxExtent; | 
|  | uint32_t              maxMipLevels; | 
|  | uint32_t              maxArrayLayers; | 
|  | VkSampleCountFlags    sampleCounts; | 
|  | VkDeviceSize          maxResourceSize; | 
|  | } VkImageFormatProperties; | 
|  |  | 
|  | 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 VkPhysicalDeviceSparseProperties { | 
|  | VkBool32    residencyStandard2DBlockShape; | 
|  | VkBool32    residencyStandard2DMultisampleBlockShape; | 
|  | VkBool32    residencyStandard3DBlockShape; | 
|  | VkBool32    residencyAlignedMipSize; | 
|  | VkBool32    residencyNonResidentStrict; | 
|  | } VkPhysicalDeviceSparseProperties; | 
|  |  | 
|  | 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 VkQueueFamilyProperties { | 
|  | VkQueueFlags    queueFlags; | 
|  | uint32_t        queueCount; | 
|  | uint32_t        timestampValidBits; | 
|  | VkExtent3D      minImageTransferGranularity; | 
|  | } VkQueueFamilyProperties; | 
|  |  | 
|  | typedef struct VkMemoryType { | 
|  | VkMemoryPropertyFlags    propertyFlags; | 
|  | uint32_t                 heapIndex; | 
|  | } VkMemoryType; | 
|  |  | 
|  | typedef struct VkMemoryHeap { | 
|  | VkDeviceSize         size; | 
|  | VkMemoryHeapFlags    flags; | 
|  | } VkMemoryHeap; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceMemoryProperties { | 
|  | uint32_t        memoryTypeCount; | 
|  | VkMemoryType    memoryTypes[VK_MAX_MEMORY_TYPES]; | 
|  | uint32_t        memoryHeapCount; | 
|  | VkMemoryHeap    memoryHeaps[VK_MAX_MEMORY_HEAPS]; | 
|  | } VkPhysicalDeviceMemoryProperties; | 
|  |  | 
|  | typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void); | 
|  | typedef struct VkDeviceQueueCreateInfo { | 
|  | VkStructureType             sType; | 
|  | const void*                 pNext; | 
|  | VkDeviceQueueCreateFlags    flags; | 
|  | uint32_t                    queueFamilyIndex; | 
|  | uint32_t                    queueCount; | 
|  | const float*                pQueuePriorities; | 
|  | } VkDeviceQueueCreateInfo; | 
|  |  | 
|  | 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 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 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 VkMemoryAllocateInfo { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | VkDeviceSize       allocationSize; | 
|  | uint32_t           memoryTypeIndex; | 
|  | } VkMemoryAllocateInfo; | 
|  |  | 
|  | typedef struct VkMappedMemoryRange { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | VkDeviceMemory     memory; | 
|  | VkDeviceSize       offset; | 
|  | VkDeviceSize       size; | 
|  | } VkMappedMemoryRange; | 
|  |  | 
|  | 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 VkSparseMemoryBind { | 
|  | VkDeviceSize               resourceOffset; | 
|  | VkDeviceSize               size; | 
|  | VkDeviceMemory             memory; | 
|  | VkDeviceSize               memoryOffset; | 
|  | VkSparseMemoryBindFlags    flags; | 
|  | } VkSparseMemoryBind; | 
|  |  | 
|  | 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 VkImageSubresource { | 
|  | VkImageAspectFlags    aspectMask; | 
|  | uint32_t              mipLevel; | 
|  | uint32_t              arrayLayer; | 
|  | } VkImageSubresource; | 
|  |  | 
|  | typedef struct VkOffset3D { | 
|  | int32_t    x; | 
|  | int32_t    y; | 
|  | int32_t    z; | 
|  | } VkOffset3D; | 
|  |  | 
|  | typedef struct VkSparseImageMemoryBind { | 
|  | VkImageSubresource         subresource; | 
|  | VkOffset3D                 offset; | 
|  | VkExtent3D                 extent; | 
|  | VkDeviceMemory             memory; | 
|  | VkDeviceSize               memoryOffset; | 
|  | VkSparseMemoryBindFlags    flags; | 
|  | } VkSparseImageMemoryBind; | 
|  |  | 
|  | 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 VkFenceCreateInfo { | 
|  | VkStructureType       sType; | 
|  | const void*           pNext; | 
|  | VkFenceCreateFlags    flags; | 
|  | } VkFenceCreateInfo; | 
|  |  | 
|  | typedef struct VkSemaphoreCreateInfo { | 
|  | VkStructureType           sType; | 
|  | const void*               pNext; | 
|  | VkSemaphoreCreateFlags    flags; | 
|  | } VkSemaphoreCreateInfo; | 
|  |  | 
|  | typedef struct VkEventCreateInfo { | 
|  | VkStructureType       sType; | 
|  | const void*           pNext; | 
|  | VkEventCreateFlags    flags; | 
|  | } VkEventCreateInfo; | 
|  |  | 
|  | typedef struct VkQueryPoolCreateInfo { | 
|  | VkStructureType                  sType; | 
|  | const void*                      pNext; | 
|  | VkQueryPoolCreateFlags           flags; | 
|  | VkQueryType                      queryType; | 
|  | uint32_t                         queryCount; | 
|  | VkQueryPipelineStatisticFlags    pipelineStatistics; | 
|  | } VkQueryPoolCreateInfo; | 
|  |  | 
|  | 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 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 VkComponentMapping { | 
|  | VkComponentSwizzle    r; | 
|  | VkComponentSwizzle    g; | 
|  | VkComponentSwizzle    b; | 
|  | VkComponentSwizzle    a; | 
|  | } VkComponentMapping; | 
|  |  | 
|  | typedef struct VkImageSubresourceRange { | 
|  | VkImageAspectFlags    aspectMask; | 
|  | uint32_t              baseMipLevel; | 
|  | uint32_t              levelCount; | 
|  | uint32_t              baseArrayLayer; | 
|  | uint32_t              layerCount; | 
|  | } VkImageSubresourceRange; | 
|  |  | 
|  | typedef struct VkImageViewCreateInfo { | 
|  | VkStructureType            sType; | 
|  | const void*                pNext; | 
|  | VkImageViewCreateFlags     flags; | 
|  | VkImage                    image; | 
|  | VkImageViewType            viewType; | 
|  | VkFormat                   format; | 
|  | VkComponentMapping         components; | 
|  | VkImageSubresourceRange    subresourceRange; | 
|  | } VkImageViewCreateInfo; | 
|  |  | 
|  | typedef struct VkShaderModuleCreateInfo { | 
|  | VkStructureType              sType; | 
|  | const void*                  pNext; | 
|  | VkShaderModuleCreateFlags    flags; | 
|  | size_t                       codeSize; | 
|  | const uint32_t*              pCode; | 
|  | } VkShaderModuleCreateInfo; | 
|  |  | 
|  | typedef struct VkPipelineCacheCreateInfo { | 
|  | VkStructureType               sType; | 
|  | const void*                   pNext; | 
|  | VkPipelineCacheCreateFlags    flags; | 
|  | size_t                        initialDataSize; | 
|  | const void*                   pInitialData; | 
|  | } VkPipelineCacheCreateInfo; | 
|  |  | 
|  | 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 VkPipelineShaderStageCreateInfo { | 
|  | VkStructureType                     sType; | 
|  | const void*                         pNext; | 
|  | VkPipelineShaderStageCreateFlags    flags; | 
|  | VkShaderStageFlagBits               stage; | 
|  | VkShaderModule                      module; | 
|  | const char*                         pName; | 
|  | const VkSpecializationInfo*         pSpecializationInfo; | 
|  | } VkPipelineShaderStageCreateInfo; | 
|  |  | 
|  | 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 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 VkViewport { | 
|  | float    x; | 
|  | float    y; | 
|  | float    width; | 
|  | float    height; | 
|  | float    minDepth; | 
|  | float    maxDepth; | 
|  | } VkViewport; | 
|  |  | 
|  | typedef struct VkOffset2D { | 
|  | int32_t    x; | 
|  | int32_t    y; | 
|  | } VkOffset2D; | 
|  |  | 
|  | typedef struct VkExtent2D { | 
|  | uint32_t    width; | 
|  | uint32_t    height; | 
|  | } VkExtent2D; | 
|  |  | 
|  | typedef struct VkRect2D { | 
|  | VkOffset2D    offset; | 
|  | VkExtent2D    extent; | 
|  | } VkRect2D; | 
|  |  | 
|  | 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 VkStencilOpState { | 
|  | VkStencilOp    failOp; | 
|  | VkStencilOp    passOp; | 
|  | VkStencilOp    depthFailOp; | 
|  | VkCompareOp    compareOp; | 
|  | uint32_t       compareMask; | 
|  | uint32_t       writeMask; | 
|  | uint32_t       reference; | 
|  | } VkStencilOpState; | 
|  |  | 
|  | 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 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 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 VkComputePipelineCreateInfo { | 
|  | VkStructureType                    sType; | 
|  | const void*                        pNext; | 
|  | VkPipelineCreateFlags              flags; | 
|  | VkPipelineShaderStageCreateInfo    stage; | 
|  | VkPipelineLayout                   layout; | 
|  | VkPipeline                         basePipelineHandle; | 
|  | int32_t                            basePipelineIndex; | 
|  | } VkComputePipelineCreateInfo; | 
|  |  | 
|  | 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 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 VkDescriptorPoolSize { | 
|  | VkDescriptorType    type; | 
|  | uint32_t            descriptorCount; | 
|  | } VkDescriptorPoolSize; | 
|  |  | 
|  | typedef struct VkDescriptorPoolCreateInfo { | 
|  | VkStructureType                sType; | 
|  | const void*                    pNext; | 
|  | VkDescriptorPoolCreateFlags    flags; | 
|  | uint32_t                       maxSets; | 
|  | uint32_t                       poolSizeCount; | 
|  | const VkDescriptorPoolSize*    pPoolSizes; | 
|  | } VkDescriptorPoolCreateInfo; | 
|  |  | 
|  | typedef struct VkDescriptorSetAllocateInfo { | 
|  | VkStructureType                 sType; | 
|  | const void*                     pNext; | 
|  | VkDescriptorPool                descriptorPool; | 
|  | uint32_t                        descriptorSetCount; | 
|  | const VkDescriptorSetLayout*    pSetLayouts; | 
|  | } VkDescriptorSetAllocateInfo; | 
|  |  | 
|  | typedef struct VkDescriptorImageInfo { | 
|  | VkSampler        sampler; | 
|  | VkImageView      imageView; | 
|  | VkImageLayout    imageLayout; | 
|  | } VkDescriptorImageInfo; | 
|  |  | 
|  | 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 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 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 VkAttachmentDescription { | 
|  | VkAttachmentDescriptionFlags    flags; | 
|  | VkFormat                        format; | 
|  | VkSampleCountFlagBits           samples; | 
|  | VkAttachmentLoadOp              loadOp; | 
|  | VkAttachmentStoreOp             storeOp; | 
|  | VkAttachmentLoadOp              stencilLoadOp; | 
|  | VkAttachmentStoreOp             stencilStoreOp; | 
|  | VkImageLayout                   initialLayout; | 
|  | VkImageLayout                   finalLayout; | 
|  | } VkAttachmentDescription; | 
|  |  | 
|  | typedef struct VkAttachmentReference { | 
|  | uint32_t         attachment; | 
|  | VkImageLayout    layout; | 
|  | } VkAttachmentReference; | 
|  |  | 
|  | 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 VkCommandPoolCreateInfo { | 
|  | VkStructureType             sType; | 
|  | const void*                 pNext; | 
|  | VkCommandPoolCreateFlags    flags; | 
|  | uint32_t                    queueFamilyIndex; | 
|  | } VkCommandPoolCreateInfo; | 
|  |  | 
|  | typedef struct VkCommandBufferAllocateInfo { | 
|  | VkStructureType         sType; | 
|  | const void*             pNext; | 
|  | VkCommandPool           commandPool; | 
|  | VkCommandBufferLevel    level; | 
|  | uint32_t                commandBufferCount; | 
|  | } VkCommandBufferAllocateInfo; | 
|  |  | 
|  | 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 VkBufferCopy { | 
|  | VkDeviceSize    srcOffset; | 
|  | VkDeviceSize    dstOffset; | 
|  | VkDeviceSize    size; | 
|  | } VkBufferCopy; | 
|  |  | 
|  | typedef struct VkImageSubresourceLayers { | 
|  | VkImageAspectFlags    aspectMask; | 
|  | uint32_t              mipLevel; | 
|  | uint32_t              baseArrayLayer; | 
|  | uint32_t              layerCount; | 
|  | } VkImageSubresourceLayers; | 
|  |  | 
|  | 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 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 VkClearAttachment { | 
|  | VkImageAspectFlags    aspectMask; | 
|  | uint32_t              colorAttachment; | 
|  | VkClearValue          clearValue; | 
|  | } VkClearAttachment; | 
|  |  | 
|  | typedef struct VkClearRect { | 
|  | VkRect2D    rect; | 
|  | uint32_t    baseArrayLayer; | 
|  | uint32_t    layerCount; | 
|  | } VkClearRect; | 
|  |  | 
|  | typedef struct VkImageResolve { | 
|  | VkImageSubresourceLayers    srcSubresource; | 
|  | VkOffset3D                  srcOffset; | 
|  | VkImageSubresourceLayers    dstSubresource; | 
|  | VkOffset3D                  dstOffset; | 
|  | VkExtent3D                  extent; | 
|  | } VkImageResolve; | 
|  |  | 
|  | 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 VkRenderPassBeginInfo { | 
|  | VkStructureType        sType; | 
|  | const void*            pNext; | 
|  | VkRenderPass           renderPass; | 
|  | VkFramebuffer          framebuffer; | 
|  | VkRect2D               renderArea; | 
|  | uint32_t               clearValueCount; | 
|  | const VkClearValue*    pClearValues; | 
|  | } VkRenderPassBeginInfo; | 
|  |  | 
|  | typedef struct VkDispatchIndirectCommand { | 
|  | uint32_t    x; | 
|  | uint32_t    y; | 
|  | uint32_t    z; | 
|  | } VkDispatchIndirectCommand; | 
|  |  | 
|  | typedef struct VkDrawIndexedIndirectCommand { | 
|  | uint32_t    indexCount; | 
|  | uint32_t    instanceCount; | 
|  | uint32_t    firstIndex; | 
|  | int32_t     vertexOffset; | 
|  | uint32_t    firstInstance; | 
|  | } VkDrawIndexedIndirectCommand; | 
|  |  | 
|  | typedef struct VkDrawIndirectCommand { | 
|  | uint32_t    vertexCount; | 
|  | uint32_t    instanceCount; | 
|  | uint32_t    firstVertex; | 
|  | uint32_t    firstInstance; | 
|  | } VkDrawIndirectCommand; | 
|  |  | 
|  |  | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance); | 
|  | typedef void (VKAPI_PTR *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks* pAllocator); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices); | 
|  | typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures); | 
|  | typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties); | 
|  | typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties); | 
|  | typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties); | 
|  | typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties); | 
|  | typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char* pName); | 
|  | typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetDeviceProcAddr)(VkDevice device, const char* pName); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice); | 
|  | typedef void (VKAPI_PTR *PFN_vkDestroyDevice)(VkDevice device, const VkAllocationCallbacks* pAllocator); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceExtensionProperties)(const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceLayerProperties)(uint32_t* pPropertyCount, VkLayerProperties* pProperties); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties); | 
|  | typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkQueueWaitIdle)(VkQueue queue); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkDeviceWaitIdle)(VkDevice device); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkAllocateMemory)(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory); | 
|  | typedef void (VKAPI_PTR *PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkMapMemory)(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData); | 
|  | typedef void (VKAPI_PTR *PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory memory); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkFlushMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkInvalidateMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges); | 
|  | typedef void (VKAPI_PTR *PFN_vkGetDeviceMemoryCommitment)(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory)(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory)(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset); | 
|  | typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements)(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements); | 
|  | typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements); | 
|  | typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements); | 
|  | typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkQueueBindSparse)(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence); | 
|  | typedef void (VKAPI_PTR *PFN_vkDestroyFence)(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkResetFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetFenceStatus)(VkDevice device, VkFence fence); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkWaitForFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore); | 
|  | typedef void (VKAPI_PTR *PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent); | 
|  | typedef void (VKAPI_PTR *PFN_vkDestroyEvent)(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetEventStatus)(VkDevice device, VkEvent event); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkSetEvent)(VkDevice device, VkEvent event); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkResetEvent)(VkDevice device, VkEvent event); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool); | 
|  | typedef void (VKAPI_PTR *PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetQueryPoolResults)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer); | 
|  | typedef void (VKAPI_PTR *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView); | 
|  | typedef void (VKAPI_PTR *PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage); | 
|  | typedef void (VKAPI_PTR *PFN_vkDestroyImage)(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator); | 
|  | typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView); | 
|  | typedef void (VKAPI_PTR *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule); | 
|  | typedef void (VKAPI_PTR *PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache); | 
|  | typedef void (VKAPI_PTR *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines); | 
|  | typedef void (VKAPI_PTR *PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout); | 
|  | typedef void (VKAPI_PTR *PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler); | 
|  | typedef void (VKAPI_PTR *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout); | 
|  | typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool); | 
|  | typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkAllocateDescriptorSets)(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets); | 
|  | typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer); | 
|  | typedef void (VKAPI_PTR *PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass); | 
|  | typedef void (VKAPI_PTR *PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator); | 
|  | typedef void (VKAPI_PTR *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreateCommandPool)(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool); | 
|  | typedef void (VKAPI_PTR *PFN_vkDestroyCommandPool)(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkResetCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkAllocateCommandBuffers)(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers); | 
|  | typedef void (VKAPI_PTR *PFN_vkFreeCommandBuffers)(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkBeginCommandBuffer)(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkEndCommandBuffer)(VkCommandBuffer commandBuffer); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkResetCommandBuffer)(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdBindPipeline)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdSetViewport)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdSetScissor)(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdSetLineWidth)(VkCommandBuffer commandBuffer, float lineWidth); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias)(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdSetBlendConstants)(VkCommandBuffer commandBuffer, const float blendConstants[4]); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBounds)(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdSetStencilCompareMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdSetStencilWriteMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdSetStencilReference)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference); | 
|  | typedef void (VKAPI_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 (VKAPI_PTR *PFN_vkCmdBindIndexBuffer)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdDraw)(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexed)(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdDispatch)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdDispatchIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdCopyImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdFillBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdClearColorImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdClearDepthStencilImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdClearAttachments)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdResolveImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdSetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdResetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask); | 
|  | typedef void (VKAPI_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); | 
|  | typedef void (VKAPI_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 (VKAPI_PTR *PFN_vkCmdBeginQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdEndQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdResetQueryPool)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdCopyQueryPoolResults)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdPushConstants)(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass)(VkCommandBuffer commandBuffer, VkSubpassContents contents); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass)(VkCommandBuffer commandBuffer); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdExecuteCommands)(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreateInstance( | 
|  | const VkInstanceCreateInfo*                 pCreateInfo, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkInstance*                                 pInstance); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkDestroyInstance( | 
|  | VkInstance                                  instance, | 
|  | const VkAllocationCallbacks*                pAllocator); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDevices( | 
|  | VkInstance                                  instance, | 
|  | uint32_t*                                   pPhysicalDeviceCount, | 
|  | VkPhysicalDevice*                           pPhysicalDevices); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | VkPhysicalDeviceFeatures*                   pFeatures); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | VkFormat                                    format, | 
|  | VkFormatProperties*                         pFormatProperties); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | VkFormat                                    format, | 
|  | VkImageType                                 type, | 
|  | VkImageTiling                               tiling, | 
|  | VkImageUsageFlags                           usage, | 
|  | VkImageCreateFlags                          flags, | 
|  | VkImageFormatProperties*                    pImageFormatProperties); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | VkPhysicalDeviceProperties*                 pProperties); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | uint32_t*                                   pQueueFamilyPropertyCount, | 
|  | VkQueueFamilyProperties*                    pQueueFamilyProperties); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | VkPhysicalDeviceMemoryProperties*           pMemoryProperties); | 
|  |  | 
|  | VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr( | 
|  | VkInstance                                  instance, | 
|  | const char*                                 pName); | 
|  |  | 
|  | VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr( | 
|  | VkDevice                                    device, | 
|  | const char*                                 pName); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreateDevice( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | const VkDeviceCreateInfo*                   pCreateInfo, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkDevice*                                   pDevice); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkDestroyDevice( | 
|  | VkDevice                                    device, | 
|  | const VkAllocationCallbacks*                pAllocator); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceExtensionProperties( | 
|  | const char*                                 pLayerName, | 
|  | uint32_t*                                   pPropertyCount, | 
|  | VkExtensionProperties*                      pProperties); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceExtensionProperties( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | const char*                                 pLayerName, | 
|  | uint32_t*                                   pPropertyCount, | 
|  | VkExtensionProperties*                      pProperties); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceLayerProperties( | 
|  | uint32_t*                                   pPropertyCount, | 
|  | VkLayerProperties*                          pProperties); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceLayerProperties( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | uint32_t*                                   pPropertyCount, | 
|  | VkLayerProperties*                          pProperties); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue( | 
|  | VkDevice                                    device, | 
|  | uint32_t                                    queueFamilyIndex, | 
|  | uint32_t                                    queueIndex, | 
|  | VkQueue*                                    pQueue); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit( | 
|  | VkQueue                                     queue, | 
|  | uint32_t                                    submitCount, | 
|  | const VkSubmitInfo*                         pSubmits, | 
|  | VkFence                                     fence); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkQueueWaitIdle( | 
|  | VkQueue                                     queue); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkDeviceWaitIdle( | 
|  | VkDevice                                    device); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkAllocateMemory( | 
|  | VkDevice                                    device, | 
|  | const VkMemoryAllocateInfo*                 pAllocateInfo, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkDeviceMemory*                             pMemory); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkFreeMemory( | 
|  | VkDevice                                    device, | 
|  | VkDeviceMemory                              memory, | 
|  | const VkAllocationCallbacks*                pAllocator); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory( | 
|  | VkDevice                                    device, | 
|  | VkDeviceMemory                              memory, | 
|  | VkDeviceSize                                offset, | 
|  | VkDeviceSize                                size, | 
|  | VkMemoryMapFlags                            flags, | 
|  | void**                                      ppData); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkUnmapMemory( | 
|  | VkDevice                                    device, | 
|  | VkDeviceMemory                              memory); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkFlushMappedMemoryRanges( | 
|  | VkDevice                                    device, | 
|  | uint32_t                                    memoryRangeCount, | 
|  | const VkMappedMemoryRange*                  pMemoryRanges); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkInvalidateMappedMemoryRanges( | 
|  | VkDevice                                    device, | 
|  | uint32_t                                    memoryRangeCount, | 
|  | const VkMappedMemoryRange*                  pMemoryRanges); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetDeviceMemoryCommitment( | 
|  | VkDevice                                    device, | 
|  | VkDeviceMemory                              memory, | 
|  | VkDeviceSize*                               pCommittedMemoryInBytes); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory( | 
|  | VkDevice                                    device, | 
|  | VkBuffer                                    buffer, | 
|  | VkDeviceMemory                              memory, | 
|  | VkDeviceSize                                memoryOffset); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory( | 
|  | VkDevice                                    device, | 
|  | VkImage                                     image, | 
|  | VkDeviceMemory                              memory, | 
|  | VkDeviceSize                                memoryOffset); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements( | 
|  | VkDevice                                    device, | 
|  | VkBuffer                                    buffer, | 
|  | VkMemoryRequirements*                       pMemoryRequirements); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements( | 
|  | VkDevice                                    device, | 
|  | VkImage                                     image, | 
|  | VkMemoryRequirements*                       pMemoryRequirements); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements( | 
|  | VkDevice                                    device, | 
|  | VkImage                                     image, | 
|  | uint32_t*                                   pSparseMemoryRequirementCount, | 
|  | VkSparseImageMemoryRequirements*            pSparseMemoryRequirements); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | VkFormat                                    format, | 
|  | VkImageType                                 type, | 
|  | VkSampleCountFlagBits                       samples, | 
|  | VkImageUsageFlags                           usage, | 
|  | VkImageTiling                               tiling, | 
|  | uint32_t*                                   pPropertyCount, | 
|  | VkSparseImageFormatProperties*              pProperties); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkQueueBindSparse( | 
|  | VkQueue                                     queue, | 
|  | uint32_t                                    bindInfoCount, | 
|  | const VkBindSparseInfo*                     pBindInfo, | 
|  | VkFence                                     fence); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreateFence( | 
|  | VkDevice                                    device, | 
|  | const VkFenceCreateInfo*                    pCreateInfo, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkFence*                                    pFence); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkDestroyFence( | 
|  | VkDevice                                    device, | 
|  | VkFence                                     fence, | 
|  | const VkAllocationCallbacks*                pAllocator); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkResetFences( | 
|  | VkDevice                                    device, | 
|  | uint32_t                                    fenceCount, | 
|  | const VkFence*                              pFences); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceStatus( | 
|  | VkDevice                                    device, | 
|  | VkFence                                     fence); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkWaitForFences( | 
|  | VkDevice                                    device, | 
|  | uint32_t                                    fenceCount, | 
|  | const VkFence*                              pFences, | 
|  | VkBool32                                    waitAll, | 
|  | uint64_t                                    timeout); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreateSemaphore( | 
|  | VkDevice                                    device, | 
|  | const VkSemaphoreCreateInfo*                pCreateInfo, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkSemaphore*                                pSemaphore); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkDestroySemaphore( | 
|  | VkDevice                                    device, | 
|  | VkSemaphore                                 semaphore, | 
|  | const VkAllocationCallbacks*                pAllocator); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreateEvent( | 
|  | VkDevice                                    device, | 
|  | const VkEventCreateInfo*                    pCreateInfo, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkEvent*                                    pEvent); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkDestroyEvent( | 
|  | VkDevice                                    device, | 
|  | VkEvent                                     event, | 
|  | const VkAllocationCallbacks*                pAllocator); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetEventStatus( | 
|  | VkDevice                                    device, | 
|  | VkEvent                                     event); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkSetEvent( | 
|  | VkDevice                                    device, | 
|  | VkEvent                                     event); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkResetEvent( | 
|  | VkDevice                                    device, | 
|  | VkEvent                                     event); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreateQueryPool( | 
|  | VkDevice                                    device, | 
|  | const VkQueryPoolCreateInfo*                pCreateInfo, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkQueryPool*                                pQueryPool); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkDestroyQueryPool( | 
|  | VkDevice                                    device, | 
|  | VkQueryPool                                 queryPool, | 
|  | const VkAllocationCallbacks*                pAllocator); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetQueryPoolResults( | 
|  | VkDevice                                    device, | 
|  | VkQueryPool                                 queryPool, | 
|  | uint32_t                                    firstQuery, | 
|  | uint32_t                                    queryCount, | 
|  | size_t                                      dataSize, | 
|  | void*                                       pData, | 
|  | VkDeviceSize                                stride, | 
|  | VkQueryResultFlags                          flags); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreateBuffer( | 
|  | VkDevice                                    device, | 
|  | const VkBufferCreateInfo*                   pCreateInfo, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkBuffer*                                   pBuffer); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkDestroyBuffer( | 
|  | VkDevice                                    device, | 
|  | VkBuffer                                    buffer, | 
|  | const VkAllocationCallbacks*                pAllocator); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreateBufferView( | 
|  | VkDevice                                    device, | 
|  | const VkBufferViewCreateInfo*               pCreateInfo, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkBufferView*                               pView); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkDestroyBufferView( | 
|  | VkDevice                                    device, | 
|  | VkBufferView                                bufferView, | 
|  | const VkAllocationCallbacks*                pAllocator); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreateImage( | 
|  | VkDevice                                    device, | 
|  | const VkImageCreateInfo*                    pCreateInfo, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkImage*                                    pImage); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkDestroyImage( | 
|  | VkDevice                                    device, | 
|  | VkImage                                     image, | 
|  | const VkAllocationCallbacks*                pAllocator); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout( | 
|  | VkDevice                                    device, | 
|  | VkImage                                     image, | 
|  | const VkImageSubresource*                   pSubresource, | 
|  | VkSubresourceLayout*                        pLayout); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreateImageView( | 
|  | VkDevice                                    device, | 
|  | const VkImageViewCreateInfo*                pCreateInfo, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkImageView*                                pView); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkDestroyImageView( | 
|  | VkDevice                                    device, | 
|  | VkImageView                                 imageView, | 
|  | const VkAllocationCallbacks*                pAllocator); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreateShaderModule( | 
|  | VkDevice                                    device, | 
|  | const VkShaderModuleCreateInfo*             pCreateInfo, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkShaderModule*                             pShaderModule); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkDestroyShaderModule( | 
|  | VkDevice                                    device, | 
|  | VkShaderModule                              shaderModule, | 
|  | const VkAllocationCallbacks*                pAllocator); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineCache( | 
|  | VkDevice                                    device, | 
|  | const VkPipelineCacheCreateInfo*            pCreateInfo, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkPipelineCache*                            pPipelineCache); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineCache( | 
|  | VkDevice                                    device, | 
|  | VkPipelineCache                             pipelineCache, | 
|  | const VkAllocationCallbacks*                pAllocator); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineCacheData( | 
|  | VkDevice                                    device, | 
|  | VkPipelineCache                             pipelineCache, | 
|  | size_t*                                     pDataSize, | 
|  | void*                                       pData); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkMergePipelineCaches( | 
|  | VkDevice                                    device, | 
|  | VkPipelineCache                             dstCache, | 
|  | uint32_t                                    srcCacheCount, | 
|  | const VkPipelineCache*                      pSrcCaches); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreateGraphicsPipelines( | 
|  | VkDevice                                    device, | 
|  | VkPipelineCache                             pipelineCache, | 
|  | uint32_t                                    createInfoCount, | 
|  | const VkGraphicsPipelineCreateInfo*         pCreateInfos, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkPipeline*                                 pPipelines); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreateComputePipelines( | 
|  | VkDevice                                    device, | 
|  | VkPipelineCache                             pipelineCache, | 
|  | uint32_t                                    createInfoCount, | 
|  | const VkComputePipelineCreateInfo*          pCreateInfos, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkPipeline*                                 pPipelines); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkDestroyPipeline( | 
|  | VkDevice                                    device, | 
|  | VkPipeline                                  pipeline, | 
|  | const VkAllocationCallbacks*                pAllocator); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineLayout( | 
|  | VkDevice                                    device, | 
|  | const VkPipelineLayoutCreateInfo*           pCreateInfo, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkPipelineLayout*                           pPipelineLayout); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineLayout( | 
|  | VkDevice                                    device, | 
|  | VkPipelineLayout                            pipelineLayout, | 
|  | const VkAllocationCallbacks*                pAllocator); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreateSampler( | 
|  | VkDevice                                    device, | 
|  | const VkSamplerCreateInfo*                  pCreateInfo, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkSampler*                                  pSampler); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkDestroySampler( | 
|  | VkDevice                                    device, | 
|  | VkSampler                                   sampler, | 
|  | const VkAllocationCallbacks*                pAllocator); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorSetLayout( | 
|  | VkDevice                                    device, | 
|  | const VkDescriptorSetLayoutCreateInfo*      pCreateInfo, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkDescriptorSetLayout*                      pSetLayout); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorSetLayout( | 
|  | VkDevice                                    device, | 
|  | VkDescriptorSetLayout                       descriptorSetLayout, | 
|  | const VkAllocationCallbacks*                pAllocator); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorPool( | 
|  | VkDevice                                    device, | 
|  | const VkDescriptorPoolCreateInfo*           pCreateInfo, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkDescriptorPool*                           pDescriptorPool); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorPool( | 
|  | VkDevice                                    device, | 
|  | VkDescriptorPool                            descriptorPool, | 
|  | const VkAllocationCallbacks*                pAllocator); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkResetDescriptorPool( | 
|  | VkDevice                                    device, | 
|  | VkDescriptorPool                            descriptorPool, | 
|  | VkDescriptorPoolResetFlags                  flags); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkAllocateDescriptorSets( | 
|  | VkDevice                                    device, | 
|  | const VkDescriptorSetAllocateInfo*          pAllocateInfo, | 
|  | VkDescriptorSet*                            pDescriptorSets); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkFreeDescriptorSets( | 
|  | VkDevice                                    device, | 
|  | VkDescriptorPool                            descriptorPool, | 
|  | uint32_t                                    descriptorSetCount, | 
|  | const VkDescriptorSet*                      pDescriptorSets); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSets( | 
|  | VkDevice                                    device, | 
|  | uint32_t                                    descriptorWriteCount, | 
|  | const VkWriteDescriptorSet*                 pDescriptorWrites, | 
|  | uint32_t                                    descriptorCopyCount, | 
|  | const VkCopyDescriptorSet*                  pDescriptorCopies); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreateFramebuffer( | 
|  | VkDevice                                    device, | 
|  | const VkFramebufferCreateInfo*              pCreateInfo, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkFramebuffer*                              pFramebuffer); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkDestroyFramebuffer( | 
|  | VkDevice                                    device, | 
|  | VkFramebuffer                               framebuffer, | 
|  | const VkAllocationCallbacks*                pAllocator); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass( | 
|  | VkDevice                                    device, | 
|  | const VkRenderPassCreateInfo*               pCreateInfo, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkRenderPass*                               pRenderPass); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkDestroyRenderPass( | 
|  | VkDevice                                    device, | 
|  | VkRenderPass                                renderPass, | 
|  | const VkAllocationCallbacks*                pAllocator); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetRenderAreaGranularity( | 
|  | VkDevice                                    device, | 
|  | VkRenderPass                                renderPass, | 
|  | VkExtent2D*                                 pGranularity); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreateCommandPool( | 
|  | VkDevice                                    device, | 
|  | const VkCommandPoolCreateInfo*              pCreateInfo, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkCommandPool*                              pCommandPool); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkDestroyCommandPool( | 
|  | VkDevice                                    device, | 
|  | VkCommandPool                               commandPool, | 
|  | const VkAllocationCallbacks*                pAllocator); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandPool( | 
|  | VkDevice                                    device, | 
|  | VkCommandPool                               commandPool, | 
|  | VkCommandPoolResetFlags                     flags); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkAllocateCommandBuffers( | 
|  | VkDevice                                    device, | 
|  | const VkCommandBufferAllocateInfo*          pAllocateInfo, | 
|  | VkCommandBuffer*                            pCommandBuffers); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkFreeCommandBuffers( | 
|  | VkDevice                                    device, | 
|  | VkCommandPool                               commandPool, | 
|  | uint32_t                                    commandBufferCount, | 
|  | const VkCommandBuffer*                      pCommandBuffers); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkBeginCommandBuffer( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | const VkCommandBufferBeginInfo*             pBeginInfo); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkEndCommandBuffer( | 
|  | VkCommandBuffer                             commandBuffer); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandBuffer( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | VkCommandBufferResetFlags                   flags); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdBindPipeline( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | VkPipelineBindPoint                         pipelineBindPoint, | 
|  | VkPipeline                                  pipeline); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdSetViewport( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | uint32_t                                    firstViewport, | 
|  | uint32_t                                    viewportCount, | 
|  | const VkViewport*                           pViewports); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdSetScissor( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | uint32_t                                    firstScissor, | 
|  | uint32_t                                    scissorCount, | 
|  | const VkRect2D*                             pScissors); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdSetLineWidth( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | float                                       lineWidth); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | float                                       depthBiasConstantFactor, | 
|  | float                                       depthBiasClamp, | 
|  | float                                       depthBiasSlopeFactor); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdSetBlendConstants( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | const float                                 blendConstants[4]); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBounds( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | float                                       minDepthBounds, | 
|  | float                                       maxDepthBounds); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilCompareMask( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | VkStencilFaceFlags                          faceMask, | 
|  | uint32_t                                    compareMask); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilWriteMask( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | VkStencilFaceFlags                          faceMask, | 
|  | uint32_t                                    writeMask); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilReference( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | VkStencilFaceFlags                          faceMask, | 
|  | uint32_t                                    reference); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | VkPipelineBindPoint                         pipelineBindPoint, | 
|  | VkPipelineLayout                            layout, | 
|  | uint32_t                                    firstSet, | 
|  | uint32_t                                    descriptorSetCount, | 
|  | const VkDescriptorSet*                      pDescriptorSets, | 
|  | uint32_t                                    dynamicOffsetCount, | 
|  | const uint32_t*                             pDynamicOffsets); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | VkBuffer                                    buffer, | 
|  | VkDeviceSize                                offset, | 
|  | VkIndexType                                 indexType); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | uint32_t                                    firstBinding, | 
|  | uint32_t                                    bindingCount, | 
|  | const VkBuffer*                             pBuffers, | 
|  | const VkDeviceSize*                         pOffsets); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdDraw( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | uint32_t                                    vertexCount, | 
|  | uint32_t                                    instanceCount, | 
|  | uint32_t                                    firstVertex, | 
|  | uint32_t                                    firstInstance); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexed( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | uint32_t                                    indexCount, | 
|  | uint32_t                                    instanceCount, | 
|  | uint32_t                                    firstIndex, | 
|  | int32_t                                     vertexOffset, | 
|  | uint32_t                                    firstInstance); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirect( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | VkBuffer                                    buffer, | 
|  | VkDeviceSize                                offset, | 
|  | uint32_t                                    drawCount, | 
|  | uint32_t                                    stride); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirect( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | VkBuffer                                    buffer, | 
|  | VkDeviceSize                                offset, | 
|  | uint32_t                                    drawCount, | 
|  | uint32_t                                    stride); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdDispatch( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | uint32_t                                    groupCountX, | 
|  | uint32_t                                    groupCountY, | 
|  | uint32_t                                    groupCountZ); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdDispatchIndirect( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | VkBuffer                                    buffer, | 
|  | VkDeviceSize                                offset); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | VkBuffer                                    srcBuffer, | 
|  | VkBuffer                                    dstBuffer, | 
|  | uint32_t                                    regionCount, | 
|  | const VkBufferCopy*                         pRegions); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | VkImage                                     srcImage, | 
|  | VkImageLayout                               srcImageLayout, | 
|  | VkImage                                     dstImage, | 
|  | VkImageLayout                               dstImageLayout, | 
|  | uint32_t                                    regionCount, | 
|  | const VkImageCopy*                          pRegions); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | VkImage                                     srcImage, | 
|  | VkImageLayout                               srcImageLayout, | 
|  | VkImage                                     dstImage, | 
|  | VkImageLayout                               dstImageLayout, | 
|  | uint32_t                                    regionCount, | 
|  | const VkImageBlit*                          pRegions, | 
|  | VkFilter                                    filter); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | VkBuffer                                    srcBuffer, | 
|  | VkImage                                     dstImage, | 
|  | VkImageLayout                               dstImageLayout, | 
|  | uint32_t                                    regionCount, | 
|  | const VkBufferImageCopy*                    pRegions); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | VkImage                                     srcImage, | 
|  | VkImageLayout                               srcImageLayout, | 
|  | VkBuffer                                    dstBuffer, | 
|  | uint32_t                                    regionCount, | 
|  | const VkBufferImageCopy*                    pRegions); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdUpdateBuffer( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | VkBuffer                                    dstBuffer, | 
|  | VkDeviceSize                                dstOffset, | 
|  | VkDeviceSize                                dataSize, | 
|  | const void*                                 pData); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdFillBuffer( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | VkBuffer                                    dstBuffer, | 
|  | VkDeviceSize                                dstOffset, | 
|  | VkDeviceSize                                size, | 
|  | uint32_t                                    data); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdClearColorImage( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | VkImage                                     image, | 
|  | VkImageLayout                               imageLayout, | 
|  | const VkClearColorValue*                    pColor, | 
|  | uint32_t                                    rangeCount, | 
|  | const VkImageSubresourceRange*              pRanges); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdClearDepthStencilImage( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | VkImage                                     image, | 
|  | VkImageLayout                               imageLayout, | 
|  | const VkClearDepthStencilValue*             pDepthStencil, | 
|  | uint32_t                                    rangeCount, | 
|  | const VkImageSubresourceRange*              pRanges); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdClearAttachments( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | uint32_t                                    attachmentCount, | 
|  | const VkClearAttachment*                    pAttachments, | 
|  | uint32_t                                    rectCount, | 
|  | const VkClearRect*                          pRects); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | VkImage                                     srcImage, | 
|  | VkImageLayout                               srcImageLayout, | 
|  | VkImage                                     dstImage, | 
|  | VkImageLayout                               dstImageLayout, | 
|  | uint32_t                                    regionCount, | 
|  | const VkImageResolve*                       pRegions); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | VkEvent                                     event, | 
|  | VkPipelineStageFlags                        stageMask); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | VkEvent                                     event, | 
|  | VkPipelineStageFlags                        stageMask); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL 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); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL 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); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdBeginQuery( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | VkQueryPool                                 queryPool, | 
|  | uint32_t                                    query, | 
|  | VkQueryControlFlags                         flags); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdEndQuery( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | VkQueryPool                                 queryPool, | 
|  | uint32_t                                    query); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdResetQueryPool( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | VkQueryPool                                 queryPool, | 
|  | uint32_t                                    firstQuery, | 
|  | uint32_t                                    queryCount); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | VkPipelineStageFlagBits                     pipelineStage, | 
|  | VkQueryPool                                 queryPool, | 
|  | uint32_t                                    query); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdCopyQueryPoolResults( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | VkQueryPool                                 queryPool, | 
|  | uint32_t                                    firstQuery, | 
|  | uint32_t                                    queryCount, | 
|  | VkBuffer                                    dstBuffer, | 
|  | VkDeviceSize                                dstOffset, | 
|  | VkDeviceSize                                stride, | 
|  | VkQueryResultFlags                          flags); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | VkPipelineLayout                            layout, | 
|  | VkShaderStageFlags                          stageFlags, | 
|  | uint32_t                                    offset, | 
|  | uint32_t                                    size, | 
|  | const void*                                 pValues); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | const VkRenderPassBeginInfo*                pRenderPassBegin, | 
|  | VkSubpassContents                           contents); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | VkSubpassContents                           contents); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass( | 
|  | VkCommandBuffer                             commandBuffer); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdExecuteCommands( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | uint32_t                                    commandBufferCount, | 
|  | const VkCommandBuffer*                      pCommandBuffers); | 
|  | #endif | 
|  |  | 
|  | #define VK_KHR_surface 1 | 
|  | VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR) | 
|  |  | 
|  | #define VK_KHR_SURFACE_SPEC_VERSION       25 | 
|  | #define VK_KHR_SURFACE_EXTENSION_NAME     "VK_KHR_surface" | 
|  | #define VK_COLORSPACE_SRGB_NONLINEAR_KHR  VK_COLOR_SPACE_SRGB_NONLINEAR_KHR | 
|  |  | 
|  |  | 
|  | typedef enum VkColorSpaceKHR { | 
|  | VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0, | 
|  | VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001, | 
|  | VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002, | 
|  | VK_COLOR_SPACE_DCI_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_BEGIN_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR, | 
|  | VK_COLOR_SPACE_END_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR, | 
|  | VK_COLOR_SPACE_RANGE_SIZE_KHR = (VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - VK_COLOR_SPACE_SRGB_NONLINEAR_KHR + 1), | 
|  | VK_COLOR_SPACE_MAX_ENUM_KHR = 0x7FFFFFFF | 
|  | } VkColorSpaceKHR; | 
|  |  | 
|  | 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, | 
|  | VK_PRESENT_MODE_BEGIN_RANGE_KHR = VK_PRESENT_MODE_IMMEDIATE_KHR, | 
|  | VK_PRESENT_MODE_END_RANGE_KHR = VK_PRESENT_MODE_FIFO_RELAXED_KHR, | 
|  | VK_PRESENT_MODE_RANGE_SIZE_KHR = (VK_PRESENT_MODE_FIFO_RELAXED_KHR - VK_PRESENT_MODE_IMMEDIATE_KHR + 1), | 
|  | VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF | 
|  | } VkPresentModeKHR; | 
|  |  | 
|  |  | 
|  | typedef enum VkSurfaceTransformFlagBitsKHR { | 
|  | VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001, | 
|  | VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002, | 
|  | VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004, | 
|  | VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008, | 
|  | VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010, | 
|  | VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020, | 
|  | VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040, | 
|  | VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080, | 
|  | VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100, | 
|  | VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF | 
|  | } VkSurfaceTransformFlagBitsKHR; | 
|  | typedef VkFlags VkSurfaceTransformFlagsKHR; | 
|  |  | 
|  | typedef enum VkCompositeAlphaFlagBitsKHR { | 
|  | VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001, | 
|  | VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002, | 
|  | VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004, | 
|  | VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008, | 
|  | VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF | 
|  | } VkCompositeAlphaFlagBitsKHR; | 
|  | typedef VkFlags VkCompositeAlphaFlagsKHR; | 
|  |  | 
|  | 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; | 
|  |  | 
|  | typedef struct VkSurfaceFormatKHR { | 
|  | VkFormat           format; | 
|  | VkColorSpaceKHR    colorSpace; | 
|  | } VkSurfaceFormatKHR; | 
|  |  | 
|  |  | 
|  | typedef void (VKAPI_PTR *PFN_vkDestroySurfaceKHR)(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR void VKAPI_CALL vkDestroySurfaceKHR( | 
|  | VkInstance                                  instance, | 
|  | VkSurfaceKHR                                surface, | 
|  | const VkAllocationCallbacks*                pAllocator); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceSupportKHR( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | uint32_t                                    queueFamilyIndex, | 
|  | VkSurfaceKHR                                surface, | 
|  | VkBool32*                                   pSupported); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilitiesKHR( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | VkSurfaceKHR                                surface, | 
|  | VkSurfaceCapabilitiesKHR*                   pSurfaceCapabilities); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormatsKHR( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | VkSurfaceKHR                                surface, | 
|  | uint32_t*                                   pSurfaceFormatCount, | 
|  | VkSurfaceFormatKHR*                         pSurfaceFormats); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModesKHR( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | VkSurfaceKHR                                surface, | 
|  | uint32_t*                                   pPresentModeCount, | 
|  | VkPresentModeKHR*                           pPresentModes); | 
|  | #endif | 
|  |  | 
|  | #define VK_KHR_swapchain 1 | 
|  | VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR) | 
|  |  | 
|  | #define VK_KHR_SWAPCHAIN_SPEC_VERSION     68 | 
|  | #define VK_KHR_SWAPCHAIN_EXTENSION_NAME   "VK_KHR_swapchain" | 
|  |  | 
|  |  | 
|  | typedef enum VkSwapchainCreateFlagBitsKHR { | 
|  | VK_SWAPCHAIN_CREATE_BIND_SFR_BIT_KHX = 0x00000001, | 
|  | VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF | 
|  | } VkSwapchainCreateFlagBitsKHR; | 
|  | typedef VkFlags VkSwapchainCreateFlagsKHR; | 
|  |  | 
|  | 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 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 VkResult (VKAPI_PTR *PFN_vkCreateSwapchainKHR)(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain); | 
|  | typedef void (VKAPI_PTR *PFN_vkDestroySwapchainKHR)(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainImagesKHR)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImageKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkQueuePresentKHR)(VkQueue queue, const VkPresentInfoKHR* pPresentInfo); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreateSwapchainKHR( | 
|  | VkDevice                                    device, | 
|  | const VkSwapchainCreateInfoKHR*             pCreateInfo, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkSwapchainKHR*                             pSwapchain); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkDestroySwapchainKHR( | 
|  | VkDevice                                    device, | 
|  | VkSwapchainKHR                              swapchain, | 
|  | const VkAllocationCallbacks*                pAllocator); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainImagesKHR( | 
|  | VkDevice                                    device, | 
|  | VkSwapchainKHR                              swapchain, | 
|  | uint32_t*                                   pSwapchainImageCount, | 
|  | VkImage*                                    pSwapchainImages); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImageKHR( | 
|  | VkDevice                                    device, | 
|  | VkSwapchainKHR                              swapchain, | 
|  | uint64_t                                    timeout, | 
|  | VkSemaphore                                 semaphore, | 
|  | VkFence                                     fence, | 
|  | uint32_t*                                   pImageIndex); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkQueuePresentKHR( | 
|  | VkQueue                                     queue, | 
|  | const VkPresentInfoKHR*                     pPresentInfo); | 
|  | #endif | 
|  |  | 
|  | #define VK_KHR_display 1 | 
|  | VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR) | 
|  | VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR) | 
|  |  | 
|  | #define VK_KHR_DISPLAY_SPEC_VERSION       21 | 
|  | #define VK_KHR_DISPLAY_EXTENSION_NAME     "VK_KHR_display" | 
|  |  | 
|  |  | 
|  | typedef enum VkDisplayPlaneAlphaFlagBitsKHR { | 
|  | VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001, | 
|  | VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002, | 
|  | VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004, | 
|  | VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008, | 
|  | VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF | 
|  | } VkDisplayPlaneAlphaFlagBitsKHR; | 
|  | typedef VkFlags VkDisplayPlaneAlphaFlagsKHR; | 
|  | typedef VkFlags VkDisplayModeCreateFlagsKHR; | 
|  | typedef VkFlags VkDisplaySurfaceCreateFlagsKHR; | 
|  |  | 
|  | typedef struct VkDisplayPropertiesKHR { | 
|  | VkDisplayKHR                  display; | 
|  | const char*                   displayName; | 
|  | VkExtent2D                    physicalDimensions; | 
|  | VkExtent2D                    physicalResolution; | 
|  | VkSurfaceTransformFlagsKHR    supportedTransforms; | 
|  | VkBool32                      planeReorderPossible; | 
|  | VkBool32                      persistentContent; | 
|  | } VkDisplayPropertiesKHR; | 
|  |  | 
|  | typedef struct VkDisplayModeParametersKHR { | 
|  | VkExtent2D    visibleRegion; | 
|  | uint32_t      refreshRate; | 
|  | } VkDisplayModeParametersKHR; | 
|  |  | 
|  | typedef struct VkDisplayModePropertiesKHR { | 
|  | VkDisplayModeKHR              displayMode; | 
|  | VkDisplayModeParametersKHR    parameters; | 
|  | } VkDisplayModePropertiesKHR; | 
|  |  | 
|  | 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 VkDisplayPlanePropertiesKHR { | 
|  | VkDisplayKHR    currentDisplay; | 
|  | uint32_t        currentStackIndex; | 
|  | } VkDisplayPlanePropertiesKHR; | 
|  |  | 
|  | 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 VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayPlaneSurfaceKHR)(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPropertiesKHR( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | uint32_t*                                   pPropertyCount, | 
|  | VkDisplayPropertiesKHR*                     pProperties); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlanePropertiesKHR( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | uint32_t*                                   pPropertyCount, | 
|  | VkDisplayPlanePropertiesKHR*                pProperties); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneSupportedDisplaysKHR( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | uint32_t                                    planeIndex, | 
|  | uint32_t*                                   pDisplayCount, | 
|  | VkDisplayKHR*                               pDisplays); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModePropertiesKHR( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | VkDisplayKHR                                display, | 
|  | uint32_t*                                   pPropertyCount, | 
|  | VkDisplayModePropertiesKHR*                 pProperties); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayModeKHR( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | VkDisplayKHR                                display, | 
|  | const VkDisplayModeCreateInfoKHR*           pCreateInfo, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkDisplayModeKHR*                           pMode); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilitiesKHR( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | VkDisplayModeKHR                            mode, | 
|  | uint32_t                                    planeIndex, | 
|  | VkDisplayPlaneCapabilitiesKHR*              pCapabilities); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayPlaneSurfaceKHR( | 
|  | VkInstance                                  instance, | 
|  | const VkDisplaySurfaceCreateInfoKHR*        pCreateInfo, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkSurfaceKHR*                               pSurface); | 
|  | #endif | 
|  |  | 
|  | #define VK_KHR_display_swapchain 1 | 
|  | #define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 9 | 
|  | #define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain" | 
|  |  | 
|  | typedef struct VkDisplayPresentInfoKHR { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | VkRect2D           srcRect; | 
|  | VkRect2D           dstRect; | 
|  | VkBool32           persistent; | 
|  | } VkDisplayPresentInfoKHR; | 
|  |  | 
|  |  | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreateSharedSwapchainsKHR)(VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreateSharedSwapchainsKHR( | 
|  | VkDevice                                    device, | 
|  | uint32_t                                    swapchainCount, | 
|  | const VkSwapchainCreateInfoKHR*             pCreateInfos, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkSwapchainKHR*                             pSwapchains); | 
|  | #endif | 
|  |  | 
|  | #ifdef VK_USE_PLATFORM_XLIB_KHR | 
|  | #define VK_KHR_xlib_surface 1 | 
|  | #include <X11/Xlib.h> | 
|  |  | 
|  | #define VK_KHR_XLIB_SURFACE_SPEC_VERSION  6 | 
|  | #define VK_KHR_XLIB_SURFACE_EXTENSION_NAME "VK_KHR_xlib_surface" | 
|  |  | 
|  | typedef VkFlags VkXlibSurfaceCreateFlagsKHR; | 
|  |  | 
|  | typedef struct VkXlibSurfaceCreateInfoKHR { | 
|  | VkStructureType                sType; | 
|  | const void*                    pNext; | 
|  | VkXlibSurfaceCreateFlagsKHR    flags; | 
|  | Display*                       dpy; | 
|  | Window                         window; | 
|  | } VkXlibSurfaceCreateInfoKHR; | 
|  |  | 
|  |  | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreateXlibSurfaceKHR)(VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); | 
|  | typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, Display* dpy, VisualID visualID); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreateXlibSurfaceKHR( | 
|  | VkInstance                                  instance, | 
|  | const VkXlibSurfaceCreateInfoKHR*           pCreateInfo, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkSurfaceKHR*                               pSurface); | 
|  |  | 
|  | VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceXlibPresentationSupportKHR( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | uint32_t                                    queueFamilyIndex, | 
|  | Display*                                    dpy, | 
|  | VisualID                                    visualID); | 
|  | #endif | 
|  | #endif /* VK_USE_PLATFORM_XLIB_KHR */ | 
|  |  | 
|  | #ifdef VK_USE_PLATFORM_XCB_KHR | 
|  | #define VK_KHR_xcb_surface 1 | 
|  | #include <xcb/xcb.h> | 
|  |  | 
|  | #define VK_KHR_XCB_SURFACE_SPEC_VERSION   6 | 
|  | #define VK_KHR_XCB_SURFACE_EXTENSION_NAME "VK_KHR_xcb_surface" | 
|  |  | 
|  | typedef VkFlags VkXcbSurfaceCreateFlagsKHR; | 
|  |  | 
|  | typedef struct VkXcbSurfaceCreateInfoKHR { | 
|  | VkStructureType               sType; | 
|  | const void*                   pNext; | 
|  | VkXcbSurfaceCreateFlagsKHR    flags; | 
|  | xcb_connection_t*             connection; | 
|  | xcb_window_t                  window; | 
|  | } VkXcbSurfaceCreateInfoKHR; | 
|  |  | 
|  |  | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreateXcbSurfaceKHR)(VkInstance instance, const VkXcbSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); | 
|  | typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreateXcbSurfaceKHR( | 
|  | VkInstance                                  instance, | 
|  | const VkXcbSurfaceCreateInfoKHR*            pCreateInfo, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkSurfaceKHR*                               pSurface); | 
|  |  | 
|  | VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceXcbPresentationSupportKHR( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | uint32_t                                    queueFamilyIndex, | 
|  | xcb_connection_t*                           connection, | 
|  | xcb_visualid_t                              visual_id); | 
|  | #endif | 
|  | #endif /* VK_USE_PLATFORM_XCB_KHR */ | 
|  |  | 
|  | #ifdef VK_USE_PLATFORM_WAYLAND_KHR | 
|  | #define VK_KHR_wayland_surface 1 | 
|  | #include <wayland-client.h> | 
|  |  | 
|  | #define VK_KHR_WAYLAND_SURFACE_SPEC_VERSION 6 | 
|  | #define VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME "VK_KHR_wayland_surface" | 
|  |  | 
|  | typedef VkFlags VkWaylandSurfaceCreateFlagsKHR; | 
|  |  | 
|  | typedef struct VkWaylandSurfaceCreateInfoKHR { | 
|  | VkStructureType                   sType; | 
|  | const void*                       pNext; | 
|  | VkWaylandSurfaceCreateFlagsKHR    flags; | 
|  | struct wl_display*                display; | 
|  | struct wl_surface*                surface; | 
|  | } VkWaylandSurfaceCreateInfoKHR; | 
|  |  | 
|  |  | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreateWaylandSurfaceKHR)(VkInstance instance, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); | 
|  | typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct wl_display* display); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreateWaylandSurfaceKHR( | 
|  | VkInstance                                  instance, | 
|  | const VkWaylandSurfaceCreateInfoKHR*        pCreateInfo, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkSurfaceKHR*                               pSurface); | 
|  |  | 
|  | VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWaylandPresentationSupportKHR( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | uint32_t                                    queueFamilyIndex, | 
|  | struct wl_display*                          display); | 
|  | #endif | 
|  | #endif /* VK_USE_PLATFORM_WAYLAND_KHR */ | 
|  |  | 
|  | #ifdef VK_USE_PLATFORM_MIR_KHR | 
|  | #define VK_KHR_mir_surface 1 | 
|  | #include <mir_toolkit/client_types.h> | 
|  |  | 
|  | #define VK_KHR_MIR_SURFACE_SPEC_VERSION   4 | 
|  | #define VK_KHR_MIR_SURFACE_EXTENSION_NAME "VK_KHR_mir_surface" | 
|  |  | 
|  | typedef VkFlags VkMirSurfaceCreateFlagsKHR; | 
|  |  | 
|  | typedef struct VkMirSurfaceCreateInfoKHR { | 
|  | VkStructureType               sType; | 
|  | const void*                   pNext; | 
|  | VkMirSurfaceCreateFlagsKHR    flags; | 
|  | MirConnection*                connection; | 
|  | MirSurface*                   mirSurface; | 
|  | } VkMirSurfaceCreateInfoKHR; | 
|  |  | 
|  |  | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreateMirSurfaceKHR)(VkInstance instance, const VkMirSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); | 
|  | typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceMirPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, MirConnection* connection); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreateMirSurfaceKHR( | 
|  | VkInstance                                  instance, | 
|  | const VkMirSurfaceCreateInfoKHR*            pCreateInfo, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkSurfaceKHR*                               pSurface); | 
|  |  | 
|  | VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceMirPresentationSupportKHR( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | uint32_t                                    queueFamilyIndex, | 
|  | MirConnection*                              connection); | 
|  | #endif | 
|  | #endif /* VK_USE_PLATFORM_MIR_KHR */ | 
|  |  | 
|  | #ifdef VK_USE_PLATFORM_ANDROID_KHR | 
|  | #define VK_KHR_android_surface 1 | 
|  | #include <android/native_window.h> | 
|  |  | 
|  | #define VK_KHR_ANDROID_SURFACE_SPEC_VERSION 6 | 
|  | #define VK_KHR_ANDROID_SURFACE_EXTENSION_NAME "VK_KHR_android_surface" | 
|  |  | 
|  | typedef VkFlags VkAndroidSurfaceCreateFlagsKHR; | 
|  |  | 
|  | typedef struct VkAndroidSurfaceCreateInfoKHR { | 
|  | VkStructureType                   sType; | 
|  | const void*                       pNext; | 
|  | VkAndroidSurfaceCreateFlagsKHR    flags; | 
|  | ANativeWindow*                    window; | 
|  | } VkAndroidSurfaceCreateInfoKHR; | 
|  |  | 
|  |  | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreateAndroidSurfaceKHR)(VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreateAndroidSurfaceKHR( | 
|  | VkInstance                                  instance, | 
|  | const VkAndroidSurfaceCreateInfoKHR*        pCreateInfo, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkSurfaceKHR*                               pSurface); | 
|  | #endif | 
|  | #endif /* VK_USE_PLATFORM_ANDROID_KHR */ | 
|  |  | 
|  | #ifdef VK_USE_PLATFORM_WIN32_KHR | 
|  | #define VK_KHR_win32_surface 1 | 
|  | #include <windows.h> | 
|  |  | 
|  | #define VK_KHR_WIN32_SURFACE_SPEC_VERSION 6 | 
|  | #define VK_KHR_WIN32_SURFACE_EXTENSION_NAME "VK_KHR_win32_surface" | 
|  |  | 
|  | typedef VkFlags VkWin32SurfaceCreateFlagsKHR; | 
|  |  | 
|  | typedef struct VkWin32SurfaceCreateInfoKHR { | 
|  | VkStructureType                 sType; | 
|  | const void*                     pNext; | 
|  | VkWin32SurfaceCreateFlagsKHR    flags; | 
|  | HINSTANCE                       hinstance; | 
|  | HWND                            hwnd; | 
|  | } VkWin32SurfaceCreateInfoKHR; | 
|  |  | 
|  |  | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreateWin32SurfaceKHR)(VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); | 
|  | typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreateWin32SurfaceKHR( | 
|  | VkInstance                                  instance, | 
|  | const VkWin32SurfaceCreateInfoKHR*          pCreateInfo, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkSurfaceKHR*                               pSurface); | 
|  |  | 
|  | VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWin32PresentationSupportKHR( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | uint32_t                                    queueFamilyIndex); | 
|  | #endif | 
|  | #endif /* VK_USE_PLATFORM_WIN32_KHR */ | 
|  |  | 
|  | #define VK_KHR_sampler_mirror_clamp_to_edge 1 | 
|  | #define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 1 | 
|  | #define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME "VK_KHR_sampler_mirror_clamp_to_edge" | 
|  |  | 
|  |  | 
|  | #define VK_KHR_get_physical_device_properties2 1 | 
|  | #define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 1 | 
|  | #define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2" | 
|  |  | 
|  | typedef struct VkPhysicalDeviceFeatures2KHR { | 
|  | VkStructureType             sType; | 
|  | void*                       pNext; | 
|  | VkPhysicalDeviceFeatures    features; | 
|  | } VkPhysicalDeviceFeatures2KHR; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceProperties2KHR { | 
|  | VkStructureType               sType; | 
|  | void*                         pNext; | 
|  | VkPhysicalDeviceProperties    properties; | 
|  | } VkPhysicalDeviceProperties2KHR; | 
|  |  | 
|  | typedef struct VkFormatProperties2KHR { | 
|  | VkStructureType       sType; | 
|  | void*                 pNext; | 
|  | VkFormatProperties    formatProperties; | 
|  | } VkFormatProperties2KHR; | 
|  |  | 
|  | typedef struct VkImageFormatProperties2KHR { | 
|  | VkStructureType            sType; | 
|  | void*                      pNext; | 
|  | VkImageFormatProperties    imageFormatProperties; | 
|  | } VkImageFormatProperties2KHR; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceImageFormatInfo2KHR { | 
|  | VkStructureType       sType; | 
|  | const void*           pNext; | 
|  | VkFormat              format; | 
|  | VkImageType           type; | 
|  | VkImageTiling         tiling; | 
|  | VkImageUsageFlags     usage; | 
|  | VkImageCreateFlags    flags; | 
|  | } VkPhysicalDeviceImageFormatInfo2KHR; | 
|  |  | 
|  | typedef struct VkQueueFamilyProperties2KHR { | 
|  | VkStructureType            sType; | 
|  | void*                      pNext; | 
|  | VkQueueFamilyProperties    queueFamilyProperties; | 
|  | } VkQueueFamilyProperties2KHR; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceMemoryProperties2KHR { | 
|  | VkStructureType                     sType; | 
|  | void*                               pNext; | 
|  | VkPhysicalDeviceMemoryProperties    memoryProperties; | 
|  | } VkPhysicalDeviceMemoryProperties2KHR; | 
|  |  | 
|  | typedef struct VkSparseImageFormatProperties2KHR { | 
|  | VkStructureType                  sType; | 
|  | void*                            pNext; | 
|  | VkSparseImageFormatProperties    properties; | 
|  | } VkSparseImageFormatProperties2KHR; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceSparseImageFormatInfo2KHR { | 
|  | VkStructureType          sType; | 
|  | const void*              pNext; | 
|  | VkFormat                 format; | 
|  | VkImageType              type; | 
|  | VkSampleCountFlagBits    samples; | 
|  | VkImageUsageFlags        usage; | 
|  | VkImageTiling            tiling; | 
|  | } VkPhysicalDeviceSparseImageFormatInfo2KHR; | 
|  |  | 
|  |  | 
|  | typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2KHR* pFeatures); | 
|  | typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2KHR* pProperties); | 
|  | typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2KHR)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2KHR* pFormatProperties); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2KHR* pImageFormatInfo, VkImageFormatProperties2KHR* pImageFormatProperties); | 
|  | typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2KHR* pQueueFamilyProperties); | 
|  | typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2KHR* pMemoryProperties); | 
|  | typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2KHR* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2KHR* pProperties); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2KHR( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | VkPhysicalDeviceFeatures2KHR*               pFeatures); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2KHR( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | VkPhysicalDeviceProperties2KHR*             pProperties); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2KHR( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | VkFormat                                    format, | 
|  | VkFormatProperties2KHR*                     pFormatProperties); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2KHR( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | const VkPhysicalDeviceImageFormatInfo2KHR*  pImageFormatInfo, | 
|  | VkImageFormatProperties2KHR*                pImageFormatProperties); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2KHR( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | uint32_t*                                   pQueueFamilyPropertyCount, | 
|  | VkQueueFamilyProperties2KHR*                pQueueFamilyProperties); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2KHR( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | VkPhysicalDeviceMemoryProperties2KHR*       pMemoryProperties); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2KHR( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | const VkPhysicalDeviceSparseImageFormatInfo2KHR* pFormatInfo, | 
|  | uint32_t*                                   pPropertyCount, | 
|  | VkSparseImageFormatProperties2KHR*          pProperties); | 
|  | #endif | 
|  |  | 
|  | #define VK_KHR_shader_draw_parameters 1 | 
|  | #define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1 | 
|  | #define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters" | 
|  |  | 
|  |  | 
|  | #define VK_KHR_maintenance1 1 | 
|  | #define VK_KHR_MAINTENANCE1_SPEC_VERSION  1 | 
|  | #define VK_KHR_MAINTENANCE1_EXTENSION_NAME "VK_KHR_maintenance1" | 
|  |  | 
|  | typedef VkFlags VkCommandPoolTrimFlagsKHR; | 
|  |  | 
|  | typedef void (VKAPI_PTR *PFN_vkTrimCommandPoolKHR)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlagsKHR flags); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR void VKAPI_CALL vkTrimCommandPoolKHR( | 
|  | VkDevice                                    device, | 
|  | VkCommandPool                               commandPool, | 
|  | VkCommandPoolTrimFlagsKHR                   flags); | 
|  | #endif | 
|  |  | 
|  | #define VK_KHR_external_memory_capabilities 1 | 
|  | #define VK_LUID_SIZE_KHR                  8 | 
|  | #define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1 | 
|  | #define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_memory_capabilities" | 
|  |  | 
|  |  | 
|  | typedef enum VkExternalMemoryHandleTypeFlagBitsKHR { | 
|  | VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001, | 
|  | VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002, | 
|  | VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004, | 
|  | VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR = 0x00000008, | 
|  | VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR = 0x00000010, | 
|  | VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR = 0x00000020, | 
|  | VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR = 0x00000040, | 
|  | VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF | 
|  | } VkExternalMemoryHandleTypeFlagBitsKHR; | 
|  | typedef VkFlags VkExternalMemoryHandleTypeFlagsKHR; | 
|  |  | 
|  | typedef enum VkExternalMemoryFeatureFlagBitsKHR { | 
|  | VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR = 0x00000001, | 
|  | VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR = 0x00000002, | 
|  | VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR = 0x00000004, | 
|  | VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF | 
|  | } VkExternalMemoryFeatureFlagBitsKHR; | 
|  | typedef VkFlags VkExternalMemoryFeatureFlagsKHR; | 
|  |  | 
|  | typedef struct VkExternalMemoryPropertiesKHR { | 
|  | VkExternalMemoryFeatureFlagsKHR       externalMemoryFeatures; | 
|  | VkExternalMemoryHandleTypeFlagsKHR    exportFromImportedHandleTypes; | 
|  | VkExternalMemoryHandleTypeFlagsKHR    compatibleHandleTypes; | 
|  | } VkExternalMemoryPropertiesKHR; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceExternalImageFormatInfoKHR { | 
|  | VkStructureType                          sType; | 
|  | const void*                              pNext; | 
|  | VkExternalMemoryHandleTypeFlagBitsKHR    handleType; | 
|  | } VkPhysicalDeviceExternalImageFormatInfoKHR; | 
|  |  | 
|  | typedef struct VkExternalImageFormatPropertiesKHR { | 
|  | VkStructureType                  sType; | 
|  | void*                            pNext; | 
|  | VkExternalMemoryPropertiesKHR    externalMemoryProperties; | 
|  | } VkExternalImageFormatPropertiesKHR; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceExternalBufferInfoKHR { | 
|  | VkStructureType                          sType; | 
|  | const void*                              pNext; | 
|  | VkBufferCreateFlags                      flags; | 
|  | VkBufferUsageFlags                       usage; | 
|  | VkExternalMemoryHandleTypeFlagBitsKHR    handleType; | 
|  | } VkPhysicalDeviceExternalBufferInfoKHR; | 
|  |  | 
|  | typedef struct VkExternalBufferPropertiesKHR { | 
|  | VkStructureType                  sType; | 
|  | void*                            pNext; | 
|  | VkExternalMemoryPropertiesKHR    externalMemoryProperties; | 
|  | } VkExternalBufferPropertiesKHR; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceIDPropertiesKHR { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | uint8_t            deviceUUID[VK_UUID_SIZE]; | 
|  | uint8_t            driverUUID[VK_UUID_SIZE]; | 
|  | uint8_t            deviceLUID[VK_LUID_SIZE_KHR]; | 
|  | uint32_t           deviceNodeMask; | 
|  | VkBool32           deviceLUIDValid; | 
|  | } VkPhysicalDeviceIDPropertiesKHR; | 
|  |  | 
|  |  | 
|  | typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfoKHR* pExternalBufferInfo, VkExternalBufferPropertiesKHR* pExternalBufferProperties); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferPropertiesKHR( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | const VkPhysicalDeviceExternalBufferInfoKHR* pExternalBufferInfo, | 
|  | VkExternalBufferPropertiesKHR*              pExternalBufferProperties); | 
|  | #endif | 
|  |  | 
|  | #define VK_KHR_external_memory 1 | 
|  | #define VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION 1 | 
|  | #define VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME "VK_KHR_external_memory" | 
|  | #define VK_QUEUE_FAMILY_EXTERNAL_KHR      (~0U-1) | 
|  |  | 
|  | typedef struct VkExternalMemoryImageCreateInfoKHR { | 
|  | VkStructureType                       sType; | 
|  | const void*                           pNext; | 
|  | VkExternalMemoryHandleTypeFlagsKHR    handleTypes; | 
|  | } VkExternalMemoryImageCreateInfoKHR; | 
|  |  | 
|  | typedef struct VkExternalMemoryBufferCreateInfoKHR { | 
|  | VkStructureType                       sType; | 
|  | const void*                           pNext; | 
|  | VkExternalMemoryHandleTypeFlagsKHR    handleTypes; | 
|  | } VkExternalMemoryBufferCreateInfoKHR; | 
|  |  | 
|  | typedef struct VkExportMemoryAllocateInfoKHR { | 
|  | VkStructureType                       sType; | 
|  | const void*                           pNext; | 
|  | VkExternalMemoryHandleTypeFlagsKHR    handleTypes; | 
|  | } VkExportMemoryAllocateInfoKHR; | 
|  |  | 
|  |  | 
|  |  | 
|  | #ifdef VK_USE_PLATFORM_WIN32_KHR | 
|  | #define VK_KHR_external_memory_win32 1 | 
|  | #define VK_KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1 | 
|  | #define VK_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_KHR_external_memory_win32" | 
|  |  | 
|  | typedef struct VkImportMemoryWin32HandleInfoKHR { | 
|  | VkStructureType                          sType; | 
|  | const void*                              pNext; | 
|  | VkExternalMemoryHandleTypeFlagBitsKHR    handleType; | 
|  | HANDLE                                   handle; | 
|  | LPCWSTR                                  name; | 
|  | } VkImportMemoryWin32HandleInfoKHR; | 
|  |  | 
|  | typedef struct VkExportMemoryWin32HandleInfoKHR { | 
|  | VkStructureType               sType; | 
|  | const void*                   pNext; | 
|  | const SECURITY_ATTRIBUTES*    pAttributes; | 
|  | DWORD                         dwAccess; | 
|  | LPCWSTR                       name; | 
|  | } VkExportMemoryWin32HandleInfoKHR; | 
|  |  | 
|  | typedef struct VkMemoryWin32HandlePropertiesKHR { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | uint32_t           memoryTypeBits; | 
|  | } VkMemoryWin32HandlePropertiesKHR; | 
|  |  | 
|  | typedef struct VkMemoryGetWin32HandleInfoKHR { | 
|  | VkStructureType                          sType; | 
|  | const void*                              pNext; | 
|  | VkDeviceMemory                           memory; | 
|  | VkExternalMemoryHandleTypeFlagBitsKHR    handleType; | 
|  | } VkMemoryGetWin32HandleInfoKHR; | 
|  |  | 
|  |  | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandleKHR)(VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandlePropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBitsKHR handleType, HANDLE handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandleKHR( | 
|  | VkDevice                                    device, | 
|  | const VkMemoryGetWin32HandleInfoKHR*        pGetWin32HandleInfo, | 
|  | HANDLE*                                     pHandle); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandlePropertiesKHR( | 
|  | VkDevice                                    device, | 
|  | VkExternalMemoryHandleTypeFlagBitsKHR       handleType, | 
|  | HANDLE                                      handle, | 
|  | VkMemoryWin32HandlePropertiesKHR*           pMemoryWin32HandleProperties); | 
|  | #endif | 
|  | #endif /* VK_USE_PLATFORM_WIN32_KHR */ | 
|  |  | 
|  | #define VK_KHR_external_memory_fd 1 | 
|  | #define VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION 1 | 
|  | #define VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME "VK_KHR_external_memory_fd" | 
|  |  | 
|  | typedef struct VkImportMemoryFdInfoKHR { | 
|  | VkStructureType                          sType; | 
|  | const void*                              pNext; | 
|  | VkExternalMemoryHandleTypeFlagBitsKHR    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; | 
|  | VkExternalMemoryHandleTypeFlagBitsKHR    handleType; | 
|  | } VkMemoryGetFdInfoKHR; | 
|  |  | 
|  |  | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdKHR)(VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdPropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBitsKHR handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdKHR( | 
|  | VkDevice                                    device, | 
|  | const VkMemoryGetFdInfoKHR*                 pGetFdInfo, | 
|  | int*                                        pFd); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdPropertiesKHR( | 
|  | VkDevice                                    device, | 
|  | VkExternalMemoryHandleTypeFlagBitsKHR       handleType, | 
|  | int                                         fd, | 
|  | VkMemoryFdPropertiesKHR*                    pMemoryFdProperties); | 
|  | #endif | 
|  |  | 
|  | #ifdef VK_USE_PLATFORM_WIN32_KHR | 
|  | #define VK_KHR_win32_keyed_mutex 1 | 
|  | #define VK_KHR_WIN32_KEYED_MUTEX_SPEC_VERSION 1 | 
|  | #define VK_KHR_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_KHR_win32_keyed_mutex" | 
|  |  | 
|  | 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 /* VK_USE_PLATFORM_WIN32_KHR */ | 
|  |  | 
|  | #define VK_KHR_external_semaphore_capabilities 1 | 
|  | #define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION 1 | 
|  | #define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_semaphore_capabilities" | 
|  |  | 
|  |  | 
|  | typedef enum VkExternalSemaphoreHandleTypeFlagBitsKHR { | 
|  | VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001, | 
|  | VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002, | 
|  | VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004, | 
|  | VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR = 0x00000008, | 
|  | VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR = 0x00000010, | 
|  | VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF | 
|  | } VkExternalSemaphoreHandleTypeFlagBitsKHR; | 
|  | typedef VkFlags VkExternalSemaphoreHandleTypeFlagsKHR; | 
|  |  | 
|  | typedef enum VkExternalSemaphoreFeatureFlagBitsKHR { | 
|  | VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR = 0x00000001, | 
|  | VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR = 0x00000002, | 
|  | VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF | 
|  | } VkExternalSemaphoreFeatureFlagBitsKHR; | 
|  | typedef VkFlags VkExternalSemaphoreFeatureFlagsKHR; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceExternalSemaphoreInfoKHR { | 
|  | VkStructureType                             sType; | 
|  | const void*                                 pNext; | 
|  | VkExternalSemaphoreHandleTypeFlagBitsKHR    handleType; | 
|  | } VkPhysicalDeviceExternalSemaphoreInfoKHR; | 
|  |  | 
|  | typedef struct VkExternalSemaphorePropertiesKHR { | 
|  | VkStructureType                          sType; | 
|  | void*                                    pNext; | 
|  | VkExternalSemaphoreHandleTypeFlagsKHR    exportFromImportedHandleTypes; | 
|  | VkExternalSemaphoreHandleTypeFlagsKHR    compatibleHandleTypes; | 
|  | VkExternalSemaphoreFeatureFlagsKHR       externalSemaphoreFeatures; | 
|  | } VkExternalSemaphorePropertiesKHR; | 
|  |  | 
|  |  | 
|  | typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfoKHR* pExternalSemaphoreInfo, VkExternalSemaphorePropertiesKHR* pExternalSemaphoreProperties); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | const VkPhysicalDeviceExternalSemaphoreInfoKHR* pExternalSemaphoreInfo, | 
|  | VkExternalSemaphorePropertiesKHR*           pExternalSemaphoreProperties); | 
|  | #endif | 
|  |  | 
|  | #define VK_KHR_external_semaphore 1 | 
|  | #define VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION 1 | 
|  | #define VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_KHR_external_semaphore" | 
|  |  | 
|  |  | 
|  | typedef enum VkSemaphoreImportFlagBitsKHR { | 
|  | VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR = 0x00000001, | 
|  | VK_SEMAPHORE_IMPORT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF | 
|  | } VkSemaphoreImportFlagBitsKHR; | 
|  | typedef VkFlags VkSemaphoreImportFlagsKHR; | 
|  |  | 
|  | typedef struct VkExportSemaphoreCreateInfoKHR { | 
|  | VkStructureType                          sType; | 
|  | const void*                              pNext; | 
|  | VkExternalSemaphoreHandleTypeFlagsKHR    handleTypes; | 
|  | } VkExportSemaphoreCreateInfoKHR; | 
|  |  | 
|  |  | 
|  |  | 
|  | #ifdef VK_USE_PLATFORM_WIN32_KHR | 
|  | #define VK_KHR_external_semaphore_win32 1 | 
|  | #define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION 1 | 
|  | #define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME "VK_KHR_external_semaphore_win32" | 
|  |  | 
|  | typedef struct VkImportSemaphoreWin32HandleInfoKHR { | 
|  | VkStructureType                             sType; | 
|  | const void*                                 pNext; | 
|  | VkSemaphore                                 semaphore; | 
|  | VkSemaphoreImportFlagsKHR                   flags; | 
|  | VkExternalSemaphoreHandleTypeFlagBitsKHR    handleType; | 
|  | HANDLE                                      handle; | 
|  | LPCWSTR                                     name; | 
|  | } VkImportSemaphoreWin32HandleInfoKHR; | 
|  |  | 
|  | typedef struct VkExportSemaphoreWin32HandleInfoKHR { | 
|  | VkStructureType               sType; | 
|  | const void*                   pNext; | 
|  | const SECURITY_ATTRIBUTES*    pAttributes; | 
|  | DWORD                         dwAccess; | 
|  | LPCWSTR                       name; | 
|  | } VkExportSemaphoreWin32HandleInfoKHR; | 
|  |  | 
|  | typedef struct VkD3D12FenceSubmitInfoKHR { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | uint32_t           waitSemaphoreValuesCount; | 
|  | const uint64_t*    pWaitSemaphoreValues; | 
|  | uint32_t           signalSemaphoreValuesCount; | 
|  | const uint64_t*    pSignalSemaphoreValues; | 
|  | } VkD3D12FenceSubmitInfoKHR; | 
|  |  | 
|  | typedef struct VkSemaphoreGetWin32HandleInfoKHR { | 
|  | VkStructureType                             sType; | 
|  | const void*                                 pNext; | 
|  | VkSemaphore                                 semaphore; | 
|  | VkExternalSemaphoreHandleTypeFlagBitsKHR    handleType; | 
|  | } VkSemaphoreGetWin32HandleInfoKHR; | 
|  |  | 
|  |  | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreWin32HandleKHR)(VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreWin32HandleKHR)(VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreWin32HandleKHR( | 
|  | VkDevice                                    device, | 
|  | const VkImportSemaphoreWin32HandleInfoKHR*  pImportSemaphoreWin32HandleInfo); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreWin32HandleKHR( | 
|  | VkDevice                                    device, | 
|  | const VkSemaphoreGetWin32HandleInfoKHR*     pGetWin32HandleInfo, | 
|  | HANDLE*                                     pHandle); | 
|  | #endif | 
|  | #endif /* VK_USE_PLATFORM_WIN32_KHR */ | 
|  |  | 
|  | #define VK_KHR_external_semaphore_fd 1 | 
|  | #define VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION 1 | 
|  | #define VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME "VK_KHR_external_semaphore_fd" | 
|  |  | 
|  | typedef struct VkImportSemaphoreFdInfoKHR { | 
|  | VkStructureType                             sType; | 
|  | const void*                                 pNext; | 
|  | VkSemaphore                                 semaphore; | 
|  | VkSemaphoreImportFlagsKHR                   flags; | 
|  | VkExternalSemaphoreHandleTypeFlagBitsKHR    handleType; | 
|  | int                                         fd; | 
|  | } VkImportSemaphoreFdInfoKHR; | 
|  |  | 
|  | typedef struct VkSemaphoreGetFdInfoKHR { | 
|  | VkStructureType                             sType; | 
|  | const void*                                 pNext; | 
|  | VkSemaphore                                 semaphore; | 
|  | VkExternalSemaphoreHandleTypeFlagBitsKHR    handleType; | 
|  | } VkSemaphoreGetFdInfoKHR; | 
|  |  | 
|  |  | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreFdKHR)(VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreFdKHR)(VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreFdKHR( | 
|  | VkDevice                                    device, | 
|  | const VkImportSemaphoreFdInfoKHR*           pImportSemaphoreFdInfo); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreFdKHR( | 
|  | VkDevice                                    device, | 
|  | const VkSemaphoreGetFdInfoKHR*              pGetFdInfo, | 
|  | int*                                        pFd); | 
|  | #endif | 
|  |  | 
|  | #define VK_KHR_push_descriptor 1 | 
|  | #define VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION 1 | 
|  | #define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor" | 
|  |  | 
|  | typedef struct VkPhysicalDevicePushDescriptorPropertiesKHR { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | uint32_t           maxPushDescriptors; | 
|  | } VkPhysicalDevicePushDescriptorPropertiesKHR; | 
|  |  | 
|  |  | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetKHR)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetKHR( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | VkPipelineBindPoint                         pipelineBindPoint, | 
|  | VkPipelineLayout                            layout, | 
|  | uint32_t                                    set, | 
|  | uint32_t                                    descriptorWriteCount, | 
|  | const VkWriteDescriptorSet*                 pDescriptorWrites); | 
|  | #endif | 
|  |  | 
|  | #define VK_KHR_16bit_storage 1 | 
|  | #define VK_KHR_16BIT_STORAGE_SPEC_VERSION 1 | 
|  | #define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage" | 
|  |  | 
|  | typedef struct VkPhysicalDevice16BitStorageFeaturesKHR { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | VkBool32           storageBuffer16BitAccess; | 
|  | VkBool32           uniformAndStorageBuffer16BitAccess; | 
|  | VkBool32           storagePushConstant16; | 
|  | VkBool32           storageInputOutput16; | 
|  | } VkPhysicalDevice16BitStorageFeaturesKHR; | 
|  |  | 
|  |  | 
|  |  | 
|  | #define VK_KHR_incremental_present 1 | 
|  | #define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 1 | 
|  | #define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present" | 
|  |  | 
|  | typedef struct VkRectLayerKHR { | 
|  | VkOffset2D    offset; | 
|  | VkExtent2D    extent; | 
|  | uint32_t      layer; | 
|  | } VkRectLayerKHR; | 
|  |  | 
|  | typedef struct VkPresentRegionKHR { | 
|  | uint32_t                 rectangleCount; | 
|  | const VkRectLayerKHR*    pRectangles; | 
|  | } VkPresentRegionKHR; | 
|  |  | 
|  | typedef struct VkPresentRegionsKHR { | 
|  | VkStructureType              sType; | 
|  | const void*                  pNext; | 
|  | uint32_t                     swapchainCount; | 
|  | const VkPresentRegionKHR*    pRegions; | 
|  | } VkPresentRegionsKHR; | 
|  |  | 
|  |  | 
|  |  | 
|  | #define VK_KHR_descriptor_update_template 1 | 
|  | VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorUpdateTemplateKHR) | 
|  |  | 
|  | #define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1 | 
|  | #define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME "VK_KHR_descriptor_update_template" | 
|  |  | 
|  |  | 
|  | typedef enum VkDescriptorUpdateTemplateTypeKHR { | 
|  | VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = 0, | 
|  | VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1, | 
|  | VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_BEGIN_RANGE_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR, | 
|  | VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_END_RANGE_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR, | 
|  | VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_RANGE_SIZE_KHR = (VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR - VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR + 1), | 
|  | VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF | 
|  | } VkDescriptorUpdateTemplateTypeKHR; | 
|  |  | 
|  | typedef VkFlags VkDescriptorUpdateTemplateCreateFlagsKHR; | 
|  |  | 
|  | typedef struct VkDescriptorUpdateTemplateEntryKHR { | 
|  | uint32_t            dstBinding; | 
|  | uint32_t            dstArrayElement; | 
|  | uint32_t            descriptorCount; | 
|  | VkDescriptorType    descriptorType; | 
|  | size_t              offset; | 
|  | size_t              stride; | 
|  | } VkDescriptorUpdateTemplateEntryKHR; | 
|  |  | 
|  | typedef struct VkDescriptorUpdateTemplateCreateInfoKHR { | 
|  | VkStructureType                              sType; | 
|  | void*                                        pNext; | 
|  | VkDescriptorUpdateTemplateCreateFlagsKHR     flags; | 
|  | uint32_t                                     descriptorUpdateEntryCount; | 
|  | const VkDescriptorUpdateTemplateEntryKHR*    pDescriptorUpdateEntries; | 
|  | VkDescriptorUpdateTemplateTypeKHR            templateType; | 
|  | VkDescriptorSetLayout                        descriptorSetLayout; | 
|  | VkPipelineBindPoint                          pipelineBindPoint; | 
|  | VkPipelineLayout                             pipelineLayout; | 
|  | uint32_t                                     set; | 
|  | } VkDescriptorUpdateTemplateCreateInfoKHR; | 
|  |  | 
|  |  | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplateKHR)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplateKHR* pDescriptorUpdateTemplate); | 
|  | typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplateKHR)(VkDevice device, VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator); | 
|  | typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplateKHR)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate, const void* pData); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplateKHR)(VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplateKHR( | 
|  | VkDevice                                    device, | 
|  | const VkDescriptorUpdateTemplateCreateInfoKHR* pCreateInfo, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkDescriptorUpdateTemplateKHR*              pDescriptorUpdateTemplate); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplateKHR( | 
|  | VkDevice                                    device, | 
|  | VkDescriptorUpdateTemplateKHR               descriptorUpdateTemplate, | 
|  | const VkAllocationCallbacks*                pAllocator); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplateKHR( | 
|  | VkDevice                                    device, | 
|  | VkDescriptorSet                             descriptorSet, | 
|  | VkDescriptorUpdateTemplateKHR               descriptorUpdateTemplate, | 
|  | const void*                                 pData); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplateKHR( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | VkDescriptorUpdateTemplateKHR               descriptorUpdateTemplate, | 
|  | VkPipelineLayout                            layout, | 
|  | uint32_t                                    set, | 
|  | const void*                                 pData); | 
|  | #endif | 
|  |  | 
|  | #define VK_KHR_shared_presentable_image 1 | 
|  | #define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1 | 
|  | #define VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME "VK_KHR_shared_presentable_image" | 
|  |  | 
|  | typedef struct VkSharedPresentSurfaceCapabilitiesKHR { | 
|  | VkStructureType      sType; | 
|  | void*                pNext; | 
|  | VkImageUsageFlags    sharedPresentSupportedUsageFlags; | 
|  | } VkSharedPresentSurfaceCapabilitiesKHR; | 
|  |  | 
|  |  | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainStatusKHR)(VkDevice device, VkSwapchainKHR swapchain); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainStatusKHR( | 
|  | VkDevice                                    device, | 
|  | VkSwapchainKHR                              swapchain); | 
|  | #endif | 
|  |  | 
|  | #define VK_KHR_external_fence_capabilities 1 | 
|  | #define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION 1 | 
|  | #define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_fence_capabilities" | 
|  |  | 
|  |  | 
|  | typedef enum VkExternalFenceHandleTypeFlagBitsKHR { | 
|  | VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001, | 
|  | VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002, | 
|  | VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004, | 
|  | VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR = 0x00000008, | 
|  | VK_EXTERNAL_FENCE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF | 
|  | } VkExternalFenceHandleTypeFlagBitsKHR; | 
|  | typedef VkFlags VkExternalFenceHandleTypeFlagsKHR; | 
|  |  | 
|  | typedef enum VkExternalFenceFeatureFlagBitsKHR { | 
|  | VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR = 0x00000001, | 
|  | VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR = 0x00000002, | 
|  | VK_EXTERNAL_FENCE_FEATURE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF | 
|  | } VkExternalFenceFeatureFlagBitsKHR; | 
|  | typedef VkFlags VkExternalFenceFeatureFlagsKHR; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceExternalFenceInfoKHR { | 
|  | VkStructureType                         sType; | 
|  | const void*                             pNext; | 
|  | VkExternalFenceHandleTypeFlagBitsKHR    handleType; | 
|  | } VkPhysicalDeviceExternalFenceInfoKHR; | 
|  |  | 
|  | typedef struct VkExternalFencePropertiesKHR { | 
|  | VkStructureType                      sType; | 
|  | void*                                pNext; | 
|  | VkExternalFenceHandleTypeFlagsKHR    exportFromImportedHandleTypes; | 
|  | VkExternalFenceHandleTypeFlagsKHR    compatibleHandleTypes; | 
|  | VkExternalFenceFeatureFlagsKHR       externalFenceFeatures; | 
|  | } VkExternalFencePropertiesKHR; | 
|  |  | 
|  |  | 
|  | typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfoKHR* pExternalFenceInfo, VkExternalFencePropertiesKHR* pExternalFenceProperties); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFencePropertiesKHR( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | const VkPhysicalDeviceExternalFenceInfoKHR* pExternalFenceInfo, | 
|  | VkExternalFencePropertiesKHR*               pExternalFenceProperties); | 
|  | #endif | 
|  |  | 
|  | #define VK_KHR_external_fence 1 | 
|  | #define VK_KHR_EXTERNAL_FENCE_SPEC_VERSION 1 | 
|  | #define VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME "VK_KHR_external_fence" | 
|  |  | 
|  |  | 
|  | typedef enum VkFenceImportFlagBitsKHR { | 
|  | VK_FENCE_IMPORT_TEMPORARY_BIT_KHR = 0x00000001, | 
|  | VK_FENCE_IMPORT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF | 
|  | } VkFenceImportFlagBitsKHR; | 
|  | typedef VkFlags VkFenceImportFlagsKHR; | 
|  |  | 
|  | typedef struct VkExportFenceCreateInfoKHR { | 
|  | VkStructureType                      sType; | 
|  | const void*                          pNext; | 
|  | VkExternalFenceHandleTypeFlagsKHR    handleTypes; | 
|  | } VkExportFenceCreateInfoKHR; | 
|  |  | 
|  |  | 
|  |  | 
|  | #ifdef VK_USE_PLATFORM_WIN32_KHR | 
|  | #define VK_KHR_external_fence_win32 1 | 
|  | #define VK_KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION 1 | 
|  | #define VK_KHR_EXTERNAL_FENCE_WIN32_EXTENSION_NAME "VK_KHR_external_fence_win32" | 
|  |  | 
|  | typedef struct VkImportFenceWin32HandleInfoKHR { | 
|  | VkStructureType                         sType; | 
|  | const void*                             pNext; | 
|  | VkFence                                 fence; | 
|  | VkFenceImportFlagsKHR                   flags; | 
|  | VkExternalFenceHandleTypeFlagBitsKHR    handleType; | 
|  | HANDLE                                  handle; | 
|  | LPCWSTR                                 name; | 
|  | } VkImportFenceWin32HandleInfoKHR; | 
|  |  | 
|  | typedef struct VkExportFenceWin32HandleInfoKHR { | 
|  | VkStructureType               sType; | 
|  | const void*                   pNext; | 
|  | const SECURITY_ATTRIBUTES*    pAttributes; | 
|  | DWORD                         dwAccess; | 
|  | LPCWSTR                       name; | 
|  | } VkExportFenceWin32HandleInfoKHR; | 
|  |  | 
|  | typedef struct VkFenceGetWin32HandleInfoKHR { | 
|  | VkStructureType                         sType; | 
|  | const void*                             pNext; | 
|  | VkFence                                 fence; | 
|  | VkExternalFenceHandleTypeFlagBitsKHR    handleType; | 
|  | } VkFenceGetWin32HandleInfoKHR; | 
|  |  | 
|  |  | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkImportFenceWin32HandleKHR)(VkDevice device, const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetFenceWin32HandleKHR)(VkDevice device, const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkImportFenceWin32HandleKHR( | 
|  | VkDevice                                    device, | 
|  | const VkImportFenceWin32HandleInfoKHR*      pImportFenceWin32HandleInfo); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceWin32HandleKHR( | 
|  | VkDevice                                    device, | 
|  | const VkFenceGetWin32HandleInfoKHR*         pGetWin32HandleInfo, | 
|  | HANDLE*                                     pHandle); | 
|  | #endif | 
|  | #endif /* VK_USE_PLATFORM_WIN32_KHR */ | 
|  |  | 
|  | #define VK_KHR_external_fence_fd 1 | 
|  | #define VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION 1 | 
|  | #define VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME "VK_KHR_external_fence_fd" | 
|  |  | 
|  | typedef struct VkImportFenceFdInfoKHR { | 
|  | VkStructureType                         sType; | 
|  | const void*                             pNext; | 
|  | VkFence                                 fence; | 
|  | VkFenceImportFlagsKHR                   flags; | 
|  | VkExternalFenceHandleTypeFlagBitsKHR    handleType; | 
|  | int                                     fd; | 
|  | } VkImportFenceFdInfoKHR; | 
|  |  | 
|  | typedef struct VkFenceGetFdInfoKHR { | 
|  | VkStructureType                         sType; | 
|  | const void*                             pNext; | 
|  | VkFence                                 fence; | 
|  | VkExternalFenceHandleTypeFlagBitsKHR    handleType; | 
|  | } VkFenceGetFdInfoKHR; | 
|  |  | 
|  |  | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkImportFenceFdKHR)(VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetFenceFdKHR)(VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkImportFenceFdKHR( | 
|  | VkDevice                                    device, | 
|  | const VkImportFenceFdInfoKHR*               pImportFenceFdInfo); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceFdKHR( | 
|  | VkDevice                                    device, | 
|  | const VkFenceGetFdInfoKHR*                  pGetFdInfo, | 
|  | int*                                        pFd); | 
|  | #endif | 
|  |  | 
|  | #define VK_KHR_maintenance2 1 | 
|  | #define VK_KHR_MAINTENANCE2_SPEC_VERSION  1 | 
|  | #define VK_KHR_MAINTENANCE2_EXTENSION_NAME "VK_KHR_maintenance2" | 
|  |  | 
|  |  | 
|  | typedef enum VkPointClippingBehaviorKHR { | 
|  | VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = 0, | 
|  | VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = 1, | 
|  | VK_POINT_CLIPPING_BEHAVIOR_BEGIN_RANGE_KHR = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR, | 
|  | VK_POINT_CLIPPING_BEHAVIOR_END_RANGE_KHR = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR, | 
|  | VK_POINT_CLIPPING_BEHAVIOR_RANGE_SIZE_KHR = (VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR - VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR + 1), | 
|  | VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM_KHR = 0x7FFFFFFF | 
|  | } VkPointClippingBehaviorKHR; | 
|  |  | 
|  | typedef enum VkTessellationDomainOriginKHR { | 
|  | VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = 0, | 
|  | VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = 1, | 
|  | VK_TESSELLATION_DOMAIN_ORIGIN_BEGIN_RANGE_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR, | 
|  | VK_TESSELLATION_DOMAIN_ORIGIN_END_RANGE_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR, | 
|  | VK_TESSELLATION_DOMAIN_ORIGIN_RANGE_SIZE_KHR = (VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR - VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR + 1), | 
|  | VK_TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM_KHR = 0x7FFFFFFF | 
|  | } VkTessellationDomainOriginKHR; | 
|  |  | 
|  | typedef struct VkPhysicalDevicePointClippingPropertiesKHR { | 
|  | VkStructureType               sType; | 
|  | void*                         pNext; | 
|  | VkPointClippingBehaviorKHR    pointClippingBehavior; | 
|  | } VkPhysicalDevicePointClippingPropertiesKHR; | 
|  |  | 
|  | typedef struct VkInputAttachmentAspectReferenceKHR { | 
|  | uint32_t              subpass; | 
|  | uint32_t              inputAttachmentIndex; | 
|  | VkImageAspectFlags    aspectMask; | 
|  | } VkInputAttachmentAspectReferenceKHR; | 
|  |  | 
|  | typedef struct VkRenderPassInputAttachmentAspectCreateInfoKHR { | 
|  | VkStructureType                               sType; | 
|  | const void*                                   pNext; | 
|  | uint32_t                                      aspectReferenceCount; | 
|  | const VkInputAttachmentAspectReferenceKHR*    pAspectReferences; | 
|  | } VkRenderPassInputAttachmentAspectCreateInfoKHR; | 
|  |  | 
|  | typedef struct VkImageViewUsageCreateInfoKHR { | 
|  | VkStructureType      sType; | 
|  | const void*          pNext; | 
|  | VkImageUsageFlags    usage; | 
|  | } VkImageViewUsageCreateInfoKHR; | 
|  |  | 
|  | typedef struct VkPipelineTessellationDomainOriginStateCreateInfoKHR { | 
|  | VkStructureType                  sType; | 
|  | const void*                      pNext; | 
|  | VkTessellationDomainOriginKHR    domainOrigin; | 
|  | } VkPipelineTessellationDomainOriginStateCreateInfoKHR; | 
|  |  | 
|  |  | 
|  |  | 
|  | #define VK_KHR_get_surface_capabilities2 1 | 
|  | #define VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION 1 | 
|  | #define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2" | 
|  |  | 
|  | typedef struct VkPhysicalDeviceSurfaceInfo2KHR { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | VkSurfaceKHR       surface; | 
|  | } VkPhysicalDeviceSurfaceInfo2KHR; | 
|  |  | 
|  | typedef struct VkSurfaceCapabilities2KHR { | 
|  | VkStructureType             sType; | 
|  | void*                       pNext; | 
|  | VkSurfaceCapabilitiesKHR    surfaceCapabilities; | 
|  | } VkSurfaceCapabilities2KHR; | 
|  |  | 
|  | typedef struct VkSurfaceFormat2KHR { | 
|  | VkStructureType       sType; | 
|  | void*                 pNext; | 
|  | VkSurfaceFormatKHR    surfaceFormat; | 
|  | } VkSurfaceFormat2KHR; | 
|  |  | 
|  |  | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2KHR( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | const VkPhysicalDeviceSurfaceInfo2KHR*      pSurfaceInfo, | 
|  | VkSurfaceCapabilities2KHR*                  pSurfaceCapabilities); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormats2KHR( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | const VkPhysicalDeviceSurfaceInfo2KHR*      pSurfaceInfo, | 
|  | uint32_t*                                   pSurfaceFormatCount, | 
|  | VkSurfaceFormat2KHR*                        pSurfaceFormats); | 
|  | #endif | 
|  |  | 
|  | #define VK_KHR_variable_pointers 1 | 
|  | #define VK_KHR_VARIABLE_POINTERS_SPEC_VERSION 1 | 
|  | #define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers" | 
|  |  | 
|  | typedef struct VkPhysicalDeviceVariablePointerFeaturesKHR { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | VkBool32           variablePointersStorageBuffer; | 
|  | VkBool32           variablePointers; | 
|  | } VkPhysicalDeviceVariablePointerFeaturesKHR; | 
|  |  | 
|  |  | 
|  |  | 
|  | #define VK_KHR_dedicated_allocation 1 | 
|  | #define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3 | 
|  | #define VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_KHR_dedicated_allocation" | 
|  |  | 
|  | typedef struct VkMemoryDedicatedRequirementsKHR { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | VkBool32           prefersDedicatedAllocation; | 
|  | VkBool32           requiresDedicatedAllocation; | 
|  | } VkMemoryDedicatedRequirementsKHR; | 
|  |  | 
|  | typedef struct VkMemoryDedicatedAllocateInfoKHR { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | VkImage            image; | 
|  | VkBuffer           buffer; | 
|  | } VkMemoryDedicatedAllocateInfoKHR; | 
|  |  | 
|  |  | 
|  |  | 
|  | #define VK_KHR_storage_buffer_storage_class 1 | 
|  | #define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION 1 | 
|  | #define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME "VK_KHR_storage_buffer_storage_class" | 
|  |  | 
|  |  | 
|  | #define VK_KHR_relaxed_block_layout 1 | 
|  | #define VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION 1 | 
|  | #define VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME "VK_KHR_relaxed_block_layout" | 
|  |  | 
|  |  | 
|  | #define VK_KHR_get_memory_requirements2 1 | 
|  | #define VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION 1 | 
|  | #define VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME "VK_KHR_get_memory_requirements2" | 
|  |  | 
|  | typedef struct VkBufferMemoryRequirementsInfo2KHR { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | VkBuffer           buffer; | 
|  | } VkBufferMemoryRequirementsInfo2KHR; | 
|  |  | 
|  | typedef struct VkImageMemoryRequirementsInfo2KHR { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | VkImage            image; | 
|  | } VkImageMemoryRequirementsInfo2KHR; | 
|  |  | 
|  | typedef struct VkImageSparseMemoryRequirementsInfo2KHR { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | VkImage            image; | 
|  | } VkImageSparseMemoryRequirementsInfo2KHR; | 
|  |  | 
|  | typedef struct VkMemoryRequirements2KHR { | 
|  | VkStructureType         sType; | 
|  | void*                   pNext; | 
|  | VkMemoryRequirements    memoryRequirements; | 
|  | } VkMemoryRequirements2KHR; | 
|  |  | 
|  | typedef struct VkSparseImageMemoryRequirements2KHR { | 
|  | VkStructureType                    sType; | 
|  | void*                              pNext; | 
|  | VkSparseImageMemoryRequirements    memoryRequirements; | 
|  | } VkSparseImageMemoryRequirements2KHR; | 
|  |  | 
|  |  | 
|  | typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2KHR)(VkDevice device, const VkImageMemoryRequirementsInfo2KHR* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements); | 
|  | typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2KHR)(VkDevice device, const VkBufferMemoryRequirementsInfo2KHR* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements); | 
|  | typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2KHR)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2KHR* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2KHR* pSparseMemoryRequirements); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2KHR( | 
|  | VkDevice                                    device, | 
|  | const VkImageMemoryRequirementsInfo2KHR*    pInfo, | 
|  | VkMemoryRequirements2KHR*                   pMemoryRequirements); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2KHR( | 
|  | VkDevice                                    device, | 
|  | const VkBufferMemoryRequirementsInfo2KHR*   pInfo, | 
|  | VkMemoryRequirements2KHR*                   pMemoryRequirements); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2KHR( | 
|  | VkDevice                                    device, | 
|  | const VkImageSparseMemoryRequirementsInfo2KHR* pInfo, | 
|  | uint32_t*                                   pSparseMemoryRequirementCount, | 
|  | VkSparseImageMemoryRequirements2KHR*        pSparseMemoryRequirements); | 
|  | #endif | 
|  |  | 
|  | #define VK_KHR_image_format_list 1 | 
|  | #define VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION 1 | 
|  | #define VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME "VK_KHR_image_format_list" | 
|  |  | 
|  | typedef struct VkImageFormatListCreateInfoKHR { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | uint32_t           viewFormatCount; | 
|  | const VkFormat*    pViewFormats; | 
|  | } VkImageFormatListCreateInfoKHR; | 
|  |  | 
|  |  | 
|  |  | 
|  | #define VK_KHR_sampler_ycbcr_conversion 1 | 
|  | VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSamplerYcbcrConversionKHR) | 
|  |  | 
|  | #define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 1 | 
|  | #define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion" | 
|  |  | 
|  |  | 
|  | typedef enum VkSamplerYcbcrModelConversionKHR { | 
|  | VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR = 0, | 
|  | VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR = 1, | 
|  | VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = 2, | 
|  | VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = 3, | 
|  | VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = 4, | 
|  | VK_SAMPLER_YCBCR_MODEL_CONVERSION_BEGIN_RANGE_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR, | 
|  | VK_SAMPLER_YCBCR_MODEL_CONVERSION_END_RANGE_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR, | 
|  | VK_SAMPLER_YCBCR_MODEL_CONVERSION_RANGE_SIZE_KHR = (VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR - VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR + 1), | 
|  | VK_SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM_KHR = 0x7FFFFFFF | 
|  | } VkSamplerYcbcrModelConversionKHR; | 
|  |  | 
|  | typedef enum VkSamplerYcbcrRangeKHR { | 
|  | VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = 0, | 
|  | VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = 1, | 
|  | VK_SAMPLER_YCBCR_RANGE_BEGIN_RANGE_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR, | 
|  | VK_SAMPLER_YCBCR_RANGE_END_RANGE_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR, | 
|  | VK_SAMPLER_YCBCR_RANGE_RANGE_SIZE_KHR = (VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR - VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR + 1), | 
|  | VK_SAMPLER_YCBCR_RANGE_MAX_ENUM_KHR = 0x7FFFFFFF | 
|  | } VkSamplerYcbcrRangeKHR; | 
|  |  | 
|  | typedef enum VkChromaLocationKHR { | 
|  | VK_CHROMA_LOCATION_COSITED_EVEN_KHR = 0, | 
|  | VK_CHROMA_LOCATION_MIDPOINT_KHR = 1, | 
|  | VK_CHROMA_LOCATION_BEGIN_RANGE_KHR = VK_CHROMA_LOCATION_COSITED_EVEN_KHR, | 
|  | VK_CHROMA_LOCATION_END_RANGE_KHR = VK_CHROMA_LOCATION_MIDPOINT_KHR, | 
|  | VK_CHROMA_LOCATION_RANGE_SIZE_KHR = (VK_CHROMA_LOCATION_MIDPOINT_KHR - VK_CHROMA_LOCATION_COSITED_EVEN_KHR + 1), | 
|  | VK_CHROMA_LOCATION_MAX_ENUM_KHR = 0x7FFFFFFF | 
|  | } VkChromaLocationKHR; | 
|  |  | 
|  | typedef struct VkSamplerYcbcrConversionCreateInfoKHR { | 
|  | VkStructureType                     sType; | 
|  | const void*                         pNext; | 
|  | VkFormat                            format; | 
|  | VkSamplerYcbcrModelConversionKHR    ycbcrModel; | 
|  | VkSamplerYcbcrRangeKHR              ycbcrRange; | 
|  | VkComponentMapping                  components; | 
|  | VkChromaLocationKHR                 xChromaOffset; | 
|  | VkChromaLocationKHR                 yChromaOffset; | 
|  | VkFilter                            chromaFilter; | 
|  | VkBool32                            forceExplicitReconstruction; | 
|  | } VkSamplerYcbcrConversionCreateInfoKHR; | 
|  |  | 
|  | typedef struct VkSamplerYcbcrConversionInfoKHR { | 
|  | VkStructureType                sType; | 
|  | const void*                    pNext; | 
|  | VkSamplerYcbcrConversionKHR    conversion; | 
|  | } VkSamplerYcbcrConversionInfoKHR; | 
|  |  | 
|  | typedef struct VkBindImagePlaneMemoryInfoKHR { | 
|  | VkStructureType          sType; | 
|  | const void*              pNext; | 
|  | VkImageAspectFlagBits    planeAspect; | 
|  | } VkBindImagePlaneMemoryInfoKHR; | 
|  |  | 
|  | typedef struct VkImagePlaneMemoryRequirementsInfoKHR { | 
|  | VkStructureType          sType; | 
|  | const void*              pNext; | 
|  | VkImageAspectFlagBits    planeAspect; | 
|  | } VkImagePlaneMemoryRequirementsInfoKHR; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | VkBool32           samplerYcbcrConversion; | 
|  | } VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR; | 
|  |  | 
|  | typedef struct VkSamplerYcbcrConversionImageFormatPropertiesKHR { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | uint32_t           combinedImageSamplerDescriptorCount; | 
|  | } VkSamplerYcbcrConversionImageFormatPropertiesKHR; | 
|  |  | 
|  |  | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversionKHR)(VkDevice device, const VkSamplerYcbcrConversionCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversionKHR* pYcbcrConversion); | 
|  | typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversionKHR)(VkDevice device, VkSamplerYcbcrConversionKHR ycbcrConversion, const VkAllocationCallbacks* pAllocator); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversionKHR( | 
|  | VkDevice                                    device, | 
|  | const VkSamplerYcbcrConversionCreateInfoKHR* pCreateInfo, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkSamplerYcbcrConversionKHR*                pYcbcrConversion); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversionKHR( | 
|  | VkDevice                                    device, | 
|  | VkSamplerYcbcrConversionKHR                 ycbcrConversion, | 
|  | const VkAllocationCallbacks*                pAllocator); | 
|  | #endif | 
|  |  | 
|  | #define VK_KHR_bind_memory2 1 | 
|  | #define VK_KHR_BIND_MEMORY_2_SPEC_VERSION 1 | 
|  | #define VK_KHR_BIND_MEMORY_2_EXTENSION_NAME "VK_KHR_bind_memory2" | 
|  |  | 
|  | typedef struct VkBindBufferMemoryInfoKHR { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | VkBuffer           buffer; | 
|  | VkDeviceMemory     memory; | 
|  | VkDeviceSize       memoryOffset; | 
|  | } VkBindBufferMemoryInfoKHR; | 
|  |  | 
|  | typedef struct VkBindImageMemoryInfoKHR { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | VkImage            image; | 
|  | VkDeviceMemory     memory; | 
|  | VkDeviceSize       memoryOffset; | 
|  | } VkBindImageMemoryInfoKHR; | 
|  |  | 
|  |  | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfoKHR* pBindInfos); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfoKHR* pBindInfos); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2KHR( | 
|  | VkDevice                                    device, | 
|  | uint32_t                                    bindInfoCount, | 
|  | const VkBindBufferMemoryInfoKHR*            pBindInfos); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2KHR( | 
|  | VkDevice                                    device, | 
|  | uint32_t                                    bindInfoCount, | 
|  | const VkBindImageMemoryInfoKHR*             pBindInfos); | 
|  | #endif | 
|  |  | 
|  | #define VK_EXT_debug_report 1 | 
|  | VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT) | 
|  |  | 
|  | #define VK_EXT_DEBUG_REPORT_SPEC_VERSION  9 | 
|  | #define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report" | 
|  | #define VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT | 
|  | #define VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT | 
|  |  | 
|  |  | 
|  | 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_DISPLAY_KHR_EXT = 29, | 
|  | VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30, | 
|  | VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT = 31, | 
|  | VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT = 32, | 
|  | VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = 33, | 
|  | VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000, | 
|  | VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = 1000156000, | 
|  | VK_DEBUG_REPORT_OBJECT_TYPE_BEGIN_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, | 
|  | VK_DEBUG_REPORT_OBJECT_TYPE_END_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT, | 
|  | VK_DEBUG_REPORT_OBJECT_TYPE_RANGE_SIZE_EXT = (VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT - VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT + 1), | 
|  | VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF | 
|  | } VkDebugReportObjectTypeEXT; | 
|  |  | 
|  |  | 
|  | typedef enum VkDebugReportFlagBitsEXT { | 
|  | VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001, | 
|  | VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002, | 
|  | VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004, | 
|  | VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008, | 
|  | VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010, | 
|  | VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF | 
|  | } VkDebugReportFlagBitsEXT; | 
|  | typedef VkFlags VkDebugReportFlagsEXT; | 
|  |  | 
|  | 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 VkDebugReportCallbackCreateInfoEXT { | 
|  | VkStructureType                 sType; | 
|  | const void*                     pNext; | 
|  | VkDebugReportFlagsEXT           flags; | 
|  | PFN_vkDebugReportCallbackEXT    pfnCallback; | 
|  | void*                           pUserData; | 
|  | } VkDebugReportCallbackCreateInfoEXT; | 
|  |  | 
|  |  | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugReportCallbackEXT)(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback); | 
|  | typedef void (VKAPI_PTR *PFN_vkDestroyDebugReportCallbackEXT)(VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator); | 
|  | typedef void (VKAPI_PTR *PFN_vkDebugReportMessageEXT)(VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugReportCallbackEXT( | 
|  | VkInstance                                  instance, | 
|  | const VkDebugReportCallbackCreateInfoEXT*   pCreateInfo, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkDebugReportCallbackEXT*                   pCallback); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkDestroyDebugReportCallbackEXT( | 
|  | VkInstance                                  instance, | 
|  | VkDebugReportCallbackEXT                    callback, | 
|  | const VkAllocationCallbacks*                pAllocator); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkDebugReportMessageEXT( | 
|  | VkInstance                                  instance, | 
|  | VkDebugReportFlagsEXT                       flags, | 
|  | VkDebugReportObjectTypeEXT                  objectType, | 
|  | uint64_t                                    object, | 
|  | size_t                                      location, | 
|  | int32_t                                     messageCode, | 
|  | const char*                                 pLayerPrefix, | 
|  | const char*                                 pMessage); | 
|  | #endif | 
|  |  | 
|  | #define VK_NV_glsl_shader 1 | 
|  | #define VK_NV_GLSL_SHADER_SPEC_VERSION    1 | 
|  | #define VK_NV_GLSL_SHADER_EXTENSION_NAME  "VK_NV_glsl_shader" | 
|  |  | 
|  |  | 
|  | #define VK_EXT_depth_range_unrestricted 1 | 
|  | #define VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION 1 | 
|  | #define VK_EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME "VK_EXT_depth_range_unrestricted" | 
|  |  | 
|  |  | 
|  | #define VK_IMG_filter_cubic 1 | 
|  | #define VK_IMG_FILTER_CUBIC_SPEC_VERSION  1 | 
|  | #define VK_IMG_FILTER_CUBIC_EXTENSION_NAME "VK_IMG_filter_cubic" | 
|  |  | 
|  |  | 
|  | #define VK_AMD_rasterization_order 1 | 
|  | #define VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION 1 | 
|  | #define VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME "VK_AMD_rasterization_order" | 
|  |  | 
|  |  | 
|  | typedef enum VkRasterizationOrderAMD { | 
|  | VK_RASTERIZATION_ORDER_STRICT_AMD = 0, | 
|  | VK_RASTERIZATION_ORDER_RELAXED_AMD = 1, | 
|  | VK_RASTERIZATION_ORDER_BEGIN_RANGE_AMD = VK_RASTERIZATION_ORDER_STRICT_AMD, | 
|  | VK_RASTERIZATION_ORDER_END_RANGE_AMD = VK_RASTERIZATION_ORDER_RELAXED_AMD, | 
|  | VK_RASTERIZATION_ORDER_RANGE_SIZE_AMD = (VK_RASTERIZATION_ORDER_RELAXED_AMD - VK_RASTERIZATION_ORDER_STRICT_AMD + 1), | 
|  | VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 0x7FFFFFFF | 
|  | } VkRasterizationOrderAMD; | 
|  |  | 
|  | typedef struct VkPipelineRasterizationStateRasterizationOrderAMD { | 
|  | VkStructureType            sType; | 
|  | const void*                pNext; | 
|  | VkRasterizationOrderAMD    rasterizationOrder; | 
|  | } VkPipelineRasterizationStateRasterizationOrderAMD; | 
|  |  | 
|  |  | 
|  |  | 
|  | #define VK_AMD_shader_trinary_minmax 1 | 
|  | #define VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION 1 | 
|  | #define VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME "VK_AMD_shader_trinary_minmax" | 
|  |  | 
|  |  | 
|  | #define VK_AMD_shader_explicit_vertex_parameter 1 | 
|  | #define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION 1 | 
|  | #define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME "VK_AMD_shader_explicit_vertex_parameter" | 
|  |  | 
|  |  | 
|  | #define VK_EXT_debug_marker 1 | 
|  | #define VK_EXT_DEBUG_MARKER_SPEC_VERSION  4 | 
|  | #define VK_EXT_DEBUG_MARKER_EXTENSION_NAME "VK_EXT_debug_marker" | 
|  |  | 
|  | 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 VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectTagEXT)(VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectNameEXT)(VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerBeginEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerEndEXT)(VkCommandBuffer commandBuffer); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerInsertEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectTagEXT( | 
|  | VkDevice                                    device, | 
|  | const VkDebugMarkerObjectTagInfoEXT*        pTagInfo); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectNameEXT( | 
|  | VkDevice                                    device, | 
|  | const VkDebugMarkerObjectNameInfoEXT*       pNameInfo); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerBeginEXT( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | const VkDebugMarkerMarkerInfoEXT*           pMarkerInfo); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerEndEXT( | 
|  | VkCommandBuffer                             commandBuffer); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerInsertEXT( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | const VkDebugMarkerMarkerInfoEXT*           pMarkerInfo); | 
|  | #endif | 
|  |  | 
|  | #define VK_AMD_gcn_shader 1 | 
|  | #define VK_AMD_GCN_SHADER_SPEC_VERSION    1 | 
|  | #define VK_AMD_GCN_SHADER_EXTENSION_NAME  "VK_AMD_gcn_shader" | 
|  |  | 
|  |  | 
|  | #define VK_NV_dedicated_allocation 1 | 
|  | #define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1 | 
|  | #define VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_NV_dedicated_allocation" | 
|  |  | 
|  | typedef struct VkDedicatedAllocationImageCreateInfoNV { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | VkBool32           dedicatedAllocation; | 
|  | } VkDedicatedAllocationImageCreateInfoNV; | 
|  |  | 
|  | typedef struct VkDedicatedAllocationBufferCreateInfoNV { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | VkBool32           dedicatedAllocation; | 
|  | } VkDedicatedAllocationBufferCreateInfoNV; | 
|  |  | 
|  | typedef struct VkDedicatedAllocationMemoryAllocateInfoNV { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | VkImage            image; | 
|  | VkBuffer           buffer; | 
|  | } VkDedicatedAllocationMemoryAllocateInfoNV; | 
|  |  | 
|  |  | 
|  |  | 
|  | #define VK_AMD_draw_indirect_count 1 | 
|  | #define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 1 | 
|  | #define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count" | 
|  |  | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountAMD( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | VkBuffer                                    buffer, | 
|  | VkDeviceSize                                offset, | 
|  | VkBuffer                                    countBuffer, | 
|  | VkDeviceSize                                countBufferOffset, | 
|  | uint32_t                                    maxDrawCount, | 
|  | uint32_t                                    stride); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountAMD( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | VkBuffer                                    buffer, | 
|  | VkDeviceSize                                offset, | 
|  | VkBuffer                                    countBuffer, | 
|  | VkDeviceSize                                countBufferOffset, | 
|  | uint32_t                                    maxDrawCount, | 
|  | uint32_t                                    stride); | 
|  | #endif | 
|  |  | 
|  | #define VK_AMD_negative_viewport_height 1 | 
|  | #define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1 | 
|  | #define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height" | 
|  |  | 
|  |  | 
|  | #define VK_AMD_gpu_shader_half_float 1 | 
|  | #define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 1 | 
|  | #define VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME "VK_AMD_gpu_shader_half_float" | 
|  |  | 
|  |  | 
|  | #define VK_AMD_shader_ballot 1 | 
|  | #define VK_AMD_SHADER_BALLOT_SPEC_VERSION 1 | 
|  | #define VK_AMD_SHADER_BALLOT_EXTENSION_NAME "VK_AMD_shader_ballot" | 
|  |  | 
|  |  | 
|  | #define VK_AMD_texture_gather_bias_lod 1 | 
|  | #define VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION 1 | 
|  | #define VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME "VK_AMD_texture_gather_bias_lod" | 
|  |  | 
|  | typedef struct VkTextureLODGatherFormatPropertiesAMD { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | VkBool32           supportsTextureGatherLODBiasAMD; | 
|  | } VkTextureLODGatherFormatPropertiesAMD; | 
|  |  | 
|  |  | 
|  |  | 
|  | #define VK_AMD_shader_info 1 | 
|  | #define VK_AMD_SHADER_INFO_SPEC_VERSION   1 | 
|  | #define VK_AMD_SHADER_INFO_EXTENSION_NAME "VK_AMD_shader_info" | 
|  |  | 
|  |  | 
|  | typedef enum VkShaderInfoTypeAMD { | 
|  | VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0, | 
|  | VK_SHADER_INFO_TYPE_BINARY_AMD = 1, | 
|  | VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2, | 
|  | VK_SHADER_INFO_TYPE_BEGIN_RANGE_AMD = VK_SHADER_INFO_TYPE_STATISTICS_AMD, | 
|  | VK_SHADER_INFO_TYPE_END_RANGE_AMD = VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD, | 
|  | VK_SHADER_INFO_TYPE_RANGE_SIZE_AMD = (VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD - VK_SHADER_INFO_TYPE_STATISTICS_AMD + 1), | 
|  | VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 0x7FFFFFFF | 
|  | } VkShaderInfoTypeAMD; | 
|  |  | 
|  | typedef struct VkShaderResourceUsageAMD { | 
|  | uint32_t    numUsedVgprs; | 
|  | uint32_t    numUsedSgprs; | 
|  | uint32_t    ldsSizePerLocalWorkGroup; | 
|  | size_t      ldsUsageSizeInBytes; | 
|  | size_t      scratchMemUsageInBytes; | 
|  | } VkShaderResourceUsageAMD; | 
|  |  | 
|  | 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 VkResult (VKAPI_PTR *PFN_vkGetShaderInfoAMD)(VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderInfoAMD( | 
|  | VkDevice                                    device, | 
|  | VkPipeline                                  pipeline, | 
|  | VkShaderStageFlagBits                       shaderStage, | 
|  | VkShaderInfoTypeAMD                         infoType, | 
|  | size_t*                                     pInfoSize, | 
|  | void*                                       pInfo); | 
|  | #endif | 
|  |  | 
|  | #define VK_AMD_shader_image_load_store_lod 1 | 
|  | #define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION 1 | 
|  | #define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME "VK_AMD_shader_image_load_store_lod" | 
|  |  | 
|  |  | 
|  | #define VK_KHX_multiview 1 | 
|  | #define VK_KHX_MULTIVIEW_SPEC_VERSION     1 | 
|  | #define VK_KHX_MULTIVIEW_EXTENSION_NAME   "VK_KHX_multiview" | 
|  |  | 
|  | typedef struct VkRenderPassMultiviewCreateInfoKHX { | 
|  | 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; | 
|  | } VkRenderPassMultiviewCreateInfoKHX; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceMultiviewFeaturesKHX { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | VkBool32           multiview; | 
|  | VkBool32           multiviewGeometryShader; | 
|  | VkBool32           multiviewTessellationShader; | 
|  | } VkPhysicalDeviceMultiviewFeaturesKHX; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceMultiviewPropertiesKHX { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | uint32_t           maxMultiviewViewCount; | 
|  | uint32_t           maxMultiviewInstanceIndex; | 
|  | } VkPhysicalDeviceMultiviewPropertiesKHX; | 
|  |  | 
|  |  | 
|  |  | 
|  | #define VK_IMG_format_pvrtc 1 | 
|  | #define VK_IMG_FORMAT_PVRTC_SPEC_VERSION  1 | 
|  | #define VK_IMG_FORMAT_PVRTC_EXTENSION_NAME "VK_IMG_format_pvrtc" | 
|  |  | 
|  |  | 
|  | #define VK_NV_external_memory_capabilities 1 | 
|  | #define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1 | 
|  | #define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities" | 
|  |  | 
|  |  | 
|  | typedef enum VkExternalMemoryHandleTypeFlagBitsNV { | 
|  | VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001, | 
|  | VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002, | 
|  | VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004, | 
|  | VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008, | 
|  | VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF | 
|  | } VkExternalMemoryHandleTypeFlagBitsNV; | 
|  | typedef VkFlags VkExternalMemoryHandleTypeFlagsNV; | 
|  |  | 
|  | typedef enum VkExternalMemoryFeatureFlagBitsNV { | 
|  | VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001, | 
|  | VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002, | 
|  | VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004, | 
|  | VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF | 
|  | } VkExternalMemoryFeatureFlagBitsNV; | 
|  | typedef VkFlags VkExternalMemoryFeatureFlagsNV; | 
|  |  | 
|  | typedef struct VkExternalImageFormatPropertiesNV { | 
|  | VkImageFormatProperties              imageFormatProperties; | 
|  | VkExternalMemoryFeatureFlagsNV       externalMemoryFeatures; | 
|  | VkExternalMemoryHandleTypeFlagsNV    exportFromImportedHandleTypes; | 
|  | VkExternalMemoryHandleTypeFlagsNV    compatibleHandleTypes; | 
|  | } VkExternalImageFormatPropertiesNV; | 
|  |  | 
|  |  | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceExternalImageFormatPropertiesNV( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | VkFormat                                    format, | 
|  | VkImageType                                 type, | 
|  | VkImageTiling                               tiling, | 
|  | VkImageUsageFlags                           usage, | 
|  | VkImageCreateFlags                          flags, | 
|  | VkExternalMemoryHandleTypeFlagsNV           externalHandleType, | 
|  | VkExternalImageFormatPropertiesNV*          pExternalImageFormatProperties); | 
|  | #endif | 
|  |  | 
|  | #define VK_NV_external_memory 1 | 
|  | #define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1 | 
|  | #define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory" | 
|  |  | 
|  | typedef struct VkExternalMemoryImageCreateInfoNV { | 
|  | VkStructureType                      sType; | 
|  | const void*                          pNext; | 
|  | VkExternalMemoryHandleTypeFlagsNV    handleTypes; | 
|  | } VkExternalMemoryImageCreateInfoNV; | 
|  |  | 
|  | typedef struct VkExportMemoryAllocateInfoNV { | 
|  | VkStructureType                      sType; | 
|  | const void*                          pNext; | 
|  | VkExternalMemoryHandleTypeFlagsNV    handleTypes; | 
|  | } VkExportMemoryAllocateInfoNV; | 
|  |  | 
|  |  | 
|  |  | 
|  | #ifdef VK_USE_PLATFORM_WIN32_KHR | 
|  | #define VK_NV_external_memory_win32 1 | 
|  | #define VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1 | 
|  | #define VK_NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_NV_external_memory_win32" | 
|  |  | 
|  | typedef struct VkImportMemoryWin32HandleInfoNV { | 
|  | VkStructureType                      sType; | 
|  | const void*                          pNext; | 
|  | VkExternalMemoryHandleTypeFlagsNV    handleType; | 
|  | HANDLE                               handle; | 
|  | } VkImportMemoryWin32HandleInfoNV; | 
|  |  | 
|  | typedef struct VkExportMemoryWin32HandleInfoNV { | 
|  | VkStructureType               sType; | 
|  | const void*                   pNext; | 
|  | const SECURITY_ATTRIBUTES*    pAttributes; | 
|  | DWORD                         dwAccess; | 
|  | } VkExportMemoryWin32HandleInfoNV; | 
|  |  | 
|  |  | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandleNV)(VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandleNV( | 
|  | VkDevice                                    device, | 
|  | VkDeviceMemory                              memory, | 
|  | VkExternalMemoryHandleTypeFlagsNV           handleType, | 
|  | HANDLE*                                     pHandle); | 
|  | #endif | 
|  | #endif /* VK_USE_PLATFORM_WIN32_KHR */ | 
|  |  | 
|  | #ifdef VK_USE_PLATFORM_WIN32_KHR | 
|  | #define VK_NV_win32_keyed_mutex 1 | 
|  | #define VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION 1 | 
|  | #define VK_NV_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_NV_win32_keyed_mutex" | 
|  |  | 
|  | 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 /* VK_USE_PLATFORM_WIN32_KHR */ | 
|  |  | 
|  | #define VK_KHX_device_group 1 | 
|  | #define VK_KHX_DEVICE_GROUP_SPEC_VERSION  2 | 
|  | #define VK_KHX_DEVICE_GROUP_EXTENSION_NAME "VK_KHX_device_group" | 
|  | #define VK_MAX_DEVICE_GROUP_SIZE_KHX      32 | 
|  |  | 
|  |  | 
|  | typedef enum VkPeerMemoryFeatureFlagBitsKHX { | 
|  | VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHX = 0x00000001, | 
|  | VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHX = 0x00000002, | 
|  | VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHX = 0x00000004, | 
|  | VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHX = 0x00000008, | 
|  | VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_KHX = 0x7FFFFFFF | 
|  | } VkPeerMemoryFeatureFlagBitsKHX; | 
|  | typedef VkFlags VkPeerMemoryFeatureFlagsKHX; | 
|  |  | 
|  | typedef enum VkMemoryAllocateFlagBitsKHX { | 
|  | VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHX = 0x00000001, | 
|  | VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM_KHX = 0x7FFFFFFF | 
|  | } VkMemoryAllocateFlagBitsKHX; | 
|  | typedef VkFlags VkMemoryAllocateFlagsKHX; | 
|  |  | 
|  | typedef enum VkDeviceGroupPresentModeFlagBitsKHX { | 
|  | VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHX = 0x00000001, | 
|  | VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHX = 0x00000002, | 
|  | VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHX = 0x00000004, | 
|  | VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHX = 0x00000008, | 
|  | VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHX = 0x7FFFFFFF | 
|  | } VkDeviceGroupPresentModeFlagBitsKHX; | 
|  | typedef VkFlags VkDeviceGroupPresentModeFlagsKHX; | 
|  |  | 
|  | typedef struct VkMemoryAllocateFlagsInfoKHX { | 
|  | VkStructureType             sType; | 
|  | const void*                 pNext; | 
|  | VkMemoryAllocateFlagsKHX    flags; | 
|  | uint32_t                    deviceMask; | 
|  | } VkMemoryAllocateFlagsInfoKHX; | 
|  |  | 
|  | typedef struct VkDeviceGroupRenderPassBeginInfoKHX { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | uint32_t           deviceMask; | 
|  | uint32_t           deviceRenderAreaCount; | 
|  | const VkRect2D*    pDeviceRenderAreas; | 
|  | } VkDeviceGroupRenderPassBeginInfoKHX; | 
|  |  | 
|  | typedef struct VkDeviceGroupCommandBufferBeginInfoKHX { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | uint32_t           deviceMask; | 
|  | } VkDeviceGroupCommandBufferBeginInfoKHX; | 
|  |  | 
|  | typedef struct VkDeviceGroupSubmitInfoKHX { | 
|  | 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; | 
|  | } VkDeviceGroupSubmitInfoKHX; | 
|  |  | 
|  | typedef struct VkDeviceGroupBindSparseInfoKHX { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | uint32_t           resourceDeviceIndex; | 
|  | uint32_t           memoryDeviceIndex; | 
|  | } VkDeviceGroupBindSparseInfoKHX; | 
|  |  | 
|  | typedef struct VkBindBufferMemoryDeviceGroupInfoKHX { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | uint32_t           deviceIndexCount; | 
|  | const uint32_t*    pDeviceIndices; | 
|  | } VkBindBufferMemoryDeviceGroupInfoKHX; | 
|  |  | 
|  | typedef struct VkBindImageMemoryDeviceGroupInfoKHX { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | uint32_t           deviceIndexCount; | 
|  | const uint32_t*    pDeviceIndices; | 
|  | uint32_t           SFRRectCount; | 
|  | const VkRect2D*    pSFRRects; | 
|  | } VkBindImageMemoryDeviceGroupInfoKHX; | 
|  |  | 
|  | typedef struct VkDeviceGroupPresentCapabilitiesKHX { | 
|  | VkStructureType                     sType; | 
|  | const void*                         pNext; | 
|  | uint32_t                            presentMask[VK_MAX_DEVICE_GROUP_SIZE_KHX]; | 
|  | VkDeviceGroupPresentModeFlagsKHX    modes; | 
|  | } VkDeviceGroupPresentCapabilitiesKHX; | 
|  |  | 
|  | typedef struct VkImageSwapchainCreateInfoKHX { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | VkSwapchainKHR     swapchain; | 
|  | } VkImageSwapchainCreateInfoKHX; | 
|  |  | 
|  | typedef struct VkBindImageMemorySwapchainInfoKHX { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | VkSwapchainKHR     swapchain; | 
|  | uint32_t           imageIndex; | 
|  | } VkBindImageMemorySwapchainInfoKHX; | 
|  |  | 
|  | typedef struct VkAcquireNextImageInfoKHX { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | VkSwapchainKHR     swapchain; | 
|  | uint64_t           timeout; | 
|  | VkSemaphore        semaphore; | 
|  | VkFence            fence; | 
|  | uint32_t           deviceMask; | 
|  | } VkAcquireNextImageInfoKHX; | 
|  |  | 
|  | typedef struct VkDeviceGroupPresentInfoKHX { | 
|  | VkStructureType                        sType; | 
|  | const void*                            pNext; | 
|  | uint32_t                               swapchainCount; | 
|  | const uint32_t*                        pDeviceMasks; | 
|  | VkDeviceGroupPresentModeFlagBitsKHX    mode; | 
|  | } VkDeviceGroupPresentInfoKHX; | 
|  |  | 
|  | typedef struct VkDeviceGroupSwapchainCreateInfoKHX { | 
|  | VkStructureType                     sType; | 
|  | const void*                         pNext; | 
|  | VkDeviceGroupPresentModeFlagsKHX    modes; | 
|  | } VkDeviceGroupSwapchainCreateInfoKHX; | 
|  |  | 
|  |  | 
|  | typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeaturesKHX)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlagsKHX* pPeerMemoryFeatures); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMaskKHX)(VkCommandBuffer commandBuffer, uint32_t deviceMask); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdDispatchBaseKHX)(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupPresentCapabilitiesKHX)(VkDevice device, VkDeviceGroupPresentCapabilitiesKHX* pDeviceGroupPresentCapabilities); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupSurfacePresentModesKHX)(VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHX* pModes); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDevicePresentRectanglesKHX)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImage2KHX)(VkDevice device, const VkAcquireNextImageInfoKHX* pAcquireInfo, uint32_t* pImageIndex); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeaturesKHX( | 
|  | VkDevice                                    device, | 
|  | uint32_t                                    heapIndex, | 
|  | uint32_t                                    localDeviceIndex, | 
|  | uint32_t                                    remoteDeviceIndex, | 
|  | VkPeerMemoryFeatureFlagsKHX*                pPeerMemoryFeatures); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMaskKHX( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | uint32_t                                    deviceMask); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBaseKHX( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | uint32_t                                    baseGroupX, | 
|  | uint32_t                                    baseGroupY, | 
|  | uint32_t                                    baseGroupZ, | 
|  | uint32_t                                    groupCountX, | 
|  | uint32_t                                    groupCountY, | 
|  | uint32_t                                    groupCountZ); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupPresentCapabilitiesKHX( | 
|  | VkDevice                                    device, | 
|  | VkDeviceGroupPresentCapabilitiesKHX*        pDeviceGroupPresentCapabilities); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModesKHX( | 
|  | VkDevice                                    device, | 
|  | VkSurfaceKHR                                surface, | 
|  | VkDeviceGroupPresentModeFlagsKHX*           pModes); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDevicePresentRectanglesKHX( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | VkSurfaceKHR                                surface, | 
|  | uint32_t*                                   pRectCount, | 
|  | VkRect2D*                                   pRects); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImage2KHX( | 
|  | VkDevice                                    device, | 
|  | const VkAcquireNextImageInfoKHX*            pAcquireInfo, | 
|  | uint32_t*                                   pImageIndex); | 
|  | #endif | 
|  |  | 
|  | #define VK_EXT_validation_flags 1 | 
|  | #define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 1 | 
|  | #define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags" | 
|  |  | 
|  |  | 
|  | typedef enum VkValidationCheckEXT { | 
|  | VK_VALIDATION_CHECK_ALL_EXT = 0, | 
|  | VK_VALIDATION_CHECK_SHADERS_EXT = 1, | 
|  | VK_VALIDATION_CHECK_BEGIN_RANGE_EXT = VK_VALIDATION_CHECK_ALL_EXT, | 
|  | VK_VALIDATION_CHECK_END_RANGE_EXT = VK_VALIDATION_CHECK_SHADERS_EXT, | 
|  | VK_VALIDATION_CHECK_RANGE_SIZE_EXT = (VK_VALIDATION_CHECK_SHADERS_EXT - VK_VALIDATION_CHECK_ALL_EXT + 1), | 
|  | VK_VALIDATION_CHECK_MAX_ENUM_EXT = 0x7FFFFFFF | 
|  | } VkValidationCheckEXT; | 
|  |  | 
|  | typedef struct VkValidationFlagsEXT { | 
|  | VkStructureType          sType; | 
|  | const void*              pNext; | 
|  | uint32_t                 disabledValidationCheckCount; | 
|  | VkValidationCheckEXT*    pDisabledValidationChecks; | 
|  | } VkValidationFlagsEXT; | 
|  |  | 
|  |  | 
|  |  | 
|  | #ifdef VK_USE_PLATFORM_VI_NN | 
|  | #define VK_NN_vi_surface 1 | 
|  | #define VK_NN_VI_SURFACE_SPEC_VERSION     1 | 
|  | #define VK_NN_VI_SURFACE_EXTENSION_NAME   "VK_NN_vi_surface" | 
|  |  | 
|  | typedef VkFlags VkViSurfaceCreateFlagsNN; | 
|  |  | 
|  | typedef struct VkViSurfaceCreateInfoNN { | 
|  | VkStructureType             sType; | 
|  | const void*                 pNext; | 
|  | VkViSurfaceCreateFlagsNN    flags; | 
|  | void*                       window; | 
|  | } VkViSurfaceCreateInfoNN; | 
|  |  | 
|  |  | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreateViSurfaceNN)(VkInstance instance, const VkViSurfaceCreateInfoNN* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreateViSurfaceNN( | 
|  | VkInstance                                  instance, | 
|  | const VkViSurfaceCreateInfoNN*              pCreateInfo, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkSurfaceKHR*                               pSurface); | 
|  | #endif | 
|  | #endif /* VK_USE_PLATFORM_VI_NN */ | 
|  |  | 
|  | #define VK_EXT_shader_subgroup_ballot 1 | 
|  | #define VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION 1 | 
|  | #define VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME "VK_EXT_shader_subgroup_ballot" | 
|  |  | 
|  |  | 
|  | #define VK_EXT_shader_subgroup_vote 1 | 
|  | #define VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION 1 | 
|  | #define VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME "VK_EXT_shader_subgroup_vote" | 
|  |  | 
|  |  | 
|  | #define VK_KHX_device_group_creation 1 | 
|  | #define VK_KHX_DEVICE_GROUP_CREATION_SPEC_VERSION 1 | 
|  | #define VK_KHX_DEVICE_GROUP_CREATION_EXTENSION_NAME "VK_KHX_device_group_creation" | 
|  |  | 
|  | typedef struct VkPhysicalDeviceGroupPropertiesKHX { | 
|  | VkStructureType     sType; | 
|  | void*               pNext; | 
|  | uint32_t            physicalDeviceCount; | 
|  | VkPhysicalDevice    physicalDevices[VK_MAX_DEVICE_GROUP_SIZE_KHX]; | 
|  | VkBool32            subsetAllocation; | 
|  | } VkPhysicalDeviceGroupPropertiesKHX; | 
|  |  | 
|  | typedef struct VkDeviceGroupDeviceCreateInfoKHX { | 
|  | VkStructureType            sType; | 
|  | const void*                pNext; | 
|  | uint32_t                   physicalDeviceCount; | 
|  | const VkPhysicalDevice*    pPhysicalDevices; | 
|  | } VkDeviceGroupDeviceCreateInfoKHX; | 
|  |  | 
|  |  | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroupsKHX)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupPropertiesKHX* pPhysicalDeviceGroupProperties); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroupsKHX( | 
|  | VkInstance                                  instance, | 
|  | uint32_t*                                   pPhysicalDeviceGroupCount, | 
|  | VkPhysicalDeviceGroupPropertiesKHX*         pPhysicalDeviceGroupProperties); | 
|  | #endif | 
|  |  | 
|  | #define VK_NVX_device_generated_commands 1 | 
|  | VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkObjectTableNVX) | 
|  | VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNVX) | 
|  |  | 
|  | #define VK_NVX_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3 | 
|  | #define VK_NVX_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NVX_device_generated_commands" | 
|  |  | 
|  |  | 
|  | typedef enum VkIndirectCommandsTokenTypeNVX { | 
|  | VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX = 0, | 
|  | VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX = 1, | 
|  | VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX = 2, | 
|  | VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX = 3, | 
|  | VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX = 4, | 
|  | VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX = 5, | 
|  | VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX = 6, | 
|  | VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX = 7, | 
|  | VK_INDIRECT_COMMANDS_TOKEN_TYPE_BEGIN_RANGE_NVX = VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX, | 
|  | VK_INDIRECT_COMMANDS_TOKEN_TYPE_END_RANGE_NVX = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX, | 
|  | VK_INDIRECT_COMMANDS_TOKEN_TYPE_RANGE_SIZE_NVX = (VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX - VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX + 1), | 
|  | VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NVX = 0x7FFFFFFF | 
|  | } VkIndirectCommandsTokenTypeNVX; | 
|  |  | 
|  | typedef enum VkObjectEntryTypeNVX { | 
|  | VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX = 0, | 
|  | VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX = 1, | 
|  | VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX = 2, | 
|  | VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX = 3, | 
|  | VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX = 4, | 
|  | VK_OBJECT_ENTRY_TYPE_BEGIN_RANGE_NVX = VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX, | 
|  | VK_OBJECT_ENTRY_TYPE_END_RANGE_NVX = VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX, | 
|  | VK_OBJECT_ENTRY_TYPE_RANGE_SIZE_NVX = (VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX - VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX + 1), | 
|  | VK_OBJECT_ENTRY_TYPE_MAX_ENUM_NVX = 0x7FFFFFFF | 
|  | } VkObjectEntryTypeNVX; | 
|  |  | 
|  |  | 
|  | typedef enum VkIndirectCommandsLayoutUsageFlagBitsNVX { | 
|  | VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX = 0x00000001, | 
|  | VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX = 0x00000002, | 
|  | VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX = 0x00000004, | 
|  | VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX = 0x00000008, | 
|  | VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NVX = 0x7FFFFFFF | 
|  | } VkIndirectCommandsLayoutUsageFlagBitsNVX; | 
|  | typedef VkFlags VkIndirectCommandsLayoutUsageFlagsNVX; | 
|  |  | 
|  | typedef enum VkObjectEntryUsageFlagBitsNVX { | 
|  | VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX = 0x00000001, | 
|  | VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX = 0x00000002, | 
|  | VK_OBJECT_ENTRY_USAGE_FLAG_BITS_MAX_ENUM_NVX = 0x7FFFFFFF | 
|  | } VkObjectEntryUsageFlagBitsNVX; | 
|  | typedef VkFlags VkObjectEntryUsageFlagsNVX; | 
|  |  | 
|  | typedef struct VkDeviceGeneratedCommandsFeaturesNVX { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | VkBool32           computeBindingPointSupport; | 
|  | } VkDeviceGeneratedCommandsFeaturesNVX; | 
|  |  | 
|  | typedef struct VkDeviceGeneratedCommandsLimitsNVX { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | uint32_t           maxIndirectCommandsLayoutTokenCount; | 
|  | uint32_t           maxObjectEntryCounts; | 
|  | uint32_t           minSequenceCountBufferOffsetAlignment; | 
|  | uint32_t           minSequenceIndexBufferOffsetAlignment; | 
|  | uint32_t           minCommandsTokenBufferOffsetAlignment; | 
|  | } VkDeviceGeneratedCommandsLimitsNVX; | 
|  |  | 
|  | typedef struct VkIndirectCommandsTokenNVX { | 
|  | VkIndirectCommandsTokenTypeNVX    tokenType; | 
|  | VkBuffer                          buffer; | 
|  | VkDeviceSize                      offset; | 
|  | } VkIndirectCommandsTokenNVX; | 
|  |  | 
|  | typedef struct VkIndirectCommandsLayoutTokenNVX { | 
|  | VkIndirectCommandsTokenTypeNVX    tokenType; | 
|  | uint32_t                          bindingUnit; | 
|  | uint32_t                          dynamicCount; | 
|  | uint32_t                          divisor; | 
|  | } VkIndirectCommandsLayoutTokenNVX; | 
|  |  | 
|  | typedef struct VkIndirectCommandsLayoutCreateInfoNVX { | 
|  | VkStructureType                            sType; | 
|  | const void*                                pNext; | 
|  | VkPipelineBindPoint                        pipelineBindPoint; | 
|  | VkIndirectCommandsLayoutUsageFlagsNVX      flags; | 
|  | uint32_t                                   tokenCount; | 
|  | const VkIndirectCommandsLayoutTokenNVX*    pTokens; | 
|  | } VkIndirectCommandsLayoutCreateInfoNVX; | 
|  |  | 
|  | typedef struct VkCmdProcessCommandsInfoNVX { | 
|  | VkStructureType                      sType; | 
|  | const void*                          pNext; | 
|  | VkObjectTableNVX                     objectTable; | 
|  | VkIndirectCommandsLayoutNVX          indirectCommandsLayout; | 
|  | uint32_t                             indirectCommandsTokenCount; | 
|  | const VkIndirectCommandsTokenNVX*    pIndirectCommandsTokens; | 
|  | uint32_t                             maxSequencesCount; | 
|  | VkCommandBuffer                      targetCommandBuffer; | 
|  | VkBuffer                             sequencesCountBuffer; | 
|  | VkDeviceSize                         sequencesCountOffset; | 
|  | VkBuffer                             sequencesIndexBuffer; | 
|  | VkDeviceSize                         sequencesIndexOffset; | 
|  | } VkCmdProcessCommandsInfoNVX; | 
|  |  | 
|  | typedef struct VkCmdReserveSpaceForCommandsInfoNVX { | 
|  | VkStructureType                sType; | 
|  | const void*                    pNext; | 
|  | VkObjectTableNVX               objectTable; | 
|  | VkIndirectCommandsLayoutNVX    indirectCommandsLayout; | 
|  | uint32_t                       maxSequencesCount; | 
|  | } VkCmdReserveSpaceForCommandsInfoNVX; | 
|  |  | 
|  | typedef struct VkObjectTableCreateInfoNVX { | 
|  | VkStructureType                      sType; | 
|  | const void*                          pNext; | 
|  | uint32_t                             objectCount; | 
|  | const VkObjectEntryTypeNVX*          pObjectEntryTypes; | 
|  | const uint32_t*                      pObjectEntryCounts; | 
|  | const VkObjectEntryUsageFlagsNVX*    pObjectEntryUsageFlags; | 
|  | uint32_t                             maxUniformBuffersPerDescriptor; | 
|  | uint32_t                             maxStorageBuffersPerDescriptor; | 
|  | uint32_t                             maxStorageImagesPerDescriptor; | 
|  | uint32_t                             maxSampledImagesPerDescriptor; | 
|  | uint32_t                             maxPipelineLayouts; | 
|  | } VkObjectTableCreateInfoNVX; | 
|  |  | 
|  | typedef struct VkObjectTableEntryNVX { | 
|  | VkObjectEntryTypeNVX          type; | 
|  | VkObjectEntryUsageFlagsNVX    flags; | 
|  | } VkObjectTableEntryNVX; | 
|  |  | 
|  | typedef struct VkObjectTablePipelineEntryNVX { | 
|  | VkObjectEntryTypeNVX          type; | 
|  | VkObjectEntryUsageFlagsNVX    flags; | 
|  | VkPipeline                    pipeline; | 
|  | } VkObjectTablePipelineEntryNVX; | 
|  |  | 
|  | typedef struct VkObjectTableDescriptorSetEntryNVX { | 
|  | VkObjectEntryTypeNVX          type; | 
|  | VkObjectEntryUsageFlagsNVX    flags; | 
|  | VkPipelineLayout              pipelineLayout; | 
|  | VkDescriptorSet               descriptorSet; | 
|  | } VkObjectTableDescriptorSetEntryNVX; | 
|  |  | 
|  | typedef struct VkObjectTableVertexBufferEntryNVX { | 
|  | VkObjectEntryTypeNVX          type; | 
|  | VkObjectEntryUsageFlagsNVX    flags; | 
|  | VkBuffer                      buffer; | 
|  | } VkObjectTableVertexBufferEntryNVX; | 
|  |  | 
|  | typedef struct VkObjectTableIndexBufferEntryNVX { | 
|  | VkObjectEntryTypeNVX          type; | 
|  | VkObjectEntryUsageFlagsNVX    flags; | 
|  | VkBuffer                      buffer; | 
|  | VkIndexType                   indexType; | 
|  | } VkObjectTableIndexBufferEntryNVX; | 
|  |  | 
|  | typedef struct VkObjectTablePushConstantEntryNVX { | 
|  | VkObjectEntryTypeNVX          type; | 
|  | VkObjectEntryUsageFlagsNVX    flags; | 
|  | VkPipelineLayout              pipelineLayout; | 
|  | VkShaderStageFlags            stageFlags; | 
|  | } VkObjectTablePushConstantEntryNVX; | 
|  |  | 
|  |  | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdProcessCommandsNVX)(VkCommandBuffer commandBuffer, const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdReserveSpaceForCommandsNVX)(VkCommandBuffer commandBuffer, const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutNVX)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout); | 
|  | typedef void (VKAPI_PTR *PFN_vkDestroyIndirectCommandsLayoutNVX)(VkDevice device, VkIndirectCommandsLayoutNVX indirectCommandsLayout, const VkAllocationCallbacks* pAllocator); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreateObjectTableNVX)(VkDevice device, const VkObjectTableCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkObjectTableNVX* pObjectTable); | 
|  | typedef void (VKAPI_PTR *PFN_vkDestroyObjectTableNVX)(VkDevice device, VkObjectTableNVX objectTable, const VkAllocationCallbacks* pAllocator); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkRegisterObjectsNVX)(VkDevice device, VkObjectTableNVX objectTable, uint32_t objectCount, const VkObjectTableEntryNVX* const*    ppObjectTableEntries, const uint32_t* pObjectIndices); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkUnregisterObjectsNVX)(VkDevice device, VkObjectTableNVX objectTable, uint32_t objectCount, const VkObjectEntryTypeNVX* pObjectEntryTypes, const uint32_t* pObjectIndices); | 
|  | typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX)(VkPhysicalDevice physicalDevice, VkDeviceGeneratedCommandsFeaturesNVX* pFeatures, VkDeviceGeneratedCommandsLimitsNVX* pLimits); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdProcessCommandsNVX( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | const VkCmdProcessCommandsInfoNVX*          pProcessCommandsInfo); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdReserveSpaceForCommandsNVX( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | const VkCmdReserveSpaceForCommandsInfoNVX*  pReserveSpaceInfo); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutNVX( | 
|  | VkDevice                                    device, | 
|  | const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkIndirectCommandsLayoutNVX*                pIndirectCommandsLayout); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutNVX( | 
|  | VkDevice                                    device, | 
|  | VkIndirectCommandsLayoutNVX                 indirectCommandsLayout, | 
|  | const VkAllocationCallbacks*                pAllocator); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreateObjectTableNVX( | 
|  | VkDevice                                    device, | 
|  | const VkObjectTableCreateInfoNVX*           pCreateInfo, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkObjectTableNVX*                           pObjectTable); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkDestroyObjectTableNVX( | 
|  | VkDevice                                    device, | 
|  | VkObjectTableNVX                            objectTable, | 
|  | const VkAllocationCallbacks*                pAllocator); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkRegisterObjectsNVX( | 
|  | VkDevice                                    device, | 
|  | VkObjectTableNVX                            objectTable, | 
|  | uint32_t                                    objectCount, | 
|  | const VkObjectTableEntryNVX* const*         ppObjectTableEntries, | 
|  | const uint32_t*                             pObjectIndices); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkUnregisterObjectsNVX( | 
|  | VkDevice                                    device, | 
|  | VkObjectTableNVX                            objectTable, | 
|  | uint32_t                                    objectCount, | 
|  | const VkObjectEntryTypeNVX*                 pObjectEntryTypes, | 
|  | const uint32_t*                             pObjectIndices); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | VkDeviceGeneratedCommandsFeaturesNVX*       pFeatures, | 
|  | VkDeviceGeneratedCommandsLimitsNVX*         pLimits); | 
|  | #endif | 
|  |  | 
|  | #define VK_NV_clip_space_w_scaling 1 | 
|  | #define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1 | 
|  | #define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling" | 
|  |  | 
|  | typedef struct VkViewportWScalingNV { | 
|  | float    xcoeff; | 
|  | float    ycoeff; | 
|  | } VkViewportWScalingNV; | 
|  |  | 
|  | typedef struct VkPipelineViewportWScalingStateCreateInfoNV { | 
|  | VkStructureType                sType; | 
|  | const void*                    pNext; | 
|  | VkBool32                       viewportWScalingEnable; | 
|  | uint32_t                       viewportCount; | 
|  | const VkViewportWScalingNV*    pViewportWScalings; | 
|  | } VkPipelineViewportWScalingStateCreateInfoNV; | 
|  |  | 
|  |  | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWScalingNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWScalingNV( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | uint32_t                                    firstViewport, | 
|  | uint32_t                                    viewportCount, | 
|  | const VkViewportWScalingNV*                 pViewportWScalings); | 
|  | #endif | 
|  |  | 
|  | #define VK_EXT_direct_mode_display 1 | 
|  | #define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1 | 
|  | #define VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME "VK_EXT_direct_mode_display" | 
|  |  | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkReleaseDisplayEXT)(VkPhysicalDevice physicalDevice, VkDisplayKHR display); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkReleaseDisplayEXT( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | VkDisplayKHR                                display); | 
|  | #endif | 
|  |  | 
|  | #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT | 
|  | #define VK_EXT_acquire_xlib_display 1 | 
|  | #include <X11/extensions/Xrandr.h> | 
|  |  | 
|  | #define VK_EXT_ACQUIRE_XLIB_DISPLAY_SPEC_VERSION 1 | 
|  | #define VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME "VK_EXT_acquire_xlib_display" | 
|  |  | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkAcquireXlibDisplayEXT)(VkPhysicalDevice physicalDevice, Display* dpy, VkDisplayKHR display); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetRandROutputDisplayEXT)(VkPhysicalDevice physicalDevice, Display* dpy, RROutput rrOutput, VkDisplayKHR* pDisplay); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkAcquireXlibDisplayEXT( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | Display*                                    dpy, | 
|  | VkDisplayKHR                                display); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetRandROutputDisplayEXT( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | Display*                                    dpy, | 
|  | RROutput                                    rrOutput, | 
|  | VkDisplayKHR*                               pDisplay); | 
|  | #endif | 
|  | #endif /* VK_USE_PLATFORM_XLIB_XRANDR_EXT */ | 
|  |  | 
|  | #define VK_EXT_display_surface_counter 1 | 
|  | #define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1 | 
|  | #define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter" | 
|  | #define VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT | 
|  |  | 
|  |  | 
|  | typedef enum VkSurfaceCounterFlagBitsEXT { | 
|  | VK_SURFACE_COUNTER_VBLANK_EXT = 0x00000001, | 
|  | VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF | 
|  | } VkSurfaceCounterFlagBitsEXT; | 
|  | typedef VkFlags VkSurfaceCounterFlagsEXT; | 
|  |  | 
|  | 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 VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2EXT( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | VkSurfaceKHR                                surface, | 
|  | VkSurfaceCapabilities2EXT*                  pSurfaceCapabilities); | 
|  | #endif | 
|  |  | 
|  | #define VK_EXT_display_control 1 | 
|  | #define VK_EXT_DISPLAY_CONTROL_SPEC_VERSION 1 | 
|  | #define VK_EXT_DISPLAY_CONTROL_EXTENSION_NAME "VK_EXT_display_control" | 
|  |  | 
|  |  | 
|  | typedef enum VkDisplayPowerStateEXT { | 
|  | VK_DISPLAY_POWER_STATE_OFF_EXT = 0, | 
|  | VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1, | 
|  | VK_DISPLAY_POWER_STATE_ON_EXT = 2, | 
|  | VK_DISPLAY_POWER_STATE_BEGIN_RANGE_EXT = VK_DISPLAY_POWER_STATE_OFF_EXT, | 
|  | VK_DISPLAY_POWER_STATE_END_RANGE_EXT = VK_DISPLAY_POWER_STATE_ON_EXT, | 
|  | VK_DISPLAY_POWER_STATE_RANGE_SIZE_EXT = (VK_DISPLAY_POWER_STATE_ON_EXT - VK_DISPLAY_POWER_STATE_OFF_EXT + 1), | 
|  | VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 0x7FFFFFFF | 
|  | } VkDisplayPowerStateEXT; | 
|  |  | 
|  | typedef enum VkDeviceEventTypeEXT { | 
|  | VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0, | 
|  | VK_DEVICE_EVENT_TYPE_BEGIN_RANGE_EXT = VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT, | 
|  | VK_DEVICE_EVENT_TYPE_END_RANGE_EXT = VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT, | 
|  | VK_DEVICE_EVENT_TYPE_RANGE_SIZE_EXT = (VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT - VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT + 1), | 
|  | VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF | 
|  | } VkDeviceEventTypeEXT; | 
|  |  | 
|  | typedef enum VkDisplayEventTypeEXT { | 
|  | VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0, | 
|  | VK_DISPLAY_EVENT_TYPE_BEGIN_RANGE_EXT = VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT, | 
|  | VK_DISPLAY_EVENT_TYPE_END_RANGE_EXT = VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT, | 
|  | VK_DISPLAY_EVENT_TYPE_RANGE_SIZE_EXT = (VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT - VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT + 1), | 
|  | VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF | 
|  | } VkDisplayEventTypeEXT; | 
|  |  | 
|  | 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 VkSwapchainCounterCreateInfoEXT { | 
|  | VkStructureType             sType; | 
|  | const void*                 pNext; | 
|  | VkSurfaceCounterFlagsEXT    surfaceCounters; | 
|  | } VkSwapchainCounterCreateInfoEXT; | 
|  |  | 
|  |  | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkDisplayPowerControlEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkRegisterDeviceEventEXT)(VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkRegisterDisplayEventEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainCounterEXT)(VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkDisplayPowerControlEXT( | 
|  | VkDevice                                    device, | 
|  | VkDisplayKHR                                display, | 
|  | const VkDisplayPowerInfoEXT*                pDisplayPowerInfo); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDeviceEventEXT( | 
|  | VkDevice                                    device, | 
|  | const VkDeviceEventInfoEXT*                 pDeviceEventInfo, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkFence*                                    pFence); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDisplayEventEXT( | 
|  | VkDevice                                    device, | 
|  | VkDisplayKHR                                display, | 
|  | const VkDisplayEventInfoEXT*                pDisplayEventInfo, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkFence*                                    pFence); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainCounterEXT( | 
|  | VkDevice                                    device, | 
|  | VkSwapchainKHR                              swapchain, | 
|  | VkSurfaceCounterFlagBitsEXT                 counter, | 
|  | uint64_t*                                   pCounterValue); | 
|  | #endif | 
|  |  | 
|  | #define VK_GOOGLE_display_timing 1 | 
|  | #define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1 | 
|  | #define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing" | 
|  |  | 
|  | 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 VkPresentTimesInfoGOOGLE { | 
|  | VkStructureType               sType; | 
|  | const void*                   pNext; | 
|  | uint32_t                      swapchainCount; | 
|  | const VkPresentTimeGOOGLE*    pTimes; | 
|  | } VkPresentTimesInfoGOOGLE; | 
|  |  | 
|  |  | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetRefreshCycleDurationGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetPastPresentationTimingGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetRefreshCycleDurationGOOGLE( | 
|  | VkDevice                                    device, | 
|  | VkSwapchainKHR                              swapchain, | 
|  | VkRefreshCycleDurationGOOGLE*               pDisplayTimingProperties); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetPastPresentationTimingGOOGLE( | 
|  | VkDevice                                    device, | 
|  | VkSwapchainKHR                              swapchain, | 
|  | uint32_t*                                   pPresentationTimingCount, | 
|  | VkPastPresentationTimingGOOGLE*             pPresentationTimings); | 
|  | #endif | 
|  |  | 
|  | #define VK_NV_sample_mask_override_coverage 1 | 
|  | #define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION 1 | 
|  | #define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME "VK_NV_sample_mask_override_coverage" | 
|  |  | 
|  |  | 
|  | #define VK_NV_geometry_shader_passthrough 1 | 
|  | #define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION 1 | 
|  | #define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME "VK_NV_geometry_shader_passthrough" | 
|  |  | 
|  |  | 
|  | #define VK_NV_viewport_array2 1 | 
|  | #define VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION 1 | 
|  | #define VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME "VK_NV_viewport_array2" | 
|  |  | 
|  |  | 
|  | #define VK_NVX_multiview_per_view_attributes 1 | 
|  | #define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION 1 | 
|  | #define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes" | 
|  |  | 
|  | typedef struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | VkBool32           perViewPositionAllComponents; | 
|  | } VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX; | 
|  |  | 
|  |  | 
|  |  | 
|  | #define VK_NV_viewport_swizzle 1 | 
|  | #define VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION 1 | 
|  | #define VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME "VK_NV_viewport_swizzle" | 
|  |  | 
|  |  | 
|  | 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, | 
|  | VK_VIEWPORT_COORDINATE_SWIZZLE_BEGIN_RANGE_NV = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV, | 
|  | VK_VIEWPORT_COORDINATE_SWIZZLE_END_RANGE_NV = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV, | 
|  | VK_VIEWPORT_COORDINATE_SWIZZLE_RANGE_SIZE_NV = (VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV + 1), | 
|  | VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 0x7FFFFFFF | 
|  | } VkViewportCoordinateSwizzleNV; | 
|  |  | 
|  | typedef VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV; | 
|  |  | 
|  | typedef struct VkViewportSwizzleNV { | 
|  | VkViewportCoordinateSwizzleNV    x; | 
|  | VkViewportCoordinateSwizzleNV    y; | 
|  | VkViewportCoordinateSwizzleNV    z; | 
|  | VkViewportCoordinateSwizzleNV    w; | 
|  | } VkViewportSwizzleNV; | 
|  |  | 
|  | typedef struct VkPipelineViewportSwizzleStateCreateInfoNV { | 
|  | VkStructureType                                sType; | 
|  | const void*                                    pNext; | 
|  | VkPipelineViewportSwizzleStateCreateFlagsNV    flags; | 
|  | uint32_t                                       viewportCount; | 
|  | const VkViewportSwizzleNV*                     pViewportSwizzles; | 
|  | } VkPipelineViewportSwizzleStateCreateInfoNV; | 
|  |  | 
|  |  | 
|  |  | 
|  | #define VK_EXT_discard_rectangles 1 | 
|  | #define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 1 | 
|  | #define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles" | 
|  |  | 
|  |  | 
|  | typedef enum VkDiscardRectangleModeEXT { | 
|  | VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0, | 
|  | VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1, | 
|  | VK_DISCARD_RECTANGLE_MODE_BEGIN_RANGE_EXT = VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT, | 
|  | VK_DISCARD_RECTANGLE_MODE_END_RANGE_EXT = VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT, | 
|  | VK_DISCARD_RECTANGLE_MODE_RANGE_SIZE_EXT = (VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT - VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT + 1), | 
|  | VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 0x7FFFFFFF | 
|  | } VkDiscardRectangleModeEXT; | 
|  |  | 
|  | typedef VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceDiscardRectanglePropertiesEXT { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | uint32_t           maxDiscardRectangles; | 
|  | } VkPhysicalDeviceDiscardRectanglePropertiesEXT; | 
|  |  | 
|  | typedef struct VkPipelineDiscardRectangleStateCreateInfoEXT { | 
|  | VkStructureType                                  sType; | 
|  | const void*                                      pNext; | 
|  | VkPipelineDiscardRectangleStateCreateFlagsEXT    flags; | 
|  | VkDiscardRectangleModeEXT                        discardRectangleMode; | 
|  | uint32_t                                         discardRectangleCount; | 
|  | const VkRect2D*                                  pDiscardRectangles; | 
|  | } VkPipelineDiscardRectangleStateCreateInfoEXT; | 
|  |  | 
|  |  | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEXT)(VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEXT( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | uint32_t                                    firstDiscardRectangle, | 
|  | uint32_t                                    discardRectangleCount, | 
|  | const VkRect2D*                             pDiscardRectangles); | 
|  | #endif | 
|  |  | 
|  | #define VK_EXT_swapchain_colorspace 1 | 
|  | #define VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION 3 | 
|  | #define VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace" | 
|  |  | 
|  |  | 
|  | #define VK_EXT_hdr_metadata 1 | 
|  | #define VK_EXT_HDR_METADATA_SPEC_VERSION  1 | 
|  | #define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata" | 
|  |  | 
|  | 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 void (VKAPI_PTR *PFN_vkSetHdrMetadataEXT)(VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR void VKAPI_CALL vkSetHdrMetadataEXT( | 
|  | VkDevice                                    device, | 
|  | uint32_t                                    swapchainCount, | 
|  | const VkSwapchainKHR*                       pSwapchains, | 
|  | const VkHdrMetadataEXT*                     pMetadata); | 
|  | #endif | 
|  |  | 
|  | #ifdef VK_USE_PLATFORM_IOS_MVK | 
|  | #define VK_MVK_ios_surface 1 | 
|  | #define VK_MVK_IOS_SURFACE_SPEC_VERSION   2 | 
|  | #define VK_MVK_IOS_SURFACE_EXTENSION_NAME "VK_MVK_ios_surface" | 
|  |  | 
|  | typedef VkFlags VkIOSSurfaceCreateFlagsMVK; | 
|  |  | 
|  | typedef struct VkIOSSurfaceCreateInfoMVK { | 
|  | VkStructureType               sType; | 
|  | const void*                   pNext; | 
|  | VkIOSSurfaceCreateFlagsMVK    flags; | 
|  | const void*                   pView; | 
|  | } VkIOSSurfaceCreateInfoMVK; | 
|  |  | 
|  |  | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreateIOSSurfaceMVK)(VkInstance instance, const VkIOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreateIOSSurfaceMVK( | 
|  | VkInstance                                  instance, | 
|  | const VkIOSSurfaceCreateInfoMVK*            pCreateInfo, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkSurfaceKHR*                               pSurface); | 
|  | #endif | 
|  | #endif /* VK_USE_PLATFORM_IOS_MVK */ | 
|  |  | 
|  | #ifdef VK_USE_PLATFORM_MACOS_MVK | 
|  | #define VK_MVK_macos_surface 1 | 
|  | #define VK_MVK_MACOS_SURFACE_SPEC_VERSION 2 | 
|  | #define VK_MVK_MACOS_SURFACE_EXTENSION_NAME "VK_MVK_macos_surface" | 
|  |  | 
|  | typedef VkFlags VkMacOSSurfaceCreateFlagsMVK; | 
|  |  | 
|  | typedef struct VkMacOSSurfaceCreateInfoMVK { | 
|  | VkStructureType                 sType; | 
|  | const void*                     pNext; | 
|  | VkMacOSSurfaceCreateFlagsMVK    flags; | 
|  | const void*                     pView; | 
|  | } VkMacOSSurfaceCreateInfoMVK; | 
|  |  | 
|  |  | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreateMacOSSurfaceMVK)(VkInstance instance, const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreateMacOSSurfaceMVK( | 
|  | VkInstance                                  instance, | 
|  | const VkMacOSSurfaceCreateInfoMVK*          pCreateInfo, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkSurfaceKHR*                               pSurface); | 
|  | #endif | 
|  | #endif /* VK_USE_PLATFORM_MACOS_MVK */ | 
|  |  | 
|  | #define VK_EXT_sampler_filter_minmax 1 | 
|  | #define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 1 | 
|  | #define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax" | 
|  |  | 
|  |  | 
|  | typedef enum VkSamplerReductionModeEXT { | 
|  | VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = 0, | 
|  | VK_SAMPLER_REDUCTION_MODE_MIN_EXT = 1, | 
|  | VK_SAMPLER_REDUCTION_MODE_MAX_EXT = 2, | 
|  | VK_SAMPLER_REDUCTION_MODE_BEGIN_RANGE_EXT = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT, | 
|  | VK_SAMPLER_REDUCTION_MODE_END_RANGE_EXT = VK_SAMPLER_REDUCTION_MODE_MAX_EXT, | 
|  | VK_SAMPLER_REDUCTION_MODE_RANGE_SIZE_EXT = (VK_SAMPLER_REDUCTION_MODE_MAX_EXT - VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT + 1), | 
|  | VK_SAMPLER_REDUCTION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF | 
|  | } VkSamplerReductionModeEXT; | 
|  |  | 
|  | typedef struct VkSamplerReductionModeCreateInfoEXT { | 
|  | VkStructureType              sType; | 
|  | const void*                  pNext; | 
|  | VkSamplerReductionModeEXT    reductionMode; | 
|  | } VkSamplerReductionModeCreateInfoEXT; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | VkBool32           filterMinmaxSingleComponentFormats; | 
|  | VkBool32           filterMinmaxImageComponentMapping; | 
|  | } VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT; | 
|  |  | 
|  |  | 
|  |  | 
|  | #define VK_AMD_gpu_shader_int16 1 | 
|  | #define VK_AMD_GPU_SHADER_INT16_SPEC_VERSION 1 | 
|  | #define VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME "VK_AMD_gpu_shader_int16" | 
|  |  | 
|  |  | 
|  | #define VK_AMD_mixed_attachment_samples 1 | 
|  | #define VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION 1 | 
|  | #define VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME "VK_AMD_mixed_attachment_samples" | 
|  |  | 
|  |  | 
|  | #define VK_AMD_shader_fragment_mask 1 | 
|  | #define VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION 1 | 
|  | #define VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME "VK_AMD_shader_fragment_mask" | 
|  |  | 
|  |  | 
|  | #define VK_EXT_shader_stencil_export 1 | 
|  | #define VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION 1 | 
|  | #define VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME "VK_EXT_shader_stencil_export" | 
|  |  | 
|  |  | 
|  | #define VK_EXT_sample_locations 1 | 
|  | #define VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION 1 | 
|  | #define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations" | 
|  |  | 
|  | 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 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 VkMultisamplePropertiesEXT { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | VkExtent2D         maxSampleLocationGridSize; | 
|  | } VkMultisamplePropertiesEXT; | 
|  |  | 
|  |  | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdSetSampleLocationsEXT)(VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo); | 
|  | typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)(VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleLocationsEXT( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | const VkSampleLocationsInfoEXT*             pSampleLocationsInfo); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMultisamplePropertiesEXT( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | VkSampleCountFlagBits                       samples, | 
|  | VkMultisamplePropertiesEXT*                 pMultisampleProperties); | 
|  | #endif | 
|  |  | 
|  | #define VK_EXT_blend_operation_advanced 1 | 
|  | #define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2 | 
|  | #define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced" | 
|  |  | 
|  |  | 
|  | typedef enum VkBlendOverlapEXT { | 
|  | VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0, | 
|  | VK_BLEND_OVERLAP_DISJOINT_EXT = 1, | 
|  | VK_BLEND_OVERLAP_CONJOINT_EXT = 2, | 
|  | VK_BLEND_OVERLAP_BEGIN_RANGE_EXT = VK_BLEND_OVERLAP_UNCORRELATED_EXT, | 
|  | VK_BLEND_OVERLAP_END_RANGE_EXT = VK_BLEND_OVERLAP_CONJOINT_EXT, | 
|  | VK_BLEND_OVERLAP_RANGE_SIZE_EXT = (VK_BLEND_OVERLAP_CONJOINT_EXT - VK_BLEND_OVERLAP_UNCORRELATED_EXT + 1), | 
|  | VK_BLEND_OVERLAP_MAX_ENUM_EXT = 0x7FFFFFFF | 
|  | } VkBlendOverlapEXT; | 
|  |  | 
|  | 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; | 
|  |  | 
|  |  | 
|  |  | 
|  | #define VK_NV_fragment_coverage_to_color 1 | 
|  | #define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION 1 | 
|  | #define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME "VK_NV_fragment_coverage_to_color" | 
|  |  | 
|  | typedef VkFlags VkPipelineCoverageToColorStateCreateFlagsNV; | 
|  |  | 
|  | typedef struct VkPipelineCoverageToColorStateCreateInfoNV { | 
|  | VkStructureType                                sType; | 
|  | const void*                                    pNext; | 
|  | VkPipelineCoverageToColorStateCreateFlagsNV    flags; | 
|  | VkBool32                                       coverageToColorEnable; | 
|  | uint32_t                                       coverageToColorLocation; | 
|  | } VkPipelineCoverageToColorStateCreateInfoNV; | 
|  |  | 
|  |  | 
|  |  | 
|  | #define VK_NV_framebuffer_mixed_samples 1 | 
|  | #define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION 1 | 
|  | #define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME "VK_NV_framebuffer_mixed_samples" | 
|  |  | 
|  |  | 
|  | 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, | 
|  | VK_COVERAGE_MODULATION_MODE_BEGIN_RANGE_NV = VK_COVERAGE_MODULATION_MODE_NONE_NV, | 
|  | VK_COVERAGE_MODULATION_MODE_END_RANGE_NV = VK_COVERAGE_MODULATION_MODE_RGBA_NV, | 
|  | VK_COVERAGE_MODULATION_MODE_RANGE_SIZE_NV = (VK_COVERAGE_MODULATION_MODE_RGBA_NV - VK_COVERAGE_MODULATION_MODE_NONE_NV + 1), | 
|  | VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 0x7FFFFFFF | 
|  | } VkCoverageModulationModeNV; | 
|  |  | 
|  | typedef VkFlags VkPipelineCoverageModulationStateCreateFlagsNV; | 
|  |  | 
|  | typedef struct VkPipelineCoverageModulationStateCreateInfoNV { | 
|  | VkStructureType                                   sType; | 
|  | const void*                                       pNext; | 
|  | VkPipelineCoverageModulationStateCreateFlagsNV    flags; | 
|  | VkCoverageModulationModeNV                        coverageModulationMode; | 
|  | VkBool32                                          coverageModulationTableEnable; | 
|  | uint32_t                                          coverageModulationTableCount; | 
|  | const float*                                      pCoverageModulationTable; | 
|  | } VkPipelineCoverageModulationStateCreateInfoNV; | 
|  |  | 
|  |  | 
|  |  | 
|  | #define VK_NV_fill_rectangle 1 | 
|  | #define VK_NV_FILL_RECTANGLE_SPEC_VERSION 1 | 
|  | #define VK_NV_FILL_RECTANGLE_EXTENSION_NAME "VK_NV_fill_rectangle" | 
|  |  | 
|  |  | 
|  | #define VK_EXT_post_depth_coverage 1 | 
|  | #define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1 | 
|  | #define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage" | 
|  |  | 
|  |  | 
|  | #define VK_EXT_validation_cache 1 | 
|  | VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkValidationCacheEXT) | 
|  |  | 
|  | #define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1 | 
|  | #define VK_EXT_VALIDATION_CACHE_EXTENSION_NAME "VK_EXT_validation_cache" | 
|  |  | 
|  |  | 
|  | typedef enum VkValidationCacheHeaderVersionEXT { | 
|  | VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1, | 
|  | VK_VALIDATION_CACHE_HEADER_VERSION_BEGIN_RANGE_EXT = VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT, | 
|  | VK_VALIDATION_CACHE_HEADER_VERSION_END_RANGE_EXT = VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT, | 
|  | VK_VALIDATION_CACHE_HEADER_VERSION_RANGE_SIZE_EXT = (VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT - VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT + 1), | 
|  | VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF | 
|  | } VkValidationCacheHeaderVersionEXT; | 
|  |  | 
|  | typedef VkFlags VkValidationCacheCreateFlagsEXT; | 
|  |  | 
|  | typedef struct VkValidationCacheCreateInfoEXT { | 
|  | VkStructureType                    sType; | 
|  | const void*                        pNext; | 
|  | VkValidationCacheCreateFlagsEXT    flags; | 
|  | size_t                             initialDataSize; | 
|  | const void*                        pInitialData; | 
|  | } VkValidationCacheCreateInfoEXT; | 
|  |  | 
|  | typedef struct VkShaderModuleValidationCacheCreateInfoEXT { | 
|  | VkStructureType         sType; | 
|  | const void*             pNext; | 
|  | VkValidationCacheEXT    validationCache; | 
|  | } VkShaderModuleValidationCacheCreateInfoEXT; | 
|  |  | 
|  |  | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreateValidationCacheEXT)(VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache); | 
|  | typedef void (VKAPI_PTR *PFN_vkDestroyValidationCacheEXT)(VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkMergeValidationCachesEXT)(VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetValidationCacheDataEXT)(VkDevice device, VkValidationCacheEXT validationCache, size_t* pDataSize, void* pData); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreateValidationCacheEXT( | 
|  | VkDevice                                    device, | 
|  | const VkValidationCacheCreateInfoEXT*       pCreateInfo, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkValidationCacheEXT*                       pValidationCache); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkDestroyValidationCacheEXT( | 
|  | VkDevice                                    device, | 
|  | VkValidationCacheEXT                        validationCache, | 
|  | const VkAllocationCallbacks*                pAllocator); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkMergeValidationCachesEXT( | 
|  | VkDevice                                    device, | 
|  | VkValidationCacheEXT                        dstCache, | 
|  | uint32_t                                    srcCacheCount, | 
|  | const VkValidationCacheEXT*                 pSrcCaches); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetValidationCacheDataEXT( | 
|  | VkDevice                                    device, | 
|  | VkValidationCacheEXT                        validationCache, | 
|  | size_t*                                     pDataSize, | 
|  | void*                                       pData); | 
|  | #endif | 
|  |  | 
|  | #define VK_EXT_shader_viewport_index_layer 1 | 
|  | #define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION 1 | 
|  | #define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME "VK_EXT_shader_viewport_index_layer" | 
|  |  | 
|  |  | 
|  | #define VK_EXT_global_priority 1 | 
|  | #define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 1 | 
|  | #define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority" | 
|  |  | 
|  |  | 
|  | typedef enum VkQueueGlobalPriorityEXT { | 
|  | VK_QUEUE_GLOBAL_PRIORITY_LOW = 128, | 
|  | VK_QUEUE_GLOBAL_PRIORITY_MEDIUM = 256, | 
|  | VK_QUEUE_GLOBAL_PRIORITY_HIGH = 512, | 
|  | VK_QUEUE_GLOBAL_PRIORITY_REALTIME = 1024, | 
|  | VK_QUEUE_GLOBAL_PRIORITY_BEGIN_RANGE_EXT = VK_QUEUE_GLOBAL_PRIORITY_LOW, | 
|  | VK_QUEUE_GLOBAL_PRIORITY_END_RANGE_EXT = VK_QUEUE_GLOBAL_PRIORITY_REALTIME, | 
|  | VK_QUEUE_GLOBAL_PRIORITY_RANGE_SIZE_EXT = (VK_QUEUE_GLOBAL_PRIORITY_REALTIME - VK_QUEUE_GLOBAL_PRIORITY_LOW + 1), | 
|  | VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_EXT = 0x7FFFFFFF | 
|  | } VkQueueGlobalPriorityEXT; | 
|  |  | 
|  | typedef struct VkDeviceQueueGlobalPriorityCreateInfoEXT { | 
|  | VkStructureType             sType; | 
|  | const void*                 pNext; | 
|  | VkQueueGlobalPriorityEXT    globalPriority; | 
|  | } VkDeviceQueueGlobalPriorityCreateInfoEXT; | 
|  |  | 
|  |  | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | } | 
|  | #endif | 
|  |  | 
|  | #endif |