|  | #ifndef VULKAN_CORE_H_ | 
|  | #define VULKAN_CORE_H_ 1 | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | extern "C" { | 
|  | #endif | 
|  |  | 
|  | /* | 
|  | ** Copyright (c) 2015-2018 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 93 | 
|  |  | 
|  |  | 
|  | #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_OUT_OF_POOL_MEMORY = -1000069000, | 
|  | VK_ERROR_INVALID_EXTERNAL_HANDLE = -1000072003, | 
|  | 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_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = -1000158000, | 
|  | VK_ERROR_FRAGMENTATION_EXT = -1000161000, | 
|  | VK_ERROR_NOT_PERMITTED_EXT = -1000174001, | 
|  | VK_ERROR_OUT_OF_POOL_MEMORY_KHR = VK_ERROR_OUT_OF_POOL_MEMORY, | 
|  | VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = VK_ERROR_INVALID_EXTERNAL_HANDLE, | 
|  | VK_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_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = 1000094000, | 
|  | VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = 1000157000, | 
|  | VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = 1000157001, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = 1000083000, | 
|  | VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = 1000127000, | 
|  | VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001, | 
|  | VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = 1000060000, | 
|  | VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = 1000060003, | 
|  | VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = 1000060004, | 
|  | VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = 1000060005, | 
|  | VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = 1000060006, | 
|  | VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = 1000060013, | 
|  | VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = 1000060014, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = 1000070000, | 
|  | VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = 1000070001, | 
|  | VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = 1000146000, | 
|  | VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = 1000146001, | 
|  | VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = 1000146002, | 
|  | VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = 1000146003, | 
|  | VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = 1000146004, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = 1000059000, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001, | 
|  | VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = 1000059002, | 
|  | VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = 1000059003, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = 1000059004, | 
|  | VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = 1000059005, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006, | 
|  | VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = 1000059007, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = 1000059008, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = 1000117000, | 
|  | VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = 1000117001, | 
|  | VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = 1000117002, | 
|  | VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = 1000117003, | 
|  | VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = 1000120000, | 
|  | VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002, | 
|  | VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = 1000145003, | 
|  | VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = 1000156000, | 
|  | VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = 1000156001, | 
|  | VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = 1000156002, | 
|  | VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = 1000156003, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = 1000156004, | 
|  | VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = 1000156005, | 
|  | VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = 1000085000, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = 1000071000, | 
|  | VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = 1000071001, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = 1000071002, | 
|  | VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = 1000071003, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = 1000071004, | 
|  | VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = 1000072000, | 
|  | VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = 1000072001, | 
|  | VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = 1000072002, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = 1000112000, | 
|  | VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = 1000112001, | 
|  | VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = 1000113000, | 
|  | VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = 1000077000, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = 1000076000, | 
|  | VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000, | 
|  | VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = 1000063000, | 
|  | VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000, | 
|  | VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001, | 
|  | VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007, | 
|  | VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008, | 
|  | VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009, | 
|  | VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010, | 
|  | VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011, | 
|  | VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012, | 
|  | VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000, | 
|  | VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001, | 
|  | VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR = 1000003000, | 
|  | VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000, | 
|  | VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000, | 
|  | VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000, | 
|  | VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000, | 
|  | VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000, | 
|  | VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000, | 
|  | VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000, | 
|  | VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000, | 
|  | VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001, | 
|  | VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002, | 
|  | VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000, | 
|  | VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001, | 
|  | VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT = 1000028000, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT = 1000028001, | 
|  | VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT = 1000028002, | 
|  | VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000, | 
|  | 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_VALIDATION_FLAGS_EXT = 1000061000, | 
|  | VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000, | 
|  | VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001, | 
|  | 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_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078000, | 
|  | VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078001, | 
|  | VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = 1000078002, | 
|  | VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR = 1000078003, | 
|  | VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000, | 
|  | VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000, | 
|  | VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = 1000081000, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = 1000081001, | 
|  | VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = 1000081002, | 
|  | VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000, | 
|  | 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_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000, | 
|  | VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001, | 
|  | VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000, | 
|  | VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR = 1000109000, | 
|  | VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR = 1000109001, | 
|  | VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR = 1000109002, | 
|  | VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR = 1000109003, | 
|  | VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR = 1000109004, | 
|  | VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR = 1000109005, | 
|  | VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR = 1000109006, | 
|  | VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000, | 
|  | 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_SURFACE_INFO_2_KHR = 1000119000, | 
|  | VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001, | 
|  | VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002, | 
|  | VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR = 1000121000, | 
|  | VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR = 1000121001, | 
|  | VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR = 1000121002, | 
|  | VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR = 1000121003, | 
|  | VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR = 1000121004, | 
|  | VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000, | 
|  | VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000, | 
|  | VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000128000, | 
|  | VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT = 1000128001, | 
|  | VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = 1000128002, | 
|  | VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000128003, | 
|  | VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000128004, | 
|  | VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = 1000129000, | 
|  | VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = 1000129001, | 
|  | VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = 1000129002, | 
|  | VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129003, | 
|  | VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004, | 
|  | VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = 1000130000, | 
|  | VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = 1000130001, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT = 1000138000, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT = 1000138001, | 
|  | VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT = 1000138002, | 
|  | VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT = 1000138003, | 
|  | VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000, | 
|  | VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001, | 
|  | VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003, | 
|  | VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004, | 
|  | VK_STRUCTURE_TYPE_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_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT = 1000158000, | 
|  | VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158001, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT = 1000158002, | 
|  | VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT = 1000158003, | 
|  | VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT = 1000158004, | 
|  | VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158005, | 
|  | VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000, | 
|  | VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001, | 
|  | VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT = 1000161000, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT = 1000161001, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = 1000161002, | 
|  | VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = 1000161003, | 
|  | VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = 1000161004, | 
|  | VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV = 1000164000, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV = 1000164001, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV = 1000164002, | 
|  | VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV = 1000164005, | 
|  | VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV = 1000165000, | 
|  | VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV = 1000165001, | 
|  | VK_STRUCTURE_TYPE_GEOMETRY_NV = 1000165003, | 
|  | VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV = 1000165004, | 
|  | VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV = 1000165005, | 
|  | VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV = 1000165006, | 
|  | VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV = 1000165007, | 
|  | VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV = 1000165008, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV = 1000165009, | 
|  | VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV = 1000165011, | 
|  | VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV = 1000165012, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV = 1000166000, | 
|  | VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV = 1000166001, | 
|  | VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = 1000174000, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR = 1000177000, | 
|  | VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000, | 
|  | VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR = 1000180000, | 
|  | VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = 1000184000, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000, | 
|  | VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD = 1000189000, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000, | 
|  | VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = 1000190001, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = 1000190002, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR = 1000196000, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = 1000201000, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = 1000202000, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = 1000202001, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = 1000203000, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = 1000204000, | 
|  | VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = 1000205000, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = 1000205002, | 
|  | VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000, | 
|  | VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = 1000211000, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT = 1000212000, | 
|  | VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA = 1000214000, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT = 1000221000, | 
|  | VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT = 1000246000, | 
|  | VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT, | 
|  | VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2, | 
|  | VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2, | 
|  | VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2, | 
|  | VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2, | 
|  | VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2, | 
|  | VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO, | 
|  | VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO, | 
|  | VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO, | 
|  | VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO, | 
|  | VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO, | 
|  | VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO, | 
|  | VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES, | 
|  | VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO, | 
|  | VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO, | 
|  | VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES, | 
|  | VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO, | 
|  | VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO, | 
|  | VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO, | 
|  | VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES, | 
|  | VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES, | 
|  | VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO, | 
|  | VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO, | 
|  | VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES, | 
|  | VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES, | 
|  | VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO, | 
|  | VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO, | 
|  | VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES, | 
|  | VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS, | 
|  | VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO, | 
|  | VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2, | 
|  | VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2, | 
|  | VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2, | 
|  | VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2, | 
|  | VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2, | 
|  | VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO, | 
|  | VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO, | 
|  | VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO, | 
|  | VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES, | 
|  | VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES, | 
|  | VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO, | 
|  | VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO, | 
|  | VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES, | 
|  | VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT, | 
|  | VK_STRUCTURE_TYPE_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_G8B8G8R8_422_UNORM = 1000156000, | 
|  | VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001, | 
|  | VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002, | 
|  | VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003, | 
|  | VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004, | 
|  | VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005, | 
|  | VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006, | 
|  | VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007, | 
|  | VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008, | 
|  | VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009, | 
|  | VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010, | 
|  | VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011, | 
|  | VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012, | 
|  | VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013, | 
|  | VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014, | 
|  | VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015, | 
|  | VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016, | 
|  | VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017, | 
|  | VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018, | 
|  | VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019, | 
|  | VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020, | 
|  | VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021, | 
|  | VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022, | 
|  | VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023, | 
|  | VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024, | 
|  | VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025, | 
|  | VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026, | 
|  | VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027, | 
|  | VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028, | 
|  | VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029, | 
|  | VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030, | 
|  | VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031, | 
|  | VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032, | 
|  | VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033, | 
|  | VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000, | 
|  | VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001, | 
|  | VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002, | 
|  | VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003, | 
|  | VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004, | 
|  | VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005, | 
|  | VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006, | 
|  | VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007, | 
|  | VK_FORMAT_G8B8G8R8_422_UNORM_KHR = VK_FORMAT_G8B8G8R8_422_UNORM, | 
|  | VK_FORMAT_B8G8R8G8_422_UNORM_KHR = VK_FORMAT_B8G8R8G8_422_UNORM, | 
|  | VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM, | 
|  | VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM, | 
|  | VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM, | 
|  | VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM, | 
|  | VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM, | 
|  | VK_FORMAT_R10X6_UNORM_PACK16_KHR = VK_FORMAT_R10X6_UNORM_PACK16, | 
|  | VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR = VK_FORMAT_R10X6G10X6_UNORM_2PACK16, | 
|  | VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16, | 
|  | VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16, | 
|  | VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16, | 
|  | VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16, | 
|  | VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16, | 
|  | VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16, | 
|  | VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16, | 
|  | VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16, | 
|  | VK_FORMAT_R12X4_UNORM_PACK16_KHR = VK_FORMAT_R12X4_UNORM_PACK16, | 
|  | VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR = VK_FORMAT_R12X4G12X4_UNORM_2PACK16, | 
|  | VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16, | 
|  | VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16, | 
|  | VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16, | 
|  | VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16, | 
|  | VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16, | 
|  | VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16, | 
|  | VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16, | 
|  | VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16, | 
|  | VK_FORMAT_G16B16G16R16_422_UNORM_KHR = VK_FORMAT_G16B16G16R16_422_UNORM, | 
|  | VK_FORMAT_B16G16R16G16_422_UNORM_KHR = VK_FORMAT_B16G16R16G16_422_UNORM, | 
|  | VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM, | 
|  | VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM, | 
|  | VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM, | 
|  | VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM, | 
|  | VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM, | 
|  | VK_FORMAT_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_DRM_FORMAT_MODIFIER_EXT = 1000158000, | 
|  | 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_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004, | 
|  | VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000, | 
|  | 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_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000, | 
|  | VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001, | 
|  | VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002, | 
|  | VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000, | 
|  | VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = 1000164003, | 
|  | VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, | 
|  | VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, | 
|  | VK_IMAGE_LAYOUT_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_VIEWPORT_SHADING_RATE_PALETTE_NV = 1000164004, | 
|  | VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = 1000164006, | 
|  | VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = 1000205001, | 
|  | VK_DYNAMIC_STATE_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_INLINE_UNIFORM_BLOCK_EXT = 1000138000, | 
|  | VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000, | 
|  | 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_RAY_TRACING_NV = 1000165000, | 
|  | 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_NONE_NV = 1000165000, | 
|  | 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_SAMPLER_YCBCR_CONVERSION = 1000156000, | 
|  | VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000, | 
|  | VK_OBJECT_TYPE_SURFACE_KHR = 1000000000, | 
|  | VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000, | 
|  | VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000, | 
|  | VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001, | 
|  | VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000, | 
|  | VK_OBJECT_TYPE_OBJECT_TABLE_NVX = 1000086000, | 
|  | VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX = 1000086001, | 
|  | VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000, | 
|  | VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000, | 
|  | VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000, | 
|  | VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE, | 
|  | VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION, | 
|  | 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 enum VkVendorId { | 
|  | VK_VENDOR_ID_VIV = 0x10001, | 
|  | VK_VENDOR_ID_VSI = 0x10002, | 
|  | VK_VENDOR_ID_KAZAN = 0x10003, | 
|  | VK_VENDOR_ID_BEGIN_RANGE = VK_VENDOR_ID_VIV, | 
|  | VK_VENDOR_ID_END_RANGE = VK_VENDOR_ID_KAZAN, | 
|  | VK_VENDOR_ID_RANGE_SIZE = (VK_VENDOR_ID_KAZAN - VK_VENDOR_ID_VIV + 1), | 
|  | VK_VENDOR_ID_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkVendorId; | 
|  |  | 
|  | 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_TRANSFER_SRC_BIT = 0x00004000, | 
|  | VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 0x00008000, | 
|  | VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000, | 
|  | VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000, | 
|  | VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000, | 
|  | VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000, | 
|  | VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000, | 
|  | VK_FORMAT_FEATURE_DISJOINT_BIT = 0x00400000, | 
|  | VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000, | 
|  | VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000, | 
|  | VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = 0x00010000, | 
|  | VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT, | 
|  | VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_DST_BIT, | 
|  | VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT, | 
|  | VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT, | 
|  | VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT, | 
|  | VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT, | 
|  | VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT, | 
|  | VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = VK_FORMAT_FEATURE_DISJOINT_BIT, | 
|  | VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT, | 
|  | VK_FORMAT_FEATURE_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_SHADING_RATE_IMAGE_BIT_NV = 0x00000100, | 
|  | 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_ALIAS_BIT = 0x00000400, | 
|  | VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 0x00000040, | 
|  | VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 0x00000020, | 
|  | VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 0x00000080, | 
|  | VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0x00000100, | 
|  | VK_IMAGE_CREATE_PROTECTED_BIT = 0x00000800, | 
|  | VK_IMAGE_CREATE_DISJOINT_BIT = 0x00000200, | 
|  | VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 0x00002000, | 
|  | VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000, | 
|  | VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT, | 
|  | VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT, | 
|  | VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT, | 
|  | VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT, | 
|  | VK_IMAGE_CREATE_DISJOINT_BIT_KHR = VK_IMAGE_CREATE_DISJOINT_BIT, | 
|  | VK_IMAGE_CREATE_ALIAS_BIT_KHR = VK_IMAGE_CREATE_ALIAS_BIT, | 
|  | 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_PROTECTED_BIT = 0x00000010, | 
|  | 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_PROTECTED_BIT = 0x00000020, | 
|  | 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 = 0x00000002, | 
|  | VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT, | 
|  | VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkMemoryHeapFlagBits; | 
|  | typedef VkFlags VkMemoryHeapFlags; | 
|  | typedef VkFlags VkDeviceCreateFlags; | 
|  |  | 
|  | typedef enum VkDeviceQueueCreateFlagBits { | 
|  | VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0x00000001, | 
|  | VK_DEVICE_QUEUE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkDeviceQueueCreateFlagBits; | 
|  | 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_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000, | 
|  | VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000, | 
|  | VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX = 0x00020000, | 
|  | VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00400000, | 
|  | VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = 0x00200000, | 
|  | VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 0x02000000, | 
|  | VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 0x00080000, | 
|  | VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 0x00100000, | 
|  | 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 = 0x00000010, | 
|  | VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020, | 
|  | VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040, | 
|  | VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0x00000080, | 
|  | VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0x00000100, | 
|  | VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0x00000200, | 
|  | VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0x00000400, | 
|  | VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = VK_IMAGE_ASPECT_PLANE_0_BIT, | 
|  | VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = VK_IMAGE_ASPECT_PLANE_1_BIT, | 
|  | VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = VK_IMAGE_ASPECT_PLANE_2_BIT, | 
|  | VK_IMAGE_ASPECT_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_PROTECTED_BIT = 0x00000008, | 
|  | 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_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800, | 
|  | VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000, | 
|  | VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200, | 
|  | VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = 0x00000400, | 
|  | 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 = 0x00000008, | 
|  | VK_PIPELINE_CREATE_DISPATCH_BASE = 0x00000010, | 
|  | VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV = 0x00000020, | 
|  | VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT, | 
|  | VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = VK_PIPELINE_CREATE_DISPATCH_BASE, | 
|  | VK_PIPELINE_CREATE_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_RAYGEN_BIT_NV = 0x00000100, | 
|  | VK_SHADER_STAGE_ANY_HIT_BIT_NV = 0x00000200, | 
|  | VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = 0x00000400, | 
|  | VK_SHADER_STAGE_MISS_BIT_NV = 0x00000800, | 
|  | VK_SHADER_STAGE_INTERSECTION_BIT_NV = 0x00001000, | 
|  | VK_SHADER_STAGE_CALLABLE_BIT_NV = 0x00002000, | 
|  | VK_SHADER_STAGE_TASK_BIT_NV = 0x00000040, | 
|  | VK_SHADER_STAGE_MESH_BIT_NV = 0x00000080, | 
|  | 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_UPDATE_AFTER_BIND_POOL_BIT_EXT = 0x00000002, | 
|  | 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_UPDATE_AFTER_BIND_BIT_EXT = 0x00000002, | 
|  | 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_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000, | 
|  | VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000, | 
|  | VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000, | 
|  | VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000, | 
|  | 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_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000, | 
|  | VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV = 0x00200000, | 
|  | VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV = 0x00400000, | 
|  | VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkAccessFlagBits; | 
|  | typedef VkFlags VkAccessFlags; | 
|  |  | 
|  | typedef enum VkDependencyFlagBits { | 
|  | VK_DEPENDENCY_BY_REGION_BIT = 0x00000001, | 
|  | VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004, | 
|  | VK_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002, | 
|  | VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = VK_DEPENDENCY_VIEW_LOCAL_BIT, | 
|  | VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = VK_DEPENDENCY_DEVICE_GROUP_BIT, | 
|  | 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_PROTECTED_BIT = 0x00000004, | 
|  | 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 struct VkBaseOutStructure { | 
|  | VkStructureType               sType; | 
|  | struct VkBaseOutStructure*    pNext; | 
|  | } VkBaseOutStructure; | 
|  |  | 
|  | typedef struct VkBaseInStructure { | 
|  | VkStructureType                    sType; | 
|  | const struct VkBaseInStructure*    pNext; | 
|  | } VkBaseInStructure; | 
|  |  | 
|  |  | 
|  | 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_VERSION_1_1 1 | 
|  | // Vulkan 1.1 version number | 
|  | #define VK_API_VERSION_1_1 VK_MAKE_VERSION(1, 1, 0)// Patch version should always be set to 0 | 
|  |  | 
|  |  | 
|  | VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSamplerYcbcrConversion) | 
|  | VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorUpdateTemplate) | 
|  |  | 
|  | #define VK_MAX_DEVICE_GROUP_SIZE          32 | 
|  | #define VK_LUID_SIZE                      8 | 
|  | #define VK_QUEUE_FAMILY_EXTERNAL          (~0U-1) | 
|  |  | 
|  |  | 
|  | typedef enum VkPointClippingBehavior { | 
|  | VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0, | 
|  | VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1, | 
|  | VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES, | 
|  | VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY, | 
|  | VK_POINT_CLIPPING_BEHAVIOR_BEGIN_RANGE = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES, | 
|  | VK_POINT_CLIPPING_BEHAVIOR_END_RANGE = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY, | 
|  | VK_POINT_CLIPPING_BEHAVIOR_RANGE_SIZE = (VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY - VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES + 1), | 
|  | VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkPointClippingBehavior; | 
|  |  | 
|  | typedef enum VkTessellationDomainOrigin { | 
|  | VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0, | 
|  | VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1, | 
|  | VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT, | 
|  | VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT, | 
|  | VK_TESSELLATION_DOMAIN_ORIGIN_BEGIN_RANGE = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT, | 
|  | VK_TESSELLATION_DOMAIN_ORIGIN_END_RANGE = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT, | 
|  | VK_TESSELLATION_DOMAIN_ORIGIN_RANGE_SIZE = (VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT - VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT + 1), | 
|  | VK_TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkTessellationDomainOrigin; | 
|  |  | 
|  | typedef enum VkSamplerYcbcrModelConversion { | 
|  | VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = 0, | 
|  | VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = 1, | 
|  | VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = 2, | 
|  | VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = 3, | 
|  | VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4, | 
|  | VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY, | 
|  | VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY, | 
|  | VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709, | 
|  | VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601, | 
|  | VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020, | 
|  | VK_SAMPLER_YCBCR_MODEL_CONVERSION_BEGIN_RANGE = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY, | 
|  | VK_SAMPLER_YCBCR_MODEL_CONVERSION_END_RANGE = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020, | 
|  | VK_SAMPLER_YCBCR_MODEL_CONVERSION_RANGE_SIZE = (VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 - VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY + 1), | 
|  | VK_SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkSamplerYcbcrModelConversion; | 
|  |  | 
|  | typedef enum VkSamplerYcbcrRange { | 
|  | VK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0, | 
|  | VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1, | 
|  | VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_FULL, | 
|  | VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW, | 
|  | VK_SAMPLER_YCBCR_RANGE_BEGIN_RANGE = VK_SAMPLER_YCBCR_RANGE_ITU_FULL, | 
|  | VK_SAMPLER_YCBCR_RANGE_END_RANGE = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW, | 
|  | VK_SAMPLER_YCBCR_RANGE_RANGE_SIZE = (VK_SAMPLER_YCBCR_RANGE_ITU_NARROW - VK_SAMPLER_YCBCR_RANGE_ITU_FULL + 1), | 
|  | VK_SAMPLER_YCBCR_RANGE_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkSamplerYcbcrRange; | 
|  |  | 
|  | typedef enum VkChromaLocation { | 
|  | VK_CHROMA_LOCATION_COSITED_EVEN = 0, | 
|  | VK_CHROMA_LOCATION_MIDPOINT = 1, | 
|  | VK_CHROMA_LOCATION_COSITED_EVEN_KHR = VK_CHROMA_LOCATION_COSITED_EVEN, | 
|  | VK_CHROMA_LOCATION_MIDPOINT_KHR = VK_CHROMA_LOCATION_MIDPOINT, | 
|  | VK_CHROMA_LOCATION_BEGIN_RANGE = VK_CHROMA_LOCATION_COSITED_EVEN, | 
|  | VK_CHROMA_LOCATION_END_RANGE = VK_CHROMA_LOCATION_MIDPOINT, | 
|  | VK_CHROMA_LOCATION_RANGE_SIZE = (VK_CHROMA_LOCATION_MIDPOINT - VK_CHROMA_LOCATION_COSITED_EVEN + 1), | 
|  | VK_CHROMA_LOCATION_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkChromaLocation; | 
|  |  | 
|  | typedef enum VkDescriptorUpdateTemplateType { | 
|  | VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0, | 
|  | VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1, | 
|  | VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET, | 
|  | VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_BEGIN_RANGE = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET, | 
|  | VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_END_RANGE = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET, | 
|  | VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_RANGE_SIZE = (VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET - VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET + 1), | 
|  | VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkDescriptorUpdateTemplateType; | 
|  |  | 
|  |  | 
|  | typedef enum VkSubgroupFeatureFlagBits { | 
|  | VK_SUBGROUP_FEATURE_BASIC_BIT = 0x00000001, | 
|  | VK_SUBGROUP_FEATURE_VOTE_BIT = 0x00000002, | 
|  | VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 0x00000004, | 
|  | VK_SUBGROUP_FEATURE_BALLOT_BIT = 0x00000008, | 
|  | VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 0x00000010, | 
|  | VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 0x00000020, | 
|  | VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0x00000040, | 
|  | VK_SUBGROUP_FEATURE_QUAD_BIT = 0x00000080, | 
|  | VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = 0x00000100, | 
|  | VK_SUBGROUP_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkSubgroupFeatureFlagBits; | 
|  | typedef VkFlags VkSubgroupFeatureFlags; | 
|  |  | 
|  | typedef enum VkPeerMemoryFeatureFlagBits { | 
|  | VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 0x00000001, | 
|  | VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 0x00000002, | 
|  | VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 0x00000004, | 
|  | VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 0x00000008, | 
|  | VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT, | 
|  | VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_DST_BIT, | 
|  | VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT, | 
|  | VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT, | 
|  | VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkPeerMemoryFeatureFlagBits; | 
|  | typedef VkFlags VkPeerMemoryFeatureFlags; | 
|  |  | 
|  | typedef enum VkMemoryAllocateFlagBits { | 
|  | VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 0x00000001, | 
|  | VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT, | 
|  | VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkMemoryAllocateFlagBits; | 
|  | typedef VkFlags VkMemoryAllocateFlags; | 
|  | typedef VkFlags VkCommandPoolTrimFlags; | 
|  | typedef VkFlags VkDescriptorUpdateTemplateCreateFlags; | 
|  |  | 
|  | typedef enum VkExternalMemoryHandleTypeFlagBits { | 
|  | VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001, | 
|  | VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002, | 
|  | VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004, | 
|  | VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 0x00000008, | 
|  | VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 0x00000010, | 
|  | VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 0x00000020, | 
|  | VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0x00000040, | 
|  | VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 0x00000200, | 
|  | VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0x00000400, | 
|  | VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080, | 
|  | VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100, | 
|  | VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT, | 
|  | VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT, | 
|  | VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, | 
|  | VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT, | 
|  | VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT, | 
|  | VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT, | 
|  | VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT, | 
|  | VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkExternalMemoryHandleTypeFlagBits; | 
|  | typedef VkFlags VkExternalMemoryHandleTypeFlags; | 
|  |  | 
|  | typedef enum VkExternalMemoryFeatureFlagBits { | 
|  | VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 0x00000001, | 
|  | VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 0x00000002, | 
|  | VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 0x00000004, | 
|  | VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT, | 
|  | VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT, | 
|  | VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT, | 
|  | VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkExternalMemoryFeatureFlagBits; | 
|  | typedef VkFlags VkExternalMemoryFeatureFlags; | 
|  |  | 
|  | typedef enum VkExternalFenceHandleTypeFlagBits { | 
|  | VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001, | 
|  | VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002, | 
|  | VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004, | 
|  | VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000008, | 
|  | VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT, | 
|  | VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT, | 
|  | VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, | 
|  | VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT, | 
|  | VK_EXTERNAL_FENCE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkExternalFenceHandleTypeFlagBits; | 
|  | typedef VkFlags VkExternalFenceHandleTypeFlags; | 
|  |  | 
|  | typedef enum VkExternalFenceFeatureFlagBits { | 
|  | VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 0x00000001, | 
|  | VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 0x00000002, | 
|  | VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT, | 
|  | VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT, | 
|  | VK_EXTERNAL_FENCE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkExternalFenceFeatureFlagBits; | 
|  | typedef VkFlags VkExternalFenceFeatureFlags; | 
|  |  | 
|  | typedef enum VkFenceImportFlagBits { | 
|  | VK_FENCE_IMPORT_TEMPORARY_BIT = 0x00000001, | 
|  | VK_FENCE_IMPORT_TEMPORARY_BIT_KHR = VK_FENCE_IMPORT_TEMPORARY_BIT, | 
|  | VK_FENCE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkFenceImportFlagBits; | 
|  | typedef VkFlags VkFenceImportFlags; | 
|  |  | 
|  | typedef enum VkSemaphoreImportFlagBits { | 
|  | VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 0x00000001, | 
|  | VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR = VK_SEMAPHORE_IMPORT_TEMPORARY_BIT, | 
|  | VK_SEMAPHORE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkSemaphoreImportFlagBits; | 
|  | typedef VkFlags VkSemaphoreImportFlags; | 
|  |  | 
|  | typedef enum VkExternalSemaphoreHandleTypeFlagBits { | 
|  | VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001, | 
|  | VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002, | 
|  | VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004, | 
|  | VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0x00000008, | 
|  | VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000010, | 
|  | VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT, | 
|  | VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT, | 
|  | VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, | 
|  | VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT, | 
|  | VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT, | 
|  | VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkExternalSemaphoreHandleTypeFlagBits; | 
|  | typedef VkFlags VkExternalSemaphoreHandleTypeFlags; | 
|  |  | 
|  | typedef enum VkExternalSemaphoreFeatureFlagBits { | 
|  | VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 0x00000001, | 
|  | VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 0x00000002, | 
|  | VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT, | 
|  | VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT, | 
|  | VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF | 
|  | } VkExternalSemaphoreFeatureFlagBits; | 
|  | typedef VkFlags VkExternalSemaphoreFeatureFlags; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceSubgroupProperties { | 
|  | VkStructureType           sType; | 
|  | void*                     pNext; | 
|  | uint32_t                  subgroupSize; | 
|  | VkShaderStageFlags        supportedStages; | 
|  | VkSubgroupFeatureFlags    supportedOperations; | 
|  | VkBool32                  quadOperationsInAllStages; | 
|  | } VkPhysicalDeviceSubgroupProperties; | 
|  |  | 
|  | typedef struct VkBindBufferMemoryInfo { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | VkBuffer           buffer; | 
|  | VkDeviceMemory     memory; | 
|  | VkDeviceSize       memoryOffset; | 
|  | } VkBindBufferMemoryInfo; | 
|  |  | 
|  | typedef struct VkBindImageMemoryInfo { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | VkImage            image; | 
|  | VkDeviceMemory     memory; | 
|  | VkDeviceSize       memoryOffset; | 
|  | } VkBindImageMemoryInfo; | 
|  |  | 
|  | typedef struct VkPhysicalDevice16BitStorageFeatures { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | VkBool32           storageBuffer16BitAccess; | 
|  | VkBool32           uniformAndStorageBuffer16BitAccess; | 
|  | VkBool32           storagePushConstant16; | 
|  | VkBool32           storageInputOutput16; | 
|  | } VkPhysicalDevice16BitStorageFeatures; | 
|  |  | 
|  | typedef struct VkMemoryDedicatedRequirements { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | VkBool32           prefersDedicatedAllocation; | 
|  | VkBool32           requiresDedicatedAllocation; | 
|  | } VkMemoryDedicatedRequirements; | 
|  |  | 
|  | typedef struct VkMemoryDedicatedAllocateInfo { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | VkImage            image; | 
|  | VkBuffer           buffer; | 
|  | } VkMemoryDedicatedAllocateInfo; | 
|  |  | 
|  | typedef struct VkMemoryAllocateFlagsInfo { | 
|  | VkStructureType          sType; | 
|  | const void*              pNext; | 
|  | VkMemoryAllocateFlags    flags; | 
|  | uint32_t                 deviceMask; | 
|  | } VkMemoryAllocateFlagsInfo; | 
|  |  | 
|  | typedef struct VkDeviceGroupRenderPassBeginInfo { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | uint32_t           deviceMask; | 
|  | uint32_t           deviceRenderAreaCount; | 
|  | const VkRect2D*    pDeviceRenderAreas; | 
|  | } VkDeviceGroupRenderPassBeginInfo; | 
|  |  | 
|  | typedef struct VkDeviceGroupCommandBufferBeginInfo { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | uint32_t           deviceMask; | 
|  | } VkDeviceGroupCommandBufferBeginInfo; | 
|  |  | 
|  | typedef struct VkDeviceGroupSubmitInfo { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | uint32_t           waitSemaphoreCount; | 
|  | const uint32_t*    pWaitSemaphoreDeviceIndices; | 
|  | uint32_t           commandBufferCount; | 
|  | const uint32_t*    pCommandBufferDeviceMasks; | 
|  | uint32_t           signalSemaphoreCount; | 
|  | const uint32_t*    pSignalSemaphoreDeviceIndices; | 
|  | } VkDeviceGroupSubmitInfo; | 
|  |  | 
|  | typedef struct VkDeviceGroupBindSparseInfo { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | uint32_t           resourceDeviceIndex; | 
|  | uint32_t           memoryDeviceIndex; | 
|  | } VkDeviceGroupBindSparseInfo; | 
|  |  | 
|  | typedef struct VkBindBufferMemoryDeviceGroupInfo { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | uint32_t           deviceIndexCount; | 
|  | const uint32_t*    pDeviceIndices; | 
|  | } VkBindBufferMemoryDeviceGroupInfo; | 
|  |  | 
|  | typedef struct VkBindImageMemoryDeviceGroupInfo { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | uint32_t           deviceIndexCount; | 
|  | const uint32_t*    pDeviceIndices; | 
|  | uint32_t           splitInstanceBindRegionCount; | 
|  | const VkRect2D*    pSplitInstanceBindRegions; | 
|  | } VkBindImageMemoryDeviceGroupInfo; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceGroupProperties { | 
|  | VkStructureType     sType; | 
|  | void*               pNext; | 
|  | uint32_t            physicalDeviceCount; | 
|  | VkPhysicalDevice    physicalDevices[VK_MAX_DEVICE_GROUP_SIZE]; | 
|  | VkBool32            subsetAllocation; | 
|  | } VkPhysicalDeviceGroupProperties; | 
|  |  | 
|  | typedef struct VkDeviceGroupDeviceCreateInfo { | 
|  | VkStructureType            sType; | 
|  | const void*                pNext; | 
|  | uint32_t                   physicalDeviceCount; | 
|  | const VkPhysicalDevice*    pPhysicalDevices; | 
|  | } VkDeviceGroupDeviceCreateInfo; | 
|  |  | 
|  | typedef struct VkBufferMemoryRequirementsInfo2 { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | VkBuffer           buffer; | 
|  | } VkBufferMemoryRequirementsInfo2; | 
|  |  | 
|  | typedef struct VkImageMemoryRequirementsInfo2 { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | VkImage            image; | 
|  | } VkImageMemoryRequirementsInfo2; | 
|  |  | 
|  | typedef struct VkImageSparseMemoryRequirementsInfo2 { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | VkImage            image; | 
|  | } VkImageSparseMemoryRequirementsInfo2; | 
|  |  | 
|  | typedef struct VkMemoryRequirements2 { | 
|  | VkStructureType         sType; | 
|  | void*                   pNext; | 
|  | VkMemoryRequirements    memoryRequirements; | 
|  | } VkMemoryRequirements2; | 
|  |  | 
|  | typedef VkMemoryRequirements2 VkMemoryRequirements2KHR; | 
|  |  | 
|  | typedef struct VkSparseImageMemoryRequirements2 { | 
|  | VkStructureType                    sType; | 
|  | void*                              pNext; | 
|  | VkSparseImageMemoryRequirements    memoryRequirements; | 
|  | } VkSparseImageMemoryRequirements2; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceFeatures2 { | 
|  | VkStructureType             sType; | 
|  | void*                       pNext; | 
|  | VkPhysicalDeviceFeatures    features; | 
|  | } VkPhysicalDeviceFeatures2; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceProperties2 { | 
|  | VkStructureType               sType; | 
|  | void*                         pNext; | 
|  | VkPhysicalDeviceProperties    properties; | 
|  | } VkPhysicalDeviceProperties2; | 
|  |  | 
|  | typedef struct VkFormatProperties2 { | 
|  | VkStructureType       sType; | 
|  | void*                 pNext; | 
|  | VkFormatProperties    formatProperties; | 
|  | } VkFormatProperties2; | 
|  |  | 
|  | typedef struct VkImageFormatProperties2 { | 
|  | VkStructureType            sType; | 
|  | void*                      pNext; | 
|  | VkImageFormatProperties    imageFormatProperties; | 
|  | } VkImageFormatProperties2; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceImageFormatInfo2 { | 
|  | VkStructureType       sType; | 
|  | const void*           pNext; | 
|  | VkFormat              format; | 
|  | VkImageType           type; | 
|  | VkImageTiling         tiling; | 
|  | VkImageUsageFlags     usage; | 
|  | VkImageCreateFlags    flags; | 
|  | } VkPhysicalDeviceImageFormatInfo2; | 
|  |  | 
|  | typedef struct VkQueueFamilyProperties2 { | 
|  | VkStructureType            sType; | 
|  | void*                      pNext; | 
|  | VkQueueFamilyProperties    queueFamilyProperties; | 
|  | } VkQueueFamilyProperties2; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceMemoryProperties2 { | 
|  | VkStructureType                     sType; | 
|  | void*                               pNext; | 
|  | VkPhysicalDeviceMemoryProperties    memoryProperties; | 
|  | } VkPhysicalDeviceMemoryProperties2; | 
|  |  | 
|  | typedef struct VkSparseImageFormatProperties2 { | 
|  | VkStructureType                  sType; | 
|  | void*                            pNext; | 
|  | VkSparseImageFormatProperties    properties; | 
|  | } VkSparseImageFormatProperties2; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceSparseImageFormatInfo2 { | 
|  | VkStructureType          sType; | 
|  | const void*              pNext; | 
|  | VkFormat                 format; | 
|  | VkImageType              type; | 
|  | VkSampleCountFlagBits    samples; | 
|  | VkImageUsageFlags        usage; | 
|  | VkImageTiling            tiling; | 
|  | } VkPhysicalDeviceSparseImageFormatInfo2; | 
|  |  | 
|  | typedef struct VkPhysicalDevicePointClippingProperties { | 
|  | VkStructureType            sType; | 
|  | void*                      pNext; | 
|  | VkPointClippingBehavior    pointClippingBehavior; | 
|  | } VkPhysicalDevicePointClippingProperties; | 
|  |  | 
|  | typedef struct VkInputAttachmentAspectReference { | 
|  | uint32_t              subpass; | 
|  | uint32_t              inputAttachmentIndex; | 
|  | VkImageAspectFlags    aspectMask; | 
|  | } VkInputAttachmentAspectReference; | 
|  |  | 
|  | typedef struct VkRenderPassInputAttachmentAspectCreateInfo { | 
|  | VkStructureType                            sType; | 
|  | const void*                                pNext; | 
|  | uint32_t                                   aspectReferenceCount; | 
|  | const VkInputAttachmentAspectReference*    pAspectReferences; | 
|  | } VkRenderPassInputAttachmentAspectCreateInfo; | 
|  |  | 
|  | typedef struct VkImageViewUsageCreateInfo { | 
|  | VkStructureType      sType; | 
|  | const void*          pNext; | 
|  | VkImageUsageFlags    usage; | 
|  | } VkImageViewUsageCreateInfo; | 
|  |  | 
|  | typedef struct VkPipelineTessellationDomainOriginStateCreateInfo { | 
|  | VkStructureType               sType; | 
|  | const void*                   pNext; | 
|  | VkTessellationDomainOrigin    domainOrigin; | 
|  | } VkPipelineTessellationDomainOriginStateCreateInfo; | 
|  |  | 
|  | typedef struct VkRenderPassMultiviewCreateInfo { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | uint32_t           subpassCount; | 
|  | const uint32_t*    pViewMasks; | 
|  | uint32_t           dependencyCount; | 
|  | const int32_t*     pViewOffsets; | 
|  | uint32_t           correlationMaskCount; | 
|  | const uint32_t*    pCorrelationMasks; | 
|  | } VkRenderPassMultiviewCreateInfo; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceMultiviewFeatures { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | VkBool32           multiview; | 
|  | VkBool32           multiviewGeometryShader; | 
|  | VkBool32           multiviewTessellationShader; | 
|  | } VkPhysicalDeviceMultiviewFeatures; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceMultiviewProperties { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | uint32_t           maxMultiviewViewCount; | 
|  | uint32_t           maxMultiviewInstanceIndex; | 
|  | } VkPhysicalDeviceMultiviewProperties; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceVariablePointerFeatures { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | VkBool32           variablePointersStorageBuffer; | 
|  | VkBool32           variablePointers; | 
|  | } VkPhysicalDeviceVariablePointerFeatures; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceProtectedMemoryFeatures { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | VkBool32           protectedMemory; | 
|  | } VkPhysicalDeviceProtectedMemoryFeatures; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceProtectedMemoryProperties { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | VkBool32           protectedNoFault; | 
|  | } VkPhysicalDeviceProtectedMemoryProperties; | 
|  |  | 
|  | typedef struct VkDeviceQueueInfo2 { | 
|  | VkStructureType             sType; | 
|  | const void*                 pNext; | 
|  | VkDeviceQueueCreateFlags    flags; | 
|  | uint32_t                    queueFamilyIndex; | 
|  | uint32_t                    queueIndex; | 
|  | } VkDeviceQueueInfo2; | 
|  |  | 
|  | typedef struct VkProtectedSubmitInfo { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | VkBool32           protectedSubmit; | 
|  | } VkProtectedSubmitInfo; | 
|  |  | 
|  | typedef struct VkSamplerYcbcrConversionCreateInfo { | 
|  | VkStructureType                  sType; | 
|  | const void*                      pNext; | 
|  | VkFormat                         format; | 
|  | VkSamplerYcbcrModelConversion    ycbcrModel; | 
|  | VkSamplerYcbcrRange              ycbcrRange; | 
|  | VkComponentMapping               components; | 
|  | VkChromaLocation                 xChromaOffset; | 
|  | VkChromaLocation                 yChromaOffset; | 
|  | VkFilter                         chromaFilter; | 
|  | VkBool32                         forceExplicitReconstruction; | 
|  | } VkSamplerYcbcrConversionCreateInfo; | 
|  |  | 
|  | typedef struct VkSamplerYcbcrConversionInfo { | 
|  | VkStructureType             sType; | 
|  | const void*                 pNext; | 
|  | VkSamplerYcbcrConversion    conversion; | 
|  | } VkSamplerYcbcrConversionInfo; | 
|  |  | 
|  | typedef struct VkBindImagePlaneMemoryInfo { | 
|  | VkStructureType          sType; | 
|  | const void*              pNext; | 
|  | VkImageAspectFlagBits    planeAspect; | 
|  | } VkBindImagePlaneMemoryInfo; | 
|  |  | 
|  | typedef struct VkImagePlaneMemoryRequirementsInfo { | 
|  | VkStructureType          sType; | 
|  | const void*              pNext; | 
|  | VkImageAspectFlagBits    planeAspect; | 
|  | } VkImagePlaneMemoryRequirementsInfo; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceSamplerYcbcrConversionFeatures { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | VkBool32           samplerYcbcrConversion; | 
|  | } VkPhysicalDeviceSamplerYcbcrConversionFeatures; | 
|  |  | 
|  | typedef struct VkSamplerYcbcrConversionImageFormatProperties { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | uint32_t           combinedImageSamplerDescriptorCount; | 
|  | } VkSamplerYcbcrConversionImageFormatProperties; | 
|  |  | 
|  | typedef struct VkDescriptorUpdateTemplateEntry { | 
|  | uint32_t            dstBinding; | 
|  | uint32_t            dstArrayElement; | 
|  | uint32_t            descriptorCount; | 
|  | VkDescriptorType    descriptorType; | 
|  | size_t              offset; | 
|  | size_t              stride; | 
|  | } VkDescriptorUpdateTemplateEntry; | 
|  |  | 
|  | typedef struct VkDescriptorUpdateTemplateCreateInfo { | 
|  | VkStructureType                           sType; | 
|  | void*                                     pNext; | 
|  | VkDescriptorUpdateTemplateCreateFlags     flags; | 
|  | uint32_t                                  descriptorUpdateEntryCount; | 
|  | const VkDescriptorUpdateTemplateEntry*    pDescriptorUpdateEntries; | 
|  | VkDescriptorUpdateTemplateType            templateType; | 
|  | VkDescriptorSetLayout                     descriptorSetLayout; | 
|  | VkPipelineBindPoint                       pipelineBindPoint; | 
|  | VkPipelineLayout                          pipelineLayout; | 
|  | uint32_t                                  set; | 
|  | } VkDescriptorUpdateTemplateCreateInfo; | 
|  |  | 
|  | typedef struct VkExternalMemoryProperties { | 
|  | VkExternalMemoryFeatureFlags       externalMemoryFeatures; | 
|  | VkExternalMemoryHandleTypeFlags    exportFromImportedHandleTypes; | 
|  | VkExternalMemoryHandleTypeFlags    compatibleHandleTypes; | 
|  | } VkExternalMemoryProperties; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceExternalImageFormatInfo { | 
|  | VkStructureType                       sType; | 
|  | const void*                           pNext; | 
|  | VkExternalMemoryHandleTypeFlagBits    handleType; | 
|  | } VkPhysicalDeviceExternalImageFormatInfo; | 
|  |  | 
|  | typedef struct VkExternalImageFormatProperties { | 
|  | VkStructureType               sType; | 
|  | void*                         pNext; | 
|  | VkExternalMemoryProperties    externalMemoryProperties; | 
|  | } VkExternalImageFormatProperties; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceExternalBufferInfo { | 
|  | VkStructureType                       sType; | 
|  | const void*                           pNext; | 
|  | VkBufferCreateFlags                   flags; | 
|  | VkBufferUsageFlags                    usage; | 
|  | VkExternalMemoryHandleTypeFlagBits    handleType; | 
|  | } VkPhysicalDeviceExternalBufferInfo; | 
|  |  | 
|  | typedef struct VkExternalBufferProperties { | 
|  | VkStructureType               sType; | 
|  | void*                         pNext; | 
|  | VkExternalMemoryProperties    externalMemoryProperties; | 
|  | } VkExternalBufferProperties; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceIDProperties { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | uint8_t            deviceUUID[VK_UUID_SIZE]; | 
|  | uint8_t            driverUUID[VK_UUID_SIZE]; | 
|  | uint8_t            deviceLUID[VK_LUID_SIZE]; | 
|  | uint32_t           deviceNodeMask; | 
|  | VkBool32           deviceLUIDValid; | 
|  | } VkPhysicalDeviceIDProperties; | 
|  |  | 
|  | typedef struct VkExternalMemoryImageCreateInfo { | 
|  | VkStructureType                    sType; | 
|  | const void*                        pNext; | 
|  | VkExternalMemoryHandleTypeFlags    handleTypes; | 
|  | } VkExternalMemoryImageCreateInfo; | 
|  |  | 
|  | typedef struct VkExternalMemoryBufferCreateInfo { | 
|  | VkStructureType                    sType; | 
|  | const void*                        pNext; | 
|  | VkExternalMemoryHandleTypeFlags    handleTypes; | 
|  | } VkExternalMemoryBufferCreateInfo; | 
|  |  | 
|  | typedef struct VkExportMemoryAllocateInfo { | 
|  | VkStructureType                    sType; | 
|  | const void*                        pNext; | 
|  | VkExternalMemoryHandleTypeFlags    handleTypes; | 
|  | } VkExportMemoryAllocateInfo; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceExternalFenceInfo { | 
|  | VkStructureType                      sType; | 
|  | const void*                          pNext; | 
|  | VkExternalFenceHandleTypeFlagBits    handleType; | 
|  | } VkPhysicalDeviceExternalFenceInfo; | 
|  |  | 
|  | typedef struct VkExternalFenceProperties { | 
|  | VkStructureType                   sType; | 
|  | void*                             pNext; | 
|  | VkExternalFenceHandleTypeFlags    exportFromImportedHandleTypes; | 
|  | VkExternalFenceHandleTypeFlags    compatibleHandleTypes; | 
|  | VkExternalFenceFeatureFlags       externalFenceFeatures; | 
|  | } VkExternalFenceProperties; | 
|  |  | 
|  | typedef struct VkExportFenceCreateInfo { | 
|  | VkStructureType                   sType; | 
|  | const void*                       pNext; | 
|  | VkExternalFenceHandleTypeFlags    handleTypes; | 
|  | } VkExportFenceCreateInfo; | 
|  |  | 
|  | typedef struct VkExportSemaphoreCreateInfo { | 
|  | VkStructureType                       sType; | 
|  | const void*                           pNext; | 
|  | VkExternalSemaphoreHandleTypeFlags    handleTypes; | 
|  | } VkExportSemaphoreCreateInfo; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceExternalSemaphoreInfo { | 
|  | VkStructureType                          sType; | 
|  | const void*                              pNext; | 
|  | VkExternalSemaphoreHandleTypeFlagBits    handleType; | 
|  | } VkPhysicalDeviceExternalSemaphoreInfo; | 
|  |  | 
|  | typedef struct VkExternalSemaphoreProperties { | 
|  | VkStructureType                       sType; | 
|  | void*                                 pNext; | 
|  | VkExternalSemaphoreHandleTypeFlags    exportFromImportedHandleTypes; | 
|  | VkExternalSemaphoreHandleTypeFlags    compatibleHandleTypes; | 
|  | VkExternalSemaphoreFeatureFlags       externalSemaphoreFeatures; | 
|  | } VkExternalSemaphoreProperties; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceMaintenance3Properties { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | uint32_t           maxPerSetDescriptors; | 
|  | VkDeviceSize       maxMemoryAllocationSize; | 
|  | } VkPhysicalDeviceMaintenance3Properties; | 
|  |  | 
|  | typedef struct VkDescriptorSetLayoutSupport { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | VkBool32           supported; | 
|  | } VkDescriptorSetLayoutSupport; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceShaderDrawParameterFeatures { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | VkBool32           shaderDrawParameters; | 
|  | } VkPhysicalDeviceShaderDrawParameterFeatures; | 
|  |  | 
|  |  | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceVersion)(uint32_t* pApiVersion); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos); | 
|  | typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeatures)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMask)(VkCommandBuffer commandBuffer, uint32_t deviceMask); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdDispatchBase)(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_vkEnumeratePhysicalDeviceGroups)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties); | 
|  | typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements); | 
|  | typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements); | 
|  | typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements); | 
|  | typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures); | 
|  | typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties); | 
|  | typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties); | 
|  | typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties); | 
|  | typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties); | 
|  | typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties); | 
|  | typedef void (VKAPI_PTR *PFN_vkTrimCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags); | 
|  | typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue2)(VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversion)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion); | 
|  | typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversion)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplate)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate); | 
|  | typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplate)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator); | 
|  | typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplate)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData); | 
|  | typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties); | 
|  | typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFenceProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties); | 
|  | typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphoreProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties); | 
|  | typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupport)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceVersion( | 
|  | uint32_t*                                   pApiVersion); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2( | 
|  | VkDevice                                    device, | 
|  | uint32_t                                    bindInfoCount, | 
|  | const VkBindBufferMemoryInfo*               pBindInfos); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2( | 
|  | VkDevice                                    device, | 
|  | uint32_t                                    bindInfoCount, | 
|  | const VkBindImageMemoryInfo*                pBindInfos); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeatures( | 
|  | VkDevice                                    device, | 
|  | uint32_t                                    heapIndex, | 
|  | uint32_t                                    localDeviceIndex, | 
|  | uint32_t                                    remoteDeviceIndex, | 
|  | VkPeerMemoryFeatureFlags*                   pPeerMemoryFeatures); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMask( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | uint32_t                                    deviceMask); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBase( | 
|  | 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 vkEnumeratePhysicalDeviceGroups( | 
|  | VkInstance                                  instance, | 
|  | uint32_t*                                   pPhysicalDeviceGroupCount, | 
|  | VkPhysicalDeviceGroupProperties*            pPhysicalDeviceGroupProperties); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2( | 
|  | VkDevice                                    device, | 
|  | const VkImageMemoryRequirementsInfo2*       pInfo, | 
|  | VkMemoryRequirements2*                      pMemoryRequirements); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2( | 
|  | VkDevice                                    device, | 
|  | const VkBufferMemoryRequirementsInfo2*      pInfo, | 
|  | VkMemoryRequirements2*                      pMemoryRequirements); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2( | 
|  | VkDevice                                    device, | 
|  | const VkImageSparseMemoryRequirementsInfo2* pInfo, | 
|  | uint32_t*                                   pSparseMemoryRequirementCount, | 
|  | VkSparseImageMemoryRequirements2*           pSparseMemoryRequirements); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | VkPhysicalDeviceFeatures2*                  pFeatures); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | VkPhysicalDeviceProperties2*                pProperties); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | VkFormat                                    format, | 
|  | VkFormatProperties2*                        pFormatProperties); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | const VkPhysicalDeviceImageFormatInfo2*     pImageFormatInfo, | 
|  | VkImageFormatProperties2*                   pImageFormatProperties); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | uint32_t*                                   pQueueFamilyPropertyCount, | 
|  | VkQueueFamilyProperties2*                   pQueueFamilyProperties); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | VkPhysicalDeviceMemoryProperties2*          pMemoryProperties); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, | 
|  | uint32_t*                                   pPropertyCount, | 
|  | VkSparseImageFormatProperties2*             pProperties); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkTrimCommandPool( | 
|  | VkDevice                                    device, | 
|  | VkCommandPool                               commandPool, | 
|  | VkCommandPoolTrimFlags                      flags); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue2( | 
|  | VkDevice                                    device, | 
|  | const VkDeviceQueueInfo2*                   pQueueInfo, | 
|  | VkQueue*                                    pQueue); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversion( | 
|  | VkDevice                                    device, | 
|  | const VkSamplerYcbcrConversionCreateInfo*   pCreateInfo, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkSamplerYcbcrConversion*                   pYcbcrConversion); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversion( | 
|  | VkDevice                                    device, | 
|  | VkSamplerYcbcrConversion                    ycbcrConversion, | 
|  | const VkAllocationCallbacks*                pAllocator); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplate( | 
|  | VkDevice                                    device, | 
|  | const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkDescriptorUpdateTemplate*                 pDescriptorUpdateTemplate); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplate( | 
|  | VkDevice                                    device, | 
|  | VkDescriptorUpdateTemplate                  descriptorUpdateTemplate, | 
|  | const VkAllocationCallbacks*                pAllocator); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplate( | 
|  | VkDevice                                    device, | 
|  | VkDescriptorSet                             descriptorSet, | 
|  | VkDescriptorUpdateTemplate                  descriptorUpdateTemplate, | 
|  | const void*                                 pData); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferProperties( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | const VkPhysicalDeviceExternalBufferInfo*   pExternalBufferInfo, | 
|  | VkExternalBufferProperties*                 pExternalBufferProperties); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFenceProperties( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | const VkPhysicalDeviceExternalFenceInfo*    pExternalFenceInfo, | 
|  | VkExternalFenceProperties*                  pExternalFenceProperties); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphoreProperties( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, | 
|  | VkExternalSemaphoreProperties*              pExternalSemaphoreProperties); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupport( | 
|  | VkDevice                                    device, | 
|  | const VkDescriptorSetLayoutCreateInfo*      pCreateInfo, | 
|  | VkDescriptorSetLayoutSupport*               pSupport); | 
|  | #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" | 
|  |  | 
|  |  | 
|  | 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_COLORSPACE_SRGB_NONLINEAR_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR, | 
|  | 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     70 | 
|  | #define VK_KHR_SWAPCHAIN_EXTENSION_NAME   "VK_KHR_swapchain" | 
|  |  | 
|  |  | 
|  | typedef enum VkSwapchainCreateFlagBitsKHR { | 
|  | VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001, | 
|  | VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002, | 
|  | VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF | 
|  | } VkSwapchainCreateFlagBitsKHR; | 
|  | typedef VkFlags VkSwapchainCreateFlagsKHR; | 
|  |  | 
|  | typedef enum VkDeviceGroupPresentModeFlagBitsKHR { | 
|  | VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0x00000001, | 
|  | VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0x00000002, | 
|  | VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0x00000004, | 
|  | VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0x00000008, | 
|  | VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF | 
|  | } VkDeviceGroupPresentModeFlagBitsKHR; | 
|  | typedef VkFlags VkDeviceGroupPresentModeFlagsKHR; | 
|  |  | 
|  | 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 struct VkImageSwapchainCreateInfoKHR { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | VkSwapchainKHR     swapchain; | 
|  | } VkImageSwapchainCreateInfoKHR; | 
|  |  | 
|  | typedef struct VkBindImageMemorySwapchainInfoKHR { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | VkSwapchainKHR     swapchain; | 
|  | uint32_t           imageIndex; | 
|  | } VkBindImageMemorySwapchainInfoKHR; | 
|  |  | 
|  | typedef struct VkAcquireNextImageInfoKHR { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | VkSwapchainKHR     swapchain; | 
|  | uint64_t           timeout; | 
|  | VkSemaphore        semaphore; | 
|  | VkFence            fence; | 
|  | uint32_t           deviceMask; | 
|  | } VkAcquireNextImageInfoKHR; | 
|  |  | 
|  | typedef struct VkDeviceGroupPresentCapabilitiesKHR { | 
|  | VkStructureType                     sType; | 
|  | const void*                         pNext; | 
|  | uint32_t                            presentMask[VK_MAX_DEVICE_GROUP_SIZE]; | 
|  | VkDeviceGroupPresentModeFlagsKHR    modes; | 
|  | } VkDeviceGroupPresentCapabilitiesKHR; | 
|  |  | 
|  | typedef struct VkDeviceGroupPresentInfoKHR { | 
|  | VkStructureType                        sType; | 
|  | const void*                            pNext; | 
|  | uint32_t                               swapchainCount; | 
|  | const uint32_t*                        pDeviceMasks; | 
|  | VkDeviceGroupPresentModeFlagBitsKHR    mode; | 
|  | } VkDeviceGroupPresentInfoKHR; | 
|  |  | 
|  | typedef struct VkDeviceGroupSwapchainCreateInfoKHR { | 
|  | VkStructureType                     sType; | 
|  | const void*                         pNext; | 
|  | VkDeviceGroupPresentModeFlagsKHR    modes; | 
|  | } VkDeviceGroupSwapchainCreateInfoKHR; | 
|  |  | 
|  |  | 
|  | 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); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupPresentCapabilitiesKHR)(VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupSurfacePresentModesKHR)(VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDevicePresentRectanglesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImage2KHR)(VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex); | 
|  |  | 
|  | #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); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupPresentCapabilitiesKHR( | 
|  | VkDevice                                    device, | 
|  | VkDeviceGroupPresentCapabilitiesKHR*        pDeviceGroupPresentCapabilities); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModesKHR( | 
|  | VkDevice                                    device, | 
|  | VkSurfaceKHR                                surface, | 
|  | VkDeviceGroupPresentModeFlagsKHR*           pModes); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDevicePresentRectanglesKHR( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | VkSurfaceKHR                                surface, | 
|  | uint32_t*                                   pRectCount, | 
|  | VkRect2D*                                   pRects); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImage2KHR( | 
|  | VkDevice                                    device, | 
|  | const VkAcquireNextImageInfoKHR*            pAcquireInfo, | 
|  | uint32_t*                                   pImageIndex); | 
|  | #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 | 
|  |  | 
|  | #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_multiview 1 | 
|  | #define VK_KHR_MULTIVIEW_SPEC_VERSION     1 | 
|  | #define VK_KHR_MULTIVIEW_EXTENSION_NAME   "VK_KHR_multiview" | 
|  |  | 
|  | typedef VkRenderPassMultiviewCreateInfo VkRenderPassMultiviewCreateInfoKHR; | 
|  |  | 
|  | typedef VkPhysicalDeviceMultiviewFeatures VkPhysicalDeviceMultiviewFeaturesKHR; | 
|  |  | 
|  | typedef VkPhysicalDeviceMultiviewProperties VkPhysicalDeviceMultiviewPropertiesKHR; | 
|  |  | 
|  |  | 
|  |  | 
|  | #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 VkPhysicalDeviceFeatures2 VkPhysicalDeviceFeatures2KHR; | 
|  |  | 
|  | typedef VkPhysicalDeviceProperties2 VkPhysicalDeviceProperties2KHR; | 
|  |  | 
|  | typedef VkFormatProperties2 VkFormatProperties2KHR; | 
|  |  | 
|  | typedef VkImageFormatProperties2 VkImageFormatProperties2KHR; | 
|  |  | 
|  | typedef VkPhysicalDeviceImageFormatInfo2 VkPhysicalDeviceImageFormatInfo2KHR; | 
|  |  | 
|  | typedef VkQueueFamilyProperties2 VkQueueFamilyProperties2KHR; | 
|  |  | 
|  | typedef VkPhysicalDeviceMemoryProperties2 VkPhysicalDeviceMemoryProperties2KHR; | 
|  |  | 
|  | typedef VkSparseImageFormatProperties2 VkSparseImageFormatProperties2KHR; | 
|  |  | 
|  | typedef VkPhysicalDeviceSparseImageFormatInfo2 VkPhysicalDeviceSparseImageFormatInfo2KHR; | 
|  |  | 
|  |  | 
|  | typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures); | 
|  | typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties); | 
|  | typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2KHR)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties); | 
|  | typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties); | 
|  | typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties); | 
|  | typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2KHR( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | VkPhysicalDeviceFeatures2*                  pFeatures); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2KHR( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | VkPhysicalDeviceProperties2*                pProperties); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2KHR( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | VkFormat                                    format, | 
|  | VkFormatProperties2*                        pFormatProperties); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2KHR( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | const VkPhysicalDeviceImageFormatInfo2*     pImageFormatInfo, | 
|  | VkImageFormatProperties2*                   pImageFormatProperties); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2KHR( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | uint32_t*                                   pQueueFamilyPropertyCount, | 
|  | VkQueueFamilyProperties2*                   pQueueFamilyProperties); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2KHR( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | VkPhysicalDeviceMemoryProperties2*          pMemoryProperties); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2KHR( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, | 
|  | uint32_t*                                   pPropertyCount, | 
|  | VkSparseImageFormatProperties2*             pProperties); | 
|  | #endif | 
|  |  | 
|  | #define VK_KHR_device_group 1 | 
|  | #define VK_KHR_DEVICE_GROUP_SPEC_VERSION  3 | 
|  | #define VK_KHR_DEVICE_GROUP_EXTENSION_NAME "VK_KHR_device_group" | 
|  |  | 
|  | typedef VkPeerMemoryFeatureFlags VkPeerMemoryFeatureFlagsKHR; | 
|  |  | 
|  | typedef VkPeerMemoryFeatureFlagBits VkPeerMemoryFeatureFlagBitsKHR; | 
|  |  | 
|  | typedef VkMemoryAllocateFlags VkMemoryAllocateFlagsKHR; | 
|  |  | 
|  | typedef VkMemoryAllocateFlagBits VkMemoryAllocateFlagBitsKHR; | 
|  |  | 
|  |  | 
|  | typedef VkMemoryAllocateFlagsInfo VkMemoryAllocateFlagsInfoKHR; | 
|  |  | 
|  | typedef VkDeviceGroupRenderPassBeginInfo VkDeviceGroupRenderPassBeginInfoKHR; | 
|  |  | 
|  | typedef VkDeviceGroupCommandBufferBeginInfo VkDeviceGroupCommandBufferBeginInfoKHR; | 
|  |  | 
|  | typedef VkDeviceGroupSubmitInfo VkDeviceGroupSubmitInfoKHR; | 
|  |  | 
|  | typedef VkDeviceGroupBindSparseInfo VkDeviceGroupBindSparseInfoKHR; | 
|  |  | 
|  | typedef VkBindBufferMemoryDeviceGroupInfo VkBindBufferMemoryDeviceGroupInfoKHR; | 
|  |  | 
|  | typedef VkBindImageMemoryDeviceGroupInfo VkBindImageMemoryDeviceGroupInfoKHR; | 
|  |  | 
|  |  | 
|  | typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMaskKHR)(VkCommandBuffer commandBuffer, uint32_t deviceMask); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdDispatchBaseKHR)(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeaturesKHR( | 
|  | VkDevice                                    device, | 
|  | uint32_t                                    heapIndex, | 
|  | uint32_t                                    localDeviceIndex, | 
|  | uint32_t                                    remoteDeviceIndex, | 
|  | VkPeerMemoryFeatureFlags*                   pPeerMemoryFeatures); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMaskKHR( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | uint32_t                                    deviceMask); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBaseKHR( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | uint32_t                                    baseGroupX, | 
|  | uint32_t                                    baseGroupY, | 
|  | uint32_t                                    baseGroupZ, | 
|  | uint32_t                                    groupCountX, | 
|  | uint32_t                                    groupCountY, | 
|  | uint32_t                                    groupCountZ); | 
|  | #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  2 | 
|  | #define VK_KHR_MAINTENANCE1_EXTENSION_NAME "VK_KHR_maintenance1" | 
|  |  | 
|  | typedef VkCommandPoolTrimFlags VkCommandPoolTrimFlagsKHR; | 
|  |  | 
|  |  | 
|  | typedef void (VKAPI_PTR *PFN_vkTrimCommandPoolKHR)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR void VKAPI_CALL vkTrimCommandPoolKHR( | 
|  | VkDevice                                    device, | 
|  | VkCommandPool                               commandPool, | 
|  | VkCommandPoolTrimFlags                      flags); | 
|  | #endif | 
|  |  | 
|  | #define VK_KHR_device_group_creation 1 | 
|  | #define VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION 1 | 
|  | #define VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME "VK_KHR_device_group_creation" | 
|  | #define VK_MAX_DEVICE_GROUP_SIZE_KHR      VK_MAX_DEVICE_GROUP_SIZE | 
|  |  | 
|  | typedef VkPhysicalDeviceGroupProperties VkPhysicalDeviceGroupPropertiesKHR; | 
|  |  | 
|  | typedef VkDeviceGroupDeviceCreateInfo VkDeviceGroupDeviceCreateInfoKHR; | 
|  |  | 
|  |  | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroupsKHR)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroupsKHR( | 
|  | VkInstance                                  instance, | 
|  | uint32_t*                                   pPhysicalDeviceGroupCount, | 
|  | VkPhysicalDeviceGroupProperties*            pPhysicalDeviceGroupProperties); | 
|  | #endif | 
|  |  | 
|  | #define VK_KHR_external_memory_capabilities 1 | 
|  | #define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1 | 
|  | #define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_memory_capabilities" | 
|  | #define VK_LUID_SIZE_KHR                  VK_LUID_SIZE | 
|  |  | 
|  | typedef VkExternalMemoryHandleTypeFlags VkExternalMemoryHandleTypeFlagsKHR; | 
|  |  | 
|  | typedef VkExternalMemoryHandleTypeFlagBits VkExternalMemoryHandleTypeFlagBitsKHR; | 
|  |  | 
|  | typedef VkExternalMemoryFeatureFlags VkExternalMemoryFeatureFlagsKHR; | 
|  |  | 
|  | typedef VkExternalMemoryFeatureFlagBits VkExternalMemoryFeatureFlagBitsKHR; | 
|  |  | 
|  |  | 
|  | typedef VkExternalMemoryProperties VkExternalMemoryPropertiesKHR; | 
|  |  | 
|  | typedef VkPhysicalDeviceExternalImageFormatInfo VkPhysicalDeviceExternalImageFormatInfoKHR; | 
|  |  | 
|  | typedef VkExternalImageFormatProperties VkExternalImageFormatPropertiesKHR; | 
|  |  | 
|  | typedef VkPhysicalDeviceExternalBufferInfo VkPhysicalDeviceExternalBufferInfoKHR; | 
|  |  | 
|  | typedef VkExternalBufferProperties VkExternalBufferPropertiesKHR; | 
|  |  | 
|  | typedef VkPhysicalDeviceIDProperties VkPhysicalDeviceIDPropertiesKHR; | 
|  |  | 
|  |  | 
|  | typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferPropertiesKHR( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | const VkPhysicalDeviceExternalBufferInfo*   pExternalBufferInfo, | 
|  | VkExternalBufferProperties*                 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      VK_QUEUE_FAMILY_EXTERNAL | 
|  |  | 
|  | typedef VkExternalMemoryImageCreateInfo VkExternalMemoryImageCreateInfoKHR; | 
|  |  | 
|  | typedef VkExternalMemoryBufferCreateInfo VkExternalMemoryBufferCreateInfoKHR; | 
|  |  | 
|  | typedef VkExportMemoryAllocateInfo VkExportMemoryAllocateInfoKHR; | 
|  |  | 
|  |  | 
|  |  | 
|  | #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; | 
|  | VkExternalMemoryHandleTypeFlagBits    handleType; | 
|  | int                                   fd; | 
|  | } VkImportMemoryFdInfoKHR; | 
|  |  | 
|  | typedef struct VkMemoryFdPropertiesKHR { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | uint32_t           memoryTypeBits; | 
|  | } VkMemoryFdPropertiesKHR; | 
|  |  | 
|  | typedef struct VkMemoryGetFdInfoKHR { | 
|  | VkStructureType                       sType; | 
|  | const void*                           pNext; | 
|  | VkDeviceMemory                        memory; | 
|  | VkExternalMemoryHandleTypeFlagBits    handleType; | 
|  | } VkMemoryGetFdInfoKHR; | 
|  |  | 
|  |  | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdKHR)(VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdPropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBits 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, | 
|  | VkExternalMemoryHandleTypeFlagBits          handleType, | 
|  | int                                         fd, | 
|  | VkMemoryFdPropertiesKHR*                    pMemoryFdProperties); | 
|  | #endif | 
|  |  | 
|  | #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 VkExternalSemaphoreHandleTypeFlags VkExternalSemaphoreHandleTypeFlagsKHR; | 
|  |  | 
|  | typedef VkExternalSemaphoreHandleTypeFlagBits VkExternalSemaphoreHandleTypeFlagBitsKHR; | 
|  |  | 
|  | typedef VkExternalSemaphoreFeatureFlags VkExternalSemaphoreFeatureFlagsKHR; | 
|  |  | 
|  | typedef VkExternalSemaphoreFeatureFlagBits VkExternalSemaphoreFeatureFlagBitsKHR; | 
|  |  | 
|  |  | 
|  | typedef VkPhysicalDeviceExternalSemaphoreInfo VkPhysicalDeviceExternalSemaphoreInfoKHR; | 
|  |  | 
|  | typedef VkExternalSemaphoreProperties VkExternalSemaphorePropertiesKHR; | 
|  |  | 
|  |  | 
|  | typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, | 
|  | VkExternalSemaphoreProperties*              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 VkSemaphoreImportFlags VkSemaphoreImportFlagsKHR; | 
|  |  | 
|  | typedef VkSemaphoreImportFlagBits VkSemaphoreImportFlagBitsKHR; | 
|  |  | 
|  |  | 
|  | typedef VkExportSemaphoreCreateInfo VkExportSemaphoreCreateInfoKHR; | 
|  |  | 
|  |  | 
|  |  | 
|  | #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; | 
|  | VkSemaphoreImportFlags                   flags; | 
|  | VkExternalSemaphoreHandleTypeFlagBits    handleType; | 
|  | int                                      fd; | 
|  | } VkImportSemaphoreFdInfoKHR; | 
|  |  | 
|  | typedef struct VkSemaphoreGetFdInfoKHR { | 
|  | VkStructureType                          sType; | 
|  | const void*                              pNext; | 
|  | VkSemaphore                              semaphore; | 
|  | VkExternalSemaphoreHandleTypeFlagBits    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 2 | 
|  | #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); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplateKHR)(VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData); | 
|  |  | 
|  | #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); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplateKHR( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | VkDescriptorUpdateTemplate                  descriptorUpdateTemplate, | 
|  | VkPipelineLayout                            layout, | 
|  | uint32_t                                    set, | 
|  | const void*                                 pData); | 
|  | #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 VkPhysicalDevice16BitStorageFeatures 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 | 
|  | typedef VkDescriptorUpdateTemplate VkDescriptorUpdateTemplateKHR; | 
|  |  | 
|  |  | 
|  | #define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1 | 
|  | #define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME "VK_KHR_descriptor_update_template" | 
|  |  | 
|  | typedef VkDescriptorUpdateTemplateType VkDescriptorUpdateTemplateTypeKHR; | 
|  |  | 
|  |  | 
|  | typedef VkDescriptorUpdateTemplateCreateFlags VkDescriptorUpdateTemplateCreateFlagsKHR; | 
|  |  | 
|  |  | 
|  | typedef VkDescriptorUpdateTemplateEntry VkDescriptorUpdateTemplateEntryKHR; | 
|  |  | 
|  | typedef VkDescriptorUpdateTemplateCreateInfo VkDescriptorUpdateTemplateCreateInfoKHR; | 
|  |  | 
|  |  | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplateKHR)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate); | 
|  | typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplateKHR)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator); | 
|  | typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplateKHR)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplateKHR( | 
|  | VkDevice                                    device, | 
|  | const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkDescriptorUpdateTemplate*                 pDescriptorUpdateTemplate); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplateKHR( | 
|  | VkDevice                                    device, | 
|  | VkDescriptorUpdateTemplate                  descriptorUpdateTemplate, | 
|  | const VkAllocationCallbacks*                pAllocator); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplateKHR( | 
|  | VkDevice                                    device, | 
|  | VkDescriptorSet                             descriptorSet, | 
|  | VkDescriptorUpdateTemplate                  descriptorUpdateTemplate, | 
|  | const void*                                 pData); | 
|  | #endif | 
|  |  | 
|  | #define VK_KHR_create_renderpass2 1 | 
|  | #define VK_KHR_CREATE_RENDERPASS_2_SPEC_VERSION 1 | 
|  | #define VK_KHR_CREATE_RENDERPASS_2_EXTENSION_NAME "VK_KHR_create_renderpass2" | 
|  |  | 
|  | typedef struct VkAttachmentDescription2KHR { | 
|  | VkStructureType                 sType; | 
|  | const void*                     pNext; | 
|  | VkAttachmentDescriptionFlags    flags; | 
|  | VkFormat                        format; | 
|  | VkSampleCountFlagBits           samples; | 
|  | VkAttachmentLoadOp              loadOp; | 
|  | VkAttachmentStoreOp             storeOp; | 
|  | VkAttachmentLoadOp              stencilLoadOp; | 
|  | VkAttachmentStoreOp             stencilStoreOp; | 
|  | VkImageLayout                   initialLayout; | 
|  | VkImageLayout                   finalLayout; | 
|  | } VkAttachmentDescription2KHR; | 
|  |  | 
|  | typedef struct VkAttachmentReference2KHR { | 
|  | VkStructureType       sType; | 
|  | const void*           pNext; | 
|  | uint32_t              attachment; | 
|  | VkImageLayout         layout; | 
|  | VkImageAspectFlags    aspectMask; | 
|  | } VkAttachmentReference2KHR; | 
|  |  | 
|  | typedef struct VkSubpassDescription2KHR { | 
|  | VkStructureType                     sType; | 
|  | const void*                         pNext; | 
|  | VkSubpassDescriptionFlags           flags; | 
|  | VkPipelineBindPoint                 pipelineBindPoint; | 
|  | uint32_t                            viewMask; | 
|  | uint32_t                            inputAttachmentCount; | 
|  | const VkAttachmentReference2KHR*    pInputAttachments; | 
|  | uint32_t                            colorAttachmentCount; | 
|  | const VkAttachmentReference2KHR*    pColorAttachments; | 
|  | const VkAttachmentReference2KHR*    pResolveAttachments; | 
|  | const VkAttachmentReference2KHR*    pDepthStencilAttachment; | 
|  | uint32_t                            preserveAttachmentCount; | 
|  | const uint32_t*                     pPreserveAttachments; | 
|  | } VkSubpassDescription2KHR; | 
|  |  | 
|  | typedef struct VkSubpassDependency2KHR { | 
|  | VkStructureType         sType; | 
|  | const void*             pNext; | 
|  | uint32_t                srcSubpass; | 
|  | uint32_t                dstSubpass; | 
|  | VkPipelineStageFlags    srcStageMask; | 
|  | VkPipelineStageFlags    dstStageMask; | 
|  | VkAccessFlags           srcAccessMask; | 
|  | VkAccessFlags           dstAccessMask; | 
|  | VkDependencyFlags       dependencyFlags; | 
|  | int32_t                 viewOffset; | 
|  | } VkSubpassDependency2KHR; | 
|  |  | 
|  | typedef struct VkRenderPassCreateInfo2KHR { | 
|  | VkStructureType                       sType; | 
|  | const void*                           pNext; | 
|  | VkRenderPassCreateFlags               flags; | 
|  | uint32_t                              attachmentCount; | 
|  | const VkAttachmentDescription2KHR*    pAttachments; | 
|  | uint32_t                              subpassCount; | 
|  | const VkSubpassDescription2KHR*       pSubpasses; | 
|  | uint32_t                              dependencyCount; | 
|  | const VkSubpassDependency2KHR*        pDependencies; | 
|  | uint32_t                              correlatedViewMaskCount; | 
|  | const uint32_t*                       pCorrelatedViewMasks; | 
|  | } VkRenderPassCreateInfo2KHR; | 
|  |  | 
|  | typedef struct VkSubpassBeginInfoKHR { | 
|  | VkStructureType      sType; | 
|  | const void*          pNext; | 
|  | VkSubpassContents    contents; | 
|  | } VkSubpassBeginInfoKHR; | 
|  |  | 
|  | typedef struct VkSubpassEndInfoKHR { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | } VkSubpassEndInfoKHR; | 
|  |  | 
|  |  | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2KHR)(VkDevice device, const VkRenderPassCreateInfo2KHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo*      pRenderPassBegin, const VkSubpassBeginInfoKHR*      pSubpassBeginInfo); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfoKHR*      pSubpassBeginInfo, const VkSubpassEndInfoKHR*        pSubpassEndInfo); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassEndInfoKHR*        pSubpassEndInfo); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2KHR( | 
|  | VkDevice                                    device, | 
|  | const VkRenderPassCreateInfo2KHR*           pCreateInfo, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkRenderPass*                               pRenderPass); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2KHR( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | const VkRenderPassBeginInfo*                pRenderPassBegin, | 
|  | const VkSubpassBeginInfoKHR*                pSubpassBeginInfo); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2KHR( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | const VkSubpassBeginInfoKHR*                pSubpassBeginInfo, | 
|  | const VkSubpassEndInfoKHR*                  pSubpassEndInfo); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2KHR( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | const VkSubpassEndInfoKHR*                  pSubpassEndInfo); | 
|  | #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 VkExternalFenceHandleTypeFlags VkExternalFenceHandleTypeFlagsKHR; | 
|  |  | 
|  | typedef VkExternalFenceHandleTypeFlagBits VkExternalFenceHandleTypeFlagBitsKHR; | 
|  |  | 
|  | typedef VkExternalFenceFeatureFlags VkExternalFenceFeatureFlagsKHR; | 
|  |  | 
|  | typedef VkExternalFenceFeatureFlagBits VkExternalFenceFeatureFlagBitsKHR; | 
|  |  | 
|  |  | 
|  | typedef VkPhysicalDeviceExternalFenceInfo VkPhysicalDeviceExternalFenceInfoKHR; | 
|  |  | 
|  | typedef VkExternalFenceProperties VkExternalFencePropertiesKHR; | 
|  |  | 
|  |  | 
|  | typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFencePropertiesKHR( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | const VkPhysicalDeviceExternalFenceInfo*    pExternalFenceInfo, | 
|  | VkExternalFenceProperties*                  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 VkFenceImportFlags VkFenceImportFlagsKHR; | 
|  |  | 
|  | typedef VkFenceImportFlagBits VkFenceImportFlagBitsKHR; | 
|  |  | 
|  |  | 
|  | typedef VkExportFenceCreateInfo VkExportFenceCreateInfoKHR; | 
|  |  | 
|  |  | 
|  |  | 
|  | #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; | 
|  | VkFenceImportFlags                   flags; | 
|  | VkExternalFenceHandleTypeFlagBits    handleType; | 
|  | int                                  fd; | 
|  | } VkImportFenceFdInfoKHR; | 
|  |  | 
|  | typedef struct VkFenceGetFdInfoKHR { | 
|  | VkStructureType                      sType; | 
|  | const void*                          pNext; | 
|  | VkFence                              fence; | 
|  | VkExternalFenceHandleTypeFlagBits    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 VkPointClippingBehavior VkPointClippingBehaviorKHR; | 
|  |  | 
|  | typedef VkTessellationDomainOrigin VkTessellationDomainOriginKHR; | 
|  |  | 
|  |  | 
|  | typedef VkPhysicalDevicePointClippingProperties VkPhysicalDevicePointClippingPropertiesKHR; | 
|  |  | 
|  | typedef VkRenderPassInputAttachmentAspectCreateInfo VkRenderPassInputAttachmentAspectCreateInfoKHR; | 
|  |  | 
|  | typedef VkInputAttachmentAspectReference VkInputAttachmentAspectReferenceKHR; | 
|  |  | 
|  | typedef VkImageViewUsageCreateInfo VkImageViewUsageCreateInfoKHR; | 
|  |  | 
|  | typedef VkPipelineTessellationDomainOriginStateCreateInfo 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 VkPhysicalDeviceVariablePointerFeatures VkPhysicalDeviceVariablePointerFeaturesKHR; | 
|  |  | 
|  |  | 
|  |  | 
|  | #define VK_KHR_get_display_properties2 1 | 
|  | #define VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION 1 | 
|  | #define VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_display_properties2" | 
|  |  | 
|  | typedef struct VkDisplayProperties2KHR { | 
|  | VkStructureType           sType; | 
|  | void*                     pNext; | 
|  | VkDisplayPropertiesKHR    displayProperties; | 
|  | } VkDisplayProperties2KHR; | 
|  |  | 
|  | typedef struct VkDisplayPlaneProperties2KHR { | 
|  | VkStructureType                sType; | 
|  | void*                          pNext; | 
|  | VkDisplayPlanePropertiesKHR    displayPlaneProperties; | 
|  | } VkDisplayPlaneProperties2KHR; | 
|  |  | 
|  | typedef struct VkDisplayModeProperties2KHR { | 
|  | VkStructureType               sType; | 
|  | void*                         pNext; | 
|  | VkDisplayModePropertiesKHR    displayModeProperties; | 
|  | } VkDisplayModeProperties2KHR; | 
|  |  | 
|  | typedef struct VkDisplayPlaneInfo2KHR { | 
|  | VkStructureType     sType; | 
|  | const void*         pNext; | 
|  | VkDisplayModeKHR    mode; | 
|  | uint32_t            planeIndex; | 
|  | } VkDisplayPlaneInfo2KHR; | 
|  |  | 
|  | typedef struct VkDisplayPlaneCapabilities2KHR { | 
|  | VkStructureType                  sType; | 
|  | void*                            pNext; | 
|  | VkDisplayPlaneCapabilitiesKHR    capabilities; | 
|  | } VkDisplayPlaneCapabilities2KHR; | 
|  |  | 
|  |  | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayProperties2KHR* pProperties); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModeProperties2KHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModeProperties2KHR* pProperties); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayProperties2KHR( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | uint32_t*                                   pPropertyCount, | 
|  | VkDisplayProperties2KHR*                    pProperties); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlaneProperties2KHR( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | uint32_t*                                   pPropertyCount, | 
|  | VkDisplayPlaneProperties2KHR*               pProperties); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModeProperties2KHR( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | VkDisplayKHR                                display, | 
|  | uint32_t*                                   pPropertyCount, | 
|  | VkDisplayModeProperties2KHR*                pProperties); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilities2KHR( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | const VkDisplayPlaneInfo2KHR*               pDisplayPlaneInfo, | 
|  | VkDisplayPlaneCapabilities2KHR*             pCapabilities); | 
|  | #endif | 
|  |  | 
|  | #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 VkMemoryDedicatedRequirements VkMemoryDedicatedRequirementsKHR; | 
|  |  | 
|  | typedef VkMemoryDedicatedAllocateInfo 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 VkBufferMemoryRequirementsInfo2 VkBufferMemoryRequirementsInfo2KHR; | 
|  |  | 
|  | typedef VkImageMemoryRequirementsInfo2 VkImageMemoryRequirementsInfo2KHR; | 
|  |  | 
|  | typedef VkImageSparseMemoryRequirementsInfo2 VkImageSparseMemoryRequirementsInfo2KHR; | 
|  |  | 
|  | typedef VkSparseImageMemoryRequirements2 VkSparseImageMemoryRequirements2KHR; | 
|  |  | 
|  |  | 
|  | typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2KHR)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements); | 
|  | typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2KHR)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements); | 
|  | typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2KHR)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2KHR( | 
|  | VkDevice                                    device, | 
|  | const VkImageMemoryRequirementsInfo2*       pInfo, | 
|  | VkMemoryRequirements2*                      pMemoryRequirements); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2KHR( | 
|  | VkDevice                                    device, | 
|  | const VkBufferMemoryRequirementsInfo2*      pInfo, | 
|  | VkMemoryRequirements2*                      pMemoryRequirements); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2KHR( | 
|  | VkDevice                                    device, | 
|  | const VkImageSparseMemoryRequirementsInfo2* pInfo, | 
|  | uint32_t*                                   pSparseMemoryRequirementCount, | 
|  | VkSparseImageMemoryRequirements2*           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 | 
|  | typedef VkSamplerYcbcrConversion VkSamplerYcbcrConversionKHR; | 
|  |  | 
|  |  | 
|  | #define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 1 | 
|  | #define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion" | 
|  |  | 
|  | typedef VkSamplerYcbcrModelConversion VkSamplerYcbcrModelConversionKHR; | 
|  |  | 
|  | typedef VkSamplerYcbcrRange VkSamplerYcbcrRangeKHR; | 
|  |  | 
|  | typedef VkChromaLocation VkChromaLocationKHR; | 
|  |  | 
|  |  | 
|  | typedef VkSamplerYcbcrConversionCreateInfo VkSamplerYcbcrConversionCreateInfoKHR; | 
|  |  | 
|  | typedef VkSamplerYcbcrConversionInfo VkSamplerYcbcrConversionInfoKHR; | 
|  |  | 
|  | typedef VkBindImagePlaneMemoryInfo VkBindImagePlaneMemoryInfoKHR; | 
|  |  | 
|  | typedef VkImagePlaneMemoryRequirementsInfo VkImagePlaneMemoryRequirementsInfoKHR; | 
|  |  | 
|  | typedef VkPhysicalDeviceSamplerYcbcrConversionFeatures VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR; | 
|  |  | 
|  | typedef VkSamplerYcbcrConversionImageFormatProperties VkSamplerYcbcrConversionImageFormatPropertiesKHR; | 
|  |  | 
|  |  | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversionKHR)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion); | 
|  | typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversionKHR)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversionKHR( | 
|  | VkDevice                                    device, | 
|  | const VkSamplerYcbcrConversionCreateInfo*   pCreateInfo, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkSamplerYcbcrConversion*                   pYcbcrConversion); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversionKHR( | 
|  | VkDevice                                    device, | 
|  | VkSamplerYcbcrConversion                    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 VkBindBufferMemoryInfo VkBindBufferMemoryInfoKHR; | 
|  |  | 
|  | typedef VkBindImageMemoryInfo VkBindImageMemoryInfoKHR; | 
|  |  | 
|  |  | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2KHR( | 
|  | VkDevice                                    device, | 
|  | uint32_t                                    bindInfoCount, | 
|  | const VkBindBufferMemoryInfo*               pBindInfos); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2KHR( | 
|  | VkDevice                                    device, | 
|  | uint32_t                                    bindInfoCount, | 
|  | const VkBindImageMemoryInfo*                pBindInfos); | 
|  | #endif | 
|  |  | 
|  | #define VK_KHR_maintenance3 1 | 
|  | #define VK_KHR_MAINTENANCE3_SPEC_VERSION  1 | 
|  | #define VK_KHR_MAINTENANCE3_EXTENSION_NAME "VK_KHR_maintenance3" | 
|  |  | 
|  | typedef VkPhysicalDeviceMaintenance3Properties VkPhysicalDeviceMaintenance3PropertiesKHR; | 
|  |  | 
|  | typedef VkDescriptorSetLayoutSupport VkDescriptorSetLayoutSupportKHR; | 
|  |  | 
|  |  | 
|  | typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupportKHR)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupportKHR( | 
|  | VkDevice                                    device, | 
|  | const VkDescriptorSetLayoutCreateInfo*      pCreateInfo, | 
|  | VkDescriptorSetLayoutSupport*               pSupport); | 
|  | #endif | 
|  |  | 
|  | #define VK_KHR_draw_indirect_count 1 | 
|  | #define VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION 1 | 
|  | #define VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_KHR_draw_indirect_count" | 
|  |  | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountKHR)(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 vkCmdDrawIndirectCountKHR( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | VkBuffer                                    buffer, | 
|  | VkDeviceSize                                offset, | 
|  | VkBuffer                                    countBuffer, | 
|  | VkDeviceSize                                countBufferOffset, | 
|  | uint32_t                                    maxDrawCount, | 
|  | uint32_t                                    stride); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountKHR( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | VkBuffer                                    buffer, | 
|  | VkDeviceSize                                offset, | 
|  | VkBuffer                                    countBuffer, | 
|  | VkDeviceSize                                countBufferOffset, | 
|  | uint32_t                                    maxDrawCount, | 
|  | uint32_t                                    stride); | 
|  | #endif | 
|  |  | 
|  | #define VK_KHR_8bit_storage 1 | 
|  | #define VK_KHR_8BIT_STORAGE_SPEC_VERSION  1 | 
|  | #define VK_KHR_8BIT_STORAGE_EXTENSION_NAME "VK_KHR_8bit_storage" | 
|  |  | 
|  | typedef struct VkPhysicalDevice8BitStorageFeaturesKHR { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | VkBool32           storageBuffer8BitAccess; | 
|  | VkBool32           uniformAndStorageBuffer8BitAccess; | 
|  | VkBool32           storagePushConstant8; | 
|  | } VkPhysicalDevice8BitStorageFeaturesKHR; | 
|  |  | 
|  |  | 
|  |  | 
|  | #define VK_KHR_shader_atomic_int64 1 | 
|  | #define VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION 1 | 
|  | #define VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME "VK_KHR_shader_atomic_int64" | 
|  |  | 
|  | typedef struct VkPhysicalDeviceShaderAtomicInt64FeaturesKHR { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | VkBool32           shaderBufferInt64Atomics; | 
|  | VkBool32           shaderSharedInt64Atomics; | 
|  | } VkPhysicalDeviceShaderAtomicInt64FeaturesKHR; | 
|  |  | 
|  |  | 
|  |  | 
|  | #define VK_KHR_driver_properties 1 | 
|  | #define VK_MAX_DRIVER_NAME_SIZE_KHR       256 | 
|  | #define VK_MAX_DRIVER_INFO_SIZE_KHR       256 | 
|  | #define VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION 1 | 
|  | #define VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME "VK_KHR_driver_properties" | 
|  |  | 
|  |  | 
|  | typedef enum VkDriverIdKHR { | 
|  | VK_DRIVER_ID_AMD_PROPRIETARY_KHR = 1, | 
|  | VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = 2, | 
|  | VK_DRIVER_ID_MESA_RADV_KHR = 3, | 
|  | VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR = 4, | 
|  | VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR = 5, | 
|  | VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR = 6, | 
|  | VK_DRIVER_ID_IMAGINATION_PROPRIETARY_KHR = 7, | 
|  | VK_DRIVER_ID_QUALCOMM_PROPRIETARY_KHR = 8, | 
|  | VK_DRIVER_ID_ARM_PROPRIETARY_KHR = 9, | 
|  | VK_DRIVER_ID_GOOGLE_PASTEL_KHR = 10, | 
|  | VK_DRIVER_ID_BEGIN_RANGE_KHR = VK_DRIVER_ID_AMD_PROPRIETARY_KHR, | 
|  | VK_DRIVER_ID_END_RANGE_KHR = VK_DRIVER_ID_GOOGLE_PASTEL_KHR, | 
|  | VK_DRIVER_ID_RANGE_SIZE_KHR = (VK_DRIVER_ID_GOOGLE_PASTEL_KHR - VK_DRIVER_ID_AMD_PROPRIETARY_KHR + 1), | 
|  | VK_DRIVER_ID_MAX_ENUM_KHR = 0x7FFFFFFF | 
|  | } VkDriverIdKHR; | 
|  |  | 
|  | typedef struct VkConformanceVersionKHR { | 
|  | uint8_t    major; | 
|  | uint8_t    minor; | 
|  | uint8_t    subminor; | 
|  | uint8_t    patch; | 
|  | } VkConformanceVersionKHR; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceDriverPropertiesKHR { | 
|  | VkStructureType            sType; | 
|  | void*                      pNext; | 
|  | VkDriverIdKHR              driverID; | 
|  | char                       driverName[VK_MAX_DRIVER_NAME_SIZE_KHR]; | 
|  | char                       driverInfo[VK_MAX_DRIVER_INFO_SIZE_KHR]; | 
|  | VkConformanceVersionKHR    conformanceVersion; | 
|  | } VkPhysicalDeviceDriverPropertiesKHR; | 
|  |  | 
|  |  | 
|  |  | 
|  | #define VK_KHR_vulkan_memory_model 1 | 
|  | #define VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION 2 | 
|  | #define VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME "VK_KHR_vulkan_memory_model" | 
|  |  | 
|  | typedef struct VkPhysicalDeviceVulkanMemoryModelFeaturesKHR { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | VkBool32           vulkanMemoryModel; | 
|  | VkBool32           vulkanMemoryModelDeviceScope; | 
|  | } VkPhysicalDeviceVulkanMemoryModelFeaturesKHR; | 
|  |  | 
|  |  | 
|  |  | 
|  | #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" | 
|  |  | 
|  |  | 
|  | 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_EXT = 33, | 
|  | VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000, | 
|  | VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000, | 
|  | VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000, | 
|  | VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT, | 
|  | VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT, | 
|  | VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT, | 
|  | VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT, | 
|  | 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_EXT, | 
|  | VK_DEBUG_REPORT_OBJECT_TYPE_RANGE_SIZE_EXT = (VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_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_EXT_transform_feedback 1 | 
|  | #define VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION 1 | 
|  | #define VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME "VK_EXT_transform_feedback" | 
|  |  | 
|  | typedef VkFlags VkPipelineRasterizationStateStreamCreateFlagsEXT; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceTransformFeedbackFeaturesEXT { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | VkBool32           transformFeedback; | 
|  | VkBool32           geometryStreams; | 
|  | } VkPhysicalDeviceTransformFeedbackFeaturesEXT; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceTransformFeedbackPropertiesEXT { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | uint32_t           maxTransformFeedbackStreams; | 
|  | uint32_t           maxTransformFeedbackBuffers; | 
|  | VkDeviceSize       maxTransformFeedbackBufferSize; | 
|  | uint32_t           maxTransformFeedbackStreamDataSize; | 
|  | uint32_t           maxTransformFeedbackBufferDataSize; | 
|  | uint32_t           maxTransformFeedbackBufferDataStride; | 
|  | VkBool32           transformFeedbackQueries; | 
|  | VkBool32           transformFeedbackStreamsLinesTriangles; | 
|  | VkBool32           transformFeedbackRasterizationStreamSelect; | 
|  | VkBool32           transformFeedbackDraw; | 
|  | } VkPhysicalDeviceTransformFeedbackPropertiesEXT; | 
|  |  | 
|  | typedef struct VkPipelineRasterizationStateStreamCreateInfoEXT { | 
|  | VkStructureType                                     sType; | 
|  | const void*                                         pNext; | 
|  | VkPipelineRasterizationStateStreamCreateFlagsEXT    flags; | 
|  | uint32_t                                            rasterizationStream; | 
|  | } VkPipelineRasterizationStateStreamCreateInfoEXT; | 
|  |  | 
|  |  | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdBindTransformFeedbackBuffersEXT)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdBeginTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdEndTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdBeginQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdEndQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectByteCountEXT)(VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdBindTransformFeedbackBuffersEXT( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | uint32_t                                    firstBinding, | 
|  | uint32_t                                    bindingCount, | 
|  | const VkBuffer*                             pBuffers, | 
|  | const VkDeviceSize*                         pOffsets, | 
|  | const VkDeviceSize*                         pSizes); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdBeginTransformFeedbackEXT( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | uint32_t                                    firstCounterBuffer, | 
|  | uint32_t                                    counterBufferCount, | 
|  | const VkBuffer*                             pCounterBuffers, | 
|  | const VkDeviceSize*                         pCounterBufferOffsets); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdEndTransformFeedbackEXT( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | uint32_t                                    firstCounterBuffer, | 
|  | uint32_t                                    counterBufferCount, | 
|  | const VkBuffer*                             pCounterBuffers, | 
|  | const VkDeviceSize*                         pCounterBufferOffsets); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdBeginQueryIndexedEXT( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | VkQueryPool                                 queryPool, | 
|  | uint32_t                                    query, | 
|  | VkQueryControlFlags                         flags, | 
|  | uint32_t                                    index); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdEndQueryIndexedEXT( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | VkQueryPool                                 queryPool, | 
|  | uint32_t                                    query, | 
|  | uint32_t                                    index); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectByteCountEXT( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | uint32_t                                    instanceCount, | 
|  | uint32_t                                    firstInstance, | 
|  | VkBuffer                                    counterBuffer, | 
|  | VkDeviceSize                                counterBufferOffset, | 
|  | uint32_t                                    counterOffset, | 
|  | uint32_t                                    vertexStride); | 
|  | #endif | 
|  |  | 
|  | #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_NV_corner_sampled_image 1 | 
|  | #define VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION 2 | 
|  | #define VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME "VK_NV_corner_sampled_image" | 
|  |  | 
|  | typedef struct VkPhysicalDeviceCornerSampledImageFeaturesNV { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | VkBool32           cornerSampledImage; | 
|  | } VkPhysicalDeviceCornerSampledImageFeaturesNV; | 
|  |  | 
|  |  | 
|  |  | 
|  | #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; | 
|  |  | 
|  |  | 
|  |  | 
|  | #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; | 
|  | const VkValidationCheckEXT*    pDisabledValidationChecks; | 
|  | } VkValidationFlagsEXT; | 
|  |  | 
|  |  | 
|  |  | 
|  | #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_EXT_astc_decode_mode 1 | 
|  | #define VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION 1 | 
|  | #define VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME "VK_EXT_astc_decode_mode" | 
|  |  | 
|  | typedef struct VkImageViewASTCDecodeModeEXT { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | VkFormat           decodeMode; | 
|  | } VkImageViewASTCDecodeModeEXT; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceASTCDecodeFeaturesEXT { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | VkBool32           decodeModeSharedExponent; | 
|  | } VkPhysicalDeviceASTCDecodeFeaturesEXT; | 
|  |  | 
|  |  | 
|  |  | 
|  | #define VK_EXT_conditional_rendering 1 | 
|  | #define VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION 1 | 
|  | #define VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME "VK_EXT_conditional_rendering" | 
|  |  | 
|  |  | 
|  | typedef enum VkConditionalRenderingFlagBitsEXT { | 
|  | VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 0x00000001, | 
|  | VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF | 
|  | } VkConditionalRenderingFlagBitsEXT; | 
|  | typedef VkFlags VkConditionalRenderingFlagsEXT; | 
|  |  | 
|  | typedef struct VkConditionalRenderingBeginInfoEXT { | 
|  | VkStructureType                   sType; | 
|  | const void*                       pNext; | 
|  | VkBuffer                          buffer; | 
|  | VkDeviceSize                      offset; | 
|  | VkConditionalRenderingFlagsEXT    flags; | 
|  | } VkConditionalRenderingBeginInfoEXT; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceConditionalRenderingFeaturesEXT { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | VkBool32           conditionalRendering; | 
|  | VkBool32           inheritedConditionalRendering; | 
|  | } VkPhysicalDeviceConditionalRenderingFeaturesEXT; | 
|  |  | 
|  | typedef struct VkCommandBufferInheritanceConditionalRenderingInfoEXT { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | VkBool32           conditionalRenderingEnable; | 
|  | } VkCommandBufferInheritanceConditionalRenderingInfoEXT; | 
|  |  | 
|  |  | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdBeginConditionalRenderingEXT)(VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdEndConditionalRenderingEXT)(VkCommandBuffer commandBuffer); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdBeginConditionalRenderingEXT( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | const VkConditionalRenderingBeginInfoEXT*   pConditionalRenderingBegin); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdEndConditionalRenderingEXT( | 
|  | VkCommandBuffer                             commandBuffer); | 
|  | #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 | 
|  |  | 
|  | #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" | 
|  |  | 
|  |  | 
|  | 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_conservative_rasterization 1 | 
|  | #define VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION 1 | 
|  | #define VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME "VK_EXT_conservative_rasterization" | 
|  |  | 
|  |  | 
|  | typedef enum VkConservativeRasterizationModeEXT { | 
|  | VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0, | 
|  | VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1, | 
|  | VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2, | 
|  | VK_CONSERVATIVE_RASTERIZATION_MODE_BEGIN_RANGE_EXT = VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT, | 
|  | VK_CONSERVATIVE_RASTERIZATION_MODE_END_RANGE_EXT = VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT, | 
|  | VK_CONSERVATIVE_RASTERIZATION_MODE_RANGE_SIZE_EXT = (VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT - VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT + 1), | 
|  | VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF | 
|  | } VkConservativeRasterizationModeEXT; | 
|  |  | 
|  | typedef VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | float              primitiveOverestimationSize; | 
|  | float              maxExtraPrimitiveOverestimationSize; | 
|  | float              extraPrimitiveOverestimationSizeGranularity; | 
|  | VkBool32           primitiveUnderestimation; | 
|  | VkBool32           conservativePointAndLineRasterization; | 
|  | VkBool32           degenerateTrianglesRasterized; | 
|  | VkBool32           degenerateLinesRasterized; | 
|  | VkBool32           fullyCoveredFragmentShaderInputVariable; | 
|  | VkBool32           conservativeRasterizationPostDepthCoverage; | 
|  | } VkPhysicalDeviceConservativeRasterizationPropertiesEXT; | 
|  |  | 
|  | typedef struct VkPipelineRasterizationConservativeStateCreateInfoEXT { | 
|  | VkStructureType                                           sType; | 
|  | const void*                                               pNext; | 
|  | VkPipelineRasterizationConservativeStateCreateFlagsEXT    flags; | 
|  | VkConservativeRasterizationModeEXT                        conservativeRasterizationMode; | 
|  | float                                                     extraPrimitiveOverestimationSize; | 
|  | } VkPipelineRasterizationConservativeStateCreateInfoEXT; | 
|  |  | 
|  |  | 
|  |  | 
|  | #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 | 
|  |  | 
|  | #define VK_EXT_external_memory_dma_buf 1 | 
|  | #define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION 1 | 
|  | #define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME "VK_EXT_external_memory_dma_buf" | 
|  |  | 
|  |  | 
|  | #define VK_EXT_queue_family_foreign 1 | 
|  | #define VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION 1 | 
|  | #define VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME "VK_EXT_queue_family_foreign" | 
|  | #define VK_QUEUE_FAMILY_FOREIGN_EXT       (~0U-2) | 
|  |  | 
|  |  | 
|  | #define VK_EXT_debug_utils 1 | 
|  | VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugUtilsMessengerEXT) | 
|  |  | 
|  | #define VK_EXT_DEBUG_UTILS_SPEC_VERSION   1 | 
|  | #define VK_EXT_DEBUG_UTILS_EXTENSION_NAME "VK_EXT_debug_utils" | 
|  |  | 
|  | typedef VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT; | 
|  | typedef VkFlags VkDebugUtilsMessengerCreateFlagsEXT; | 
|  |  | 
|  | typedef enum VkDebugUtilsMessageSeverityFlagBitsEXT { | 
|  | VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001, | 
|  | VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0x00000010, | 
|  | VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0x00000100, | 
|  | VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000, | 
|  | VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF | 
|  | } VkDebugUtilsMessageSeverityFlagBitsEXT; | 
|  | typedef VkFlags VkDebugUtilsMessageSeverityFlagsEXT; | 
|  |  | 
|  | typedef enum VkDebugUtilsMessageTypeFlagBitsEXT { | 
|  | VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001, | 
|  | VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0x00000002, | 
|  | VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0x00000004, | 
|  | VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF | 
|  | } VkDebugUtilsMessageTypeFlagBitsEXT; | 
|  | typedef VkFlags VkDebugUtilsMessageTypeFlagsEXT; | 
|  |  | 
|  | typedef struct VkDebugUtilsObjectNameInfoEXT { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | VkObjectType       objectType; | 
|  | uint64_t           objectHandle; | 
|  | const char*        pObjectName; | 
|  | } VkDebugUtilsObjectNameInfoEXT; | 
|  |  | 
|  | typedef struct VkDebugUtilsObjectTagInfoEXT { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | VkObjectType       objectType; | 
|  | uint64_t           objectHandle; | 
|  | uint64_t           tagName; | 
|  | size_t             tagSize; | 
|  | const void*        pTag; | 
|  | } VkDebugUtilsObjectTagInfoEXT; | 
|  |  | 
|  | typedef struct VkDebugUtilsLabelEXT { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | const char*        pLabelName; | 
|  | float              color[4]; | 
|  | } VkDebugUtilsLabelEXT; | 
|  |  | 
|  | typedef struct VkDebugUtilsMessengerCallbackDataEXT { | 
|  | VkStructureType                              sType; | 
|  | const void*                                  pNext; | 
|  | VkDebugUtilsMessengerCallbackDataFlagsEXT    flags; | 
|  | const char*                                  pMessageIdName; | 
|  | int32_t                                      messageIdNumber; | 
|  | const char*                                  pMessage; | 
|  | uint32_t                                     queueLabelCount; | 
|  | VkDebugUtilsLabelEXT*                        pQueueLabels; | 
|  | uint32_t                                     cmdBufLabelCount; | 
|  | VkDebugUtilsLabelEXT*                        pCmdBufLabels; | 
|  | uint32_t                                     objectCount; | 
|  | VkDebugUtilsObjectNameInfoEXT*               pObjects; | 
|  | } VkDebugUtilsMessengerCallbackDataEXT; | 
|  |  | 
|  | typedef VkBool32 (VKAPI_PTR *PFN_vkDebugUtilsMessengerCallbackEXT)( | 
|  | VkDebugUtilsMessageSeverityFlagBitsEXT           messageSeverity, | 
|  | VkDebugUtilsMessageTypeFlagsEXT                  messageTypes, | 
|  | const VkDebugUtilsMessengerCallbackDataEXT*      pCallbackData, | 
|  | void*                                            pUserData); | 
|  |  | 
|  | typedef struct VkDebugUtilsMessengerCreateInfoEXT { | 
|  | VkStructureType                         sType; | 
|  | const void*                             pNext; | 
|  | VkDebugUtilsMessengerCreateFlagsEXT     flags; | 
|  | VkDebugUtilsMessageSeverityFlagsEXT     messageSeverity; | 
|  | VkDebugUtilsMessageTypeFlagsEXT         messageType; | 
|  | PFN_vkDebugUtilsMessengerCallbackEXT    pfnUserCallback; | 
|  | void*                                   pUserData; | 
|  | } VkDebugUtilsMessengerCreateInfoEXT; | 
|  |  | 
|  |  | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectNameEXT)(VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectTagEXT)(VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo); | 
|  | typedef void (VKAPI_PTR *PFN_vkQueueBeginDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo); | 
|  | typedef void (VKAPI_PTR *PFN_vkQueueEndDebugUtilsLabelEXT)(VkQueue queue); | 
|  | typedef void (VKAPI_PTR *PFN_vkQueueInsertDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdBeginDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdEndDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdInsertDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugUtilsMessengerEXT)(VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugUtilsMessengerEXT* pMessenger); | 
|  | typedef void (VKAPI_PTR *PFN_vkDestroyDebugUtilsMessengerEXT)(VkInstance instance, VkDebugUtilsMessengerEXT messenger, const VkAllocationCallbacks* pAllocator); | 
|  | typedef void (VKAPI_PTR *PFN_vkSubmitDebugUtilsMessageEXT)(VkInstance instance, VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectNameEXT( | 
|  | VkDevice                                    device, | 
|  | const VkDebugUtilsObjectNameInfoEXT*        pNameInfo); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectTagEXT( | 
|  | VkDevice                                    device, | 
|  | const VkDebugUtilsObjectTagInfoEXT*         pTagInfo); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkQueueBeginDebugUtilsLabelEXT( | 
|  | VkQueue                                     queue, | 
|  | const VkDebugUtilsLabelEXT*                 pLabelInfo); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkQueueEndDebugUtilsLabelEXT( | 
|  | VkQueue                                     queue); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkQueueInsertDebugUtilsLabelEXT( | 
|  | VkQueue                                     queue, | 
|  | const VkDebugUtilsLabelEXT*                 pLabelInfo); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdBeginDebugUtilsLabelEXT( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | const VkDebugUtilsLabelEXT*                 pLabelInfo); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdEndDebugUtilsLabelEXT( | 
|  | VkCommandBuffer                             commandBuffer); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdInsertDebugUtilsLabelEXT( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | const VkDebugUtilsLabelEXT*                 pLabelInfo); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugUtilsMessengerEXT( | 
|  | VkInstance                                  instance, | 
|  | const VkDebugUtilsMessengerCreateInfoEXT*   pCreateInfo, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkDebugUtilsMessengerEXT*                   pMessenger); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkDestroyDebugUtilsMessengerEXT( | 
|  | VkInstance                                  instance, | 
|  | VkDebugUtilsMessengerEXT                    messenger, | 
|  | const VkAllocationCallbacks*                pAllocator); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkSubmitDebugUtilsMessageEXT( | 
|  | VkInstance                                  instance, | 
|  | VkDebugUtilsMessageSeverityFlagBitsEXT      messageSeverity, | 
|  | VkDebugUtilsMessageTypeFlagsEXT             messageTypes, | 
|  | const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData); | 
|  | #endif | 
|  |  | 
|  | #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_inline_uniform_block 1 | 
|  | #define VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION 1 | 
|  | #define VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME "VK_EXT_inline_uniform_block" | 
|  |  | 
|  | typedef struct VkPhysicalDeviceInlineUniformBlockFeaturesEXT { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | VkBool32           inlineUniformBlock; | 
|  | VkBool32           descriptorBindingInlineUniformBlockUpdateAfterBind; | 
|  | } VkPhysicalDeviceInlineUniformBlockFeaturesEXT; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceInlineUniformBlockPropertiesEXT { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | uint32_t           maxInlineUniformBlockSize; | 
|  | uint32_t           maxPerStageDescriptorInlineUniformBlocks; | 
|  | uint32_t           maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks; | 
|  | uint32_t           maxDescriptorSetInlineUniformBlocks; | 
|  | uint32_t           maxDescriptorSetUpdateAfterBindInlineUniformBlocks; | 
|  | } VkPhysicalDeviceInlineUniformBlockPropertiesEXT; | 
|  |  | 
|  | typedef struct VkWriteDescriptorSetInlineUniformBlockEXT { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | uint32_t           dataSize; | 
|  | const void*        pData; | 
|  | } VkWriteDescriptorSetInlineUniformBlockEXT; | 
|  |  | 
|  | typedef struct VkDescriptorPoolInlineUniformBlockCreateInfoEXT { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | uint32_t           maxInlineUniformBlockBindings; | 
|  | } VkDescriptorPoolInlineUniformBlockCreateInfoEXT; | 
|  |  | 
|  |  | 
|  |  | 
|  | #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_image_drm_format_modifier 1 | 
|  | #define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION 1 | 
|  | #define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME "VK_EXT_image_drm_format_modifier" | 
|  |  | 
|  | typedef struct VkDrmFormatModifierPropertiesEXT { | 
|  | uint64_t                drmFormatModifier; | 
|  | uint32_t                drmFormatModifierPlaneCount; | 
|  | VkFormatFeatureFlags    drmFormatModifierTilingFeatures; | 
|  | } VkDrmFormatModifierPropertiesEXT; | 
|  |  | 
|  | typedef struct VkDrmFormatModifierPropertiesListEXT { | 
|  | VkStructureType                      sType; | 
|  | void*                                pNext; | 
|  | uint32_t                             drmFormatModifierCount; | 
|  | VkDrmFormatModifierPropertiesEXT*    pDrmFormatModifierProperties; | 
|  | } VkDrmFormatModifierPropertiesListEXT; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | uint64_t           drmFormatModifier; | 
|  | VkSharingMode      sharingMode; | 
|  | uint32_t           queueFamilyIndexCount; | 
|  | const uint32_t*    pQueueFamilyIndices; | 
|  | } VkPhysicalDeviceImageDrmFormatModifierInfoEXT; | 
|  |  | 
|  | typedef struct VkImageDrmFormatModifierListCreateInfoEXT { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | uint32_t           drmFormatModifierCount; | 
|  | const uint64_t*    pDrmFormatModifiers; | 
|  | } VkImageDrmFormatModifierListCreateInfoEXT; | 
|  |  | 
|  | typedef struct VkImageDrmFormatModifierExplicitCreateInfoEXT { | 
|  | VkStructureType               sType; | 
|  | const void*                   pNext; | 
|  | uint64_t                      drmFormatModifier; | 
|  | uint32_t                      drmFormatModifierPlaneCount; | 
|  | const VkSubresourceLayout*    pPlaneLayouts; | 
|  | } VkImageDrmFormatModifierExplicitCreateInfoEXT; | 
|  |  | 
|  | typedef struct VkImageDrmFormatModifierPropertiesEXT { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | uint64_t           drmFormatModifier; | 
|  | } VkImageDrmFormatModifierPropertiesEXT; | 
|  |  | 
|  |  | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetImageDrmFormatModifierPropertiesEXT)(VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetImageDrmFormatModifierPropertiesEXT( | 
|  | VkDevice                                    device, | 
|  | VkImage                                     image, | 
|  | VkImageDrmFormatModifierPropertiesEXT*      pProperties); | 
|  | #endif | 
|  |  | 
|  | #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_descriptor_indexing 1 | 
|  | #define VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION 2 | 
|  | #define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME "VK_EXT_descriptor_indexing" | 
|  |  | 
|  |  | 
|  | typedef enum VkDescriptorBindingFlagBitsEXT { | 
|  | VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT = 0x00000001, | 
|  | VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT = 0x00000002, | 
|  | VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT = 0x00000004, | 
|  | VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT = 0x00000008, | 
|  | VK_DESCRIPTOR_BINDING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF | 
|  | } VkDescriptorBindingFlagBitsEXT; | 
|  | typedef VkFlags VkDescriptorBindingFlagsEXT; | 
|  |  | 
|  | typedef struct VkDescriptorSetLayoutBindingFlagsCreateInfoEXT { | 
|  | VkStructureType                       sType; | 
|  | const void*                           pNext; | 
|  | uint32_t                              bindingCount; | 
|  | const VkDescriptorBindingFlagsEXT*    pBindingFlags; | 
|  | } VkDescriptorSetLayoutBindingFlagsCreateInfoEXT; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceDescriptorIndexingFeaturesEXT { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | VkBool32           shaderInputAttachmentArrayDynamicIndexing; | 
|  | VkBool32           shaderUniformTexelBufferArrayDynamicIndexing; | 
|  | VkBool32           shaderStorageTexelBufferArrayDynamicIndexing; | 
|  | VkBool32           shaderUniformBufferArrayNonUniformIndexing; | 
|  | VkBool32           shaderSampledImageArrayNonUniformIndexing; | 
|  | VkBool32           shaderStorageBufferArrayNonUniformIndexing; | 
|  | VkBool32           shaderStorageImageArrayNonUniformIndexing; | 
|  | VkBool32           shaderInputAttachmentArrayNonUniformIndexing; | 
|  | VkBool32           shaderUniformTexelBufferArrayNonUniformIndexing; | 
|  | VkBool32           shaderStorageTexelBufferArrayNonUniformIndexing; | 
|  | VkBool32           descriptorBindingUniformBufferUpdateAfterBind; | 
|  | VkBool32           descriptorBindingSampledImageUpdateAfterBind; | 
|  | VkBool32           descriptorBindingStorageImageUpdateAfterBind; | 
|  | VkBool32           descriptorBindingStorageBufferUpdateAfterBind; | 
|  | VkBool32           descriptorBindingUniformTexelBufferUpdateAfterBind; | 
|  | VkBool32           descriptorBindingStorageTexelBufferUpdateAfterBind; | 
|  | VkBool32           descriptorBindingUpdateUnusedWhilePending; | 
|  | VkBool32           descriptorBindingPartiallyBound; | 
|  | VkBool32           descriptorBindingVariableDescriptorCount; | 
|  | VkBool32           runtimeDescriptorArray; | 
|  | } VkPhysicalDeviceDescriptorIndexingFeaturesEXT; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceDescriptorIndexingPropertiesEXT { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | uint32_t           maxUpdateAfterBindDescriptorsInAllPools; | 
|  | VkBool32           shaderUniformBufferArrayNonUniformIndexingNative; | 
|  | VkBool32           shaderSampledImageArrayNonUniformIndexingNative; | 
|  | VkBool32           shaderStorageBufferArrayNonUniformIndexingNative; | 
|  | VkBool32           shaderStorageImageArrayNonUniformIndexingNative; | 
|  | VkBool32           shaderInputAttachmentArrayNonUniformIndexingNative; | 
|  | VkBool32           robustBufferAccessUpdateAfterBind; | 
|  | VkBool32           quadDivergentImplicitLod; | 
|  | uint32_t           maxPerStageDescriptorUpdateAfterBindSamplers; | 
|  | uint32_t           maxPerStageDescriptorUpdateAfterBindUniformBuffers; | 
|  | uint32_t           maxPerStageDescriptorUpdateAfterBindStorageBuffers; | 
|  | uint32_t           maxPerStageDescriptorUpdateAfterBindSampledImages; | 
|  | uint32_t           maxPerStageDescriptorUpdateAfterBindStorageImages; | 
|  | uint32_t           maxPerStageDescriptorUpdateAfterBindInputAttachments; | 
|  | uint32_t           maxPerStageUpdateAfterBindResources; | 
|  | uint32_t           maxDescriptorSetUpdateAfterBindSamplers; | 
|  | uint32_t           maxDescriptorSetUpdateAfterBindUniformBuffers; | 
|  | uint32_t           maxDescriptorSetUpdateAfterBindUniformBuffersDynamic; | 
|  | uint32_t           maxDescriptorSetUpdateAfterBindStorageBuffers; | 
|  | uint32_t           maxDescriptorSetUpdateAfterBindStorageBuffersDynamic; | 
|  | uint32_t           maxDescriptorSetUpdateAfterBindSampledImages; | 
|  | uint32_t           maxDescriptorSetUpdateAfterBindStorageImages; | 
|  | uint32_t           maxDescriptorSetUpdateAfterBindInputAttachments; | 
|  | } VkPhysicalDeviceDescriptorIndexingPropertiesEXT; | 
|  |  | 
|  | typedef struct VkDescriptorSetVariableDescriptorCountAllocateInfoEXT { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | uint32_t           descriptorSetCount; | 
|  | const uint32_t*    pDescriptorCounts; | 
|  | } VkDescriptorSetVariableDescriptorCountAllocateInfoEXT; | 
|  |  | 
|  | typedef struct VkDescriptorSetVariableDescriptorCountLayoutSupportEXT { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | uint32_t           maxVariableDescriptorCount; | 
|  | } VkDescriptorSetVariableDescriptorCountLayoutSupportEXT; | 
|  |  | 
|  |  | 
|  |  | 
|  | #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_NV_shading_rate_image 1 | 
|  | #define VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION 3 | 
|  | #define VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME "VK_NV_shading_rate_image" | 
|  |  | 
|  |  | 
|  | typedef enum VkShadingRatePaletteEntryNV { | 
|  | VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0, | 
|  | VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1, | 
|  | VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2, | 
|  | VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3, | 
|  | VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4, | 
|  | VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5, | 
|  | VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6, | 
|  | VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7, | 
|  | VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8, | 
|  | VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9, | 
|  | VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10, | 
|  | VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11, | 
|  | VK_SHADING_RATE_PALETTE_ENTRY_BEGIN_RANGE_NV = VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV, | 
|  | VK_SHADING_RATE_PALETTE_ENTRY_END_RANGE_NV = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV, | 
|  | VK_SHADING_RATE_PALETTE_ENTRY_RANGE_SIZE_NV = (VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV - VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV + 1), | 
|  | VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 0x7FFFFFFF | 
|  | } VkShadingRatePaletteEntryNV; | 
|  |  | 
|  | typedef enum VkCoarseSampleOrderTypeNV { | 
|  | VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0, | 
|  | VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1, | 
|  | VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2, | 
|  | VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3, | 
|  | VK_COARSE_SAMPLE_ORDER_TYPE_BEGIN_RANGE_NV = VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV, | 
|  | VK_COARSE_SAMPLE_ORDER_TYPE_END_RANGE_NV = VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV, | 
|  | VK_COARSE_SAMPLE_ORDER_TYPE_RANGE_SIZE_NV = (VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV - VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV + 1), | 
|  | VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 0x7FFFFFFF | 
|  | } VkCoarseSampleOrderTypeNV; | 
|  |  | 
|  | typedef struct VkShadingRatePaletteNV { | 
|  | uint32_t                              shadingRatePaletteEntryCount; | 
|  | const VkShadingRatePaletteEntryNV*    pShadingRatePaletteEntries; | 
|  | } VkShadingRatePaletteNV; | 
|  |  | 
|  | typedef struct VkPipelineViewportShadingRateImageStateCreateInfoNV { | 
|  | VkStructureType                  sType; | 
|  | const void*                      pNext; | 
|  | VkBool32                         shadingRateImageEnable; | 
|  | uint32_t                         viewportCount; | 
|  | const VkShadingRatePaletteNV*    pShadingRatePalettes; | 
|  | } VkPipelineViewportShadingRateImageStateCreateInfoNV; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceShadingRateImageFeaturesNV { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | VkBool32           shadingRateImage; | 
|  | VkBool32           shadingRateCoarseSampleOrder; | 
|  | } VkPhysicalDeviceShadingRateImageFeaturesNV; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceShadingRateImagePropertiesNV { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | VkExtent2D         shadingRateTexelSize; | 
|  | uint32_t           shadingRatePaletteSize; | 
|  | uint32_t           shadingRateMaxCoarseSamples; | 
|  | } VkPhysicalDeviceShadingRateImagePropertiesNV; | 
|  |  | 
|  | typedef struct VkCoarseSampleLocationNV { | 
|  | uint32_t    pixelX; | 
|  | uint32_t    pixelY; | 
|  | uint32_t    sample; | 
|  | } VkCoarseSampleLocationNV; | 
|  |  | 
|  | typedef struct VkCoarseSampleOrderCustomNV { | 
|  | VkShadingRatePaletteEntryNV        shadingRate; | 
|  | uint32_t                           sampleCount; | 
|  | uint32_t                           sampleLocationCount; | 
|  | const VkCoarseSampleLocationNV*    pSampleLocations; | 
|  | } VkCoarseSampleOrderCustomNV; | 
|  |  | 
|  | typedef struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV { | 
|  | VkStructureType                       sType; | 
|  | const void*                           pNext; | 
|  | VkCoarseSampleOrderTypeNV             sampleOrderType; | 
|  | uint32_t                              customSampleOrderCount; | 
|  | const VkCoarseSampleOrderCustomNV*    pCustomSampleOrders; | 
|  | } VkPipelineViewportCoarseSampleOrderStateCreateInfoNV; | 
|  |  | 
|  |  | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdBindShadingRateImageNV)(VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdSetViewportShadingRatePaletteNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdSetCoarseSampleOrderNV)(VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdBindShadingRateImageNV( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | VkImageView                                 imageView, | 
|  | VkImageLayout                               imageLayout); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportShadingRatePaletteNV( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | uint32_t                                    firstViewport, | 
|  | uint32_t                                    viewportCount, | 
|  | const VkShadingRatePaletteNV*               pShadingRatePalettes); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdSetCoarseSampleOrderNV( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | VkCoarseSampleOrderTypeNV                   sampleOrderType, | 
|  | uint32_t                                    customSampleOrderCount, | 
|  | const VkCoarseSampleOrderCustomNV*          pCustomSampleOrders); | 
|  | #endif | 
|  |  | 
|  | #define VK_NV_ray_tracing 1 | 
|  | VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureNV) | 
|  |  | 
|  | #define VK_NV_RAY_TRACING_SPEC_VERSION    2 | 
|  | #define VK_NV_RAY_TRACING_EXTENSION_NAME  "VK_NV_ray_tracing" | 
|  | #define VK_SHADER_UNUSED_NV               (~0U) | 
|  |  | 
|  |  | 
|  | typedef enum VkRayTracingShaderGroupTypeNV { | 
|  | VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = 0, | 
|  | VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = 1, | 
|  | VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = 2, | 
|  | VK_RAY_TRACING_SHADER_GROUP_TYPE_BEGIN_RANGE_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV, | 
|  | VK_RAY_TRACING_SHADER_GROUP_TYPE_END_RANGE_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV, | 
|  | VK_RAY_TRACING_SHADER_GROUP_TYPE_RANGE_SIZE_NV = (VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV - VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV + 1), | 
|  | VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_NV = 0x7FFFFFFF | 
|  | } VkRayTracingShaderGroupTypeNV; | 
|  |  | 
|  | typedef enum VkGeometryTypeNV { | 
|  | VK_GEOMETRY_TYPE_TRIANGLES_NV = 0, | 
|  | VK_GEOMETRY_TYPE_AABBS_NV = 1, | 
|  | VK_GEOMETRY_TYPE_BEGIN_RANGE_NV = VK_GEOMETRY_TYPE_TRIANGLES_NV, | 
|  | VK_GEOMETRY_TYPE_END_RANGE_NV = VK_GEOMETRY_TYPE_AABBS_NV, | 
|  | VK_GEOMETRY_TYPE_RANGE_SIZE_NV = (VK_GEOMETRY_TYPE_AABBS_NV - VK_GEOMETRY_TYPE_TRIANGLES_NV + 1), | 
|  | VK_GEOMETRY_TYPE_MAX_ENUM_NV = 0x7FFFFFFF | 
|  | } VkGeometryTypeNV; | 
|  |  | 
|  | typedef enum VkAccelerationStructureTypeNV { | 
|  | VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = 0, | 
|  | VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = 1, | 
|  | VK_ACCELERATION_STRUCTURE_TYPE_BEGIN_RANGE_NV = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV, | 
|  | VK_ACCELERATION_STRUCTURE_TYPE_END_RANGE_NV = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV, | 
|  | VK_ACCELERATION_STRUCTURE_TYPE_RANGE_SIZE_NV = (VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV - VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV + 1), | 
|  | VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF | 
|  | } VkAccelerationStructureTypeNV; | 
|  |  | 
|  | typedef enum VkCopyAccelerationStructureModeNV { | 
|  | VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = 0, | 
|  | VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = 1, | 
|  | VK_COPY_ACCELERATION_STRUCTURE_MODE_BEGIN_RANGE_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV, | 
|  | VK_COPY_ACCELERATION_STRUCTURE_MODE_END_RANGE_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV, | 
|  | VK_COPY_ACCELERATION_STRUCTURE_MODE_RANGE_SIZE_NV = (VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV - VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV + 1), | 
|  | VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_NV = 0x7FFFFFFF | 
|  | } VkCopyAccelerationStructureModeNV; | 
|  |  | 
|  | typedef enum VkAccelerationStructureMemoryRequirementsTypeNV { | 
|  | VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0, | 
|  | VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1, | 
|  | VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2, | 
|  | VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BEGIN_RANGE_NV = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV, | 
|  | VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_END_RANGE_NV = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV, | 
|  | VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_RANGE_SIZE_NV = (VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV + 1), | 
|  | VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 0x7FFFFFFF | 
|  | } VkAccelerationStructureMemoryRequirementsTypeNV; | 
|  |  | 
|  |  | 
|  | typedef enum VkGeometryFlagBitsNV { | 
|  | VK_GEOMETRY_OPAQUE_BIT_NV = 0x00000001, | 
|  | VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = 0x00000002, | 
|  | VK_GEOMETRY_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF | 
|  | } VkGeometryFlagBitsNV; | 
|  | typedef VkFlags VkGeometryFlagsNV; | 
|  |  | 
|  | typedef enum VkGeometryInstanceFlagBitsNV { | 
|  | VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = 0x00000001, | 
|  | VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = 0x00000002, | 
|  | VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = 0x00000004, | 
|  | VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = 0x00000008, | 
|  | VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF | 
|  | } VkGeometryInstanceFlagBitsNV; | 
|  | typedef VkFlags VkGeometryInstanceFlagsNV; | 
|  |  | 
|  | typedef enum VkBuildAccelerationStructureFlagBitsNV { | 
|  | VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = 0x00000001, | 
|  | VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = 0x00000002, | 
|  | VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = 0x00000004, | 
|  | VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = 0x00000008, | 
|  | VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = 0x00000010, | 
|  | VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF | 
|  | } VkBuildAccelerationStructureFlagBitsNV; | 
|  | typedef VkFlags VkBuildAccelerationStructureFlagsNV; | 
|  |  | 
|  | typedef struct VkRayTracingShaderGroupCreateInfoNV { | 
|  | VkStructureType                  sType; | 
|  | const void*                      pNext; | 
|  | VkRayTracingShaderGroupTypeNV    type; | 
|  | uint32_t                         generalShader; | 
|  | uint32_t                         closestHitShader; | 
|  | uint32_t                         anyHitShader; | 
|  | uint32_t                         intersectionShader; | 
|  | } VkRayTracingShaderGroupCreateInfoNV; | 
|  |  | 
|  | typedef struct VkRayTracingPipelineCreateInfoNV { | 
|  | VkStructureType                               sType; | 
|  | const void*                                   pNext; | 
|  | VkPipelineCreateFlags                         flags; | 
|  | uint32_t                                      stageCount; | 
|  | const VkPipelineShaderStageCreateInfo*        pStages; | 
|  | uint32_t                                      groupCount; | 
|  | const VkRayTracingShaderGroupCreateInfoNV*    pGroups; | 
|  | uint32_t                                      maxRecursionDepth; | 
|  | VkPipelineLayout                              layout; | 
|  | VkPipeline                                    basePipelineHandle; | 
|  | int32_t                                       basePipelineIndex; | 
|  | } VkRayTracingPipelineCreateInfoNV; | 
|  |  | 
|  | typedef struct VkGeometryTrianglesNV { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | VkBuffer           vertexData; | 
|  | VkDeviceSize       vertexOffset; | 
|  | uint32_t           vertexCount; | 
|  | VkDeviceSize       vertexStride; | 
|  | VkFormat           vertexFormat; | 
|  | VkBuffer           indexData; | 
|  | VkDeviceSize       indexOffset; | 
|  | uint32_t           indexCount; | 
|  | VkIndexType        indexType; | 
|  | VkBuffer           transformData; | 
|  | VkDeviceSize       transformOffset; | 
|  | } VkGeometryTrianglesNV; | 
|  |  | 
|  | typedef struct VkGeometryAABBNV { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | VkBuffer           aabbData; | 
|  | uint32_t           numAABBs; | 
|  | uint32_t           stride; | 
|  | VkDeviceSize       offset; | 
|  | } VkGeometryAABBNV; | 
|  |  | 
|  | typedef struct VkGeometryDataNV { | 
|  | VkGeometryTrianglesNV    triangles; | 
|  | VkGeometryAABBNV         aabbs; | 
|  | } VkGeometryDataNV; | 
|  |  | 
|  | typedef struct VkGeometryNV { | 
|  | VkStructureType      sType; | 
|  | const void*          pNext; | 
|  | VkGeometryTypeNV     geometryType; | 
|  | VkGeometryDataNV     geometry; | 
|  | VkGeometryFlagsNV    flags; | 
|  | } VkGeometryNV; | 
|  |  | 
|  | typedef struct VkAccelerationStructureInfoNV { | 
|  | VkStructureType                        sType; | 
|  | const void*                            pNext; | 
|  | VkAccelerationStructureTypeNV          type; | 
|  | VkBuildAccelerationStructureFlagsNV    flags; | 
|  | uint32_t                               instanceCount; | 
|  | uint32_t                               geometryCount; | 
|  | const VkGeometryNV*                    pGeometries; | 
|  | } VkAccelerationStructureInfoNV; | 
|  |  | 
|  | typedef struct VkAccelerationStructureCreateInfoNV { | 
|  | VkStructureType                  sType; | 
|  | const void*                      pNext; | 
|  | VkDeviceSize                     compactedSize; | 
|  | VkAccelerationStructureInfoNV    info; | 
|  | } VkAccelerationStructureCreateInfoNV; | 
|  |  | 
|  | typedef struct VkBindAccelerationStructureMemoryInfoNV { | 
|  | VkStructureType              sType; | 
|  | const void*                  pNext; | 
|  | VkAccelerationStructureNV    accelerationStructure; | 
|  | VkDeviceMemory               memory; | 
|  | VkDeviceSize                 memoryOffset; | 
|  | uint32_t                     deviceIndexCount; | 
|  | const uint32_t*              pDeviceIndices; | 
|  | } VkBindAccelerationStructureMemoryInfoNV; | 
|  |  | 
|  | typedef struct VkWriteDescriptorSetAccelerationStructureNV { | 
|  | VkStructureType                     sType; | 
|  | const void*                         pNext; | 
|  | uint32_t                            accelerationStructureCount; | 
|  | const VkAccelerationStructureNV*    pAccelerationStructures; | 
|  | } VkWriteDescriptorSetAccelerationStructureNV; | 
|  |  | 
|  | typedef struct VkAccelerationStructureMemoryRequirementsInfoNV { | 
|  | VkStructureType                                    sType; | 
|  | const void*                                        pNext; | 
|  | VkAccelerationStructureMemoryRequirementsTypeNV    type; | 
|  | VkAccelerationStructureNV                          accelerationStructure; | 
|  | } VkAccelerationStructureMemoryRequirementsInfoNV; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceRayTracingPropertiesNV { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | uint32_t           shaderGroupHandleSize; | 
|  | uint32_t           maxRecursionDepth; | 
|  | uint32_t           maxShaderGroupStride; | 
|  | uint32_t           shaderGroupBaseAlignment; | 
|  | uint64_t           maxGeometryCount; | 
|  | uint64_t           maxInstanceCount; | 
|  | uint64_t           maxTriangleCount; | 
|  | uint32_t           maxDescriptorSetAccelerationStructures; | 
|  | } VkPhysicalDeviceRayTracingPropertiesNV; | 
|  |  | 
|  |  | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureNV)(VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNV* pAccelerationStructure); | 
|  | typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, const VkAllocationCallbacks* pAllocator); | 
|  | typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureMemoryRequirementsNV)(VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkBindAccelerationStructureMemoryNV)(VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoNV* pBindInfos); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructureNV)(VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV* pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkBuffer scratch, VkDeviceSize scratchOffset); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureNV)(VkCommandBuffer commandBuffer, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkCopyAccelerationStructureModeNV mode); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysNV)(VkCommandBuffer commandBuffer, VkBuffer raygenShaderBindingTableBuffer, VkDeviceSize raygenShaderBindingOffset, VkBuffer missShaderBindingTableBuffer, VkDeviceSize missShaderBindingOffset, VkDeviceSize missShaderBindingStride, VkBuffer hitShaderBindingTableBuffer, VkDeviceSize hitShaderBindingOffset, VkDeviceSize hitShaderBindingStride, VkBuffer callableShaderBindingTableBuffer, VkDeviceSize callableShaderBindingOffset, VkDeviceSize callableShaderBindingStride, uint32_t width, uint32_t height, uint32_t depth); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesNV)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoNV* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupHandlesNV)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetAccelerationStructureHandleNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, size_t dataSize, void* pData); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesNV)(VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureNV* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkCompileDeferredNV)(VkDevice device, VkPipeline pipeline, uint32_t shader); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureNV( | 
|  | VkDevice                                    device, | 
|  | const VkAccelerationStructureCreateInfoNV*  pCreateInfo, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkAccelerationStructureNV*                  pAccelerationStructure); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureNV( | 
|  | VkDevice                                    device, | 
|  | VkAccelerationStructureNV                   accelerationStructure, | 
|  | const VkAllocationCallbacks*                pAllocator); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureMemoryRequirementsNV( | 
|  | VkDevice                                    device, | 
|  | const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, | 
|  | VkMemoryRequirements2KHR*                   pMemoryRequirements); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkBindAccelerationStructureMemoryNV( | 
|  | VkDevice                                    device, | 
|  | uint32_t                                    bindInfoCount, | 
|  | const VkBindAccelerationStructureMemoryInfoNV* pBindInfos); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructureNV( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | const VkAccelerationStructureInfoNV*        pInfo, | 
|  | VkBuffer                                    instanceData, | 
|  | VkDeviceSize                                instanceOffset, | 
|  | VkBool32                                    update, | 
|  | VkAccelerationStructureNV                   dst, | 
|  | VkAccelerationStructureNV                   src, | 
|  | VkBuffer                                    scratch, | 
|  | VkDeviceSize                                scratchOffset); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureNV( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | VkAccelerationStructureNV                   dst, | 
|  | VkAccelerationStructureNV                   src, | 
|  | VkCopyAccelerationStructureModeNV           mode); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysNV( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | VkBuffer                                    raygenShaderBindingTableBuffer, | 
|  | VkDeviceSize                                raygenShaderBindingOffset, | 
|  | VkBuffer                                    missShaderBindingTableBuffer, | 
|  | VkDeviceSize                                missShaderBindingOffset, | 
|  | VkDeviceSize                                missShaderBindingStride, | 
|  | VkBuffer                                    hitShaderBindingTableBuffer, | 
|  | VkDeviceSize                                hitShaderBindingOffset, | 
|  | VkDeviceSize                                hitShaderBindingStride, | 
|  | VkBuffer                                    callableShaderBindingTableBuffer, | 
|  | VkDeviceSize                                callableShaderBindingOffset, | 
|  | VkDeviceSize                                callableShaderBindingStride, | 
|  | uint32_t                                    width, | 
|  | uint32_t                                    height, | 
|  | uint32_t                                    depth); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesNV( | 
|  | VkDevice                                    device, | 
|  | VkPipelineCache                             pipelineCache, | 
|  | uint32_t                                    createInfoCount, | 
|  | const VkRayTracingPipelineCreateInfoNV*     pCreateInfos, | 
|  | const VkAllocationCallbacks*                pAllocator, | 
|  | VkPipeline*                                 pPipelines); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesNV( | 
|  | VkDevice                                    device, | 
|  | VkPipeline                                  pipeline, | 
|  | uint32_t                                    firstGroup, | 
|  | uint32_t                                    groupCount, | 
|  | size_t                                      dataSize, | 
|  | void*                                       pData); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetAccelerationStructureHandleNV( | 
|  | VkDevice                                    device, | 
|  | VkAccelerationStructureNV                   accelerationStructure, | 
|  | size_t                                      dataSize, | 
|  | void*                                       pData); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructuresPropertiesNV( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | uint32_t                                    accelerationStructureCount, | 
|  | const VkAccelerationStructureNV*            pAccelerationStructures, | 
|  | VkQueryType                                 queryType, | 
|  | VkQueryPool                                 queryPool, | 
|  | uint32_t                                    firstQuery); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkCompileDeferredNV( | 
|  | VkDevice                                    device, | 
|  | VkPipeline                                  pipeline, | 
|  | uint32_t                                    shader); | 
|  | #endif | 
|  |  | 
|  | #define VK_NV_representative_fragment_test 1 | 
|  | #define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION 1 | 
|  | #define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME "VK_NV_representative_fragment_test" | 
|  |  | 
|  | typedef struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | VkBool32           representativeFragmentTest; | 
|  | } VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV; | 
|  |  | 
|  | typedef struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | VkBool32           representativeFragmentTestEnable; | 
|  | } VkPipelineRepresentativeFragmentTestStateCreateInfoNV; | 
|  |  | 
|  |  | 
|  |  | 
|  | #define VK_EXT_global_priority 1 | 
|  | #define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 2 | 
|  | #define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority" | 
|  |  | 
|  |  | 
|  | typedef enum VkQueueGlobalPriorityEXT { | 
|  | VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128, | 
|  | VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256, | 
|  | VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512, | 
|  | VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024, | 
|  | VK_QUEUE_GLOBAL_PRIORITY_BEGIN_RANGE_EXT = VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT, | 
|  | VK_QUEUE_GLOBAL_PRIORITY_END_RANGE_EXT = VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT, | 
|  | VK_QUEUE_GLOBAL_PRIORITY_RANGE_SIZE_EXT = (VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT - VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT + 1), | 
|  | VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_EXT = 0x7FFFFFFF | 
|  | } VkQueueGlobalPriorityEXT; | 
|  |  | 
|  | typedef struct VkDeviceQueueGlobalPriorityCreateInfoEXT { | 
|  | VkStructureType             sType; | 
|  | const void*                 pNext; | 
|  | VkQueueGlobalPriorityEXT    globalPriority; | 
|  | } VkDeviceQueueGlobalPriorityCreateInfoEXT; | 
|  |  | 
|  |  | 
|  |  | 
|  | #define VK_EXT_external_memory_host 1 | 
|  | #define VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION 1 | 
|  | #define VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME "VK_EXT_external_memory_host" | 
|  |  | 
|  | typedef struct VkImportMemoryHostPointerInfoEXT { | 
|  | VkStructureType                       sType; | 
|  | const void*                           pNext; | 
|  | VkExternalMemoryHandleTypeFlagBits    handleType; | 
|  | void*                                 pHostPointer; | 
|  | } VkImportMemoryHostPointerInfoEXT; | 
|  |  | 
|  | typedef struct VkMemoryHostPointerPropertiesEXT { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | uint32_t           memoryTypeBits; | 
|  | } VkMemoryHostPointerPropertiesEXT; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | VkDeviceSize       minImportedHostPointerAlignment; | 
|  | } VkPhysicalDeviceExternalMemoryHostPropertiesEXT; | 
|  |  | 
|  |  | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryHostPointerPropertiesEXT)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryHostPointerPropertiesEXT( | 
|  | VkDevice                                    device, | 
|  | VkExternalMemoryHandleTypeFlagBits          handleType, | 
|  | const void*                                 pHostPointer, | 
|  | VkMemoryHostPointerPropertiesEXT*           pMemoryHostPointerProperties); | 
|  | #endif | 
|  |  | 
|  | #define VK_AMD_buffer_marker 1 | 
|  | #define VK_AMD_BUFFER_MARKER_SPEC_VERSION 1 | 
|  | #define VK_AMD_BUFFER_MARKER_EXTENSION_NAME "VK_AMD_buffer_marker" | 
|  |  | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarkerAMD)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarkerAMD( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | VkPipelineStageFlagBits                     pipelineStage, | 
|  | VkBuffer                                    dstBuffer, | 
|  | VkDeviceSize                                dstOffset, | 
|  | uint32_t                                    marker); | 
|  | #endif | 
|  |  | 
|  | #define VK_EXT_calibrated_timestamps 1 | 
|  | #define VK_EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION 1 | 
|  | #define VK_EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME "VK_EXT_calibrated_timestamps" | 
|  |  | 
|  |  | 
|  | typedef enum VkTimeDomainEXT { | 
|  | VK_TIME_DOMAIN_DEVICE_EXT = 0, | 
|  | VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1, | 
|  | VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2, | 
|  | VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3, | 
|  | VK_TIME_DOMAIN_BEGIN_RANGE_EXT = VK_TIME_DOMAIN_DEVICE_EXT, | 
|  | VK_TIME_DOMAIN_END_RANGE_EXT = VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT, | 
|  | VK_TIME_DOMAIN_RANGE_SIZE_EXT = (VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT - VK_TIME_DOMAIN_DEVICE_EXT + 1), | 
|  | VK_TIME_DOMAIN_MAX_ENUM_EXT = 0x7FFFFFFF | 
|  | } VkTimeDomainEXT; | 
|  |  | 
|  | typedef struct VkCalibratedTimestampInfoEXT { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | VkTimeDomainEXT    timeDomain; | 
|  | } VkCalibratedTimestampInfoEXT; | 
|  |  | 
|  |  | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainEXT* pTimeDomains); | 
|  | typedef VkResult (VKAPI_PTR *PFN_vkGetCalibratedTimestampsEXT)(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( | 
|  | VkPhysicalDevice                            physicalDevice, | 
|  | uint32_t*                                   pTimeDomainCount, | 
|  | VkTimeDomainEXT*                            pTimeDomains); | 
|  |  | 
|  | VKAPI_ATTR VkResult VKAPI_CALL vkGetCalibratedTimestampsEXT( | 
|  | VkDevice                                    device, | 
|  | uint32_t                                    timestampCount, | 
|  | const VkCalibratedTimestampInfoEXT*         pTimestampInfos, | 
|  | uint64_t*                                   pTimestamps, | 
|  | uint64_t*                                   pMaxDeviation); | 
|  | #endif | 
|  |  | 
|  | #define VK_AMD_shader_core_properties 1 | 
|  | #define VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION 1 | 
|  | #define VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_AMD_shader_core_properties" | 
|  |  | 
|  | typedef struct VkPhysicalDeviceShaderCorePropertiesAMD { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | uint32_t           shaderEngineCount; | 
|  | uint32_t           shaderArraysPerEngineCount; | 
|  | uint32_t           computeUnitsPerShaderArray; | 
|  | uint32_t           simdPerComputeUnit; | 
|  | uint32_t           wavefrontsPerSimd; | 
|  | uint32_t           wavefrontSize; | 
|  | uint32_t           sgprsPerSimd; | 
|  | uint32_t           minSgprAllocation; | 
|  | uint32_t           maxSgprAllocation; | 
|  | uint32_t           sgprAllocationGranularity; | 
|  | uint32_t           vgprsPerSimd; | 
|  | uint32_t           minVgprAllocation; | 
|  | uint32_t           maxVgprAllocation; | 
|  | uint32_t           vgprAllocationGranularity; | 
|  | } VkPhysicalDeviceShaderCorePropertiesAMD; | 
|  |  | 
|  |  | 
|  |  | 
|  | #define VK_AMD_memory_overallocation_behavior 1 | 
|  | #define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_SPEC_VERSION 1 | 
|  | #define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_EXTENSION_NAME "VK_AMD_memory_overallocation_behavior" | 
|  |  | 
|  |  | 
|  | typedef enum VkMemoryOverallocationBehaviorAMD { | 
|  | VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0, | 
|  | VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1, | 
|  | VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2, | 
|  | VK_MEMORY_OVERALLOCATION_BEHAVIOR_BEGIN_RANGE_AMD = VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD, | 
|  | VK_MEMORY_OVERALLOCATION_BEHAVIOR_END_RANGE_AMD = VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD, | 
|  | VK_MEMORY_OVERALLOCATION_BEHAVIOR_RANGE_SIZE_AMD = (VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD - VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD + 1), | 
|  | VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 0x7FFFFFFF | 
|  | } VkMemoryOverallocationBehaviorAMD; | 
|  |  | 
|  | typedef struct VkDeviceMemoryOverallocationCreateInfoAMD { | 
|  | VkStructureType                      sType; | 
|  | const void*                          pNext; | 
|  | VkMemoryOverallocationBehaviorAMD    overallocationBehavior; | 
|  | } VkDeviceMemoryOverallocationCreateInfoAMD; | 
|  |  | 
|  |  | 
|  |  | 
|  | #define VK_EXT_vertex_attribute_divisor 1 | 
|  | #define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 3 | 
|  | #define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_EXT_vertex_attribute_divisor" | 
|  |  | 
|  | typedef struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | uint32_t           maxVertexAttribDivisor; | 
|  | } VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT; | 
|  |  | 
|  | typedef struct VkVertexInputBindingDivisorDescriptionEXT { | 
|  | uint32_t    binding; | 
|  | uint32_t    divisor; | 
|  | } VkVertexInputBindingDivisorDescriptionEXT; | 
|  |  | 
|  | typedef struct VkPipelineVertexInputDivisorStateCreateInfoEXT { | 
|  | VkStructureType                                     sType; | 
|  | const void*                                         pNext; | 
|  | uint32_t                                            vertexBindingDivisorCount; | 
|  | const VkVertexInputBindingDivisorDescriptionEXT*    pVertexBindingDivisors; | 
|  | } VkPipelineVertexInputDivisorStateCreateInfoEXT; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | VkBool32           vertexAttributeInstanceRateDivisor; | 
|  | VkBool32           vertexAttributeInstanceRateZeroDivisor; | 
|  | } VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT; | 
|  |  | 
|  |  | 
|  |  | 
|  | #define VK_NV_shader_subgroup_partitioned 1 | 
|  | #define VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION 1 | 
|  | #define VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME "VK_NV_shader_subgroup_partitioned" | 
|  |  | 
|  |  | 
|  | #define VK_NV_compute_shader_derivatives 1 | 
|  | #define VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION 1 | 
|  | #define VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_NV_compute_shader_derivatives" | 
|  |  | 
|  | typedef struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | VkBool32           computeDerivativeGroupQuads; | 
|  | VkBool32           computeDerivativeGroupLinear; | 
|  | } VkPhysicalDeviceComputeShaderDerivativesFeaturesNV; | 
|  |  | 
|  |  | 
|  |  | 
|  | #define VK_NV_mesh_shader 1 | 
|  | #define VK_NV_MESH_SHADER_SPEC_VERSION    1 | 
|  | #define VK_NV_MESH_SHADER_EXTENSION_NAME  "VK_NV_mesh_shader" | 
|  |  | 
|  | typedef struct VkPhysicalDeviceMeshShaderFeaturesNV { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | VkBool32           taskShader; | 
|  | VkBool32           meshShader; | 
|  | } VkPhysicalDeviceMeshShaderFeaturesNV; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceMeshShaderPropertiesNV { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | uint32_t           maxDrawMeshTasksCount; | 
|  | uint32_t           maxTaskWorkGroupInvocations; | 
|  | uint32_t           maxTaskWorkGroupSize[3]; | 
|  | uint32_t           maxTaskTotalMemorySize; | 
|  | uint32_t           maxTaskOutputCount; | 
|  | uint32_t           maxMeshWorkGroupInvocations; | 
|  | uint32_t           maxMeshWorkGroupSize[3]; | 
|  | uint32_t           maxMeshTotalMemorySize; | 
|  | uint32_t           maxMeshOutputVertices; | 
|  | uint32_t           maxMeshOutputPrimitives; | 
|  | uint32_t           maxMeshMultiviewViewCount; | 
|  | uint32_t           meshOutputPerVertexGranularity; | 
|  | uint32_t           meshOutputPerPrimitiveGranularity; | 
|  | } VkPhysicalDeviceMeshShaderPropertiesNV; | 
|  |  | 
|  | typedef struct VkDrawMeshTasksIndirectCommandNV { | 
|  | uint32_t    taskCount; | 
|  | uint32_t    firstTask; | 
|  | } VkDrawMeshTasksIndirectCommandNV; | 
|  |  | 
|  |  | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksNV)(VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride); | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectCountNV)(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 vkCmdDrawMeshTasksNV( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | uint32_t                                    taskCount, | 
|  | uint32_t                                    firstTask); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectNV( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | VkBuffer                                    buffer, | 
|  | VkDeviceSize                                offset, | 
|  | uint32_t                                    drawCount, | 
|  | uint32_t                                    stride); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectCountNV( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | VkBuffer                                    buffer, | 
|  | VkDeviceSize                                offset, | 
|  | VkBuffer                                    countBuffer, | 
|  | VkDeviceSize                                countBufferOffset, | 
|  | uint32_t                                    maxDrawCount, | 
|  | uint32_t                                    stride); | 
|  | #endif | 
|  |  | 
|  | #define VK_NV_fragment_shader_barycentric 1 | 
|  | #define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1 | 
|  | #define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_NV_fragment_shader_barycentric" | 
|  |  | 
|  | typedef struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | VkBool32           fragmentShaderBarycentric; | 
|  | } VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV; | 
|  |  | 
|  |  | 
|  |  | 
|  | #define VK_NV_shader_image_footprint 1 | 
|  | #define VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION 1 | 
|  | #define VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME "VK_NV_shader_image_footprint" | 
|  |  | 
|  | typedef struct VkPhysicalDeviceShaderImageFootprintFeaturesNV { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | VkBool32           imageFootprint; | 
|  | } VkPhysicalDeviceShaderImageFootprintFeaturesNV; | 
|  |  | 
|  |  | 
|  |  | 
|  | #define VK_NV_scissor_exclusive 1 | 
|  | #define VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION 1 | 
|  | #define VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME "VK_NV_scissor_exclusive" | 
|  |  | 
|  | typedef struct VkPipelineViewportExclusiveScissorStateCreateInfoNV { | 
|  | VkStructureType    sType; | 
|  | const void*        pNext; | 
|  | uint32_t           exclusiveScissorCount; | 
|  | const VkRect2D*    pExclusiveScissors; | 
|  | } VkPipelineViewportExclusiveScissorStateCreateInfoNV; | 
|  |  | 
|  | typedef struct VkPhysicalDeviceExclusiveScissorFeaturesNV { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | VkBool32           exclusiveScissor; | 
|  | } VkPhysicalDeviceExclusiveScissorFeaturesNV; | 
|  |  | 
|  |  | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdSetExclusiveScissorNV)(VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdSetExclusiveScissorNV( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | uint32_t                                    firstExclusiveScissor, | 
|  | uint32_t                                    exclusiveScissorCount, | 
|  | const VkRect2D*                             pExclusiveScissors); | 
|  | #endif | 
|  |  | 
|  | #define VK_NV_device_diagnostic_checkpoints 1 | 
|  | #define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION 2 | 
|  | #define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME "VK_NV_device_diagnostic_checkpoints" | 
|  |  | 
|  | typedef struct VkQueueFamilyCheckpointPropertiesNV { | 
|  | VkStructureType         sType; | 
|  | void*                   pNext; | 
|  | VkPipelineStageFlags    checkpointExecutionStageMask; | 
|  | } VkQueueFamilyCheckpointPropertiesNV; | 
|  |  | 
|  | typedef struct VkCheckpointDataNV { | 
|  | VkStructureType            sType; | 
|  | void*                      pNext; | 
|  | VkPipelineStageFlagBits    stage; | 
|  | void*                      pCheckpointMarker; | 
|  | } VkCheckpointDataNV; | 
|  |  | 
|  |  | 
|  | typedef void (VKAPI_PTR *PFN_vkCmdSetCheckpointNV)(VkCommandBuffer commandBuffer, const void* pCheckpointMarker); | 
|  | typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointDataNV)(VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData); | 
|  |  | 
|  | #ifndef VK_NO_PROTOTYPES | 
|  | VKAPI_ATTR void VKAPI_CALL vkCmdSetCheckpointNV( | 
|  | VkCommandBuffer                             commandBuffer, | 
|  | const void*                                 pCheckpointMarker); | 
|  |  | 
|  | VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointDataNV( | 
|  | VkQueue                                     queue, | 
|  | uint32_t*                                   pCheckpointDataCount, | 
|  | VkCheckpointDataNV*                         pCheckpointData); | 
|  | #endif | 
|  |  | 
|  | #define VK_EXT_pci_bus_info 1 | 
|  | #define VK_EXT_PCI_BUS_INFO_SPEC_VERSION  1 | 
|  | #define VK_EXT_PCI_BUS_INFO_EXTENSION_NAME "VK_EXT_pci_bus_info" | 
|  |  | 
|  | typedef struct VkPhysicalDevicePCIBusInfoPropertiesEXT { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | uint16_t           pciDomain; | 
|  | uint8_t            pciBus; | 
|  | uint8_t            pciDevice; | 
|  | uint8_t            pciFunction; | 
|  | } VkPhysicalDevicePCIBusInfoPropertiesEXT; | 
|  |  | 
|  |  | 
|  |  | 
|  | #define VK_EXT_scalar_block_layout 1 | 
|  | #define VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION 1 | 
|  | #define VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME "VK_EXT_scalar_block_layout" | 
|  |  | 
|  | typedef struct VkPhysicalDeviceScalarBlockLayoutFeaturesEXT { | 
|  | VkStructureType    sType; | 
|  | void*              pNext; | 
|  | VkBool32           scalarBlockLayout; | 
|  | } VkPhysicalDeviceScalarBlockLayoutFeaturesEXT; | 
|  |  | 
|  |  | 
|  |  | 
|  | #define VK_GOOGLE_hlsl_functionality1 1 | 
|  | #define VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION 0 | 
|  | #define VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME "VK_GOOGLE_hlsl_functionality1" | 
|  |  | 
|  |  | 
|  | #define VK_GOOGLE_decorate_string 1 | 
|  | #define VK_GOOGLE_DECORATE_STRING_SPEC_VERSION 0 | 
|  | #define VK_GOOGLE_DECORATE_STRING_EXTENSION_NAME "VK_GOOGLE_decorate_string" | 
|  |  | 
|  |  | 
|  | #define VK_EXT_separate_stencil_usage 1 | 
|  | #define VK_EXT_SEPARATE_STENCIL_USAGE_SPEC_VERSION 1 | 
|  | #define VK_EXT_SEPARATE_STENCIL_USAGE_EXTENSION_NAME "VK_EXT_separate_stencil_usage" | 
|  |  | 
|  | typedef struct VkImageStencilUsageCreateInfoEXT { | 
|  | VkStructureType      sType; | 
|  | const void*          pNext; | 
|  | VkImageUsageFlags    stencilUsage; | 
|  | } VkImageStencilUsageCreateInfoEXT; | 
|  |  | 
|  |  | 
|  |  | 
|  | #ifdef __cplusplus | 
|  | } | 
|  | #endif | 
|  |  | 
|  | #endif |