1 #ifndef VULKAN_H_ 2 #define VULKAN_H_ 1 3 4 #ifdef __cplusplus 5 extern "C" { 6 #endif 7 8 /* 9 ** Copyright (c) 2015-2018 The Khronos Group Inc. 10 ** 11 ** Licensed under the Apache License, Version 2.0 (the "License"); 12 ** you may not use this file except in compliance with the License. 13 ** You may obtain a copy of the License at 14 ** 15 ** http://www.apache.org/licenses/LICENSE-2.0 16 ** 17 ** Unless required by applicable law or agreed to in writing, software 18 ** distributed under the License is distributed on an "AS IS" BASIS, 19 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 20 ** See the License for the specific language governing permissions and 21 ** limitations under the License. 22 */ 23 24 /* 25 ** This header is generated from the Khronos Vulkan XML API Registry. 26 ** 27 */ 28 29 30 #define VK_VERSION_1_0 1 31 #include "vk_platform.h" 32 33 #define VK_MAKE_VERSION(major, minor, patch) \ 34 (((major) << 22) | ((minor) << 12) | (patch)) 35 36 // 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. 37 //#define VK_API_VERSION VK_MAKE_VERSION(1, 0, 0) // Patch version should always be set to 0 38 39 // Vulkan 1.0 version number 40 #define VK_API_VERSION_1_0 VK_MAKE_VERSION(1, 0, 0)// Patch version should always be set to 0 41 42 #define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22) 43 #define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff) 44 #define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff) 45 // Version of this file 46 #define VK_HEADER_VERSION 68 47 48 49 #define VK_NULL_HANDLE 0 50 51 52 53 #define VK_DEFINE_HANDLE(object) typedef struct object##_T* object; 54 55 56 #if !defined(VK_DEFINE_NON_DISPATCHABLE_HANDLE) 57 #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) 58 #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object; 59 #else 60 #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object; 61 #endif 62 #endif 63 64 65 66 typedef uint32_t VkFlags; 67 typedef uint32_t VkBool32; 68 typedef uint64_t VkDeviceSize; 69 typedef uint32_t VkSampleMask; 70 71 VK_DEFINE_HANDLE(VkInstance) 72 VK_DEFINE_HANDLE(VkPhysicalDevice) 73 VK_DEFINE_HANDLE(VkDevice) 74 VK_DEFINE_HANDLE(VkQueue) 75 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSemaphore) 76 VK_DEFINE_HANDLE(VkCommandBuffer) 77 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFence) 78 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeviceMemory) 79 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer) 80 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImage) 81 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkEvent) 82 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkQueryPool) 83 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferView) 84 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImageView) 85 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderModule) 86 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineCache) 87 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineLayout) 88 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass) 89 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipeline) 90 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSetLayout) 91 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSampler) 92 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool) 93 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet) 94 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer) 95 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool) 96 97 #define VK_LOD_CLAMP_NONE 1000.0f 98 #define VK_REMAINING_MIP_LEVELS (~0U) 99 #define VK_REMAINING_ARRAY_LAYERS (~0U) 100 #define VK_WHOLE_SIZE (~0ULL) 101 #define VK_ATTACHMENT_UNUSED (~0U) 102 #define VK_TRUE 1 103 #define VK_FALSE 0 104 #define VK_QUEUE_FAMILY_IGNORED (~0U) 105 #define VK_SUBPASS_EXTERNAL (~0U) 106 #define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE 256 107 #define VK_UUID_SIZE 16 108 #define VK_MAX_MEMORY_TYPES 32 109 #define VK_MAX_MEMORY_HEAPS 16 110 #define VK_MAX_EXTENSION_NAME_SIZE 256 111 #define VK_MAX_DESCRIPTION_SIZE 256 112 113 114 typedef enum VkPipelineCacheHeaderVersion { 115 VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1, 116 VK_PIPELINE_CACHE_HEADER_VERSION_BEGIN_RANGE = VK_PIPELINE_CACHE_HEADER_VERSION_ONE, 117 VK_PIPELINE_CACHE_HEADER_VERSION_END_RANGE = VK_PIPELINE_CACHE_HEADER_VERSION_ONE, 118 VK_PIPELINE_CACHE_HEADER_VERSION_RANGE_SIZE = (VK_PIPELINE_CACHE_HEADER_VERSION_ONE - VK_PIPELINE_CACHE_HEADER_VERSION_ONE + 1), 119 VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF 120 } VkPipelineCacheHeaderVersion; 121 122 typedef enum VkResult { 123 VK_SUCCESS = 0, 124 VK_NOT_READY = 1, 125 VK_TIMEOUT = 2, 126 VK_EVENT_SET = 3, 127 VK_EVENT_RESET = 4, 128 VK_INCOMPLETE = 5, 129 VK_ERROR_OUT_OF_HOST_MEMORY = -1, 130 VK_ERROR_OUT_OF_DEVICE_MEMORY = -2, 131 VK_ERROR_INITIALIZATION_FAILED = -3, 132 VK_ERROR_DEVICE_LOST = -4, 133 VK_ERROR_MEMORY_MAP_FAILED = -5, 134 VK_ERROR_LAYER_NOT_PRESENT = -6, 135 VK_ERROR_EXTENSION_NOT_PRESENT = -7, 136 VK_ERROR_FEATURE_NOT_PRESENT = -8, 137 VK_ERROR_INCOMPATIBLE_DRIVER = -9, 138 VK_ERROR_TOO_MANY_OBJECTS = -10, 139 VK_ERROR_FORMAT_NOT_SUPPORTED = -11, 140 VK_ERROR_FRAGMENTED_POOL = -12, 141 VK_ERROR_SURFACE_LOST_KHR = -1000000000, 142 VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = -1000000001, 143 VK_SUBOPTIMAL_KHR = 1000001003, 144 VK_ERROR_OUT_OF_DATE_KHR = -1000001004, 145 VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001, 146 VK_ERROR_VALIDATION_FAILED_EXT = -1000011001, 147 VK_ERROR_INVALID_SHADER_NV = -1000012000, 148 VK_ERROR_OUT_OF_POOL_MEMORY_KHR = -1000069000, 149 VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = -1000072003, 150 VK_ERROR_NOT_PERMITTED_EXT = -1000174001, 151 VK_RESULT_BEGIN_RANGE = VK_ERROR_FRAGMENTED_POOL, 152 VK_RESULT_END_RANGE = VK_INCOMPLETE, 153 VK_RESULT_RANGE_SIZE = (VK_INCOMPLETE - VK_ERROR_FRAGMENTED_POOL + 1), 154 VK_RESULT_MAX_ENUM = 0x7FFFFFFF 155 } VkResult; 156 157 typedef enum VkStructureType { 158 VK_STRUCTURE_TYPE_APPLICATION_INFO = 0, 159 VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1, 160 VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2, 161 VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3, 162 VK_STRUCTURE_TYPE_SUBMIT_INFO = 4, 163 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5, 164 VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6, 165 VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7, 166 VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8, 167 VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9, 168 VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10, 169 VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11, 170 VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12, 171 VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13, 172 VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14, 173 VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15, 174 VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16, 175 VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17, 176 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18, 177 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19, 178 VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20, 179 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21, 180 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22, 181 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23, 182 VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24, 183 VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25, 184 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26, 185 VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27, 186 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28, 187 VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29, 188 VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30, 189 VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31, 190 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32, 191 VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33, 192 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34, 193 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35, 194 VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36, 195 VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37, 196 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38, 197 VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39, 198 VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40, 199 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41, 200 VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42, 201 VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43, 202 VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44, 203 VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45, 204 VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46, 205 VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47, 206 VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48, 207 VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000, 208 VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001, 209 VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000, 210 VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001, 211 VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR = 1000003000, 212 VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000, 213 VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000, 214 VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000, 215 VK_STRUCTURE_TYPE_MIR_SURFACE_CREATE_INFO_KHR = 1000007000, 216 VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000, 217 VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000, 218 VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000, 219 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000, 220 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000, 221 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001, 222 VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002, 223 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000, 224 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001, 225 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002, 226 VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000, 227 VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHX = 1000053000, 228 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHX = 1000053001, 229 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHX = 1000053002, 230 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000, 231 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001, 232 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000, 233 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001, 234 VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000, 235 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = 1000059000, 236 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = 1000059001, 237 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = 1000059002, 238 VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059003, 239 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = 1000059004, 240 VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = 1000059005, 241 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = 1000059006, 242 VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = 1000059007, 243 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = 1000059008, 244 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHX = 1000060000, 245 VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHX = 1000060003, 246 VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHX = 1000060004, 247 VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHX = 1000060005, 248 VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHX = 1000060006, 249 VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHX = 1000060010, 250 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHX = 1000060013, 251 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHX = 1000060014, 252 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHX = 1000060007, 253 VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHX = 1000060008, 254 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHX = 1000060009, 255 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHX = 1000060011, 256 VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHX = 1000060012, 257 VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000, 258 VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000, 259 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHX = 1000070000, 260 VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHX = 1000070001, 261 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = 1000071000, 262 VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR = 1000071001, 263 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR = 1000071002, 264 VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR = 1000071003, 265 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR = 1000071004, 266 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR = 1000072000, 267 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR = 1000072001, 268 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR = 1000072002, 269 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000, 270 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001, 271 VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002, 272 VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR = 1000073003, 273 VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = 1000074000, 274 VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = 1000074001, 275 VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR = 1000074002, 276 VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = 1000075000, 277 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = 1000076000, 278 VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = 1000076001, 279 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = 1000077000, 280 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078000, 281 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078001, 282 VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = 1000078002, 283 VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR = 1000078003, 284 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000, 285 VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001, 286 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000, 287 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = 1000083000, 288 VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000, 289 VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = 1000085000, 290 VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX = 1000086000, 291 VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX = 1000086001, 292 VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX = 1000086002, 293 VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX = 1000086003, 294 VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX = 1000086004, 295 VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX = 1000086005, 296 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000, 297 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000, 298 VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000, 299 VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001, 300 VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002, 301 VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003, 302 VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000, 303 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000, 304 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000, 305 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000, 306 VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001, 307 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000, 308 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001, 309 VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000, 310 VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000, 311 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = 1000112000, 312 VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = 1000112001, 313 VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = 1000113000, 314 VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000, 315 VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001, 316 VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002, 317 VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000, 318 VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001, 319 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR = 1000117000, 320 VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = 1000117001, 321 VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = 1000117002, 322 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = 1000117003, 323 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000, 324 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001, 325 VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002, 326 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = 1000120000, 327 VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000, 328 VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000, 329 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = 1000127000, 330 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = 1000127001, 331 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = 1000130000, 332 VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = 1000130001, 333 VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000, 334 VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001, 335 VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002, 336 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003, 337 VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004, 338 VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146000, 339 VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146001, 340 VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = 1000146002, 341 VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = 1000146003, 342 VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = 1000146004, 343 VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = 1000147000, 344 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000, 345 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001, 346 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002, 347 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000, 348 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000, 349 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = 1000156000, 350 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = 1000156001, 351 VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = 1000156002, 352 VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR = 1000156003, 353 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = 1000156004, 354 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = 1000156005, 355 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = 1000157000, 356 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = 1000157001, 357 VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000, 358 VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001, 359 VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = 1000174000, 360 VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000, 361 VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001, 362 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002, 363 VK_STRUCTURE_TYPE_BEGIN_RANGE = VK_STRUCTURE_TYPE_APPLICATION_INFO, 364 VK_STRUCTURE_TYPE_END_RANGE = VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO, 365 VK_STRUCTURE_TYPE_RANGE_SIZE = (VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO - VK_STRUCTURE_TYPE_APPLICATION_INFO + 1), 366 VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF 367 } VkStructureType; 368 369 typedef enum VkSystemAllocationScope { 370 VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0, 371 VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1, 372 VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2, 373 VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3, 374 VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4, 375 VK_SYSTEM_ALLOCATION_SCOPE_BEGIN_RANGE = VK_SYSTEM_ALLOCATION_SCOPE_COMMAND, 376 VK_SYSTEM_ALLOCATION_SCOPE_END_RANGE = VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE, 377 VK_SYSTEM_ALLOCATION_SCOPE_RANGE_SIZE = (VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE - VK_SYSTEM_ALLOCATION_SCOPE_COMMAND + 1), 378 VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 0x7FFFFFFF 379 } VkSystemAllocationScope; 380 381 typedef enum VkInternalAllocationType { 382 VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0, 383 VK_INTERNAL_ALLOCATION_TYPE_BEGIN_RANGE = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE, 384 VK_INTERNAL_ALLOCATION_TYPE_END_RANGE = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE, 385 VK_INTERNAL_ALLOCATION_TYPE_RANGE_SIZE = (VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE - VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE + 1), 386 VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF 387 } VkInternalAllocationType; 388 389 typedef enum VkFormat { 390 VK_FORMAT_UNDEFINED = 0, 391 VK_FORMAT_R4G4_UNORM_PACK8 = 1, 392 VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2, 393 VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3, 394 VK_FORMAT_R5G6B5_UNORM_PACK16 = 4, 395 VK_FORMAT_B5G6R5_UNORM_PACK16 = 5, 396 VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6, 397 VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7, 398 VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8, 399 VK_FORMAT_R8_UNORM = 9, 400 VK_FORMAT_R8_SNORM = 10, 401 VK_FORMAT_R8_USCALED = 11, 402 VK_FORMAT_R8_SSCALED = 12, 403 VK_FORMAT_R8_UINT = 13, 404 VK_FORMAT_R8_SINT = 14, 405 VK_FORMAT_R8_SRGB = 15, 406 VK_FORMAT_R8G8_UNORM = 16, 407 VK_FORMAT_R8G8_SNORM = 17, 408 VK_FORMAT_R8G8_USCALED = 18, 409 VK_FORMAT_R8G8_SSCALED = 19, 410 VK_FORMAT_R8G8_UINT = 20, 411 VK_FORMAT_R8G8_SINT = 21, 412 VK_FORMAT_R8G8_SRGB = 22, 413 VK_FORMAT_R8G8B8_UNORM = 23, 414 VK_FORMAT_R8G8B8_SNORM = 24, 415 VK_FORMAT_R8G8B8_USCALED = 25, 416 VK_FORMAT_R8G8B8_SSCALED = 26, 417 VK_FORMAT_R8G8B8_UINT = 27, 418 VK_FORMAT_R8G8B8_SINT = 28, 419 VK_FORMAT_R8G8B8_SRGB = 29, 420 VK_FORMAT_B8G8R8_UNORM = 30, 421 VK_FORMAT_B8G8R8_SNORM = 31, 422 VK_FORMAT_B8G8R8_USCALED = 32, 423 VK_FORMAT_B8G8R8_SSCALED = 33, 424 VK_FORMAT_B8G8R8_UINT = 34, 425 VK_FORMAT_B8G8R8_SINT = 35, 426 VK_FORMAT_B8G8R8_SRGB = 36, 427 VK_FORMAT_R8G8B8A8_UNORM = 37, 428 VK_FORMAT_R8G8B8A8_SNORM = 38, 429 VK_FORMAT_R8G8B8A8_USCALED = 39, 430 VK_FORMAT_R8G8B8A8_SSCALED = 40, 431 VK_FORMAT_R8G8B8A8_UINT = 41, 432 VK_FORMAT_R8G8B8A8_SINT = 42, 433 VK_FORMAT_R8G8B8A8_SRGB = 43, 434 VK_FORMAT_B8G8R8A8_UNORM = 44, 435 VK_FORMAT_B8G8R8A8_SNORM = 45, 436 VK_FORMAT_B8G8R8A8_USCALED = 46, 437 VK_FORMAT_B8G8R8A8_SSCALED = 47, 438 VK_FORMAT_B8G8R8A8_UINT = 48, 439 VK_FORMAT_B8G8R8A8_SINT = 49, 440 VK_FORMAT_B8G8R8A8_SRGB = 50, 441 VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51, 442 VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52, 443 VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53, 444 VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54, 445 VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55, 446 VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56, 447 VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57, 448 VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58, 449 VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59, 450 VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60, 451 VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61, 452 VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62, 453 VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63, 454 VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64, 455 VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65, 456 VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66, 457 VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67, 458 VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68, 459 VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69, 460 VK_FORMAT_R16_UNORM = 70, 461 VK_FORMAT_R16_SNORM = 71, 462 VK_FORMAT_R16_USCALED = 72, 463 VK_FORMAT_R16_SSCALED = 73, 464 VK_FORMAT_R16_UINT = 74, 465 VK_FORMAT_R16_SINT = 75, 466 VK_FORMAT_R16_SFLOAT = 76, 467 VK_FORMAT_R16G16_UNORM = 77, 468 VK_FORMAT_R16G16_SNORM = 78, 469 VK_FORMAT_R16G16_USCALED = 79, 470 VK_FORMAT_R16G16_SSCALED = 80, 471 VK_FORMAT_R16G16_UINT = 81, 472 VK_FORMAT_R16G16_SINT = 82, 473 VK_FORMAT_R16G16_SFLOAT = 83, 474 VK_FORMAT_R16G16B16_UNORM = 84, 475 VK_FORMAT_R16G16B16_SNORM = 85, 476 VK_FORMAT_R16G16B16_USCALED = 86, 477 VK_FORMAT_R16G16B16_SSCALED = 87, 478 VK_FORMAT_R16G16B16_UINT = 88, 479 VK_FORMAT_R16G16B16_SINT = 89, 480 VK_FORMAT_R16G16B16_SFLOAT = 90, 481 VK_FORMAT_R16G16B16A16_UNORM = 91, 482 VK_FORMAT_R16G16B16A16_SNORM = 92, 483 VK_FORMAT_R16G16B16A16_USCALED = 93, 484 VK_FORMAT_R16G16B16A16_SSCALED = 94, 485 VK_FORMAT_R16G16B16A16_UINT = 95, 486 VK_FORMAT_R16G16B16A16_SINT = 96, 487 VK_FORMAT_R16G16B16A16_SFLOAT = 97, 488 VK_FORMAT_R32_UINT = 98, 489 VK_FORMAT_R32_SINT = 99, 490 VK_FORMAT_R32_SFLOAT = 100, 491 VK_FORMAT_R32G32_UINT = 101, 492 VK_FORMAT_R32G32_SINT = 102, 493 VK_FORMAT_R32G32_SFLOAT = 103, 494 VK_FORMAT_R32G32B32_UINT = 104, 495 VK_FORMAT_R32G32B32_SINT = 105, 496 VK_FORMAT_R32G32B32_SFLOAT = 106, 497 VK_FORMAT_R32G32B32A32_UINT = 107, 498 VK_FORMAT_R32G32B32A32_SINT = 108, 499 VK_FORMAT_R32G32B32A32_SFLOAT = 109, 500 VK_FORMAT_R64_UINT = 110, 501 VK_FORMAT_R64_SINT = 111, 502 VK_FORMAT_R64_SFLOAT = 112, 503 VK_FORMAT_R64G64_UINT = 113, 504 VK_FORMAT_R64G64_SINT = 114, 505 VK_FORMAT_R64G64_SFLOAT = 115, 506 VK_FORMAT_R64G64B64_UINT = 116, 507 VK_FORMAT_R64G64B64_SINT = 117, 508 VK_FORMAT_R64G64B64_SFLOAT = 118, 509 VK_FORMAT_R64G64B64A64_UINT = 119, 510 VK_FORMAT_R64G64B64A64_SINT = 120, 511 VK_FORMAT_R64G64B64A64_SFLOAT = 121, 512 VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122, 513 VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123, 514 VK_FORMAT_D16_UNORM = 124, 515 VK_FORMAT_X8_D24_UNORM_PACK32 = 125, 516 VK_FORMAT_D32_SFLOAT = 126, 517 VK_FORMAT_S8_UINT = 127, 518 VK_FORMAT_D16_UNORM_S8_UINT = 128, 519 VK_FORMAT_D24_UNORM_S8_UINT = 129, 520 VK_FORMAT_D32_SFLOAT_S8_UINT = 130, 521 VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131, 522 VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132, 523 VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133, 524 VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134, 525 VK_FORMAT_BC2_UNORM_BLOCK = 135, 526 VK_FORMAT_BC2_SRGB_BLOCK = 136, 527 VK_FORMAT_BC3_UNORM_BLOCK = 137, 528 VK_FORMAT_BC3_SRGB_BLOCK = 138, 529 VK_FORMAT_BC4_UNORM_BLOCK = 139, 530 VK_FORMAT_BC4_SNORM_BLOCK = 140, 531 VK_FORMAT_BC5_UNORM_BLOCK = 141, 532 VK_FORMAT_BC5_SNORM_BLOCK = 142, 533 VK_FORMAT_BC6H_UFLOAT_BLOCK = 143, 534 VK_FORMAT_BC6H_SFLOAT_BLOCK = 144, 535 VK_FORMAT_BC7_UNORM_BLOCK = 145, 536 VK_FORMAT_BC7_SRGB_BLOCK = 146, 537 VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147, 538 VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148, 539 VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149, 540 VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150, 541 VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151, 542 VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152, 543 VK_FORMAT_EAC_R11_UNORM_BLOCK = 153, 544 VK_FORMAT_EAC_R11_SNORM_BLOCK = 154, 545 VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155, 546 VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156, 547 VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157, 548 VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158, 549 VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159, 550 VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160, 551 VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161, 552 VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162, 553 VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163, 554 VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164, 555 VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165, 556 VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166, 557 VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167, 558 VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168, 559 VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169, 560 VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170, 561 VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171, 562 VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172, 563 VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173, 564 VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174, 565 VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175, 566 VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176, 567 VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177, 568 VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178, 569 VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179, 570 VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180, 571 VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181, 572 VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182, 573 VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183, 574 VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184, 575 VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000, 576 VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001, 577 VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002, 578 VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003, 579 VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004, 580 VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005, 581 VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006, 582 VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007, 583 VK_FORMAT_G8B8G8R8_422_UNORM_KHR = 1000156000, 584 VK_FORMAT_B8G8R8G8_422_UNORM_KHR = 1000156001, 585 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = 1000156002, 586 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR = 1000156003, 587 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR = 1000156004, 588 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR = 1000156005, 589 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR = 1000156006, 590 VK_FORMAT_R10X6_UNORM_PACK16_KHR = 1000156007, 591 VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR = 1000156008, 592 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = 1000156009, 593 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = 1000156010, 594 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = 1000156011, 595 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = 1000156012, 596 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = 1000156013, 597 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = 1000156014, 598 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = 1000156015, 599 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = 1000156016, 600 VK_FORMAT_R12X4_UNORM_PACK16_KHR = 1000156017, 601 VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR = 1000156018, 602 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = 1000156019, 603 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = 1000156020, 604 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = 1000156021, 605 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = 1000156022, 606 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = 1000156023, 607 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = 1000156024, 608 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = 1000156025, 609 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = 1000156026, 610 VK_FORMAT_G16B16G16R16_422_UNORM_KHR = 1000156027, 611 VK_FORMAT_B16G16R16G16_422_UNORM_KHR = 1000156028, 612 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR = 1000156029, 613 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR = 1000156030, 614 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = 1000156031, 615 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = 1000156032, 616 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = 1000156033, 617 VK_FORMAT_BEGIN_RANGE = VK_FORMAT_UNDEFINED, 618 VK_FORMAT_END_RANGE = VK_FORMAT_ASTC_12x12_SRGB_BLOCK, 619 VK_FORMAT_RANGE_SIZE = (VK_FORMAT_ASTC_12x12_SRGB_BLOCK - VK_FORMAT_UNDEFINED + 1), 620 VK_FORMAT_MAX_ENUM = 0x7FFFFFFF 621 } VkFormat; 622 623 typedef enum VkImageType { 624 VK_IMAGE_TYPE_1D = 0, 625 VK_IMAGE_TYPE_2D = 1, 626 VK_IMAGE_TYPE_3D = 2, 627 VK_IMAGE_TYPE_BEGIN_RANGE = VK_IMAGE_TYPE_1D, 628 VK_IMAGE_TYPE_END_RANGE = VK_IMAGE_TYPE_3D, 629 VK_IMAGE_TYPE_RANGE_SIZE = (VK_IMAGE_TYPE_3D - VK_IMAGE_TYPE_1D + 1), 630 VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF 631 } VkImageType; 632 633 typedef enum VkImageTiling { 634 VK_IMAGE_TILING_OPTIMAL = 0, 635 VK_IMAGE_TILING_LINEAR = 1, 636 VK_IMAGE_TILING_BEGIN_RANGE = VK_IMAGE_TILING_OPTIMAL, 637 VK_IMAGE_TILING_END_RANGE = VK_IMAGE_TILING_LINEAR, 638 VK_IMAGE_TILING_RANGE_SIZE = (VK_IMAGE_TILING_LINEAR - VK_IMAGE_TILING_OPTIMAL + 1), 639 VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF 640 } VkImageTiling; 641 642 typedef enum VkPhysicalDeviceType { 643 VK_PHYSICAL_DEVICE_TYPE_OTHER = 0, 644 VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1, 645 VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2, 646 VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3, 647 VK_PHYSICAL_DEVICE_TYPE_CPU = 4, 648 VK_PHYSICAL_DEVICE_TYPE_BEGIN_RANGE = VK_PHYSICAL_DEVICE_TYPE_OTHER, 649 VK_PHYSICAL_DEVICE_TYPE_END_RANGE = VK_PHYSICAL_DEVICE_TYPE_CPU, 650 VK_PHYSICAL_DEVICE_TYPE_RANGE_SIZE = (VK_PHYSICAL_DEVICE_TYPE_CPU - VK_PHYSICAL_DEVICE_TYPE_OTHER + 1), 651 VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF 652 } VkPhysicalDeviceType; 653 654 typedef enum VkQueryType { 655 VK_QUERY_TYPE_OCCLUSION = 0, 656 VK_QUERY_TYPE_PIPELINE_STATISTICS = 1, 657 VK_QUERY_TYPE_TIMESTAMP = 2, 658 VK_QUERY_TYPE_BEGIN_RANGE = VK_QUERY_TYPE_OCCLUSION, 659 VK_QUERY_TYPE_END_RANGE = VK_QUERY_TYPE_TIMESTAMP, 660 VK_QUERY_TYPE_RANGE_SIZE = (VK_QUERY_TYPE_TIMESTAMP - VK_QUERY_TYPE_OCCLUSION + 1), 661 VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF 662 } VkQueryType; 663 664 typedef enum VkSharingMode { 665 VK_SHARING_MODE_EXCLUSIVE = 0, 666 VK_SHARING_MODE_CONCURRENT = 1, 667 VK_SHARING_MODE_BEGIN_RANGE = VK_SHARING_MODE_EXCLUSIVE, 668 VK_SHARING_MODE_END_RANGE = VK_SHARING_MODE_CONCURRENT, 669 VK_SHARING_MODE_RANGE_SIZE = (VK_SHARING_MODE_CONCURRENT - VK_SHARING_MODE_EXCLUSIVE + 1), 670 VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF 671 } VkSharingMode; 672 673 typedef enum VkImageLayout { 674 VK_IMAGE_LAYOUT_UNDEFINED = 0, 675 VK_IMAGE_LAYOUT_GENERAL = 1, 676 VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2, 677 VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3, 678 VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4, 679 VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5, 680 VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6, 681 VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7, 682 VK_IMAGE_LAYOUT_PREINITIALIZED = 8, 683 VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002, 684 VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000, 685 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = 1000117000, 686 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = 1000117001, 687 VK_IMAGE_LAYOUT_BEGIN_RANGE = VK_IMAGE_LAYOUT_UNDEFINED, 688 VK_IMAGE_LAYOUT_END_RANGE = VK_IMAGE_LAYOUT_PREINITIALIZED, 689 VK_IMAGE_LAYOUT_RANGE_SIZE = (VK_IMAGE_LAYOUT_PREINITIALIZED - VK_IMAGE_LAYOUT_UNDEFINED + 1), 690 VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF 691 } VkImageLayout; 692 693 typedef enum VkImageViewType { 694 VK_IMAGE_VIEW_TYPE_1D = 0, 695 VK_IMAGE_VIEW_TYPE_2D = 1, 696 VK_IMAGE_VIEW_TYPE_3D = 2, 697 VK_IMAGE_VIEW_TYPE_CUBE = 3, 698 VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4, 699 VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5, 700 VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6, 701 VK_IMAGE_VIEW_TYPE_BEGIN_RANGE = VK_IMAGE_VIEW_TYPE_1D, 702 VK_IMAGE_VIEW_TYPE_END_RANGE = VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, 703 VK_IMAGE_VIEW_TYPE_RANGE_SIZE = (VK_IMAGE_VIEW_TYPE_CUBE_ARRAY - VK_IMAGE_VIEW_TYPE_1D + 1), 704 VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF 705 } VkImageViewType; 706 707 typedef enum VkComponentSwizzle { 708 VK_COMPONENT_SWIZZLE_IDENTITY = 0, 709 VK_COMPONENT_SWIZZLE_ZERO = 1, 710 VK_COMPONENT_SWIZZLE_ONE = 2, 711 VK_COMPONENT_SWIZZLE_R = 3, 712 VK_COMPONENT_SWIZZLE_G = 4, 713 VK_COMPONENT_SWIZZLE_B = 5, 714 VK_COMPONENT_SWIZZLE_A = 6, 715 VK_COMPONENT_SWIZZLE_BEGIN_RANGE = VK_COMPONENT_SWIZZLE_IDENTITY, 716 VK_COMPONENT_SWIZZLE_END_RANGE = VK_COMPONENT_SWIZZLE_A, 717 VK_COMPONENT_SWIZZLE_RANGE_SIZE = (VK_COMPONENT_SWIZZLE_A - VK_COMPONENT_SWIZZLE_IDENTITY + 1), 718 VK_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF 719 } VkComponentSwizzle; 720 721 typedef enum VkVertexInputRate { 722 VK_VERTEX_INPUT_RATE_VERTEX = 0, 723 VK_VERTEX_INPUT_RATE_INSTANCE = 1, 724 VK_VERTEX_INPUT_RATE_BEGIN_RANGE = VK_VERTEX_INPUT_RATE_VERTEX, 725 VK_VERTEX_INPUT_RATE_END_RANGE = VK_VERTEX_INPUT_RATE_INSTANCE, 726 VK_VERTEX_INPUT_RATE_RANGE_SIZE = (VK_VERTEX_INPUT_RATE_INSTANCE - VK_VERTEX_INPUT_RATE_VERTEX + 1), 727 VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF 728 } VkVertexInputRate; 729 730 typedef enum VkPrimitiveTopology { 731 VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0, 732 VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1, 733 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2, 734 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3, 735 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4, 736 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5, 737 VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6, 738 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7, 739 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8, 740 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9, 741 VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10, 742 VK_PRIMITIVE_TOPOLOGY_BEGIN_RANGE = VK_PRIMITIVE_TOPOLOGY_POINT_LIST, 743 VK_PRIMITIVE_TOPOLOGY_END_RANGE = VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, 744 VK_PRIMITIVE_TOPOLOGY_RANGE_SIZE = (VK_PRIMITIVE_TOPOLOGY_PATCH_LIST - VK_PRIMITIVE_TOPOLOGY_POINT_LIST + 1), 745 VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF 746 } VkPrimitiveTopology; 747 748 typedef enum VkPolygonMode { 749 VK_POLYGON_MODE_FILL = 0, 750 VK_POLYGON_MODE_LINE = 1, 751 VK_POLYGON_MODE_POINT = 2, 752 VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000, 753 VK_POLYGON_MODE_BEGIN_RANGE = VK_POLYGON_MODE_FILL, 754 VK_POLYGON_MODE_END_RANGE = VK_POLYGON_MODE_POINT, 755 VK_POLYGON_MODE_RANGE_SIZE = (VK_POLYGON_MODE_POINT - VK_POLYGON_MODE_FILL + 1), 756 VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF 757 } VkPolygonMode; 758 759 typedef enum VkFrontFace { 760 VK_FRONT_FACE_COUNTER_CLOCKWISE = 0, 761 VK_FRONT_FACE_CLOCKWISE = 1, 762 VK_FRONT_FACE_BEGIN_RANGE = VK_FRONT_FACE_COUNTER_CLOCKWISE, 763 VK_FRONT_FACE_END_RANGE = VK_FRONT_FACE_CLOCKWISE, 764 VK_FRONT_FACE_RANGE_SIZE = (VK_FRONT_FACE_CLOCKWISE - VK_FRONT_FACE_COUNTER_CLOCKWISE + 1), 765 VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF 766 } VkFrontFace; 767 768 typedef enum VkCompareOp { 769 VK_COMPARE_OP_NEVER = 0, 770 VK_COMPARE_OP_LESS = 1, 771 VK_COMPARE_OP_EQUAL = 2, 772 VK_COMPARE_OP_LESS_OR_EQUAL = 3, 773 VK_COMPARE_OP_GREATER = 4, 774 VK_COMPARE_OP_NOT_EQUAL = 5, 775 VK_COMPARE_OP_GREATER_OR_EQUAL = 6, 776 VK_COMPARE_OP_ALWAYS = 7, 777 VK_COMPARE_OP_BEGIN_RANGE = VK_COMPARE_OP_NEVER, 778 VK_COMPARE_OP_END_RANGE = VK_COMPARE_OP_ALWAYS, 779 VK_COMPARE_OP_RANGE_SIZE = (VK_COMPARE_OP_ALWAYS - VK_COMPARE_OP_NEVER + 1), 780 VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF 781 } VkCompareOp; 782 783 typedef enum VkStencilOp { 784 VK_STENCIL_OP_KEEP = 0, 785 VK_STENCIL_OP_ZERO = 1, 786 VK_STENCIL_OP_REPLACE = 2, 787 VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3, 788 VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4, 789 VK_STENCIL_OP_INVERT = 5, 790 VK_STENCIL_OP_INCREMENT_AND_WRAP = 6, 791 VK_STENCIL_OP_DECREMENT_AND_WRAP = 7, 792 VK_STENCIL_OP_BEGIN_RANGE = VK_STENCIL_OP_KEEP, 793 VK_STENCIL_OP_END_RANGE = VK_STENCIL_OP_DECREMENT_AND_WRAP, 794 VK_STENCIL_OP_RANGE_SIZE = (VK_STENCIL_OP_DECREMENT_AND_WRAP - VK_STENCIL_OP_KEEP + 1), 795 VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF 796 } VkStencilOp; 797 798 typedef enum VkLogicOp { 799 VK_LOGIC_OP_CLEAR = 0, 800 VK_LOGIC_OP_AND = 1, 801 VK_LOGIC_OP_AND_REVERSE = 2, 802 VK_LOGIC_OP_COPY = 3, 803 VK_LOGIC_OP_AND_INVERTED = 4, 804 VK_LOGIC_OP_NO_OP = 5, 805 VK_LOGIC_OP_XOR = 6, 806 VK_LOGIC_OP_OR = 7, 807 VK_LOGIC_OP_NOR = 8, 808 VK_LOGIC_OP_EQUIVALENT = 9, 809 VK_LOGIC_OP_INVERT = 10, 810 VK_LOGIC_OP_OR_REVERSE = 11, 811 VK_LOGIC_OP_COPY_INVERTED = 12, 812 VK_LOGIC_OP_OR_INVERTED = 13, 813 VK_LOGIC_OP_NAND = 14, 814 VK_LOGIC_OP_SET = 15, 815 VK_LOGIC_OP_BEGIN_RANGE = VK_LOGIC_OP_CLEAR, 816 VK_LOGIC_OP_END_RANGE = VK_LOGIC_OP_SET, 817 VK_LOGIC_OP_RANGE_SIZE = (VK_LOGIC_OP_SET - VK_LOGIC_OP_CLEAR + 1), 818 VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF 819 } VkLogicOp; 820 821 typedef enum VkBlendFactor { 822 VK_BLEND_FACTOR_ZERO = 0, 823 VK_BLEND_FACTOR_ONE = 1, 824 VK_BLEND_FACTOR_SRC_COLOR = 2, 825 VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3, 826 VK_BLEND_FACTOR_DST_COLOR = 4, 827 VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5, 828 VK_BLEND_FACTOR_SRC_ALPHA = 6, 829 VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7, 830 VK_BLEND_FACTOR_DST_ALPHA = 8, 831 VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9, 832 VK_BLEND_FACTOR_CONSTANT_COLOR = 10, 833 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11, 834 VK_BLEND_FACTOR_CONSTANT_ALPHA = 12, 835 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13, 836 VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14, 837 VK_BLEND_FACTOR_SRC1_COLOR = 15, 838 VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16, 839 VK_BLEND_FACTOR_SRC1_ALPHA = 17, 840 VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18, 841 VK_BLEND_FACTOR_BEGIN_RANGE = VK_BLEND_FACTOR_ZERO, 842 VK_BLEND_FACTOR_END_RANGE = VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA, 843 VK_BLEND_FACTOR_RANGE_SIZE = (VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA - VK_BLEND_FACTOR_ZERO + 1), 844 VK_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF 845 } VkBlendFactor; 846 847 typedef enum VkBlendOp { 848 VK_BLEND_OP_ADD = 0, 849 VK_BLEND_OP_SUBTRACT = 1, 850 VK_BLEND_OP_REVERSE_SUBTRACT = 2, 851 VK_BLEND_OP_MIN = 3, 852 VK_BLEND_OP_MAX = 4, 853 VK_BLEND_OP_ZERO_EXT = 1000148000, 854 VK_BLEND_OP_SRC_EXT = 1000148001, 855 VK_BLEND_OP_DST_EXT = 1000148002, 856 VK_BLEND_OP_SRC_OVER_EXT = 1000148003, 857 VK_BLEND_OP_DST_OVER_EXT = 1000148004, 858 VK_BLEND_OP_SRC_IN_EXT = 1000148005, 859 VK_BLEND_OP_DST_IN_EXT = 1000148006, 860 VK_BLEND_OP_SRC_OUT_EXT = 1000148007, 861 VK_BLEND_OP_DST_OUT_EXT = 1000148008, 862 VK_BLEND_OP_SRC_ATOP_EXT = 1000148009, 863 VK_BLEND_OP_DST_ATOP_EXT = 1000148010, 864 VK_BLEND_OP_XOR_EXT = 1000148011, 865 VK_BLEND_OP_MULTIPLY_EXT = 1000148012, 866 VK_BLEND_OP_SCREEN_EXT = 1000148013, 867 VK_BLEND_OP_OVERLAY_EXT = 1000148014, 868 VK_BLEND_OP_DARKEN_EXT = 1000148015, 869 VK_BLEND_OP_LIGHTEN_EXT = 1000148016, 870 VK_BLEND_OP_COLORDODGE_EXT = 1000148017, 871 VK_BLEND_OP_COLORBURN_EXT = 1000148018, 872 VK_BLEND_OP_HARDLIGHT_EXT = 1000148019, 873 VK_BLEND_OP_SOFTLIGHT_EXT = 1000148020, 874 VK_BLEND_OP_DIFFERENCE_EXT = 1000148021, 875 VK_BLEND_OP_EXCLUSION_EXT = 1000148022, 876 VK_BLEND_OP_INVERT_EXT = 1000148023, 877 VK_BLEND_OP_INVERT_RGB_EXT = 1000148024, 878 VK_BLEND_OP_LINEARDODGE_EXT = 1000148025, 879 VK_BLEND_OP_LINEARBURN_EXT = 1000148026, 880 VK_BLEND_OP_VIVIDLIGHT_EXT = 1000148027, 881 VK_BLEND_OP_LINEARLIGHT_EXT = 1000148028, 882 VK_BLEND_OP_PINLIGHT_EXT = 1000148029, 883 VK_BLEND_OP_HARDMIX_EXT = 1000148030, 884 VK_BLEND_OP_HSL_HUE_EXT = 1000148031, 885 VK_BLEND_OP_HSL_SATURATION_EXT = 1000148032, 886 VK_BLEND_OP_HSL_COLOR_EXT = 1000148033, 887 VK_BLEND_OP_HSL_LUMINOSITY_EXT = 1000148034, 888 VK_BLEND_OP_PLUS_EXT = 1000148035, 889 VK_BLEND_OP_PLUS_CLAMPED_EXT = 1000148036, 890 VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037, 891 VK_BLEND_OP_PLUS_DARKER_EXT = 1000148038, 892 VK_BLEND_OP_MINUS_EXT = 1000148039, 893 VK_BLEND_OP_MINUS_CLAMPED_EXT = 1000148040, 894 VK_BLEND_OP_CONTRAST_EXT = 1000148041, 895 VK_BLEND_OP_INVERT_OVG_EXT = 1000148042, 896 VK_BLEND_OP_RED_EXT = 1000148043, 897 VK_BLEND_OP_GREEN_EXT = 1000148044, 898 VK_BLEND_OP_BLUE_EXT = 1000148045, 899 VK_BLEND_OP_BEGIN_RANGE = VK_BLEND_OP_ADD, 900 VK_BLEND_OP_END_RANGE = VK_BLEND_OP_MAX, 901 VK_BLEND_OP_RANGE_SIZE = (VK_BLEND_OP_MAX - VK_BLEND_OP_ADD + 1), 902 VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF 903 } VkBlendOp; 904 905 typedef enum VkDynamicState { 906 VK_DYNAMIC_STATE_VIEWPORT = 0, 907 VK_DYNAMIC_STATE_SCISSOR = 1, 908 VK_DYNAMIC_STATE_LINE_WIDTH = 2, 909 VK_DYNAMIC_STATE_DEPTH_BIAS = 3, 910 VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4, 911 VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5, 912 VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6, 913 VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7, 914 VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8, 915 VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000, 916 VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000, 917 VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000, 918 VK_DYNAMIC_STATE_BEGIN_RANGE = VK_DYNAMIC_STATE_VIEWPORT, 919 VK_DYNAMIC_STATE_END_RANGE = VK_DYNAMIC_STATE_STENCIL_REFERENCE, 920 VK_DYNAMIC_STATE_RANGE_SIZE = (VK_DYNAMIC_STATE_STENCIL_REFERENCE - VK_DYNAMIC_STATE_VIEWPORT + 1), 921 VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF 922 } VkDynamicState; 923 924 typedef enum VkFilter { 925 VK_FILTER_NEAREST = 0, 926 VK_FILTER_LINEAR = 1, 927 VK_FILTER_CUBIC_IMG = 1000015000, 928 VK_FILTER_BEGIN_RANGE = VK_FILTER_NEAREST, 929 VK_FILTER_END_RANGE = VK_FILTER_LINEAR, 930 VK_FILTER_RANGE_SIZE = (VK_FILTER_LINEAR - VK_FILTER_NEAREST + 1), 931 VK_FILTER_MAX_ENUM = 0x7FFFFFFF 932 } VkFilter; 933 934 typedef enum VkSamplerMipmapMode { 935 VK_SAMPLER_MIPMAP_MODE_NEAREST = 0, 936 VK_SAMPLER_MIPMAP_MODE_LINEAR = 1, 937 VK_SAMPLER_MIPMAP_MODE_BEGIN_RANGE = VK_SAMPLER_MIPMAP_MODE_NEAREST, 938 VK_SAMPLER_MIPMAP_MODE_END_RANGE = VK_SAMPLER_MIPMAP_MODE_LINEAR, 939 VK_SAMPLER_MIPMAP_MODE_RANGE_SIZE = (VK_SAMPLER_MIPMAP_MODE_LINEAR - VK_SAMPLER_MIPMAP_MODE_NEAREST + 1), 940 VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF 941 } VkSamplerMipmapMode; 942 943 typedef enum VkSamplerAddressMode { 944 VK_SAMPLER_ADDRESS_MODE_REPEAT = 0, 945 VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1, 946 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2, 947 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3, 948 VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4, 949 VK_SAMPLER_ADDRESS_MODE_BEGIN_RANGE = VK_SAMPLER_ADDRESS_MODE_REPEAT, 950 VK_SAMPLER_ADDRESS_MODE_END_RANGE = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER, 951 VK_SAMPLER_ADDRESS_MODE_RANGE_SIZE = (VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER - VK_SAMPLER_ADDRESS_MODE_REPEAT + 1), 952 VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF 953 } VkSamplerAddressMode; 954 955 typedef enum VkBorderColor { 956 VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0, 957 VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1, 958 VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2, 959 VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3, 960 VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4, 961 VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5, 962 VK_BORDER_COLOR_BEGIN_RANGE = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK, 963 VK_BORDER_COLOR_END_RANGE = VK_BORDER_COLOR_INT_OPAQUE_WHITE, 964 VK_BORDER_COLOR_RANGE_SIZE = (VK_BORDER_COLOR_INT_OPAQUE_WHITE - VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK + 1), 965 VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF 966 } VkBorderColor; 967 968 typedef enum VkDescriptorType { 969 VK_DESCRIPTOR_TYPE_SAMPLER = 0, 970 VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1, 971 VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2, 972 VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3, 973 VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4, 974 VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5, 975 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6, 976 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7, 977 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8, 978 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9, 979 VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10, 980 VK_DESCRIPTOR_TYPE_BEGIN_RANGE = VK_DESCRIPTOR_TYPE_SAMPLER, 981 VK_DESCRIPTOR_TYPE_END_RANGE = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, 982 VK_DESCRIPTOR_TYPE_RANGE_SIZE = (VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT - VK_DESCRIPTOR_TYPE_SAMPLER + 1), 983 VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF 984 } VkDescriptorType; 985 986 typedef enum VkAttachmentLoadOp { 987 VK_ATTACHMENT_LOAD_OP_LOAD = 0, 988 VK_ATTACHMENT_LOAD_OP_CLEAR = 1, 989 VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2, 990 VK_ATTACHMENT_LOAD_OP_BEGIN_RANGE = VK_ATTACHMENT_LOAD_OP_LOAD, 991 VK_ATTACHMENT_LOAD_OP_END_RANGE = VK_ATTACHMENT_LOAD_OP_DONT_CARE, 992 VK_ATTACHMENT_LOAD_OP_RANGE_SIZE = (VK_ATTACHMENT_LOAD_OP_DONT_CARE - VK_ATTACHMENT_LOAD_OP_LOAD + 1), 993 VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF 994 } VkAttachmentLoadOp; 995 996 typedef enum VkAttachmentStoreOp { 997 VK_ATTACHMENT_STORE_OP_STORE = 0, 998 VK_ATTACHMENT_STORE_OP_DONT_CARE = 1, 999 VK_ATTACHMENT_STORE_OP_BEGIN_RANGE = VK_ATTACHMENT_STORE_OP_STORE, 1000 VK_ATTACHMENT_STORE_OP_END_RANGE = VK_ATTACHMENT_STORE_OP_DONT_CARE, 1001 VK_ATTACHMENT_STORE_OP_RANGE_SIZE = (VK_ATTACHMENT_STORE_OP_DONT_CARE - VK_ATTACHMENT_STORE_OP_STORE + 1), 1002 VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF 1003 } VkAttachmentStoreOp; 1004 1005 typedef enum VkPipelineBindPoint { 1006 VK_PIPELINE_BIND_POINT_GRAPHICS = 0, 1007 VK_PIPELINE_BIND_POINT_COMPUTE = 1, 1008 VK_PIPELINE_BIND_POINT_BEGIN_RANGE = VK_PIPELINE_BIND_POINT_GRAPHICS, 1009 VK_PIPELINE_BIND_POINT_END_RANGE = VK_PIPELINE_BIND_POINT_COMPUTE, 1010 VK_PIPELINE_BIND_POINT_RANGE_SIZE = (VK_PIPELINE_BIND_POINT_COMPUTE - VK_PIPELINE_BIND_POINT_GRAPHICS + 1), 1011 VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF 1012 } VkPipelineBindPoint; 1013 1014 typedef enum VkCommandBufferLevel { 1015 VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0, 1016 VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1, 1017 VK_COMMAND_BUFFER_LEVEL_BEGIN_RANGE = VK_COMMAND_BUFFER_LEVEL_PRIMARY, 1018 VK_COMMAND_BUFFER_LEVEL_END_RANGE = VK_COMMAND_BUFFER_LEVEL_SECONDARY, 1019 VK_COMMAND_BUFFER_LEVEL_RANGE_SIZE = (VK_COMMAND_BUFFER_LEVEL_SECONDARY - VK_COMMAND_BUFFER_LEVEL_PRIMARY + 1), 1020 VK_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF 1021 } VkCommandBufferLevel; 1022 1023 typedef enum VkIndexType { 1024 VK_INDEX_TYPE_UINT16 = 0, 1025 VK_INDEX_TYPE_UINT32 = 1, 1026 VK_INDEX_TYPE_BEGIN_RANGE = VK_INDEX_TYPE_UINT16, 1027 VK_INDEX_TYPE_END_RANGE = VK_INDEX_TYPE_UINT32, 1028 VK_INDEX_TYPE_RANGE_SIZE = (VK_INDEX_TYPE_UINT32 - VK_INDEX_TYPE_UINT16 + 1), 1029 VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF 1030 } VkIndexType; 1031 1032 typedef enum VkSubpassContents { 1033 VK_SUBPASS_CONTENTS_INLINE = 0, 1034 VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1, 1035 VK_SUBPASS_CONTENTS_BEGIN_RANGE = VK_SUBPASS_CONTENTS_INLINE, 1036 VK_SUBPASS_CONTENTS_END_RANGE = VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS, 1037 VK_SUBPASS_CONTENTS_RANGE_SIZE = (VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS - VK_SUBPASS_CONTENTS_INLINE + 1), 1038 VK_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF 1039 } VkSubpassContents; 1040 1041 typedef enum VkObjectType { 1042 VK_OBJECT_TYPE_UNKNOWN = 0, 1043 VK_OBJECT_TYPE_INSTANCE = 1, 1044 VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2, 1045 VK_OBJECT_TYPE_DEVICE = 3, 1046 VK_OBJECT_TYPE_QUEUE = 4, 1047 VK_OBJECT_TYPE_SEMAPHORE = 5, 1048 VK_OBJECT_TYPE_COMMAND_BUFFER = 6, 1049 VK_OBJECT_TYPE_FENCE = 7, 1050 VK_OBJECT_TYPE_DEVICE_MEMORY = 8, 1051 VK_OBJECT_TYPE_BUFFER = 9, 1052 VK_OBJECT_TYPE_IMAGE = 10, 1053 VK_OBJECT_TYPE_EVENT = 11, 1054 VK_OBJECT_TYPE_QUERY_POOL = 12, 1055 VK_OBJECT_TYPE_BUFFER_VIEW = 13, 1056 VK_OBJECT_TYPE_IMAGE_VIEW = 14, 1057 VK_OBJECT_TYPE_SHADER_MODULE = 15, 1058 VK_OBJECT_TYPE_PIPELINE_CACHE = 16, 1059 VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17, 1060 VK_OBJECT_TYPE_RENDER_PASS = 18, 1061 VK_OBJECT_TYPE_PIPELINE = 19, 1062 VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20, 1063 VK_OBJECT_TYPE_SAMPLER = 21, 1064 VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22, 1065 VK_OBJECT_TYPE_DESCRIPTOR_SET = 23, 1066 VK_OBJECT_TYPE_FRAMEBUFFER = 24, 1067 VK_OBJECT_TYPE_COMMAND_POOL = 25, 1068 VK_OBJECT_TYPE_SURFACE_KHR = 1000000000, 1069 VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000, 1070 VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000, 1071 VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001, 1072 VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000, 1073 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = 1000085000, 1074 VK_OBJECT_TYPE_OBJECT_TABLE_NVX = 1000086000, 1075 VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX = 1000086001, 1076 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = 1000156000, 1077 VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000, 1078 VK_OBJECT_TYPE_BEGIN_RANGE = VK_OBJECT_TYPE_UNKNOWN, 1079 VK_OBJECT_TYPE_END_RANGE = VK_OBJECT_TYPE_COMMAND_POOL, 1080 VK_OBJECT_TYPE_RANGE_SIZE = (VK_OBJECT_TYPE_COMMAND_POOL - VK_OBJECT_TYPE_UNKNOWN + 1), 1081 VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF 1082 } VkObjectType; 1083 1084 typedef VkFlags VkInstanceCreateFlags; 1085 1086 typedef enum VkFormatFeatureFlagBits { 1087 VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001, 1088 VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002, 1089 VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004, 1090 VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008, 1091 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010, 1092 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020, 1093 VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040, 1094 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080, 1095 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100, 1096 VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200, 1097 VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400, 1098 VK_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800, 1099 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000, 1100 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000, 1101 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = 0x00004000, 1102 VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = 0x00008000, 1103 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = 0x00010000, 1104 VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = 0x00020000, 1105 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = 0x00040000, 1106 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = 0x00080000, 1107 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = 0x00100000, 1108 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 0x00200000, 1109 VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = 0x00400000, 1110 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = 0x00800000, 1111 VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1112 } VkFormatFeatureFlagBits; 1113 typedef VkFlags VkFormatFeatureFlags; 1114 1115 typedef enum VkImageUsageFlagBits { 1116 VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001, 1117 VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002, 1118 VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004, 1119 VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008, 1120 VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010, 1121 VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020, 1122 VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040, 1123 VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080, 1124 VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1125 } VkImageUsageFlagBits; 1126 typedef VkFlags VkImageUsageFlags; 1127 1128 typedef enum VkImageCreateFlagBits { 1129 VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001, 1130 VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, 1131 VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004, 1132 VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008, 1133 VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010, 1134 VK_IMAGE_CREATE_BIND_SFR_BIT_KHX = 0x00000040, 1135 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = 0x00000020, 1136 VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = 0x00000080, 1137 VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR = 0x00000100, 1138 VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000, 1139 VK_IMAGE_CREATE_DISJOINT_BIT_KHR = 0x00000200, 1140 VK_IMAGE_CREATE_ALIAS_BIT_KHR = 0x00000400, 1141 VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1142 } VkImageCreateFlagBits; 1143 typedef VkFlags VkImageCreateFlags; 1144 1145 typedef enum VkSampleCountFlagBits { 1146 VK_SAMPLE_COUNT_1_BIT = 0x00000001, 1147 VK_SAMPLE_COUNT_2_BIT = 0x00000002, 1148 VK_SAMPLE_COUNT_4_BIT = 0x00000004, 1149 VK_SAMPLE_COUNT_8_BIT = 0x00000008, 1150 VK_SAMPLE_COUNT_16_BIT = 0x00000010, 1151 VK_SAMPLE_COUNT_32_BIT = 0x00000020, 1152 VK_SAMPLE_COUNT_64_BIT = 0x00000040, 1153 VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1154 } VkSampleCountFlagBits; 1155 typedef VkFlags VkSampleCountFlags; 1156 1157 typedef enum VkQueueFlagBits { 1158 VK_QUEUE_GRAPHICS_BIT = 0x00000001, 1159 VK_QUEUE_COMPUTE_BIT = 0x00000002, 1160 VK_QUEUE_TRANSFER_BIT = 0x00000004, 1161 VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008, 1162 VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1163 } VkQueueFlagBits; 1164 typedef VkFlags VkQueueFlags; 1165 1166 typedef enum VkMemoryPropertyFlagBits { 1167 VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001, 1168 VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002, 1169 VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004, 1170 VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008, 1171 VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010, 1172 VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1173 } VkMemoryPropertyFlagBits; 1174 typedef VkFlags VkMemoryPropertyFlags; 1175 1176 typedef enum VkMemoryHeapFlagBits { 1177 VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001, 1178 VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHX = 0x00000002, 1179 VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1180 } VkMemoryHeapFlagBits; 1181 typedef VkFlags VkMemoryHeapFlags; 1182 typedef VkFlags VkDeviceCreateFlags; 1183 typedef VkFlags VkDeviceQueueCreateFlags; 1184 1185 typedef enum VkPipelineStageFlagBits { 1186 VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001, 1187 VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002, 1188 VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004, 1189 VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008, 1190 VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010, 1191 VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020, 1192 VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040, 1193 VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080, 1194 VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100, 1195 VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200, 1196 VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400, 1197 VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800, 1198 VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000, 1199 VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000, 1200 VK_PIPELINE_STAGE_HOST_BIT = 0x00004000, 1201 VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000, 1202 VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000, 1203 VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX = 0x00020000, 1204 VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1205 } VkPipelineStageFlagBits; 1206 typedef VkFlags VkPipelineStageFlags; 1207 typedef VkFlags VkMemoryMapFlags; 1208 1209 typedef enum VkImageAspectFlagBits { 1210 VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001, 1211 VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002, 1212 VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004, 1213 VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008, 1214 VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = 0x00000010, 1215 VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = 0x00000020, 1216 VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = 0x00000040, 1217 VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1218 } VkImageAspectFlagBits; 1219 typedef VkFlags VkImageAspectFlags; 1220 1221 typedef enum VkSparseImageFormatFlagBits { 1222 VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001, 1223 VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 0x00000002, 1224 VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004, 1225 VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1226 } VkSparseImageFormatFlagBits; 1227 typedef VkFlags VkSparseImageFormatFlags; 1228 1229 typedef enum VkSparseMemoryBindFlagBits { 1230 VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001, 1231 VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1232 } VkSparseMemoryBindFlagBits; 1233 typedef VkFlags VkSparseMemoryBindFlags; 1234 1235 typedef enum VkFenceCreateFlagBits { 1236 VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001, 1237 VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1238 } VkFenceCreateFlagBits; 1239 typedef VkFlags VkFenceCreateFlags; 1240 typedef VkFlags VkSemaphoreCreateFlags; 1241 typedef VkFlags VkEventCreateFlags; 1242 typedef VkFlags VkQueryPoolCreateFlags; 1243 1244 typedef enum VkQueryPipelineStatisticFlagBits { 1245 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001, 1246 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002, 1247 VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004, 1248 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008, 1249 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010, 1250 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020, 1251 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040, 1252 VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080, 1253 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100, 1254 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200, 1255 VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400, 1256 VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1257 } VkQueryPipelineStatisticFlagBits; 1258 typedef VkFlags VkQueryPipelineStatisticFlags; 1259 1260 typedef enum VkQueryResultFlagBits { 1261 VK_QUERY_RESULT_64_BIT = 0x00000001, 1262 VK_QUERY_RESULT_WAIT_BIT = 0x00000002, 1263 VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004, 1264 VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008, 1265 VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1266 } VkQueryResultFlagBits; 1267 typedef VkFlags VkQueryResultFlags; 1268 1269 typedef enum VkBufferCreateFlagBits { 1270 VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001, 1271 VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, 1272 VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004, 1273 VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1274 } VkBufferCreateFlagBits; 1275 typedef VkFlags VkBufferCreateFlags; 1276 1277 typedef enum VkBufferUsageFlagBits { 1278 VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001, 1279 VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002, 1280 VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004, 1281 VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008, 1282 VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010, 1283 VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020, 1284 VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040, 1285 VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080, 1286 VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100, 1287 VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1288 } VkBufferUsageFlagBits; 1289 typedef VkFlags VkBufferUsageFlags; 1290 typedef VkFlags VkBufferViewCreateFlags; 1291 typedef VkFlags VkImageViewCreateFlags; 1292 typedef VkFlags VkShaderModuleCreateFlags; 1293 typedef VkFlags VkPipelineCacheCreateFlags; 1294 1295 typedef enum VkPipelineCreateFlagBits { 1296 VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001, 1297 VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002, 1298 VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004, 1299 VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHX = 0x00000008, 1300 VK_PIPELINE_CREATE_DISPATCH_BASE_KHX = 0x00000010, 1301 VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1302 } VkPipelineCreateFlagBits; 1303 typedef VkFlags VkPipelineCreateFlags; 1304 typedef VkFlags VkPipelineShaderStageCreateFlags; 1305 1306 typedef enum VkShaderStageFlagBits { 1307 VK_SHADER_STAGE_VERTEX_BIT = 0x00000001, 1308 VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002, 1309 VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004, 1310 VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008, 1311 VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010, 1312 VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020, 1313 VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F, 1314 VK_SHADER_STAGE_ALL = 0x7FFFFFFF, 1315 VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1316 } VkShaderStageFlagBits; 1317 typedef VkFlags VkPipelineVertexInputStateCreateFlags; 1318 typedef VkFlags VkPipelineInputAssemblyStateCreateFlags; 1319 typedef VkFlags VkPipelineTessellationStateCreateFlags; 1320 typedef VkFlags VkPipelineViewportStateCreateFlags; 1321 typedef VkFlags VkPipelineRasterizationStateCreateFlags; 1322 1323 typedef enum VkCullModeFlagBits { 1324 VK_CULL_MODE_NONE = 0, 1325 VK_CULL_MODE_FRONT_BIT = 0x00000001, 1326 VK_CULL_MODE_BACK_BIT = 0x00000002, 1327 VK_CULL_MODE_FRONT_AND_BACK = 0x00000003, 1328 VK_CULL_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1329 } VkCullModeFlagBits; 1330 typedef VkFlags VkCullModeFlags; 1331 typedef VkFlags VkPipelineMultisampleStateCreateFlags; 1332 typedef VkFlags VkPipelineDepthStencilStateCreateFlags; 1333 typedef VkFlags VkPipelineColorBlendStateCreateFlags; 1334 1335 typedef enum VkColorComponentFlagBits { 1336 VK_COLOR_COMPONENT_R_BIT = 0x00000001, 1337 VK_COLOR_COMPONENT_G_BIT = 0x00000002, 1338 VK_COLOR_COMPONENT_B_BIT = 0x00000004, 1339 VK_COLOR_COMPONENT_A_BIT = 0x00000008, 1340 VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1341 } VkColorComponentFlagBits; 1342 typedef VkFlags VkColorComponentFlags; 1343 typedef VkFlags VkPipelineDynamicStateCreateFlags; 1344 typedef VkFlags VkPipelineLayoutCreateFlags; 1345 typedef VkFlags VkShaderStageFlags; 1346 typedef VkFlags VkSamplerCreateFlags; 1347 1348 typedef enum VkDescriptorSetLayoutCreateFlagBits { 1349 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001, 1350 VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1351 } VkDescriptorSetLayoutCreateFlagBits; 1352 typedef VkFlags VkDescriptorSetLayoutCreateFlags; 1353 1354 typedef enum VkDescriptorPoolCreateFlagBits { 1355 VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001, 1356 VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1357 } VkDescriptorPoolCreateFlagBits; 1358 typedef VkFlags VkDescriptorPoolCreateFlags; 1359 typedef VkFlags VkDescriptorPoolResetFlags; 1360 typedef VkFlags VkFramebufferCreateFlags; 1361 typedef VkFlags VkRenderPassCreateFlags; 1362 1363 typedef enum VkAttachmentDescriptionFlagBits { 1364 VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001, 1365 VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1366 } VkAttachmentDescriptionFlagBits; 1367 typedef VkFlags VkAttachmentDescriptionFlags; 1368 1369 typedef enum VkSubpassDescriptionFlagBits { 1370 VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001, 1371 VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002, 1372 VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1373 } VkSubpassDescriptionFlagBits; 1374 typedef VkFlags VkSubpassDescriptionFlags; 1375 1376 typedef enum VkAccessFlagBits { 1377 VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001, 1378 VK_ACCESS_INDEX_READ_BIT = 0x00000002, 1379 VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004, 1380 VK_ACCESS_UNIFORM_READ_BIT = 0x00000008, 1381 VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010, 1382 VK_ACCESS_SHADER_READ_BIT = 0x00000020, 1383 VK_ACCESS_SHADER_WRITE_BIT = 0x00000040, 1384 VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080, 1385 VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100, 1386 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200, 1387 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400, 1388 VK_ACCESS_TRANSFER_READ_BIT = 0x00000800, 1389 VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000, 1390 VK_ACCESS_HOST_READ_BIT = 0x00002000, 1391 VK_ACCESS_HOST_WRITE_BIT = 0x00004000, 1392 VK_ACCESS_MEMORY_READ_BIT = 0x00008000, 1393 VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000, 1394 VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX = 0x00020000, 1395 VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX = 0x00040000, 1396 VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000, 1397 VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1398 } VkAccessFlagBits; 1399 typedef VkFlags VkAccessFlags; 1400 1401 typedef enum VkDependencyFlagBits { 1402 VK_DEPENDENCY_BY_REGION_BIT = 0x00000001, 1403 VK_DEPENDENCY_VIEW_LOCAL_BIT_KHX = 0x00000002, 1404 VK_DEPENDENCY_DEVICE_GROUP_BIT_KHX = 0x00000004, 1405 VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1406 } VkDependencyFlagBits; 1407 typedef VkFlags VkDependencyFlags; 1408 1409 typedef enum VkCommandPoolCreateFlagBits { 1410 VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001, 1411 VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002, 1412 VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1413 } VkCommandPoolCreateFlagBits; 1414 typedef VkFlags VkCommandPoolCreateFlags; 1415 1416 typedef enum VkCommandPoolResetFlagBits { 1417 VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001, 1418 VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1419 } VkCommandPoolResetFlagBits; 1420 typedef VkFlags VkCommandPoolResetFlags; 1421 1422 typedef enum VkCommandBufferUsageFlagBits { 1423 VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001, 1424 VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002, 1425 VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004, 1426 VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1427 } VkCommandBufferUsageFlagBits; 1428 typedef VkFlags VkCommandBufferUsageFlags; 1429 1430 typedef enum VkQueryControlFlagBits { 1431 VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001, 1432 VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1433 } VkQueryControlFlagBits; 1434 typedef VkFlags VkQueryControlFlags; 1435 1436 typedef enum VkCommandBufferResetFlagBits { 1437 VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001, 1438 VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1439 } VkCommandBufferResetFlagBits; 1440 typedef VkFlags VkCommandBufferResetFlags; 1441 1442 typedef enum VkStencilFaceFlagBits { 1443 VK_STENCIL_FACE_FRONT_BIT = 0x00000001, 1444 VK_STENCIL_FACE_BACK_BIT = 0x00000002, 1445 VK_STENCIL_FRONT_AND_BACK = 0x00000003, 1446 VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1447 } VkStencilFaceFlagBits; 1448 typedef VkFlags VkStencilFaceFlags; 1449 1450 typedef struct VkApplicationInfo { 1451 VkStructureType sType; 1452 const void* pNext; 1453 const char* pApplicationName; 1454 uint32_t applicationVersion; 1455 const char* pEngineName; 1456 uint32_t engineVersion; 1457 uint32_t apiVersion; 1458 } VkApplicationInfo; 1459 1460 typedef struct VkInstanceCreateInfo { 1461 VkStructureType sType; 1462 const void* pNext; 1463 VkInstanceCreateFlags flags; 1464 const VkApplicationInfo* pApplicationInfo; 1465 uint32_t enabledLayerCount; 1466 const char* const* ppEnabledLayerNames; 1467 uint32_t enabledExtensionCount; 1468 const char* const* ppEnabledExtensionNames; 1469 } VkInstanceCreateInfo; 1470 1471 typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)( 1472 void* pUserData, 1473 size_t size, 1474 size_t alignment, 1475 VkSystemAllocationScope allocationScope); 1476 1477 typedef void* (VKAPI_PTR *PFN_vkReallocationFunction)( 1478 void* pUserData, 1479 void* pOriginal, 1480 size_t size, 1481 size_t alignment, 1482 VkSystemAllocationScope allocationScope); 1483 1484 typedef void (VKAPI_PTR *PFN_vkFreeFunction)( 1485 void* pUserData, 1486 void* pMemory); 1487 1488 typedef void (VKAPI_PTR *PFN_vkInternalAllocationNotification)( 1489 void* pUserData, 1490 size_t size, 1491 VkInternalAllocationType allocationType, 1492 VkSystemAllocationScope allocationScope); 1493 1494 typedef void (VKAPI_PTR *PFN_vkInternalFreeNotification)( 1495 void* pUserData, 1496 size_t size, 1497 VkInternalAllocationType allocationType, 1498 VkSystemAllocationScope allocationScope); 1499 1500 typedef struct VkAllocationCallbacks { 1501 void* pUserData; 1502 PFN_vkAllocationFunction pfnAllocation; 1503 PFN_vkReallocationFunction pfnReallocation; 1504 PFN_vkFreeFunction pfnFree; 1505 PFN_vkInternalAllocationNotification pfnInternalAllocation; 1506 PFN_vkInternalFreeNotification pfnInternalFree; 1507 } VkAllocationCallbacks; 1508 1509 typedef struct VkPhysicalDeviceFeatures { 1510 VkBool32 robustBufferAccess; 1511 VkBool32 fullDrawIndexUint32; 1512 VkBool32 imageCubeArray; 1513 VkBool32 independentBlend; 1514 VkBool32 geometryShader; 1515 VkBool32 tessellationShader; 1516 VkBool32 sampleRateShading; 1517 VkBool32 dualSrcBlend; 1518 VkBool32 logicOp; 1519 VkBool32 multiDrawIndirect; 1520 VkBool32 drawIndirectFirstInstance; 1521 VkBool32 depthClamp; 1522 VkBool32 depthBiasClamp; 1523 VkBool32 fillModeNonSolid; 1524 VkBool32 depthBounds; 1525 VkBool32 wideLines; 1526 VkBool32 largePoints; 1527 VkBool32 alphaToOne; 1528 VkBool32 multiViewport; 1529 VkBool32 samplerAnisotropy; 1530 VkBool32 textureCompressionETC2; 1531 VkBool32 textureCompressionASTC_LDR; 1532 VkBool32 textureCompressionBC; 1533 VkBool32 occlusionQueryPrecise; 1534 VkBool32 pipelineStatisticsQuery; 1535 VkBool32 vertexPipelineStoresAndAtomics; 1536 VkBool32 fragmentStoresAndAtomics; 1537 VkBool32 shaderTessellationAndGeometryPointSize; 1538 VkBool32 shaderImageGatherExtended; 1539 VkBool32 shaderStorageImageExtendedFormats; 1540 VkBool32 shaderStorageImageMultisample; 1541 VkBool32 shaderStorageImageReadWithoutFormat; 1542 VkBool32 shaderStorageImageWriteWithoutFormat; 1543 VkBool32 shaderUniformBufferArrayDynamicIndexing; 1544 VkBool32 shaderSampledImageArrayDynamicIndexing; 1545 VkBool32 shaderStorageBufferArrayDynamicIndexing; 1546 VkBool32 shaderStorageImageArrayDynamicIndexing; 1547 VkBool32 shaderClipDistance; 1548 VkBool32 shaderCullDistance; 1549 VkBool32 shaderFloat64; 1550 VkBool32 shaderInt64; 1551 VkBool32 shaderInt16; 1552 VkBool32 shaderResourceResidency; 1553 VkBool32 shaderResourceMinLod; 1554 VkBool32 sparseBinding; 1555 VkBool32 sparseResidencyBuffer; 1556 VkBool32 sparseResidencyImage2D; 1557 VkBool32 sparseResidencyImage3D; 1558 VkBool32 sparseResidency2Samples; 1559 VkBool32 sparseResidency4Samples; 1560 VkBool32 sparseResidency8Samples; 1561 VkBool32 sparseResidency16Samples; 1562 VkBool32 sparseResidencyAliased; 1563 VkBool32 variableMultisampleRate; 1564 VkBool32 inheritedQueries; 1565 } VkPhysicalDeviceFeatures; 1566 1567 typedef struct VkFormatProperties { 1568 VkFormatFeatureFlags linearTilingFeatures; 1569 VkFormatFeatureFlags optimalTilingFeatures; 1570 VkFormatFeatureFlags bufferFeatures; 1571 } VkFormatProperties; 1572 1573 typedef struct VkExtent3D { 1574 uint32_t width; 1575 uint32_t height; 1576 uint32_t depth; 1577 } VkExtent3D; 1578 1579 typedef struct VkImageFormatProperties { 1580 VkExtent3D maxExtent; 1581 uint32_t maxMipLevels; 1582 uint32_t maxArrayLayers; 1583 VkSampleCountFlags sampleCounts; 1584 VkDeviceSize maxResourceSize; 1585 } VkImageFormatProperties; 1586 1587 typedef struct VkPhysicalDeviceLimits { 1588 uint32_t maxImageDimension1D; 1589 uint32_t maxImageDimension2D; 1590 uint32_t maxImageDimension3D; 1591 uint32_t maxImageDimensionCube; 1592 uint32_t maxImageArrayLayers; 1593 uint32_t maxTexelBufferElements; 1594 uint32_t maxUniformBufferRange; 1595 uint32_t maxStorageBufferRange; 1596 uint32_t maxPushConstantsSize; 1597 uint32_t maxMemoryAllocationCount; 1598 uint32_t maxSamplerAllocationCount; 1599 VkDeviceSize bufferImageGranularity; 1600 VkDeviceSize sparseAddressSpaceSize; 1601 uint32_t maxBoundDescriptorSets; 1602 uint32_t maxPerStageDescriptorSamplers; 1603 uint32_t maxPerStageDescriptorUniformBuffers; 1604 uint32_t maxPerStageDescriptorStorageBuffers; 1605 uint32_t maxPerStageDescriptorSampledImages; 1606 uint32_t maxPerStageDescriptorStorageImages; 1607 uint32_t maxPerStageDescriptorInputAttachments; 1608 uint32_t maxPerStageResources; 1609 uint32_t maxDescriptorSetSamplers; 1610 uint32_t maxDescriptorSetUniformBuffers; 1611 uint32_t maxDescriptorSetUniformBuffersDynamic; 1612 uint32_t maxDescriptorSetStorageBuffers; 1613 uint32_t maxDescriptorSetStorageBuffersDynamic; 1614 uint32_t maxDescriptorSetSampledImages; 1615 uint32_t maxDescriptorSetStorageImages; 1616 uint32_t maxDescriptorSetInputAttachments; 1617 uint32_t maxVertexInputAttributes; 1618 uint32_t maxVertexInputBindings; 1619 uint32_t maxVertexInputAttributeOffset; 1620 uint32_t maxVertexInputBindingStride; 1621 uint32_t maxVertexOutputComponents; 1622 uint32_t maxTessellationGenerationLevel; 1623 uint32_t maxTessellationPatchSize; 1624 uint32_t maxTessellationControlPerVertexInputComponents; 1625 uint32_t maxTessellationControlPerVertexOutputComponents; 1626 uint32_t maxTessellationControlPerPatchOutputComponents; 1627 uint32_t maxTessellationControlTotalOutputComponents; 1628 uint32_t maxTessellationEvaluationInputComponents; 1629 uint32_t maxTessellationEvaluationOutputComponents; 1630 uint32_t maxGeometryShaderInvocations; 1631 uint32_t maxGeometryInputComponents; 1632 uint32_t maxGeometryOutputComponents; 1633 uint32_t maxGeometryOutputVertices; 1634 uint32_t maxGeometryTotalOutputComponents; 1635 uint32_t maxFragmentInputComponents; 1636 uint32_t maxFragmentOutputAttachments; 1637 uint32_t maxFragmentDualSrcAttachments; 1638 uint32_t maxFragmentCombinedOutputResources; 1639 uint32_t maxComputeSharedMemorySize; 1640 uint32_t maxComputeWorkGroupCount[3]; 1641 uint32_t maxComputeWorkGroupInvocations; 1642 uint32_t maxComputeWorkGroupSize[3]; 1643 uint32_t subPixelPrecisionBits; 1644 uint32_t subTexelPrecisionBits; 1645 uint32_t mipmapPrecisionBits; 1646 uint32_t maxDrawIndexedIndexValue; 1647 uint32_t maxDrawIndirectCount; 1648 float maxSamplerLodBias; 1649 float maxSamplerAnisotropy; 1650 uint32_t maxViewports; 1651 uint32_t maxViewportDimensions[2]; 1652 float viewportBoundsRange[2]; 1653 uint32_t viewportSubPixelBits; 1654 size_t minMemoryMapAlignment; 1655 VkDeviceSize minTexelBufferOffsetAlignment; 1656 VkDeviceSize minUniformBufferOffsetAlignment; 1657 VkDeviceSize minStorageBufferOffsetAlignment; 1658 int32_t minTexelOffset; 1659 uint32_t maxTexelOffset; 1660 int32_t minTexelGatherOffset; 1661 uint32_t maxTexelGatherOffset; 1662 float minInterpolationOffset; 1663 float maxInterpolationOffset; 1664 uint32_t subPixelInterpolationOffsetBits; 1665 uint32_t maxFramebufferWidth; 1666 uint32_t maxFramebufferHeight; 1667 uint32_t maxFramebufferLayers; 1668 VkSampleCountFlags framebufferColorSampleCounts; 1669 VkSampleCountFlags framebufferDepthSampleCounts; 1670 VkSampleCountFlags framebufferStencilSampleCounts; 1671 VkSampleCountFlags framebufferNoAttachmentsSampleCounts; 1672 uint32_t maxColorAttachments; 1673 VkSampleCountFlags sampledImageColorSampleCounts; 1674 VkSampleCountFlags sampledImageIntegerSampleCounts; 1675 VkSampleCountFlags sampledImageDepthSampleCounts; 1676 VkSampleCountFlags sampledImageStencilSampleCounts; 1677 VkSampleCountFlags storageImageSampleCounts; 1678 uint32_t maxSampleMaskWords; 1679 VkBool32 timestampComputeAndGraphics; 1680 float timestampPeriod; 1681 uint32_t maxClipDistances; 1682 uint32_t maxCullDistances; 1683 uint32_t maxCombinedClipAndCullDistances; 1684 uint32_t discreteQueuePriorities; 1685 float pointSizeRange[2]; 1686 float lineWidthRange[2]; 1687 float pointSizeGranularity; 1688 float lineWidthGranularity; 1689 VkBool32 strictLines; 1690 VkBool32 standardSampleLocations; 1691 VkDeviceSize optimalBufferCopyOffsetAlignment; 1692 VkDeviceSize optimalBufferCopyRowPitchAlignment; 1693 VkDeviceSize nonCoherentAtomSize; 1694 } VkPhysicalDeviceLimits; 1695 1696 typedef struct VkPhysicalDeviceSparseProperties { 1697 VkBool32 residencyStandard2DBlockShape; 1698 VkBool32 residencyStandard2DMultisampleBlockShape; 1699 VkBool32 residencyStandard3DBlockShape; 1700 VkBool32 residencyAlignedMipSize; 1701 VkBool32 residencyNonResidentStrict; 1702 } VkPhysicalDeviceSparseProperties; 1703 1704 typedef struct VkPhysicalDeviceProperties { 1705 uint32_t apiVersion; 1706 uint32_t driverVersion; 1707 uint32_t vendorID; 1708 uint32_t deviceID; 1709 VkPhysicalDeviceType deviceType; 1710 char deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE]; 1711 uint8_t pipelineCacheUUID[VK_UUID_SIZE]; 1712 VkPhysicalDeviceLimits limits; 1713 VkPhysicalDeviceSparseProperties sparseProperties; 1714 } VkPhysicalDeviceProperties; 1715 1716 typedef struct VkQueueFamilyProperties { 1717 VkQueueFlags queueFlags; 1718 uint32_t queueCount; 1719 uint32_t timestampValidBits; 1720 VkExtent3D minImageTransferGranularity; 1721 } VkQueueFamilyProperties; 1722 1723 typedef struct VkMemoryType { 1724 VkMemoryPropertyFlags propertyFlags; 1725 uint32_t heapIndex; 1726 } VkMemoryType; 1727 1728 typedef struct VkMemoryHeap { 1729 VkDeviceSize size; 1730 VkMemoryHeapFlags flags; 1731 } VkMemoryHeap; 1732 1733 typedef struct VkPhysicalDeviceMemoryProperties { 1734 uint32_t memoryTypeCount; 1735 VkMemoryType memoryTypes[VK_MAX_MEMORY_TYPES]; 1736 uint32_t memoryHeapCount; 1737 VkMemoryHeap memoryHeaps[VK_MAX_MEMORY_HEAPS]; 1738 } VkPhysicalDeviceMemoryProperties; 1739 1740 typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void); 1741 typedef struct VkDeviceQueueCreateInfo { 1742 VkStructureType sType; 1743 const void* pNext; 1744 VkDeviceQueueCreateFlags flags; 1745 uint32_t queueFamilyIndex; 1746 uint32_t queueCount; 1747 const float* pQueuePriorities; 1748 } VkDeviceQueueCreateInfo; 1749 1750 typedef struct VkDeviceCreateInfo { 1751 VkStructureType sType; 1752 const void* pNext; 1753 VkDeviceCreateFlags flags; 1754 uint32_t queueCreateInfoCount; 1755 const VkDeviceQueueCreateInfo* pQueueCreateInfos; 1756 uint32_t enabledLayerCount; 1757 const char* const* ppEnabledLayerNames; 1758 uint32_t enabledExtensionCount; 1759 const char* const* ppEnabledExtensionNames; 1760 const VkPhysicalDeviceFeatures* pEnabledFeatures; 1761 } VkDeviceCreateInfo; 1762 1763 typedef struct VkExtensionProperties { 1764 char extensionName[VK_MAX_EXTENSION_NAME_SIZE]; 1765 uint32_t specVersion; 1766 } VkExtensionProperties; 1767 1768 typedef struct VkLayerProperties { 1769 char layerName[VK_MAX_EXTENSION_NAME_SIZE]; 1770 uint32_t specVersion; 1771 uint32_t implementationVersion; 1772 char description[VK_MAX_DESCRIPTION_SIZE]; 1773 } VkLayerProperties; 1774 1775 typedef struct VkSubmitInfo { 1776 VkStructureType sType; 1777 const void* pNext; 1778 uint32_t waitSemaphoreCount; 1779 const VkSemaphore* pWaitSemaphores; 1780 const VkPipelineStageFlags* pWaitDstStageMask; 1781 uint32_t commandBufferCount; 1782 const VkCommandBuffer* pCommandBuffers; 1783 uint32_t signalSemaphoreCount; 1784 const VkSemaphore* pSignalSemaphores; 1785 } VkSubmitInfo; 1786 1787 typedef struct VkMemoryAllocateInfo { 1788 VkStructureType sType; 1789 const void* pNext; 1790 VkDeviceSize allocationSize; 1791 uint32_t memoryTypeIndex; 1792 } VkMemoryAllocateInfo; 1793 1794 typedef struct VkMappedMemoryRange { 1795 VkStructureType sType; 1796 const void* pNext; 1797 VkDeviceMemory memory; 1798 VkDeviceSize offset; 1799 VkDeviceSize size; 1800 } VkMappedMemoryRange; 1801 1802 typedef struct VkMemoryRequirements { 1803 VkDeviceSize size; 1804 VkDeviceSize alignment; 1805 uint32_t memoryTypeBits; 1806 } VkMemoryRequirements; 1807 1808 typedef struct VkSparseImageFormatProperties { 1809 VkImageAspectFlags aspectMask; 1810 VkExtent3D imageGranularity; 1811 VkSparseImageFormatFlags flags; 1812 } VkSparseImageFormatProperties; 1813 1814 typedef struct VkSparseImageMemoryRequirements { 1815 VkSparseImageFormatProperties formatProperties; 1816 uint32_t imageMipTailFirstLod; 1817 VkDeviceSize imageMipTailSize; 1818 VkDeviceSize imageMipTailOffset; 1819 VkDeviceSize imageMipTailStride; 1820 } VkSparseImageMemoryRequirements; 1821 1822 typedef struct VkSparseMemoryBind { 1823 VkDeviceSize resourceOffset; 1824 VkDeviceSize size; 1825 VkDeviceMemory memory; 1826 VkDeviceSize memoryOffset; 1827 VkSparseMemoryBindFlags flags; 1828 } VkSparseMemoryBind; 1829 1830 typedef struct VkSparseBufferMemoryBindInfo { 1831 VkBuffer buffer; 1832 uint32_t bindCount; 1833 const VkSparseMemoryBind* pBinds; 1834 } VkSparseBufferMemoryBindInfo; 1835 1836 typedef struct VkSparseImageOpaqueMemoryBindInfo { 1837 VkImage image; 1838 uint32_t bindCount; 1839 const VkSparseMemoryBind* pBinds; 1840 } VkSparseImageOpaqueMemoryBindInfo; 1841 1842 typedef struct VkImageSubresource { 1843 VkImageAspectFlags aspectMask; 1844 uint32_t mipLevel; 1845 uint32_t arrayLayer; 1846 } VkImageSubresource; 1847 1848 typedef struct VkOffset3D { 1849 int32_t x; 1850 int32_t y; 1851 int32_t z; 1852 } VkOffset3D; 1853 1854 typedef struct VkSparseImageMemoryBind { 1855 VkImageSubresource subresource; 1856 VkOffset3D offset; 1857 VkExtent3D extent; 1858 VkDeviceMemory memory; 1859 VkDeviceSize memoryOffset; 1860 VkSparseMemoryBindFlags flags; 1861 } VkSparseImageMemoryBind; 1862 1863 typedef struct VkSparseImageMemoryBindInfo { 1864 VkImage image; 1865 uint32_t bindCount; 1866 const VkSparseImageMemoryBind* pBinds; 1867 } VkSparseImageMemoryBindInfo; 1868 1869 typedef struct VkBindSparseInfo { 1870 VkStructureType sType; 1871 const void* pNext; 1872 uint32_t waitSemaphoreCount; 1873 const VkSemaphore* pWaitSemaphores; 1874 uint32_t bufferBindCount; 1875 const VkSparseBufferMemoryBindInfo* pBufferBinds; 1876 uint32_t imageOpaqueBindCount; 1877 const VkSparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds; 1878 uint32_t imageBindCount; 1879 const VkSparseImageMemoryBindInfo* pImageBinds; 1880 uint32_t signalSemaphoreCount; 1881 const VkSemaphore* pSignalSemaphores; 1882 } VkBindSparseInfo; 1883 1884 typedef struct VkFenceCreateInfo { 1885 VkStructureType sType; 1886 const void* pNext; 1887 VkFenceCreateFlags flags; 1888 } VkFenceCreateInfo; 1889 1890 typedef struct VkSemaphoreCreateInfo { 1891 VkStructureType sType; 1892 const void* pNext; 1893 VkSemaphoreCreateFlags flags; 1894 } VkSemaphoreCreateInfo; 1895 1896 typedef struct VkEventCreateInfo { 1897 VkStructureType sType; 1898 const void* pNext; 1899 VkEventCreateFlags flags; 1900 } VkEventCreateInfo; 1901 1902 typedef struct VkQueryPoolCreateInfo { 1903 VkStructureType sType; 1904 const void* pNext; 1905 VkQueryPoolCreateFlags flags; 1906 VkQueryType queryType; 1907 uint32_t queryCount; 1908 VkQueryPipelineStatisticFlags pipelineStatistics; 1909 } VkQueryPoolCreateInfo; 1910 1911 typedef struct VkBufferCreateInfo { 1912 VkStructureType sType; 1913 const void* pNext; 1914 VkBufferCreateFlags flags; 1915 VkDeviceSize size; 1916 VkBufferUsageFlags usage; 1917 VkSharingMode sharingMode; 1918 uint32_t queueFamilyIndexCount; 1919 const uint32_t* pQueueFamilyIndices; 1920 } VkBufferCreateInfo; 1921 1922 typedef struct VkBufferViewCreateInfo { 1923 VkStructureType sType; 1924 const void* pNext; 1925 VkBufferViewCreateFlags flags; 1926 VkBuffer buffer; 1927 VkFormat format; 1928 VkDeviceSize offset; 1929 VkDeviceSize range; 1930 } VkBufferViewCreateInfo; 1931 1932 typedef struct VkImageCreateInfo { 1933 VkStructureType sType; 1934 const void* pNext; 1935 VkImageCreateFlags flags; 1936 VkImageType imageType; 1937 VkFormat format; 1938 VkExtent3D extent; 1939 uint32_t mipLevels; 1940 uint32_t arrayLayers; 1941 VkSampleCountFlagBits samples; 1942 VkImageTiling tiling; 1943 VkImageUsageFlags usage; 1944 VkSharingMode sharingMode; 1945 uint32_t queueFamilyIndexCount; 1946 const uint32_t* pQueueFamilyIndices; 1947 VkImageLayout initialLayout; 1948 } VkImageCreateInfo; 1949 1950 typedef struct VkSubresourceLayout { 1951 VkDeviceSize offset; 1952 VkDeviceSize size; 1953 VkDeviceSize rowPitch; 1954 VkDeviceSize arrayPitch; 1955 VkDeviceSize depthPitch; 1956 } VkSubresourceLayout; 1957 1958 typedef struct VkComponentMapping { 1959 VkComponentSwizzle r; 1960 VkComponentSwizzle g; 1961 VkComponentSwizzle b; 1962 VkComponentSwizzle a; 1963 } VkComponentMapping; 1964 1965 typedef struct VkImageSubresourceRange { 1966 VkImageAspectFlags aspectMask; 1967 uint32_t baseMipLevel; 1968 uint32_t levelCount; 1969 uint32_t baseArrayLayer; 1970 uint32_t layerCount; 1971 } VkImageSubresourceRange; 1972 1973 typedef struct VkImageViewCreateInfo { 1974 VkStructureType sType; 1975 const void* pNext; 1976 VkImageViewCreateFlags flags; 1977 VkImage image; 1978 VkImageViewType viewType; 1979 VkFormat format; 1980 VkComponentMapping components; 1981 VkImageSubresourceRange subresourceRange; 1982 } VkImageViewCreateInfo; 1983 1984 typedef struct VkShaderModuleCreateInfo { 1985 VkStructureType sType; 1986 const void* pNext; 1987 VkShaderModuleCreateFlags flags; 1988 size_t codeSize; 1989 const uint32_t* pCode; 1990 } VkShaderModuleCreateInfo; 1991 1992 typedef struct VkPipelineCacheCreateInfo { 1993 VkStructureType sType; 1994 const void* pNext; 1995 VkPipelineCacheCreateFlags flags; 1996 size_t initialDataSize; 1997 const void* pInitialData; 1998 } VkPipelineCacheCreateInfo; 1999 2000 typedef struct VkSpecializationMapEntry { 2001 uint32_t constantID; 2002 uint32_t offset; 2003 size_t size; 2004 } VkSpecializationMapEntry; 2005 2006 typedef struct VkSpecializationInfo { 2007 uint32_t mapEntryCount; 2008 const VkSpecializationMapEntry* pMapEntries; 2009 size_t dataSize; 2010 const void* pData; 2011 } VkSpecializationInfo; 2012 2013 typedef struct VkPipelineShaderStageCreateInfo { 2014 VkStructureType sType; 2015 const void* pNext; 2016 VkPipelineShaderStageCreateFlags flags; 2017 VkShaderStageFlagBits stage; 2018 VkShaderModule module; 2019 const char* pName; 2020 const VkSpecializationInfo* pSpecializationInfo; 2021 } VkPipelineShaderStageCreateInfo; 2022 2023 typedef struct VkVertexInputBindingDescription { 2024 uint32_t binding; 2025 uint32_t stride; 2026 VkVertexInputRate inputRate; 2027 } VkVertexInputBindingDescription; 2028 2029 typedef struct VkVertexInputAttributeDescription { 2030 uint32_t location; 2031 uint32_t binding; 2032 VkFormat format; 2033 uint32_t offset; 2034 } VkVertexInputAttributeDescription; 2035 2036 typedef struct VkPipelineVertexInputStateCreateInfo { 2037 VkStructureType sType; 2038 const void* pNext; 2039 VkPipelineVertexInputStateCreateFlags flags; 2040 uint32_t vertexBindingDescriptionCount; 2041 const VkVertexInputBindingDescription* pVertexBindingDescriptions; 2042 uint32_t vertexAttributeDescriptionCount; 2043 const VkVertexInputAttributeDescription* pVertexAttributeDescriptions; 2044 } VkPipelineVertexInputStateCreateInfo; 2045 2046 typedef struct VkPipelineInputAssemblyStateCreateInfo { 2047 VkStructureType sType; 2048 const void* pNext; 2049 VkPipelineInputAssemblyStateCreateFlags flags; 2050 VkPrimitiveTopology topology; 2051 VkBool32 primitiveRestartEnable; 2052 } VkPipelineInputAssemblyStateCreateInfo; 2053 2054 typedef struct VkPipelineTessellationStateCreateInfo { 2055 VkStructureType sType; 2056 const void* pNext; 2057 VkPipelineTessellationStateCreateFlags flags; 2058 uint32_t patchControlPoints; 2059 } VkPipelineTessellationStateCreateInfo; 2060 2061 typedef struct VkViewport { 2062 float x; 2063 float y; 2064 float width; 2065 float height; 2066 float minDepth; 2067 float maxDepth; 2068 } VkViewport; 2069 2070 typedef struct VkOffset2D { 2071 int32_t x; 2072 int32_t y; 2073 } VkOffset2D; 2074 2075 typedef struct VkExtent2D { 2076 uint32_t width; 2077 uint32_t height; 2078 } VkExtent2D; 2079 2080 typedef struct VkRect2D { 2081 VkOffset2D offset; 2082 VkExtent2D extent; 2083 } VkRect2D; 2084 2085 typedef struct VkPipelineViewportStateCreateInfo { 2086 VkStructureType sType; 2087 const void* pNext; 2088 VkPipelineViewportStateCreateFlags flags; 2089 uint32_t viewportCount; 2090 const VkViewport* pViewports; 2091 uint32_t scissorCount; 2092 const VkRect2D* pScissors; 2093 } VkPipelineViewportStateCreateInfo; 2094 2095 typedef struct VkPipelineRasterizationStateCreateInfo { 2096 VkStructureType sType; 2097 const void* pNext; 2098 VkPipelineRasterizationStateCreateFlags flags; 2099 VkBool32 depthClampEnable; 2100 VkBool32 rasterizerDiscardEnable; 2101 VkPolygonMode polygonMode; 2102 VkCullModeFlags cullMode; 2103 VkFrontFace frontFace; 2104 VkBool32 depthBiasEnable; 2105 float depthBiasConstantFactor; 2106 float depthBiasClamp; 2107 float depthBiasSlopeFactor; 2108 float lineWidth; 2109 } VkPipelineRasterizationStateCreateInfo; 2110 2111 typedef struct VkPipelineMultisampleStateCreateInfo { 2112 VkStructureType sType; 2113 const void* pNext; 2114 VkPipelineMultisampleStateCreateFlags flags; 2115 VkSampleCountFlagBits rasterizationSamples; 2116 VkBool32 sampleShadingEnable; 2117 float minSampleShading; 2118 const VkSampleMask* pSampleMask; 2119 VkBool32 alphaToCoverageEnable; 2120 VkBool32 alphaToOneEnable; 2121 } VkPipelineMultisampleStateCreateInfo; 2122 2123 typedef struct VkStencilOpState { 2124 VkStencilOp failOp; 2125 VkStencilOp passOp; 2126 VkStencilOp depthFailOp; 2127 VkCompareOp compareOp; 2128 uint32_t compareMask; 2129 uint32_t writeMask; 2130 uint32_t reference; 2131 } VkStencilOpState; 2132 2133 typedef struct VkPipelineDepthStencilStateCreateInfo { 2134 VkStructureType sType; 2135 const void* pNext; 2136 VkPipelineDepthStencilStateCreateFlags flags; 2137 VkBool32 depthTestEnable; 2138 VkBool32 depthWriteEnable; 2139 VkCompareOp depthCompareOp; 2140 VkBool32 depthBoundsTestEnable; 2141 VkBool32 stencilTestEnable; 2142 VkStencilOpState front; 2143 VkStencilOpState back; 2144 float minDepthBounds; 2145 float maxDepthBounds; 2146 } VkPipelineDepthStencilStateCreateInfo; 2147 2148 typedef struct VkPipelineColorBlendAttachmentState { 2149 VkBool32 blendEnable; 2150 VkBlendFactor srcColorBlendFactor; 2151 VkBlendFactor dstColorBlendFactor; 2152 VkBlendOp colorBlendOp; 2153 VkBlendFactor srcAlphaBlendFactor; 2154 VkBlendFactor dstAlphaBlendFactor; 2155 VkBlendOp alphaBlendOp; 2156 VkColorComponentFlags colorWriteMask; 2157 } VkPipelineColorBlendAttachmentState; 2158 2159 typedef struct VkPipelineColorBlendStateCreateInfo { 2160 VkStructureType sType; 2161 const void* pNext; 2162 VkPipelineColorBlendStateCreateFlags flags; 2163 VkBool32 logicOpEnable; 2164 VkLogicOp logicOp; 2165 uint32_t attachmentCount; 2166 const VkPipelineColorBlendAttachmentState* pAttachments; 2167 float blendConstants[4]; 2168 } VkPipelineColorBlendStateCreateInfo; 2169 2170 typedef struct VkPipelineDynamicStateCreateInfo { 2171 VkStructureType sType; 2172 const void* pNext; 2173 VkPipelineDynamicStateCreateFlags flags; 2174 uint32_t dynamicStateCount; 2175 const VkDynamicState* pDynamicStates; 2176 } VkPipelineDynamicStateCreateInfo; 2177 2178 typedef struct VkGraphicsPipelineCreateInfo { 2179 VkStructureType sType; 2180 const void* pNext; 2181 VkPipelineCreateFlags flags; 2182 uint32_t stageCount; 2183 const VkPipelineShaderStageCreateInfo* pStages; 2184 const VkPipelineVertexInputStateCreateInfo* pVertexInputState; 2185 const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState; 2186 const VkPipelineTessellationStateCreateInfo* pTessellationState; 2187 const VkPipelineViewportStateCreateInfo* pViewportState; 2188 const VkPipelineRasterizationStateCreateInfo* pRasterizationState; 2189 const VkPipelineMultisampleStateCreateInfo* pMultisampleState; 2190 const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState; 2191 const VkPipelineColorBlendStateCreateInfo* pColorBlendState; 2192 const VkPipelineDynamicStateCreateInfo* pDynamicState; 2193 VkPipelineLayout layout; 2194 VkRenderPass renderPass; 2195 uint32_t subpass; 2196 VkPipeline basePipelineHandle; 2197 int32_t basePipelineIndex; 2198 } VkGraphicsPipelineCreateInfo; 2199 2200 typedef struct VkComputePipelineCreateInfo { 2201 VkStructureType sType; 2202 const void* pNext; 2203 VkPipelineCreateFlags flags; 2204 VkPipelineShaderStageCreateInfo stage; 2205 VkPipelineLayout layout; 2206 VkPipeline basePipelineHandle; 2207 int32_t basePipelineIndex; 2208 } VkComputePipelineCreateInfo; 2209 2210 typedef struct VkPushConstantRange { 2211 VkShaderStageFlags stageFlags; 2212 uint32_t offset; 2213 uint32_t size; 2214 } VkPushConstantRange; 2215 2216 typedef struct VkPipelineLayoutCreateInfo { 2217 VkStructureType sType; 2218 const void* pNext; 2219 VkPipelineLayoutCreateFlags flags; 2220 uint32_t setLayoutCount; 2221 const VkDescriptorSetLayout* pSetLayouts; 2222 uint32_t pushConstantRangeCount; 2223 const VkPushConstantRange* pPushConstantRanges; 2224 } VkPipelineLayoutCreateInfo; 2225 2226 typedef struct VkSamplerCreateInfo { 2227 VkStructureType sType; 2228 const void* pNext; 2229 VkSamplerCreateFlags flags; 2230 VkFilter magFilter; 2231 VkFilter minFilter; 2232 VkSamplerMipmapMode mipmapMode; 2233 VkSamplerAddressMode addressModeU; 2234 VkSamplerAddressMode addressModeV; 2235 VkSamplerAddressMode addressModeW; 2236 float mipLodBias; 2237 VkBool32 anisotropyEnable; 2238 float maxAnisotropy; 2239 VkBool32 compareEnable; 2240 VkCompareOp compareOp; 2241 float minLod; 2242 float maxLod; 2243 VkBorderColor borderColor; 2244 VkBool32 unnormalizedCoordinates; 2245 } VkSamplerCreateInfo; 2246 2247 typedef struct VkDescriptorSetLayoutBinding { 2248 uint32_t binding; 2249 VkDescriptorType descriptorType; 2250 uint32_t descriptorCount; 2251 VkShaderStageFlags stageFlags; 2252 const VkSampler* pImmutableSamplers; 2253 } VkDescriptorSetLayoutBinding; 2254 2255 typedef struct VkDescriptorSetLayoutCreateInfo { 2256 VkStructureType sType; 2257 const void* pNext; 2258 VkDescriptorSetLayoutCreateFlags flags; 2259 uint32_t bindingCount; 2260 const VkDescriptorSetLayoutBinding* pBindings; 2261 } VkDescriptorSetLayoutCreateInfo; 2262 2263 typedef struct VkDescriptorPoolSize { 2264 VkDescriptorType type; 2265 uint32_t descriptorCount; 2266 } VkDescriptorPoolSize; 2267 2268 typedef struct VkDescriptorPoolCreateInfo { 2269 VkStructureType sType; 2270 const void* pNext; 2271 VkDescriptorPoolCreateFlags flags; 2272 uint32_t maxSets; 2273 uint32_t poolSizeCount; 2274 const VkDescriptorPoolSize* pPoolSizes; 2275 } VkDescriptorPoolCreateInfo; 2276 2277 typedef struct VkDescriptorSetAllocateInfo { 2278 VkStructureType sType; 2279 const void* pNext; 2280 VkDescriptorPool descriptorPool; 2281 uint32_t descriptorSetCount; 2282 const VkDescriptorSetLayout* pSetLayouts; 2283 } VkDescriptorSetAllocateInfo; 2284 2285 typedef struct VkDescriptorImageInfo { 2286 VkSampler sampler; 2287 VkImageView imageView; 2288 VkImageLayout imageLayout; 2289 } VkDescriptorImageInfo; 2290 2291 typedef struct VkDescriptorBufferInfo { 2292 VkBuffer buffer; 2293 VkDeviceSize offset; 2294 VkDeviceSize range; 2295 } VkDescriptorBufferInfo; 2296 2297 typedef struct VkWriteDescriptorSet { 2298 VkStructureType sType; 2299 const void* pNext; 2300 VkDescriptorSet dstSet; 2301 uint32_t dstBinding; 2302 uint32_t dstArrayElement; 2303 uint32_t descriptorCount; 2304 VkDescriptorType descriptorType; 2305 const VkDescriptorImageInfo* pImageInfo; 2306 const VkDescriptorBufferInfo* pBufferInfo; 2307 const VkBufferView* pTexelBufferView; 2308 } VkWriteDescriptorSet; 2309 2310 typedef struct VkCopyDescriptorSet { 2311 VkStructureType sType; 2312 const void* pNext; 2313 VkDescriptorSet srcSet; 2314 uint32_t srcBinding; 2315 uint32_t srcArrayElement; 2316 VkDescriptorSet dstSet; 2317 uint32_t dstBinding; 2318 uint32_t dstArrayElement; 2319 uint32_t descriptorCount; 2320 } VkCopyDescriptorSet; 2321 2322 typedef struct VkFramebufferCreateInfo { 2323 VkStructureType sType; 2324 const void* pNext; 2325 VkFramebufferCreateFlags flags; 2326 VkRenderPass renderPass; 2327 uint32_t attachmentCount; 2328 const VkImageView* pAttachments; 2329 uint32_t width; 2330 uint32_t height; 2331 uint32_t layers; 2332 } VkFramebufferCreateInfo; 2333 2334 typedef struct VkAttachmentDescription { 2335 VkAttachmentDescriptionFlags flags; 2336 VkFormat format; 2337 VkSampleCountFlagBits samples; 2338 VkAttachmentLoadOp loadOp; 2339 VkAttachmentStoreOp storeOp; 2340 VkAttachmentLoadOp stencilLoadOp; 2341 VkAttachmentStoreOp stencilStoreOp; 2342 VkImageLayout initialLayout; 2343 VkImageLayout finalLayout; 2344 } VkAttachmentDescription; 2345 2346 typedef struct VkAttachmentReference { 2347 uint32_t attachment; 2348 VkImageLayout layout; 2349 } VkAttachmentReference; 2350 2351 typedef struct VkSubpassDescription { 2352 VkSubpassDescriptionFlags flags; 2353 VkPipelineBindPoint pipelineBindPoint; 2354 uint32_t inputAttachmentCount; 2355 const VkAttachmentReference* pInputAttachments; 2356 uint32_t colorAttachmentCount; 2357 const VkAttachmentReference* pColorAttachments; 2358 const VkAttachmentReference* pResolveAttachments; 2359 const VkAttachmentReference* pDepthStencilAttachment; 2360 uint32_t preserveAttachmentCount; 2361 const uint32_t* pPreserveAttachments; 2362 } VkSubpassDescription; 2363 2364 typedef struct VkSubpassDependency { 2365 uint32_t srcSubpass; 2366 uint32_t dstSubpass; 2367 VkPipelineStageFlags srcStageMask; 2368 VkPipelineStageFlags dstStageMask; 2369 VkAccessFlags srcAccessMask; 2370 VkAccessFlags dstAccessMask; 2371 VkDependencyFlags dependencyFlags; 2372 } VkSubpassDependency; 2373 2374 typedef struct VkRenderPassCreateInfo { 2375 VkStructureType sType; 2376 const void* pNext; 2377 VkRenderPassCreateFlags flags; 2378 uint32_t attachmentCount; 2379 const VkAttachmentDescription* pAttachments; 2380 uint32_t subpassCount; 2381 const VkSubpassDescription* pSubpasses; 2382 uint32_t dependencyCount; 2383 const VkSubpassDependency* pDependencies; 2384 } VkRenderPassCreateInfo; 2385 2386 typedef struct VkCommandPoolCreateInfo { 2387 VkStructureType sType; 2388 const void* pNext; 2389 VkCommandPoolCreateFlags flags; 2390 uint32_t queueFamilyIndex; 2391 } VkCommandPoolCreateInfo; 2392 2393 typedef struct VkCommandBufferAllocateInfo { 2394 VkStructureType sType; 2395 const void* pNext; 2396 VkCommandPool commandPool; 2397 VkCommandBufferLevel level; 2398 uint32_t commandBufferCount; 2399 } VkCommandBufferAllocateInfo; 2400 2401 typedef struct VkCommandBufferInheritanceInfo { 2402 VkStructureType sType; 2403 const void* pNext; 2404 VkRenderPass renderPass; 2405 uint32_t subpass; 2406 VkFramebuffer framebuffer; 2407 VkBool32 occlusionQueryEnable; 2408 VkQueryControlFlags queryFlags; 2409 VkQueryPipelineStatisticFlags pipelineStatistics; 2410 } VkCommandBufferInheritanceInfo; 2411 2412 typedef struct VkCommandBufferBeginInfo { 2413 VkStructureType sType; 2414 const void* pNext; 2415 VkCommandBufferUsageFlags flags; 2416 const VkCommandBufferInheritanceInfo* pInheritanceInfo; 2417 } VkCommandBufferBeginInfo; 2418 2419 typedef struct VkBufferCopy { 2420 VkDeviceSize srcOffset; 2421 VkDeviceSize dstOffset; 2422 VkDeviceSize size; 2423 } VkBufferCopy; 2424 2425 typedef struct VkImageSubresourceLayers { 2426 VkImageAspectFlags aspectMask; 2427 uint32_t mipLevel; 2428 uint32_t baseArrayLayer; 2429 uint32_t layerCount; 2430 } VkImageSubresourceLayers; 2431 2432 typedef struct VkImageCopy { 2433 VkImageSubresourceLayers srcSubresource; 2434 VkOffset3D srcOffset; 2435 VkImageSubresourceLayers dstSubresource; 2436 VkOffset3D dstOffset; 2437 VkExtent3D extent; 2438 } VkImageCopy; 2439 2440 typedef struct VkImageBlit { 2441 VkImageSubresourceLayers srcSubresource; 2442 VkOffset3D srcOffsets[2]; 2443 VkImageSubresourceLayers dstSubresource; 2444 VkOffset3D dstOffsets[2]; 2445 } VkImageBlit; 2446 2447 typedef struct VkBufferImageCopy { 2448 VkDeviceSize bufferOffset; 2449 uint32_t bufferRowLength; 2450 uint32_t bufferImageHeight; 2451 VkImageSubresourceLayers imageSubresource; 2452 VkOffset3D imageOffset; 2453 VkExtent3D imageExtent; 2454 } VkBufferImageCopy; 2455 2456 typedef union VkClearColorValue { 2457 float float32[4]; 2458 int32_t int32[4]; 2459 uint32_t uint32[4]; 2460 } VkClearColorValue; 2461 2462 typedef struct VkClearDepthStencilValue { 2463 float depth; 2464 uint32_t stencil; 2465 } VkClearDepthStencilValue; 2466 2467 typedef union VkClearValue { 2468 VkClearColorValue color; 2469 VkClearDepthStencilValue depthStencil; 2470 } VkClearValue; 2471 2472 typedef struct VkClearAttachment { 2473 VkImageAspectFlags aspectMask; 2474 uint32_t colorAttachment; 2475 VkClearValue clearValue; 2476 } VkClearAttachment; 2477 2478 typedef struct VkClearRect { 2479 VkRect2D rect; 2480 uint32_t baseArrayLayer; 2481 uint32_t layerCount; 2482 } VkClearRect; 2483 2484 typedef struct VkImageResolve { 2485 VkImageSubresourceLayers srcSubresource; 2486 VkOffset3D srcOffset; 2487 VkImageSubresourceLayers dstSubresource; 2488 VkOffset3D dstOffset; 2489 VkExtent3D extent; 2490 } VkImageResolve; 2491 2492 typedef struct VkMemoryBarrier { 2493 VkStructureType sType; 2494 const void* pNext; 2495 VkAccessFlags srcAccessMask; 2496 VkAccessFlags dstAccessMask; 2497 } VkMemoryBarrier; 2498 2499 typedef struct VkBufferMemoryBarrier { 2500 VkStructureType sType; 2501 const void* pNext; 2502 VkAccessFlags srcAccessMask; 2503 VkAccessFlags dstAccessMask; 2504 uint32_t srcQueueFamilyIndex; 2505 uint32_t dstQueueFamilyIndex; 2506 VkBuffer buffer; 2507 VkDeviceSize offset; 2508 VkDeviceSize size; 2509 } VkBufferMemoryBarrier; 2510 2511 typedef struct VkImageMemoryBarrier { 2512 VkStructureType sType; 2513 const void* pNext; 2514 VkAccessFlags srcAccessMask; 2515 VkAccessFlags dstAccessMask; 2516 VkImageLayout oldLayout; 2517 VkImageLayout newLayout; 2518 uint32_t srcQueueFamilyIndex; 2519 uint32_t dstQueueFamilyIndex; 2520 VkImage image; 2521 VkImageSubresourceRange subresourceRange; 2522 } VkImageMemoryBarrier; 2523 2524 typedef struct VkRenderPassBeginInfo { 2525 VkStructureType sType; 2526 const void* pNext; 2527 VkRenderPass renderPass; 2528 VkFramebuffer framebuffer; 2529 VkRect2D renderArea; 2530 uint32_t clearValueCount; 2531 const VkClearValue* pClearValues; 2532 } VkRenderPassBeginInfo; 2533 2534 typedef struct VkDispatchIndirectCommand { 2535 uint32_t x; 2536 uint32_t y; 2537 uint32_t z; 2538 } VkDispatchIndirectCommand; 2539 2540 typedef struct VkDrawIndexedIndirectCommand { 2541 uint32_t indexCount; 2542 uint32_t instanceCount; 2543 uint32_t firstIndex; 2544 int32_t vertexOffset; 2545 uint32_t firstInstance; 2546 } VkDrawIndexedIndirectCommand; 2547 2548 typedef struct VkDrawIndirectCommand { 2549 uint32_t vertexCount; 2550 uint32_t instanceCount; 2551 uint32_t firstVertex; 2552 uint32_t firstInstance; 2553 } VkDrawIndirectCommand; 2554 2555 2556 typedef VkResult (VKAPI_PTR *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance); 2557 typedef void (VKAPI_PTR *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks* pAllocator); 2558 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices); 2559 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures); 2560 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties); 2561 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties); 2562 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties); 2563 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties); 2564 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties); 2565 typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char* pName); 2566 typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetDeviceProcAddr)(VkDevice device, const char* pName); 2567 typedef VkResult (VKAPI_PTR *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice); 2568 typedef void (VKAPI_PTR *PFN_vkDestroyDevice)(VkDevice device, const VkAllocationCallbacks* pAllocator); 2569 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceExtensionProperties)(const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties); 2570 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties); 2571 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceLayerProperties)(uint32_t* pPropertyCount, VkLayerProperties* pProperties); 2572 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties); 2573 typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue); 2574 typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence); 2575 typedef VkResult (VKAPI_PTR *PFN_vkQueueWaitIdle)(VkQueue queue); 2576 typedef VkResult (VKAPI_PTR *PFN_vkDeviceWaitIdle)(VkDevice device); 2577 typedef VkResult (VKAPI_PTR *PFN_vkAllocateMemory)(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory); 2578 typedef void (VKAPI_PTR *PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator); 2579 typedef VkResult (VKAPI_PTR *PFN_vkMapMemory)(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData); 2580 typedef void (VKAPI_PTR *PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory memory); 2581 typedef VkResult (VKAPI_PTR *PFN_vkFlushMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges); 2582 typedef VkResult (VKAPI_PTR *PFN_vkInvalidateMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges); 2583 typedef void (VKAPI_PTR *PFN_vkGetDeviceMemoryCommitment)(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes); 2584 typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory)(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset); 2585 typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory)(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset); 2586 typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements)(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements); 2587 typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements); 2588 typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements); 2589 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties); 2590 typedef VkResult (VKAPI_PTR *PFN_vkQueueBindSparse)(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence); 2591 typedef VkResult (VKAPI_PTR *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence); 2592 typedef void (VKAPI_PTR *PFN_vkDestroyFence)(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator); 2593 typedef VkResult (VKAPI_PTR *PFN_vkResetFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences); 2594 typedef VkResult (VKAPI_PTR *PFN_vkGetFenceStatus)(VkDevice device, VkFence fence); 2595 typedef VkResult (VKAPI_PTR *PFN_vkWaitForFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout); 2596 typedef VkResult (VKAPI_PTR *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore); 2597 typedef void (VKAPI_PTR *PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator); 2598 typedef VkResult (VKAPI_PTR *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent); 2599 typedef void (VKAPI_PTR *PFN_vkDestroyEvent)(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator); 2600 typedef VkResult (VKAPI_PTR *PFN_vkGetEventStatus)(VkDevice device, VkEvent event); 2601 typedef VkResult (VKAPI_PTR *PFN_vkSetEvent)(VkDevice device, VkEvent event); 2602 typedef VkResult (VKAPI_PTR *PFN_vkResetEvent)(VkDevice device, VkEvent event); 2603 typedef VkResult (VKAPI_PTR *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool); 2604 typedef void (VKAPI_PTR *PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator); 2605 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); 2606 typedef VkResult (VKAPI_PTR *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer); 2607 typedef void (VKAPI_PTR *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator); 2608 typedef VkResult (VKAPI_PTR *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView); 2609 typedef void (VKAPI_PTR *PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator); 2610 typedef VkResult (VKAPI_PTR *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage); 2611 typedef void (VKAPI_PTR *PFN_vkDestroyImage)(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator); 2612 typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout); 2613 typedef VkResult (VKAPI_PTR *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView); 2614 typedef void (VKAPI_PTR *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator); 2615 typedef VkResult (VKAPI_PTR *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule); 2616 typedef void (VKAPI_PTR *PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator); 2617 typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache); 2618 typedef void (VKAPI_PTR *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator); 2619 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData); 2620 typedef VkResult (VKAPI_PTR *PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches); 2621 typedef VkResult (VKAPI_PTR *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines); 2622 typedef VkResult (VKAPI_PTR *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines); 2623 typedef void (VKAPI_PTR *PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator); 2624 typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout); 2625 typedef void (VKAPI_PTR *PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator); 2626 typedef VkResult (VKAPI_PTR *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler); 2627 typedef void (VKAPI_PTR *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator); 2628 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout); 2629 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator); 2630 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool); 2631 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator); 2632 typedef VkResult (VKAPI_PTR *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags); 2633 typedef VkResult (VKAPI_PTR *PFN_vkAllocateDescriptorSets)(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets); 2634 typedef VkResult (VKAPI_PTR *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets); 2635 typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies); 2636 typedef VkResult (VKAPI_PTR *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer); 2637 typedef void (VKAPI_PTR *PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator); 2638 typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass); 2639 typedef void (VKAPI_PTR *PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator); 2640 typedef void (VKAPI_PTR *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity); 2641 typedef VkResult (VKAPI_PTR *PFN_vkCreateCommandPool)(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool); 2642 typedef void (VKAPI_PTR *PFN_vkDestroyCommandPool)(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator); 2643 typedef VkResult (VKAPI_PTR *PFN_vkResetCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags); 2644 typedef VkResult (VKAPI_PTR *PFN_vkAllocateCommandBuffers)(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers); 2645 typedef void (VKAPI_PTR *PFN_vkFreeCommandBuffers)(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers); 2646 typedef VkResult (VKAPI_PTR *PFN_vkBeginCommandBuffer)(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo); 2647 typedef VkResult (VKAPI_PTR *PFN_vkEndCommandBuffer)(VkCommandBuffer commandBuffer); 2648 typedef VkResult (VKAPI_PTR *PFN_vkResetCommandBuffer)(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags); 2649 typedef void (VKAPI_PTR *PFN_vkCmdBindPipeline)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline); 2650 typedef void (VKAPI_PTR *PFN_vkCmdSetViewport)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports); 2651 typedef void (VKAPI_PTR *PFN_vkCmdSetScissor)(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors); 2652 typedef void (VKAPI_PTR *PFN_vkCmdSetLineWidth)(VkCommandBuffer commandBuffer, float lineWidth); 2653 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias)(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor); 2654 typedef void (VKAPI_PTR *PFN_vkCmdSetBlendConstants)(VkCommandBuffer commandBuffer, const float blendConstants[4]); 2655 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBounds)(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds); 2656 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilCompareMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask); 2657 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilWriteMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask); 2658 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilReference)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference); 2659 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); 2660 typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType); 2661 typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets); 2662 typedef void (VKAPI_PTR *PFN_vkCmdDraw)(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance); 2663 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexed)(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance); 2664 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride); 2665 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride); 2666 typedef void (VKAPI_PTR *PFN_vkCmdDispatch)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ); 2667 typedef void (VKAPI_PTR *PFN_vkCmdDispatchIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset); 2668 typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions); 2669 typedef void (VKAPI_PTR *PFN_vkCmdCopyImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions); 2670 typedef void (VKAPI_PTR *PFN_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter); 2671 typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions); 2672 typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions); 2673 typedef void (VKAPI_PTR *PFN_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData); 2674 typedef void (VKAPI_PTR *PFN_vkCmdFillBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data); 2675 typedef void (VKAPI_PTR *PFN_vkCmdClearColorImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges); 2676 typedef void (VKAPI_PTR *PFN_vkCmdClearDepthStencilImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges); 2677 typedef void (VKAPI_PTR *PFN_vkCmdClearAttachments)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects); 2678 typedef void (VKAPI_PTR *PFN_vkCmdResolveImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions); 2679 typedef void (VKAPI_PTR *PFN_vkCmdSetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask); 2680 typedef void (VKAPI_PTR *PFN_vkCmdResetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask); 2681 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); 2682 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); 2683 typedef void (VKAPI_PTR *PFN_vkCmdBeginQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags); 2684 typedef void (VKAPI_PTR *PFN_vkCmdEndQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query); 2685 typedef void (VKAPI_PTR *PFN_vkCmdResetQueryPool)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount); 2686 typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query); 2687 typedef void (VKAPI_PTR *PFN_vkCmdCopyQueryPoolResults)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags); 2688 typedef void (VKAPI_PTR *PFN_vkCmdPushConstants)(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues); 2689 typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents); 2690 typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass)(VkCommandBuffer commandBuffer, VkSubpassContents contents); 2691 typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass)(VkCommandBuffer commandBuffer); 2692 typedef void (VKAPI_PTR *PFN_vkCmdExecuteCommands)(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers); 2693 2694 #ifndef VK_NO_PROTOTYPES 2695 VKAPI_ATTR VkResult VKAPI_CALL vkCreateInstance( 2696 const VkInstanceCreateInfo* pCreateInfo, 2697 const VkAllocationCallbacks* pAllocator, 2698 VkInstance* pInstance); 2699 2700 VKAPI_ATTR void VKAPI_CALL vkDestroyInstance( 2701 VkInstance instance, 2702 const VkAllocationCallbacks* pAllocator); 2703 2704 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDevices( 2705 VkInstance instance, 2706 uint32_t* pPhysicalDeviceCount, 2707 VkPhysicalDevice* pPhysicalDevices); 2708 2709 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures( 2710 VkPhysicalDevice physicalDevice, 2711 VkPhysicalDeviceFeatures* pFeatures); 2712 2713 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties( 2714 VkPhysicalDevice physicalDevice, 2715 VkFormat format, 2716 VkFormatProperties* pFormatProperties); 2717 2718 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties( 2719 VkPhysicalDevice physicalDevice, 2720 VkFormat format, 2721 VkImageType type, 2722 VkImageTiling tiling, 2723 VkImageUsageFlags usage, 2724 VkImageCreateFlags flags, 2725 VkImageFormatProperties* pImageFormatProperties); 2726 2727 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties( 2728 VkPhysicalDevice physicalDevice, 2729 VkPhysicalDeviceProperties* pProperties); 2730 2731 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties( 2732 VkPhysicalDevice physicalDevice, 2733 uint32_t* pQueueFamilyPropertyCount, 2734 VkQueueFamilyProperties* pQueueFamilyProperties); 2735 2736 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties( 2737 VkPhysicalDevice physicalDevice, 2738 VkPhysicalDeviceMemoryProperties* pMemoryProperties); 2739 2740 VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr( 2741 VkInstance instance, 2742 const char* pName); 2743 2744 VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr( 2745 VkDevice device, 2746 const char* pName); 2747 2748 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDevice( 2749 VkPhysicalDevice physicalDevice, 2750 const VkDeviceCreateInfo* pCreateInfo, 2751 const VkAllocationCallbacks* pAllocator, 2752 VkDevice* pDevice); 2753 2754 VKAPI_ATTR void VKAPI_CALL vkDestroyDevice( 2755 VkDevice device, 2756 const VkAllocationCallbacks* pAllocator); 2757 2758 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceExtensionProperties( 2759 const char* pLayerName, 2760 uint32_t* pPropertyCount, 2761 VkExtensionProperties* pProperties); 2762 2763 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceExtensionProperties( 2764 VkPhysicalDevice physicalDevice, 2765 const char* pLayerName, 2766 uint32_t* pPropertyCount, 2767 VkExtensionProperties* pProperties); 2768 2769 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceLayerProperties( 2770 uint32_t* pPropertyCount, 2771 VkLayerProperties* pProperties); 2772 2773 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceLayerProperties( 2774 VkPhysicalDevice physicalDevice, 2775 uint32_t* pPropertyCount, 2776 VkLayerProperties* pProperties); 2777 2778 VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue( 2779 VkDevice device, 2780 uint32_t queueFamilyIndex, 2781 uint32_t queueIndex, 2782 VkQueue* pQueue); 2783 2784 VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit( 2785 VkQueue queue, 2786 uint32_t submitCount, 2787 const VkSubmitInfo* pSubmits, 2788 VkFence fence); 2789 2790 VKAPI_ATTR VkResult VKAPI_CALL vkQueueWaitIdle( 2791 VkQueue queue); 2792 2793 VKAPI_ATTR VkResult VKAPI_CALL vkDeviceWaitIdle( 2794 VkDevice device); 2795 2796 VKAPI_ATTR VkResult VKAPI_CALL vkAllocateMemory( 2797 VkDevice device, 2798 const VkMemoryAllocateInfo* pAllocateInfo, 2799 const VkAllocationCallbacks* pAllocator, 2800 VkDeviceMemory* pMemory); 2801 2802 VKAPI_ATTR void VKAPI_CALL vkFreeMemory( 2803 VkDevice device, 2804 VkDeviceMemory memory, 2805 const VkAllocationCallbacks* pAllocator); 2806 2807 VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory( 2808 VkDevice device, 2809 VkDeviceMemory memory, 2810 VkDeviceSize offset, 2811 VkDeviceSize size, 2812 VkMemoryMapFlags flags, 2813 void** ppData); 2814 2815 VKAPI_ATTR void VKAPI_CALL vkUnmapMemory( 2816 VkDevice device, 2817 VkDeviceMemory memory); 2818 2819 VKAPI_ATTR VkResult VKAPI_CALL vkFlushMappedMemoryRanges( 2820 VkDevice device, 2821 uint32_t memoryRangeCount, 2822 const VkMappedMemoryRange* pMemoryRanges); 2823 2824 VKAPI_ATTR VkResult VKAPI_CALL vkInvalidateMappedMemoryRanges( 2825 VkDevice device, 2826 uint32_t memoryRangeCount, 2827 const VkMappedMemoryRange* pMemoryRanges); 2828 2829 VKAPI_ATTR void VKAPI_CALL vkGetDeviceMemoryCommitment( 2830 VkDevice device, 2831 VkDeviceMemory memory, 2832 VkDeviceSize* pCommittedMemoryInBytes); 2833 2834 VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory( 2835 VkDevice device, 2836 VkBuffer buffer, 2837 VkDeviceMemory memory, 2838 VkDeviceSize memoryOffset); 2839 2840 VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory( 2841 VkDevice device, 2842 VkImage image, 2843 VkDeviceMemory memory, 2844 VkDeviceSize memoryOffset); 2845 2846 VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements( 2847 VkDevice device, 2848 VkBuffer buffer, 2849 VkMemoryRequirements* pMemoryRequirements); 2850 2851 VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements( 2852 VkDevice device, 2853 VkImage image, 2854 VkMemoryRequirements* pMemoryRequirements); 2855 2856 VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements( 2857 VkDevice device, 2858 VkImage image, 2859 uint32_t* pSparseMemoryRequirementCount, 2860 VkSparseImageMemoryRequirements* pSparseMemoryRequirements); 2861 2862 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties( 2863 VkPhysicalDevice physicalDevice, 2864 VkFormat format, 2865 VkImageType type, 2866 VkSampleCountFlagBits samples, 2867 VkImageUsageFlags usage, 2868 VkImageTiling tiling, 2869 uint32_t* pPropertyCount, 2870 VkSparseImageFormatProperties* pProperties); 2871 2872 VKAPI_ATTR VkResult VKAPI_CALL vkQueueBindSparse( 2873 VkQueue queue, 2874 uint32_t bindInfoCount, 2875 const VkBindSparseInfo* pBindInfo, 2876 VkFence fence); 2877 2878 VKAPI_ATTR VkResult VKAPI_CALL vkCreateFence( 2879 VkDevice device, 2880 const VkFenceCreateInfo* pCreateInfo, 2881 const VkAllocationCallbacks* pAllocator, 2882 VkFence* pFence); 2883 2884 VKAPI_ATTR void VKAPI_CALL vkDestroyFence( 2885 VkDevice device, 2886 VkFence fence, 2887 const VkAllocationCallbacks* pAllocator); 2888 2889 VKAPI_ATTR VkResult VKAPI_CALL vkResetFences( 2890 VkDevice device, 2891 uint32_t fenceCount, 2892 const VkFence* pFences); 2893 2894 VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceStatus( 2895 VkDevice device, 2896 VkFence fence); 2897 2898 VKAPI_ATTR VkResult VKAPI_CALL vkWaitForFences( 2899 VkDevice device, 2900 uint32_t fenceCount, 2901 const VkFence* pFences, 2902 VkBool32 waitAll, 2903 uint64_t timeout); 2904 2905 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSemaphore( 2906 VkDevice device, 2907 const VkSemaphoreCreateInfo* pCreateInfo, 2908 const VkAllocationCallbacks* pAllocator, 2909 VkSemaphore* pSemaphore); 2910 2911 VKAPI_ATTR void VKAPI_CALL vkDestroySemaphore( 2912 VkDevice device, 2913 VkSemaphore semaphore, 2914 const VkAllocationCallbacks* pAllocator); 2915 2916 VKAPI_ATTR VkResult VKAPI_CALL vkCreateEvent( 2917 VkDevice device, 2918 const VkEventCreateInfo* pCreateInfo, 2919 const VkAllocationCallbacks* pAllocator, 2920 VkEvent* pEvent); 2921 2922 VKAPI_ATTR void VKAPI_CALL vkDestroyEvent( 2923 VkDevice device, 2924 VkEvent event, 2925 const VkAllocationCallbacks* pAllocator); 2926 2927 VKAPI_ATTR VkResult VKAPI_CALL vkGetEventStatus( 2928 VkDevice device, 2929 VkEvent event); 2930 2931 VKAPI_ATTR VkResult VKAPI_CALL vkSetEvent( 2932 VkDevice device, 2933 VkEvent event); 2934 2935 VKAPI_ATTR VkResult VKAPI_CALL vkResetEvent( 2936 VkDevice device, 2937 VkEvent event); 2938 2939 VKAPI_ATTR VkResult VKAPI_CALL vkCreateQueryPool( 2940 VkDevice device, 2941 const VkQueryPoolCreateInfo* pCreateInfo, 2942 const VkAllocationCallbacks* pAllocator, 2943 VkQueryPool* pQueryPool); 2944 2945 VKAPI_ATTR void VKAPI_CALL vkDestroyQueryPool( 2946 VkDevice device, 2947 VkQueryPool queryPool, 2948 const VkAllocationCallbacks* pAllocator); 2949 2950 VKAPI_ATTR VkResult VKAPI_CALL vkGetQueryPoolResults( 2951 VkDevice device, 2952 VkQueryPool queryPool, 2953 uint32_t firstQuery, 2954 uint32_t queryCount, 2955 size_t dataSize, 2956 void* pData, 2957 VkDeviceSize stride, 2958 VkQueryResultFlags flags); 2959 2960 VKAPI_ATTR VkResult VKAPI_CALL vkCreateBuffer( 2961 VkDevice device, 2962 const VkBufferCreateInfo* pCreateInfo, 2963 const VkAllocationCallbacks* pAllocator, 2964 VkBuffer* pBuffer); 2965 2966 VKAPI_ATTR void VKAPI_CALL vkDestroyBuffer( 2967 VkDevice device, 2968 VkBuffer buffer, 2969 const VkAllocationCallbacks* pAllocator); 2970 2971 VKAPI_ATTR VkResult VKAPI_CALL vkCreateBufferView( 2972 VkDevice device, 2973 const VkBufferViewCreateInfo* pCreateInfo, 2974 const VkAllocationCallbacks* pAllocator, 2975 VkBufferView* pView); 2976 2977 VKAPI_ATTR void VKAPI_CALL vkDestroyBufferView( 2978 VkDevice device, 2979 VkBufferView bufferView, 2980 const VkAllocationCallbacks* pAllocator); 2981 2982 VKAPI_ATTR VkResult VKAPI_CALL vkCreateImage( 2983 VkDevice device, 2984 const VkImageCreateInfo* pCreateInfo, 2985 const VkAllocationCallbacks* pAllocator, 2986 VkImage* pImage); 2987 2988 VKAPI_ATTR void VKAPI_CALL vkDestroyImage( 2989 VkDevice device, 2990 VkImage image, 2991 const VkAllocationCallbacks* pAllocator); 2992 2993 VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout( 2994 VkDevice device, 2995 VkImage image, 2996 const VkImageSubresource* pSubresource, 2997 VkSubresourceLayout* pLayout); 2998 2999 VKAPI_ATTR VkResult VKAPI_CALL vkCreateImageView( 3000 VkDevice device, 3001 const VkImageViewCreateInfo* pCreateInfo, 3002 const VkAllocationCallbacks* pAllocator, 3003 VkImageView* pView); 3004 3005 VKAPI_ATTR void VKAPI_CALL vkDestroyImageView( 3006 VkDevice device, 3007 VkImageView imageView, 3008 const VkAllocationCallbacks* pAllocator); 3009 3010 VKAPI_ATTR VkResult VKAPI_CALL vkCreateShaderModule( 3011 VkDevice device, 3012 const VkShaderModuleCreateInfo* pCreateInfo, 3013 const VkAllocationCallbacks* pAllocator, 3014 VkShaderModule* pShaderModule); 3015 3016 VKAPI_ATTR void VKAPI_CALL vkDestroyShaderModule( 3017 VkDevice device, 3018 VkShaderModule shaderModule, 3019 const VkAllocationCallbacks* pAllocator); 3020 3021 VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineCache( 3022 VkDevice device, 3023 const VkPipelineCacheCreateInfo* pCreateInfo, 3024 const VkAllocationCallbacks* pAllocator, 3025 VkPipelineCache* pPipelineCache); 3026 3027 VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineCache( 3028 VkDevice device, 3029 VkPipelineCache pipelineCache, 3030 const VkAllocationCallbacks* pAllocator); 3031 3032 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineCacheData( 3033 VkDevice device, 3034 VkPipelineCache pipelineCache, 3035 size_t* pDataSize, 3036 void* pData); 3037 3038 VKAPI_ATTR VkResult VKAPI_CALL vkMergePipelineCaches( 3039 VkDevice device, 3040 VkPipelineCache dstCache, 3041 uint32_t srcCacheCount, 3042 const VkPipelineCache* pSrcCaches); 3043 3044 VKAPI_ATTR VkResult VKAPI_CALL vkCreateGraphicsPipelines( 3045 VkDevice device, 3046 VkPipelineCache pipelineCache, 3047 uint32_t createInfoCount, 3048 const VkGraphicsPipelineCreateInfo* pCreateInfos, 3049 const VkAllocationCallbacks* pAllocator, 3050 VkPipeline* pPipelines); 3051 3052 VKAPI_ATTR VkResult VKAPI_CALL vkCreateComputePipelines( 3053 VkDevice device, 3054 VkPipelineCache pipelineCache, 3055 uint32_t createInfoCount, 3056 const VkComputePipelineCreateInfo* pCreateInfos, 3057 const VkAllocationCallbacks* pAllocator, 3058 VkPipeline* pPipelines); 3059 3060 VKAPI_ATTR void VKAPI_CALL vkDestroyPipeline( 3061 VkDevice device, 3062 VkPipeline pipeline, 3063 const VkAllocationCallbacks* pAllocator); 3064 3065 VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineLayout( 3066 VkDevice device, 3067 const VkPipelineLayoutCreateInfo* pCreateInfo, 3068 const VkAllocationCallbacks* pAllocator, 3069 VkPipelineLayout* pPipelineLayout); 3070 3071 VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineLayout( 3072 VkDevice device, 3073 VkPipelineLayout pipelineLayout, 3074 const VkAllocationCallbacks* pAllocator); 3075 3076 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSampler( 3077 VkDevice device, 3078 const VkSamplerCreateInfo* pCreateInfo, 3079 const VkAllocationCallbacks* pAllocator, 3080 VkSampler* pSampler); 3081 3082 VKAPI_ATTR void VKAPI_CALL vkDestroySampler( 3083 VkDevice device, 3084 VkSampler sampler, 3085 const VkAllocationCallbacks* pAllocator); 3086 3087 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorSetLayout( 3088 VkDevice device, 3089 const VkDescriptorSetLayoutCreateInfo* pCreateInfo, 3090 const VkAllocationCallbacks* pAllocator, 3091 VkDescriptorSetLayout* pSetLayout); 3092 3093 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorSetLayout( 3094 VkDevice device, 3095 VkDescriptorSetLayout descriptorSetLayout, 3096 const VkAllocationCallbacks* pAllocator); 3097 3098 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorPool( 3099 VkDevice device, 3100 const VkDescriptorPoolCreateInfo* pCreateInfo, 3101 const VkAllocationCallbacks* pAllocator, 3102 VkDescriptorPool* pDescriptorPool); 3103 3104 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorPool( 3105 VkDevice device, 3106 VkDescriptorPool descriptorPool, 3107 const VkAllocationCallbacks* pAllocator); 3108 3109 VKAPI_ATTR VkResult VKAPI_CALL vkResetDescriptorPool( 3110 VkDevice device, 3111 VkDescriptorPool descriptorPool, 3112 VkDescriptorPoolResetFlags flags); 3113 3114 VKAPI_ATTR VkResult VKAPI_CALL vkAllocateDescriptorSets( 3115 VkDevice device, 3116 const VkDescriptorSetAllocateInfo* pAllocateInfo, 3117 VkDescriptorSet* pDescriptorSets); 3118 3119 VKAPI_ATTR VkResult VKAPI_CALL vkFreeDescriptorSets( 3120 VkDevice device, 3121 VkDescriptorPool descriptorPool, 3122 uint32_t descriptorSetCount, 3123 const VkDescriptorSet* pDescriptorSets); 3124 3125 VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSets( 3126 VkDevice device, 3127 uint32_t descriptorWriteCount, 3128 const VkWriteDescriptorSet* pDescriptorWrites, 3129 uint32_t descriptorCopyCount, 3130 const VkCopyDescriptorSet* pDescriptorCopies); 3131 3132 VKAPI_ATTR VkResult VKAPI_CALL vkCreateFramebuffer( 3133 VkDevice device, 3134 const VkFramebufferCreateInfo* pCreateInfo, 3135 const VkAllocationCallbacks* pAllocator, 3136 VkFramebuffer* pFramebuffer); 3137 3138 VKAPI_ATTR void VKAPI_CALL vkDestroyFramebuffer( 3139 VkDevice device, 3140 VkFramebuffer framebuffer, 3141 const VkAllocationCallbacks* pAllocator); 3142 3143 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass( 3144 VkDevice device, 3145 const VkRenderPassCreateInfo* pCreateInfo, 3146 const VkAllocationCallbacks* pAllocator, 3147 VkRenderPass* pRenderPass); 3148 3149 VKAPI_ATTR void VKAPI_CALL vkDestroyRenderPass( 3150 VkDevice device, 3151 VkRenderPass renderPass, 3152 const VkAllocationCallbacks* pAllocator); 3153 3154 VKAPI_ATTR void VKAPI_CALL vkGetRenderAreaGranularity( 3155 VkDevice device, 3156 VkRenderPass renderPass, 3157 VkExtent2D* pGranularity); 3158 3159 VKAPI_ATTR VkResult VKAPI_CALL vkCreateCommandPool( 3160 VkDevice device, 3161 const VkCommandPoolCreateInfo* pCreateInfo, 3162 const VkAllocationCallbacks* pAllocator, 3163 VkCommandPool* pCommandPool); 3164 3165 VKAPI_ATTR void VKAPI_CALL vkDestroyCommandPool( 3166 VkDevice device, 3167 VkCommandPool commandPool, 3168 const VkAllocationCallbacks* pAllocator); 3169 3170 VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandPool( 3171 VkDevice device, 3172 VkCommandPool commandPool, 3173 VkCommandPoolResetFlags flags); 3174 3175 VKAPI_ATTR VkResult VKAPI_CALL vkAllocateCommandBuffers( 3176 VkDevice device, 3177 const VkCommandBufferAllocateInfo* pAllocateInfo, 3178 VkCommandBuffer* pCommandBuffers); 3179 3180 VKAPI_ATTR void VKAPI_CALL vkFreeCommandBuffers( 3181 VkDevice device, 3182 VkCommandPool commandPool, 3183 uint32_t commandBufferCount, 3184 const VkCommandBuffer* pCommandBuffers); 3185 3186 VKAPI_ATTR VkResult VKAPI_CALL vkBeginCommandBuffer( 3187 VkCommandBuffer commandBuffer, 3188 const VkCommandBufferBeginInfo* pBeginInfo); 3189 3190 VKAPI_ATTR VkResult VKAPI_CALL vkEndCommandBuffer( 3191 VkCommandBuffer commandBuffer); 3192 3193 VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandBuffer( 3194 VkCommandBuffer commandBuffer, 3195 VkCommandBufferResetFlags flags); 3196 3197 VKAPI_ATTR void VKAPI_CALL vkCmdBindPipeline( 3198 VkCommandBuffer commandBuffer, 3199 VkPipelineBindPoint pipelineBindPoint, 3200 VkPipeline pipeline); 3201 3202 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewport( 3203 VkCommandBuffer commandBuffer, 3204 uint32_t firstViewport, 3205 uint32_t viewportCount, 3206 const VkViewport* pViewports); 3207 3208 VKAPI_ATTR void VKAPI_CALL vkCmdSetScissor( 3209 VkCommandBuffer commandBuffer, 3210 uint32_t firstScissor, 3211 uint32_t scissorCount, 3212 const VkRect2D* pScissors); 3213 3214 VKAPI_ATTR void VKAPI_CALL vkCmdSetLineWidth( 3215 VkCommandBuffer commandBuffer, 3216 float lineWidth); 3217 3218 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias( 3219 VkCommandBuffer commandBuffer, 3220 float depthBiasConstantFactor, 3221 float depthBiasClamp, 3222 float depthBiasSlopeFactor); 3223 3224 VKAPI_ATTR void VKAPI_CALL vkCmdSetBlendConstants( 3225 VkCommandBuffer commandBuffer, 3226 const float blendConstants[4]); 3227 3228 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBounds( 3229 VkCommandBuffer commandBuffer, 3230 float minDepthBounds, 3231 float maxDepthBounds); 3232 3233 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilCompareMask( 3234 VkCommandBuffer commandBuffer, 3235 VkStencilFaceFlags faceMask, 3236 uint32_t compareMask); 3237 3238 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilWriteMask( 3239 VkCommandBuffer commandBuffer, 3240 VkStencilFaceFlags faceMask, 3241 uint32_t writeMask); 3242 3243 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilReference( 3244 VkCommandBuffer commandBuffer, 3245 VkStencilFaceFlags faceMask, 3246 uint32_t reference); 3247 3248 VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets( 3249 VkCommandBuffer commandBuffer, 3250 VkPipelineBindPoint pipelineBindPoint, 3251 VkPipelineLayout layout, 3252 uint32_t firstSet, 3253 uint32_t descriptorSetCount, 3254 const VkDescriptorSet* pDescriptorSets, 3255 uint32_t dynamicOffsetCount, 3256 const uint32_t* pDynamicOffsets); 3257 3258 VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer( 3259 VkCommandBuffer commandBuffer, 3260 VkBuffer buffer, 3261 VkDeviceSize offset, 3262 VkIndexType indexType); 3263 3264 VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers( 3265 VkCommandBuffer commandBuffer, 3266 uint32_t firstBinding, 3267 uint32_t bindingCount, 3268 const VkBuffer* pBuffers, 3269 const VkDeviceSize* pOffsets); 3270 3271 VKAPI_ATTR void VKAPI_CALL vkCmdDraw( 3272 VkCommandBuffer commandBuffer, 3273 uint32_t vertexCount, 3274 uint32_t instanceCount, 3275 uint32_t firstVertex, 3276 uint32_t firstInstance); 3277 3278 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexed( 3279 VkCommandBuffer commandBuffer, 3280 uint32_t indexCount, 3281 uint32_t instanceCount, 3282 uint32_t firstIndex, 3283 int32_t vertexOffset, 3284 uint32_t firstInstance); 3285 3286 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirect( 3287 VkCommandBuffer commandBuffer, 3288 VkBuffer buffer, 3289 VkDeviceSize offset, 3290 uint32_t drawCount, 3291 uint32_t stride); 3292 3293 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirect( 3294 VkCommandBuffer commandBuffer, 3295 VkBuffer buffer, 3296 VkDeviceSize offset, 3297 uint32_t drawCount, 3298 uint32_t stride); 3299 3300 VKAPI_ATTR void VKAPI_CALL vkCmdDispatch( 3301 VkCommandBuffer commandBuffer, 3302 uint32_t groupCountX, 3303 uint32_t groupCountY, 3304 uint32_t groupCountZ); 3305 3306 VKAPI_ATTR void VKAPI_CALL vkCmdDispatchIndirect( 3307 VkCommandBuffer commandBuffer, 3308 VkBuffer buffer, 3309 VkDeviceSize offset); 3310 3311 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer( 3312 VkCommandBuffer commandBuffer, 3313 VkBuffer srcBuffer, 3314 VkBuffer dstBuffer, 3315 uint32_t regionCount, 3316 const VkBufferCopy* pRegions); 3317 3318 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage( 3319 VkCommandBuffer commandBuffer, 3320 VkImage srcImage, 3321 VkImageLayout srcImageLayout, 3322 VkImage dstImage, 3323 VkImageLayout dstImageLayout, 3324 uint32_t regionCount, 3325 const VkImageCopy* pRegions); 3326 3327 VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage( 3328 VkCommandBuffer commandBuffer, 3329 VkImage srcImage, 3330 VkImageLayout srcImageLayout, 3331 VkImage dstImage, 3332 VkImageLayout dstImageLayout, 3333 uint32_t regionCount, 3334 const VkImageBlit* pRegions, 3335 VkFilter filter); 3336 3337 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage( 3338 VkCommandBuffer commandBuffer, 3339 VkBuffer srcBuffer, 3340 VkImage dstImage, 3341 VkImageLayout dstImageLayout, 3342 uint32_t regionCount, 3343 const VkBufferImageCopy* pRegions); 3344 3345 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer( 3346 VkCommandBuffer commandBuffer, 3347 VkImage srcImage, 3348 VkImageLayout srcImageLayout, 3349 VkBuffer dstBuffer, 3350 uint32_t regionCount, 3351 const VkBufferImageCopy* pRegions); 3352 3353 VKAPI_ATTR void VKAPI_CALL vkCmdUpdateBuffer( 3354 VkCommandBuffer commandBuffer, 3355 VkBuffer dstBuffer, 3356 VkDeviceSize dstOffset, 3357 VkDeviceSize dataSize, 3358 const void* pData); 3359 3360 VKAPI_ATTR void VKAPI_CALL vkCmdFillBuffer( 3361 VkCommandBuffer commandBuffer, 3362 VkBuffer dstBuffer, 3363 VkDeviceSize dstOffset, 3364 VkDeviceSize size, 3365 uint32_t data); 3366 3367 VKAPI_ATTR void VKAPI_CALL vkCmdClearColorImage( 3368 VkCommandBuffer commandBuffer, 3369 VkImage image, 3370 VkImageLayout imageLayout, 3371 const VkClearColorValue* pColor, 3372 uint32_t rangeCount, 3373 const VkImageSubresourceRange* pRanges); 3374 3375 VKAPI_ATTR void VKAPI_CALL vkCmdClearDepthStencilImage( 3376 VkCommandBuffer commandBuffer, 3377 VkImage image, 3378 VkImageLayout imageLayout, 3379 const VkClearDepthStencilValue* pDepthStencil, 3380 uint32_t rangeCount, 3381 const VkImageSubresourceRange* pRanges); 3382 3383 VKAPI_ATTR void VKAPI_CALL vkCmdClearAttachments( 3384 VkCommandBuffer commandBuffer, 3385 uint32_t attachmentCount, 3386 const VkClearAttachment* pAttachments, 3387 uint32_t rectCount, 3388 const VkClearRect* pRects); 3389 3390 VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage( 3391 VkCommandBuffer commandBuffer, 3392 VkImage srcImage, 3393 VkImageLayout srcImageLayout, 3394 VkImage dstImage, 3395 VkImageLayout dstImageLayout, 3396 uint32_t regionCount, 3397 const VkImageResolve* pRegions); 3398 3399 VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent( 3400 VkCommandBuffer commandBuffer, 3401 VkEvent event, 3402 VkPipelineStageFlags stageMask); 3403 3404 VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent( 3405 VkCommandBuffer commandBuffer, 3406 VkEvent event, 3407 VkPipelineStageFlags stageMask); 3408 3409 VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents( 3410 VkCommandBuffer commandBuffer, 3411 uint32_t eventCount, 3412 const VkEvent* pEvents, 3413 VkPipelineStageFlags srcStageMask, 3414 VkPipelineStageFlags dstStageMask, 3415 uint32_t memoryBarrierCount, 3416 const VkMemoryBarrier* pMemoryBarriers, 3417 uint32_t bufferMemoryBarrierCount, 3418 const VkBufferMemoryBarrier* pBufferMemoryBarriers, 3419 uint32_t imageMemoryBarrierCount, 3420 const VkImageMemoryBarrier* pImageMemoryBarriers); 3421 3422 VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier( 3423 VkCommandBuffer commandBuffer, 3424 VkPipelineStageFlags srcStageMask, 3425 VkPipelineStageFlags dstStageMask, 3426 VkDependencyFlags dependencyFlags, 3427 uint32_t memoryBarrierCount, 3428 const VkMemoryBarrier* pMemoryBarriers, 3429 uint32_t bufferMemoryBarrierCount, 3430 const VkBufferMemoryBarrier* pBufferMemoryBarriers, 3431 uint32_t imageMemoryBarrierCount, 3432 const VkImageMemoryBarrier* pImageMemoryBarriers); 3433 3434 VKAPI_ATTR void VKAPI_CALL vkCmdBeginQuery( 3435 VkCommandBuffer commandBuffer, 3436 VkQueryPool queryPool, 3437 uint32_t query, 3438 VkQueryControlFlags flags); 3439 3440 VKAPI_ATTR void VKAPI_CALL vkCmdEndQuery( 3441 VkCommandBuffer commandBuffer, 3442 VkQueryPool queryPool, 3443 uint32_t query); 3444 3445 VKAPI_ATTR void VKAPI_CALL vkCmdResetQueryPool( 3446 VkCommandBuffer commandBuffer, 3447 VkQueryPool queryPool, 3448 uint32_t firstQuery, 3449 uint32_t queryCount); 3450 3451 VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp( 3452 VkCommandBuffer commandBuffer, 3453 VkPipelineStageFlagBits pipelineStage, 3454 VkQueryPool queryPool, 3455 uint32_t query); 3456 3457 VKAPI_ATTR void VKAPI_CALL vkCmdCopyQueryPoolResults( 3458 VkCommandBuffer commandBuffer, 3459 VkQueryPool queryPool, 3460 uint32_t firstQuery, 3461 uint32_t queryCount, 3462 VkBuffer dstBuffer, 3463 VkDeviceSize dstOffset, 3464 VkDeviceSize stride, 3465 VkQueryResultFlags flags); 3466 3467 VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants( 3468 VkCommandBuffer commandBuffer, 3469 VkPipelineLayout layout, 3470 VkShaderStageFlags stageFlags, 3471 uint32_t offset, 3472 uint32_t size, 3473 const void* pValues); 3474 3475 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass( 3476 VkCommandBuffer commandBuffer, 3477 const VkRenderPassBeginInfo* pRenderPassBegin, 3478 VkSubpassContents contents); 3479 3480 VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass( 3481 VkCommandBuffer commandBuffer, 3482 VkSubpassContents contents); 3483 3484 VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass( 3485 VkCommandBuffer commandBuffer); 3486 3487 VKAPI_ATTR void VKAPI_CALL vkCmdExecuteCommands( 3488 VkCommandBuffer commandBuffer, 3489 uint32_t commandBufferCount, 3490 const VkCommandBuffer* pCommandBuffers); 3491 #endif 3492 3493 #define VK_KHR_surface 1 3494 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR) 3495 3496 #define VK_KHR_SURFACE_SPEC_VERSION 25 3497 #define VK_KHR_SURFACE_EXTENSION_NAME "VK_KHR_surface" 3498 #define VK_COLORSPACE_SRGB_NONLINEAR_KHR VK_COLOR_SPACE_SRGB_NONLINEAR_KHR 3499 3500 3501 typedef enum VkColorSpaceKHR { 3502 VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0, 3503 VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001, 3504 VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002, 3505 VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = 1000104003, 3506 VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004, 3507 VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005, 3508 VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006, 3509 VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007, 3510 VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008, 3511 VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009, 3512 VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010, 3513 VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011, 3514 VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012, 3515 VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013, 3516 VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014, 3517 VK_COLOR_SPACE_BEGIN_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR, 3518 VK_COLOR_SPACE_END_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR, 3519 VK_COLOR_SPACE_RANGE_SIZE_KHR = (VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - VK_COLOR_SPACE_SRGB_NONLINEAR_KHR + 1), 3520 VK_COLOR_SPACE_MAX_ENUM_KHR = 0x7FFFFFFF 3521 } VkColorSpaceKHR; 3522 3523 typedef enum VkPresentModeKHR { 3524 VK_PRESENT_MODE_IMMEDIATE_KHR = 0, 3525 VK_PRESENT_MODE_MAILBOX_KHR = 1, 3526 VK_PRESENT_MODE_FIFO_KHR = 2, 3527 VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3, 3528 VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000, 3529 VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001, 3530 VK_PRESENT_MODE_BEGIN_RANGE_KHR = VK_PRESENT_MODE_IMMEDIATE_KHR, 3531 VK_PRESENT_MODE_END_RANGE_KHR = VK_PRESENT_MODE_FIFO_RELAXED_KHR, 3532 VK_PRESENT_MODE_RANGE_SIZE_KHR = (VK_PRESENT_MODE_FIFO_RELAXED_KHR - VK_PRESENT_MODE_IMMEDIATE_KHR + 1), 3533 VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF 3534 } VkPresentModeKHR; 3535 3536 3537 typedef enum VkSurfaceTransformFlagBitsKHR { 3538 VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001, 3539 VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002, 3540 VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004, 3541 VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008, 3542 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010, 3543 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020, 3544 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040, 3545 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080, 3546 VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100, 3547 VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF 3548 } VkSurfaceTransformFlagBitsKHR; 3549 typedef VkFlags VkSurfaceTransformFlagsKHR; 3550 3551 typedef enum VkCompositeAlphaFlagBitsKHR { 3552 VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001, 3553 VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002, 3554 VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004, 3555 VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008, 3556 VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF 3557 } VkCompositeAlphaFlagBitsKHR; 3558 typedef VkFlags VkCompositeAlphaFlagsKHR; 3559 3560 typedef struct VkSurfaceCapabilitiesKHR { 3561 uint32_t minImageCount; 3562 uint32_t maxImageCount; 3563 VkExtent2D currentExtent; 3564 VkExtent2D minImageExtent; 3565 VkExtent2D maxImageExtent; 3566 uint32_t maxImageArrayLayers; 3567 VkSurfaceTransformFlagsKHR supportedTransforms; 3568 VkSurfaceTransformFlagBitsKHR currentTransform; 3569 VkCompositeAlphaFlagsKHR supportedCompositeAlpha; 3570 VkImageUsageFlags supportedUsageFlags; 3571 } VkSurfaceCapabilitiesKHR; 3572 3573 typedef struct VkSurfaceFormatKHR { 3574 VkFormat format; 3575 VkColorSpaceKHR colorSpace; 3576 } VkSurfaceFormatKHR; 3577 3578 3579 typedef void (VKAPI_PTR *PFN_vkDestroySurfaceKHR)(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator); 3580 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported); 3581 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities); 3582 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats); 3583 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes); 3584 3585 #ifndef VK_NO_PROTOTYPES 3586 VKAPI_ATTR void VKAPI_CALL vkDestroySurfaceKHR( 3587 VkInstance instance, 3588 VkSurfaceKHR surface, 3589 const VkAllocationCallbacks* pAllocator); 3590 3591 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceSupportKHR( 3592 VkPhysicalDevice physicalDevice, 3593 uint32_t queueFamilyIndex, 3594 VkSurfaceKHR surface, 3595 VkBool32* pSupported); 3596 3597 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilitiesKHR( 3598 VkPhysicalDevice physicalDevice, 3599 VkSurfaceKHR surface, 3600 VkSurfaceCapabilitiesKHR* pSurfaceCapabilities); 3601 3602 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormatsKHR( 3603 VkPhysicalDevice physicalDevice, 3604 VkSurfaceKHR surface, 3605 uint32_t* pSurfaceFormatCount, 3606 VkSurfaceFormatKHR* pSurfaceFormats); 3607 3608 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModesKHR( 3609 VkPhysicalDevice physicalDevice, 3610 VkSurfaceKHR surface, 3611 uint32_t* pPresentModeCount, 3612 VkPresentModeKHR* pPresentModes); 3613 #endif 3614 3615 #define VK_KHR_swapchain 1 3616 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR) 3617 3618 #define VK_KHR_SWAPCHAIN_SPEC_VERSION 68 3619 #define VK_KHR_SWAPCHAIN_EXTENSION_NAME "VK_KHR_swapchain" 3620 3621 3622 typedef enum VkSwapchainCreateFlagBitsKHR { 3623 VK_SWAPCHAIN_CREATE_BIND_SFR_BIT_KHX = 0x00000001, 3624 VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF 3625 } VkSwapchainCreateFlagBitsKHR; 3626 typedef VkFlags VkSwapchainCreateFlagsKHR; 3627 3628 typedef struct VkSwapchainCreateInfoKHR { 3629 VkStructureType sType; 3630 const void* pNext; 3631 VkSwapchainCreateFlagsKHR flags; 3632 VkSurfaceKHR surface; 3633 uint32_t minImageCount; 3634 VkFormat imageFormat; 3635 VkColorSpaceKHR imageColorSpace; 3636 VkExtent2D imageExtent; 3637 uint32_t imageArrayLayers; 3638 VkImageUsageFlags imageUsage; 3639 VkSharingMode imageSharingMode; 3640 uint32_t queueFamilyIndexCount; 3641 const uint32_t* pQueueFamilyIndices; 3642 VkSurfaceTransformFlagBitsKHR preTransform; 3643 VkCompositeAlphaFlagBitsKHR compositeAlpha; 3644 VkPresentModeKHR presentMode; 3645 VkBool32 clipped; 3646 VkSwapchainKHR oldSwapchain; 3647 } VkSwapchainCreateInfoKHR; 3648 3649 typedef struct VkPresentInfoKHR { 3650 VkStructureType sType; 3651 const void* pNext; 3652 uint32_t waitSemaphoreCount; 3653 const VkSemaphore* pWaitSemaphores; 3654 uint32_t swapchainCount; 3655 const VkSwapchainKHR* pSwapchains; 3656 const uint32_t* pImageIndices; 3657 VkResult* pResults; 3658 } VkPresentInfoKHR; 3659 3660 3661 typedef VkResult (VKAPI_PTR *PFN_vkCreateSwapchainKHR)(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain); 3662 typedef void (VKAPI_PTR *PFN_vkDestroySwapchainKHR)(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator); 3663 typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainImagesKHR)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages); 3664 typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImageKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex); 3665 typedef VkResult (VKAPI_PTR *PFN_vkQueuePresentKHR)(VkQueue queue, const VkPresentInfoKHR* pPresentInfo); 3666 3667 #ifndef VK_NO_PROTOTYPES 3668 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSwapchainKHR( 3669 VkDevice device, 3670 const VkSwapchainCreateInfoKHR* pCreateInfo, 3671 const VkAllocationCallbacks* pAllocator, 3672 VkSwapchainKHR* pSwapchain); 3673 3674 VKAPI_ATTR void VKAPI_CALL vkDestroySwapchainKHR( 3675 VkDevice device, 3676 VkSwapchainKHR swapchain, 3677 const VkAllocationCallbacks* pAllocator); 3678 3679 VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainImagesKHR( 3680 VkDevice device, 3681 VkSwapchainKHR swapchain, 3682 uint32_t* pSwapchainImageCount, 3683 VkImage* pSwapchainImages); 3684 3685 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImageKHR( 3686 VkDevice device, 3687 VkSwapchainKHR swapchain, 3688 uint64_t timeout, 3689 VkSemaphore semaphore, 3690 VkFence fence, 3691 uint32_t* pImageIndex); 3692 3693 VKAPI_ATTR VkResult VKAPI_CALL vkQueuePresentKHR( 3694 VkQueue queue, 3695 const VkPresentInfoKHR* pPresentInfo); 3696 #endif 3697 3698 #define VK_KHR_display 1 3699 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR) 3700 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR) 3701 3702 #define VK_KHR_DISPLAY_SPEC_VERSION 21 3703 #define VK_KHR_DISPLAY_EXTENSION_NAME "VK_KHR_display" 3704 3705 3706 typedef enum VkDisplayPlaneAlphaFlagBitsKHR { 3707 VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001, 3708 VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002, 3709 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004, 3710 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008, 3711 VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF 3712 } VkDisplayPlaneAlphaFlagBitsKHR; 3713 typedef VkFlags VkDisplayPlaneAlphaFlagsKHR; 3714 typedef VkFlags VkDisplayModeCreateFlagsKHR; 3715 typedef VkFlags VkDisplaySurfaceCreateFlagsKHR; 3716 3717 typedef struct VkDisplayPropertiesKHR { 3718 VkDisplayKHR display; 3719 const char* displayName; 3720 VkExtent2D physicalDimensions; 3721 VkExtent2D physicalResolution; 3722 VkSurfaceTransformFlagsKHR supportedTransforms; 3723 VkBool32 planeReorderPossible; 3724 VkBool32 persistentContent; 3725 } VkDisplayPropertiesKHR; 3726 3727 typedef struct VkDisplayModeParametersKHR { 3728 VkExtent2D visibleRegion; 3729 uint32_t refreshRate; 3730 } VkDisplayModeParametersKHR; 3731 3732 typedef struct VkDisplayModePropertiesKHR { 3733 VkDisplayModeKHR displayMode; 3734 VkDisplayModeParametersKHR parameters; 3735 } VkDisplayModePropertiesKHR; 3736 3737 typedef struct VkDisplayModeCreateInfoKHR { 3738 VkStructureType sType; 3739 const void* pNext; 3740 VkDisplayModeCreateFlagsKHR flags; 3741 VkDisplayModeParametersKHR parameters; 3742 } VkDisplayModeCreateInfoKHR; 3743 3744 typedef struct VkDisplayPlaneCapabilitiesKHR { 3745 VkDisplayPlaneAlphaFlagsKHR supportedAlpha; 3746 VkOffset2D minSrcPosition; 3747 VkOffset2D maxSrcPosition; 3748 VkExtent2D minSrcExtent; 3749 VkExtent2D maxSrcExtent; 3750 VkOffset2D minDstPosition; 3751 VkOffset2D maxDstPosition; 3752 VkExtent2D minDstExtent; 3753 VkExtent2D maxDstExtent; 3754 } VkDisplayPlaneCapabilitiesKHR; 3755 3756 typedef struct VkDisplayPlanePropertiesKHR { 3757 VkDisplayKHR currentDisplay; 3758 uint32_t currentStackIndex; 3759 } VkDisplayPlanePropertiesKHR; 3760 3761 typedef struct VkDisplaySurfaceCreateInfoKHR { 3762 VkStructureType sType; 3763 const void* pNext; 3764 VkDisplaySurfaceCreateFlagsKHR flags; 3765 VkDisplayModeKHR displayMode; 3766 uint32_t planeIndex; 3767 uint32_t planeStackIndex; 3768 VkSurfaceTransformFlagBitsKHR transform; 3769 float globalAlpha; 3770 VkDisplayPlaneAlphaFlagBitsKHR alphaMode; 3771 VkExtent2D imageExtent; 3772 } VkDisplaySurfaceCreateInfoKHR; 3773 3774 3775 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties); 3776 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties); 3777 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays); 3778 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties); 3779 typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode); 3780 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities); 3781 typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayPlaneSurfaceKHR)(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); 3782 3783 #ifndef VK_NO_PROTOTYPES 3784 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPropertiesKHR( 3785 VkPhysicalDevice physicalDevice, 3786 uint32_t* pPropertyCount, 3787 VkDisplayPropertiesKHR* pProperties); 3788 3789 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlanePropertiesKHR( 3790 VkPhysicalDevice physicalDevice, 3791 uint32_t* pPropertyCount, 3792 VkDisplayPlanePropertiesKHR* pProperties); 3793 3794 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneSupportedDisplaysKHR( 3795 VkPhysicalDevice physicalDevice, 3796 uint32_t planeIndex, 3797 uint32_t* pDisplayCount, 3798 VkDisplayKHR* pDisplays); 3799 3800 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModePropertiesKHR( 3801 VkPhysicalDevice physicalDevice, 3802 VkDisplayKHR display, 3803 uint32_t* pPropertyCount, 3804 VkDisplayModePropertiesKHR* pProperties); 3805 3806 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayModeKHR( 3807 VkPhysicalDevice physicalDevice, 3808 VkDisplayKHR display, 3809 const VkDisplayModeCreateInfoKHR* pCreateInfo, 3810 const VkAllocationCallbacks* pAllocator, 3811 VkDisplayModeKHR* pMode); 3812 3813 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilitiesKHR( 3814 VkPhysicalDevice physicalDevice, 3815 VkDisplayModeKHR mode, 3816 uint32_t planeIndex, 3817 VkDisplayPlaneCapabilitiesKHR* pCapabilities); 3818 3819 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayPlaneSurfaceKHR( 3820 VkInstance instance, 3821 const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, 3822 const VkAllocationCallbacks* pAllocator, 3823 VkSurfaceKHR* pSurface); 3824 #endif 3825 3826 #define VK_KHR_display_swapchain 1 3827 #define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 9 3828 #define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain" 3829 3830 typedef struct VkDisplayPresentInfoKHR { 3831 VkStructureType sType; 3832 const void* pNext; 3833 VkRect2D srcRect; 3834 VkRect2D dstRect; 3835 VkBool32 persistent; 3836 } VkDisplayPresentInfoKHR; 3837 3838 3839 typedef VkResult (VKAPI_PTR *PFN_vkCreateSharedSwapchainsKHR)(VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains); 3840 3841 #ifndef VK_NO_PROTOTYPES 3842 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSharedSwapchainsKHR( 3843 VkDevice device, 3844 uint32_t swapchainCount, 3845 const VkSwapchainCreateInfoKHR* pCreateInfos, 3846 const VkAllocationCallbacks* pAllocator, 3847 VkSwapchainKHR* pSwapchains); 3848 #endif 3849 3850 #ifdef VK_USE_PLATFORM_XLIB_KHR 3851 #define VK_KHR_xlib_surface 1 3852 #include <X11/Xlib.h> 3853 3854 #define VK_KHR_XLIB_SURFACE_SPEC_VERSION 6 3855 #define VK_KHR_XLIB_SURFACE_EXTENSION_NAME "VK_KHR_xlib_surface" 3856 3857 typedef VkFlags VkXlibSurfaceCreateFlagsKHR; 3858 3859 typedef struct VkXlibSurfaceCreateInfoKHR { 3860 VkStructureType sType; 3861 const void* pNext; 3862 VkXlibSurfaceCreateFlagsKHR flags; 3863 Display* dpy; 3864 Window window; 3865 } VkXlibSurfaceCreateInfoKHR; 3866 3867 3868 typedef VkResult (VKAPI_PTR *PFN_vkCreateXlibSurfaceKHR)(VkInstance instance, const VkXlibSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); 3869 typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceXlibPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, Display* dpy, VisualID visualID); 3870 3871 #ifndef VK_NO_PROTOTYPES 3872 VKAPI_ATTR VkResult VKAPI_CALL vkCreateXlibSurfaceKHR( 3873 VkInstance instance, 3874 const VkXlibSurfaceCreateInfoKHR* pCreateInfo, 3875 const VkAllocationCallbacks* pAllocator, 3876 VkSurfaceKHR* pSurface); 3877 3878 VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceXlibPresentationSupportKHR( 3879 VkPhysicalDevice physicalDevice, 3880 uint32_t queueFamilyIndex, 3881 Display* dpy, 3882 VisualID visualID); 3883 #endif 3884 #endif /* VK_USE_PLATFORM_XLIB_KHR */ 3885 3886 #ifdef VK_USE_PLATFORM_XCB_KHR 3887 #define VK_KHR_xcb_surface 1 3888 #include <xcb/xcb.h> 3889 3890 #define VK_KHR_XCB_SURFACE_SPEC_VERSION 6 3891 #define VK_KHR_XCB_SURFACE_EXTENSION_NAME "VK_KHR_xcb_surface" 3892 3893 typedef VkFlags VkXcbSurfaceCreateFlagsKHR; 3894 3895 typedef struct VkXcbSurfaceCreateInfoKHR { 3896 VkStructureType sType; 3897 const void* pNext; 3898 VkXcbSurfaceCreateFlagsKHR flags; 3899 xcb_connection_t* connection; 3900 xcb_window_t window; 3901 } VkXcbSurfaceCreateInfoKHR; 3902 3903 3904 typedef VkResult (VKAPI_PTR *PFN_vkCreateXcbSurfaceKHR)(VkInstance instance, const VkXcbSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); 3905 typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceXcbPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, xcb_connection_t* connection, xcb_visualid_t visual_id); 3906 3907 #ifndef VK_NO_PROTOTYPES 3908 VKAPI_ATTR VkResult VKAPI_CALL vkCreateXcbSurfaceKHR( 3909 VkInstance instance, 3910 const VkXcbSurfaceCreateInfoKHR* pCreateInfo, 3911 const VkAllocationCallbacks* pAllocator, 3912 VkSurfaceKHR* pSurface); 3913 3914 VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceXcbPresentationSupportKHR( 3915 VkPhysicalDevice physicalDevice, 3916 uint32_t queueFamilyIndex, 3917 xcb_connection_t* connection, 3918 xcb_visualid_t visual_id); 3919 #endif 3920 #endif /* VK_USE_PLATFORM_XCB_KHR */ 3921 3922 #ifdef VK_USE_PLATFORM_WAYLAND_KHR 3923 #define VK_KHR_wayland_surface 1 3924 #include <wayland-client.h> 3925 3926 #define VK_KHR_WAYLAND_SURFACE_SPEC_VERSION 6 3927 #define VK_KHR_WAYLAND_SURFACE_EXTENSION_NAME "VK_KHR_wayland_surface" 3928 3929 typedef VkFlags VkWaylandSurfaceCreateFlagsKHR; 3930 3931 typedef struct VkWaylandSurfaceCreateInfoKHR { 3932 VkStructureType sType; 3933 const void* pNext; 3934 VkWaylandSurfaceCreateFlagsKHR flags; 3935 struct wl_display* display; 3936 struct wl_surface* surface; 3937 } VkWaylandSurfaceCreateInfoKHR; 3938 3939 3940 typedef VkResult (VKAPI_PTR *PFN_vkCreateWaylandSurfaceKHR)(VkInstance instance, const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); 3941 typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceWaylandPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct wl_display* display); 3942 3943 #ifndef VK_NO_PROTOTYPES 3944 VKAPI_ATTR VkResult VKAPI_CALL vkCreateWaylandSurfaceKHR( 3945 VkInstance instance, 3946 const VkWaylandSurfaceCreateInfoKHR* pCreateInfo, 3947 const VkAllocationCallbacks* pAllocator, 3948 VkSurfaceKHR* pSurface); 3949 3950 VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWaylandPresentationSupportKHR( 3951 VkPhysicalDevice physicalDevice, 3952 uint32_t queueFamilyIndex, 3953 struct wl_display* display); 3954 #endif 3955 #endif /* VK_USE_PLATFORM_WAYLAND_KHR */ 3956 3957 #ifdef VK_USE_PLATFORM_MIR_KHR 3958 #define VK_KHR_mir_surface 1 3959 #include <mir_toolkit/client_types.h> 3960 3961 #define VK_KHR_MIR_SURFACE_SPEC_VERSION 4 3962 #define VK_KHR_MIR_SURFACE_EXTENSION_NAME "VK_KHR_mir_surface" 3963 3964 typedef VkFlags VkMirSurfaceCreateFlagsKHR; 3965 3966 typedef struct VkMirSurfaceCreateInfoKHR { 3967 VkStructureType sType; 3968 const void* pNext; 3969 VkMirSurfaceCreateFlagsKHR flags; 3970 MirConnection* connection; 3971 MirSurface* mirSurface; 3972 } VkMirSurfaceCreateInfoKHR; 3973 3974 3975 typedef VkResult (VKAPI_PTR *PFN_vkCreateMirSurfaceKHR)(VkInstance instance, const VkMirSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); 3976 typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceMirPresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, MirConnection* connection); 3977 3978 #ifndef VK_NO_PROTOTYPES 3979 VKAPI_ATTR VkResult VKAPI_CALL vkCreateMirSurfaceKHR( 3980 VkInstance instance, 3981 const VkMirSurfaceCreateInfoKHR* pCreateInfo, 3982 const VkAllocationCallbacks* pAllocator, 3983 VkSurfaceKHR* pSurface); 3984 3985 VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceMirPresentationSupportKHR( 3986 VkPhysicalDevice physicalDevice, 3987 uint32_t queueFamilyIndex, 3988 MirConnection* connection); 3989 #endif 3990 #endif /* VK_USE_PLATFORM_MIR_KHR */ 3991 3992 #ifdef VK_USE_PLATFORM_ANDROID_KHR 3993 #define VK_KHR_android_surface 1 3994 #include <android/native_window.h> 3995 3996 #define VK_KHR_ANDROID_SURFACE_SPEC_VERSION 6 3997 #define VK_KHR_ANDROID_SURFACE_EXTENSION_NAME "VK_KHR_android_surface" 3998 3999 typedef VkFlags VkAndroidSurfaceCreateFlagsKHR; 4000 4001 typedef struct VkAndroidSurfaceCreateInfoKHR { 4002 VkStructureType sType; 4003 const void* pNext; 4004 VkAndroidSurfaceCreateFlagsKHR flags; 4005 ANativeWindow* window; 4006 } VkAndroidSurfaceCreateInfoKHR; 4007 4008 4009 typedef VkResult (VKAPI_PTR *PFN_vkCreateAndroidSurfaceKHR)(VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); 4010 4011 #ifndef VK_NO_PROTOTYPES 4012 VKAPI_ATTR VkResult VKAPI_CALL vkCreateAndroidSurfaceKHR( 4013 VkInstance instance, 4014 const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, 4015 const VkAllocationCallbacks* pAllocator, 4016 VkSurfaceKHR* pSurface); 4017 #endif 4018 #endif /* VK_USE_PLATFORM_ANDROID_KHR */ 4019 4020 #ifdef VK_USE_PLATFORM_WIN32_KHR 4021 #define VK_KHR_win32_surface 1 4022 #include <windows.h> 4023 4024 #define VK_KHR_WIN32_SURFACE_SPEC_VERSION 6 4025 #define VK_KHR_WIN32_SURFACE_EXTENSION_NAME "VK_KHR_win32_surface" 4026 4027 typedef VkFlags VkWin32SurfaceCreateFlagsKHR; 4028 4029 typedef struct VkWin32SurfaceCreateInfoKHR { 4030 VkStructureType sType; 4031 const void* pNext; 4032 VkWin32SurfaceCreateFlagsKHR flags; 4033 HINSTANCE hinstance; 4034 HWND hwnd; 4035 } VkWin32SurfaceCreateInfoKHR; 4036 4037 4038 typedef VkResult (VKAPI_PTR *PFN_vkCreateWin32SurfaceKHR)(VkInstance instance, const VkWin32SurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); 4039 typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceWin32PresentationSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex); 4040 4041 #ifndef VK_NO_PROTOTYPES 4042 VKAPI_ATTR VkResult VKAPI_CALL vkCreateWin32SurfaceKHR( 4043 VkInstance instance, 4044 const VkWin32SurfaceCreateInfoKHR* pCreateInfo, 4045 const VkAllocationCallbacks* pAllocator, 4046 VkSurfaceKHR* pSurface); 4047 4048 VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceWin32PresentationSupportKHR( 4049 VkPhysicalDevice physicalDevice, 4050 uint32_t queueFamilyIndex); 4051 #endif 4052 #endif /* VK_USE_PLATFORM_WIN32_KHR */ 4053 4054 #define VK_KHR_sampler_mirror_clamp_to_edge 1 4055 #define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 1 4056 #define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME "VK_KHR_sampler_mirror_clamp_to_edge" 4057 4058 4059 #define VK_KHR_get_physical_device_properties2 1 4060 #define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 1 4061 #define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2" 4062 4063 typedef struct VkPhysicalDeviceFeatures2KHR { 4064 VkStructureType sType; 4065 void* pNext; 4066 VkPhysicalDeviceFeatures features; 4067 } VkPhysicalDeviceFeatures2KHR; 4068 4069 typedef struct VkPhysicalDeviceProperties2KHR { 4070 VkStructureType sType; 4071 void* pNext; 4072 VkPhysicalDeviceProperties properties; 4073 } VkPhysicalDeviceProperties2KHR; 4074 4075 typedef struct VkFormatProperties2KHR { 4076 VkStructureType sType; 4077 void* pNext; 4078 VkFormatProperties formatProperties; 4079 } VkFormatProperties2KHR; 4080 4081 typedef struct VkImageFormatProperties2KHR { 4082 VkStructureType sType; 4083 void* pNext; 4084 VkImageFormatProperties imageFormatProperties; 4085 } VkImageFormatProperties2KHR; 4086 4087 typedef struct VkPhysicalDeviceImageFormatInfo2KHR { 4088 VkStructureType sType; 4089 const void* pNext; 4090 VkFormat format; 4091 VkImageType type; 4092 VkImageTiling tiling; 4093 VkImageUsageFlags usage; 4094 VkImageCreateFlags flags; 4095 } VkPhysicalDeviceImageFormatInfo2KHR; 4096 4097 typedef struct VkQueueFamilyProperties2KHR { 4098 VkStructureType sType; 4099 void* pNext; 4100 VkQueueFamilyProperties queueFamilyProperties; 4101 } VkQueueFamilyProperties2KHR; 4102 4103 typedef struct VkPhysicalDeviceMemoryProperties2KHR { 4104 VkStructureType sType; 4105 void* pNext; 4106 VkPhysicalDeviceMemoryProperties memoryProperties; 4107 } VkPhysicalDeviceMemoryProperties2KHR; 4108 4109 typedef struct VkSparseImageFormatProperties2KHR { 4110 VkStructureType sType; 4111 void* pNext; 4112 VkSparseImageFormatProperties properties; 4113 } VkSparseImageFormatProperties2KHR; 4114 4115 typedef struct VkPhysicalDeviceSparseImageFormatInfo2KHR { 4116 VkStructureType sType; 4117 const void* pNext; 4118 VkFormat format; 4119 VkImageType type; 4120 VkSampleCountFlagBits samples; 4121 VkImageUsageFlags usage; 4122 VkImageTiling tiling; 4123 } VkPhysicalDeviceSparseImageFormatInfo2KHR; 4124 4125 4126 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2KHR* pFeatures); 4127 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2KHR* pProperties); 4128 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2KHR)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2KHR* pFormatProperties); 4129 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2KHR* pImageFormatInfo, VkImageFormatProperties2KHR* pImageFormatProperties); 4130 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2KHR* pQueueFamilyProperties); 4131 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2KHR* pMemoryProperties); 4132 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2KHR* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2KHR* pProperties); 4133 4134 #ifndef VK_NO_PROTOTYPES 4135 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2KHR( 4136 VkPhysicalDevice physicalDevice, 4137 VkPhysicalDeviceFeatures2KHR* pFeatures); 4138 4139 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2KHR( 4140 VkPhysicalDevice physicalDevice, 4141 VkPhysicalDeviceProperties2KHR* pProperties); 4142 4143 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2KHR( 4144 VkPhysicalDevice physicalDevice, 4145 VkFormat format, 4146 VkFormatProperties2KHR* pFormatProperties); 4147 4148 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2KHR( 4149 VkPhysicalDevice physicalDevice, 4150 const VkPhysicalDeviceImageFormatInfo2KHR* pImageFormatInfo, 4151 VkImageFormatProperties2KHR* pImageFormatProperties); 4152 4153 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2KHR( 4154 VkPhysicalDevice physicalDevice, 4155 uint32_t* pQueueFamilyPropertyCount, 4156 VkQueueFamilyProperties2KHR* pQueueFamilyProperties); 4157 4158 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2KHR( 4159 VkPhysicalDevice physicalDevice, 4160 VkPhysicalDeviceMemoryProperties2KHR* pMemoryProperties); 4161 4162 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2KHR( 4163 VkPhysicalDevice physicalDevice, 4164 const VkPhysicalDeviceSparseImageFormatInfo2KHR* pFormatInfo, 4165 uint32_t* pPropertyCount, 4166 VkSparseImageFormatProperties2KHR* pProperties); 4167 #endif 4168 4169 #define VK_KHR_shader_draw_parameters 1 4170 #define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1 4171 #define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters" 4172 4173 4174 #define VK_KHR_maintenance1 1 4175 #define VK_KHR_MAINTENANCE1_SPEC_VERSION 1 4176 #define VK_KHR_MAINTENANCE1_EXTENSION_NAME "VK_KHR_maintenance1" 4177 4178 typedef VkFlags VkCommandPoolTrimFlagsKHR; 4179 4180 typedef void (VKAPI_PTR *PFN_vkTrimCommandPoolKHR)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlagsKHR flags); 4181 4182 #ifndef VK_NO_PROTOTYPES 4183 VKAPI_ATTR void VKAPI_CALL vkTrimCommandPoolKHR( 4184 VkDevice device, 4185 VkCommandPool commandPool, 4186 VkCommandPoolTrimFlagsKHR flags); 4187 #endif 4188 4189 #define VK_KHR_external_memory_capabilities 1 4190 #define VK_LUID_SIZE_KHR 8 4191 #define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1 4192 #define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_memory_capabilities" 4193 4194 4195 typedef enum VkExternalMemoryHandleTypeFlagBitsKHR { 4196 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001, 4197 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002, 4198 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004, 4199 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR = 0x00000008, 4200 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR = 0x00000010, 4201 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR = 0x00000020, 4202 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR = 0x00000040, 4203 VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 0x00000200, 4204 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080, 4205 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100, 4206 VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF 4207 } VkExternalMemoryHandleTypeFlagBitsKHR; 4208 typedef VkFlags VkExternalMemoryHandleTypeFlagsKHR; 4209 4210 typedef enum VkExternalMemoryFeatureFlagBitsKHR { 4211 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR = 0x00000001, 4212 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR = 0x00000002, 4213 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR = 0x00000004, 4214 VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF 4215 } VkExternalMemoryFeatureFlagBitsKHR; 4216 typedef VkFlags VkExternalMemoryFeatureFlagsKHR; 4217 4218 typedef struct VkExternalMemoryPropertiesKHR { 4219 VkExternalMemoryFeatureFlagsKHR externalMemoryFeatures; 4220 VkExternalMemoryHandleTypeFlagsKHR exportFromImportedHandleTypes; 4221 VkExternalMemoryHandleTypeFlagsKHR compatibleHandleTypes; 4222 } VkExternalMemoryPropertiesKHR; 4223 4224 typedef struct VkPhysicalDeviceExternalImageFormatInfoKHR { 4225 VkStructureType sType; 4226 const void* pNext; 4227 VkExternalMemoryHandleTypeFlagBitsKHR handleType; 4228 } VkPhysicalDeviceExternalImageFormatInfoKHR; 4229 4230 typedef struct VkExternalImageFormatPropertiesKHR { 4231 VkStructureType sType; 4232 void* pNext; 4233 VkExternalMemoryPropertiesKHR externalMemoryProperties; 4234 } VkExternalImageFormatPropertiesKHR; 4235 4236 typedef struct VkPhysicalDeviceExternalBufferInfoKHR { 4237 VkStructureType sType; 4238 const void* pNext; 4239 VkBufferCreateFlags flags; 4240 VkBufferUsageFlags usage; 4241 VkExternalMemoryHandleTypeFlagBitsKHR handleType; 4242 } VkPhysicalDeviceExternalBufferInfoKHR; 4243 4244 typedef struct VkExternalBufferPropertiesKHR { 4245 VkStructureType sType; 4246 void* pNext; 4247 VkExternalMemoryPropertiesKHR externalMemoryProperties; 4248 } VkExternalBufferPropertiesKHR; 4249 4250 typedef struct VkPhysicalDeviceIDPropertiesKHR { 4251 VkStructureType sType; 4252 void* pNext; 4253 uint8_t deviceUUID[VK_UUID_SIZE]; 4254 uint8_t driverUUID[VK_UUID_SIZE]; 4255 uint8_t deviceLUID[VK_LUID_SIZE_KHR]; 4256 uint32_t deviceNodeMask; 4257 VkBool32 deviceLUIDValid; 4258 } VkPhysicalDeviceIDPropertiesKHR; 4259 4260 4261 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfoKHR* pExternalBufferInfo, VkExternalBufferPropertiesKHR* pExternalBufferProperties); 4262 4263 #ifndef VK_NO_PROTOTYPES 4264 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferPropertiesKHR( 4265 VkPhysicalDevice physicalDevice, 4266 const VkPhysicalDeviceExternalBufferInfoKHR* pExternalBufferInfo, 4267 VkExternalBufferPropertiesKHR* pExternalBufferProperties); 4268 #endif 4269 4270 #define VK_KHR_external_memory 1 4271 #define VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION 1 4272 #define VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME "VK_KHR_external_memory" 4273 #define VK_QUEUE_FAMILY_EXTERNAL_KHR (~0U-1) 4274 4275 typedef struct VkExternalMemoryImageCreateInfoKHR { 4276 VkStructureType sType; 4277 const void* pNext; 4278 VkExternalMemoryHandleTypeFlagsKHR handleTypes; 4279 } VkExternalMemoryImageCreateInfoKHR; 4280 4281 typedef struct VkExternalMemoryBufferCreateInfoKHR { 4282 VkStructureType sType; 4283 const void* pNext; 4284 VkExternalMemoryHandleTypeFlagsKHR handleTypes; 4285 } VkExternalMemoryBufferCreateInfoKHR; 4286 4287 typedef struct VkExportMemoryAllocateInfoKHR { 4288 VkStructureType sType; 4289 const void* pNext; 4290 VkExternalMemoryHandleTypeFlagsKHR handleTypes; 4291 } VkExportMemoryAllocateInfoKHR; 4292 4293 4294 4295 #ifdef VK_USE_PLATFORM_WIN32_KHR 4296 #define VK_KHR_external_memory_win32 1 4297 #define VK_KHR_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1 4298 #define VK_KHR_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_KHR_external_memory_win32" 4299 4300 typedef struct VkImportMemoryWin32HandleInfoKHR { 4301 VkStructureType sType; 4302 const void* pNext; 4303 VkExternalMemoryHandleTypeFlagBitsKHR handleType; 4304 HANDLE handle; 4305 LPCWSTR name; 4306 } VkImportMemoryWin32HandleInfoKHR; 4307 4308 typedef struct VkExportMemoryWin32HandleInfoKHR { 4309 VkStructureType sType; 4310 const void* pNext; 4311 const SECURITY_ATTRIBUTES* pAttributes; 4312 DWORD dwAccess; 4313 LPCWSTR name; 4314 } VkExportMemoryWin32HandleInfoKHR; 4315 4316 typedef struct VkMemoryWin32HandlePropertiesKHR { 4317 VkStructureType sType; 4318 void* pNext; 4319 uint32_t memoryTypeBits; 4320 } VkMemoryWin32HandlePropertiesKHR; 4321 4322 typedef struct VkMemoryGetWin32HandleInfoKHR { 4323 VkStructureType sType; 4324 const void* pNext; 4325 VkDeviceMemory memory; 4326 VkExternalMemoryHandleTypeFlagBitsKHR handleType; 4327 } VkMemoryGetWin32HandleInfoKHR; 4328 4329 4330 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandleKHR)(VkDevice device, const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle); 4331 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandlePropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBitsKHR handleType, HANDLE handle, VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties); 4332 4333 #ifndef VK_NO_PROTOTYPES 4334 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandleKHR( 4335 VkDevice device, 4336 const VkMemoryGetWin32HandleInfoKHR* pGetWin32HandleInfo, 4337 HANDLE* pHandle); 4338 4339 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandlePropertiesKHR( 4340 VkDevice device, 4341 VkExternalMemoryHandleTypeFlagBitsKHR handleType, 4342 HANDLE handle, 4343 VkMemoryWin32HandlePropertiesKHR* pMemoryWin32HandleProperties); 4344 #endif 4345 #endif /* VK_USE_PLATFORM_WIN32_KHR */ 4346 4347 #define VK_KHR_external_memory_fd 1 4348 #define VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION 1 4349 #define VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME "VK_KHR_external_memory_fd" 4350 4351 typedef struct VkImportMemoryFdInfoKHR { 4352 VkStructureType sType; 4353 const void* pNext; 4354 VkExternalMemoryHandleTypeFlagBitsKHR handleType; 4355 int fd; 4356 } VkImportMemoryFdInfoKHR; 4357 4358 typedef struct VkMemoryFdPropertiesKHR { 4359 VkStructureType sType; 4360 void* pNext; 4361 uint32_t memoryTypeBits; 4362 } VkMemoryFdPropertiesKHR; 4363 4364 typedef struct VkMemoryGetFdInfoKHR { 4365 VkStructureType sType; 4366 const void* pNext; 4367 VkDeviceMemory memory; 4368 VkExternalMemoryHandleTypeFlagBitsKHR handleType; 4369 } VkMemoryGetFdInfoKHR; 4370 4371 4372 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdKHR)(VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd); 4373 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdPropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBitsKHR handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties); 4374 4375 #ifndef VK_NO_PROTOTYPES 4376 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdKHR( 4377 VkDevice device, 4378 const VkMemoryGetFdInfoKHR* pGetFdInfo, 4379 int* pFd); 4380 4381 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdPropertiesKHR( 4382 VkDevice device, 4383 VkExternalMemoryHandleTypeFlagBitsKHR handleType, 4384 int fd, 4385 VkMemoryFdPropertiesKHR* pMemoryFdProperties); 4386 #endif 4387 4388 #ifdef VK_USE_PLATFORM_WIN32_KHR 4389 #define VK_KHR_win32_keyed_mutex 1 4390 #define VK_KHR_WIN32_KEYED_MUTEX_SPEC_VERSION 1 4391 #define VK_KHR_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_KHR_win32_keyed_mutex" 4392 4393 typedef struct VkWin32KeyedMutexAcquireReleaseInfoKHR { 4394 VkStructureType sType; 4395 const void* pNext; 4396 uint32_t acquireCount; 4397 const VkDeviceMemory* pAcquireSyncs; 4398 const uint64_t* pAcquireKeys; 4399 const uint32_t* pAcquireTimeouts; 4400 uint32_t releaseCount; 4401 const VkDeviceMemory* pReleaseSyncs; 4402 const uint64_t* pReleaseKeys; 4403 } VkWin32KeyedMutexAcquireReleaseInfoKHR; 4404 4405 4406 #endif /* VK_USE_PLATFORM_WIN32_KHR */ 4407 4408 #define VK_KHR_external_semaphore_capabilities 1 4409 #define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION 1 4410 #define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_semaphore_capabilities" 4411 4412 4413 typedef enum VkExternalSemaphoreHandleTypeFlagBitsKHR { 4414 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001, 4415 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002, 4416 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004, 4417 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR = 0x00000008, 4418 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR = 0x00000010, 4419 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF 4420 } VkExternalSemaphoreHandleTypeFlagBitsKHR; 4421 typedef VkFlags VkExternalSemaphoreHandleTypeFlagsKHR; 4422 4423 typedef enum VkExternalSemaphoreFeatureFlagBitsKHR { 4424 VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR = 0x00000001, 4425 VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR = 0x00000002, 4426 VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF 4427 } VkExternalSemaphoreFeatureFlagBitsKHR; 4428 typedef VkFlags VkExternalSemaphoreFeatureFlagsKHR; 4429 4430 typedef struct VkPhysicalDeviceExternalSemaphoreInfoKHR { 4431 VkStructureType sType; 4432 const void* pNext; 4433 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType; 4434 } VkPhysicalDeviceExternalSemaphoreInfoKHR; 4435 4436 typedef struct VkExternalSemaphorePropertiesKHR { 4437 VkStructureType sType; 4438 void* pNext; 4439 VkExternalSemaphoreHandleTypeFlagsKHR exportFromImportedHandleTypes; 4440 VkExternalSemaphoreHandleTypeFlagsKHR compatibleHandleTypes; 4441 VkExternalSemaphoreFeatureFlagsKHR externalSemaphoreFeatures; 4442 } VkExternalSemaphorePropertiesKHR; 4443 4444 4445 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfoKHR* pExternalSemaphoreInfo, VkExternalSemaphorePropertiesKHR* pExternalSemaphoreProperties); 4446 4447 #ifndef VK_NO_PROTOTYPES 4448 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( 4449 VkPhysicalDevice physicalDevice, 4450 const VkPhysicalDeviceExternalSemaphoreInfoKHR* pExternalSemaphoreInfo, 4451 VkExternalSemaphorePropertiesKHR* pExternalSemaphoreProperties); 4452 #endif 4453 4454 #define VK_KHR_external_semaphore 1 4455 #define VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION 1 4456 #define VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_KHR_external_semaphore" 4457 4458 4459 typedef enum VkSemaphoreImportFlagBitsKHR { 4460 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR = 0x00000001, 4461 VK_SEMAPHORE_IMPORT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF 4462 } VkSemaphoreImportFlagBitsKHR; 4463 typedef VkFlags VkSemaphoreImportFlagsKHR; 4464 4465 typedef struct VkExportSemaphoreCreateInfoKHR { 4466 VkStructureType sType; 4467 const void* pNext; 4468 VkExternalSemaphoreHandleTypeFlagsKHR handleTypes; 4469 } VkExportSemaphoreCreateInfoKHR; 4470 4471 4472 4473 #ifdef VK_USE_PLATFORM_WIN32_KHR 4474 #define VK_KHR_external_semaphore_win32 1 4475 #define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_SPEC_VERSION 1 4476 #define VK_KHR_EXTERNAL_SEMAPHORE_WIN32_EXTENSION_NAME "VK_KHR_external_semaphore_win32" 4477 4478 typedef struct VkImportSemaphoreWin32HandleInfoKHR { 4479 VkStructureType sType; 4480 const void* pNext; 4481 VkSemaphore semaphore; 4482 VkSemaphoreImportFlagsKHR flags; 4483 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType; 4484 HANDLE handle; 4485 LPCWSTR name; 4486 } VkImportSemaphoreWin32HandleInfoKHR; 4487 4488 typedef struct VkExportSemaphoreWin32HandleInfoKHR { 4489 VkStructureType sType; 4490 const void* pNext; 4491 const SECURITY_ATTRIBUTES* pAttributes; 4492 DWORD dwAccess; 4493 LPCWSTR name; 4494 } VkExportSemaphoreWin32HandleInfoKHR; 4495 4496 typedef struct VkD3D12FenceSubmitInfoKHR { 4497 VkStructureType sType; 4498 const void* pNext; 4499 uint32_t waitSemaphoreValuesCount; 4500 const uint64_t* pWaitSemaphoreValues; 4501 uint32_t signalSemaphoreValuesCount; 4502 const uint64_t* pSignalSemaphoreValues; 4503 } VkD3D12FenceSubmitInfoKHR; 4504 4505 typedef struct VkSemaphoreGetWin32HandleInfoKHR { 4506 VkStructureType sType; 4507 const void* pNext; 4508 VkSemaphore semaphore; 4509 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType; 4510 } VkSemaphoreGetWin32HandleInfoKHR; 4511 4512 4513 typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreWin32HandleKHR)(VkDevice device, const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo); 4514 typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreWin32HandleKHR)(VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle); 4515 4516 #ifndef VK_NO_PROTOTYPES 4517 VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreWin32HandleKHR( 4518 VkDevice device, 4519 const VkImportSemaphoreWin32HandleInfoKHR* pImportSemaphoreWin32HandleInfo); 4520 4521 VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreWin32HandleKHR( 4522 VkDevice device, 4523 const VkSemaphoreGetWin32HandleInfoKHR* pGetWin32HandleInfo, 4524 HANDLE* pHandle); 4525 #endif 4526 #endif /* VK_USE_PLATFORM_WIN32_KHR */ 4527 4528 #define VK_KHR_external_semaphore_fd 1 4529 #define VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION 1 4530 #define VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME "VK_KHR_external_semaphore_fd" 4531 4532 typedef struct VkImportSemaphoreFdInfoKHR { 4533 VkStructureType sType; 4534 const void* pNext; 4535 VkSemaphore semaphore; 4536 VkSemaphoreImportFlagsKHR flags; 4537 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType; 4538 int fd; 4539 } VkImportSemaphoreFdInfoKHR; 4540 4541 typedef struct VkSemaphoreGetFdInfoKHR { 4542 VkStructureType sType; 4543 const void* pNext; 4544 VkSemaphore semaphore; 4545 VkExternalSemaphoreHandleTypeFlagBitsKHR handleType; 4546 } VkSemaphoreGetFdInfoKHR; 4547 4548 4549 typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreFdKHR)(VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo); 4550 typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreFdKHR)(VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd); 4551 4552 #ifndef VK_NO_PROTOTYPES 4553 VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreFdKHR( 4554 VkDevice device, 4555 const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo); 4556 4557 VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreFdKHR( 4558 VkDevice device, 4559 const VkSemaphoreGetFdInfoKHR* pGetFdInfo, 4560 int* pFd); 4561 #endif 4562 4563 #define VK_KHR_push_descriptor 1 4564 #define VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION 1 4565 #define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor" 4566 4567 typedef struct VkPhysicalDevicePushDescriptorPropertiesKHR { 4568 VkStructureType sType; 4569 void* pNext; 4570 uint32_t maxPushDescriptors; 4571 } VkPhysicalDevicePushDescriptorPropertiesKHR; 4572 4573 4574 typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetKHR)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites); 4575 4576 #ifndef VK_NO_PROTOTYPES 4577 VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetKHR( 4578 VkCommandBuffer commandBuffer, 4579 VkPipelineBindPoint pipelineBindPoint, 4580 VkPipelineLayout layout, 4581 uint32_t set, 4582 uint32_t descriptorWriteCount, 4583 const VkWriteDescriptorSet* pDescriptorWrites); 4584 #endif 4585 4586 #define VK_KHR_16bit_storage 1 4587 #define VK_KHR_16BIT_STORAGE_SPEC_VERSION 1 4588 #define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage" 4589 4590 typedef struct VkPhysicalDevice16BitStorageFeaturesKHR { 4591 VkStructureType sType; 4592 void* pNext; 4593 VkBool32 storageBuffer16BitAccess; 4594 VkBool32 uniformAndStorageBuffer16BitAccess; 4595 VkBool32 storagePushConstant16; 4596 VkBool32 storageInputOutput16; 4597 } VkPhysicalDevice16BitStorageFeaturesKHR; 4598 4599 4600 4601 #define VK_KHR_incremental_present 1 4602 #define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 1 4603 #define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present" 4604 4605 typedef struct VkRectLayerKHR { 4606 VkOffset2D offset; 4607 VkExtent2D extent; 4608 uint32_t layer; 4609 } VkRectLayerKHR; 4610 4611 typedef struct VkPresentRegionKHR { 4612 uint32_t rectangleCount; 4613 const VkRectLayerKHR* pRectangles; 4614 } VkPresentRegionKHR; 4615 4616 typedef struct VkPresentRegionsKHR { 4617 VkStructureType sType; 4618 const void* pNext; 4619 uint32_t swapchainCount; 4620 const VkPresentRegionKHR* pRegions; 4621 } VkPresentRegionsKHR; 4622 4623 4624 4625 #define VK_KHR_descriptor_update_template 1 4626 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorUpdateTemplateKHR) 4627 4628 #define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1 4629 #define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME "VK_KHR_descriptor_update_template" 4630 4631 4632 typedef enum VkDescriptorUpdateTemplateTypeKHR { 4633 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = 0, 4634 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1, 4635 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_BEGIN_RANGE_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR, 4636 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_END_RANGE_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR, 4637 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_RANGE_SIZE_KHR = (VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR - VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR + 1), 4638 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF 4639 } VkDescriptorUpdateTemplateTypeKHR; 4640 4641 typedef VkFlags VkDescriptorUpdateTemplateCreateFlagsKHR; 4642 4643 typedef struct VkDescriptorUpdateTemplateEntryKHR { 4644 uint32_t dstBinding; 4645 uint32_t dstArrayElement; 4646 uint32_t descriptorCount; 4647 VkDescriptorType descriptorType; 4648 size_t offset; 4649 size_t stride; 4650 } VkDescriptorUpdateTemplateEntryKHR; 4651 4652 typedef struct VkDescriptorUpdateTemplateCreateInfoKHR { 4653 VkStructureType sType; 4654 void* pNext; 4655 VkDescriptorUpdateTemplateCreateFlagsKHR flags; 4656 uint32_t descriptorUpdateEntryCount; 4657 const VkDescriptorUpdateTemplateEntryKHR* pDescriptorUpdateEntries; 4658 VkDescriptorUpdateTemplateTypeKHR templateType; 4659 VkDescriptorSetLayout descriptorSetLayout; 4660 VkPipelineBindPoint pipelineBindPoint; 4661 VkPipelineLayout pipelineLayout; 4662 uint32_t set; 4663 } VkDescriptorUpdateTemplateCreateInfoKHR; 4664 4665 4666 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplateKHR)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplateKHR* pDescriptorUpdateTemplate); 4667 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplateKHR)(VkDevice device, VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator); 4668 typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplateKHR)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate, const void* pData); 4669 typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplateKHR)(VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData); 4670 4671 #ifndef VK_NO_PROTOTYPES 4672 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplateKHR( 4673 VkDevice device, 4674 const VkDescriptorUpdateTemplateCreateInfoKHR* pCreateInfo, 4675 const VkAllocationCallbacks* pAllocator, 4676 VkDescriptorUpdateTemplateKHR* pDescriptorUpdateTemplate); 4677 4678 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplateKHR( 4679 VkDevice device, 4680 VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate, 4681 const VkAllocationCallbacks* pAllocator); 4682 4683 VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplateKHR( 4684 VkDevice device, 4685 VkDescriptorSet descriptorSet, 4686 VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate, 4687 const void* pData); 4688 4689 VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplateKHR( 4690 VkCommandBuffer commandBuffer, 4691 VkDescriptorUpdateTemplateKHR descriptorUpdateTemplate, 4692 VkPipelineLayout layout, 4693 uint32_t set, 4694 const void* pData); 4695 #endif 4696 4697 #define VK_KHR_shared_presentable_image 1 4698 #define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1 4699 #define VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME "VK_KHR_shared_presentable_image" 4700 4701 typedef struct VkSharedPresentSurfaceCapabilitiesKHR { 4702 VkStructureType sType; 4703 void* pNext; 4704 VkImageUsageFlags sharedPresentSupportedUsageFlags; 4705 } VkSharedPresentSurfaceCapabilitiesKHR; 4706 4707 4708 typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainStatusKHR)(VkDevice device, VkSwapchainKHR swapchain); 4709 4710 #ifndef VK_NO_PROTOTYPES 4711 VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainStatusKHR( 4712 VkDevice device, 4713 VkSwapchainKHR swapchain); 4714 #endif 4715 4716 #define VK_KHR_external_fence_capabilities 1 4717 #define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION 1 4718 #define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_fence_capabilities" 4719 4720 4721 typedef enum VkExternalFenceHandleTypeFlagBitsKHR { 4722 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = 0x00000001, 4723 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = 0x00000002, 4724 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = 0x00000004, 4725 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR = 0x00000008, 4726 VK_EXTERNAL_FENCE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF 4727 } VkExternalFenceHandleTypeFlagBitsKHR; 4728 typedef VkFlags VkExternalFenceHandleTypeFlagsKHR; 4729 4730 typedef enum VkExternalFenceFeatureFlagBitsKHR { 4731 VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR = 0x00000001, 4732 VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR = 0x00000002, 4733 VK_EXTERNAL_FENCE_FEATURE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF 4734 } VkExternalFenceFeatureFlagBitsKHR; 4735 typedef VkFlags VkExternalFenceFeatureFlagsKHR; 4736 4737 typedef struct VkPhysicalDeviceExternalFenceInfoKHR { 4738 VkStructureType sType; 4739 const void* pNext; 4740 VkExternalFenceHandleTypeFlagBitsKHR handleType; 4741 } VkPhysicalDeviceExternalFenceInfoKHR; 4742 4743 typedef struct VkExternalFencePropertiesKHR { 4744 VkStructureType sType; 4745 void* pNext; 4746 VkExternalFenceHandleTypeFlagsKHR exportFromImportedHandleTypes; 4747 VkExternalFenceHandleTypeFlagsKHR compatibleHandleTypes; 4748 VkExternalFenceFeatureFlagsKHR externalFenceFeatures; 4749 } VkExternalFencePropertiesKHR; 4750 4751 4752 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfoKHR* pExternalFenceInfo, VkExternalFencePropertiesKHR* pExternalFenceProperties); 4753 4754 #ifndef VK_NO_PROTOTYPES 4755 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFencePropertiesKHR( 4756 VkPhysicalDevice physicalDevice, 4757 const VkPhysicalDeviceExternalFenceInfoKHR* pExternalFenceInfo, 4758 VkExternalFencePropertiesKHR* pExternalFenceProperties); 4759 #endif 4760 4761 #define VK_KHR_external_fence 1 4762 #define VK_KHR_EXTERNAL_FENCE_SPEC_VERSION 1 4763 #define VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME "VK_KHR_external_fence" 4764 4765 4766 typedef enum VkFenceImportFlagBitsKHR { 4767 VK_FENCE_IMPORT_TEMPORARY_BIT_KHR = 0x00000001, 4768 VK_FENCE_IMPORT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF 4769 } VkFenceImportFlagBitsKHR; 4770 typedef VkFlags VkFenceImportFlagsKHR; 4771 4772 typedef struct VkExportFenceCreateInfoKHR { 4773 VkStructureType sType; 4774 const void* pNext; 4775 VkExternalFenceHandleTypeFlagsKHR handleTypes; 4776 } VkExportFenceCreateInfoKHR; 4777 4778 4779 4780 #ifdef VK_USE_PLATFORM_WIN32_KHR 4781 #define VK_KHR_external_fence_win32 1 4782 #define VK_KHR_EXTERNAL_FENCE_WIN32_SPEC_VERSION 1 4783 #define VK_KHR_EXTERNAL_FENCE_WIN32_EXTENSION_NAME "VK_KHR_external_fence_win32" 4784 4785 typedef struct VkImportFenceWin32HandleInfoKHR { 4786 VkStructureType sType; 4787 const void* pNext; 4788 VkFence fence; 4789 VkFenceImportFlagsKHR flags; 4790 VkExternalFenceHandleTypeFlagBitsKHR handleType; 4791 HANDLE handle; 4792 LPCWSTR name; 4793 } VkImportFenceWin32HandleInfoKHR; 4794 4795 typedef struct VkExportFenceWin32HandleInfoKHR { 4796 VkStructureType sType; 4797 const void* pNext; 4798 const SECURITY_ATTRIBUTES* pAttributes; 4799 DWORD dwAccess; 4800 LPCWSTR name; 4801 } VkExportFenceWin32HandleInfoKHR; 4802 4803 typedef struct VkFenceGetWin32HandleInfoKHR { 4804 VkStructureType sType; 4805 const void* pNext; 4806 VkFence fence; 4807 VkExternalFenceHandleTypeFlagBitsKHR handleType; 4808 } VkFenceGetWin32HandleInfoKHR; 4809 4810 4811 typedef VkResult (VKAPI_PTR *PFN_vkImportFenceWin32HandleKHR)(VkDevice device, const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo); 4812 typedef VkResult (VKAPI_PTR *PFN_vkGetFenceWin32HandleKHR)(VkDevice device, const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, HANDLE* pHandle); 4813 4814 #ifndef VK_NO_PROTOTYPES 4815 VKAPI_ATTR VkResult VKAPI_CALL vkImportFenceWin32HandleKHR( 4816 VkDevice device, 4817 const VkImportFenceWin32HandleInfoKHR* pImportFenceWin32HandleInfo); 4818 4819 VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceWin32HandleKHR( 4820 VkDevice device, 4821 const VkFenceGetWin32HandleInfoKHR* pGetWin32HandleInfo, 4822 HANDLE* pHandle); 4823 #endif 4824 #endif /* VK_USE_PLATFORM_WIN32_KHR */ 4825 4826 #define VK_KHR_external_fence_fd 1 4827 #define VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION 1 4828 #define VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME "VK_KHR_external_fence_fd" 4829 4830 typedef struct VkImportFenceFdInfoKHR { 4831 VkStructureType sType; 4832 const void* pNext; 4833 VkFence fence; 4834 VkFenceImportFlagsKHR flags; 4835 VkExternalFenceHandleTypeFlagBitsKHR handleType; 4836 int fd; 4837 } VkImportFenceFdInfoKHR; 4838 4839 typedef struct VkFenceGetFdInfoKHR { 4840 VkStructureType sType; 4841 const void* pNext; 4842 VkFence fence; 4843 VkExternalFenceHandleTypeFlagBitsKHR handleType; 4844 } VkFenceGetFdInfoKHR; 4845 4846 4847 typedef VkResult (VKAPI_PTR *PFN_vkImportFenceFdKHR)(VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo); 4848 typedef VkResult (VKAPI_PTR *PFN_vkGetFenceFdKHR)(VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd); 4849 4850 #ifndef VK_NO_PROTOTYPES 4851 VKAPI_ATTR VkResult VKAPI_CALL vkImportFenceFdKHR( 4852 VkDevice device, 4853 const VkImportFenceFdInfoKHR* pImportFenceFdInfo); 4854 4855 VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceFdKHR( 4856 VkDevice device, 4857 const VkFenceGetFdInfoKHR* pGetFdInfo, 4858 int* pFd); 4859 #endif 4860 4861 #define VK_KHR_maintenance2 1 4862 #define VK_KHR_MAINTENANCE2_SPEC_VERSION 1 4863 #define VK_KHR_MAINTENANCE2_EXTENSION_NAME "VK_KHR_maintenance2" 4864 4865 4866 typedef enum VkPointClippingBehaviorKHR { 4867 VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = 0, 4868 VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = 1, 4869 VK_POINT_CLIPPING_BEHAVIOR_BEGIN_RANGE_KHR = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR, 4870 VK_POINT_CLIPPING_BEHAVIOR_END_RANGE_KHR = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR, 4871 VK_POINT_CLIPPING_BEHAVIOR_RANGE_SIZE_KHR = (VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR - VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR + 1), 4872 VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM_KHR = 0x7FFFFFFF 4873 } VkPointClippingBehaviorKHR; 4874 4875 typedef enum VkTessellationDomainOriginKHR { 4876 VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = 0, 4877 VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = 1, 4878 VK_TESSELLATION_DOMAIN_ORIGIN_BEGIN_RANGE_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR, 4879 VK_TESSELLATION_DOMAIN_ORIGIN_END_RANGE_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR, 4880 VK_TESSELLATION_DOMAIN_ORIGIN_RANGE_SIZE_KHR = (VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR - VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR + 1), 4881 VK_TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM_KHR = 0x7FFFFFFF 4882 } VkTessellationDomainOriginKHR; 4883 4884 typedef struct VkPhysicalDevicePointClippingPropertiesKHR { 4885 VkStructureType sType; 4886 void* pNext; 4887 VkPointClippingBehaviorKHR pointClippingBehavior; 4888 } VkPhysicalDevicePointClippingPropertiesKHR; 4889 4890 typedef struct VkInputAttachmentAspectReferenceKHR { 4891 uint32_t subpass; 4892 uint32_t inputAttachmentIndex; 4893 VkImageAspectFlags aspectMask; 4894 } VkInputAttachmentAspectReferenceKHR; 4895 4896 typedef struct VkRenderPassInputAttachmentAspectCreateInfoKHR { 4897 VkStructureType sType; 4898 const void* pNext; 4899 uint32_t aspectReferenceCount; 4900 const VkInputAttachmentAspectReferenceKHR* pAspectReferences; 4901 } VkRenderPassInputAttachmentAspectCreateInfoKHR; 4902 4903 typedef struct VkImageViewUsageCreateInfoKHR { 4904 VkStructureType sType; 4905 const void* pNext; 4906 VkImageUsageFlags usage; 4907 } VkImageViewUsageCreateInfoKHR; 4908 4909 typedef struct VkPipelineTessellationDomainOriginStateCreateInfoKHR { 4910 VkStructureType sType; 4911 const void* pNext; 4912 VkTessellationDomainOriginKHR domainOrigin; 4913 } VkPipelineTessellationDomainOriginStateCreateInfoKHR; 4914 4915 4916 4917 #define VK_KHR_get_surface_capabilities2 1 4918 #define VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION 1 4919 #define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2" 4920 4921 typedef struct VkPhysicalDeviceSurfaceInfo2KHR { 4922 VkStructureType sType; 4923 const void* pNext; 4924 VkSurfaceKHR surface; 4925 } VkPhysicalDeviceSurfaceInfo2KHR; 4926 4927 typedef struct VkSurfaceCapabilities2KHR { 4928 VkStructureType sType; 4929 void* pNext; 4930 VkSurfaceCapabilitiesKHR surfaceCapabilities; 4931 } VkSurfaceCapabilities2KHR; 4932 4933 typedef struct VkSurfaceFormat2KHR { 4934 VkStructureType sType; 4935 void* pNext; 4936 VkSurfaceFormatKHR surfaceFormat; 4937 } VkSurfaceFormat2KHR; 4938 4939 4940 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities); 4941 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats); 4942 4943 #ifndef VK_NO_PROTOTYPES 4944 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2KHR( 4945 VkPhysicalDevice physicalDevice, 4946 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, 4947 VkSurfaceCapabilities2KHR* pSurfaceCapabilities); 4948 4949 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormats2KHR( 4950 VkPhysicalDevice physicalDevice, 4951 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, 4952 uint32_t* pSurfaceFormatCount, 4953 VkSurfaceFormat2KHR* pSurfaceFormats); 4954 #endif 4955 4956 #define VK_KHR_variable_pointers 1 4957 #define VK_KHR_VARIABLE_POINTERS_SPEC_VERSION 1 4958 #define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers" 4959 4960 typedef struct VkPhysicalDeviceVariablePointerFeaturesKHR { 4961 VkStructureType sType; 4962 void* pNext; 4963 VkBool32 variablePointersStorageBuffer; 4964 VkBool32 variablePointers; 4965 } VkPhysicalDeviceVariablePointerFeaturesKHR; 4966 4967 4968 4969 #define VK_KHR_dedicated_allocation 1 4970 #define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3 4971 #define VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_KHR_dedicated_allocation" 4972 4973 typedef struct VkMemoryDedicatedRequirementsKHR { 4974 VkStructureType sType; 4975 void* pNext; 4976 VkBool32 prefersDedicatedAllocation; 4977 VkBool32 requiresDedicatedAllocation; 4978 } VkMemoryDedicatedRequirementsKHR; 4979 4980 typedef struct VkMemoryDedicatedAllocateInfoKHR { 4981 VkStructureType sType; 4982 const void* pNext; 4983 VkImage image; 4984 VkBuffer buffer; 4985 } VkMemoryDedicatedAllocateInfoKHR; 4986 4987 4988 4989 #define VK_KHR_storage_buffer_storage_class 1 4990 #define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION 1 4991 #define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME "VK_KHR_storage_buffer_storage_class" 4992 4993 4994 #define VK_KHR_relaxed_block_layout 1 4995 #define VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION 1 4996 #define VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME "VK_KHR_relaxed_block_layout" 4997 4998 4999 #define VK_KHR_get_memory_requirements2 1 5000 #define VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION 1 5001 #define VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME "VK_KHR_get_memory_requirements2" 5002 5003 typedef struct VkBufferMemoryRequirementsInfo2KHR { 5004 VkStructureType sType; 5005 const void* pNext; 5006 VkBuffer buffer; 5007 } VkBufferMemoryRequirementsInfo2KHR; 5008 5009 typedef struct VkImageMemoryRequirementsInfo2KHR { 5010 VkStructureType sType; 5011 const void* pNext; 5012 VkImage image; 5013 } VkImageMemoryRequirementsInfo2KHR; 5014 5015 typedef struct VkImageSparseMemoryRequirementsInfo2KHR { 5016 VkStructureType sType; 5017 const void* pNext; 5018 VkImage image; 5019 } VkImageSparseMemoryRequirementsInfo2KHR; 5020 5021 typedef struct VkMemoryRequirements2KHR { 5022 VkStructureType sType; 5023 void* pNext; 5024 VkMemoryRequirements memoryRequirements; 5025 } VkMemoryRequirements2KHR; 5026 5027 typedef struct VkSparseImageMemoryRequirements2KHR { 5028 VkStructureType sType; 5029 void* pNext; 5030 VkSparseImageMemoryRequirements memoryRequirements; 5031 } VkSparseImageMemoryRequirements2KHR; 5032 5033 5034 typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2KHR)(VkDevice device, const VkImageMemoryRequirementsInfo2KHR* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements); 5035 typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2KHR)(VkDevice device, const VkBufferMemoryRequirementsInfo2KHR* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements); 5036 typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2KHR)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2KHR* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2KHR* pSparseMemoryRequirements); 5037 5038 #ifndef VK_NO_PROTOTYPES 5039 VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2KHR( 5040 VkDevice device, 5041 const VkImageMemoryRequirementsInfo2KHR* pInfo, 5042 VkMemoryRequirements2KHR* pMemoryRequirements); 5043 5044 VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2KHR( 5045 VkDevice device, 5046 const VkBufferMemoryRequirementsInfo2KHR* pInfo, 5047 VkMemoryRequirements2KHR* pMemoryRequirements); 5048 5049 VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2KHR( 5050 VkDevice device, 5051 const VkImageSparseMemoryRequirementsInfo2KHR* pInfo, 5052 uint32_t* pSparseMemoryRequirementCount, 5053 VkSparseImageMemoryRequirements2KHR* pSparseMemoryRequirements); 5054 #endif 5055 5056 #define VK_KHR_image_format_list 1 5057 #define VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION 1 5058 #define VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME "VK_KHR_image_format_list" 5059 5060 typedef struct VkImageFormatListCreateInfoKHR { 5061 VkStructureType sType; 5062 const void* pNext; 5063 uint32_t viewFormatCount; 5064 const VkFormat* pViewFormats; 5065 } VkImageFormatListCreateInfoKHR; 5066 5067 5068 5069 #define VK_KHR_sampler_ycbcr_conversion 1 5070 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSamplerYcbcrConversionKHR) 5071 5072 #define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 1 5073 #define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion" 5074 5075 5076 typedef enum VkSamplerYcbcrModelConversionKHR { 5077 VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR = 0, 5078 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR = 1, 5079 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = 2, 5080 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = 3, 5081 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = 4, 5082 VK_SAMPLER_YCBCR_MODEL_CONVERSION_BEGIN_RANGE_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR, 5083 VK_SAMPLER_YCBCR_MODEL_CONVERSION_END_RANGE_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR, 5084 VK_SAMPLER_YCBCR_MODEL_CONVERSION_RANGE_SIZE_KHR = (VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR - VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR + 1), 5085 VK_SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM_KHR = 0x7FFFFFFF 5086 } VkSamplerYcbcrModelConversionKHR; 5087 5088 typedef enum VkSamplerYcbcrRangeKHR { 5089 VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = 0, 5090 VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = 1, 5091 VK_SAMPLER_YCBCR_RANGE_BEGIN_RANGE_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR, 5092 VK_SAMPLER_YCBCR_RANGE_END_RANGE_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR, 5093 VK_SAMPLER_YCBCR_RANGE_RANGE_SIZE_KHR = (VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR - VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR + 1), 5094 VK_SAMPLER_YCBCR_RANGE_MAX_ENUM_KHR = 0x7FFFFFFF 5095 } VkSamplerYcbcrRangeKHR; 5096 5097 typedef enum VkChromaLocationKHR { 5098 VK_CHROMA_LOCATION_COSITED_EVEN_KHR = 0, 5099 VK_CHROMA_LOCATION_MIDPOINT_KHR = 1, 5100 VK_CHROMA_LOCATION_BEGIN_RANGE_KHR = VK_CHROMA_LOCATION_COSITED_EVEN_KHR, 5101 VK_CHROMA_LOCATION_END_RANGE_KHR = VK_CHROMA_LOCATION_MIDPOINT_KHR, 5102 VK_CHROMA_LOCATION_RANGE_SIZE_KHR = (VK_CHROMA_LOCATION_MIDPOINT_KHR - VK_CHROMA_LOCATION_COSITED_EVEN_KHR + 1), 5103 VK_CHROMA_LOCATION_MAX_ENUM_KHR = 0x7FFFFFFF 5104 } VkChromaLocationKHR; 5105 5106 typedef struct VkSamplerYcbcrConversionCreateInfoKHR { 5107 VkStructureType sType; 5108 const void* pNext; 5109 VkFormat format; 5110 VkSamplerYcbcrModelConversionKHR ycbcrModel; 5111 VkSamplerYcbcrRangeKHR ycbcrRange; 5112 VkComponentMapping components; 5113 VkChromaLocationKHR xChromaOffset; 5114 VkChromaLocationKHR yChromaOffset; 5115 VkFilter chromaFilter; 5116 VkBool32 forceExplicitReconstruction; 5117 } VkSamplerYcbcrConversionCreateInfoKHR; 5118 5119 typedef struct VkSamplerYcbcrConversionInfoKHR { 5120 VkStructureType sType; 5121 const void* pNext; 5122 VkSamplerYcbcrConversionKHR conversion; 5123 } VkSamplerYcbcrConversionInfoKHR; 5124 5125 typedef struct VkBindImagePlaneMemoryInfoKHR { 5126 VkStructureType sType; 5127 const void* pNext; 5128 VkImageAspectFlagBits planeAspect; 5129 } VkBindImagePlaneMemoryInfoKHR; 5130 5131 typedef struct VkImagePlaneMemoryRequirementsInfoKHR { 5132 VkStructureType sType; 5133 const void* pNext; 5134 VkImageAspectFlagBits planeAspect; 5135 } VkImagePlaneMemoryRequirementsInfoKHR; 5136 5137 typedef struct VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR { 5138 VkStructureType sType; 5139 void* pNext; 5140 VkBool32 samplerYcbcrConversion; 5141 } VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR; 5142 5143 typedef struct VkSamplerYcbcrConversionImageFormatPropertiesKHR { 5144 VkStructureType sType; 5145 void* pNext; 5146 uint32_t combinedImageSamplerDescriptorCount; 5147 } VkSamplerYcbcrConversionImageFormatPropertiesKHR; 5148 5149 5150 typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversionKHR)(VkDevice device, const VkSamplerYcbcrConversionCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversionKHR* pYcbcrConversion); 5151 typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversionKHR)(VkDevice device, VkSamplerYcbcrConversionKHR ycbcrConversion, const VkAllocationCallbacks* pAllocator); 5152 5153 #ifndef VK_NO_PROTOTYPES 5154 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversionKHR( 5155 VkDevice device, 5156 const VkSamplerYcbcrConversionCreateInfoKHR* pCreateInfo, 5157 const VkAllocationCallbacks* pAllocator, 5158 VkSamplerYcbcrConversionKHR* pYcbcrConversion); 5159 5160 VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversionKHR( 5161 VkDevice device, 5162 VkSamplerYcbcrConversionKHR ycbcrConversion, 5163 const VkAllocationCallbacks* pAllocator); 5164 #endif 5165 5166 #define VK_KHR_bind_memory2 1 5167 #define VK_KHR_BIND_MEMORY_2_SPEC_VERSION 1 5168 #define VK_KHR_BIND_MEMORY_2_EXTENSION_NAME "VK_KHR_bind_memory2" 5169 5170 typedef struct VkBindBufferMemoryInfoKHR { 5171 VkStructureType sType; 5172 const void* pNext; 5173 VkBuffer buffer; 5174 VkDeviceMemory memory; 5175 VkDeviceSize memoryOffset; 5176 } VkBindBufferMemoryInfoKHR; 5177 5178 typedef struct VkBindImageMemoryInfoKHR { 5179 VkStructureType sType; 5180 const void* pNext; 5181 VkImage image; 5182 VkDeviceMemory memory; 5183 VkDeviceSize memoryOffset; 5184 } VkBindImageMemoryInfoKHR; 5185 5186 5187 typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfoKHR* pBindInfos); 5188 typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfoKHR* pBindInfos); 5189 5190 #ifndef VK_NO_PROTOTYPES 5191 VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2KHR( 5192 VkDevice device, 5193 uint32_t bindInfoCount, 5194 const VkBindBufferMemoryInfoKHR* pBindInfos); 5195 5196 VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2KHR( 5197 VkDevice device, 5198 uint32_t bindInfoCount, 5199 const VkBindImageMemoryInfoKHR* pBindInfos); 5200 #endif 5201 5202 #define VK_EXT_debug_report 1 5203 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT) 5204 5205 #define VK_EXT_DEBUG_REPORT_SPEC_VERSION 9 5206 #define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report" 5207 #define VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT 5208 #define VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT 5209 5210 5211 typedef enum VkDebugReportObjectTypeEXT { 5212 VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0, 5213 VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1, 5214 VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2, 5215 VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3, 5216 VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4, 5217 VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5, 5218 VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6, 5219 VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7, 5220 VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8, 5221 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9, 5222 VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10, 5223 VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11, 5224 VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12, 5225 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13, 5226 VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14, 5227 VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15, 5228 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16, 5229 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17, 5230 VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18, 5231 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19, 5232 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20, 5233 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21, 5234 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22, 5235 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23, 5236 VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24, 5237 VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25, 5238 VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26, 5239 VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27, 5240 VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28, 5241 VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29, 5242 VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30, 5243 VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT = 31, 5244 VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT = 32, 5245 VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33, 5246 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = 1000085000, 5247 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = 1000156000, 5248 VK_DEBUG_REPORT_OBJECT_TYPE_BEGIN_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 5249 VK_DEBUG_REPORT_OBJECT_TYPE_END_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT, 5250 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), 5251 VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF 5252 } VkDebugReportObjectTypeEXT; 5253 5254 5255 typedef enum VkDebugReportFlagBitsEXT { 5256 VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001, 5257 VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002, 5258 VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004, 5259 VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008, 5260 VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010, 5261 VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF 5262 } VkDebugReportFlagBitsEXT; 5263 typedef VkFlags VkDebugReportFlagsEXT; 5264 5265 typedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)( 5266 VkDebugReportFlagsEXT flags, 5267 VkDebugReportObjectTypeEXT objectType, 5268 uint64_t object, 5269 size_t location, 5270 int32_t messageCode, 5271 const char* pLayerPrefix, 5272 const char* pMessage, 5273 void* pUserData); 5274 5275 typedef struct VkDebugReportCallbackCreateInfoEXT { 5276 VkStructureType sType; 5277 const void* pNext; 5278 VkDebugReportFlagsEXT flags; 5279 PFN_vkDebugReportCallbackEXT pfnCallback; 5280 void* pUserData; 5281 } VkDebugReportCallbackCreateInfoEXT; 5282 5283 5284 typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugReportCallbackEXT)(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback); 5285 typedef void (VKAPI_PTR *PFN_vkDestroyDebugReportCallbackEXT)(VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator); 5286 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); 5287 5288 #ifndef VK_NO_PROTOTYPES 5289 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugReportCallbackEXT( 5290 VkInstance instance, 5291 const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, 5292 const VkAllocationCallbacks* pAllocator, 5293 VkDebugReportCallbackEXT* pCallback); 5294 5295 VKAPI_ATTR void VKAPI_CALL vkDestroyDebugReportCallbackEXT( 5296 VkInstance instance, 5297 VkDebugReportCallbackEXT callback, 5298 const VkAllocationCallbacks* pAllocator); 5299 5300 VKAPI_ATTR void VKAPI_CALL vkDebugReportMessageEXT( 5301 VkInstance instance, 5302 VkDebugReportFlagsEXT flags, 5303 VkDebugReportObjectTypeEXT objectType, 5304 uint64_t object, 5305 size_t location, 5306 int32_t messageCode, 5307 const char* pLayerPrefix, 5308 const char* pMessage); 5309 #endif 5310 5311 #define VK_NV_glsl_shader 1 5312 #define VK_NV_GLSL_SHADER_SPEC_VERSION 1 5313 #define VK_NV_GLSL_SHADER_EXTENSION_NAME "VK_NV_glsl_shader" 5314 5315 5316 #define VK_EXT_depth_range_unrestricted 1 5317 #define VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION 1 5318 #define VK_EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME "VK_EXT_depth_range_unrestricted" 5319 5320 5321 #define VK_IMG_filter_cubic 1 5322 #define VK_IMG_FILTER_CUBIC_SPEC_VERSION 1 5323 #define VK_IMG_FILTER_CUBIC_EXTENSION_NAME "VK_IMG_filter_cubic" 5324 5325 5326 #define VK_AMD_rasterization_order 1 5327 #define VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION 1 5328 #define VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME "VK_AMD_rasterization_order" 5329 5330 5331 typedef enum VkRasterizationOrderAMD { 5332 VK_RASTERIZATION_ORDER_STRICT_AMD = 0, 5333 VK_RASTERIZATION_ORDER_RELAXED_AMD = 1, 5334 VK_RASTERIZATION_ORDER_BEGIN_RANGE_AMD = VK_RASTERIZATION_ORDER_STRICT_AMD, 5335 VK_RASTERIZATION_ORDER_END_RANGE_AMD = VK_RASTERIZATION_ORDER_RELAXED_AMD, 5336 VK_RASTERIZATION_ORDER_RANGE_SIZE_AMD = (VK_RASTERIZATION_ORDER_RELAXED_AMD - VK_RASTERIZATION_ORDER_STRICT_AMD + 1), 5337 VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 0x7FFFFFFF 5338 } VkRasterizationOrderAMD; 5339 5340 typedef struct VkPipelineRasterizationStateRasterizationOrderAMD { 5341 VkStructureType sType; 5342 const void* pNext; 5343 VkRasterizationOrderAMD rasterizationOrder; 5344 } VkPipelineRasterizationStateRasterizationOrderAMD; 5345 5346 5347 5348 #define VK_AMD_shader_trinary_minmax 1 5349 #define VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION 1 5350 #define VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME "VK_AMD_shader_trinary_minmax" 5351 5352 5353 #define VK_AMD_shader_explicit_vertex_parameter 1 5354 #define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION 1 5355 #define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME "VK_AMD_shader_explicit_vertex_parameter" 5356 5357 5358 #define VK_EXT_debug_marker 1 5359 #define VK_EXT_DEBUG_MARKER_SPEC_VERSION 4 5360 #define VK_EXT_DEBUG_MARKER_EXTENSION_NAME "VK_EXT_debug_marker" 5361 5362 typedef struct VkDebugMarkerObjectNameInfoEXT { 5363 VkStructureType sType; 5364 const void* pNext; 5365 VkDebugReportObjectTypeEXT objectType; 5366 uint64_t object; 5367 const char* pObjectName; 5368 } VkDebugMarkerObjectNameInfoEXT; 5369 5370 typedef struct VkDebugMarkerObjectTagInfoEXT { 5371 VkStructureType sType; 5372 const void* pNext; 5373 VkDebugReportObjectTypeEXT objectType; 5374 uint64_t object; 5375 uint64_t tagName; 5376 size_t tagSize; 5377 const void* pTag; 5378 } VkDebugMarkerObjectTagInfoEXT; 5379 5380 typedef struct VkDebugMarkerMarkerInfoEXT { 5381 VkStructureType sType; 5382 const void* pNext; 5383 const char* pMarkerName; 5384 float color[4]; 5385 } VkDebugMarkerMarkerInfoEXT; 5386 5387 5388 typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectTagEXT)(VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo); 5389 typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectNameEXT)(VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo); 5390 typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerBeginEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo); 5391 typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerEndEXT)(VkCommandBuffer commandBuffer); 5392 typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerInsertEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo); 5393 5394 #ifndef VK_NO_PROTOTYPES 5395 VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectTagEXT( 5396 VkDevice device, 5397 const VkDebugMarkerObjectTagInfoEXT* pTagInfo); 5398 5399 VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectNameEXT( 5400 VkDevice device, 5401 const VkDebugMarkerObjectNameInfoEXT* pNameInfo); 5402 5403 VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerBeginEXT( 5404 VkCommandBuffer commandBuffer, 5405 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo); 5406 5407 VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerEndEXT( 5408 VkCommandBuffer commandBuffer); 5409 5410 VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerInsertEXT( 5411 VkCommandBuffer commandBuffer, 5412 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo); 5413 #endif 5414 5415 #define VK_AMD_gcn_shader 1 5416 #define VK_AMD_GCN_SHADER_SPEC_VERSION 1 5417 #define VK_AMD_GCN_SHADER_EXTENSION_NAME "VK_AMD_gcn_shader" 5418 5419 5420 #define VK_NV_dedicated_allocation 1 5421 #define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1 5422 #define VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_NV_dedicated_allocation" 5423 5424 typedef struct VkDedicatedAllocationImageCreateInfoNV { 5425 VkStructureType sType; 5426 const void* pNext; 5427 VkBool32 dedicatedAllocation; 5428 } VkDedicatedAllocationImageCreateInfoNV; 5429 5430 typedef struct VkDedicatedAllocationBufferCreateInfoNV { 5431 VkStructureType sType; 5432 const void* pNext; 5433 VkBool32 dedicatedAllocation; 5434 } VkDedicatedAllocationBufferCreateInfoNV; 5435 5436 typedef struct VkDedicatedAllocationMemoryAllocateInfoNV { 5437 VkStructureType sType; 5438 const void* pNext; 5439 VkImage image; 5440 VkBuffer buffer; 5441 } VkDedicatedAllocationMemoryAllocateInfoNV; 5442 5443 5444 5445 #define VK_AMD_draw_indirect_count 1 5446 #define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 1 5447 #define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count" 5448 5449 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); 5450 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); 5451 5452 #ifndef VK_NO_PROTOTYPES 5453 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountAMD( 5454 VkCommandBuffer commandBuffer, 5455 VkBuffer buffer, 5456 VkDeviceSize offset, 5457 VkBuffer countBuffer, 5458 VkDeviceSize countBufferOffset, 5459 uint32_t maxDrawCount, 5460 uint32_t stride); 5461 5462 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountAMD( 5463 VkCommandBuffer commandBuffer, 5464 VkBuffer buffer, 5465 VkDeviceSize offset, 5466 VkBuffer countBuffer, 5467 VkDeviceSize countBufferOffset, 5468 uint32_t maxDrawCount, 5469 uint32_t stride); 5470 #endif 5471 5472 #define VK_AMD_negative_viewport_height 1 5473 #define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1 5474 #define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height" 5475 5476 5477 #define VK_AMD_gpu_shader_half_float 1 5478 #define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 1 5479 #define VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME "VK_AMD_gpu_shader_half_float" 5480 5481 5482 #define VK_AMD_shader_ballot 1 5483 #define VK_AMD_SHADER_BALLOT_SPEC_VERSION 1 5484 #define VK_AMD_SHADER_BALLOT_EXTENSION_NAME "VK_AMD_shader_ballot" 5485 5486 5487 #define VK_AMD_texture_gather_bias_lod 1 5488 #define VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION 1 5489 #define VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME "VK_AMD_texture_gather_bias_lod" 5490 5491 typedef struct VkTextureLODGatherFormatPropertiesAMD { 5492 VkStructureType sType; 5493 void* pNext; 5494 VkBool32 supportsTextureGatherLODBiasAMD; 5495 } VkTextureLODGatherFormatPropertiesAMD; 5496 5497 5498 5499 #define VK_AMD_shader_info 1 5500 #define VK_AMD_SHADER_INFO_SPEC_VERSION 1 5501 #define VK_AMD_SHADER_INFO_EXTENSION_NAME "VK_AMD_shader_info" 5502 5503 5504 typedef enum VkShaderInfoTypeAMD { 5505 VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0, 5506 VK_SHADER_INFO_TYPE_BINARY_AMD = 1, 5507 VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2, 5508 VK_SHADER_INFO_TYPE_BEGIN_RANGE_AMD = VK_SHADER_INFO_TYPE_STATISTICS_AMD, 5509 VK_SHADER_INFO_TYPE_END_RANGE_AMD = VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD, 5510 VK_SHADER_INFO_TYPE_RANGE_SIZE_AMD = (VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD - VK_SHADER_INFO_TYPE_STATISTICS_AMD + 1), 5511 VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 0x7FFFFFFF 5512 } VkShaderInfoTypeAMD; 5513 5514 typedef struct VkShaderResourceUsageAMD { 5515 uint32_t numUsedVgprs; 5516 uint32_t numUsedSgprs; 5517 uint32_t ldsSizePerLocalWorkGroup; 5518 size_t ldsUsageSizeInBytes; 5519 size_t scratchMemUsageInBytes; 5520 } VkShaderResourceUsageAMD; 5521 5522 typedef struct VkShaderStatisticsInfoAMD { 5523 VkShaderStageFlags shaderStageMask; 5524 VkShaderResourceUsageAMD resourceUsage; 5525 uint32_t numPhysicalVgprs; 5526 uint32_t numPhysicalSgprs; 5527 uint32_t numAvailableVgprs; 5528 uint32_t numAvailableSgprs; 5529 uint32_t computeWorkGroupSize[3]; 5530 } VkShaderStatisticsInfoAMD; 5531 5532 5533 typedef VkResult (VKAPI_PTR *PFN_vkGetShaderInfoAMD)(VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo); 5534 5535 #ifndef VK_NO_PROTOTYPES 5536 VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderInfoAMD( 5537 VkDevice device, 5538 VkPipeline pipeline, 5539 VkShaderStageFlagBits shaderStage, 5540 VkShaderInfoTypeAMD infoType, 5541 size_t* pInfoSize, 5542 void* pInfo); 5543 #endif 5544 5545 #define VK_AMD_shader_image_load_store_lod 1 5546 #define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION 1 5547 #define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME "VK_AMD_shader_image_load_store_lod" 5548 5549 5550 #define VK_KHX_multiview 1 5551 #define VK_KHX_MULTIVIEW_SPEC_VERSION 1 5552 #define VK_KHX_MULTIVIEW_EXTENSION_NAME "VK_KHX_multiview" 5553 5554 typedef struct VkRenderPassMultiviewCreateInfoKHX { 5555 VkStructureType sType; 5556 const void* pNext; 5557 uint32_t subpassCount; 5558 const uint32_t* pViewMasks; 5559 uint32_t dependencyCount; 5560 const int32_t* pViewOffsets; 5561 uint32_t correlationMaskCount; 5562 const uint32_t* pCorrelationMasks; 5563 } VkRenderPassMultiviewCreateInfoKHX; 5564 5565 typedef struct VkPhysicalDeviceMultiviewFeaturesKHX { 5566 VkStructureType sType; 5567 void* pNext; 5568 VkBool32 multiview; 5569 VkBool32 multiviewGeometryShader; 5570 VkBool32 multiviewTessellationShader; 5571 } VkPhysicalDeviceMultiviewFeaturesKHX; 5572 5573 typedef struct VkPhysicalDeviceMultiviewPropertiesKHX { 5574 VkStructureType sType; 5575 void* pNext; 5576 uint32_t maxMultiviewViewCount; 5577 uint32_t maxMultiviewInstanceIndex; 5578 } VkPhysicalDeviceMultiviewPropertiesKHX; 5579 5580 5581 5582 #define VK_IMG_format_pvrtc 1 5583 #define VK_IMG_FORMAT_PVRTC_SPEC_VERSION 1 5584 #define VK_IMG_FORMAT_PVRTC_EXTENSION_NAME "VK_IMG_format_pvrtc" 5585 5586 5587 #define VK_NV_external_memory_capabilities 1 5588 #define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1 5589 #define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities" 5590 5591 5592 typedef enum VkExternalMemoryHandleTypeFlagBitsNV { 5593 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001, 5594 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002, 5595 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004, 5596 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008, 5597 VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF 5598 } VkExternalMemoryHandleTypeFlagBitsNV; 5599 typedef VkFlags VkExternalMemoryHandleTypeFlagsNV; 5600 5601 typedef enum VkExternalMemoryFeatureFlagBitsNV { 5602 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001, 5603 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002, 5604 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004, 5605 VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF 5606 } VkExternalMemoryFeatureFlagBitsNV; 5607 typedef VkFlags VkExternalMemoryFeatureFlagsNV; 5608 5609 typedef struct VkExternalImageFormatPropertiesNV { 5610 VkImageFormatProperties imageFormatProperties; 5611 VkExternalMemoryFeatureFlagsNV externalMemoryFeatures; 5612 VkExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes; 5613 VkExternalMemoryHandleTypeFlagsNV compatibleHandleTypes; 5614 } VkExternalImageFormatPropertiesNV; 5615 5616 5617 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties); 5618 5619 #ifndef VK_NO_PROTOTYPES 5620 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceExternalImageFormatPropertiesNV( 5621 VkPhysicalDevice physicalDevice, 5622 VkFormat format, 5623 VkImageType type, 5624 VkImageTiling tiling, 5625 VkImageUsageFlags usage, 5626 VkImageCreateFlags flags, 5627 VkExternalMemoryHandleTypeFlagsNV externalHandleType, 5628 VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties); 5629 #endif 5630 5631 #define VK_NV_external_memory 1 5632 #define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1 5633 #define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory" 5634 5635 typedef struct VkExternalMemoryImageCreateInfoNV { 5636 VkStructureType sType; 5637 const void* pNext; 5638 VkExternalMemoryHandleTypeFlagsNV handleTypes; 5639 } VkExternalMemoryImageCreateInfoNV; 5640 5641 typedef struct VkExportMemoryAllocateInfoNV { 5642 VkStructureType sType; 5643 const void* pNext; 5644 VkExternalMemoryHandleTypeFlagsNV handleTypes; 5645 } VkExportMemoryAllocateInfoNV; 5646 5647 5648 5649 #ifdef VK_USE_PLATFORM_WIN32_KHR 5650 #define VK_NV_external_memory_win32 1 5651 #define VK_NV_EXTERNAL_MEMORY_WIN32_SPEC_VERSION 1 5652 #define VK_NV_EXTERNAL_MEMORY_WIN32_EXTENSION_NAME "VK_NV_external_memory_win32" 5653 5654 typedef struct VkImportMemoryWin32HandleInfoNV { 5655 VkStructureType sType; 5656 const void* pNext; 5657 VkExternalMemoryHandleTypeFlagsNV handleType; 5658 HANDLE handle; 5659 } VkImportMemoryWin32HandleInfoNV; 5660 5661 typedef struct VkExportMemoryWin32HandleInfoNV { 5662 VkStructureType sType; 5663 const void* pNext; 5664 const SECURITY_ATTRIBUTES* pAttributes; 5665 DWORD dwAccess; 5666 } VkExportMemoryWin32HandleInfoNV; 5667 5668 5669 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryWin32HandleNV)(VkDevice device, VkDeviceMemory memory, VkExternalMemoryHandleTypeFlagsNV handleType, HANDLE* pHandle); 5670 5671 #ifndef VK_NO_PROTOTYPES 5672 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryWin32HandleNV( 5673 VkDevice device, 5674 VkDeviceMemory memory, 5675 VkExternalMemoryHandleTypeFlagsNV handleType, 5676 HANDLE* pHandle); 5677 #endif 5678 #endif /* VK_USE_PLATFORM_WIN32_KHR */ 5679 5680 #ifdef VK_USE_PLATFORM_WIN32_KHR 5681 #define VK_NV_win32_keyed_mutex 1 5682 #define VK_NV_WIN32_KEYED_MUTEX_SPEC_VERSION 1 5683 #define VK_NV_WIN32_KEYED_MUTEX_EXTENSION_NAME "VK_NV_win32_keyed_mutex" 5684 5685 typedef struct VkWin32KeyedMutexAcquireReleaseInfoNV { 5686 VkStructureType sType; 5687 const void* pNext; 5688 uint32_t acquireCount; 5689 const VkDeviceMemory* pAcquireSyncs; 5690 const uint64_t* pAcquireKeys; 5691 const uint32_t* pAcquireTimeoutMilliseconds; 5692 uint32_t releaseCount; 5693 const VkDeviceMemory* pReleaseSyncs; 5694 const uint64_t* pReleaseKeys; 5695 } VkWin32KeyedMutexAcquireReleaseInfoNV; 5696 5697 5698 #endif /* VK_USE_PLATFORM_WIN32_KHR */ 5699 5700 #define VK_KHX_device_group 1 5701 #define VK_KHX_DEVICE_GROUP_SPEC_VERSION 2 5702 #define VK_KHX_DEVICE_GROUP_EXTENSION_NAME "VK_KHX_device_group" 5703 #define VK_MAX_DEVICE_GROUP_SIZE_KHX 32 5704 5705 5706 typedef enum VkPeerMemoryFeatureFlagBitsKHX { 5707 VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHX = 0x00000001, 5708 VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHX = 0x00000002, 5709 VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHX = 0x00000004, 5710 VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHX = 0x00000008, 5711 VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_KHX = 0x7FFFFFFF 5712 } VkPeerMemoryFeatureFlagBitsKHX; 5713 typedef VkFlags VkPeerMemoryFeatureFlagsKHX; 5714 5715 typedef enum VkMemoryAllocateFlagBitsKHX { 5716 VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHX = 0x00000001, 5717 VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM_KHX = 0x7FFFFFFF 5718 } VkMemoryAllocateFlagBitsKHX; 5719 typedef VkFlags VkMemoryAllocateFlagsKHX; 5720 5721 typedef enum VkDeviceGroupPresentModeFlagBitsKHX { 5722 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHX = 0x00000001, 5723 VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHX = 0x00000002, 5724 VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHX = 0x00000004, 5725 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHX = 0x00000008, 5726 VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHX = 0x7FFFFFFF 5727 } VkDeviceGroupPresentModeFlagBitsKHX; 5728 typedef VkFlags VkDeviceGroupPresentModeFlagsKHX; 5729 5730 typedef struct VkMemoryAllocateFlagsInfoKHX { 5731 VkStructureType sType; 5732 const void* pNext; 5733 VkMemoryAllocateFlagsKHX flags; 5734 uint32_t deviceMask; 5735 } VkMemoryAllocateFlagsInfoKHX; 5736 5737 typedef struct VkDeviceGroupRenderPassBeginInfoKHX { 5738 VkStructureType sType; 5739 const void* pNext; 5740 uint32_t deviceMask; 5741 uint32_t deviceRenderAreaCount; 5742 const VkRect2D* pDeviceRenderAreas; 5743 } VkDeviceGroupRenderPassBeginInfoKHX; 5744 5745 typedef struct VkDeviceGroupCommandBufferBeginInfoKHX { 5746 VkStructureType sType; 5747 const void* pNext; 5748 uint32_t deviceMask; 5749 } VkDeviceGroupCommandBufferBeginInfoKHX; 5750 5751 typedef struct VkDeviceGroupSubmitInfoKHX { 5752 VkStructureType sType; 5753 const void* pNext; 5754 uint32_t waitSemaphoreCount; 5755 const uint32_t* pWaitSemaphoreDeviceIndices; 5756 uint32_t commandBufferCount; 5757 const uint32_t* pCommandBufferDeviceMasks; 5758 uint32_t signalSemaphoreCount; 5759 const uint32_t* pSignalSemaphoreDeviceIndices; 5760 } VkDeviceGroupSubmitInfoKHX; 5761 5762 typedef struct VkDeviceGroupBindSparseInfoKHX { 5763 VkStructureType sType; 5764 const void* pNext; 5765 uint32_t resourceDeviceIndex; 5766 uint32_t memoryDeviceIndex; 5767 } VkDeviceGroupBindSparseInfoKHX; 5768 5769 typedef struct VkBindBufferMemoryDeviceGroupInfoKHX { 5770 VkStructureType sType; 5771 const void* pNext; 5772 uint32_t deviceIndexCount; 5773 const uint32_t* pDeviceIndices; 5774 } VkBindBufferMemoryDeviceGroupInfoKHX; 5775 5776 typedef struct VkBindImageMemoryDeviceGroupInfoKHX { 5777 VkStructureType sType; 5778 const void* pNext; 5779 uint32_t deviceIndexCount; 5780 const uint32_t* pDeviceIndices; 5781 uint32_t SFRRectCount; 5782 const VkRect2D* pSFRRects; 5783 } VkBindImageMemoryDeviceGroupInfoKHX; 5784 5785 typedef struct VkDeviceGroupPresentCapabilitiesKHX { 5786 VkStructureType sType; 5787 const void* pNext; 5788 uint32_t presentMask[VK_MAX_DEVICE_GROUP_SIZE_KHX]; 5789 VkDeviceGroupPresentModeFlagsKHX modes; 5790 } VkDeviceGroupPresentCapabilitiesKHX; 5791 5792 typedef struct VkImageSwapchainCreateInfoKHX { 5793 VkStructureType sType; 5794 const void* pNext; 5795 VkSwapchainKHR swapchain; 5796 } VkImageSwapchainCreateInfoKHX; 5797 5798 typedef struct VkBindImageMemorySwapchainInfoKHX { 5799 VkStructureType sType; 5800 const void* pNext; 5801 VkSwapchainKHR swapchain; 5802 uint32_t imageIndex; 5803 } VkBindImageMemorySwapchainInfoKHX; 5804 5805 typedef struct VkAcquireNextImageInfoKHX { 5806 VkStructureType sType; 5807 const void* pNext; 5808 VkSwapchainKHR swapchain; 5809 uint64_t timeout; 5810 VkSemaphore semaphore; 5811 VkFence fence; 5812 uint32_t deviceMask; 5813 } VkAcquireNextImageInfoKHX; 5814 5815 typedef struct VkDeviceGroupPresentInfoKHX { 5816 VkStructureType sType; 5817 const void* pNext; 5818 uint32_t swapchainCount; 5819 const uint32_t* pDeviceMasks; 5820 VkDeviceGroupPresentModeFlagBitsKHX mode; 5821 } VkDeviceGroupPresentInfoKHX; 5822 5823 typedef struct VkDeviceGroupSwapchainCreateInfoKHX { 5824 VkStructureType sType; 5825 const void* pNext; 5826 VkDeviceGroupPresentModeFlagsKHX modes; 5827 } VkDeviceGroupSwapchainCreateInfoKHX; 5828 5829 5830 typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeaturesKHX)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlagsKHX* pPeerMemoryFeatures); 5831 typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMaskKHX)(VkCommandBuffer commandBuffer, uint32_t deviceMask); 5832 typedef void (VKAPI_PTR *PFN_vkCmdDispatchBaseKHX)(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ); 5833 typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupPresentCapabilitiesKHX)(VkDevice device, VkDeviceGroupPresentCapabilitiesKHX* pDeviceGroupPresentCapabilities); 5834 typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupSurfacePresentModesKHX)(VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHX* pModes); 5835 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDevicePresentRectanglesKHX)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects); 5836 typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImage2KHX)(VkDevice device, const VkAcquireNextImageInfoKHX* pAcquireInfo, uint32_t* pImageIndex); 5837 5838 #ifndef VK_NO_PROTOTYPES 5839 VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeaturesKHX( 5840 VkDevice device, 5841 uint32_t heapIndex, 5842 uint32_t localDeviceIndex, 5843 uint32_t remoteDeviceIndex, 5844 VkPeerMemoryFeatureFlagsKHX* pPeerMemoryFeatures); 5845 5846 VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMaskKHX( 5847 VkCommandBuffer commandBuffer, 5848 uint32_t deviceMask); 5849 5850 VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBaseKHX( 5851 VkCommandBuffer commandBuffer, 5852 uint32_t baseGroupX, 5853 uint32_t baseGroupY, 5854 uint32_t baseGroupZ, 5855 uint32_t groupCountX, 5856 uint32_t groupCountY, 5857 uint32_t groupCountZ); 5858 5859 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupPresentCapabilitiesKHX( 5860 VkDevice device, 5861 VkDeviceGroupPresentCapabilitiesKHX* pDeviceGroupPresentCapabilities); 5862 5863 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModesKHX( 5864 VkDevice device, 5865 VkSurfaceKHR surface, 5866 VkDeviceGroupPresentModeFlagsKHX* pModes); 5867 5868 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDevicePresentRectanglesKHX( 5869 VkPhysicalDevice physicalDevice, 5870 VkSurfaceKHR surface, 5871 uint32_t* pRectCount, 5872 VkRect2D* pRects); 5873 5874 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImage2KHX( 5875 VkDevice device, 5876 const VkAcquireNextImageInfoKHX* pAcquireInfo, 5877 uint32_t* pImageIndex); 5878 #endif 5879 5880 #define VK_EXT_validation_flags 1 5881 #define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 1 5882 #define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags" 5883 5884 5885 typedef enum VkValidationCheckEXT { 5886 VK_VALIDATION_CHECK_ALL_EXT = 0, 5887 VK_VALIDATION_CHECK_SHADERS_EXT = 1, 5888 VK_VALIDATION_CHECK_BEGIN_RANGE_EXT = VK_VALIDATION_CHECK_ALL_EXT, 5889 VK_VALIDATION_CHECK_END_RANGE_EXT = VK_VALIDATION_CHECK_SHADERS_EXT, 5890 VK_VALIDATION_CHECK_RANGE_SIZE_EXT = (VK_VALIDATION_CHECK_SHADERS_EXT - VK_VALIDATION_CHECK_ALL_EXT + 1), 5891 VK_VALIDATION_CHECK_MAX_ENUM_EXT = 0x7FFFFFFF 5892 } VkValidationCheckEXT; 5893 5894 typedef struct VkValidationFlagsEXT { 5895 VkStructureType sType; 5896 const void* pNext; 5897 uint32_t disabledValidationCheckCount; 5898 VkValidationCheckEXT* pDisabledValidationChecks; 5899 } VkValidationFlagsEXT; 5900 5901 5902 5903 #ifdef VK_USE_PLATFORM_VI_NN 5904 #define VK_NN_vi_surface 1 5905 #define VK_NN_VI_SURFACE_SPEC_VERSION 1 5906 #define VK_NN_VI_SURFACE_EXTENSION_NAME "VK_NN_vi_surface" 5907 5908 typedef VkFlags VkViSurfaceCreateFlagsNN; 5909 5910 typedef struct VkViSurfaceCreateInfoNN { 5911 VkStructureType sType; 5912 const void* pNext; 5913 VkViSurfaceCreateFlagsNN flags; 5914 void* window; 5915 } VkViSurfaceCreateInfoNN; 5916 5917 5918 typedef VkResult (VKAPI_PTR *PFN_vkCreateViSurfaceNN)(VkInstance instance, const VkViSurfaceCreateInfoNN* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); 5919 5920 #ifndef VK_NO_PROTOTYPES 5921 VKAPI_ATTR VkResult VKAPI_CALL vkCreateViSurfaceNN( 5922 VkInstance instance, 5923 const VkViSurfaceCreateInfoNN* pCreateInfo, 5924 const VkAllocationCallbacks* pAllocator, 5925 VkSurfaceKHR* pSurface); 5926 #endif 5927 #endif /* VK_USE_PLATFORM_VI_NN */ 5928 5929 #define VK_EXT_shader_subgroup_ballot 1 5930 #define VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION 1 5931 #define VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME "VK_EXT_shader_subgroup_ballot" 5932 5933 5934 #define VK_EXT_shader_subgroup_vote 1 5935 #define VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION 1 5936 #define VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME "VK_EXT_shader_subgroup_vote" 5937 5938 5939 #define VK_KHX_device_group_creation 1 5940 #define VK_KHX_DEVICE_GROUP_CREATION_SPEC_VERSION 1 5941 #define VK_KHX_DEVICE_GROUP_CREATION_EXTENSION_NAME "VK_KHX_device_group_creation" 5942 5943 typedef struct VkPhysicalDeviceGroupPropertiesKHX { 5944 VkStructureType sType; 5945 void* pNext; 5946 uint32_t physicalDeviceCount; 5947 VkPhysicalDevice physicalDevices[VK_MAX_DEVICE_GROUP_SIZE_KHX]; 5948 VkBool32 subsetAllocation; 5949 } VkPhysicalDeviceGroupPropertiesKHX; 5950 5951 typedef struct VkDeviceGroupDeviceCreateInfoKHX { 5952 VkStructureType sType; 5953 const void* pNext; 5954 uint32_t physicalDeviceCount; 5955 const VkPhysicalDevice* pPhysicalDevices; 5956 } VkDeviceGroupDeviceCreateInfoKHX; 5957 5958 5959 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroupsKHX)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupPropertiesKHX* pPhysicalDeviceGroupProperties); 5960 5961 #ifndef VK_NO_PROTOTYPES 5962 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroupsKHX( 5963 VkInstance instance, 5964 uint32_t* pPhysicalDeviceGroupCount, 5965 VkPhysicalDeviceGroupPropertiesKHX* pPhysicalDeviceGroupProperties); 5966 #endif 5967 5968 #define VK_NVX_device_generated_commands 1 5969 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkObjectTableNVX) 5970 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNVX) 5971 5972 #define VK_NVX_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3 5973 #define VK_NVX_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NVX_device_generated_commands" 5974 5975 5976 typedef enum VkIndirectCommandsTokenTypeNVX { 5977 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX = 0, 5978 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX = 1, 5979 VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX = 2, 5980 VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX = 3, 5981 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX = 4, 5982 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX = 5, 5983 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX = 6, 5984 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX = 7, 5985 VK_INDIRECT_COMMANDS_TOKEN_TYPE_BEGIN_RANGE_NVX = VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX, 5986 VK_INDIRECT_COMMANDS_TOKEN_TYPE_END_RANGE_NVX = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX, 5987 VK_INDIRECT_COMMANDS_TOKEN_TYPE_RANGE_SIZE_NVX = (VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX - VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX + 1), 5988 VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NVX = 0x7FFFFFFF 5989 } VkIndirectCommandsTokenTypeNVX; 5990 5991 typedef enum VkObjectEntryTypeNVX { 5992 VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX = 0, 5993 VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX = 1, 5994 VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX = 2, 5995 VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX = 3, 5996 VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX = 4, 5997 VK_OBJECT_ENTRY_TYPE_BEGIN_RANGE_NVX = VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX, 5998 VK_OBJECT_ENTRY_TYPE_END_RANGE_NVX = VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX, 5999 VK_OBJECT_ENTRY_TYPE_RANGE_SIZE_NVX = (VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX - VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX + 1), 6000 VK_OBJECT_ENTRY_TYPE_MAX_ENUM_NVX = 0x7FFFFFFF 6001 } VkObjectEntryTypeNVX; 6002 6003 6004 typedef enum VkIndirectCommandsLayoutUsageFlagBitsNVX { 6005 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX = 0x00000001, 6006 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX = 0x00000002, 6007 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX = 0x00000004, 6008 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX = 0x00000008, 6009 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NVX = 0x7FFFFFFF 6010 } VkIndirectCommandsLayoutUsageFlagBitsNVX; 6011 typedef VkFlags VkIndirectCommandsLayoutUsageFlagsNVX; 6012 6013 typedef enum VkObjectEntryUsageFlagBitsNVX { 6014 VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX = 0x00000001, 6015 VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX = 0x00000002, 6016 VK_OBJECT_ENTRY_USAGE_FLAG_BITS_MAX_ENUM_NVX = 0x7FFFFFFF 6017 } VkObjectEntryUsageFlagBitsNVX; 6018 typedef VkFlags VkObjectEntryUsageFlagsNVX; 6019 6020 typedef struct VkDeviceGeneratedCommandsFeaturesNVX { 6021 VkStructureType sType; 6022 const void* pNext; 6023 VkBool32 computeBindingPointSupport; 6024 } VkDeviceGeneratedCommandsFeaturesNVX; 6025 6026 typedef struct VkDeviceGeneratedCommandsLimitsNVX { 6027 VkStructureType sType; 6028 const void* pNext; 6029 uint32_t maxIndirectCommandsLayoutTokenCount; 6030 uint32_t maxObjectEntryCounts; 6031 uint32_t minSequenceCountBufferOffsetAlignment; 6032 uint32_t minSequenceIndexBufferOffsetAlignment; 6033 uint32_t minCommandsTokenBufferOffsetAlignment; 6034 } VkDeviceGeneratedCommandsLimitsNVX; 6035 6036 typedef struct VkIndirectCommandsTokenNVX { 6037 VkIndirectCommandsTokenTypeNVX tokenType; 6038 VkBuffer buffer; 6039 VkDeviceSize offset; 6040 } VkIndirectCommandsTokenNVX; 6041 6042 typedef struct VkIndirectCommandsLayoutTokenNVX { 6043 VkIndirectCommandsTokenTypeNVX tokenType; 6044 uint32_t bindingUnit; 6045 uint32_t dynamicCount; 6046 uint32_t divisor; 6047 } VkIndirectCommandsLayoutTokenNVX; 6048 6049 typedef struct VkIndirectCommandsLayoutCreateInfoNVX { 6050 VkStructureType sType; 6051 const void* pNext; 6052 VkPipelineBindPoint pipelineBindPoint; 6053 VkIndirectCommandsLayoutUsageFlagsNVX flags; 6054 uint32_t tokenCount; 6055 const VkIndirectCommandsLayoutTokenNVX* pTokens; 6056 } VkIndirectCommandsLayoutCreateInfoNVX; 6057 6058 typedef struct VkCmdProcessCommandsInfoNVX { 6059 VkStructureType sType; 6060 const void* pNext; 6061 VkObjectTableNVX objectTable; 6062 VkIndirectCommandsLayoutNVX indirectCommandsLayout; 6063 uint32_t indirectCommandsTokenCount; 6064 const VkIndirectCommandsTokenNVX* pIndirectCommandsTokens; 6065 uint32_t maxSequencesCount; 6066 VkCommandBuffer targetCommandBuffer; 6067 VkBuffer sequencesCountBuffer; 6068 VkDeviceSize sequencesCountOffset; 6069 VkBuffer sequencesIndexBuffer; 6070 VkDeviceSize sequencesIndexOffset; 6071 } VkCmdProcessCommandsInfoNVX; 6072 6073 typedef struct VkCmdReserveSpaceForCommandsInfoNVX { 6074 VkStructureType sType; 6075 const void* pNext; 6076 VkObjectTableNVX objectTable; 6077 VkIndirectCommandsLayoutNVX indirectCommandsLayout; 6078 uint32_t maxSequencesCount; 6079 } VkCmdReserveSpaceForCommandsInfoNVX; 6080 6081 typedef struct VkObjectTableCreateInfoNVX { 6082 VkStructureType sType; 6083 const void* pNext; 6084 uint32_t objectCount; 6085 const VkObjectEntryTypeNVX* pObjectEntryTypes; 6086 const uint32_t* pObjectEntryCounts; 6087 const VkObjectEntryUsageFlagsNVX* pObjectEntryUsageFlags; 6088 uint32_t maxUniformBuffersPerDescriptor; 6089 uint32_t maxStorageBuffersPerDescriptor; 6090 uint32_t maxStorageImagesPerDescriptor; 6091 uint32_t maxSampledImagesPerDescriptor; 6092 uint32_t maxPipelineLayouts; 6093 } VkObjectTableCreateInfoNVX; 6094 6095 typedef struct VkObjectTableEntryNVX { 6096 VkObjectEntryTypeNVX type; 6097 VkObjectEntryUsageFlagsNVX flags; 6098 } VkObjectTableEntryNVX; 6099 6100 typedef struct VkObjectTablePipelineEntryNVX { 6101 VkObjectEntryTypeNVX type; 6102 VkObjectEntryUsageFlagsNVX flags; 6103 VkPipeline pipeline; 6104 } VkObjectTablePipelineEntryNVX; 6105 6106 typedef struct VkObjectTableDescriptorSetEntryNVX { 6107 VkObjectEntryTypeNVX type; 6108 VkObjectEntryUsageFlagsNVX flags; 6109 VkPipelineLayout pipelineLayout; 6110 VkDescriptorSet descriptorSet; 6111 } VkObjectTableDescriptorSetEntryNVX; 6112 6113 typedef struct VkObjectTableVertexBufferEntryNVX { 6114 VkObjectEntryTypeNVX type; 6115 VkObjectEntryUsageFlagsNVX flags; 6116 VkBuffer buffer; 6117 } VkObjectTableVertexBufferEntryNVX; 6118 6119 typedef struct VkObjectTableIndexBufferEntryNVX { 6120 VkObjectEntryTypeNVX type; 6121 VkObjectEntryUsageFlagsNVX flags; 6122 VkBuffer buffer; 6123 VkIndexType indexType; 6124 } VkObjectTableIndexBufferEntryNVX; 6125 6126 typedef struct VkObjectTablePushConstantEntryNVX { 6127 VkObjectEntryTypeNVX type; 6128 VkObjectEntryUsageFlagsNVX flags; 6129 VkPipelineLayout pipelineLayout; 6130 VkShaderStageFlags stageFlags; 6131 } VkObjectTablePushConstantEntryNVX; 6132 6133 6134 typedef void (VKAPI_PTR *PFN_vkCmdProcessCommandsNVX)(VkCommandBuffer commandBuffer, const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo); 6135 typedef void (VKAPI_PTR *PFN_vkCmdReserveSpaceForCommandsNVX)(VkCommandBuffer commandBuffer, const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo); 6136 typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutNVX)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout); 6137 typedef void (VKAPI_PTR *PFN_vkDestroyIndirectCommandsLayoutNVX)(VkDevice device, VkIndirectCommandsLayoutNVX indirectCommandsLayout, const VkAllocationCallbacks* pAllocator); 6138 typedef VkResult (VKAPI_PTR *PFN_vkCreateObjectTableNVX)(VkDevice device, const VkObjectTableCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkObjectTableNVX* pObjectTable); 6139 typedef void (VKAPI_PTR *PFN_vkDestroyObjectTableNVX)(VkDevice device, VkObjectTableNVX objectTable, const VkAllocationCallbacks* pAllocator); 6140 typedef VkResult (VKAPI_PTR *PFN_vkRegisterObjectsNVX)(VkDevice device, VkObjectTableNVX objectTable, uint32_t objectCount, const VkObjectTableEntryNVX* const* ppObjectTableEntries, const uint32_t* pObjectIndices); 6141 typedef VkResult (VKAPI_PTR *PFN_vkUnregisterObjectsNVX)(VkDevice device, VkObjectTableNVX objectTable, uint32_t objectCount, const VkObjectEntryTypeNVX* pObjectEntryTypes, const uint32_t* pObjectIndices); 6142 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX)(VkPhysicalDevice physicalDevice, VkDeviceGeneratedCommandsFeaturesNVX* pFeatures, VkDeviceGeneratedCommandsLimitsNVX* pLimits); 6143 6144 #ifndef VK_NO_PROTOTYPES 6145 VKAPI_ATTR void VKAPI_CALL vkCmdProcessCommandsNVX( 6146 VkCommandBuffer commandBuffer, 6147 const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo); 6148 6149 VKAPI_ATTR void VKAPI_CALL vkCmdReserveSpaceForCommandsNVX( 6150 VkCommandBuffer commandBuffer, 6151 const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo); 6152 6153 VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutNVX( 6154 VkDevice device, 6155 const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo, 6156 const VkAllocationCallbacks* pAllocator, 6157 VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout); 6158 6159 VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutNVX( 6160 VkDevice device, 6161 VkIndirectCommandsLayoutNVX indirectCommandsLayout, 6162 const VkAllocationCallbacks* pAllocator); 6163 6164 VKAPI_ATTR VkResult VKAPI_CALL vkCreateObjectTableNVX( 6165 VkDevice device, 6166 const VkObjectTableCreateInfoNVX* pCreateInfo, 6167 const VkAllocationCallbacks* pAllocator, 6168 VkObjectTableNVX* pObjectTable); 6169 6170 VKAPI_ATTR void VKAPI_CALL vkDestroyObjectTableNVX( 6171 VkDevice device, 6172 VkObjectTableNVX objectTable, 6173 const VkAllocationCallbacks* pAllocator); 6174 6175 VKAPI_ATTR VkResult VKAPI_CALL vkRegisterObjectsNVX( 6176 VkDevice device, 6177 VkObjectTableNVX objectTable, 6178 uint32_t objectCount, 6179 const VkObjectTableEntryNVX* const* ppObjectTableEntries, 6180 const uint32_t* pObjectIndices); 6181 6182 VKAPI_ATTR VkResult VKAPI_CALL vkUnregisterObjectsNVX( 6183 VkDevice device, 6184 VkObjectTableNVX objectTable, 6185 uint32_t objectCount, 6186 const VkObjectEntryTypeNVX* pObjectEntryTypes, 6187 const uint32_t* pObjectIndices); 6188 6189 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX( 6190 VkPhysicalDevice physicalDevice, 6191 VkDeviceGeneratedCommandsFeaturesNVX* pFeatures, 6192 VkDeviceGeneratedCommandsLimitsNVX* pLimits); 6193 #endif 6194 6195 #define VK_NV_clip_space_w_scaling 1 6196 #define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1 6197 #define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling" 6198 6199 typedef struct VkViewportWScalingNV { 6200 float xcoeff; 6201 float ycoeff; 6202 } VkViewportWScalingNV; 6203 6204 typedef struct VkPipelineViewportWScalingStateCreateInfoNV { 6205 VkStructureType sType; 6206 const void* pNext; 6207 VkBool32 viewportWScalingEnable; 6208 uint32_t viewportCount; 6209 const VkViewportWScalingNV* pViewportWScalings; 6210 } VkPipelineViewportWScalingStateCreateInfoNV; 6211 6212 6213 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWScalingNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings); 6214 6215 #ifndef VK_NO_PROTOTYPES 6216 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWScalingNV( 6217 VkCommandBuffer commandBuffer, 6218 uint32_t firstViewport, 6219 uint32_t viewportCount, 6220 const VkViewportWScalingNV* pViewportWScalings); 6221 #endif 6222 6223 #define VK_EXT_direct_mode_display 1 6224 #define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1 6225 #define VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME "VK_EXT_direct_mode_display" 6226 6227 typedef VkResult (VKAPI_PTR *PFN_vkReleaseDisplayEXT)(VkPhysicalDevice physicalDevice, VkDisplayKHR display); 6228 6229 #ifndef VK_NO_PROTOTYPES 6230 VKAPI_ATTR VkResult VKAPI_CALL vkReleaseDisplayEXT( 6231 VkPhysicalDevice physicalDevice, 6232 VkDisplayKHR display); 6233 #endif 6234 6235 #ifdef VK_USE_PLATFORM_XLIB_XRANDR_EXT 6236 #define VK_EXT_acquire_xlib_display 1 6237 #include <X11/extensions/Xrandr.h> 6238 6239 #define VK_EXT_ACQUIRE_XLIB_DISPLAY_SPEC_VERSION 1 6240 #define VK_EXT_ACQUIRE_XLIB_DISPLAY_EXTENSION_NAME "VK_EXT_acquire_xlib_display" 6241 6242 typedef VkResult (VKAPI_PTR *PFN_vkAcquireXlibDisplayEXT)(VkPhysicalDevice physicalDevice, Display* dpy, VkDisplayKHR display); 6243 typedef VkResult (VKAPI_PTR *PFN_vkGetRandROutputDisplayEXT)(VkPhysicalDevice physicalDevice, Display* dpy, RROutput rrOutput, VkDisplayKHR* pDisplay); 6244 6245 #ifndef VK_NO_PROTOTYPES 6246 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireXlibDisplayEXT( 6247 VkPhysicalDevice physicalDevice, 6248 Display* dpy, 6249 VkDisplayKHR display); 6250 6251 VKAPI_ATTR VkResult VKAPI_CALL vkGetRandROutputDisplayEXT( 6252 VkPhysicalDevice physicalDevice, 6253 Display* dpy, 6254 RROutput rrOutput, 6255 VkDisplayKHR* pDisplay); 6256 #endif 6257 #endif /* VK_USE_PLATFORM_XLIB_XRANDR_EXT */ 6258 6259 #define VK_EXT_display_surface_counter 1 6260 #define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1 6261 #define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter" 6262 #define VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT 6263 6264 6265 typedef enum VkSurfaceCounterFlagBitsEXT { 6266 VK_SURFACE_COUNTER_VBLANK_EXT = 0x00000001, 6267 VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF 6268 } VkSurfaceCounterFlagBitsEXT; 6269 typedef VkFlags VkSurfaceCounterFlagsEXT; 6270 6271 typedef struct VkSurfaceCapabilities2EXT { 6272 VkStructureType sType; 6273 void* pNext; 6274 uint32_t minImageCount; 6275 uint32_t maxImageCount; 6276 VkExtent2D currentExtent; 6277 VkExtent2D minImageExtent; 6278 VkExtent2D maxImageExtent; 6279 uint32_t maxImageArrayLayers; 6280 VkSurfaceTransformFlagsKHR supportedTransforms; 6281 VkSurfaceTransformFlagBitsKHR currentTransform; 6282 VkCompositeAlphaFlagsKHR supportedCompositeAlpha; 6283 VkImageUsageFlags supportedUsageFlags; 6284 VkSurfaceCounterFlagsEXT supportedSurfaceCounters; 6285 } VkSurfaceCapabilities2EXT; 6286 6287 6288 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities); 6289 6290 #ifndef VK_NO_PROTOTYPES 6291 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2EXT( 6292 VkPhysicalDevice physicalDevice, 6293 VkSurfaceKHR surface, 6294 VkSurfaceCapabilities2EXT* pSurfaceCapabilities); 6295 #endif 6296 6297 #define VK_EXT_display_control 1 6298 #define VK_EXT_DISPLAY_CONTROL_SPEC_VERSION 1 6299 #define VK_EXT_DISPLAY_CONTROL_EXTENSION_NAME "VK_EXT_display_control" 6300 6301 6302 typedef enum VkDisplayPowerStateEXT { 6303 VK_DISPLAY_POWER_STATE_OFF_EXT = 0, 6304 VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1, 6305 VK_DISPLAY_POWER_STATE_ON_EXT = 2, 6306 VK_DISPLAY_POWER_STATE_BEGIN_RANGE_EXT = VK_DISPLAY_POWER_STATE_OFF_EXT, 6307 VK_DISPLAY_POWER_STATE_END_RANGE_EXT = VK_DISPLAY_POWER_STATE_ON_EXT, 6308 VK_DISPLAY_POWER_STATE_RANGE_SIZE_EXT = (VK_DISPLAY_POWER_STATE_ON_EXT - VK_DISPLAY_POWER_STATE_OFF_EXT + 1), 6309 VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 0x7FFFFFFF 6310 } VkDisplayPowerStateEXT; 6311 6312 typedef enum VkDeviceEventTypeEXT { 6313 VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0, 6314 VK_DEVICE_EVENT_TYPE_BEGIN_RANGE_EXT = VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT, 6315 VK_DEVICE_EVENT_TYPE_END_RANGE_EXT = VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT, 6316 VK_DEVICE_EVENT_TYPE_RANGE_SIZE_EXT = (VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT - VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT + 1), 6317 VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF 6318 } VkDeviceEventTypeEXT; 6319 6320 typedef enum VkDisplayEventTypeEXT { 6321 VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0, 6322 VK_DISPLAY_EVENT_TYPE_BEGIN_RANGE_EXT = VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT, 6323 VK_DISPLAY_EVENT_TYPE_END_RANGE_EXT = VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT, 6324 VK_DISPLAY_EVENT_TYPE_RANGE_SIZE_EXT = (VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT - VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT + 1), 6325 VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF 6326 } VkDisplayEventTypeEXT; 6327 6328 typedef struct VkDisplayPowerInfoEXT { 6329 VkStructureType sType; 6330 const void* pNext; 6331 VkDisplayPowerStateEXT powerState; 6332 } VkDisplayPowerInfoEXT; 6333 6334 typedef struct VkDeviceEventInfoEXT { 6335 VkStructureType sType; 6336 const void* pNext; 6337 VkDeviceEventTypeEXT deviceEvent; 6338 } VkDeviceEventInfoEXT; 6339 6340 typedef struct VkDisplayEventInfoEXT { 6341 VkStructureType sType; 6342 const void* pNext; 6343 VkDisplayEventTypeEXT displayEvent; 6344 } VkDisplayEventInfoEXT; 6345 6346 typedef struct VkSwapchainCounterCreateInfoEXT { 6347 VkStructureType sType; 6348 const void* pNext; 6349 VkSurfaceCounterFlagsEXT surfaceCounters; 6350 } VkSwapchainCounterCreateInfoEXT; 6351 6352 6353 typedef VkResult (VKAPI_PTR *PFN_vkDisplayPowerControlEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo); 6354 typedef VkResult (VKAPI_PTR *PFN_vkRegisterDeviceEventEXT)(VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence); 6355 typedef VkResult (VKAPI_PTR *PFN_vkRegisterDisplayEventEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence); 6356 typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainCounterEXT)(VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue); 6357 6358 #ifndef VK_NO_PROTOTYPES 6359 VKAPI_ATTR VkResult VKAPI_CALL vkDisplayPowerControlEXT( 6360 VkDevice device, 6361 VkDisplayKHR display, 6362 const VkDisplayPowerInfoEXT* pDisplayPowerInfo); 6363 6364 VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDeviceEventEXT( 6365 VkDevice device, 6366 const VkDeviceEventInfoEXT* pDeviceEventInfo, 6367 const VkAllocationCallbacks* pAllocator, 6368 VkFence* pFence); 6369 6370 VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDisplayEventEXT( 6371 VkDevice device, 6372 VkDisplayKHR display, 6373 const VkDisplayEventInfoEXT* pDisplayEventInfo, 6374 const VkAllocationCallbacks* pAllocator, 6375 VkFence* pFence); 6376 6377 VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainCounterEXT( 6378 VkDevice device, 6379 VkSwapchainKHR swapchain, 6380 VkSurfaceCounterFlagBitsEXT counter, 6381 uint64_t* pCounterValue); 6382 #endif 6383 6384 #define VK_GOOGLE_display_timing 1 6385 #define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1 6386 #define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing" 6387 6388 typedef struct VkRefreshCycleDurationGOOGLE { 6389 uint64_t refreshDuration; 6390 } VkRefreshCycleDurationGOOGLE; 6391 6392 typedef struct VkPastPresentationTimingGOOGLE { 6393 uint32_t presentID; 6394 uint64_t desiredPresentTime; 6395 uint64_t actualPresentTime; 6396 uint64_t earliestPresentTime; 6397 uint64_t presentMargin; 6398 } VkPastPresentationTimingGOOGLE; 6399 6400 typedef struct VkPresentTimeGOOGLE { 6401 uint32_t presentID; 6402 uint64_t desiredPresentTime; 6403 } VkPresentTimeGOOGLE; 6404 6405 typedef struct VkPresentTimesInfoGOOGLE { 6406 VkStructureType sType; 6407 const void* pNext; 6408 uint32_t swapchainCount; 6409 const VkPresentTimeGOOGLE* pTimes; 6410 } VkPresentTimesInfoGOOGLE; 6411 6412 6413 typedef VkResult (VKAPI_PTR *PFN_vkGetRefreshCycleDurationGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties); 6414 typedef VkResult (VKAPI_PTR *PFN_vkGetPastPresentationTimingGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings); 6415 6416 #ifndef VK_NO_PROTOTYPES 6417 VKAPI_ATTR VkResult VKAPI_CALL vkGetRefreshCycleDurationGOOGLE( 6418 VkDevice device, 6419 VkSwapchainKHR swapchain, 6420 VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties); 6421 6422 VKAPI_ATTR VkResult VKAPI_CALL vkGetPastPresentationTimingGOOGLE( 6423 VkDevice device, 6424 VkSwapchainKHR swapchain, 6425 uint32_t* pPresentationTimingCount, 6426 VkPastPresentationTimingGOOGLE* pPresentationTimings); 6427 #endif 6428 6429 #define VK_NV_sample_mask_override_coverage 1 6430 #define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION 1 6431 #define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME "VK_NV_sample_mask_override_coverage" 6432 6433 6434 #define VK_NV_geometry_shader_passthrough 1 6435 #define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION 1 6436 #define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME "VK_NV_geometry_shader_passthrough" 6437 6438 6439 #define VK_NV_viewport_array2 1 6440 #define VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION 1 6441 #define VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME "VK_NV_viewport_array2" 6442 6443 6444 #define VK_NVX_multiview_per_view_attributes 1 6445 #define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION 1 6446 #define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes" 6447 6448 typedef struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX { 6449 VkStructureType sType; 6450 void* pNext; 6451 VkBool32 perViewPositionAllComponents; 6452 } VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX; 6453 6454 6455 6456 #define VK_NV_viewport_swizzle 1 6457 #define VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION 1 6458 #define VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME "VK_NV_viewport_swizzle" 6459 6460 6461 typedef enum VkViewportCoordinateSwizzleNV { 6462 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0, 6463 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1, 6464 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2, 6465 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3, 6466 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4, 6467 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5, 6468 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6, 6469 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7, 6470 VK_VIEWPORT_COORDINATE_SWIZZLE_BEGIN_RANGE_NV = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV, 6471 VK_VIEWPORT_COORDINATE_SWIZZLE_END_RANGE_NV = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV, 6472 VK_VIEWPORT_COORDINATE_SWIZZLE_RANGE_SIZE_NV = (VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV + 1), 6473 VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 0x7FFFFFFF 6474 } VkViewportCoordinateSwizzleNV; 6475 6476 typedef VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV; 6477 6478 typedef struct VkViewportSwizzleNV { 6479 VkViewportCoordinateSwizzleNV x; 6480 VkViewportCoordinateSwizzleNV y; 6481 VkViewportCoordinateSwizzleNV z; 6482 VkViewportCoordinateSwizzleNV w; 6483 } VkViewportSwizzleNV; 6484 6485 typedef struct VkPipelineViewportSwizzleStateCreateInfoNV { 6486 VkStructureType sType; 6487 const void* pNext; 6488 VkPipelineViewportSwizzleStateCreateFlagsNV flags; 6489 uint32_t viewportCount; 6490 const VkViewportSwizzleNV* pViewportSwizzles; 6491 } VkPipelineViewportSwizzleStateCreateInfoNV; 6492 6493 6494 6495 #define VK_EXT_discard_rectangles 1 6496 #define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 1 6497 #define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles" 6498 6499 6500 typedef enum VkDiscardRectangleModeEXT { 6501 VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0, 6502 VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1, 6503 VK_DISCARD_RECTANGLE_MODE_BEGIN_RANGE_EXT = VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT, 6504 VK_DISCARD_RECTANGLE_MODE_END_RANGE_EXT = VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT, 6505 VK_DISCARD_RECTANGLE_MODE_RANGE_SIZE_EXT = (VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT - VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT + 1), 6506 VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 0x7FFFFFFF 6507 } VkDiscardRectangleModeEXT; 6508 6509 typedef VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT; 6510 6511 typedef struct VkPhysicalDeviceDiscardRectanglePropertiesEXT { 6512 VkStructureType sType; 6513 void* pNext; 6514 uint32_t maxDiscardRectangles; 6515 } VkPhysicalDeviceDiscardRectanglePropertiesEXT; 6516 6517 typedef struct VkPipelineDiscardRectangleStateCreateInfoEXT { 6518 VkStructureType sType; 6519 const void* pNext; 6520 VkPipelineDiscardRectangleStateCreateFlagsEXT flags; 6521 VkDiscardRectangleModeEXT discardRectangleMode; 6522 uint32_t discardRectangleCount; 6523 const VkRect2D* pDiscardRectangles; 6524 } VkPipelineDiscardRectangleStateCreateInfoEXT; 6525 6526 6527 typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEXT)(VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles); 6528 6529 #ifndef VK_NO_PROTOTYPES 6530 VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEXT( 6531 VkCommandBuffer commandBuffer, 6532 uint32_t firstDiscardRectangle, 6533 uint32_t discardRectangleCount, 6534 const VkRect2D* pDiscardRectangles); 6535 #endif 6536 6537 #define VK_EXT_conservative_rasterization 1 6538 #define VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION 1 6539 #define VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME "VK_EXT_conservative_rasterization" 6540 6541 6542 typedef enum VkConservativeRasterizationModeEXT { 6543 VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0, 6544 VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1, 6545 VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2, 6546 VK_CONSERVATIVE_RASTERIZATION_MODE_BEGIN_RANGE_EXT = VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT, 6547 VK_CONSERVATIVE_RASTERIZATION_MODE_END_RANGE_EXT = VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT, 6548 VK_CONSERVATIVE_RASTERIZATION_MODE_RANGE_SIZE_EXT = (VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT - VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT + 1), 6549 VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF 6550 } VkConservativeRasterizationModeEXT; 6551 6552 typedef VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT; 6553 6554 typedef struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT { 6555 VkStructureType sType; 6556 void* pNext; 6557 float primitiveOverestimationSize; 6558 float maxExtraPrimitiveOverestimationSize; 6559 float extraPrimitiveOverestimationSizeGranularity; 6560 VkBool32 primitiveUnderestimation; 6561 VkBool32 conservativePointAndLineRasterization; 6562 VkBool32 degenerateTrianglesRasterized; 6563 VkBool32 degenerateLinesRasterized; 6564 VkBool32 fullyCoveredFragmentShaderInputVariable; 6565 VkBool32 conservativeRasterizationPostDepthCoverage; 6566 } VkPhysicalDeviceConservativeRasterizationPropertiesEXT; 6567 6568 typedef struct VkPipelineRasterizationConservativeStateCreateInfoEXT { 6569 VkStructureType sType; 6570 const void* pNext; 6571 VkPipelineRasterizationConservativeStateCreateFlagsEXT flags; 6572 VkConservativeRasterizationModeEXT conservativeRasterizationMode; 6573 float extraPrimitiveOverestimationSize; 6574 } VkPipelineRasterizationConservativeStateCreateInfoEXT; 6575 6576 6577 6578 #define VK_EXT_swapchain_colorspace 1 6579 #define VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION 3 6580 #define VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace" 6581 6582 6583 #define VK_EXT_hdr_metadata 1 6584 #define VK_EXT_HDR_METADATA_SPEC_VERSION 1 6585 #define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata" 6586 6587 typedef struct VkXYColorEXT { 6588 float x; 6589 float y; 6590 } VkXYColorEXT; 6591 6592 typedef struct VkHdrMetadataEXT { 6593 VkStructureType sType; 6594 const void* pNext; 6595 VkXYColorEXT displayPrimaryRed; 6596 VkXYColorEXT displayPrimaryGreen; 6597 VkXYColorEXT displayPrimaryBlue; 6598 VkXYColorEXT whitePoint; 6599 float maxLuminance; 6600 float minLuminance; 6601 float maxContentLightLevel; 6602 float maxFrameAverageLightLevel; 6603 } VkHdrMetadataEXT; 6604 6605 6606 typedef void (VKAPI_PTR *PFN_vkSetHdrMetadataEXT)(VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata); 6607 6608 #ifndef VK_NO_PROTOTYPES 6609 VKAPI_ATTR void VKAPI_CALL vkSetHdrMetadataEXT( 6610 VkDevice device, 6611 uint32_t swapchainCount, 6612 const VkSwapchainKHR* pSwapchains, 6613 const VkHdrMetadataEXT* pMetadata); 6614 #endif 6615 6616 #ifdef VK_USE_PLATFORM_IOS_MVK 6617 #define VK_MVK_ios_surface 1 6618 #define VK_MVK_IOS_SURFACE_SPEC_VERSION 2 6619 #define VK_MVK_IOS_SURFACE_EXTENSION_NAME "VK_MVK_ios_surface" 6620 6621 typedef VkFlags VkIOSSurfaceCreateFlagsMVK; 6622 6623 typedef struct VkIOSSurfaceCreateInfoMVK { 6624 VkStructureType sType; 6625 const void* pNext; 6626 VkIOSSurfaceCreateFlagsMVK flags; 6627 const void* pView; 6628 } VkIOSSurfaceCreateInfoMVK; 6629 6630 6631 typedef VkResult (VKAPI_PTR *PFN_vkCreateIOSSurfaceMVK)(VkInstance instance, const VkIOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); 6632 6633 #ifndef VK_NO_PROTOTYPES 6634 VKAPI_ATTR VkResult VKAPI_CALL vkCreateIOSSurfaceMVK( 6635 VkInstance instance, 6636 const VkIOSSurfaceCreateInfoMVK* pCreateInfo, 6637 const VkAllocationCallbacks* pAllocator, 6638 VkSurfaceKHR* pSurface); 6639 #endif 6640 #endif /* VK_USE_PLATFORM_IOS_MVK */ 6641 6642 #ifdef VK_USE_PLATFORM_MACOS_MVK 6643 #define VK_MVK_macos_surface 1 6644 #define VK_MVK_MACOS_SURFACE_SPEC_VERSION 2 6645 #define VK_MVK_MACOS_SURFACE_EXTENSION_NAME "VK_MVK_macos_surface" 6646 6647 typedef VkFlags VkMacOSSurfaceCreateFlagsMVK; 6648 6649 typedef struct VkMacOSSurfaceCreateInfoMVK { 6650 VkStructureType sType; 6651 const void* pNext; 6652 VkMacOSSurfaceCreateFlagsMVK flags; 6653 const void* pView; 6654 } VkMacOSSurfaceCreateInfoMVK; 6655 6656 6657 typedef VkResult (VKAPI_PTR *PFN_vkCreateMacOSSurfaceMVK)(VkInstance instance, const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); 6658 6659 #ifndef VK_NO_PROTOTYPES 6660 VKAPI_ATTR VkResult VKAPI_CALL vkCreateMacOSSurfaceMVK( 6661 VkInstance instance, 6662 const VkMacOSSurfaceCreateInfoMVK* pCreateInfo, 6663 const VkAllocationCallbacks* pAllocator, 6664 VkSurfaceKHR* pSurface); 6665 #endif 6666 #endif /* VK_USE_PLATFORM_MACOS_MVK */ 6667 6668 #define VK_EXT_external_memory_dma_buf 1 6669 #define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION 1 6670 #define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME "VK_EXT_external_memory_dma_buf" 6671 6672 6673 #define VK_EXT_queue_family_foreign 1 6674 #define VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION 1 6675 #define VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME "VK_EXT_queue_family_foreign" 6676 #define VK_QUEUE_FAMILY_FOREIGN_EXT (~0U-2) 6677 6678 6679 #define VK_EXT_sampler_filter_minmax 1 6680 #define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 1 6681 #define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax" 6682 6683 6684 typedef enum VkSamplerReductionModeEXT { 6685 VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = 0, 6686 VK_SAMPLER_REDUCTION_MODE_MIN_EXT = 1, 6687 VK_SAMPLER_REDUCTION_MODE_MAX_EXT = 2, 6688 VK_SAMPLER_REDUCTION_MODE_BEGIN_RANGE_EXT = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT, 6689 VK_SAMPLER_REDUCTION_MODE_END_RANGE_EXT = VK_SAMPLER_REDUCTION_MODE_MAX_EXT, 6690 VK_SAMPLER_REDUCTION_MODE_RANGE_SIZE_EXT = (VK_SAMPLER_REDUCTION_MODE_MAX_EXT - VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT + 1), 6691 VK_SAMPLER_REDUCTION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF 6692 } VkSamplerReductionModeEXT; 6693 6694 typedef struct VkSamplerReductionModeCreateInfoEXT { 6695 VkStructureType sType; 6696 const void* pNext; 6697 VkSamplerReductionModeEXT reductionMode; 6698 } VkSamplerReductionModeCreateInfoEXT; 6699 6700 typedef struct VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT { 6701 VkStructureType sType; 6702 void* pNext; 6703 VkBool32 filterMinmaxSingleComponentFormats; 6704 VkBool32 filterMinmaxImageComponentMapping; 6705 } VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT; 6706 6707 6708 6709 #define VK_AMD_gpu_shader_int16 1 6710 #define VK_AMD_GPU_SHADER_INT16_SPEC_VERSION 1 6711 #define VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME "VK_AMD_gpu_shader_int16" 6712 6713 6714 #define VK_AMD_mixed_attachment_samples 1 6715 #define VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION 1 6716 #define VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME "VK_AMD_mixed_attachment_samples" 6717 6718 6719 #define VK_AMD_shader_fragment_mask 1 6720 #define VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION 1 6721 #define VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME "VK_AMD_shader_fragment_mask" 6722 6723 6724 #define VK_EXT_shader_stencil_export 1 6725 #define VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION 1 6726 #define VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME "VK_EXT_shader_stencil_export" 6727 6728 6729 #define VK_EXT_sample_locations 1 6730 #define VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION 1 6731 #define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations" 6732 6733 typedef struct VkSampleLocationEXT { 6734 float x; 6735 float y; 6736 } VkSampleLocationEXT; 6737 6738 typedef struct VkSampleLocationsInfoEXT { 6739 VkStructureType sType; 6740 const void* pNext; 6741 VkSampleCountFlagBits sampleLocationsPerPixel; 6742 VkExtent2D sampleLocationGridSize; 6743 uint32_t sampleLocationsCount; 6744 const VkSampleLocationEXT* pSampleLocations; 6745 } VkSampleLocationsInfoEXT; 6746 6747 typedef struct VkAttachmentSampleLocationsEXT { 6748 uint32_t attachmentIndex; 6749 VkSampleLocationsInfoEXT sampleLocationsInfo; 6750 } VkAttachmentSampleLocationsEXT; 6751 6752 typedef struct VkSubpassSampleLocationsEXT { 6753 uint32_t subpassIndex; 6754 VkSampleLocationsInfoEXT sampleLocationsInfo; 6755 } VkSubpassSampleLocationsEXT; 6756 6757 typedef struct VkRenderPassSampleLocationsBeginInfoEXT { 6758 VkStructureType sType; 6759 const void* pNext; 6760 uint32_t attachmentInitialSampleLocationsCount; 6761 const VkAttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations; 6762 uint32_t postSubpassSampleLocationsCount; 6763 const VkSubpassSampleLocationsEXT* pPostSubpassSampleLocations; 6764 } VkRenderPassSampleLocationsBeginInfoEXT; 6765 6766 typedef struct VkPipelineSampleLocationsStateCreateInfoEXT { 6767 VkStructureType sType; 6768 const void* pNext; 6769 VkBool32 sampleLocationsEnable; 6770 VkSampleLocationsInfoEXT sampleLocationsInfo; 6771 } VkPipelineSampleLocationsStateCreateInfoEXT; 6772 6773 typedef struct VkPhysicalDeviceSampleLocationsPropertiesEXT { 6774 VkStructureType sType; 6775 void* pNext; 6776 VkSampleCountFlags sampleLocationSampleCounts; 6777 VkExtent2D maxSampleLocationGridSize; 6778 float sampleLocationCoordinateRange[2]; 6779 uint32_t sampleLocationSubPixelBits; 6780 VkBool32 variableSampleLocations; 6781 } VkPhysicalDeviceSampleLocationsPropertiesEXT; 6782 6783 typedef struct VkMultisamplePropertiesEXT { 6784 VkStructureType sType; 6785 void* pNext; 6786 VkExtent2D maxSampleLocationGridSize; 6787 } VkMultisamplePropertiesEXT; 6788 6789 6790 typedef void (VKAPI_PTR *PFN_vkCmdSetSampleLocationsEXT)(VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo); 6791 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)(VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties); 6792 6793 #ifndef VK_NO_PROTOTYPES 6794 VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleLocationsEXT( 6795 VkCommandBuffer commandBuffer, 6796 const VkSampleLocationsInfoEXT* pSampleLocationsInfo); 6797 6798 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMultisamplePropertiesEXT( 6799 VkPhysicalDevice physicalDevice, 6800 VkSampleCountFlagBits samples, 6801 VkMultisamplePropertiesEXT* pMultisampleProperties); 6802 #endif 6803 6804 #define VK_EXT_blend_operation_advanced 1 6805 #define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2 6806 #define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced" 6807 6808 6809 typedef enum VkBlendOverlapEXT { 6810 VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0, 6811 VK_BLEND_OVERLAP_DISJOINT_EXT = 1, 6812 VK_BLEND_OVERLAP_CONJOINT_EXT = 2, 6813 VK_BLEND_OVERLAP_BEGIN_RANGE_EXT = VK_BLEND_OVERLAP_UNCORRELATED_EXT, 6814 VK_BLEND_OVERLAP_END_RANGE_EXT = VK_BLEND_OVERLAP_CONJOINT_EXT, 6815 VK_BLEND_OVERLAP_RANGE_SIZE_EXT = (VK_BLEND_OVERLAP_CONJOINT_EXT - VK_BLEND_OVERLAP_UNCORRELATED_EXT + 1), 6816 VK_BLEND_OVERLAP_MAX_ENUM_EXT = 0x7FFFFFFF 6817 } VkBlendOverlapEXT; 6818 6819 typedef struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT { 6820 VkStructureType sType; 6821 void* pNext; 6822 VkBool32 advancedBlendCoherentOperations; 6823 } VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT; 6824 6825 typedef struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT { 6826 VkStructureType sType; 6827 void* pNext; 6828 uint32_t advancedBlendMaxColorAttachments; 6829 VkBool32 advancedBlendIndependentBlend; 6830 VkBool32 advancedBlendNonPremultipliedSrcColor; 6831 VkBool32 advancedBlendNonPremultipliedDstColor; 6832 VkBool32 advancedBlendCorrelatedOverlap; 6833 VkBool32 advancedBlendAllOperations; 6834 } VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT; 6835 6836 typedef struct VkPipelineColorBlendAdvancedStateCreateInfoEXT { 6837 VkStructureType sType; 6838 const void* pNext; 6839 VkBool32 srcPremultiplied; 6840 VkBool32 dstPremultiplied; 6841 VkBlendOverlapEXT blendOverlap; 6842 } VkPipelineColorBlendAdvancedStateCreateInfoEXT; 6843 6844 6845 6846 #define VK_NV_fragment_coverage_to_color 1 6847 #define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION 1 6848 #define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME "VK_NV_fragment_coverage_to_color" 6849 6850 typedef VkFlags VkPipelineCoverageToColorStateCreateFlagsNV; 6851 6852 typedef struct VkPipelineCoverageToColorStateCreateInfoNV { 6853 VkStructureType sType; 6854 const void* pNext; 6855 VkPipelineCoverageToColorStateCreateFlagsNV flags; 6856 VkBool32 coverageToColorEnable; 6857 uint32_t coverageToColorLocation; 6858 } VkPipelineCoverageToColorStateCreateInfoNV; 6859 6860 6861 6862 #define VK_NV_framebuffer_mixed_samples 1 6863 #define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION 1 6864 #define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME "VK_NV_framebuffer_mixed_samples" 6865 6866 6867 typedef enum VkCoverageModulationModeNV { 6868 VK_COVERAGE_MODULATION_MODE_NONE_NV = 0, 6869 VK_COVERAGE_MODULATION_MODE_RGB_NV = 1, 6870 VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2, 6871 VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3, 6872 VK_COVERAGE_MODULATION_MODE_BEGIN_RANGE_NV = VK_COVERAGE_MODULATION_MODE_NONE_NV, 6873 VK_COVERAGE_MODULATION_MODE_END_RANGE_NV = VK_COVERAGE_MODULATION_MODE_RGBA_NV, 6874 VK_COVERAGE_MODULATION_MODE_RANGE_SIZE_NV = (VK_COVERAGE_MODULATION_MODE_RGBA_NV - VK_COVERAGE_MODULATION_MODE_NONE_NV + 1), 6875 VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 0x7FFFFFFF 6876 } VkCoverageModulationModeNV; 6877 6878 typedef VkFlags VkPipelineCoverageModulationStateCreateFlagsNV; 6879 6880 typedef struct VkPipelineCoverageModulationStateCreateInfoNV { 6881 VkStructureType sType; 6882 const void* pNext; 6883 VkPipelineCoverageModulationStateCreateFlagsNV flags; 6884 VkCoverageModulationModeNV coverageModulationMode; 6885 VkBool32 coverageModulationTableEnable; 6886 uint32_t coverageModulationTableCount; 6887 const float* pCoverageModulationTable; 6888 } VkPipelineCoverageModulationStateCreateInfoNV; 6889 6890 6891 6892 #define VK_NV_fill_rectangle 1 6893 #define VK_NV_FILL_RECTANGLE_SPEC_VERSION 1 6894 #define VK_NV_FILL_RECTANGLE_EXTENSION_NAME "VK_NV_fill_rectangle" 6895 6896 6897 #define VK_EXT_post_depth_coverage 1 6898 #define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1 6899 #define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage" 6900 6901 6902 #define VK_EXT_validation_cache 1 6903 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkValidationCacheEXT) 6904 6905 #define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1 6906 #define VK_EXT_VALIDATION_CACHE_EXTENSION_NAME "VK_EXT_validation_cache" 6907 #define VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT 6908 6909 6910 typedef enum VkValidationCacheHeaderVersionEXT { 6911 VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1, 6912 VK_VALIDATION_CACHE_HEADER_VERSION_BEGIN_RANGE_EXT = VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT, 6913 VK_VALIDATION_CACHE_HEADER_VERSION_END_RANGE_EXT = VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT, 6914 VK_VALIDATION_CACHE_HEADER_VERSION_RANGE_SIZE_EXT = (VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT - VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT + 1), 6915 VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF 6916 } VkValidationCacheHeaderVersionEXT; 6917 6918 typedef VkFlags VkValidationCacheCreateFlagsEXT; 6919 6920 typedef struct VkValidationCacheCreateInfoEXT { 6921 VkStructureType sType; 6922 const void* pNext; 6923 VkValidationCacheCreateFlagsEXT flags; 6924 size_t initialDataSize; 6925 const void* pInitialData; 6926 } VkValidationCacheCreateInfoEXT; 6927 6928 typedef struct VkShaderModuleValidationCacheCreateInfoEXT { 6929 VkStructureType sType; 6930 const void* pNext; 6931 VkValidationCacheEXT validationCache; 6932 } VkShaderModuleValidationCacheCreateInfoEXT; 6933 6934 6935 typedef VkResult (VKAPI_PTR *PFN_vkCreateValidationCacheEXT)(VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache); 6936 typedef void (VKAPI_PTR *PFN_vkDestroyValidationCacheEXT)(VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator); 6937 typedef VkResult (VKAPI_PTR *PFN_vkMergeValidationCachesEXT)(VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches); 6938 typedef VkResult (VKAPI_PTR *PFN_vkGetValidationCacheDataEXT)(VkDevice device, VkValidationCacheEXT validationCache, size_t* pDataSize, void* pData); 6939 6940 #ifndef VK_NO_PROTOTYPES 6941 VKAPI_ATTR VkResult VKAPI_CALL vkCreateValidationCacheEXT( 6942 VkDevice device, 6943 const VkValidationCacheCreateInfoEXT* pCreateInfo, 6944 const VkAllocationCallbacks* pAllocator, 6945 VkValidationCacheEXT* pValidationCache); 6946 6947 VKAPI_ATTR void VKAPI_CALL vkDestroyValidationCacheEXT( 6948 VkDevice device, 6949 VkValidationCacheEXT validationCache, 6950 const VkAllocationCallbacks* pAllocator); 6951 6952 VKAPI_ATTR VkResult VKAPI_CALL vkMergeValidationCachesEXT( 6953 VkDevice device, 6954 VkValidationCacheEXT dstCache, 6955 uint32_t srcCacheCount, 6956 const VkValidationCacheEXT* pSrcCaches); 6957 6958 VKAPI_ATTR VkResult VKAPI_CALL vkGetValidationCacheDataEXT( 6959 VkDevice device, 6960 VkValidationCacheEXT validationCache, 6961 size_t* pDataSize, 6962 void* pData); 6963 #endif 6964 6965 #define VK_EXT_shader_viewport_index_layer 1 6966 #define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION 1 6967 #define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME "VK_EXT_shader_viewport_index_layer" 6968 6969 6970 #define VK_EXT_global_priority 1 6971 #define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 2 6972 #define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority" 6973 6974 6975 typedef enum VkQueueGlobalPriorityEXT { 6976 VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128, 6977 VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256, 6978 VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512, 6979 VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024, 6980 VK_QUEUE_GLOBAL_PRIORITY_BEGIN_RANGE_EXT = VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT, 6981 VK_QUEUE_GLOBAL_PRIORITY_END_RANGE_EXT = VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT, 6982 VK_QUEUE_GLOBAL_PRIORITY_RANGE_SIZE_EXT = (VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT - VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT + 1), 6983 VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_EXT = 0x7FFFFFFF 6984 } VkQueueGlobalPriorityEXT; 6985 6986 typedef struct VkDeviceQueueGlobalPriorityCreateInfoEXT { 6987 VkStructureType sType; 6988 const void* pNext; 6989 VkQueueGlobalPriorityEXT globalPriority; 6990 } VkDeviceQueueGlobalPriorityCreateInfoEXT; 6991 6992 6993 6994 #define VK_EXT_external_memory_host 1 6995 #define VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION 1 6996 #define VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME "VK_EXT_external_memory_host" 6997 6998 typedef struct VkImportMemoryHostPointerInfoEXT { 6999 VkStructureType sType; 7000 const void* pNext; 7001 VkExternalMemoryHandleTypeFlagBitsKHR handleType; 7002 void* pHostPointer; 7003 } VkImportMemoryHostPointerInfoEXT; 7004 7005 typedef struct VkMemoryHostPointerPropertiesEXT { 7006 VkStructureType sType; 7007 void* pNext; 7008 uint32_t memoryTypeBits; 7009 } VkMemoryHostPointerPropertiesEXT; 7010 7011 typedef struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT { 7012 VkStructureType sType; 7013 void* pNext; 7014 VkDeviceSize minImportedHostPointerAlignment; 7015 } VkPhysicalDeviceExternalMemoryHostPropertiesEXT; 7016 7017 7018 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryHostPointerPropertiesEXT)(VkDevice device, VkExternalMemoryHandleTypeFlagBitsKHR handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties); 7019 7020 #ifndef VK_NO_PROTOTYPES 7021 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryHostPointerPropertiesEXT( 7022 VkDevice device, 7023 VkExternalMemoryHandleTypeFlagBitsKHR handleType, 7024 const void* pHostPointer, 7025 VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties); 7026 #endif 7027 7028 #ifdef __cplusplus 7029 } 7030 #endif 7031 7032 #endif 7033