1 #ifndef VULKAN_SC_CORE_H_ 2 #define VULKAN_SC_CORE_H_ 1 3 4 /* 5 ** Copyright 2015-2021 The Khronos Group Inc. 6 ** 7 ** SPDX-License-Identifier: Apache-2.0 8 */ 9 10 /* 11 ** This header is generated from the Khronos Vulkan XML API Registry. 12 ** 13 */ 14 15 16 #ifdef __cplusplus 17 extern "C" { 18 #endif 19 20 21 22 #define VK_VERSION_1_0 1 23 #include "vk_platform.h" 24 25 #define VK_DEFINE_HANDLE(object) typedef struct object##_T* (object); 26 27 28 #ifndef VK_USE_64_BIT_PTR_DEFINES 29 #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) 30 #define VK_USE_64_BIT_PTR_DEFINES 1 31 #else 32 #define VK_USE_64_BIT_PTR_DEFINES 0 33 #endif 34 #endif 35 36 37 #ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE 38 #if (VK_USE_64_BIT_PTR_DEFINES==1) 39 #if (defined(__cplusplus) && (__cplusplus >= 201103L)) || (defined(_MSVC_LANG) && (_MSVC_LANG >= 201103L)) 40 #define VK_NULL_HANDLE nullptr 41 #else 42 #define VK_NULL_HANDLE ((void*)0) 43 #endif 44 #else 45 #define VK_NULL_HANDLE 0ULL 46 #endif 47 #endif 48 #ifndef VK_NULL_HANDLE 49 #define VK_NULL_HANDLE 0 50 #endif 51 52 53 #ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE 54 #if (VK_USE_64_BIT_PTR_DEFINES==1) 55 #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *(object); 56 #else 57 #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t (object); 58 #endif 59 #endif 60 61 #define VK_MAKE_API_VERSION(variant, major, minor, patch) \ 62 ((((uint32_t)(variant)) << 29) | (((uint32_t)(major)) << 22) | (((uint32_t)(minor)) << 12) | ((uint32_t)(patch))) 63 64 // Vulkan 1.0 version number 65 #define VK_API_VERSION_1_0 VK_MAKE_API_VERSION(0, 1, 0, 0)// Patch version should always be set to 0 66 67 // Version of this file 68 #define VK_HEADER_VERSION 8 69 70 // Vulkan SC variant number 71 #define VKSC_API_VARIANT 1 72 73 // Complete version of this file 74 #define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(VKSC_API_VARIANT, 1, 0, VK_HEADER_VERSION) 75 76 #define VK_API_VERSION_VARIANT(version) ((uint32_t)(version) >> 29) 77 #define VK_API_VERSION_MAJOR(version) (((uint32_t)(version) >> 22) & 0x7FU) 78 #define VK_API_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3FFU) 79 #define VK_API_VERSION_PATCH(version) ((uint32_t)(version) & 0xFFFU) 80 typedef uint32_t VkBool32; 81 typedef uint64_t VkDeviceAddress; 82 typedef uint64_t VkDeviceSize; 83 typedef uint32_t VkFlags; 84 typedef uint32_t VkSampleMask; 85 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer) 86 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImage) 87 VK_DEFINE_HANDLE(VkInstance) 88 VK_DEFINE_HANDLE(VkPhysicalDevice) 89 VK_DEFINE_HANDLE(VkDevice) 90 VK_DEFINE_HANDLE(VkQueue) 91 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSemaphore) 92 VK_DEFINE_HANDLE(VkCommandBuffer) 93 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFence) 94 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeviceMemory) 95 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkEvent) 96 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkQueryPool) 97 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferView) 98 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImageView) 99 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderModule) 100 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineCache) 101 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineLayout) 102 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipeline) 103 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass) 104 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSetLayout) 105 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSampler) 106 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet) 107 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool) 108 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer) 109 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool) 110 #define VK_UUID_SIZE 16U 111 #define VK_ATTACHMENT_UNUSED (~0U) 112 #define VK_FALSE 0U 113 #define VK_LOD_CLAMP_NONE 1000.0F 114 #define VK_QUEUE_FAMILY_IGNORED (~0U) 115 #define VK_REMAINING_ARRAY_LAYERS (~0U) 116 #define VK_REMAINING_MIP_LEVELS (~0U) 117 #define VK_SUBPASS_EXTERNAL (~0U) 118 #define VK_TRUE 1U 119 #define VK_WHOLE_SIZE (~0ULL) 120 #define VK_MAX_MEMORY_TYPES 32U 121 #define VK_MAX_MEMORY_HEAPS 16U 122 #define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE 256U 123 #define VK_MAX_EXTENSION_NAME_SIZE 256U 124 #define VK_MAX_DESCRIPTION_SIZE 256U 125 126 typedef enum VkResult { 127 VK_SUCCESS = 0, 128 VK_NOT_READY = 1, 129 VK_TIMEOUT = 2, 130 VK_EVENT_SET = 3, 131 VK_EVENT_RESET = 4, 132 VK_INCOMPLETE = 5, 133 VK_ERROR_OUT_OF_HOST_MEMORY = -1, 134 VK_ERROR_OUT_OF_DEVICE_MEMORY = -2, 135 VK_ERROR_INITIALIZATION_FAILED = -3, 136 VK_ERROR_DEVICE_LOST = -4, 137 VK_ERROR_MEMORY_MAP_FAILED = -5, 138 VK_ERROR_LAYER_NOT_PRESENT = -6, 139 VK_ERROR_EXTENSION_NOT_PRESENT = -7, 140 VK_ERROR_FEATURE_NOT_PRESENT = -8, 141 VK_ERROR_INCOMPATIBLE_DRIVER = -9, 142 VK_ERROR_TOO_MANY_OBJECTS = -10, 143 VK_ERROR_FORMAT_NOT_SUPPORTED = -11, 144 VK_ERROR_FRAGMENTED_POOL = -12, 145 VK_ERROR_UNKNOWN = -13, 146 VK_ERROR_OUT_OF_POOL_MEMORY = -1000069000, 147 VK_ERROR_INVALID_EXTERNAL_HANDLE = -1000072003, 148 VK_ERROR_FRAGMENTATION = -1000161000, 149 VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS = -1000257000, 150 VK_ERROR_VALIDATION_FAILED = -1000011001, 151 VK_ERROR_INVALID_PIPELINE_CACHE_DATA = -1000298000, 152 VK_ERROR_NO_PIPELINE_MATCH = -1000298001, 153 VK_ERROR_SURFACE_LOST_KHR = -1000000000, 154 VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = -1000000001, 155 VK_SUBOPTIMAL_KHR = 1000001003, 156 VK_ERROR_OUT_OF_DATE_KHR = -1000001004, 157 VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001, 158 VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = -1000158000, 159 VK_ERROR_NOT_PERMITTED_EXT = -1000174001, 160 VK_RESULT_MAX_ENUM = 0x7FFFFFFF 161 } VkResult; 162 163 typedef enum VkStructureType { 164 VK_STRUCTURE_TYPE_APPLICATION_INFO = 0, 165 VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1, 166 VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2, 167 VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3, 168 VK_STRUCTURE_TYPE_SUBMIT_INFO = 4, 169 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5, 170 VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6, 171 VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8, 172 VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9, 173 VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10, 174 VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11, 175 VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12, 176 VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13, 177 VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14, 178 VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15, 179 VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17, 180 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18, 181 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19, 182 VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20, 183 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21, 184 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22, 185 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23, 186 VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24, 187 VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25, 188 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26, 189 VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27, 190 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28, 191 VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29, 192 VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30, 193 VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31, 194 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32, 195 VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33, 196 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34, 197 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35, 198 VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36, 199 VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37, 200 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38, 201 VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39, 202 VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40, 203 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41, 204 VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42, 205 VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43, 206 VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44, 207 VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45, 208 VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46, 209 VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47, 210 VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48, 211 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = 1000094000, 212 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = 1000157000, 213 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = 1000157001, 214 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = 1000083000, 215 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = 1000127000, 216 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001, 217 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = 1000060000, 218 VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = 1000060003, 219 VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = 1000060004, 220 VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = 1000060005, 221 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = 1000060013, 222 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = 1000060014, 223 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = 1000070000, 224 VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = 1000070001, 225 VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = 1000146000, 226 VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = 1000146001, 227 VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = 1000146003, 228 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = 1000059000, 229 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001, 230 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = 1000059002, 231 VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = 1000059003, 232 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = 1000059004, 233 VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = 1000059005, 234 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006, 235 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = 1000117000, 236 VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = 1000117001, 237 VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = 1000117002, 238 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = 1000117003, 239 VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000, 240 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001, 241 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002, 242 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES = 1000120000, 243 VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000, 244 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001, 245 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002, 246 VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = 1000145003, 247 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = 1000156000, 248 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = 1000156001, 249 VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = 1000156002, 250 VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = 1000156003, 251 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = 1000156004, 252 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = 1000156005, 253 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = 1000071000, 254 VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = 1000071001, 255 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = 1000071002, 256 VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = 1000071003, 257 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = 1000071004, 258 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = 1000072000, 259 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = 1000072001, 260 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = 1000072002, 261 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = 1000112000, 262 VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = 1000112001, 263 VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = 1000113000, 264 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = 1000077000, 265 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = 1000076000, 266 VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001, 267 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000, 268 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001, 269 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES = 1000063000, 270 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES = 49, 271 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES = 50, 272 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES = 51, 273 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES = 52, 274 VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO = 1000147000, 275 VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2 = 1000109000, 276 VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2 = 1000109001, 277 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2 = 1000109002, 278 VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2 = 1000109003, 279 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2 = 1000109004, 280 VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO = 1000109005, 281 VK_STRUCTURE_TYPE_SUBPASS_END_INFO = 1000109006, 282 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES = 1000177000, 283 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES = 1000196000, 284 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES = 1000180000, 285 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES = 1000082000, 286 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES = 1000197000, 287 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO = 1000161000, 288 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES = 1000161001, 289 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES = 1000161002, 290 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO = 1000161003, 291 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT = 1000161004, 292 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES = 1000199000, 293 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE = 1000199001, 294 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES = 1000221000, 295 VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO = 1000246000, 296 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES = 1000130000, 297 VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO = 1000130001, 298 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES = 1000211000, 299 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES = 1000108000, 300 VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO = 1000108001, 301 VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO = 1000108002, 302 VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO = 1000108003, 303 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES = 1000253000, 304 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES = 1000175000, 305 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES = 1000241000, 306 VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT = 1000241001, 307 VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT = 1000241002, 308 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES = 1000261000, 309 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES = 1000207000, 310 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES = 1000207001, 311 VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO = 1000207002, 312 VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO = 1000207003, 313 VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO = 1000207004, 314 VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO = 1000207005, 315 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES = 1000257000, 316 VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO = 1000244001, 317 VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO = 1000257002, 318 VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO = 1000257003, 319 VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO = 1000257004, 320 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_SC_1_0_FEATURES = 1000298000, 321 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_SC_1_0_PROPERTIES = 1000298001, 322 VK_STRUCTURE_TYPE_DEVICE_OBJECT_RESERVATION_CREATE_INFO = 1000298002, 323 VK_STRUCTURE_TYPE_COMMAND_POOL_MEMORY_RESERVATION_CREATE_INFO = 1000298003, 324 VK_STRUCTURE_TYPE_COMMAND_POOL_MEMORY_CONSUMPTION = 1000298004, 325 VK_STRUCTURE_TYPE_PIPELINE_POOL_SIZE = 1000298005, 326 VK_STRUCTURE_TYPE_FAULT_DATA = 1000298007, 327 VK_STRUCTURE_TYPE_FAULT_CALLBACK_INFO = 1000298008, 328 VK_STRUCTURE_TYPE_PIPELINE_OFFLINE_CREATE_INFO = 1000298010, 329 VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000, 330 VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001, 331 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007, 332 VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008, 333 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009, 334 VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010, 335 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011, 336 VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012, 337 VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000, 338 VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001, 339 VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR = 1000003000, 340 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT = 1000066000, 341 VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000, 342 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001, 343 VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = 1000074000, 344 VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = 1000074001, 345 VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR = 1000074002, 346 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000, 347 VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001, 348 VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000, 349 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000, 350 VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000, 351 VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001, 352 VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002, 353 VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003, 354 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000, 355 VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001, 356 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000, 357 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001, 358 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT = 1000102000, 359 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT = 1000102001, 360 VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000, 361 VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000, 362 VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000, 363 VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001, 364 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR = 1000116000, 365 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR = 1000116001, 366 VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR = 1000116002, 367 VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR = 1000116003, 368 VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR = 1000116004, 369 VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR = 1000116005, 370 VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR = 1000116006, 371 VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_RESERVATION_INFO_KHR = 1000116007, 372 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000, 373 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001, 374 VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002, 375 VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR = 1000121000, 376 VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR = 1000121001, 377 VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR = 1000121002, 378 VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR = 1000121003, 379 VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR = 1000121004, 380 VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000128000, 381 VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT = 1000128001, 382 VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = 1000128002, 383 VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000128003, 384 VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000128004, 385 VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000, 386 VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001, 387 VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002, 388 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003, 389 VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004, 390 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000, 391 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001, 392 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002, 393 VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT = 1000158000, 394 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT = 1000158002, 395 VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT = 1000158003, 396 VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT = 1000158004, 397 VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158005, 398 VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT = 1000158006, 399 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT = 1000170000, 400 VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT = 1000170001, 401 VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = 1000174000, 402 VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000, 403 VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001, 404 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002, 405 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR = 1000181000, 406 VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = 1000184000, 407 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000, 408 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = 1000190001, 409 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = 1000190002, 410 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT = 1000212000, 411 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR = 1000215000, 412 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT = 1000225000, 413 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = 1000225001, 414 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT = 1000225002, 415 VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000226000, 416 VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR = 1000226001, 417 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR = 1000226002, 418 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR = 1000226003, 419 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR = 1000226004, 420 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT = 1000234000, 421 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT = 1000237000, 422 VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT = 1000247000, 423 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT = 1000251000, 424 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT = 1000252000, 425 VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT = 1000256000, 426 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT = 1000259000, 427 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT = 1000259001, 428 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT = 1000259002, 429 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT = 1000260000, 430 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT = 1000265000, 431 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT = 1000267000, 432 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT = 1000276000, 433 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = 1000281000, 434 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT = 1000281001, 435 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT = 1000286000, 436 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT = 1000286001, 437 VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT = 1000287000, 438 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT = 1000287001, 439 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT = 1000287002, 440 VK_STRUCTURE_TYPE_REFRESH_OBJECT_LIST_KHR = 1000308000, 441 VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR = 1000314000, 442 VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR = 1000314001, 443 VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR = 1000314002, 444 VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR = 1000314003, 445 VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR = 1000314004, 446 VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR = 1000314005, 447 VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR = 1000314006, 448 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR = 1000314007, 449 VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV = 1000314008, 450 VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV = 1000314009, 451 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT = 1000330000, 452 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT = 1000335000, 453 VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR = 1000337000, 454 VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR = 1000337001, 455 VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR = 1000337002, 456 VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR = 1000337003, 457 VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR = 1000337004, 458 VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR = 1000337005, 459 VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR = 1000337006, 460 VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR = 1000337007, 461 VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR = 1000337008, 462 VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR = 1000337009, 463 VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR = 1000337010, 464 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT = 1000340000, 465 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT = 1000352000, 466 VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT = 1000352001, 467 VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT = 1000352002, 468 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = 1000377000, 469 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = 1000381000, 470 VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT = 1000381001, 471 VK_STRUCTURE_TYPE_APPLICATION_PARAMETERS_EXT = 1000435000, 472 VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF 473 } VkStructureType; 474 475 typedef enum VkImageLayout { 476 VK_IMAGE_LAYOUT_UNDEFINED = 0, 477 VK_IMAGE_LAYOUT_GENERAL = 1, 478 VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2, 479 VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3, 480 VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4, 481 VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5, 482 VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6, 483 VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7, 484 VK_IMAGE_LAYOUT_PREINITIALIZED = 8, 485 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000, 486 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001, 487 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL = 1000241000, 488 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL = 1000241001, 489 VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL = 1000241002, 490 VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL = 1000241003, 491 VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002, 492 VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000, 493 VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR = 1000164003, 494 VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR = 1000314000, 495 VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR = 1000314001, 496 VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF 497 } VkImageLayout; 498 499 typedef enum VkObjectType { 500 VK_OBJECT_TYPE_UNKNOWN = 0, 501 VK_OBJECT_TYPE_INSTANCE = 1, 502 VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2, 503 VK_OBJECT_TYPE_DEVICE = 3, 504 VK_OBJECT_TYPE_QUEUE = 4, 505 VK_OBJECT_TYPE_SEMAPHORE = 5, 506 VK_OBJECT_TYPE_COMMAND_BUFFER = 6, 507 VK_OBJECT_TYPE_FENCE = 7, 508 VK_OBJECT_TYPE_DEVICE_MEMORY = 8, 509 VK_OBJECT_TYPE_BUFFER = 9, 510 VK_OBJECT_TYPE_IMAGE = 10, 511 VK_OBJECT_TYPE_EVENT = 11, 512 VK_OBJECT_TYPE_QUERY_POOL = 12, 513 VK_OBJECT_TYPE_BUFFER_VIEW = 13, 514 VK_OBJECT_TYPE_IMAGE_VIEW = 14, 515 VK_OBJECT_TYPE_PIPELINE_CACHE = 16, 516 VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17, 517 VK_OBJECT_TYPE_RENDER_PASS = 18, 518 VK_OBJECT_TYPE_PIPELINE = 19, 519 VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20, 520 VK_OBJECT_TYPE_SAMPLER = 21, 521 VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22, 522 VK_OBJECT_TYPE_DESCRIPTOR_SET = 23, 523 VK_OBJECT_TYPE_FRAMEBUFFER = 24, 524 VK_OBJECT_TYPE_COMMAND_POOL = 25, 525 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000, 526 VK_OBJECT_TYPE_SURFACE_KHR = 1000000000, 527 VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000, 528 VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000, 529 VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001, 530 VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000, 531 VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF 532 } VkObjectType; 533 534 typedef enum VkPipelineCacheHeaderVersion { 535 VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1, 536 VK_PIPELINE_CACHE_HEADER_VERSION_SAFETY_CRITICAL_ONE = 1000298001, 537 VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF 538 } VkPipelineCacheHeaderVersion; 539 540 typedef enum VkVendorId { 541 VK_VENDOR_ID_VIV = 0x10001, 542 VK_VENDOR_ID_VSI = 0x10002, 543 VK_VENDOR_ID_KAZAN = 0x10003, 544 VK_VENDOR_ID_CODEPLAY = 0x10004, 545 VK_VENDOR_ID_MESA = 0x10005, 546 VK_VENDOR_ID_POCL = 0x10006, 547 VK_VENDOR_ID_MAX_ENUM = 0x7FFFFFFF 548 } VkVendorId; 549 550 typedef enum VkSystemAllocationScope { 551 VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0, 552 VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1, 553 VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2, 554 VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3, 555 VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4, 556 VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 0x7FFFFFFF 557 } VkSystemAllocationScope; 558 559 typedef enum VkInternalAllocationType { 560 VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0, 561 VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF 562 } VkInternalAllocationType; 563 564 typedef enum VkFormat { 565 VK_FORMAT_UNDEFINED = 0, 566 VK_FORMAT_R4G4_UNORM_PACK8 = 1, 567 VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2, 568 VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3, 569 VK_FORMAT_R5G6B5_UNORM_PACK16 = 4, 570 VK_FORMAT_B5G6R5_UNORM_PACK16 = 5, 571 VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6, 572 VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7, 573 VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8, 574 VK_FORMAT_R8_UNORM = 9, 575 VK_FORMAT_R8_SNORM = 10, 576 VK_FORMAT_R8_USCALED = 11, 577 VK_FORMAT_R8_SSCALED = 12, 578 VK_FORMAT_R8_UINT = 13, 579 VK_FORMAT_R8_SINT = 14, 580 VK_FORMAT_R8_SRGB = 15, 581 VK_FORMAT_R8G8_UNORM = 16, 582 VK_FORMAT_R8G8_SNORM = 17, 583 VK_FORMAT_R8G8_USCALED = 18, 584 VK_FORMAT_R8G8_SSCALED = 19, 585 VK_FORMAT_R8G8_UINT = 20, 586 VK_FORMAT_R8G8_SINT = 21, 587 VK_FORMAT_R8G8_SRGB = 22, 588 VK_FORMAT_R8G8B8_UNORM = 23, 589 VK_FORMAT_R8G8B8_SNORM = 24, 590 VK_FORMAT_R8G8B8_USCALED = 25, 591 VK_FORMAT_R8G8B8_SSCALED = 26, 592 VK_FORMAT_R8G8B8_UINT = 27, 593 VK_FORMAT_R8G8B8_SINT = 28, 594 VK_FORMAT_R8G8B8_SRGB = 29, 595 VK_FORMAT_B8G8R8_UNORM = 30, 596 VK_FORMAT_B8G8R8_SNORM = 31, 597 VK_FORMAT_B8G8R8_USCALED = 32, 598 VK_FORMAT_B8G8R8_SSCALED = 33, 599 VK_FORMAT_B8G8R8_UINT = 34, 600 VK_FORMAT_B8G8R8_SINT = 35, 601 VK_FORMAT_B8G8R8_SRGB = 36, 602 VK_FORMAT_R8G8B8A8_UNORM = 37, 603 VK_FORMAT_R8G8B8A8_SNORM = 38, 604 VK_FORMAT_R8G8B8A8_USCALED = 39, 605 VK_FORMAT_R8G8B8A8_SSCALED = 40, 606 VK_FORMAT_R8G8B8A8_UINT = 41, 607 VK_FORMAT_R8G8B8A8_SINT = 42, 608 VK_FORMAT_R8G8B8A8_SRGB = 43, 609 VK_FORMAT_B8G8R8A8_UNORM = 44, 610 VK_FORMAT_B8G8R8A8_SNORM = 45, 611 VK_FORMAT_B8G8R8A8_USCALED = 46, 612 VK_FORMAT_B8G8R8A8_SSCALED = 47, 613 VK_FORMAT_B8G8R8A8_UINT = 48, 614 VK_FORMAT_B8G8R8A8_SINT = 49, 615 VK_FORMAT_B8G8R8A8_SRGB = 50, 616 VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51, 617 VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52, 618 VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53, 619 VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54, 620 VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55, 621 VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56, 622 VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57, 623 VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58, 624 VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59, 625 VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60, 626 VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61, 627 VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62, 628 VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63, 629 VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64, 630 VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65, 631 VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66, 632 VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67, 633 VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68, 634 VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69, 635 VK_FORMAT_R16_UNORM = 70, 636 VK_FORMAT_R16_SNORM = 71, 637 VK_FORMAT_R16_USCALED = 72, 638 VK_FORMAT_R16_SSCALED = 73, 639 VK_FORMAT_R16_UINT = 74, 640 VK_FORMAT_R16_SINT = 75, 641 VK_FORMAT_R16_SFLOAT = 76, 642 VK_FORMAT_R16G16_UNORM = 77, 643 VK_FORMAT_R16G16_SNORM = 78, 644 VK_FORMAT_R16G16_USCALED = 79, 645 VK_FORMAT_R16G16_SSCALED = 80, 646 VK_FORMAT_R16G16_UINT = 81, 647 VK_FORMAT_R16G16_SINT = 82, 648 VK_FORMAT_R16G16_SFLOAT = 83, 649 VK_FORMAT_R16G16B16_UNORM = 84, 650 VK_FORMAT_R16G16B16_SNORM = 85, 651 VK_FORMAT_R16G16B16_USCALED = 86, 652 VK_FORMAT_R16G16B16_SSCALED = 87, 653 VK_FORMAT_R16G16B16_UINT = 88, 654 VK_FORMAT_R16G16B16_SINT = 89, 655 VK_FORMAT_R16G16B16_SFLOAT = 90, 656 VK_FORMAT_R16G16B16A16_UNORM = 91, 657 VK_FORMAT_R16G16B16A16_SNORM = 92, 658 VK_FORMAT_R16G16B16A16_USCALED = 93, 659 VK_FORMAT_R16G16B16A16_SSCALED = 94, 660 VK_FORMAT_R16G16B16A16_UINT = 95, 661 VK_FORMAT_R16G16B16A16_SINT = 96, 662 VK_FORMAT_R16G16B16A16_SFLOAT = 97, 663 VK_FORMAT_R32_UINT = 98, 664 VK_FORMAT_R32_SINT = 99, 665 VK_FORMAT_R32_SFLOAT = 100, 666 VK_FORMAT_R32G32_UINT = 101, 667 VK_FORMAT_R32G32_SINT = 102, 668 VK_FORMAT_R32G32_SFLOAT = 103, 669 VK_FORMAT_R32G32B32_UINT = 104, 670 VK_FORMAT_R32G32B32_SINT = 105, 671 VK_FORMAT_R32G32B32_SFLOAT = 106, 672 VK_FORMAT_R32G32B32A32_UINT = 107, 673 VK_FORMAT_R32G32B32A32_SINT = 108, 674 VK_FORMAT_R32G32B32A32_SFLOAT = 109, 675 VK_FORMAT_R64_UINT = 110, 676 VK_FORMAT_R64_SINT = 111, 677 VK_FORMAT_R64_SFLOAT = 112, 678 VK_FORMAT_R64G64_UINT = 113, 679 VK_FORMAT_R64G64_SINT = 114, 680 VK_FORMAT_R64G64_SFLOAT = 115, 681 VK_FORMAT_R64G64B64_UINT = 116, 682 VK_FORMAT_R64G64B64_SINT = 117, 683 VK_FORMAT_R64G64B64_SFLOAT = 118, 684 VK_FORMAT_R64G64B64A64_UINT = 119, 685 VK_FORMAT_R64G64B64A64_SINT = 120, 686 VK_FORMAT_R64G64B64A64_SFLOAT = 121, 687 VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122, 688 VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123, 689 VK_FORMAT_D16_UNORM = 124, 690 VK_FORMAT_X8_D24_UNORM_PACK32 = 125, 691 VK_FORMAT_D32_SFLOAT = 126, 692 VK_FORMAT_S8_UINT = 127, 693 VK_FORMAT_D16_UNORM_S8_UINT = 128, 694 VK_FORMAT_D24_UNORM_S8_UINT = 129, 695 VK_FORMAT_D32_SFLOAT_S8_UINT = 130, 696 VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131, 697 VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132, 698 VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133, 699 VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134, 700 VK_FORMAT_BC2_UNORM_BLOCK = 135, 701 VK_FORMAT_BC2_SRGB_BLOCK = 136, 702 VK_FORMAT_BC3_UNORM_BLOCK = 137, 703 VK_FORMAT_BC3_SRGB_BLOCK = 138, 704 VK_FORMAT_BC4_UNORM_BLOCK = 139, 705 VK_FORMAT_BC4_SNORM_BLOCK = 140, 706 VK_FORMAT_BC5_UNORM_BLOCK = 141, 707 VK_FORMAT_BC5_SNORM_BLOCK = 142, 708 VK_FORMAT_BC6H_UFLOAT_BLOCK = 143, 709 VK_FORMAT_BC6H_SFLOAT_BLOCK = 144, 710 VK_FORMAT_BC7_UNORM_BLOCK = 145, 711 VK_FORMAT_BC7_SRGB_BLOCK = 146, 712 VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147, 713 VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148, 714 VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149, 715 VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150, 716 VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151, 717 VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152, 718 VK_FORMAT_EAC_R11_UNORM_BLOCK = 153, 719 VK_FORMAT_EAC_R11_SNORM_BLOCK = 154, 720 VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155, 721 VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156, 722 VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157, 723 VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158, 724 VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159, 725 VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160, 726 VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161, 727 VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162, 728 VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163, 729 VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164, 730 VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165, 731 VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166, 732 VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167, 733 VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168, 734 VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169, 735 VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170, 736 VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171, 737 VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172, 738 VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173, 739 VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174, 740 VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175, 741 VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176, 742 VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177, 743 VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178, 744 VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179, 745 VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180, 746 VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181, 747 VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182, 748 VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183, 749 VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184, 750 VK_FORMAT_G8B8G8R8_422_UNORM = 1000156000, 751 VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001, 752 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002, 753 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003, 754 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004, 755 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005, 756 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006, 757 VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007, 758 VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008, 759 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009, 760 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010, 761 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011, 762 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012, 763 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013, 764 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014, 765 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015, 766 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016, 767 VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017, 768 VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018, 769 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019, 770 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020, 771 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021, 772 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022, 773 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023, 774 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024, 775 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025, 776 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026, 777 VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027, 778 VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028, 779 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029, 780 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030, 781 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031, 782 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032, 783 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033, 784 VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = 1000066000, 785 VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = 1000066001, 786 VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = 1000066002, 787 VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT = 1000066003, 788 VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT = 1000066004, 789 VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT = 1000066005, 790 VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT = 1000066006, 791 VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT = 1000066007, 792 VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT = 1000066008, 793 VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT = 1000066009, 794 VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT = 1000066010, 795 VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT = 1000066011, 796 VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT = 1000066012, 797 VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT = 1000066013, 798 VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT = 1000330000, 799 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT = 1000330001, 800 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT = 1000330002, 801 VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT = 1000330003, 802 VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT = 1000340000, 803 VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT = 1000340001, 804 VK_FORMAT_MAX_ENUM = 0x7FFFFFFF 805 } VkFormat; 806 807 typedef enum VkImageTiling { 808 VK_IMAGE_TILING_OPTIMAL = 0, 809 VK_IMAGE_TILING_LINEAR = 1, 810 VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT = 1000158000, 811 VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF 812 } VkImageTiling; 813 814 typedef enum VkImageType { 815 VK_IMAGE_TYPE_1D = 0, 816 VK_IMAGE_TYPE_2D = 1, 817 VK_IMAGE_TYPE_3D = 2, 818 VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF 819 } VkImageType; 820 821 typedef enum VkPhysicalDeviceType { 822 VK_PHYSICAL_DEVICE_TYPE_OTHER = 0, 823 VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1, 824 VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2, 825 VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3, 826 VK_PHYSICAL_DEVICE_TYPE_CPU = 4, 827 VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF 828 } VkPhysicalDeviceType; 829 830 typedef enum VkQueryType { 831 VK_QUERY_TYPE_OCCLUSION = 0, 832 VK_QUERY_TYPE_PIPELINE_STATISTICS = 1, 833 VK_QUERY_TYPE_TIMESTAMP = 2, 834 VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR = 1000116000, 835 VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF 836 } VkQueryType; 837 838 typedef enum VkSharingMode { 839 VK_SHARING_MODE_EXCLUSIVE = 0, 840 VK_SHARING_MODE_CONCURRENT = 1, 841 VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF 842 } VkSharingMode; 843 844 typedef enum VkComponentSwizzle { 845 VK_COMPONENT_SWIZZLE_IDENTITY = 0, 846 VK_COMPONENT_SWIZZLE_ZERO = 1, 847 VK_COMPONENT_SWIZZLE_ONE = 2, 848 VK_COMPONENT_SWIZZLE_R = 3, 849 VK_COMPONENT_SWIZZLE_G = 4, 850 VK_COMPONENT_SWIZZLE_B = 5, 851 VK_COMPONENT_SWIZZLE_A = 6, 852 VK_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF 853 } VkComponentSwizzle; 854 855 typedef enum VkImageViewType { 856 VK_IMAGE_VIEW_TYPE_1D = 0, 857 VK_IMAGE_VIEW_TYPE_2D = 1, 858 VK_IMAGE_VIEW_TYPE_3D = 2, 859 VK_IMAGE_VIEW_TYPE_CUBE = 3, 860 VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4, 861 VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5, 862 VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6, 863 VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF 864 } VkImageViewType; 865 866 typedef enum VkBlendFactor { 867 VK_BLEND_FACTOR_ZERO = 0, 868 VK_BLEND_FACTOR_ONE = 1, 869 VK_BLEND_FACTOR_SRC_COLOR = 2, 870 VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3, 871 VK_BLEND_FACTOR_DST_COLOR = 4, 872 VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5, 873 VK_BLEND_FACTOR_SRC_ALPHA = 6, 874 VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7, 875 VK_BLEND_FACTOR_DST_ALPHA = 8, 876 VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9, 877 VK_BLEND_FACTOR_CONSTANT_COLOR = 10, 878 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11, 879 VK_BLEND_FACTOR_CONSTANT_ALPHA = 12, 880 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13, 881 VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14, 882 VK_BLEND_FACTOR_SRC1_COLOR = 15, 883 VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16, 884 VK_BLEND_FACTOR_SRC1_ALPHA = 17, 885 VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18, 886 VK_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF 887 } VkBlendFactor; 888 889 typedef enum VkBlendOp { 890 VK_BLEND_OP_ADD = 0, 891 VK_BLEND_OP_SUBTRACT = 1, 892 VK_BLEND_OP_REVERSE_SUBTRACT = 2, 893 VK_BLEND_OP_MIN = 3, 894 VK_BLEND_OP_MAX = 4, 895 VK_BLEND_OP_ZERO_EXT = 1000148000, 896 VK_BLEND_OP_SRC_EXT = 1000148001, 897 VK_BLEND_OP_DST_EXT = 1000148002, 898 VK_BLEND_OP_SRC_OVER_EXT = 1000148003, 899 VK_BLEND_OP_DST_OVER_EXT = 1000148004, 900 VK_BLEND_OP_SRC_IN_EXT = 1000148005, 901 VK_BLEND_OP_DST_IN_EXT = 1000148006, 902 VK_BLEND_OP_SRC_OUT_EXT = 1000148007, 903 VK_BLEND_OP_DST_OUT_EXT = 1000148008, 904 VK_BLEND_OP_SRC_ATOP_EXT = 1000148009, 905 VK_BLEND_OP_DST_ATOP_EXT = 1000148010, 906 VK_BLEND_OP_XOR_EXT = 1000148011, 907 VK_BLEND_OP_MULTIPLY_EXT = 1000148012, 908 VK_BLEND_OP_SCREEN_EXT = 1000148013, 909 VK_BLEND_OP_OVERLAY_EXT = 1000148014, 910 VK_BLEND_OP_DARKEN_EXT = 1000148015, 911 VK_BLEND_OP_LIGHTEN_EXT = 1000148016, 912 VK_BLEND_OP_COLORDODGE_EXT = 1000148017, 913 VK_BLEND_OP_COLORBURN_EXT = 1000148018, 914 VK_BLEND_OP_HARDLIGHT_EXT = 1000148019, 915 VK_BLEND_OP_SOFTLIGHT_EXT = 1000148020, 916 VK_BLEND_OP_DIFFERENCE_EXT = 1000148021, 917 VK_BLEND_OP_EXCLUSION_EXT = 1000148022, 918 VK_BLEND_OP_INVERT_EXT = 1000148023, 919 VK_BLEND_OP_INVERT_RGB_EXT = 1000148024, 920 VK_BLEND_OP_LINEARDODGE_EXT = 1000148025, 921 VK_BLEND_OP_LINEARBURN_EXT = 1000148026, 922 VK_BLEND_OP_VIVIDLIGHT_EXT = 1000148027, 923 VK_BLEND_OP_LINEARLIGHT_EXT = 1000148028, 924 VK_BLEND_OP_PINLIGHT_EXT = 1000148029, 925 VK_BLEND_OP_HARDMIX_EXT = 1000148030, 926 VK_BLEND_OP_HSL_HUE_EXT = 1000148031, 927 VK_BLEND_OP_HSL_SATURATION_EXT = 1000148032, 928 VK_BLEND_OP_HSL_COLOR_EXT = 1000148033, 929 VK_BLEND_OP_HSL_LUMINOSITY_EXT = 1000148034, 930 VK_BLEND_OP_PLUS_EXT = 1000148035, 931 VK_BLEND_OP_PLUS_CLAMPED_EXT = 1000148036, 932 VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037, 933 VK_BLEND_OP_PLUS_DARKER_EXT = 1000148038, 934 VK_BLEND_OP_MINUS_EXT = 1000148039, 935 VK_BLEND_OP_MINUS_CLAMPED_EXT = 1000148040, 936 VK_BLEND_OP_CONTRAST_EXT = 1000148041, 937 VK_BLEND_OP_INVERT_OVG_EXT = 1000148042, 938 VK_BLEND_OP_RED_EXT = 1000148043, 939 VK_BLEND_OP_GREEN_EXT = 1000148044, 940 VK_BLEND_OP_BLUE_EXT = 1000148045, 941 VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF 942 } VkBlendOp; 943 944 typedef enum VkCompareOp { 945 VK_COMPARE_OP_NEVER = 0, 946 VK_COMPARE_OP_LESS = 1, 947 VK_COMPARE_OP_EQUAL = 2, 948 VK_COMPARE_OP_LESS_OR_EQUAL = 3, 949 VK_COMPARE_OP_GREATER = 4, 950 VK_COMPARE_OP_NOT_EQUAL = 5, 951 VK_COMPARE_OP_GREATER_OR_EQUAL = 6, 952 VK_COMPARE_OP_ALWAYS = 7, 953 VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF 954 } VkCompareOp; 955 956 typedef enum VkDynamicState { 957 VK_DYNAMIC_STATE_VIEWPORT = 0, 958 VK_DYNAMIC_STATE_SCISSOR = 1, 959 VK_DYNAMIC_STATE_LINE_WIDTH = 2, 960 VK_DYNAMIC_STATE_DEPTH_BIAS = 3, 961 VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4, 962 VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5, 963 VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6, 964 VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7, 965 VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8, 966 VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000, 967 VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000, 968 VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR = 1000226000, 969 VK_DYNAMIC_STATE_LINE_STIPPLE_EXT = 1000259000, 970 VK_DYNAMIC_STATE_CULL_MODE_EXT = 1000267000, 971 VK_DYNAMIC_STATE_FRONT_FACE_EXT = 1000267001, 972 VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT = 1000267002, 973 VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT = 1000267003, 974 VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT = 1000267004, 975 VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT = 1000267005, 976 VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT = 1000267006, 977 VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT = 1000267007, 978 VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT = 1000267008, 979 VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT = 1000267009, 980 VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT = 1000267010, 981 VK_DYNAMIC_STATE_STENCIL_OP_EXT = 1000267011, 982 VK_DYNAMIC_STATE_VERTEX_INPUT_EXT = 1000352000, 983 VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT = 1000377000, 984 VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT = 1000377001, 985 VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT = 1000377002, 986 VK_DYNAMIC_STATE_LOGIC_OP_EXT = 1000377003, 987 VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT = 1000377004, 988 VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT = 1000381000, 989 VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF 990 } VkDynamicState; 991 992 typedef enum VkFrontFace { 993 VK_FRONT_FACE_COUNTER_CLOCKWISE = 0, 994 VK_FRONT_FACE_CLOCKWISE = 1, 995 VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF 996 } VkFrontFace; 997 998 typedef enum VkVertexInputRate { 999 VK_VERTEX_INPUT_RATE_VERTEX = 0, 1000 VK_VERTEX_INPUT_RATE_INSTANCE = 1, 1001 VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF 1002 } VkVertexInputRate; 1003 1004 typedef enum VkPrimitiveTopology { 1005 VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0, 1006 VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1, 1007 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2, 1008 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3, 1009 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4, 1010 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5, 1011 VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6, 1012 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7, 1013 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8, 1014 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9, 1015 VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10, 1016 VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF 1017 } VkPrimitiveTopology; 1018 1019 typedef enum VkPolygonMode { 1020 VK_POLYGON_MODE_FILL = 0, 1021 VK_POLYGON_MODE_LINE = 1, 1022 VK_POLYGON_MODE_POINT = 2, 1023 VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF 1024 } VkPolygonMode; 1025 1026 typedef enum VkStencilOp { 1027 VK_STENCIL_OP_KEEP = 0, 1028 VK_STENCIL_OP_ZERO = 1, 1029 VK_STENCIL_OP_REPLACE = 2, 1030 VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3, 1031 VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4, 1032 VK_STENCIL_OP_INVERT = 5, 1033 VK_STENCIL_OP_INCREMENT_AND_WRAP = 6, 1034 VK_STENCIL_OP_DECREMENT_AND_WRAP = 7, 1035 VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF 1036 } VkStencilOp; 1037 1038 typedef enum VkLogicOp { 1039 VK_LOGIC_OP_CLEAR = 0, 1040 VK_LOGIC_OP_AND = 1, 1041 VK_LOGIC_OP_AND_REVERSE = 2, 1042 VK_LOGIC_OP_COPY = 3, 1043 VK_LOGIC_OP_AND_INVERTED = 4, 1044 VK_LOGIC_OP_NO_OP = 5, 1045 VK_LOGIC_OP_XOR = 6, 1046 VK_LOGIC_OP_OR = 7, 1047 VK_LOGIC_OP_NOR = 8, 1048 VK_LOGIC_OP_EQUIVALENT = 9, 1049 VK_LOGIC_OP_INVERT = 10, 1050 VK_LOGIC_OP_OR_REVERSE = 11, 1051 VK_LOGIC_OP_COPY_INVERTED = 12, 1052 VK_LOGIC_OP_OR_INVERTED = 13, 1053 VK_LOGIC_OP_NAND = 14, 1054 VK_LOGIC_OP_SET = 15, 1055 VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF 1056 } VkLogicOp; 1057 1058 typedef enum VkBorderColor { 1059 VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0, 1060 VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1, 1061 VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2, 1062 VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3, 1063 VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4, 1064 VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5, 1065 VK_BORDER_COLOR_FLOAT_CUSTOM_EXT = 1000287003, 1066 VK_BORDER_COLOR_INT_CUSTOM_EXT = 1000287004, 1067 VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF 1068 } VkBorderColor; 1069 1070 typedef enum VkFilter { 1071 VK_FILTER_NEAREST = 0, 1072 VK_FILTER_LINEAR = 1, 1073 VK_FILTER_CUBIC_IMG = 1000015000, 1074 VK_FILTER_CUBIC_EXT = VK_FILTER_CUBIC_IMG, 1075 VK_FILTER_MAX_ENUM = 0x7FFFFFFF 1076 } VkFilter; 1077 1078 typedef enum VkSamplerAddressMode { 1079 VK_SAMPLER_ADDRESS_MODE_REPEAT = 0, 1080 VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1, 1081 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2, 1082 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3, 1083 VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4, 1084 VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF 1085 } VkSamplerAddressMode; 1086 1087 typedef enum VkSamplerMipmapMode { 1088 VK_SAMPLER_MIPMAP_MODE_NEAREST = 0, 1089 VK_SAMPLER_MIPMAP_MODE_LINEAR = 1, 1090 VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF 1091 } VkSamplerMipmapMode; 1092 1093 typedef enum VkDescriptorType { 1094 VK_DESCRIPTOR_TYPE_SAMPLER = 0, 1095 VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1, 1096 VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2, 1097 VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3, 1098 VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4, 1099 VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5, 1100 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6, 1101 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7, 1102 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8, 1103 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9, 1104 VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10, 1105 VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF 1106 } VkDescriptorType; 1107 1108 typedef enum VkAttachmentLoadOp { 1109 VK_ATTACHMENT_LOAD_OP_LOAD = 0, 1110 VK_ATTACHMENT_LOAD_OP_CLEAR = 1, 1111 VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2, 1112 VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF 1113 } VkAttachmentLoadOp; 1114 1115 typedef enum VkAttachmentStoreOp { 1116 VK_ATTACHMENT_STORE_OP_STORE = 0, 1117 VK_ATTACHMENT_STORE_OP_DONT_CARE = 1, 1118 VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF 1119 } VkAttachmentStoreOp; 1120 1121 typedef enum VkPipelineBindPoint { 1122 VK_PIPELINE_BIND_POINT_GRAPHICS = 0, 1123 VK_PIPELINE_BIND_POINT_COMPUTE = 1, 1124 VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF 1125 } VkPipelineBindPoint; 1126 1127 typedef enum VkCommandBufferLevel { 1128 VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0, 1129 VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1, 1130 VK_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF 1131 } VkCommandBufferLevel; 1132 1133 typedef enum VkIndexType { 1134 VK_INDEX_TYPE_UINT16 = 0, 1135 VK_INDEX_TYPE_UINT32 = 1, 1136 VK_INDEX_TYPE_UINT8_EXT = 1000265000, 1137 VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF 1138 } VkIndexType; 1139 1140 typedef enum VkSubpassContents { 1141 VK_SUBPASS_CONTENTS_INLINE = 0, 1142 VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1, 1143 VK_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF 1144 } VkSubpassContents; 1145 1146 typedef enum VkAccessFlagBits { 1147 VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001, 1148 VK_ACCESS_INDEX_READ_BIT = 0x00000002, 1149 VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004, 1150 VK_ACCESS_UNIFORM_READ_BIT = 0x00000008, 1151 VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010, 1152 VK_ACCESS_SHADER_READ_BIT = 0x00000020, 1153 VK_ACCESS_SHADER_WRITE_BIT = 0x00000040, 1154 VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080, 1155 VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100, 1156 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200, 1157 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400, 1158 VK_ACCESS_TRANSFER_READ_BIT = 0x00000800, 1159 VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000, 1160 VK_ACCESS_HOST_READ_BIT = 0x00002000, 1161 VK_ACCESS_HOST_WRITE_BIT = 0x00004000, 1162 VK_ACCESS_MEMORY_READ_BIT = 0x00008000, 1163 VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000, 1164 VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000, 1165 VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000, 1166 VK_ACCESS_NONE_KHR = 0, 1167 VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1168 } VkAccessFlagBits; 1169 typedef VkFlags VkAccessFlags; 1170 1171 typedef enum VkImageAspectFlagBits { 1172 VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001, 1173 VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002, 1174 VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004, 1175 VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008, 1176 VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010, 1177 VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020, 1178 VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040, 1179 VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0x00000080, 1180 VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0x00000100, 1181 VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0x00000200, 1182 VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0x00000400, 1183 VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1184 } VkImageAspectFlagBits; 1185 typedef VkFlags VkImageAspectFlags; 1186 1187 typedef enum VkFormatFeatureFlagBits { 1188 VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001, 1189 VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002, 1190 VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004, 1191 VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008, 1192 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010, 1193 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020, 1194 VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040, 1195 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080, 1196 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100, 1197 VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200, 1198 VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400, 1199 VK_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800, 1200 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000, 1201 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 0x00004000, 1202 VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 0x00008000, 1203 VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000, 1204 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000, 1205 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000, 1206 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000, 1207 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000, 1208 VK_FORMAT_FEATURE_DISJOINT_BIT = 0x00400000, 1209 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000, 1210 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0x00010000, 1211 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000, 1212 VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x40000000, 1213 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG, 1214 VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1215 } VkFormatFeatureFlagBits; 1216 typedef VkFlags VkFormatFeatureFlags; 1217 1218 typedef enum VkImageCreateFlagBits { 1219 VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001, 1220 VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, 1221 VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004, 1222 VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008, 1223 VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010, 1224 VK_IMAGE_CREATE_ALIAS_BIT = 0x00000400, 1225 VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 0x00000040, 1226 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 0x00000020, 1227 VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 0x00000080, 1228 VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0x00000100, 1229 VK_IMAGE_CREATE_PROTECTED_BIT = 0x00000800, 1230 VK_IMAGE_CREATE_DISJOINT_BIT = 0x00000200, 1231 VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000, 1232 VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1233 } VkImageCreateFlagBits; 1234 typedef VkFlags VkImageCreateFlags; 1235 1236 typedef enum VkSampleCountFlagBits { 1237 VK_SAMPLE_COUNT_1_BIT = 0x00000001, 1238 VK_SAMPLE_COUNT_2_BIT = 0x00000002, 1239 VK_SAMPLE_COUNT_4_BIT = 0x00000004, 1240 VK_SAMPLE_COUNT_8_BIT = 0x00000008, 1241 VK_SAMPLE_COUNT_16_BIT = 0x00000010, 1242 VK_SAMPLE_COUNT_32_BIT = 0x00000020, 1243 VK_SAMPLE_COUNT_64_BIT = 0x00000040, 1244 VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1245 } VkSampleCountFlagBits; 1246 typedef VkFlags VkSampleCountFlags; 1247 1248 typedef enum VkImageUsageFlagBits { 1249 VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001, 1250 VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002, 1251 VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004, 1252 VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008, 1253 VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010, 1254 VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020, 1255 VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040, 1256 VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080, 1257 VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00000100, 1258 VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1259 } VkImageUsageFlagBits; 1260 typedef VkFlags VkImageUsageFlags; 1261 typedef VkFlags VkInstanceCreateFlags; 1262 1263 typedef enum VkMemoryHeapFlagBits { 1264 VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001, 1265 VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002, 1266 VK_MEMORY_HEAP_SEU_SAFE_BIT = 0x00000004, 1267 VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1268 } VkMemoryHeapFlagBits; 1269 typedef VkFlags VkMemoryHeapFlags; 1270 1271 typedef enum VkMemoryPropertyFlagBits { 1272 VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001, 1273 VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002, 1274 VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004, 1275 VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008, 1276 VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010, 1277 VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020, 1278 VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1279 } VkMemoryPropertyFlagBits; 1280 typedef VkFlags VkMemoryPropertyFlags; 1281 1282 typedef enum VkQueueFlagBits { 1283 VK_QUEUE_GRAPHICS_BIT = 0x00000001, 1284 VK_QUEUE_COMPUTE_BIT = 0x00000002, 1285 VK_QUEUE_TRANSFER_BIT = 0x00000004, 1286 VK_QUEUE_PROTECTED_BIT = 0x00000010, 1287 VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1288 } VkQueueFlagBits; 1289 typedef VkFlags VkQueueFlags; 1290 typedef VkFlags VkDeviceCreateFlags; 1291 1292 typedef enum VkDeviceQueueCreateFlagBits { 1293 VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0x00000001, 1294 VK_DEVICE_QUEUE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1295 } VkDeviceQueueCreateFlagBits; 1296 typedef VkFlags VkDeviceQueueCreateFlags; 1297 1298 typedef enum VkPipelineStageFlagBits { 1299 VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001, 1300 VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002, 1301 VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004, 1302 VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008, 1303 VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010, 1304 VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020, 1305 VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040, 1306 VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080, 1307 VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100, 1308 VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200, 1309 VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400, 1310 VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800, 1311 VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000, 1312 VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000, 1313 VK_PIPELINE_STAGE_HOST_BIT = 0x00004000, 1314 VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000, 1315 VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000, 1316 VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00400000, 1317 VK_PIPELINE_STAGE_NONE_KHR = 0, 1318 VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1319 } VkPipelineStageFlagBits; 1320 typedef VkFlags VkPipelineStageFlags; 1321 typedef VkFlags VkMemoryMapFlags; 1322 1323 typedef enum VkFenceCreateFlagBits { 1324 VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001, 1325 VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1326 } VkFenceCreateFlagBits; 1327 typedef VkFlags VkFenceCreateFlags; 1328 typedef VkFlags VkSemaphoreCreateFlags; 1329 1330 typedef enum VkEventCreateFlagBits { 1331 VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR = 0x00000001, 1332 VK_EVENT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1333 } VkEventCreateFlagBits; 1334 typedef VkFlags VkEventCreateFlags; 1335 1336 typedef enum VkQueryPipelineStatisticFlagBits { 1337 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001, 1338 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002, 1339 VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004, 1340 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008, 1341 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010, 1342 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020, 1343 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040, 1344 VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080, 1345 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100, 1346 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200, 1347 VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400, 1348 VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1349 } VkQueryPipelineStatisticFlagBits; 1350 typedef VkFlags VkQueryPipelineStatisticFlags; 1351 typedef VkFlags VkQueryPoolCreateFlags; 1352 1353 typedef enum VkQueryResultFlagBits { 1354 VK_QUERY_RESULT_64_BIT = 0x00000001, 1355 VK_QUERY_RESULT_WAIT_BIT = 0x00000002, 1356 VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004, 1357 VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008, 1358 VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1359 } VkQueryResultFlagBits; 1360 typedef VkFlags VkQueryResultFlags; 1361 1362 typedef enum VkBufferCreateFlagBits { 1363 VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001, 1364 VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, 1365 VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004, 1366 VK_BUFFER_CREATE_PROTECTED_BIT = 0x00000008, 1367 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0x00000010, 1368 VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1369 } VkBufferCreateFlagBits; 1370 typedef VkFlags VkBufferCreateFlags; 1371 1372 typedef enum VkBufferUsageFlagBits { 1373 VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001, 1374 VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002, 1375 VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004, 1376 VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008, 1377 VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010, 1378 VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020, 1379 VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040, 1380 VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080, 1381 VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100, 1382 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = 0x00020000, 1383 VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1384 } VkBufferUsageFlagBits; 1385 typedef VkFlags VkBufferUsageFlags; 1386 typedef VkFlags VkBufferViewCreateFlags; 1387 1388 typedef enum VkImageViewCreateFlagBits { 1389 VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1390 } VkImageViewCreateFlagBits; 1391 typedef VkFlags VkImageViewCreateFlags; 1392 1393 typedef enum VkPipelineCacheCreateFlagBits { 1394 VK_PIPELINE_CACHE_CREATE_USE_APPLICATION_STORAGE_BIT = 0x00000004, 1395 VK_PIPELINE_CACHE_CREATE_RESERVED_1_BIT_EXT = 0x00000002, 1396 VK_PIPELINE_CACHE_CREATE_READ_ONLY_BIT = VK_PIPELINE_CACHE_CREATE_RESERVED_1_BIT_EXT, 1397 VK_PIPELINE_CACHE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1398 } VkPipelineCacheCreateFlagBits; 1399 typedef VkFlags VkPipelineCacheCreateFlags; 1400 1401 typedef enum VkColorComponentFlagBits { 1402 VK_COLOR_COMPONENT_R_BIT = 0x00000001, 1403 VK_COLOR_COMPONENT_G_BIT = 0x00000002, 1404 VK_COLOR_COMPONENT_B_BIT = 0x00000004, 1405 VK_COLOR_COMPONENT_A_BIT = 0x00000008, 1406 VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1407 } VkColorComponentFlagBits; 1408 typedef VkFlags VkColorComponentFlags; 1409 1410 typedef enum VkPipelineCreateFlagBits { 1411 VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001, 1412 VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002, 1413 VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008, 1414 VK_PIPELINE_CREATE_DISPATCH_BASE_BIT = 0x00000010, 1415 VK_PIPELINE_CREATE_DISPATCH_BASE = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT, 1416 VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1417 } VkPipelineCreateFlagBits; 1418 typedef VkFlags VkPipelineCreateFlags; 1419 1420 typedef enum VkPipelineShaderStageCreateFlagBits { 1421 VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = 0x00000001, 1422 VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = 0x00000002, 1423 VK_PIPELINE_SHADER_STAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1424 } VkPipelineShaderStageCreateFlagBits; 1425 typedef VkFlags VkPipelineShaderStageCreateFlags; 1426 1427 typedef enum VkShaderStageFlagBits { 1428 VK_SHADER_STAGE_VERTEX_BIT = 0x00000001, 1429 VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002, 1430 VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004, 1431 VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008, 1432 VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010, 1433 VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020, 1434 VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F, 1435 VK_SHADER_STAGE_ALL = 0x7FFFFFFF, 1436 VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1437 } VkShaderStageFlagBits; 1438 1439 typedef enum VkCullModeFlagBits { 1440 VK_CULL_MODE_NONE = 0, 1441 VK_CULL_MODE_FRONT_BIT = 0x00000001, 1442 VK_CULL_MODE_BACK_BIT = 0x00000002, 1443 VK_CULL_MODE_FRONT_AND_BACK = 0x00000003, 1444 VK_CULL_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1445 } VkCullModeFlagBits; 1446 typedef VkFlags VkCullModeFlags; 1447 typedef VkFlags VkPipelineVertexInputStateCreateFlags; 1448 typedef VkFlags VkPipelineInputAssemblyStateCreateFlags; 1449 typedef VkFlags VkPipelineTessellationStateCreateFlags; 1450 typedef VkFlags VkPipelineViewportStateCreateFlags; 1451 typedef VkFlags VkPipelineRasterizationStateCreateFlags; 1452 typedef VkFlags VkPipelineMultisampleStateCreateFlags; 1453 typedef VkFlags VkPipelineDepthStencilStateCreateFlags; 1454 typedef VkFlags VkPipelineColorBlendStateCreateFlags; 1455 typedef VkFlags VkPipelineDynamicStateCreateFlags; 1456 typedef VkFlags VkPipelineLayoutCreateFlags; 1457 typedef VkFlags VkShaderStageFlags; 1458 1459 typedef enum VkSamplerCreateFlagBits { 1460 VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1461 } VkSamplerCreateFlagBits; 1462 typedef VkFlags VkSamplerCreateFlags; 1463 1464 typedef enum VkDescriptorPoolCreateFlagBits { 1465 VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001, 1466 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 0x00000002, 1467 VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1468 } VkDescriptorPoolCreateFlagBits; 1469 typedef VkFlags VkDescriptorPoolCreateFlags; 1470 typedef VkFlags VkDescriptorPoolResetFlags; 1471 1472 typedef enum VkDescriptorSetLayoutCreateFlagBits { 1473 VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = 0x00000002, 1474 VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1475 } VkDescriptorSetLayoutCreateFlagBits; 1476 typedef VkFlags VkDescriptorSetLayoutCreateFlags; 1477 1478 typedef enum VkAttachmentDescriptionFlagBits { 1479 VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001, 1480 VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1481 } VkAttachmentDescriptionFlagBits; 1482 typedef VkFlags VkAttachmentDescriptionFlags; 1483 1484 typedef enum VkDependencyFlagBits { 1485 VK_DEPENDENCY_BY_REGION_BIT = 0x00000001, 1486 VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004, 1487 VK_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002, 1488 VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1489 } VkDependencyFlagBits; 1490 typedef VkFlags VkDependencyFlags; 1491 1492 typedef enum VkFramebufferCreateFlagBits { 1493 VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT = 0x00000001, 1494 VK_FRAMEBUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1495 } VkFramebufferCreateFlagBits; 1496 typedef VkFlags VkFramebufferCreateFlags; 1497 1498 typedef enum VkRenderPassCreateFlagBits { 1499 VK_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1500 } VkRenderPassCreateFlagBits; 1501 typedef VkFlags VkRenderPassCreateFlags; 1502 1503 typedef enum VkSubpassDescriptionFlagBits { 1504 VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1505 } VkSubpassDescriptionFlagBits; 1506 typedef VkFlags VkSubpassDescriptionFlags; 1507 1508 typedef enum VkCommandPoolCreateFlagBits { 1509 VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001, 1510 VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002, 1511 VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 0x00000004, 1512 VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1513 } VkCommandPoolCreateFlagBits; 1514 typedef VkFlags VkCommandPoolCreateFlags; 1515 1516 typedef enum VkCommandPoolResetFlagBits { 1517 VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1518 } VkCommandPoolResetFlagBits; 1519 typedef VkFlags VkCommandPoolResetFlags; 1520 1521 typedef enum VkCommandBufferUsageFlagBits { 1522 VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001, 1523 VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002, 1524 VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004, 1525 VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1526 } VkCommandBufferUsageFlagBits; 1527 typedef VkFlags VkCommandBufferUsageFlags; 1528 1529 typedef enum VkQueryControlFlagBits { 1530 VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001, 1531 VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1532 } VkQueryControlFlagBits; 1533 typedef VkFlags VkQueryControlFlags; 1534 1535 typedef enum VkCommandBufferResetFlagBits { 1536 VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001, 1537 VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1538 } VkCommandBufferResetFlagBits; 1539 typedef VkFlags VkCommandBufferResetFlags; 1540 1541 typedef enum VkStencilFaceFlagBits { 1542 VK_STENCIL_FACE_FRONT_BIT = 0x00000001, 1543 VK_STENCIL_FACE_BACK_BIT = 0x00000002, 1544 VK_STENCIL_FACE_FRONT_AND_BACK = 0x00000003, 1545 VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1546 } VkStencilFaceFlagBits; 1547 typedef VkFlags VkStencilFaceFlags; 1548 typedef struct VkExtent2D { 1549 uint32_t width; 1550 uint32_t height; 1551 } VkExtent2D; 1552 1553 typedef struct VkExtent3D { 1554 uint32_t width; 1555 uint32_t height; 1556 uint32_t depth; 1557 } VkExtent3D; 1558 1559 typedef struct VkOffset2D { 1560 int32_t x; 1561 int32_t y; 1562 } VkOffset2D; 1563 1564 typedef struct VkOffset3D { 1565 int32_t x; 1566 int32_t y; 1567 int32_t z; 1568 } VkOffset3D; 1569 1570 typedef struct VkRect2D { 1571 VkOffset2D offset; 1572 VkExtent2D extent; 1573 } VkRect2D; 1574 1575 typedef struct VkBaseInStructure { 1576 VkStructureType sType; 1577 const struct VkBaseInStructure* pNext; 1578 } VkBaseInStructure; 1579 1580 typedef struct VkBaseOutStructure { 1581 VkStructureType sType; 1582 struct VkBaseOutStructure* pNext; 1583 } VkBaseOutStructure; 1584 1585 typedef struct VkBufferMemoryBarrier { 1586 VkStructureType sType; 1587 const void* pNext; 1588 VkAccessFlags srcAccessMask; 1589 VkAccessFlags dstAccessMask; 1590 uint32_t srcQueueFamilyIndex; 1591 uint32_t dstQueueFamilyIndex; 1592 VkBuffer buffer; 1593 VkDeviceSize offset; 1594 VkDeviceSize size; 1595 } VkBufferMemoryBarrier; 1596 1597 typedef struct VkDispatchIndirectCommand { 1598 uint32_t x; 1599 uint32_t y; 1600 uint32_t z; 1601 } VkDispatchIndirectCommand; 1602 1603 typedef struct VkDrawIndexedIndirectCommand { 1604 uint32_t indexCount; 1605 uint32_t instanceCount; 1606 uint32_t firstIndex; 1607 int32_t vertexOffset; 1608 uint32_t firstInstance; 1609 } VkDrawIndexedIndirectCommand; 1610 1611 typedef struct VkDrawIndirectCommand { 1612 uint32_t vertexCount; 1613 uint32_t instanceCount; 1614 uint32_t firstVertex; 1615 uint32_t firstInstance; 1616 } VkDrawIndirectCommand; 1617 1618 typedef struct VkImageSubresourceRange { 1619 VkImageAspectFlags aspectMask; 1620 uint32_t baseMipLevel; 1621 uint32_t levelCount; 1622 uint32_t baseArrayLayer; 1623 uint32_t layerCount; 1624 } VkImageSubresourceRange; 1625 1626 typedef struct VkImageMemoryBarrier { 1627 VkStructureType sType; 1628 const void* pNext; 1629 VkAccessFlags srcAccessMask; 1630 VkAccessFlags dstAccessMask; 1631 VkImageLayout oldLayout; 1632 VkImageLayout newLayout; 1633 uint32_t srcQueueFamilyIndex; 1634 uint32_t dstQueueFamilyIndex; 1635 VkImage image; 1636 VkImageSubresourceRange subresourceRange; 1637 } VkImageMemoryBarrier; 1638 1639 typedef struct VkMemoryBarrier { 1640 VkStructureType sType; 1641 const void* pNext; 1642 VkAccessFlags srcAccessMask; 1643 VkAccessFlags dstAccessMask; 1644 } VkMemoryBarrier; 1645 1646 typedef struct VkPipelineCacheHeaderVersionOne { 1647 uint32_t headerSize; 1648 VkPipelineCacheHeaderVersion headerVersion; 1649 uint32_t vendorID; 1650 uint32_t deviceID; 1651 uint8_t pipelineCacheUUID[VK_UUID_SIZE]; 1652 } VkPipelineCacheHeaderVersionOne; 1653 1654 typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)( 1655 void* pUserData, 1656 size_t size, 1657 size_t alignment, 1658 VkSystemAllocationScope allocationScope); 1659 1660 typedef void (VKAPI_PTR *PFN_vkFreeFunction)( 1661 void* pUserData, 1662 void* pMemory); 1663 1664 typedef void (VKAPI_PTR *PFN_vkInternalAllocationNotification)( 1665 void* pUserData, 1666 size_t size, 1667 VkInternalAllocationType allocationType, 1668 VkSystemAllocationScope allocationScope); 1669 1670 typedef void (VKAPI_PTR *PFN_vkInternalFreeNotification)( 1671 void* pUserData, 1672 size_t size, 1673 VkInternalAllocationType allocationType, 1674 VkSystemAllocationScope allocationScope); 1675 1676 typedef void* (VKAPI_PTR *PFN_vkReallocationFunction)( 1677 void* pUserData, 1678 void* pOriginal, 1679 size_t size, 1680 size_t alignment, 1681 VkSystemAllocationScope allocationScope); 1682 1683 typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void); 1684 typedef struct VkAllocationCallbacks { 1685 void* pUserData; 1686 PFN_vkAllocationFunction pfnAllocation; 1687 PFN_vkReallocationFunction pfnReallocation; 1688 PFN_vkFreeFunction pfnFree; 1689 PFN_vkInternalAllocationNotification pfnInternalAllocation; 1690 PFN_vkInternalFreeNotification pfnInternalFree; 1691 } VkAllocationCallbacks; 1692 1693 typedef struct VkApplicationInfo { 1694 VkStructureType sType; 1695 const void* pNext; 1696 const char* pApplicationName; 1697 uint32_t applicationVersion; 1698 const char* pEngineName; 1699 uint32_t engineVersion; 1700 uint32_t apiVersion; 1701 } VkApplicationInfo; 1702 1703 typedef struct VkFormatProperties { 1704 VkFormatFeatureFlags linearTilingFeatures; 1705 VkFormatFeatureFlags optimalTilingFeatures; 1706 VkFormatFeatureFlags bufferFeatures; 1707 } VkFormatProperties; 1708 1709 typedef struct VkImageFormatProperties { 1710 VkExtent3D maxExtent; 1711 uint32_t maxMipLevels; 1712 uint32_t maxArrayLayers; 1713 VkSampleCountFlags sampleCounts; 1714 VkDeviceSize maxResourceSize; 1715 } VkImageFormatProperties; 1716 1717 typedef struct VkInstanceCreateInfo { 1718 VkStructureType sType; 1719 const void* pNext; 1720 VkInstanceCreateFlags flags; 1721 const VkApplicationInfo* pApplicationInfo; 1722 uint32_t enabledLayerCount; 1723 const char* const* ppEnabledLayerNames; 1724 uint32_t enabledExtensionCount; 1725 const char* const* ppEnabledExtensionNames; 1726 } VkInstanceCreateInfo; 1727 1728 typedef struct VkMemoryHeap { 1729 VkDeviceSize size; 1730 VkMemoryHeapFlags flags; 1731 } VkMemoryHeap; 1732 1733 typedef struct VkMemoryType { 1734 VkMemoryPropertyFlags propertyFlags; 1735 uint32_t heapIndex; 1736 } VkMemoryType; 1737 1738 typedef struct VkPhysicalDeviceFeatures { 1739 VkBool32 robustBufferAccess; 1740 VkBool32 fullDrawIndexUint32; 1741 VkBool32 imageCubeArray; 1742 VkBool32 independentBlend; 1743 VkBool32 geometryShader; 1744 VkBool32 tessellationShader; 1745 VkBool32 sampleRateShading; 1746 VkBool32 dualSrcBlend; 1747 VkBool32 logicOp; 1748 VkBool32 multiDrawIndirect; 1749 VkBool32 drawIndirectFirstInstance; 1750 VkBool32 depthClamp; 1751 VkBool32 depthBiasClamp; 1752 VkBool32 fillModeNonSolid; 1753 VkBool32 depthBounds; 1754 VkBool32 wideLines; 1755 VkBool32 largePoints; 1756 VkBool32 alphaToOne; 1757 VkBool32 multiViewport; 1758 VkBool32 samplerAnisotropy; 1759 VkBool32 textureCompressionETC2; 1760 VkBool32 textureCompressionASTC_LDR; 1761 VkBool32 textureCompressionBC; 1762 VkBool32 occlusionQueryPrecise; 1763 VkBool32 pipelineStatisticsQuery; 1764 VkBool32 vertexPipelineStoresAndAtomics; 1765 VkBool32 fragmentStoresAndAtomics; 1766 VkBool32 shaderTessellationAndGeometryPointSize; 1767 VkBool32 shaderImageGatherExtended; 1768 VkBool32 shaderStorageImageExtendedFormats; 1769 VkBool32 shaderStorageImageMultisample; 1770 VkBool32 shaderStorageImageReadWithoutFormat; 1771 VkBool32 shaderStorageImageWriteWithoutFormat; 1772 VkBool32 shaderUniformBufferArrayDynamicIndexing; 1773 VkBool32 shaderSampledImageArrayDynamicIndexing; 1774 VkBool32 shaderStorageBufferArrayDynamicIndexing; 1775 VkBool32 shaderStorageImageArrayDynamicIndexing; 1776 VkBool32 shaderClipDistance; 1777 VkBool32 shaderCullDistance; 1778 VkBool32 shaderFloat64; 1779 VkBool32 shaderInt64; 1780 VkBool32 shaderInt16; 1781 VkBool32 shaderResourceResidency; 1782 VkBool32 shaderResourceMinLod; 1783 VkBool32 sparseBinding; 1784 VkBool32 sparseResidencyBuffer; 1785 VkBool32 sparseResidencyImage2D; 1786 VkBool32 sparseResidencyImage3D; 1787 VkBool32 sparseResidency2Samples; 1788 VkBool32 sparseResidency4Samples; 1789 VkBool32 sparseResidency8Samples; 1790 VkBool32 sparseResidency16Samples; 1791 VkBool32 sparseResidencyAliased; 1792 VkBool32 variableMultisampleRate; 1793 VkBool32 inheritedQueries; 1794 } VkPhysicalDeviceFeatures; 1795 1796 typedef struct VkPhysicalDeviceLimits { 1797 uint32_t maxImageDimension1D; 1798 uint32_t maxImageDimension2D; 1799 uint32_t maxImageDimension3D; 1800 uint32_t maxImageDimensionCube; 1801 uint32_t maxImageArrayLayers; 1802 uint32_t maxTexelBufferElements; 1803 uint32_t maxUniformBufferRange; 1804 uint32_t maxStorageBufferRange; 1805 uint32_t maxPushConstantsSize; 1806 uint32_t maxMemoryAllocationCount; 1807 uint32_t maxSamplerAllocationCount; 1808 VkDeviceSize bufferImageGranularity; 1809 VkDeviceSize sparseAddressSpaceSize; 1810 uint32_t maxBoundDescriptorSets; 1811 uint32_t maxPerStageDescriptorSamplers; 1812 uint32_t maxPerStageDescriptorUniformBuffers; 1813 uint32_t maxPerStageDescriptorStorageBuffers; 1814 uint32_t maxPerStageDescriptorSampledImages; 1815 uint32_t maxPerStageDescriptorStorageImages; 1816 uint32_t maxPerStageDescriptorInputAttachments; 1817 uint32_t maxPerStageResources; 1818 uint32_t maxDescriptorSetSamplers; 1819 uint32_t maxDescriptorSetUniformBuffers; 1820 uint32_t maxDescriptorSetUniformBuffersDynamic; 1821 uint32_t maxDescriptorSetStorageBuffers; 1822 uint32_t maxDescriptorSetStorageBuffersDynamic; 1823 uint32_t maxDescriptorSetSampledImages; 1824 uint32_t maxDescriptorSetStorageImages; 1825 uint32_t maxDescriptorSetInputAttachments; 1826 uint32_t maxVertexInputAttributes; 1827 uint32_t maxVertexInputBindings; 1828 uint32_t maxVertexInputAttributeOffset; 1829 uint32_t maxVertexInputBindingStride; 1830 uint32_t maxVertexOutputComponents; 1831 uint32_t maxTessellationGenerationLevel; 1832 uint32_t maxTessellationPatchSize; 1833 uint32_t maxTessellationControlPerVertexInputComponents; 1834 uint32_t maxTessellationControlPerVertexOutputComponents; 1835 uint32_t maxTessellationControlPerPatchOutputComponents; 1836 uint32_t maxTessellationControlTotalOutputComponents; 1837 uint32_t maxTessellationEvaluationInputComponents; 1838 uint32_t maxTessellationEvaluationOutputComponents; 1839 uint32_t maxGeometryShaderInvocations; 1840 uint32_t maxGeometryInputComponents; 1841 uint32_t maxGeometryOutputComponents; 1842 uint32_t maxGeometryOutputVertices; 1843 uint32_t maxGeometryTotalOutputComponents; 1844 uint32_t maxFragmentInputComponents; 1845 uint32_t maxFragmentOutputAttachments; 1846 uint32_t maxFragmentDualSrcAttachments; 1847 uint32_t maxFragmentCombinedOutputResources; 1848 uint32_t maxComputeSharedMemorySize; 1849 uint32_t maxComputeWorkGroupCount[3]; 1850 uint32_t maxComputeWorkGroupInvocations; 1851 uint32_t maxComputeWorkGroupSize[3]; 1852 uint32_t subPixelPrecisionBits; 1853 uint32_t subTexelPrecisionBits; 1854 uint32_t mipmapPrecisionBits; 1855 uint32_t maxDrawIndexedIndexValue; 1856 uint32_t maxDrawIndirectCount; 1857 float maxSamplerLodBias; 1858 float maxSamplerAnisotropy; 1859 uint32_t maxViewports; 1860 uint32_t maxViewportDimensions[2]; 1861 float viewportBoundsRange[2]; 1862 uint32_t viewportSubPixelBits; 1863 size_t minMemoryMapAlignment; 1864 VkDeviceSize minTexelBufferOffsetAlignment; 1865 VkDeviceSize minUniformBufferOffsetAlignment; 1866 VkDeviceSize minStorageBufferOffsetAlignment; 1867 int32_t minTexelOffset; 1868 uint32_t maxTexelOffset; 1869 int32_t minTexelGatherOffset; 1870 uint32_t maxTexelGatherOffset; 1871 float minInterpolationOffset; 1872 float maxInterpolationOffset; 1873 uint32_t subPixelInterpolationOffsetBits; 1874 uint32_t maxFramebufferWidth; 1875 uint32_t maxFramebufferHeight; 1876 uint32_t maxFramebufferLayers; 1877 VkSampleCountFlags framebufferColorSampleCounts; 1878 VkSampleCountFlags framebufferDepthSampleCounts; 1879 VkSampleCountFlags framebufferStencilSampleCounts; 1880 VkSampleCountFlags framebufferNoAttachmentsSampleCounts; 1881 uint32_t maxColorAttachments; 1882 VkSampleCountFlags sampledImageColorSampleCounts; 1883 VkSampleCountFlags sampledImageIntegerSampleCounts; 1884 VkSampleCountFlags sampledImageDepthSampleCounts; 1885 VkSampleCountFlags sampledImageStencilSampleCounts; 1886 VkSampleCountFlags storageImageSampleCounts; 1887 uint32_t maxSampleMaskWords; 1888 VkBool32 timestampComputeAndGraphics; 1889 float timestampPeriod; 1890 uint32_t maxClipDistances; 1891 uint32_t maxCullDistances; 1892 uint32_t maxCombinedClipAndCullDistances; 1893 uint32_t discreteQueuePriorities; 1894 float pointSizeRange[2]; 1895 float lineWidthRange[2]; 1896 float pointSizeGranularity; 1897 float lineWidthGranularity; 1898 VkBool32 strictLines; 1899 VkBool32 standardSampleLocations; 1900 VkDeviceSize optimalBufferCopyOffsetAlignment; 1901 VkDeviceSize optimalBufferCopyRowPitchAlignment; 1902 VkDeviceSize nonCoherentAtomSize; 1903 } VkPhysicalDeviceLimits; 1904 1905 typedef struct VkPhysicalDeviceMemoryProperties { 1906 uint32_t memoryTypeCount; 1907 VkMemoryType memoryTypes[VK_MAX_MEMORY_TYPES]; 1908 uint32_t memoryHeapCount; 1909 VkMemoryHeap memoryHeaps[VK_MAX_MEMORY_HEAPS]; 1910 } VkPhysicalDeviceMemoryProperties; 1911 1912 typedef struct VkPhysicalDeviceSparseProperties { 1913 VkBool32 residencyStandard2DBlockShape; 1914 VkBool32 residencyStandard2DMultisampleBlockShape; 1915 VkBool32 residencyStandard3DBlockShape; 1916 VkBool32 residencyAlignedMipSize; 1917 VkBool32 residencyNonResidentStrict; 1918 } VkPhysicalDeviceSparseProperties; 1919 1920 typedef struct VkPhysicalDeviceProperties { 1921 uint32_t apiVersion; 1922 uint32_t driverVersion; 1923 uint32_t vendorID; 1924 uint32_t deviceID; 1925 VkPhysicalDeviceType deviceType; 1926 char deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE]; 1927 uint8_t pipelineCacheUUID[VK_UUID_SIZE]; 1928 VkPhysicalDeviceLimits limits; 1929 VkPhysicalDeviceSparseProperties sparseProperties; 1930 } VkPhysicalDeviceProperties; 1931 1932 typedef struct VkQueueFamilyProperties { 1933 VkQueueFlags queueFlags; 1934 uint32_t queueCount; 1935 uint32_t timestampValidBits; 1936 VkExtent3D minImageTransferGranularity; 1937 } VkQueueFamilyProperties; 1938 1939 typedef struct VkDeviceQueueCreateInfo { 1940 VkStructureType sType; 1941 const void* pNext; 1942 VkDeviceQueueCreateFlags flags; 1943 uint32_t queueFamilyIndex; 1944 uint32_t queueCount; 1945 const float* pQueuePriorities; 1946 } VkDeviceQueueCreateInfo; 1947 1948 typedef struct VkDeviceCreateInfo { 1949 VkStructureType sType; 1950 const void* pNext; 1951 VkDeviceCreateFlags flags; 1952 uint32_t queueCreateInfoCount; 1953 const VkDeviceQueueCreateInfo* pQueueCreateInfos; 1954 uint32_t enabledLayerCount; 1955 const char* const* ppEnabledLayerNames; 1956 uint32_t enabledExtensionCount; 1957 const char* const* ppEnabledExtensionNames; 1958 const VkPhysicalDeviceFeatures* pEnabledFeatures; 1959 } VkDeviceCreateInfo; 1960 1961 typedef struct VkExtensionProperties { 1962 char extensionName[VK_MAX_EXTENSION_NAME_SIZE]; 1963 uint32_t specVersion; 1964 } VkExtensionProperties; 1965 1966 typedef struct VkLayerProperties { 1967 char layerName[VK_MAX_EXTENSION_NAME_SIZE]; 1968 uint32_t specVersion; 1969 uint32_t implementationVersion; 1970 char description[VK_MAX_DESCRIPTION_SIZE]; 1971 } VkLayerProperties; 1972 1973 typedef struct VkSubmitInfo { 1974 VkStructureType sType; 1975 const void* pNext; 1976 uint32_t waitSemaphoreCount; 1977 const VkSemaphore* pWaitSemaphores; 1978 const VkPipelineStageFlags* pWaitDstStageMask; 1979 uint32_t commandBufferCount; 1980 const VkCommandBuffer* pCommandBuffers; 1981 uint32_t signalSemaphoreCount; 1982 const VkSemaphore* pSignalSemaphores; 1983 } VkSubmitInfo; 1984 1985 typedef struct VkMappedMemoryRange { 1986 VkStructureType sType; 1987 const void* pNext; 1988 VkDeviceMemory memory; 1989 VkDeviceSize offset; 1990 VkDeviceSize size; 1991 } VkMappedMemoryRange; 1992 1993 typedef struct VkMemoryAllocateInfo { 1994 VkStructureType sType; 1995 const void* pNext; 1996 VkDeviceSize allocationSize; 1997 uint32_t memoryTypeIndex; 1998 } VkMemoryAllocateInfo; 1999 2000 typedef struct VkMemoryRequirements { 2001 VkDeviceSize size; 2002 VkDeviceSize alignment; 2003 uint32_t memoryTypeBits; 2004 } VkMemoryRequirements; 2005 2006 typedef struct VkImageSubresource { 2007 VkImageAspectFlags aspectMask; 2008 uint32_t mipLevel; 2009 uint32_t arrayLayer; 2010 } VkImageSubresource; 2011 2012 typedef struct VkFenceCreateInfo { 2013 VkStructureType sType; 2014 const void* pNext; 2015 VkFenceCreateFlags flags; 2016 } VkFenceCreateInfo; 2017 2018 typedef struct VkSemaphoreCreateInfo { 2019 VkStructureType sType; 2020 const void* pNext; 2021 VkSemaphoreCreateFlags flags; 2022 } VkSemaphoreCreateInfo; 2023 2024 typedef struct VkEventCreateInfo { 2025 VkStructureType sType; 2026 const void* pNext; 2027 VkEventCreateFlags flags; 2028 } VkEventCreateInfo; 2029 2030 typedef struct VkQueryPoolCreateInfo { 2031 VkStructureType sType; 2032 const void* pNext; 2033 VkQueryPoolCreateFlags flags; 2034 VkQueryType queryType; 2035 uint32_t queryCount; 2036 VkQueryPipelineStatisticFlags pipelineStatistics; 2037 } VkQueryPoolCreateInfo; 2038 2039 typedef struct VkBufferCreateInfo { 2040 VkStructureType sType; 2041 const void* pNext; 2042 VkBufferCreateFlags flags; 2043 VkDeviceSize size; 2044 VkBufferUsageFlags usage; 2045 VkSharingMode sharingMode; 2046 uint32_t queueFamilyIndexCount; 2047 const uint32_t* pQueueFamilyIndices; 2048 } VkBufferCreateInfo; 2049 2050 typedef struct VkBufferViewCreateInfo { 2051 VkStructureType sType; 2052 const void* pNext; 2053 VkBufferViewCreateFlags flags; 2054 VkBuffer buffer; 2055 VkFormat format; 2056 VkDeviceSize offset; 2057 VkDeviceSize range; 2058 } VkBufferViewCreateInfo; 2059 2060 typedef struct VkImageCreateInfo { 2061 VkStructureType sType; 2062 const void* pNext; 2063 VkImageCreateFlags flags; 2064 VkImageType imageType; 2065 VkFormat format; 2066 VkExtent3D extent; 2067 uint32_t mipLevels; 2068 uint32_t arrayLayers; 2069 VkSampleCountFlagBits samples; 2070 VkImageTiling tiling; 2071 VkImageUsageFlags usage; 2072 VkSharingMode sharingMode; 2073 uint32_t queueFamilyIndexCount; 2074 const uint32_t* pQueueFamilyIndices; 2075 VkImageLayout initialLayout; 2076 } VkImageCreateInfo; 2077 2078 typedef struct VkSubresourceLayout { 2079 VkDeviceSize offset; 2080 VkDeviceSize size; 2081 VkDeviceSize rowPitch; 2082 VkDeviceSize arrayPitch; 2083 VkDeviceSize depthPitch; 2084 } VkSubresourceLayout; 2085 2086 typedef struct VkComponentMapping { 2087 VkComponentSwizzle r; 2088 VkComponentSwizzle g; 2089 VkComponentSwizzle b; 2090 VkComponentSwizzle a; 2091 } VkComponentMapping; 2092 2093 typedef struct VkImageViewCreateInfo { 2094 VkStructureType sType; 2095 const void* pNext; 2096 VkImageViewCreateFlags flags; 2097 VkImage image; 2098 VkImageViewType viewType; 2099 VkFormat format; 2100 VkComponentMapping components; 2101 VkImageSubresourceRange subresourceRange; 2102 } VkImageViewCreateInfo; 2103 2104 typedef struct VkPipelineCacheCreateInfo { 2105 VkStructureType sType; 2106 const void* pNext; 2107 VkPipelineCacheCreateFlags flags; 2108 size_t initialDataSize; 2109 const void* pInitialData; 2110 } VkPipelineCacheCreateInfo; 2111 2112 typedef struct VkSpecializationMapEntry { 2113 uint32_t constantID; 2114 uint32_t offset; 2115 size_t size; 2116 } VkSpecializationMapEntry; 2117 2118 typedef struct VkSpecializationInfo { 2119 uint32_t mapEntryCount; 2120 const VkSpecializationMapEntry* pMapEntries; 2121 size_t dataSize; 2122 const void* pData; 2123 } VkSpecializationInfo; 2124 2125 typedef struct VkPipelineShaderStageCreateInfo { 2126 VkStructureType sType; 2127 const void* pNext; 2128 VkPipelineShaderStageCreateFlags flags; 2129 VkShaderStageFlagBits stage; 2130 VkShaderModule module; 2131 const char* pName; 2132 const VkSpecializationInfo* pSpecializationInfo; 2133 } VkPipelineShaderStageCreateInfo; 2134 2135 typedef struct VkComputePipelineCreateInfo { 2136 VkStructureType sType; 2137 const void* pNext; 2138 VkPipelineCreateFlags flags; 2139 VkPipelineShaderStageCreateInfo stage; 2140 VkPipelineLayout layout; 2141 VkPipeline basePipelineHandle; 2142 int32_t basePipelineIndex; 2143 } VkComputePipelineCreateInfo; 2144 2145 typedef struct VkVertexInputBindingDescription { 2146 uint32_t binding; 2147 uint32_t stride; 2148 VkVertexInputRate inputRate; 2149 } VkVertexInputBindingDescription; 2150 2151 typedef struct VkVertexInputAttributeDescription { 2152 uint32_t location; 2153 uint32_t binding; 2154 VkFormat format; 2155 uint32_t offset; 2156 } VkVertexInputAttributeDescription; 2157 2158 typedef struct VkPipelineVertexInputStateCreateInfo { 2159 VkStructureType sType; 2160 const void* pNext; 2161 VkPipelineVertexInputStateCreateFlags flags; 2162 uint32_t vertexBindingDescriptionCount; 2163 const VkVertexInputBindingDescription* pVertexBindingDescriptions; 2164 uint32_t vertexAttributeDescriptionCount; 2165 const VkVertexInputAttributeDescription* pVertexAttributeDescriptions; 2166 } VkPipelineVertexInputStateCreateInfo; 2167 2168 typedef struct VkPipelineInputAssemblyStateCreateInfo { 2169 VkStructureType sType; 2170 const void* pNext; 2171 VkPipelineInputAssemblyStateCreateFlags flags; 2172 VkPrimitiveTopology topology; 2173 VkBool32 primitiveRestartEnable; 2174 } VkPipelineInputAssemblyStateCreateInfo; 2175 2176 typedef struct VkPipelineTessellationStateCreateInfo { 2177 VkStructureType sType; 2178 const void* pNext; 2179 VkPipelineTessellationStateCreateFlags flags; 2180 uint32_t patchControlPoints; 2181 } VkPipelineTessellationStateCreateInfo; 2182 2183 typedef struct VkViewport { 2184 float x; 2185 float y; 2186 float width; 2187 float height; 2188 float minDepth; 2189 float maxDepth; 2190 } VkViewport; 2191 2192 typedef struct VkPipelineViewportStateCreateInfo { 2193 VkStructureType sType; 2194 const void* pNext; 2195 VkPipelineViewportStateCreateFlags flags; 2196 uint32_t viewportCount; 2197 const VkViewport* pViewports; 2198 uint32_t scissorCount; 2199 const VkRect2D* pScissors; 2200 } VkPipelineViewportStateCreateInfo; 2201 2202 typedef struct VkPipelineRasterizationStateCreateInfo { 2203 VkStructureType sType; 2204 const void* pNext; 2205 VkPipelineRasterizationStateCreateFlags flags; 2206 VkBool32 depthClampEnable; 2207 VkBool32 rasterizerDiscardEnable; 2208 VkPolygonMode polygonMode; 2209 VkCullModeFlags cullMode; 2210 VkFrontFace frontFace; 2211 VkBool32 depthBiasEnable; 2212 float depthBiasConstantFactor; 2213 float depthBiasClamp; 2214 float depthBiasSlopeFactor; 2215 float lineWidth; 2216 } VkPipelineRasterizationStateCreateInfo; 2217 2218 typedef struct VkPipelineMultisampleStateCreateInfo { 2219 VkStructureType sType; 2220 const void* pNext; 2221 VkPipelineMultisampleStateCreateFlags flags; 2222 VkSampleCountFlagBits rasterizationSamples; 2223 VkBool32 sampleShadingEnable; 2224 float minSampleShading; 2225 const VkSampleMask* pSampleMask; 2226 VkBool32 alphaToCoverageEnable; 2227 VkBool32 alphaToOneEnable; 2228 } VkPipelineMultisampleStateCreateInfo; 2229 2230 typedef struct VkStencilOpState { 2231 VkStencilOp failOp; 2232 VkStencilOp passOp; 2233 VkStencilOp depthFailOp; 2234 VkCompareOp compareOp; 2235 uint32_t compareMask; 2236 uint32_t writeMask; 2237 uint32_t reference; 2238 } VkStencilOpState; 2239 2240 typedef struct VkPipelineDepthStencilStateCreateInfo { 2241 VkStructureType sType; 2242 const void* pNext; 2243 VkPipelineDepthStencilStateCreateFlags flags; 2244 VkBool32 depthTestEnable; 2245 VkBool32 depthWriteEnable; 2246 VkCompareOp depthCompareOp; 2247 VkBool32 depthBoundsTestEnable; 2248 VkBool32 stencilTestEnable; 2249 VkStencilOpState front; 2250 VkStencilOpState back; 2251 float minDepthBounds; 2252 float maxDepthBounds; 2253 } VkPipelineDepthStencilStateCreateInfo; 2254 2255 typedef struct VkPipelineColorBlendAttachmentState { 2256 VkBool32 blendEnable; 2257 VkBlendFactor srcColorBlendFactor; 2258 VkBlendFactor dstColorBlendFactor; 2259 VkBlendOp colorBlendOp; 2260 VkBlendFactor srcAlphaBlendFactor; 2261 VkBlendFactor dstAlphaBlendFactor; 2262 VkBlendOp alphaBlendOp; 2263 VkColorComponentFlags colorWriteMask; 2264 } VkPipelineColorBlendAttachmentState; 2265 2266 typedef struct VkPipelineColorBlendStateCreateInfo { 2267 VkStructureType sType; 2268 const void* pNext; 2269 VkPipelineColorBlendStateCreateFlags flags; 2270 VkBool32 logicOpEnable; 2271 VkLogicOp logicOp; 2272 uint32_t attachmentCount; 2273 const VkPipelineColorBlendAttachmentState* pAttachments; 2274 float blendConstants[4]; 2275 } VkPipelineColorBlendStateCreateInfo; 2276 2277 typedef struct VkPipelineDynamicStateCreateInfo { 2278 VkStructureType sType; 2279 const void* pNext; 2280 VkPipelineDynamicStateCreateFlags flags; 2281 uint32_t dynamicStateCount; 2282 const VkDynamicState* pDynamicStates; 2283 } VkPipelineDynamicStateCreateInfo; 2284 2285 typedef struct VkGraphicsPipelineCreateInfo { 2286 VkStructureType sType; 2287 const void* pNext; 2288 VkPipelineCreateFlags flags; 2289 uint32_t stageCount; 2290 const VkPipelineShaderStageCreateInfo* pStages; 2291 const VkPipelineVertexInputStateCreateInfo* pVertexInputState; 2292 const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState; 2293 const VkPipelineTessellationStateCreateInfo* pTessellationState; 2294 const VkPipelineViewportStateCreateInfo* pViewportState; 2295 const VkPipelineRasterizationStateCreateInfo* pRasterizationState; 2296 const VkPipelineMultisampleStateCreateInfo* pMultisampleState; 2297 const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState; 2298 const VkPipelineColorBlendStateCreateInfo* pColorBlendState; 2299 const VkPipelineDynamicStateCreateInfo* pDynamicState; 2300 VkPipelineLayout layout; 2301 VkRenderPass renderPass; 2302 uint32_t subpass; 2303 VkPipeline basePipelineHandle; 2304 int32_t basePipelineIndex; 2305 } VkGraphicsPipelineCreateInfo; 2306 2307 typedef struct VkPushConstantRange { 2308 VkShaderStageFlags stageFlags; 2309 uint32_t offset; 2310 uint32_t size; 2311 } VkPushConstantRange; 2312 2313 typedef struct VkPipelineLayoutCreateInfo { 2314 VkStructureType sType; 2315 const void* pNext; 2316 VkPipelineLayoutCreateFlags flags; 2317 uint32_t setLayoutCount; 2318 const VkDescriptorSetLayout* pSetLayouts; 2319 uint32_t pushConstantRangeCount; 2320 const VkPushConstantRange* pPushConstantRanges; 2321 } VkPipelineLayoutCreateInfo; 2322 2323 typedef struct VkSamplerCreateInfo { 2324 VkStructureType sType; 2325 const void* pNext; 2326 VkSamplerCreateFlags flags; 2327 VkFilter magFilter; 2328 VkFilter minFilter; 2329 VkSamplerMipmapMode mipmapMode; 2330 VkSamplerAddressMode addressModeU; 2331 VkSamplerAddressMode addressModeV; 2332 VkSamplerAddressMode addressModeW; 2333 float mipLodBias; 2334 VkBool32 anisotropyEnable; 2335 float maxAnisotropy; 2336 VkBool32 compareEnable; 2337 VkCompareOp compareOp; 2338 float minLod; 2339 float maxLod; 2340 VkBorderColor borderColor; 2341 VkBool32 unnormalizedCoordinates; 2342 } VkSamplerCreateInfo; 2343 2344 typedef struct VkCopyDescriptorSet { 2345 VkStructureType sType; 2346 const void* pNext; 2347 VkDescriptorSet srcSet; 2348 uint32_t srcBinding; 2349 uint32_t srcArrayElement; 2350 VkDescriptorSet dstSet; 2351 uint32_t dstBinding; 2352 uint32_t dstArrayElement; 2353 uint32_t descriptorCount; 2354 } VkCopyDescriptorSet; 2355 2356 typedef struct VkDescriptorBufferInfo { 2357 VkBuffer buffer; 2358 VkDeviceSize offset; 2359 VkDeviceSize range; 2360 } VkDescriptorBufferInfo; 2361 2362 typedef struct VkDescriptorImageInfo { 2363 VkSampler sampler; 2364 VkImageView imageView; 2365 VkImageLayout imageLayout; 2366 } VkDescriptorImageInfo; 2367 2368 typedef struct VkDescriptorPoolSize { 2369 VkDescriptorType type; 2370 uint32_t descriptorCount; 2371 } VkDescriptorPoolSize; 2372 2373 typedef struct VkDescriptorPoolCreateInfo { 2374 VkStructureType sType; 2375 const void* pNext; 2376 VkDescriptorPoolCreateFlags flags; 2377 uint32_t maxSets; 2378 uint32_t poolSizeCount; 2379 const VkDescriptorPoolSize* pPoolSizes; 2380 } VkDescriptorPoolCreateInfo; 2381 2382 typedef struct VkDescriptorSetAllocateInfo { 2383 VkStructureType sType; 2384 const void* pNext; 2385 VkDescriptorPool descriptorPool; 2386 uint32_t descriptorSetCount; 2387 const VkDescriptorSetLayout* pSetLayouts; 2388 } VkDescriptorSetAllocateInfo; 2389 2390 typedef struct VkDescriptorSetLayoutBinding { 2391 uint32_t binding; 2392 VkDescriptorType descriptorType; 2393 uint32_t descriptorCount; 2394 VkShaderStageFlags stageFlags; 2395 const VkSampler* pImmutableSamplers; 2396 } VkDescriptorSetLayoutBinding; 2397 2398 typedef struct VkDescriptorSetLayoutCreateInfo { 2399 VkStructureType sType; 2400 const void* pNext; 2401 VkDescriptorSetLayoutCreateFlags flags; 2402 uint32_t bindingCount; 2403 const VkDescriptorSetLayoutBinding* pBindings; 2404 } VkDescriptorSetLayoutCreateInfo; 2405 2406 typedef struct VkWriteDescriptorSet { 2407 VkStructureType sType; 2408 const void* pNext; 2409 VkDescriptorSet dstSet; 2410 uint32_t dstBinding; 2411 uint32_t dstArrayElement; 2412 uint32_t descriptorCount; 2413 VkDescriptorType descriptorType; 2414 const VkDescriptorImageInfo* pImageInfo; 2415 const VkDescriptorBufferInfo* pBufferInfo; 2416 const VkBufferView* pTexelBufferView; 2417 } VkWriteDescriptorSet; 2418 2419 typedef struct VkAttachmentDescription { 2420 VkAttachmentDescriptionFlags flags; 2421 VkFormat format; 2422 VkSampleCountFlagBits samples; 2423 VkAttachmentLoadOp loadOp; 2424 VkAttachmentStoreOp storeOp; 2425 VkAttachmentLoadOp stencilLoadOp; 2426 VkAttachmentStoreOp stencilStoreOp; 2427 VkImageLayout initialLayout; 2428 VkImageLayout finalLayout; 2429 } VkAttachmentDescription; 2430 2431 typedef struct VkAttachmentReference { 2432 uint32_t attachment; 2433 VkImageLayout layout; 2434 } VkAttachmentReference; 2435 2436 typedef struct VkFramebufferCreateInfo { 2437 VkStructureType sType; 2438 const void* pNext; 2439 VkFramebufferCreateFlags flags; 2440 VkRenderPass renderPass; 2441 uint32_t attachmentCount; 2442 const VkImageView* pAttachments; 2443 uint32_t width; 2444 uint32_t height; 2445 uint32_t layers; 2446 } VkFramebufferCreateInfo; 2447 2448 typedef struct VkSubpassDescription { 2449 VkSubpassDescriptionFlags flags; 2450 VkPipelineBindPoint pipelineBindPoint; 2451 uint32_t inputAttachmentCount; 2452 const VkAttachmentReference* pInputAttachments; 2453 uint32_t colorAttachmentCount; 2454 const VkAttachmentReference* pColorAttachments; 2455 const VkAttachmentReference* pResolveAttachments; 2456 const VkAttachmentReference* pDepthStencilAttachment; 2457 uint32_t preserveAttachmentCount; 2458 const uint32_t* pPreserveAttachments; 2459 } VkSubpassDescription; 2460 2461 typedef struct VkSubpassDependency { 2462 uint32_t srcSubpass; 2463 uint32_t dstSubpass; 2464 VkPipelineStageFlags srcStageMask; 2465 VkPipelineStageFlags dstStageMask; 2466 VkAccessFlags srcAccessMask; 2467 VkAccessFlags dstAccessMask; 2468 VkDependencyFlags dependencyFlags; 2469 } VkSubpassDependency; 2470 2471 typedef struct VkRenderPassCreateInfo { 2472 VkStructureType sType; 2473 const void* pNext; 2474 VkRenderPassCreateFlags flags; 2475 uint32_t attachmentCount; 2476 const VkAttachmentDescription* pAttachments; 2477 uint32_t subpassCount; 2478 const VkSubpassDescription* pSubpasses; 2479 uint32_t dependencyCount; 2480 const VkSubpassDependency* pDependencies; 2481 } VkRenderPassCreateInfo; 2482 2483 typedef struct VkCommandPoolCreateInfo { 2484 VkStructureType sType; 2485 const void* pNext; 2486 VkCommandPoolCreateFlags flags; 2487 uint32_t queueFamilyIndex; 2488 } VkCommandPoolCreateInfo; 2489 2490 typedef struct VkCommandBufferAllocateInfo { 2491 VkStructureType sType; 2492 const void* pNext; 2493 VkCommandPool commandPool; 2494 VkCommandBufferLevel level; 2495 uint32_t commandBufferCount; 2496 } VkCommandBufferAllocateInfo; 2497 2498 typedef struct VkCommandBufferInheritanceInfo { 2499 VkStructureType sType; 2500 const void* pNext; 2501 VkRenderPass renderPass; 2502 uint32_t subpass; 2503 VkFramebuffer framebuffer; 2504 VkBool32 occlusionQueryEnable; 2505 VkQueryControlFlags queryFlags; 2506 VkQueryPipelineStatisticFlags pipelineStatistics; 2507 } VkCommandBufferInheritanceInfo; 2508 2509 typedef struct VkCommandBufferBeginInfo { 2510 VkStructureType sType; 2511 const void* pNext; 2512 VkCommandBufferUsageFlags flags; 2513 const VkCommandBufferInheritanceInfo* pInheritanceInfo; 2514 } VkCommandBufferBeginInfo; 2515 2516 typedef struct VkBufferCopy { 2517 VkDeviceSize srcOffset; 2518 VkDeviceSize dstOffset; 2519 VkDeviceSize size; 2520 } VkBufferCopy; 2521 2522 typedef struct VkImageSubresourceLayers { 2523 VkImageAspectFlags aspectMask; 2524 uint32_t mipLevel; 2525 uint32_t baseArrayLayer; 2526 uint32_t layerCount; 2527 } VkImageSubresourceLayers; 2528 2529 typedef struct VkBufferImageCopy { 2530 VkDeviceSize bufferOffset; 2531 uint32_t bufferRowLength; 2532 uint32_t bufferImageHeight; 2533 VkImageSubresourceLayers imageSubresource; 2534 VkOffset3D imageOffset; 2535 VkExtent3D imageExtent; 2536 } VkBufferImageCopy; 2537 2538 typedef union VkClearColorValue { 2539 float float32[4]; 2540 int32_t int32[4]; 2541 uint32_t uint32[4]; 2542 } VkClearColorValue; 2543 2544 typedef struct VkClearDepthStencilValue { 2545 float depth; 2546 uint32_t stencil; 2547 } VkClearDepthStencilValue; 2548 2549 typedef union VkClearValue { 2550 VkClearColorValue color; 2551 VkClearDepthStencilValue depthStencil; 2552 } VkClearValue; 2553 2554 typedef struct VkClearAttachment { 2555 VkImageAspectFlags aspectMask; 2556 uint32_t colorAttachment; 2557 VkClearValue clearValue; 2558 } VkClearAttachment; 2559 2560 typedef struct VkClearRect { 2561 VkRect2D rect; 2562 uint32_t baseArrayLayer; 2563 uint32_t layerCount; 2564 } VkClearRect; 2565 2566 typedef struct VkImageBlit { 2567 VkImageSubresourceLayers srcSubresource; 2568 VkOffset3D srcOffsets[2]; 2569 VkImageSubresourceLayers dstSubresource; 2570 VkOffset3D dstOffsets[2]; 2571 } VkImageBlit; 2572 2573 typedef struct VkImageCopy { 2574 VkImageSubresourceLayers srcSubresource; 2575 VkOffset3D srcOffset; 2576 VkImageSubresourceLayers dstSubresource; 2577 VkOffset3D dstOffset; 2578 VkExtent3D extent; 2579 } VkImageCopy; 2580 2581 typedef struct VkImageResolve { 2582 VkImageSubresourceLayers srcSubresource; 2583 VkOffset3D srcOffset; 2584 VkImageSubresourceLayers dstSubresource; 2585 VkOffset3D dstOffset; 2586 VkExtent3D extent; 2587 } VkImageResolve; 2588 2589 typedef struct VkRenderPassBeginInfo { 2590 VkStructureType sType; 2591 const void* pNext; 2592 VkRenderPass renderPass; 2593 VkFramebuffer framebuffer; 2594 VkRect2D renderArea; 2595 uint32_t clearValueCount; 2596 const VkClearValue* pClearValues; 2597 } VkRenderPassBeginInfo; 2598 2599 typedef VkResult (VKAPI_PTR *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance); 2600 typedef void (VKAPI_PTR *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks* pAllocator); 2601 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices); 2602 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures); 2603 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties); 2604 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties); 2605 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties); 2606 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties); 2607 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties); 2608 typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char* pName); 2609 typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetDeviceProcAddr)(VkDevice device, const char* pName); 2610 typedef VkResult (VKAPI_PTR *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice); 2611 typedef void (VKAPI_PTR *PFN_vkDestroyDevice)(VkDevice device, const VkAllocationCallbacks* pAllocator); 2612 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceExtensionProperties)(const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties); 2613 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties); 2614 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceLayerProperties)(uint32_t* pPropertyCount, VkLayerProperties* pProperties); 2615 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties); 2616 typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue); 2617 typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence); 2618 typedef VkResult (VKAPI_PTR *PFN_vkQueueWaitIdle)(VkQueue queue); 2619 typedef VkResult (VKAPI_PTR *PFN_vkDeviceWaitIdle)(VkDevice device); 2620 typedef VkResult (VKAPI_PTR *PFN_vkAllocateMemory)(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory); 2621 typedef VkResult (VKAPI_PTR *PFN_vkMapMemory)(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData); 2622 typedef void (VKAPI_PTR *PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory memory); 2623 typedef VkResult (VKAPI_PTR *PFN_vkFlushMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges); 2624 typedef VkResult (VKAPI_PTR *PFN_vkInvalidateMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges); 2625 typedef void (VKAPI_PTR *PFN_vkGetDeviceMemoryCommitment)(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes); 2626 typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory)(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset); 2627 typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory)(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset); 2628 typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements)(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements); 2629 typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements); 2630 typedef VkResult (VKAPI_PTR *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence); 2631 typedef void (VKAPI_PTR *PFN_vkDestroyFence)(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator); 2632 typedef VkResult (VKAPI_PTR *PFN_vkResetFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences); 2633 typedef VkResult (VKAPI_PTR *PFN_vkGetFenceStatus)(VkDevice device, VkFence fence); 2634 typedef VkResult (VKAPI_PTR *PFN_vkWaitForFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout); 2635 typedef VkResult (VKAPI_PTR *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore); 2636 typedef void (VKAPI_PTR *PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator); 2637 typedef VkResult (VKAPI_PTR *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent); 2638 typedef void (VKAPI_PTR *PFN_vkDestroyEvent)(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator); 2639 typedef VkResult (VKAPI_PTR *PFN_vkGetEventStatus)(VkDevice device, VkEvent event); 2640 typedef VkResult (VKAPI_PTR *PFN_vkSetEvent)(VkDevice device, VkEvent event); 2641 typedef VkResult (VKAPI_PTR *PFN_vkResetEvent)(VkDevice device, VkEvent event); 2642 typedef VkResult (VKAPI_PTR *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool); 2643 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); 2644 typedef VkResult (VKAPI_PTR *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer); 2645 typedef void (VKAPI_PTR *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator); 2646 typedef VkResult (VKAPI_PTR *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView); 2647 typedef void (VKAPI_PTR *PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator); 2648 typedef VkResult (VKAPI_PTR *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage); 2649 typedef void (VKAPI_PTR *PFN_vkDestroyImage)(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator); 2650 typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout); 2651 typedef VkResult (VKAPI_PTR *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView); 2652 typedef void (VKAPI_PTR *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator); 2653 typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache); 2654 typedef void (VKAPI_PTR *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator); 2655 typedef VkResult (VKAPI_PTR *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines); 2656 typedef VkResult (VKAPI_PTR *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines); 2657 typedef void (VKAPI_PTR *PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator); 2658 typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout); 2659 typedef void (VKAPI_PTR *PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator); 2660 typedef VkResult (VKAPI_PTR *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler); 2661 typedef void (VKAPI_PTR *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator); 2662 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout); 2663 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator); 2664 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool); 2665 typedef VkResult (VKAPI_PTR *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags); 2666 typedef VkResult (VKAPI_PTR *PFN_vkAllocateDescriptorSets)(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets); 2667 typedef VkResult (VKAPI_PTR *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets); 2668 typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies); 2669 typedef VkResult (VKAPI_PTR *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer); 2670 typedef void (VKAPI_PTR *PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator); 2671 typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass); 2672 typedef void (VKAPI_PTR *PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator); 2673 typedef void (VKAPI_PTR *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity); 2674 typedef VkResult (VKAPI_PTR *PFN_vkCreateCommandPool)(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool); 2675 typedef VkResult (VKAPI_PTR *PFN_vkResetCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags); 2676 typedef VkResult (VKAPI_PTR *PFN_vkAllocateCommandBuffers)(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers); 2677 typedef void (VKAPI_PTR *PFN_vkFreeCommandBuffers)(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers); 2678 typedef VkResult (VKAPI_PTR *PFN_vkBeginCommandBuffer)(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo); 2679 typedef VkResult (VKAPI_PTR *PFN_vkEndCommandBuffer)(VkCommandBuffer commandBuffer); 2680 typedef VkResult (VKAPI_PTR *PFN_vkResetCommandBuffer)(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags); 2681 typedef void (VKAPI_PTR *PFN_vkCmdBindPipeline)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline); 2682 typedef void (VKAPI_PTR *PFN_vkCmdSetViewport)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports); 2683 typedef void (VKAPI_PTR *PFN_vkCmdSetScissor)(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors); 2684 typedef void (VKAPI_PTR *PFN_vkCmdSetLineWidth)(VkCommandBuffer commandBuffer, float lineWidth); 2685 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias)(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor); 2686 typedef void (VKAPI_PTR *PFN_vkCmdSetBlendConstants)(VkCommandBuffer commandBuffer, const float blendConstants[4]); 2687 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBounds)(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds); 2688 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilCompareMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask); 2689 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilWriteMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask); 2690 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilReference)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference); 2691 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); 2692 typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType); 2693 typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets); 2694 typedef void (VKAPI_PTR *PFN_vkCmdDraw)(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance); 2695 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexed)(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance); 2696 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride); 2697 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride); 2698 typedef void (VKAPI_PTR *PFN_vkCmdDispatch)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ); 2699 typedef void (VKAPI_PTR *PFN_vkCmdDispatchIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset); 2700 typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions); 2701 typedef void (VKAPI_PTR *PFN_vkCmdCopyImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions); 2702 typedef void (VKAPI_PTR *PFN_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter); 2703 typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions); 2704 typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions); 2705 typedef void (VKAPI_PTR *PFN_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData); 2706 typedef void (VKAPI_PTR *PFN_vkCmdFillBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data); 2707 typedef void (VKAPI_PTR *PFN_vkCmdClearColorImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges); 2708 typedef void (VKAPI_PTR *PFN_vkCmdClearDepthStencilImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges); 2709 typedef void (VKAPI_PTR *PFN_vkCmdClearAttachments)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects); 2710 typedef void (VKAPI_PTR *PFN_vkCmdResolveImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions); 2711 typedef void (VKAPI_PTR *PFN_vkCmdSetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask); 2712 typedef void (VKAPI_PTR *PFN_vkCmdResetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask); 2713 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); 2714 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); 2715 typedef void (VKAPI_PTR *PFN_vkCmdBeginQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags); 2716 typedef void (VKAPI_PTR *PFN_vkCmdEndQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query); 2717 typedef void (VKAPI_PTR *PFN_vkCmdResetQueryPool)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount); 2718 typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query); 2719 typedef void (VKAPI_PTR *PFN_vkCmdCopyQueryPoolResults)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags); 2720 typedef void (VKAPI_PTR *PFN_vkCmdPushConstants)(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues); 2721 typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents); 2722 typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass)(VkCommandBuffer commandBuffer, VkSubpassContents contents); 2723 typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass)(VkCommandBuffer commandBuffer); 2724 typedef void (VKAPI_PTR *PFN_vkCmdExecuteCommands)(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers); 2725 2726 #ifndef VK_NO_PROTOTYPES 2727 VKAPI_ATTR VkResult VKAPI_CALL vkCreateInstance( 2728 const VkInstanceCreateInfo* pCreateInfo, 2729 const VkAllocationCallbacks* pAllocator, 2730 VkInstance* pInstance); 2731 2732 VKAPI_ATTR void VKAPI_CALL vkDestroyInstance( 2733 VkInstance instance, 2734 const VkAllocationCallbacks* pAllocator); 2735 2736 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDevices( 2737 VkInstance instance, 2738 uint32_t* pPhysicalDeviceCount, 2739 VkPhysicalDevice* pPhysicalDevices); 2740 2741 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures( 2742 VkPhysicalDevice physicalDevice, 2743 VkPhysicalDeviceFeatures* pFeatures); 2744 2745 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties( 2746 VkPhysicalDevice physicalDevice, 2747 VkFormat format, 2748 VkFormatProperties* pFormatProperties); 2749 2750 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties( 2751 VkPhysicalDevice physicalDevice, 2752 VkFormat format, 2753 VkImageType type, 2754 VkImageTiling tiling, 2755 VkImageUsageFlags usage, 2756 VkImageCreateFlags flags, 2757 VkImageFormatProperties* pImageFormatProperties); 2758 2759 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties( 2760 VkPhysicalDevice physicalDevice, 2761 VkPhysicalDeviceProperties* pProperties); 2762 2763 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties( 2764 VkPhysicalDevice physicalDevice, 2765 uint32_t* pQueueFamilyPropertyCount, 2766 VkQueueFamilyProperties* pQueueFamilyProperties); 2767 2768 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties( 2769 VkPhysicalDevice physicalDevice, 2770 VkPhysicalDeviceMemoryProperties* pMemoryProperties); 2771 2772 VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr( 2773 VkInstance instance, 2774 const char* pName); 2775 2776 VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr( 2777 VkDevice device, 2778 const char* pName); 2779 2780 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDevice( 2781 VkPhysicalDevice physicalDevice, 2782 const VkDeviceCreateInfo* pCreateInfo, 2783 const VkAllocationCallbacks* pAllocator, 2784 VkDevice* pDevice); 2785 2786 VKAPI_ATTR void VKAPI_CALL vkDestroyDevice( 2787 VkDevice device, 2788 const VkAllocationCallbacks* pAllocator); 2789 2790 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceExtensionProperties( 2791 const char* pLayerName, 2792 uint32_t* pPropertyCount, 2793 VkExtensionProperties* pProperties); 2794 2795 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceExtensionProperties( 2796 VkPhysicalDevice physicalDevice, 2797 const char* pLayerName, 2798 uint32_t* pPropertyCount, 2799 VkExtensionProperties* pProperties); 2800 2801 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceLayerProperties( 2802 uint32_t* pPropertyCount, 2803 VkLayerProperties* pProperties); 2804 2805 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceLayerProperties( 2806 VkPhysicalDevice physicalDevice, 2807 uint32_t* pPropertyCount, 2808 VkLayerProperties* pProperties); 2809 2810 VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue( 2811 VkDevice device, 2812 uint32_t queueFamilyIndex, 2813 uint32_t queueIndex, 2814 VkQueue* pQueue); 2815 2816 VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit( 2817 VkQueue queue, 2818 uint32_t submitCount, 2819 const VkSubmitInfo* pSubmits, 2820 VkFence fence); 2821 2822 VKAPI_ATTR VkResult VKAPI_CALL vkQueueWaitIdle( 2823 VkQueue queue); 2824 2825 VKAPI_ATTR VkResult VKAPI_CALL vkDeviceWaitIdle( 2826 VkDevice device); 2827 2828 VKAPI_ATTR VkResult VKAPI_CALL vkAllocateMemory( 2829 VkDevice device, 2830 const VkMemoryAllocateInfo* pAllocateInfo, 2831 const VkAllocationCallbacks* pAllocator, 2832 VkDeviceMemory* pMemory); 2833 2834 VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory( 2835 VkDevice device, 2836 VkDeviceMemory memory, 2837 VkDeviceSize offset, 2838 VkDeviceSize size, 2839 VkMemoryMapFlags flags, 2840 void** ppData); 2841 2842 VKAPI_ATTR void VKAPI_CALL vkUnmapMemory( 2843 VkDevice device, 2844 VkDeviceMemory memory); 2845 2846 VKAPI_ATTR VkResult VKAPI_CALL vkFlushMappedMemoryRanges( 2847 VkDevice device, 2848 uint32_t memoryRangeCount, 2849 const VkMappedMemoryRange* pMemoryRanges); 2850 2851 VKAPI_ATTR VkResult VKAPI_CALL vkInvalidateMappedMemoryRanges( 2852 VkDevice device, 2853 uint32_t memoryRangeCount, 2854 const VkMappedMemoryRange* pMemoryRanges); 2855 2856 VKAPI_ATTR void VKAPI_CALL vkGetDeviceMemoryCommitment( 2857 VkDevice device, 2858 VkDeviceMemory memory, 2859 VkDeviceSize* pCommittedMemoryInBytes); 2860 2861 VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory( 2862 VkDevice device, 2863 VkBuffer buffer, 2864 VkDeviceMemory memory, 2865 VkDeviceSize memoryOffset); 2866 2867 VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory( 2868 VkDevice device, 2869 VkImage image, 2870 VkDeviceMemory memory, 2871 VkDeviceSize memoryOffset); 2872 2873 VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements( 2874 VkDevice device, 2875 VkBuffer buffer, 2876 VkMemoryRequirements* pMemoryRequirements); 2877 2878 VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements( 2879 VkDevice device, 2880 VkImage image, 2881 VkMemoryRequirements* pMemoryRequirements); 2882 2883 VKAPI_ATTR VkResult VKAPI_CALL vkCreateFence( 2884 VkDevice device, 2885 const VkFenceCreateInfo* pCreateInfo, 2886 const VkAllocationCallbacks* pAllocator, 2887 VkFence* pFence); 2888 2889 VKAPI_ATTR void VKAPI_CALL vkDestroyFence( 2890 VkDevice device, 2891 VkFence fence, 2892 const VkAllocationCallbacks* pAllocator); 2893 2894 VKAPI_ATTR VkResult VKAPI_CALL vkResetFences( 2895 VkDevice device, 2896 uint32_t fenceCount, 2897 const VkFence* pFences); 2898 2899 VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceStatus( 2900 VkDevice device, 2901 VkFence fence); 2902 2903 VKAPI_ATTR VkResult VKAPI_CALL vkWaitForFences( 2904 VkDevice device, 2905 uint32_t fenceCount, 2906 const VkFence* pFences, 2907 VkBool32 waitAll, 2908 uint64_t timeout); 2909 2910 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSemaphore( 2911 VkDevice device, 2912 const VkSemaphoreCreateInfo* pCreateInfo, 2913 const VkAllocationCallbacks* pAllocator, 2914 VkSemaphore* pSemaphore); 2915 2916 VKAPI_ATTR void VKAPI_CALL vkDestroySemaphore( 2917 VkDevice device, 2918 VkSemaphore semaphore, 2919 const VkAllocationCallbacks* pAllocator); 2920 2921 VKAPI_ATTR VkResult VKAPI_CALL vkCreateEvent( 2922 VkDevice device, 2923 const VkEventCreateInfo* pCreateInfo, 2924 const VkAllocationCallbacks* pAllocator, 2925 VkEvent* pEvent); 2926 2927 VKAPI_ATTR void VKAPI_CALL vkDestroyEvent( 2928 VkDevice device, 2929 VkEvent event, 2930 const VkAllocationCallbacks* pAllocator); 2931 2932 VKAPI_ATTR VkResult VKAPI_CALL vkGetEventStatus( 2933 VkDevice device, 2934 VkEvent event); 2935 2936 VKAPI_ATTR VkResult VKAPI_CALL vkSetEvent( 2937 VkDevice device, 2938 VkEvent event); 2939 2940 VKAPI_ATTR VkResult VKAPI_CALL vkResetEvent( 2941 VkDevice device, 2942 VkEvent event); 2943 2944 VKAPI_ATTR VkResult VKAPI_CALL vkCreateQueryPool( 2945 VkDevice device, 2946 const VkQueryPoolCreateInfo* pCreateInfo, 2947 const VkAllocationCallbacks* pAllocator, 2948 VkQueryPool* pQueryPool); 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 vkCreatePipelineCache( 3011 VkDevice device, 3012 const VkPipelineCacheCreateInfo* pCreateInfo, 3013 const VkAllocationCallbacks* pAllocator, 3014 VkPipelineCache* pPipelineCache); 3015 3016 VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineCache( 3017 VkDevice device, 3018 VkPipelineCache pipelineCache, 3019 const VkAllocationCallbacks* pAllocator); 3020 3021 VKAPI_ATTR VkResult VKAPI_CALL vkCreateGraphicsPipelines( 3022 VkDevice device, 3023 VkPipelineCache pipelineCache, 3024 uint32_t createInfoCount, 3025 const VkGraphicsPipelineCreateInfo* pCreateInfos, 3026 const VkAllocationCallbacks* pAllocator, 3027 VkPipeline* pPipelines); 3028 3029 VKAPI_ATTR VkResult VKAPI_CALL vkCreateComputePipelines( 3030 VkDevice device, 3031 VkPipelineCache pipelineCache, 3032 uint32_t createInfoCount, 3033 const VkComputePipelineCreateInfo* pCreateInfos, 3034 const VkAllocationCallbacks* pAllocator, 3035 VkPipeline* pPipelines); 3036 3037 VKAPI_ATTR void VKAPI_CALL vkDestroyPipeline( 3038 VkDevice device, 3039 VkPipeline pipeline, 3040 const VkAllocationCallbacks* pAllocator); 3041 3042 VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineLayout( 3043 VkDevice device, 3044 const VkPipelineLayoutCreateInfo* pCreateInfo, 3045 const VkAllocationCallbacks* pAllocator, 3046 VkPipelineLayout* pPipelineLayout); 3047 3048 VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineLayout( 3049 VkDevice device, 3050 VkPipelineLayout pipelineLayout, 3051 const VkAllocationCallbacks* pAllocator); 3052 3053 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSampler( 3054 VkDevice device, 3055 const VkSamplerCreateInfo* pCreateInfo, 3056 const VkAllocationCallbacks* pAllocator, 3057 VkSampler* pSampler); 3058 3059 VKAPI_ATTR void VKAPI_CALL vkDestroySampler( 3060 VkDevice device, 3061 VkSampler sampler, 3062 const VkAllocationCallbacks* pAllocator); 3063 3064 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorSetLayout( 3065 VkDevice device, 3066 const VkDescriptorSetLayoutCreateInfo* pCreateInfo, 3067 const VkAllocationCallbacks* pAllocator, 3068 VkDescriptorSetLayout* pSetLayout); 3069 3070 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorSetLayout( 3071 VkDevice device, 3072 VkDescriptorSetLayout descriptorSetLayout, 3073 const VkAllocationCallbacks* pAllocator); 3074 3075 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorPool( 3076 VkDevice device, 3077 const VkDescriptorPoolCreateInfo* pCreateInfo, 3078 const VkAllocationCallbacks* pAllocator, 3079 VkDescriptorPool* pDescriptorPool); 3080 3081 VKAPI_ATTR VkResult VKAPI_CALL vkResetDescriptorPool( 3082 VkDevice device, 3083 VkDescriptorPool descriptorPool, 3084 VkDescriptorPoolResetFlags flags); 3085 3086 VKAPI_ATTR VkResult VKAPI_CALL vkAllocateDescriptorSets( 3087 VkDevice device, 3088 const VkDescriptorSetAllocateInfo* pAllocateInfo, 3089 VkDescriptorSet* pDescriptorSets); 3090 3091 VKAPI_ATTR VkResult VKAPI_CALL vkFreeDescriptorSets( 3092 VkDevice device, 3093 VkDescriptorPool descriptorPool, 3094 uint32_t descriptorSetCount, 3095 const VkDescriptorSet* pDescriptorSets); 3096 3097 VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSets( 3098 VkDevice device, 3099 uint32_t descriptorWriteCount, 3100 const VkWriteDescriptorSet* pDescriptorWrites, 3101 uint32_t descriptorCopyCount, 3102 const VkCopyDescriptorSet* pDescriptorCopies); 3103 3104 VKAPI_ATTR VkResult VKAPI_CALL vkCreateFramebuffer( 3105 VkDevice device, 3106 const VkFramebufferCreateInfo* pCreateInfo, 3107 const VkAllocationCallbacks* pAllocator, 3108 VkFramebuffer* pFramebuffer); 3109 3110 VKAPI_ATTR void VKAPI_CALL vkDestroyFramebuffer( 3111 VkDevice device, 3112 VkFramebuffer framebuffer, 3113 const VkAllocationCallbacks* pAllocator); 3114 3115 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass( 3116 VkDevice device, 3117 const VkRenderPassCreateInfo* pCreateInfo, 3118 const VkAllocationCallbacks* pAllocator, 3119 VkRenderPass* pRenderPass); 3120 3121 VKAPI_ATTR void VKAPI_CALL vkDestroyRenderPass( 3122 VkDevice device, 3123 VkRenderPass renderPass, 3124 const VkAllocationCallbacks* pAllocator); 3125 3126 VKAPI_ATTR void VKAPI_CALL vkGetRenderAreaGranularity( 3127 VkDevice device, 3128 VkRenderPass renderPass, 3129 VkExtent2D* pGranularity); 3130 3131 VKAPI_ATTR VkResult VKAPI_CALL vkCreateCommandPool( 3132 VkDevice device, 3133 const VkCommandPoolCreateInfo* pCreateInfo, 3134 const VkAllocationCallbacks* pAllocator, 3135 VkCommandPool* pCommandPool); 3136 3137 VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandPool( 3138 VkDevice device, 3139 VkCommandPool commandPool, 3140 VkCommandPoolResetFlags flags); 3141 3142 VKAPI_ATTR VkResult VKAPI_CALL vkAllocateCommandBuffers( 3143 VkDevice device, 3144 const VkCommandBufferAllocateInfo* pAllocateInfo, 3145 VkCommandBuffer* pCommandBuffers); 3146 3147 VKAPI_ATTR void VKAPI_CALL vkFreeCommandBuffers( 3148 VkDevice device, 3149 VkCommandPool commandPool, 3150 uint32_t commandBufferCount, 3151 const VkCommandBuffer* pCommandBuffers); 3152 3153 VKAPI_ATTR VkResult VKAPI_CALL vkBeginCommandBuffer( 3154 VkCommandBuffer commandBuffer, 3155 const VkCommandBufferBeginInfo* pBeginInfo); 3156 3157 VKAPI_ATTR VkResult VKAPI_CALL vkEndCommandBuffer( 3158 VkCommandBuffer commandBuffer); 3159 3160 VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandBuffer( 3161 VkCommandBuffer commandBuffer, 3162 VkCommandBufferResetFlags flags); 3163 3164 VKAPI_ATTR void VKAPI_CALL vkCmdBindPipeline( 3165 VkCommandBuffer commandBuffer, 3166 VkPipelineBindPoint pipelineBindPoint, 3167 VkPipeline pipeline); 3168 3169 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewport( 3170 VkCommandBuffer commandBuffer, 3171 uint32_t firstViewport, 3172 uint32_t viewportCount, 3173 const VkViewport* pViewports); 3174 3175 VKAPI_ATTR void VKAPI_CALL vkCmdSetScissor( 3176 VkCommandBuffer commandBuffer, 3177 uint32_t firstScissor, 3178 uint32_t scissorCount, 3179 const VkRect2D* pScissors); 3180 3181 VKAPI_ATTR void VKAPI_CALL vkCmdSetLineWidth( 3182 VkCommandBuffer commandBuffer, 3183 float lineWidth); 3184 3185 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias( 3186 VkCommandBuffer commandBuffer, 3187 float depthBiasConstantFactor, 3188 float depthBiasClamp, 3189 float depthBiasSlopeFactor); 3190 3191 VKAPI_ATTR void VKAPI_CALL vkCmdSetBlendConstants( 3192 VkCommandBuffer commandBuffer, 3193 const float blendConstants[4]); 3194 3195 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBounds( 3196 VkCommandBuffer commandBuffer, 3197 float minDepthBounds, 3198 float maxDepthBounds); 3199 3200 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilCompareMask( 3201 VkCommandBuffer commandBuffer, 3202 VkStencilFaceFlags faceMask, 3203 uint32_t compareMask); 3204 3205 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilWriteMask( 3206 VkCommandBuffer commandBuffer, 3207 VkStencilFaceFlags faceMask, 3208 uint32_t writeMask); 3209 3210 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilReference( 3211 VkCommandBuffer commandBuffer, 3212 VkStencilFaceFlags faceMask, 3213 uint32_t reference); 3214 3215 VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets( 3216 VkCommandBuffer commandBuffer, 3217 VkPipelineBindPoint pipelineBindPoint, 3218 VkPipelineLayout layout, 3219 uint32_t firstSet, 3220 uint32_t descriptorSetCount, 3221 const VkDescriptorSet* pDescriptorSets, 3222 uint32_t dynamicOffsetCount, 3223 const uint32_t* pDynamicOffsets); 3224 3225 VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer( 3226 VkCommandBuffer commandBuffer, 3227 VkBuffer buffer, 3228 VkDeviceSize offset, 3229 VkIndexType indexType); 3230 3231 VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers( 3232 VkCommandBuffer commandBuffer, 3233 uint32_t firstBinding, 3234 uint32_t bindingCount, 3235 const VkBuffer* pBuffers, 3236 const VkDeviceSize* pOffsets); 3237 3238 VKAPI_ATTR void VKAPI_CALL vkCmdDraw( 3239 VkCommandBuffer commandBuffer, 3240 uint32_t vertexCount, 3241 uint32_t instanceCount, 3242 uint32_t firstVertex, 3243 uint32_t firstInstance); 3244 3245 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexed( 3246 VkCommandBuffer commandBuffer, 3247 uint32_t indexCount, 3248 uint32_t instanceCount, 3249 uint32_t firstIndex, 3250 int32_t vertexOffset, 3251 uint32_t firstInstance); 3252 3253 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirect( 3254 VkCommandBuffer commandBuffer, 3255 VkBuffer buffer, 3256 VkDeviceSize offset, 3257 uint32_t drawCount, 3258 uint32_t stride); 3259 3260 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirect( 3261 VkCommandBuffer commandBuffer, 3262 VkBuffer buffer, 3263 VkDeviceSize offset, 3264 uint32_t drawCount, 3265 uint32_t stride); 3266 3267 VKAPI_ATTR void VKAPI_CALL vkCmdDispatch( 3268 VkCommandBuffer commandBuffer, 3269 uint32_t groupCountX, 3270 uint32_t groupCountY, 3271 uint32_t groupCountZ); 3272 3273 VKAPI_ATTR void VKAPI_CALL vkCmdDispatchIndirect( 3274 VkCommandBuffer commandBuffer, 3275 VkBuffer buffer, 3276 VkDeviceSize offset); 3277 3278 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer( 3279 VkCommandBuffer commandBuffer, 3280 VkBuffer srcBuffer, 3281 VkBuffer dstBuffer, 3282 uint32_t regionCount, 3283 const VkBufferCopy* pRegions); 3284 3285 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage( 3286 VkCommandBuffer commandBuffer, 3287 VkImage srcImage, 3288 VkImageLayout srcImageLayout, 3289 VkImage dstImage, 3290 VkImageLayout dstImageLayout, 3291 uint32_t regionCount, 3292 const VkImageCopy* pRegions); 3293 3294 VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage( 3295 VkCommandBuffer commandBuffer, 3296 VkImage srcImage, 3297 VkImageLayout srcImageLayout, 3298 VkImage dstImage, 3299 VkImageLayout dstImageLayout, 3300 uint32_t regionCount, 3301 const VkImageBlit* pRegions, 3302 VkFilter filter); 3303 3304 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage( 3305 VkCommandBuffer commandBuffer, 3306 VkBuffer srcBuffer, 3307 VkImage dstImage, 3308 VkImageLayout dstImageLayout, 3309 uint32_t regionCount, 3310 const VkBufferImageCopy* pRegions); 3311 3312 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer( 3313 VkCommandBuffer commandBuffer, 3314 VkImage srcImage, 3315 VkImageLayout srcImageLayout, 3316 VkBuffer dstBuffer, 3317 uint32_t regionCount, 3318 const VkBufferImageCopy* pRegions); 3319 3320 VKAPI_ATTR void VKAPI_CALL vkCmdUpdateBuffer( 3321 VkCommandBuffer commandBuffer, 3322 VkBuffer dstBuffer, 3323 VkDeviceSize dstOffset, 3324 VkDeviceSize dataSize, 3325 const void* pData); 3326 3327 VKAPI_ATTR void VKAPI_CALL vkCmdFillBuffer( 3328 VkCommandBuffer commandBuffer, 3329 VkBuffer dstBuffer, 3330 VkDeviceSize dstOffset, 3331 VkDeviceSize size, 3332 uint32_t data); 3333 3334 VKAPI_ATTR void VKAPI_CALL vkCmdClearColorImage( 3335 VkCommandBuffer commandBuffer, 3336 VkImage image, 3337 VkImageLayout imageLayout, 3338 const VkClearColorValue* pColor, 3339 uint32_t rangeCount, 3340 const VkImageSubresourceRange* pRanges); 3341 3342 VKAPI_ATTR void VKAPI_CALL vkCmdClearDepthStencilImage( 3343 VkCommandBuffer commandBuffer, 3344 VkImage image, 3345 VkImageLayout imageLayout, 3346 const VkClearDepthStencilValue* pDepthStencil, 3347 uint32_t rangeCount, 3348 const VkImageSubresourceRange* pRanges); 3349 3350 VKAPI_ATTR void VKAPI_CALL vkCmdClearAttachments( 3351 VkCommandBuffer commandBuffer, 3352 uint32_t attachmentCount, 3353 const VkClearAttachment* pAttachments, 3354 uint32_t rectCount, 3355 const VkClearRect* pRects); 3356 3357 VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage( 3358 VkCommandBuffer commandBuffer, 3359 VkImage srcImage, 3360 VkImageLayout srcImageLayout, 3361 VkImage dstImage, 3362 VkImageLayout dstImageLayout, 3363 uint32_t regionCount, 3364 const VkImageResolve* pRegions); 3365 3366 VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent( 3367 VkCommandBuffer commandBuffer, 3368 VkEvent event, 3369 VkPipelineStageFlags stageMask); 3370 3371 VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent( 3372 VkCommandBuffer commandBuffer, 3373 VkEvent event, 3374 VkPipelineStageFlags stageMask); 3375 3376 VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents( 3377 VkCommandBuffer commandBuffer, 3378 uint32_t eventCount, 3379 const VkEvent* pEvents, 3380 VkPipelineStageFlags srcStageMask, 3381 VkPipelineStageFlags dstStageMask, 3382 uint32_t memoryBarrierCount, 3383 const VkMemoryBarrier* pMemoryBarriers, 3384 uint32_t bufferMemoryBarrierCount, 3385 const VkBufferMemoryBarrier* pBufferMemoryBarriers, 3386 uint32_t imageMemoryBarrierCount, 3387 const VkImageMemoryBarrier* pImageMemoryBarriers); 3388 3389 VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier( 3390 VkCommandBuffer commandBuffer, 3391 VkPipelineStageFlags srcStageMask, 3392 VkPipelineStageFlags dstStageMask, 3393 VkDependencyFlags dependencyFlags, 3394 uint32_t memoryBarrierCount, 3395 const VkMemoryBarrier* pMemoryBarriers, 3396 uint32_t bufferMemoryBarrierCount, 3397 const VkBufferMemoryBarrier* pBufferMemoryBarriers, 3398 uint32_t imageMemoryBarrierCount, 3399 const VkImageMemoryBarrier* pImageMemoryBarriers); 3400 3401 VKAPI_ATTR void VKAPI_CALL vkCmdBeginQuery( 3402 VkCommandBuffer commandBuffer, 3403 VkQueryPool queryPool, 3404 uint32_t query, 3405 VkQueryControlFlags flags); 3406 3407 VKAPI_ATTR void VKAPI_CALL vkCmdEndQuery( 3408 VkCommandBuffer commandBuffer, 3409 VkQueryPool queryPool, 3410 uint32_t query); 3411 3412 VKAPI_ATTR void VKAPI_CALL vkCmdResetQueryPool( 3413 VkCommandBuffer commandBuffer, 3414 VkQueryPool queryPool, 3415 uint32_t firstQuery, 3416 uint32_t queryCount); 3417 3418 VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp( 3419 VkCommandBuffer commandBuffer, 3420 VkPipelineStageFlagBits pipelineStage, 3421 VkQueryPool queryPool, 3422 uint32_t query); 3423 3424 VKAPI_ATTR void VKAPI_CALL vkCmdCopyQueryPoolResults( 3425 VkCommandBuffer commandBuffer, 3426 VkQueryPool queryPool, 3427 uint32_t firstQuery, 3428 uint32_t queryCount, 3429 VkBuffer dstBuffer, 3430 VkDeviceSize dstOffset, 3431 VkDeviceSize stride, 3432 VkQueryResultFlags flags); 3433 3434 VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants( 3435 VkCommandBuffer commandBuffer, 3436 VkPipelineLayout layout, 3437 VkShaderStageFlags stageFlags, 3438 uint32_t offset, 3439 uint32_t size, 3440 const void* pValues); 3441 3442 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass( 3443 VkCommandBuffer commandBuffer, 3444 const VkRenderPassBeginInfo* pRenderPassBegin, 3445 VkSubpassContents contents); 3446 3447 VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass( 3448 VkCommandBuffer commandBuffer, 3449 VkSubpassContents contents); 3450 3451 VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass( 3452 VkCommandBuffer commandBuffer); 3453 3454 VKAPI_ATTR void VKAPI_CALL vkCmdExecuteCommands( 3455 VkCommandBuffer commandBuffer, 3456 uint32_t commandBufferCount, 3457 const VkCommandBuffer* pCommandBuffers); 3458 #endif 3459 3460 3461 #define VK_VERSION_1_1 1 3462 // Vulkan 1.1 version number 3463 #define VK_API_VERSION_1_1 VK_MAKE_API_VERSION(0, 1, 1, 0)// Patch version should always be set to 0 3464 3465 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSamplerYcbcrConversion) 3466 #define VK_MAX_DEVICE_GROUP_SIZE 32U 3467 #define VK_LUID_SIZE 8U 3468 #define VK_QUEUE_FAMILY_EXTERNAL (~1U) 3469 3470 typedef enum VkPointClippingBehavior { 3471 VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0, 3472 VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1, 3473 VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM = 0x7FFFFFFF 3474 } VkPointClippingBehavior; 3475 3476 typedef enum VkTessellationDomainOrigin { 3477 VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0, 3478 VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1, 3479 VK_TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM = 0x7FFFFFFF 3480 } VkTessellationDomainOrigin; 3481 3482 typedef enum VkSamplerYcbcrModelConversion { 3483 VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = 0, 3484 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = 1, 3485 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = 2, 3486 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = 3, 3487 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4, 3488 VK_SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM = 0x7FFFFFFF 3489 } VkSamplerYcbcrModelConversion; 3490 3491 typedef enum VkSamplerYcbcrRange { 3492 VK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0, 3493 VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1, 3494 VK_SAMPLER_YCBCR_RANGE_MAX_ENUM = 0x7FFFFFFF 3495 } VkSamplerYcbcrRange; 3496 3497 typedef enum VkChromaLocation { 3498 VK_CHROMA_LOCATION_COSITED_EVEN = 0, 3499 VK_CHROMA_LOCATION_MIDPOINT = 1, 3500 VK_CHROMA_LOCATION_MAX_ENUM = 0x7FFFFFFF 3501 } VkChromaLocation; 3502 3503 typedef enum VkSubgroupFeatureFlagBits { 3504 VK_SUBGROUP_FEATURE_BASIC_BIT = 0x00000001, 3505 VK_SUBGROUP_FEATURE_VOTE_BIT = 0x00000002, 3506 VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 0x00000004, 3507 VK_SUBGROUP_FEATURE_BALLOT_BIT = 0x00000008, 3508 VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 0x00000010, 3509 VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 0x00000020, 3510 VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0x00000040, 3511 VK_SUBGROUP_FEATURE_QUAD_BIT = 0x00000080, 3512 VK_SUBGROUP_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 3513 } VkSubgroupFeatureFlagBits; 3514 typedef VkFlags VkSubgroupFeatureFlags; 3515 3516 typedef enum VkPeerMemoryFeatureFlagBits { 3517 VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 0x00000001, 3518 VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 0x00000002, 3519 VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 0x00000004, 3520 VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 0x00000008, 3521 VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 3522 } VkPeerMemoryFeatureFlagBits; 3523 typedef VkFlags VkPeerMemoryFeatureFlags; 3524 3525 typedef enum VkMemoryAllocateFlagBits { 3526 VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 0x00000001, 3527 VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT = 0x00000002, 3528 VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0x00000004, 3529 VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 3530 } VkMemoryAllocateFlagBits; 3531 typedef VkFlags VkMemoryAllocateFlags; 3532 3533 typedef enum VkExternalMemoryHandleTypeFlagBits { 3534 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001, 3535 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002, 3536 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004, 3537 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 0x00000008, 3538 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 0x00000010, 3539 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 0x00000020, 3540 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0x00000040, 3541 VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 0x00000200, 3542 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080, 3543 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100, 3544 VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 3545 } VkExternalMemoryHandleTypeFlagBits; 3546 typedef VkFlags VkExternalMemoryHandleTypeFlags; 3547 3548 typedef enum VkExternalMemoryFeatureFlagBits { 3549 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 0x00000001, 3550 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 0x00000002, 3551 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 0x00000004, 3552 VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 3553 } VkExternalMemoryFeatureFlagBits; 3554 typedef VkFlags VkExternalMemoryFeatureFlags; 3555 3556 typedef enum VkExternalFenceHandleTypeFlagBits { 3557 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001, 3558 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002, 3559 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004, 3560 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000008, 3561 VK_EXTERNAL_FENCE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 3562 } VkExternalFenceHandleTypeFlagBits; 3563 typedef VkFlags VkExternalFenceHandleTypeFlags; 3564 3565 typedef enum VkExternalFenceFeatureFlagBits { 3566 VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 0x00000001, 3567 VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 0x00000002, 3568 VK_EXTERNAL_FENCE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 3569 } VkExternalFenceFeatureFlagBits; 3570 typedef VkFlags VkExternalFenceFeatureFlags; 3571 3572 typedef enum VkFenceImportFlagBits { 3573 VK_FENCE_IMPORT_TEMPORARY_BIT = 0x00000001, 3574 VK_FENCE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 3575 } VkFenceImportFlagBits; 3576 typedef VkFlags VkFenceImportFlags; 3577 3578 typedef enum VkSemaphoreImportFlagBits { 3579 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 0x00000001, 3580 VK_SEMAPHORE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 3581 } VkSemaphoreImportFlagBits; 3582 typedef VkFlags VkSemaphoreImportFlags; 3583 3584 typedef enum VkExternalSemaphoreHandleTypeFlagBits { 3585 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001, 3586 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002, 3587 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004, 3588 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0x00000008, 3589 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000010, 3590 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT, 3591 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 3592 } VkExternalSemaphoreHandleTypeFlagBits; 3593 typedef VkFlags VkExternalSemaphoreHandleTypeFlags; 3594 3595 typedef enum VkExternalSemaphoreFeatureFlagBits { 3596 VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 0x00000001, 3597 VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 0x00000002, 3598 VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 3599 } VkExternalSemaphoreFeatureFlagBits; 3600 typedef VkFlags VkExternalSemaphoreFeatureFlags; 3601 typedef struct VkPhysicalDeviceSubgroupProperties { 3602 VkStructureType sType; 3603 void* pNext; 3604 uint32_t subgroupSize; 3605 VkShaderStageFlags supportedStages; 3606 VkSubgroupFeatureFlags supportedOperations; 3607 VkBool32 quadOperationsInAllStages; 3608 } VkPhysicalDeviceSubgroupProperties; 3609 3610 typedef struct VkBindBufferMemoryInfo { 3611 VkStructureType sType; 3612 const void* pNext; 3613 VkBuffer buffer; 3614 VkDeviceMemory memory; 3615 VkDeviceSize memoryOffset; 3616 } VkBindBufferMemoryInfo; 3617 3618 typedef struct VkBindImageMemoryInfo { 3619 VkStructureType sType; 3620 const void* pNext; 3621 VkImage image; 3622 VkDeviceMemory memory; 3623 VkDeviceSize memoryOffset; 3624 } VkBindImageMemoryInfo; 3625 3626 typedef struct VkPhysicalDevice16BitStorageFeatures { 3627 VkStructureType sType; 3628 void* pNext; 3629 VkBool32 storageBuffer16BitAccess; 3630 VkBool32 uniformAndStorageBuffer16BitAccess; 3631 VkBool32 storagePushConstant16; 3632 VkBool32 storageInputOutput16; 3633 } VkPhysicalDevice16BitStorageFeatures; 3634 3635 typedef struct VkMemoryDedicatedRequirements { 3636 VkStructureType sType; 3637 void* pNext; 3638 VkBool32 prefersDedicatedAllocation; 3639 VkBool32 requiresDedicatedAllocation; 3640 } VkMemoryDedicatedRequirements; 3641 3642 typedef struct VkMemoryDedicatedAllocateInfo { 3643 VkStructureType sType; 3644 const void* pNext; 3645 VkImage image; 3646 VkBuffer buffer; 3647 } VkMemoryDedicatedAllocateInfo; 3648 3649 typedef struct VkMemoryAllocateFlagsInfo { 3650 VkStructureType sType; 3651 const void* pNext; 3652 VkMemoryAllocateFlags flags; 3653 uint32_t deviceMask; 3654 } VkMemoryAllocateFlagsInfo; 3655 3656 typedef struct VkDeviceGroupRenderPassBeginInfo { 3657 VkStructureType sType; 3658 const void* pNext; 3659 uint32_t deviceMask; 3660 uint32_t deviceRenderAreaCount; 3661 const VkRect2D* pDeviceRenderAreas; 3662 } VkDeviceGroupRenderPassBeginInfo; 3663 3664 typedef struct VkDeviceGroupCommandBufferBeginInfo { 3665 VkStructureType sType; 3666 const void* pNext; 3667 uint32_t deviceMask; 3668 } VkDeviceGroupCommandBufferBeginInfo; 3669 3670 typedef struct VkDeviceGroupSubmitInfo { 3671 VkStructureType sType; 3672 const void* pNext; 3673 uint32_t waitSemaphoreCount; 3674 const uint32_t* pWaitSemaphoreDeviceIndices; 3675 uint32_t commandBufferCount; 3676 const uint32_t* pCommandBufferDeviceMasks; 3677 uint32_t signalSemaphoreCount; 3678 const uint32_t* pSignalSemaphoreDeviceIndices; 3679 } VkDeviceGroupSubmitInfo; 3680 3681 typedef struct VkBindBufferMemoryDeviceGroupInfo { 3682 VkStructureType sType; 3683 const void* pNext; 3684 uint32_t deviceIndexCount; 3685 const uint32_t* pDeviceIndices; 3686 } VkBindBufferMemoryDeviceGroupInfo; 3687 3688 typedef struct VkBindImageMemoryDeviceGroupInfo { 3689 VkStructureType sType; 3690 const void* pNext; 3691 uint32_t deviceIndexCount; 3692 const uint32_t* pDeviceIndices; 3693 uint32_t splitInstanceBindRegionCount; 3694 const VkRect2D* pSplitInstanceBindRegions; 3695 } VkBindImageMemoryDeviceGroupInfo; 3696 3697 typedef struct VkPhysicalDeviceGroupProperties { 3698 VkStructureType sType; 3699 void* pNext; 3700 uint32_t physicalDeviceCount; 3701 VkPhysicalDevice physicalDevices[VK_MAX_DEVICE_GROUP_SIZE]; 3702 VkBool32 subsetAllocation; 3703 } VkPhysicalDeviceGroupProperties; 3704 3705 typedef struct VkDeviceGroupDeviceCreateInfo { 3706 VkStructureType sType; 3707 const void* pNext; 3708 uint32_t physicalDeviceCount; 3709 const VkPhysicalDevice* pPhysicalDevices; 3710 } VkDeviceGroupDeviceCreateInfo; 3711 3712 typedef struct VkBufferMemoryRequirementsInfo2 { 3713 VkStructureType sType; 3714 const void* pNext; 3715 VkBuffer buffer; 3716 } VkBufferMemoryRequirementsInfo2; 3717 3718 typedef struct VkImageMemoryRequirementsInfo2 { 3719 VkStructureType sType; 3720 const void* pNext; 3721 VkImage image; 3722 } VkImageMemoryRequirementsInfo2; 3723 3724 typedef struct VkMemoryRequirements2 { 3725 VkStructureType sType; 3726 void* pNext; 3727 VkMemoryRequirements memoryRequirements; 3728 } VkMemoryRequirements2; 3729 3730 typedef struct VkPhysicalDeviceFeatures2 { 3731 VkStructureType sType; 3732 void* pNext; 3733 VkPhysicalDeviceFeatures features; 3734 } VkPhysicalDeviceFeatures2; 3735 3736 typedef struct VkPhysicalDeviceProperties2 { 3737 VkStructureType sType; 3738 void* pNext; 3739 VkPhysicalDeviceProperties properties; 3740 } VkPhysicalDeviceProperties2; 3741 3742 typedef struct VkFormatProperties2 { 3743 VkStructureType sType; 3744 void* pNext; 3745 VkFormatProperties formatProperties; 3746 } VkFormatProperties2; 3747 3748 typedef struct VkImageFormatProperties2 { 3749 VkStructureType sType; 3750 void* pNext; 3751 VkImageFormatProperties imageFormatProperties; 3752 } VkImageFormatProperties2; 3753 3754 typedef struct VkPhysicalDeviceImageFormatInfo2 { 3755 VkStructureType sType; 3756 const void* pNext; 3757 VkFormat format; 3758 VkImageType type; 3759 VkImageTiling tiling; 3760 VkImageUsageFlags usage; 3761 VkImageCreateFlags flags; 3762 } VkPhysicalDeviceImageFormatInfo2; 3763 3764 typedef struct VkQueueFamilyProperties2 { 3765 VkStructureType sType; 3766 void* pNext; 3767 VkQueueFamilyProperties queueFamilyProperties; 3768 } VkQueueFamilyProperties2; 3769 3770 typedef struct VkPhysicalDeviceMemoryProperties2 { 3771 VkStructureType sType; 3772 void* pNext; 3773 VkPhysicalDeviceMemoryProperties memoryProperties; 3774 } VkPhysicalDeviceMemoryProperties2; 3775 3776 typedef struct VkPhysicalDevicePointClippingProperties { 3777 VkStructureType sType; 3778 void* pNext; 3779 VkPointClippingBehavior pointClippingBehavior; 3780 } VkPhysicalDevicePointClippingProperties; 3781 3782 typedef struct VkInputAttachmentAspectReference { 3783 uint32_t subpass; 3784 uint32_t inputAttachmentIndex; 3785 VkImageAspectFlags aspectMask; 3786 } VkInputAttachmentAspectReference; 3787 3788 typedef struct VkRenderPassInputAttachmentAspectCreateInfo { 3789 VkStructureType sType; 3790 const void* pNext; 3791 uint32_t aspectReferenceCount; 3792 const VkInputAttachmentAspectReference* pAspectReferences; 3793 } VkRenderPassInputAttachmentAspectCreateInfo; 3794 3795 typedef struct VkImageViewUsageCreateInfo { 3796 VkStructureType sType; 3797 const void* pNext; 3798 VkImageUsageFlags usage; 3799 } VkImageViewUsageCreateInfo; 3800 3801 typedef struct VkPipelineTessellationDomainOriginStateCreateInfo { 3802 VkStructureType sType; 3803 const void* pNext; 3804 VkTessellationDomainOrigin domainOrigin; 3805 } VkPipelineTessellationDomainOriginStateCreateInfo; 3806 3807 typedef struct VkRenderPassMultiviewCreateInfo { 3808 VkStructureType sType; 3809 const void* pNext; 3810 uint32_t subpassCount; 3811 const uint32_t* pViewMasks; 3812 uint32_t dependencyCount; 3813 const int32_t* pViewOffsets; 3814 uint32_t correlationMaskCount; 3815 const uint32_t* pCorrelationMasks; 3816 } VkRenderPassMultiviewCreateInfo; 3817 3818 typedef struct VkPhysicalDeviceMultiviewFeatures { 3819 VkStructureType sType; 3820 void* pNext; 3821 VkBool32 multiview; 3822 VkBool32 multiviewGeometryShader; 3823 VkBool32 multiviewTessellationShader; 3824 } VkPhysicalDeviceMultiviewFeatures; 3825 3826 typedef struct VkPhysicalDeviceMultiviewProperties { 3827 VkStructureType sType; 3828 void* pNext; 3829 uint32_t maxMultiviewViewCount; 3830 uint32_t maxMultiviewInstanceIndex; 3831 } VkPhysicalDeviceMultiviewProperties; 3832 3833 typedef struct VkPhysicalDeviceVariablePointersFeatures { 3834 VkStructureType sType; 3835 void* pNext; 3836 VkBool32 variablePointersStorageBuffer; 3837 VkBool32 variablePointers; 3838 } VkPhysicalDeviceVariablePointersFeatures; 3839 3840 typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeatures; 3841 3842 typedef struct VkPhysicalDeviceProtectedMemoryFeatures { 3843 VkStructureType sType; 3844 void* pNext; 3845 VkBool32 protectedMemory; 3846 } VkPhysicalDeviceProtectedMemoryFeatures; 3847 3848 typedef struct VkPhysicalDeviceProtectedMemoryProperties { 3849 VkStructureType sType; 3850 void* pNext; 3851 VkBool32 protectedNoFault; 3852 } VkPhysicalDeviceProtectedMemoryProperties; 3853 3854 typedef struct VkDeviceQueueInfo2 { 3855 VkStructureType sType; 3856 const void* pNext; 3857 VkDeviceQueueCreateFlags flags; 3858 uint32_t queueFamilyIndex; 3859 uint32_t queueIndex; 3860 } VkDeviceQueueInfo2; 3861 3862 typedef struct VkProtectedSubmitInfo { 3863 VkStructureType sType; 3864 const void* pNext; 3865 VkBool32 protectedSubmit; 3866 } VkProtectedSubmitInfo; 3867 3868 typedef struct VkSamplerYcbcrConversionCreateInfo { 3869 VkStructureType sType; 3870 const void* pNext; 3871 VkFormat format; 3872 VkSamplerYcbcrModelConversion ycbcrModel; 3873 VkSamplerYcbcrRange ycbcrRange; 3874 VkComponentMapping components; 3875 VkChromaLocation xChromaOffset; 3876 VkChromaLocation yChromaOffset; 3877 VkFilter chromaFilter; 3878 VkBool32 forceExplicitReconstruction; 3879 } VkSamplerYcbcrConversionCreateInfo; 3880 3881 typedef struct VkSamplerYcbcrConversionInfo { 3882 VkStructureType sType; 3883 const void* pNext; 3884 VkSamplerYcbcrConversion conversion; 3885 } VkSamplerYcbcrConversionInfo; 3886 3887 typedef struct VkBindImagePlaneMemoryInfo { 3888 VkStructureType sType; 3889 const void* pNext; 3890 VkImageAspectFlagBits planeAspect; 3891 } VkBindImagePlaneMemoryInfo; 3892 3893 typedef struct VkImagePlaneMemoryRequirementsInfo { 3894 VkStructureType sType; 3895 const void* pNext; 3896 VkImageAspectFlagBits planeAspect; 3897 } VkImagePlaneMemoryRequirementsInfo; 3898 3899 typedef struct VkPhysicalDeviceSamplerYcbcrConversionFeatures { 3900 VkStructureType sType; 3901 void* pNext; 3902 VkBool32 samplerYcbcrConversion; 3903 } VkPhysicalDeviceSamplerYcbcrConversionFeatures; 3904 3905 typedef struct VkSamplerYcbcrConversionImageFormatProperties { 3906 VkStructureType sType; 3907 void* pNext; 3908 uint32_t combinedImageSamplerDescriptorCount; 3909 } VkSamplerYcbcrConversionImageFormatProperties; 3910 3911 typedef struct VkExternalMemoryProperties { 3912 VkExternalMemoryFeatureFlags externalMemoryFeatures; 3913 VkExternalMemoryHandleTypeFlags exportFromImportedHandleTypes; 3914 VkExternalMemoryHandleTypeFlags compatibleHandleTypes; 3915 } VkExternalMemoryProperties; 3916 3917 typedef struct VkPhysicalDeviceExternalImageFormatInfo { 3918 VkStructureType sType; 3919 const void* pNext; 3920 VkExternalMemoryHandleTypeFlagBits handleType; 3921 } VkPhysicalDeviceExternalImageFormatInfo; 3922 3923 typedef struct VkExternalImageFormatProperties { 3924 VkStructureType sType; 3925 void* pNext; 3926 VkExternalMemoryProperties externalMemoryProperties; 3927 } VkExternalImageFormatProperties; 3928 3929 typedef struct VkPhysicalDeviceExternalBufferInfo { 3930 VkStructureType sType; 3931 const void* pNext; 3932 VkBufferCreateFlags flags; 3933 VkBufferUsageFlags usage; 3934 VkExternalMemoryHandleTypeFlagBits handleType; 3935 } VkPhysicalDeviceExternalBufferInfo; 3936 3937 typedef struct VkExternalBufferProperties { 3938 VkStructureType sType; 3939 void* pNext; 3940 VkExternalMemoryProperties externalMemoryProperties; 3941 } VkExternalBufferProperties; 3942 3943 typedef struct VkPhysicalDeviceIDProperties { 3944 VkStructureType sType; 3945 void* pNext; 3946 uint8_t deviceUUID[VK_UUID_SIZE]; 3947 uint8_t driverUUID[VK_UUID_SIZE]; 3948 uint8_t deviceLUID[VK_LUID_SIZE]; 3949 uint32_t deviceNodeMask; 3950 VkBool32 deviceLUIDValid; 3951 } VkPhysicalDeviceIDProperties; 3952 3953 typedef struct VkExternalMemoryImageCreateInfo { 3954 VkStructureType sType; 3955 const void* pNext; 3956 VkExternalMemoryHandleTypeFlags handleTypes; 3957 } VkExternalMemoryImageCreateInfo; 3958 3959 typedef struct VkExternalMemoryBufferCreateInfo { 3960 VkStructureType sType; 3961 const void* pNext; 3962 VkExternalMemoryHandleTypeFlags handleTypes; 3963 } VkExternalMemoryBufferCreateInfo; 3964 3965 typedef struct VkExportMemoryAllocateInfo { 3966 VkStructureType sType; 3967 const void* pNext; 3968 VkExternalMemoryHandleTypeFlags handleTypes; 3969 } VkExportMemoryAllocateInfo; 3970 3971 typedef struct VkPhysicalDeviceExternalFenceInfo { 3972 VkStructureType sType; 3973 const void* pNext; 3974 VkExternalFenceHandleTypeFlagBits handleType; 3975 } VkPhysicalDeviceExternalFenceInfo; 3976 3977 typedef struct VkExternalFenceProperties { 3978 VkStructureType sType; 3979 void* pNext; 3980 VkExternalFenceHandleTypeFlags exportFromImportedHandleTypes; 3981 VkExternalFenceHandleTypeFlags compatibleHandleTypes; 3982 VkExternalFenceFeatureFlags externalFenceFeatures; 3983 } VkExternalFenceProperties; 3984 3985 typedef struct VkExportFenceCreateInfo { 3986 VkStructureType sType; 3987 const void* pNext; 3988 VkExternalFenceHandleTypeFlags handleTypes; 3989 } VkExportFenceCreateInfo; 3990 3991 typedef struct VkExportSemaphoreCreateInfo { 3992 VkStructureType sType; 3993 const void* pNext; 3994 VkExternalSemaphoreHandleTypeFlags handleTypes; 3995 } VkExportSemaphoreCreateInfo; 3996 3997 typedef struct VkPhysicalDeviceExternalSemaphoreInfo { 3998 VkStructureType sType; 3999 const void* pNext; 4000 VkExternalSemaphoreHandleTypeFlagBits handleType; 4001 } VkPhysicalDeviceExternalSemaphoreInfo; 4002 4003 typedef struct VkExternalSemaphoreProperties { 4004 VkStructureType sType; 4005 void* pNext; 4006 VkExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes; 4007 VkExternalSemaphoreHandleTypeFlags compatibleHandleTypes; 4008 VkExternalSemaphoreFeatureFlags externalSemaphoreFeatures; 4009 } VkExternalSemaphoreProperties; 4010 4011 typedef struct VkPhysicalDeviceMaintenance3Properties { 4012 VkStructureType sType; 4013 void* pNext; 4014 uint32_t maxPerSetDescriptors; 4015 VkDeviceSize maxMemoryAllocationSize; 4016 } VkPhysicalDeviceMaintenance3Properties; 4017 4018 typedef struct VkDescriptorSetLayoutSupport { 4019 VkStructureType sType; 4020 void* pNext; 4021 VkBool32 supported; 4022 } VkDescriptorSetLayoutSupport; 4023 4024 typedef struct VkPhysicalDeviceShaderDrawParametersFeatures { 4025 VkStructureType sType; 4026 void* pNext; 4027 VkBool32 shaderDrawParameters; 4028 } VkPhysicalDeviceShaderDrawParametersFeatures; 4029 4030 typedef VkPhysicalDeviceShaderDrawParametersFeatures VkPhysicalDeviceShaderDrawParameterFeatures; 4031 4032 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceVersion)(uint32_t* pApiVersion); 4033 typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos); 4034 typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos); 4035 typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeatures)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures); 4036 typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMask)(VkCommandBuffer commandBuffer, uint32_t deviceMask); 4037 typedef void (VKAPI_PTR *PFN_vkCmdDispatchBase)(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ); 4038 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroups)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties); 4039 typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements); 4040 typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements); 4041 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures); 4042 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties); 4043 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties); 4044 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties); 4045 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties); 4046 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties); 4047 typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue2)(VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue); 4048 typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversion)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion); 4049 typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversion)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator); 4050 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties); 4051 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFenceProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties); 4052 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphoreProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties); 4053 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupport)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport); 4054 4055 #ifndef VK_NO_PROTOTYPES 4056 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceVersion( 4057 uint32_t* pApiVersion); 4058 4059 VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2( 4060 VkDevice device, 4061 uint32_t bindInfoCount, 4062 const VkBindBufferMemoryInfo* pBindInfos); 4063 4064 VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2( 4065 VkDevice device, 4066 uint32_t bindInfoCount, 4067 const VkBindImageMemoryInfo* pBindInfos); 4068 4069 VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeatures( 4070 VkDevice device, 4071 uint32_t heapIndex, 4072 uint32_t localDeviceIndex, 4073 uint32_t remoteDeviceIndex, 4074 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures); 4075 4076 VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMask( 4077 VkCommandBuffer commandBuffer, 4078 uint32_t deviceMask); 4079 4080 VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBase( 4081 VkCommandBuffer commandBuffer, 4082 uint32_t baseGroupX, 4083 uint32_t baseGroupY, 4084 uint32_t baseGroupZ, 4085 uint32_t groupCountX, 4086 uint32_t groupCountY, 4087 uint32_t groupCountZ); 4088 4089 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroups( 4090 VkInstance instance, 4091 uint32_t* pPhysicalDeviceGroupCount, 4092 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties); 4093 4094 VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2( 4095 VkDevice device, 4096 const VkImageMemoryRequirementsInfo2* pInfo, 4097 VkMemoryRequirements2* pMemoryRequirements); 4098 4099 VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2( 4100 VkDevice device, 4101 const VkBufferMemoryRequirementsInfo2* pInfo, 4102 VkMemoryRequirements2* pMemoryRequirements); 4103 4104 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2( 4105 VkPhysicalDevice physicalDevice, 4106 VkPhysicalDeviceFeatures2* pFeatures); 4107 4108 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2( 4109 VkPhysicalDevice physicalDevice, 4110 VkPhysicalDeviceProperties2* pProperties); 4111 4112 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2( 4113 VkPhysicalDevice physicalDevice, 4114 VkFormat format, 4115 VkFormatProperties2* pFormatProperties); 4116 4117 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2( 4118 VkPhysicalDevice physicalDevice, 4119 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, 4120 VkImageFormatProperties2* pImageFormatProperties); 4121 4122 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2( 4123 VkPhysicalDevice physicalDevice, 4124 uint32_t* pQueueFamilyPropertyCount, 4125 VkQueueFamilyProperties2* pQueueFamilyProperties); 4126 4127 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2( 4128 VkPhysicalDevice physicalDevice, 4129 VkPhysicalDeviceMemoryProperties2* pMemoryProperties); 4130 4131 VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue2( 4132 VkDevice device, 4133 const VkDeviceQueueInfo2* pQueueInfo, 4134 VkQueue* pQueue); 4135 4136 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversion( 4137 VkDevice device, 4138 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, 4139 const VkAllocationCallbacks* pAllocator, 4140 VkSamplerYcbcrConversion* pYcbcrConversion); 4141 4142 VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversion( 4143 VkDevice device, 4144 VkSamplerYcbcrConversion ycbcrConversion, 4145 const VkAllocationCallbacks* pAllocator); 4146 4147 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferProperties( 4148 VkPhysicalDevice physicalDevice, 4149 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, 4150 VkExternalBufferProperties* pExternalBufferProperties); 4151 4152 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFenceProperties( 4153 VkPhysicalDevice physicalDevice, 4154 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, 4155 VkExternalFenceProperties* pExternalFenceProperties); 4156 4157 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphoreProperties( 4158 VkPhysicalDevice physicalDevice, 4159 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, 4160 VkExternalSemaphoreProperties* pExternalSemaphoreProperties); 4161 4162 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupport( 4163 VkDevice device, 4164 const VkDescriptorSetLayoutCreateInfo* pCreateInfo, 4165 VkDescriptorSetLayoutSupport* pSupport); 4166 #endif 4167 4168 4169 #define VK_VERSION_1_2 1 4170 // Vulkan 1.2 version number 4171 #define VK_API_VERSION_1_2 VK_MAKE_API_VERSION(0, 1, 2, 0)// Patch version should always be set to 0 4172 4173 #define VK_MAX_DRIVER_NAME_SIZE 256U 4174 #define VK_MAX_DRIVER_INFO_SIZE 256U 4175 4176 typedef enum VkDriverId { 4177 VK_DRIVER_ID_AMD_PROPRIETARY = 1, 4178 VK_DRIVER_ID_AMD_OPEN_SOURCE = 2, 4179 VK_DRIVER_ID_MESA_RADV = 3, 4180 VK_DRIVER_ID_NVIDIA_PROPRIETARY = 4, 4181 VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS = 5, 4182 VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA = 6, 4183 VK_DRIVER_ID_IMAGINATION_PROPRIETARY = 7, 4184 VK_DRIVER_ID_QUALCOMM_PROPRIETARY = 8, 4185 VK_DRIVER_ID_ARM_PROPRIETARY = 9, 4186 VK_DRIVER_ID_GOOGLE_SWIFTSHADER = 10, 4187 VK_DRIVER_ID_GGP_PROPRIETARY = 11, 4188 VK_DRIVER_ID_BROADCOM_PROPRIETARY = 12, 4189 VK_DRIVER_ID_MESA_LLVMPIPE = 13, 4190 VK_DRIVER_ID_MOLTENVK = 14, 4191 VK_DRIVER_ID_COREAVI_PROPRIETARY = 15, 4192 VK_DRIVER_ID_JUICE_PROPRIETARY = 16, 4193 VK_DRIVER_ID_VERISILICON_PROPRIETARY = 17, 4194 VK_DRIVER_ID_MESA_TURNIP = 18, 4195 VK_DRIVER_ID_MESA_V3DV = 19, 4196 VK_DRIVER_ID_MESA_PANVK = 20, 4197 VK_DRIVER_ID_SAMSUNG_PROPRIETARY = 21, 4198 VK_DRIVER_ID_MAX_ENUM = 0x7FFFFFFF 4199 } VkDriverId; 4200 4201 typedef enum VkShaderFloatControlsIndependence { 4202 VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY = 0, 4203 VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL = 1, 4204 VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE = 2, 4205 VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_MAX_ENUM = 0x7FFFFFFF 4206 } VkShaderFloatControlsIndependence; 4207 4208 typedef enum VkSamplerReductionMode { 4209 VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE = 0, 4210 VK_SAMPLER_REDUCTION_MODE_MIN = 1, 4211 VK_SAMPLER_REDUCTION_MODE_MAX = 2, 4212 VK_SAMPLER_REDUCTION_MODE_MAX_ENUM = 0x7FFFFFFF 4213 } VkSamplerReductionMode; 4214 4215 typedef enum VkSemaphoreType { 4216 VK_SEMAPHORE_TYPE_BINARY = 0, 4217 VK_SEMAPHORE_TYPE_TIMELINE = 1, 4218 VK_SEMAPHORE_TYPE_MAX_ENUM = 0x7FFFFFFF 4219 } VkSemaphoreType; 4220 4221 typedef enum VkResolveModeFlagBits { 4222 VK_RESOLVE_MODE_NONE = 0, 4223 VK_RESOLVE_MODE_SAMPLE_ZERO_BIT = 0x00000001, 4224 VK_RESOLVE_MODE_AVERAGE_BIT = 0x00000002, 4225 VK_RESOLVE_MODE_MIN_BIT = 0x00000004, 4226 VK_RESOLVE_MODE_MAX_BIT = 0x00000008, 4227 VK_RESOLVE_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 4228 } VkResolveModeFlagBits; 4229 typedef VkFlags VkResolveModeFlags; 4230 4231 typedef enum VkDescriptorBindingFlagBits { 4232 VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT = 0x00000001, 4233 VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT = 0x00000002, 4234 VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT = 0x00000004, 4235 VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT = 0x00000008, 4236 VK_DESCRIPTOR_BINDING_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 4237 } VkDescriptorBindingFlagBits; 4238 typedef VkFlags VkDescriptorBindingFlags; 4239 4240 typedef enum VkSemaphoreWaitFlagBits { 4241 VK_SEMAPHORE_WAIT_ANY_BIT = 0x00000001, 4242 VK_SEMAPHORE_WAIT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 4243 } VkSemaphoreWaitFlagBits; 4244 typedef VkFlags VkSemaphoreWaitFlags; 4245 typedef struct VkPhysicalDeviceVulkan11Features { 4246 VkStructureType sType; 4247 void* pNext; 4248 VkBool32 storageBuffer16BitAccess; 4249 VkBool32 uniformAndStorageBuffer16BitAccess; 4250 VkBool32 storagePushConstant16; 4251 VkBool32 storageInputOutput16; 4252 VkBool32 multiview; 4253 VkBool32 multiviewGeometryShader; 4254 VkBool32 multiviewTessellationShader; 4255 VkBool32 variablePointersStorageBuffer; 4256 VkBool32 variablePointers; 4257 VkBool32 protectedMemory; 4258 VkBool32 samplerYcbcrConversion; 4259 VkBool32 shaderDrawParameters; 4260 } VkPhysicalDeviceVulkan11Features; 4261 4262 typedef struct VkPhysicalDeviceVulkan11Properties { 4263 VkStructureType sType; 4264 void* pNext; 4265 uint8_t deviceUUID[VK_UUID_SIZE]; 4266 uint8_t driverUUID[VK_UUID_SIZE]; 4267 uint8_t deviceLUID[VK_LUID_SIZE]; 4268 uint32_t deviceNodeMask; 4269 VkBool32 deviceLUIDValid; 4270 uint32_t subgroupSize; 4271 VkShaderStageFlags subgroupSupportedStages; 4272 VkSubgroupFeatureFlags subgroupSupportedOperations; 4273 VkBool32 subgroupQuadOperationsInAllStages; 4274 VkPointClippingBehavior pointClippingBehavior; 4275 uint32_t maxMultiviewViewCount; 4276 uint32_t maxMultiviewInstanceIndex; 4277 VkBool32 protectedNoFault; 4278 uint32_t maxPerSetDescriptors; 4279 VkDeviceSize maxMemoryAllocationSize; 4280 } VkPhysicalDeviceVulkan11Properties; 4281 4282 typedef struct VkPhysicalDeviceVulkan12Features { 4283 VkStructureType sType; 4284 void* pNext; 4285 VkBool32 samplerMirrorClampToEdge; 4286 VkBool32 drawIndirectCount; 4287 VkBool32 storageBuffer8BitAccess; 4288 VkBool32 uniformAndStorageBuffer8BitAccess; 4289 VkBool32 storagePushConstant8; 4290 VkBool32 shaderBufferInt64Atomics; 4291 VkBool32 shaderSharedInt64Atomics; 4292 VkBool32 shaderFloat16; 4293 VkBool32 shaderInt8; 4294 VkBool32 descriptorIndexing; 4295 VkBool32 shaderInputAttachmentArrayDynamicIndexing; 4296 VkBool32 shaderUniformTexelBufferArrayDynamicIndexing; 4297 VkBool32 shaderStorageTexelBufferArrayDynamicIndexing; 4298 VkBool32 shaderUniformBufferArrayNonUniformIndexing; 4299 VkBool32 shaderSampledImageArrayNonUniformIndexing; 4300 VkBool32 shaderStorageBufferArrayNonUniformIndexing; 4301 VkBool32 shaderStorageImageArrayNonUniformIndexing; 4302 VkBool32 shaderInputAttachmentArrayNonUniformIndexing; 4303 VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing; 4304 VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing; 4305 VkBool32 descriptorBindingUniformBufferUpdateAfterBind; 4306 VkBool32 descriptorBindingSampledImageUpdateAfterBind; 4307 VkBool32 descriptorBindingStorageImageUpdateAfterBind; 4308 VkBool32 descriptorBindingStorageBufferUpdateAfterBind; 4309 VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind; 4310 VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind; 4311 VkBool32 descriptorBindingUpdateUnusedWhilePending; 4312 VkBool32 descriptorBindingPartiallyBound; 4313 VkBool32 descriptorBindingVariableDescriptorCount; 4314 VkBool32 runtimeDescriptorArray; 4315 VkBool32 samplerFilterMinmax; 4316 VkBool32 scalarBlockLayout; 4317 VkBool32 imagelessFramebuffer; 4318 VkBool32 uniformBufferStandardLayout; 4319 VkBool32 shaderSubgroupExtendedTypes; 4320 VkBool32 separateDepthStencilLayouts; 4321 VkBool32 hostQueryReset; 4322 VkBool32 timelineSemaphore; 4323 VkBool32 bufferDeviceAddress; 4324 VkBool32 bufferDeviceAddressCaptureReplay; 4325 VkBool32 bufferDeviceAddressMultiDevice; 4326 VkBool32 vulkanMemoryModel; 4327 VkBool32 vulkanMemoryModelDeviceScope; 4328 VkBool32 vulkanMemoryModelAvailabilityVisibilityChains; 4329 VkBool32 shaderOutputViewportIndex; 4330 VkBool32 shaderOutputLayer; 4331 VkBool32 subgroupBroadcastDynamicId; 4332 } VkPhysicalDeviceVulkan12Features; 4333 4334 typedef struct VkConformanceVersion { 4335 uint8_t major; 4336 uint8_t minor; 4337 uint8_t subminor; 4338 uint8_t patch; 4339 } VkConformanceVersion; 4340 4341 typedef struct VkPhysicalDeviceVulkan12Properties { 4342 VkStructureType sType; 4343 void* pNext; 4344 VkDriverId driverID; 4345 char driverName[VK_MAX_DRIVER_NAME_SIZE]; 4346 char driverInfo[VK_MAX_DRIVER_INFO_SIZE]; 4347 VkConformanceVersion conformanceVersion; 4348 VkShaderFloatControlsIndependence denormBehaviorIndependence; 4349 VkShaderFloatControlsIndependence roundingModeIndependence; 4350 VkBool32 shaderSignedZeroInfNanPreserveFloat16; 4351 VkBool32 shaderSignedZeroInfNanPreserveFloat32; 4352 VkBool32 shaderSignedZeroInfNanPreserveFloat64; 4353 VkBool32 shaderDenormPreserveFloat16; 4354 VkBool32 shaderDenormPreserveFloat32; 4355 VkBool32 shaderDenormPreserveFloat64; 4356 VkBool32 shaderDenormFlushToZeroFloat16; 4357 VkBool32 shaderDenormFlushToZeroFloat32; 4358 VkBool32 shaderDenormFlushToZeroFloat64; 4359 VkBool32 shaderRoundingModeRTEFloat16; 4360 VkBool32 shaderRoundingModeRTEFloat32; 4361 VkBool32 shaderRoundingModeRTEFloat64; 4362 VkBool32 shaderRoundingModeRTZFloat16; 4363 VkBool32 shaderRoundingModeRTZFloat32; 4364 VkBool32 shaderRoundingModeRTZFloat64; 4365 uint32_t maxUpdateAfterBindDescriptorsInAllPools; 4366 VkBool32 shaderUniformBufferArrayNonUniformIndexingNative; 4367 VkBool32 shaderSampledImageArrayNonUniformIndexingNative; 4368 VkBool32 shaderStorageBufferArrayNonUniformIndexingNative; 4369 VkBool32 shaderStorageImageArrayNonUniformIndexingNative; 4370 VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative; 4371 VkBool32 robustBufferAccessUpdateAfterBind; 4372 VkBool32 quadDivergentImplicitLod; 4373 uint32_t maxPerStageDescriptorUpdateAfterBindSamplers; 4374 uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers; 4375 uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers; 4376 uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages; 4377 uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages; 4378 uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments; 4379 uint32_t maxPerStageUpdateAfterBindResources; 4380 uint32_t maxDescriptorSetUpdateAfterBindSamplers; 4381 uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers; 4382 uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic; 4383 uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers; 4384 uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic; 4385 uint32_t maxDescriptorSetUpdateAfterBindSampledImages; 4386 uint32_t maxDescriptorSetUpdateAfterBindStorageImages; 4387 uint32_t maxDescriptorSetUpdateAfterBindInputAttachments; 4388 VkResolveModeFlags supportedDepthResolveModes; 4389 VkResolveModeFlags supportedStencilResolveModes; 4390 VkBool32 independentResolveNone; 4391 VkBool32 independentResolve; 4392 VkBool32 filterMinmaxSingleComponentFormats; 4393 VkBool32 filterMinmaxImageComponentMapping; 4394 uint64_t maxTimelineSemaphoreValueDifference; 4395 VkSampleCountFlags framebufferIntegerColorSampleCounts; 4396 } VkPhysicalDeviceVulkan12Properties; 4397 4398 typedef struct VkImageFormatListCreateInfo { 4399 VkStructureType sType; 4400 const void* pNext; 4401 uint32_t viewFormatCount; 4402 const VkFormat* pViewFormats; 4403 } VkImageFormatListCreateInfo; 4404 4405 typedef struct VkAttachmentDescription2 { 4406 VkStructureType sType; 4407 const void* pNext; 4408 VkAttachmentDescriptionFlags flags; 4409 VkFormat format; 4410 VkSampleCountFlagBits samples; 4411 VkAttachmentLoadOp loadOp; 4412 VkAttachmentStoreOp storeOp; 4413 VkAttachmentLoadOp stencilLoadOp; 4414 VkAttachmentStoreOp stencilStoreOp; 4415 VkImageLayout initialLayout; 4416 VkImageLayout finalLayout; 4417 } VkAttachmentDescription2; 4418 4419 typedef struct VkAttachmentReference2 { 4420 VkStructureType sType; 4421 const void* pNext; 4422 uint32_t attachment; 4423 VkImageLayout layout; 4424 VkImageAspectFlags aspectMask; 4425 } VkAttachmentReference2; 4426 4427 typedef struct VkSubpassDescription2 { 4428 VkStructureType sType; 4429 const void* pNext; 4430 VkSubpassDescriptionFlags flags; 4431 VkPipelineBindPoint pipelineBindPoint; 4432 uint32_t viewMask; 4433 uint32_t inputAttachmentCount; 4434 const VkAttachmentReference2* pInputAttachments; 4435 uint32_t colorAttachmentCount; 4436 const VkAttachmentReference2* pColorAttachments; 4437 const VkAttachmentReference2* pResolveAttachments; 4438 const VkAttachmentReference2* pDepthStencilAttachment; 4439 uint32_t preserveAttachmentCount; 4440 const uint32_t* pPreserveAttachments; 4441 } VkSubpassDescription2; 4442 4443 typedef struct VkSubpassDependency2 { 4444 VkStructureType sType; 4445 const void* pNext; 4446 uint32_t srcSubpass; 4447 uint32_t dstSubpass; 4448 VkPipelineStageFlags srcStageMask; 4449 VkPipelineStageFlags dstStageMask; 4450 VkAccessFlags srcAccessMask; 4451 VkAccessFlags dstAccessMask; 4452 VkDependencyFlags dependencyFlags; 4453 int32_t viewOffset; 4454 } VkSubpassDependency2; 4455 4456 typedef struct VkRenderPassCreateInfo2 { 4457 VkStructureType sType; 4458 const void* pNext; 4459 VkRenderPassCreateFlags flags; 4460 uint32_t attachmentCount; 4461 const VkAttachmentDescription2* pAttachments; 4462 uint32_t subpassCount; 4463 const VkSubpassDescription2* pSubpasses; 4464 uint32_t dependencyCount; 4465 const VkSubpassDependency2* pDependencies; 4466 uint32_t correlatedViewMaskCount; 4467 const uint32_t* pCorrelatedViewMasks; 4468 } VkRenderPassCreateInfo2; 4469 4470 typedef struct VkSubpassBeginInfo { 4471 VkStructureType sType; 4472 const void* pNext; 4473 VkSubpassContents contents; 4474 } VkSubpassBeginInfo; 4475 4476 typedef struct VkSubpassEndInfo { 4477 VkStructureType sType; 4478 const void* pNext; 4479 } VkSubpassEndInfo; 4480 4481 typedef struct VkPhysicalDevice8BitStorageFeatures { 4482 VkStructureType sType; 4483 void* pNext; 4484 VkBool32 storageBuffer8BitAccess; 4485 VkBool32 uniformAndStorageBuffer8BitAccess; 4486 VkBool32 storagePushConstant8; 4487 } VkPhysicalDevice8BitStorageFeatures; 4488 4489 typedef struct VkPhysicalDeviceDriverProperties { 4490 VkStructureType sType; 4491 void* pNext; 4492 VkDriverId driverID; 4493 char driverName[VK_MAX_DRIVER_NAME_SIZE]; 4494 char driverInfo[VK_MAX_DRIVER_INFO_SIZE]; 4495 VkConformanceVersion conformanceVersion; 4496 } VkPhysicalDeviceDriverProperties; 4497 4498 typedef struct VkPhysicalDeviceShaderAtomicInt64Features { 4499 VkStructureType sType; 4500 void* pNext; 4501 VkBool32 shaderBufferInt64Atomics; 4502 VkBool32 shaderSharedInt64Atomics; 4503 } VkPhysicalDeviceShaderAtomicInt64Features; 4504 4505 typedef struct VkPhysicalDeviceShaderFloat16Int8Features { 4506 VkStructureType sType; 4507 void* pNext; 4508 VkBool32 shaderFloat16; 4509 VkBool32 shaderInt8; 4510 } VkPhysicalDeviceShaderFloat16Int8Features; 4511 4512 typedef struct VkPhysicalDeviceFloatControlsProperties { 4513 VkStructureType sType; 4514 void* pNext; 4515 VkShaderFloatControlsIndependence denormBehaviorIndependence; 4516 VkShaderFloatControlsIndependence roundingModeIndependence; 4517 VkBool32 shaderSignedZeroInfNanPreserveFloat16; 4518 VkBool32 shaderSignedZeroInfNanPreserveFloat32; 4519 VkBool32 shaderSignedZeroInfNanPreserveFloat64; 4520 VkBool32 shaderDenormPreserveFloat16; 4521 VkBool32 shaderDenormPreserveFloat32; 4522 VkBool32 shaderDenormPreserveFloat64; 4523 VkBool32 shaderDenormFlushToZeroFloat16; 4524 VkBool32 shaderDenormFlushToZeroFloat32; 4525 VkBool32 shaderDenormFlushToZeroFloat64; 4526 VkBool32 shaderRoundingModeRTEFloat16; 4527 VkBool32 shaderRoundingModeRTEFloat32; 4528 VkBool32 shaderRoundingModeRTEFloat64; 4529 VkBool32 shaderRoundingModeRTZFloat16; 4530 VkBool32 shaderRoundingModeRTZFloat32; 4531 VkBool32 shaderRoundingModeRTZFloat64; 4532 } VkPhysicalDeviceFloatControlsProperties; 4533 4534 typedef struct VkDescriptorSetLayoutBindingFlagsCreateInfo { 4535 VkStructureType sType; 4536 const void* pNext; 4537 uint32_t bindingCount; 4538 const VkDescriptorBindingFlags* pBindingFlags; 4539 } VkDescriptorSetLayoutBindingFlagsCreateInfo; 4540 4541 typedef struct VkPhysicalDeviceDescriptorIndexingFeatures { 4542 VkStructureType sType; 4543 void* pNext; 4544 VkBool32 shaderInputAttachmentArrayDynamicIndexing; 4545 VkBool32 shaderUniformTexelBufferArrayDynamicIndexing; 4546 VkBool32 shaderStorageTexelBufferArrayDynamicIndexing; 4547 VkBool32 shaderUniformBufferArrayNonUniformIndexing; 4548 VkBool32 shaderSampledImageArrayNonUniformIndexing; 4549 VkBool32 shaderStorageBufferArrayNonUniformIndexing; 4550 VkBool32 shaderStorageImageArrayNonUniformIndexing; 4551 VkBool32 shaderInputAttachmentArrayNonUniformIndexing; 4552 VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing; 4553 VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing; 4554 VkBool32 descriptorBindingUniformBufferUpdateAfterBind; 4555 VkBool32 descriptorBindingSampledImageUpdateAfterBind; 4556 VkBool32 descriptorBindingStorageImageUpdateAfterBind; 4557 VkBool32 descriptorBindingStorageBufferUpdateAfterBind; 4558 VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind; 4559 VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind; 4560 VkBool32 descriptorBindingUpdateUnusedWhilePending; 4561 VkBool32 descriptorBindingPartiallyBound; 4562 VkBool32 descriptorBindingVariableDescriptorCount; 4563 VkBool32 runtimeDescriptorArray; 4564 } VkPhysicalDeviceDescriptorIndexingFeatures; 4565 4566 typedef struct VkPhysicalDeviceDescriptorIndexingProperties { 4567 VkStructureType sType; 4568 void* pNext; 4569 uint32_t maxUpdateAfterBindDescriptorsInAllPools; 4570 VkBool32 shaderUniformBufferArrayNonUniformIndexingNative; 4571 VkBool32 shaderSampledImageArrayNonUniformIndexingNative; 4572 VkBool32 shaderStorageBufferArrayNonUniformIndexingNative; 4573 VkBool32 shaderStorageImageArrayNonUniformIndexingNative; 4574 VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative; 4575 VkBool32 robustBufferAccessUpdateAfterBind; 4576 VkBool32 quadDivergentImplicitLod; 4577 uint32_t maxPerStageDescriptorUpdateAfterBindSamplers; 4578 uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers; 4579 uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers; 4580 uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages; 4581 uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages; 4582 uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments; 4583 uint32_t maxPerStageUpdateAfterBindResources; 4584 uint32_t maxDescriptorSetUpdateAfterBindSamplers; 4585 uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers; 4586 uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic; 4587 uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers; 4588 uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic; 4589 uint32_t maxDescriptorSetUpdateAfterBindSampledImages; 4590 uint32_t maxDescriptorSetUpdateAfterBindStorageImages; 4591 uint32_t maxDescriptorSetUpdateAfterBindInputAttachments; 4592 } VkPhysicalDeviceDescriptorIndexingProperties; 4593 4594 typedef struct VkDescriptorSetVariableDescriptorCountAllocateInfo { 4595 VkStructureType sType; 4596 const void* pNext; 4597 uint32_t descriptorSetCount; 4598 const uint32_t* pDescriptorCounts; 4599 } VkDescriptorSetVariableDescriptorCountAllocateInfo; 4600 4601 typedef struct VkDescriptorSetVariableDescriptorCountLayoutSupport { 4602 VkStructureType sType; 4603 void* pNext; 4604 uint32_t maxVariableDescriptorCount; 4605 } VkDescriptorSetVariableDescriptorCountLayoutSupport; 4606 4607 typedef struct VkSubpassDescriptionDepthStencilResolve { 4608 VkStructureType sType; 4609 const void* pNext; 4610 VkResolveModeFlagBits depthResolveMode; 4611 VkResolveModeFlagBits stencilResolveMode; 4612 const VkAttachmentReference2* pDepthStencilResolveAttachment; 4613 } VkSubpassDescriptionDepthStencilResolve; 4614 4615 typedef struct VkPhysicalDeviceDepthStencilResolveProperties { 4616 VkStructureType sType; 4617 void* pNext; 4618 VkResolveModeFlags supportedDepthResolveModes; 4619 VkResolveModeFlags supportedStencilResolveModes; 4620 VkBool32 independentResolveNone; 4621 VkBool32 independentResolve; 4622 } VkPhysicalDeviceDepthStencilResolveProperties; 4623 4624 typedef struct VkPhysicalDeviceScalarBlockLayoutFeatures { 4625 VkStructureType sType; 4626 void* pNext; 4627 VkBool32 scalarBlockLayout; 4628 } VkPhysicalDeviceScalarBlockLayoutFeatures; 4629 4630 typedef struct VkImageStencilUsageCreateInfo { 4631 VkStructureType sType; 4632 const void* pNext; 4633 VkImageUsageFlags stencilUsage; 4634 } VkImageStencilUsageCreateInfo; 4635 4636 typedef struct VkSamplerReductionModeCreateInfo { 4637 VkStructureType sType; 4638 const void* pNext; 4639 VkSamplerReductionMode reductionMode; 4640 } VkSamplerReductionModeCreateInfo; 4641 4642 typedef struct VkPhysicalDeviceSamplerFilterMinmaxProperties { 4643 VkStructureType sType; 4644 void* pNext; 4645 VkBool32 filterMinmaxSingleComponentFormats; 4646 VkBool32 filterMinmaxImageComponentMapping; 4647 } VkPhysicalDeviceSamplerFilterMinmaxProperties; 4648 4649 typedef struct VkPhysicalDeviceVulkanMemoryModelFeatures { 4650 VkStructureType sType; 4651 void* pNext; 4652 VkBool32 vulkanMemoryModel; 4653 VkBool32 vulkanMemoryModelDeviceScope; 4654 VkBool32 vulkanMemoryModelAvailabilityVisibilityChains; 4655 } VkPhysicalDeviceVulkanMemoryModelFeatures; 4656 4657 typedef struct VkPhysicalDeviceImagelessFramebufferFeatures { 4658 VkStructureType sType; 4659 void* pNext; 4660 VkBool32 imagelessFramebuffer; 4661 } VkPhysicalDeviceImagelessFramebufferFeatures; 4662 4663 typedef struct VkFramebufferAttachmentImageInfo { 4664 VkStructureType sType; 4665 const void* pNext; 4666 VkImageCreateFlags flags; 4667 VkImageUsageFlags usage; 4668 uint32_t width; 4669 uint32_t height; 4670 uint32_t layerCount; 4671 uint32_t viewFormatCount; 4672 const VkFormat* pViewFormats; 4673 } VkFramebufferAttachmentImageInfo; 4674 4675 typedef struct VkFramebufferAttachmentsCreateInfo { 4676 VkStructureType sType; 4677 const void* pNext; 4678 uint32_t attachmentImageInfoCount; 4679 const VkFramebufferAttachmentImageInfo* pAttachmentImageInfos; 4680 } VkFramebufferAttachmentsCreateInfo; 4681 4682 typedef struct VkRenderPassAttachmentBeginInfo { 4683 VkStructureType sType; 4684 const void* pNext; 4685 uint32_t attachmentCount; 4686 const VkImageView* pAttachments; 4687 } VkRenderPassAttachmentBeginInfo; 4688 4689 typedef struct VkPhysicalDeviceUniformBufferStandardLayoutFeatures { 4690 VkStructureType sType; 4691 void* pNext; 4692 VkBool32 uniformBufferStandardLayout; 4693 } VkPhysicalDeviceUniformBufferStandardLayoutFeatures; 4694 4695 typedef struct VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures { 4696 VkStructureType sType; 4697 void* pNext; 4698 VkBool32 shaderSubgroupExtendedTypes; 4699 } VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures; 4700 4701 typedef struct VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures { 4702 VkStructureType sType; 4703 void* pNext; 4704 VkBool32 separateDepthStencilLayouts; 4705 } VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures; 4706 4707 typedef struct VkAttachmentReferenceStencilLayout { 4708 VkStructureType sType; 4709 void* pNext; 4710 VkImageLayout stencilLayout; 4711 } VkAttachmentReferenceStencilLayout; 4712 4713 typedef struct VkAttachmentDescriptionStencilLayout { 4714 VkStructureType sType; 4715 void* pNext; 4716 VkImageLayout stencilInitialLayout; 4717 VkImageLayout stencilFinalLayout; 4718 } VkAttachmentDescriptionStencilLayout; 4719 4720 typedef struct VkPhysicalDeviceHostQueryResetFeatures { 4721 VkStructureType sType; 4722 void* pNext; 4723 VkBool32 hostQueryReset; 4724 } VkPhysicalDeviceHostQueryResetFeatures; 4725 4726 typedef struct VkPhysicalDeviceTimelineSemaphoreFeatures { 4727 VkStructureType sType; 4728 void* pNext; 4729 VkBool32 timelineSemaphore; 4730 } VkPhysicalDeviceTimelineSemaphoreFeatures; 4731 4732 typedef struct VkPhysicalDeviceTimelineSemaphoreProperties { 4733 VkStructureType sType; 4734 void* pNext; 4735 uint64_t maxTimelineSemaphoreValueDifference; 4736 } VkPhysicalDeviceTimelineSemaphoreProperties; 4737 4738 typedef struct VkSemaphoreTypeCreateInfo { 4739 VkStructureType sType; 4740 const void* pNext; 4741 VkSemaphoreType semaphoreType; 4742 uint64_t initialValue; 4743 } VkSemaphoreTypeCreateInfo; 4744 4745 typedef struct VkTimelineSemaphoreSubmitInfo { 4746 VkStructureType sType; 4747 const void* pNext; 4748 uint32_t waitSemaphoreValueCount; 4749 const uint64_t* pWaitSemaphoreValues; 4750 uint32_t signalSemaphoreValueCount; 4751 const uint64_t* pSignalSemaphoreValues; 4752 } VkTimelineSemaphoreSubmitInfo; 4753 4754 typedef struct VkSemaphoreWaitInfo { 4755 VkStructureType sType; 4756 const void* pNext; 4757 VkSemaphoreWaitFlags flags; 4758 uint32_t semaphoreCount; 4759 const VkSemaphore* pSemaphores; 4760 const uint64_t* pValues; 4761 } VkSemaphoreWaitInfo; 4762 4763 typedef struct VkSemaphoreSignalInfo { 4764 VkStructureType sType; 4765 const void* pNext; 4766 VkSemaphore semaphore; 4767 uint64_t value; 4768 } VkSemaphoreSignalInfo; 4769 4770 typedef struct VkPhysicalDeviceBufferDeviceAddressFeatures { 4771 VkStructureType sType; 4772 void* pNext; 4773 VkBool32 bufferDeviceAddress; 4774 VkBool32 bufferDeviceAddressCaptureReplay; 4775 VkBool32 bufferDeviceAddressMultiDevice; 4776 } VkPhysicalDeviceBufferDeviceAddressFeatures; 4777 4778 typedef struct VkBufferDeviceAddressInfo { 4779 VkStructureType sType; 4780 const void* pNext; 4781 VkBuffer buffer; 4782 } VkBufferDeviceAddressInfo; 4783 4784 typedef struct VkBufferOpaqueCaptureAddressCreateInfo { 4785 VkStructureType sType; 4786 const void* pNext; 4787 uint64_t opaqueCaptureAddress; 4788 } VkBufferOpaqueCaptureAddressCreateInfo; 4789 4790 typedef struct VkMemoryOpaqueCaptureAddressAllocateInfo { 4791 VkStructureType sType; 4792 const void* pNext; 4793 uint64_t opaqueCaptureAddress; 4794 } VkMemoryOpaqueCaptureAddressAllocateInfo; 4795 4796 typedef struct VkDeviceMemoryOpaqueCaptureAddressInfo { 4797 VkStructureType sType; 4798 const void* pNext; 4799 VkDeviceMemory memory; 4800 } VkDeviceMemoryOpaqueCaptureAddressInfo; 4801 4802 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCount)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); 4803 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCount)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); 4804 typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2)(VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass); 4805 typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo); 4806 typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo); 4807 typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2)(VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo); 4808 typedef void (VKAPI_PTR *PFN_vkResetQueryPool)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount); 4809 typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreCounterValue)(VkDevice device, VkSemaphore semaphore, uint64_t* pValue); 4810 typedef VkResult (VKAPI_PTR *PFN_vkWaitSemaphores)(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout); 4811 typedef VkResult (VKAPI_PTR *PFN_vkSignalSemaphore)(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo); 4812 typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddress)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo); 4813 typedef uint64_t (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureAddress)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo); 4814 typedef uint64_t (VKAPI_PTR *PFN_vkGetDeviceMemoryOpaqueCaptureAddress)(VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo); 4815 4816 #ifndef VK_NO_PROTOTYPES 4817 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCount( 4818 VkCommandBuffer commandBuffer, 4819 VkBuffer buffer, 4820 VkDeviceSize offset, 4821 VkBuffer countBuffer, 4822 VkDeviceSize countBufferOffset, 4823 uint32_t maxDrawCount, 4824 uint32_t stride); 4825 4826 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCount( 4827 VkCommandBuffer commandBuffer, 4828 VkBuffer buffer, 4829 VkDeviceSize offset, 4830 VkBuffer countBuffer, 4831 VkDeviceSize countBufferOffset, 4832 uint32_t maxDrawCount, 4833 uint32_t stride); 4834 4835 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2( 4836 VkDevice device, 4837 const VkRenderPassCreateInfo2* pCreateInfo, 4838 const VkAllocationCallbacks* pAllocator, 4839 VkRenderPass* pRenderPass); 4840 4841 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2( 4842 VkCommandBuffer commandBuffer, 4843 const VkRenderPassBeginInfo* pRenderPassBegin, 4844 const VkSubpassBeginInfo* pSubpassBeginInfo); 4845 4846 VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2( 4847 VkCommandBuffer commandBuffer, 4848 const VkSubpassBeginInfo* pSubpassBeginInfo, 4849 const VkSubpassEndInfo* pSubpassEndInfo); 4850 4851 VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2( 4852 VkCommandBuffer commandBuffer, 4853 const VkSubpassEndInfo* pSubpassEndInfo); 4854 4855 VKAPI_ATTR void VKAPI_CALL vkResetQueryPool( 4856 VkDevice device, 4857 VkQueryPool queryPool, 4858 uint32_t firstQuery, 4859 uint32_t queryCount); 4860 4861 VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreCounterValue( 4862 VkDevice device, 4863 VkSemaphore semaphore, 4864 uint64_t* pValue); 4865 4866 VKAPI_ATTR VkResult VKAPI_CALL vkWaitSemaphores( 4867 VkDevice device, 4868 const VkSemaphoreWaitInfo* pWaitInfo, 4869 uint64_t timeout); 4870 4871 VKAPI_ATTR VkResult VKAPI_CALL vkSignalSemaphore( 4872 VkDevice device, 4873 const VkSemaphoreSignalInfo* pSignalInfo); 4874 4875 VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddress( 4876 VkDevice device, 4877 const VkBufferDeviceAddressInfo* pInfo); 4878 4879 VKAPI_ATTR uint64_t VKAPI_CALL vkGetBufferOpaqueCaptureAddress( 4880 VkDevice device, 4881 const VkBufferDeviceAddressInfo* pInfo); 4882 4883 VKAPI_ATTR uint64_t VKAPI_CALL vkGetDeviceMemoryOpaqueCaptureAddress( 4884 VkDevice device, 4885 const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo); 4886 #endif 4887 4888 4889 #define VKSC_VERSION_1_0 1 4890 // Vulkan SC 1.0 version number 4891 #define VKSC_API_VERSION_1_0 VK_MAKE_API_VERSION(VKSC_API_VARIANT, 1, 0, 0)// Patch version should always be set to 0 4892 4893 4894 typedef enum VkFaultLevel { 4895 VK_FAULT_LEVEL_UNASSIGNED = 0, 4896 VK_FAULT_LEVEL_CRITICAL = 1, 4897 VK_FAULT_LEVEL_RECOVERABLE = 2, 4898 VK_FAULT_LEVEL_WARNING = 3, 4899 VK_FAULT_LEVEL_MAX_ENUM = 0x7FFFFFFF 4900 } VkFaultLevel; 4901 4902 typedef enum VkFaultType { 4903 VK_FAULT_TYPE_INVALID = 0, 4904 VK_FAULT_TYPE_UNASSIGNED = 1, 4905 VK_FAULT_TYPE_IMPLEMENTATION = 2, 4906 VK_FAULT_TYPE_SYSTEM = 3, 4907 VK_FAULT_TYPE_PHYSICAL_DEVICE = 4, 4908 VK_FAULT_TYPE_COMMAND_BUFFER_FULL = 5, 4909 VK_FAULT_TYPE_INVALID_API_USAGE = 6, 4910 VK_FAULT_TYPE_MAX_ENUM = 0x7FFFFFFF 4911 } VkFaultType; 4912 4913 typedef enum VkFaultQueryBehavior { 4914 VK_FAULT_QUERY_BEHAVIOR_GET_AND_CLEAR_ALL_FAULTS = 0, 4915 VK_FAULT_QUERY_BEHAVIOR_MAX_ENUM = 0x7FFFFFFF 4916 } VkFaultQueryBehavior; 4917 4918 typedef enum VkPipelineMatchControl { 4919 VK_PIPELINE_MATCH_CONTROL_APPLICATION_UUID_EXACT_MATCH = 0, 4920 VK_PIPELINE_MATCH_CONTROL_MAX_ENUM = 0x7FFFFFFF 4921 } VkPipelineMatchControl; 4922 4923 typedef enum VkPipelineCacheValidationVersion { 4924 VK_PIPELINE_CACHE_VALIDATION_VERSION_SAFETY_CRITICAL_ONE = 1, 4925 VK_PIPELINE_CACHE_VALIDATION_VERSION_MAX_ENUM = 0x7FFFFFFF 4926 } VkPipelineCacheValidationVersion; 4927 typedef struct VkPhysicalDeviceVulkanSC10Features { 4928 VkStructureType sType; 4929 void* pNext; 4930 VkBool32 shaderAtomicInstructions; 4931 } VkPhysicalDeviceVulkanSC10Features; 4932 4933 typedef struct VkPhysicalDeviceVulkanSC10Properties { 4934 VkStructureType sType; 4935 void* pNext; 4936 VkBool32 deviceNoDynamicHostAllocations; 4937 VkBool32 deviceDestroyFreesMemory; 4938 VkBool32 commandPoolMultipleCommandBuffersRecording; 4939 VkBool32 commandPoolResetCommandBuffer; 4940 VkBool32 commandBufferSimultaneousUse; 4941 VkBool32 secondaryCommandBufferNullOrImagelessFramebuffer; 4942 VkBool32 recycleDescriptorSetMemory; 4943 VkBool32 recyclePipelineMemory; 4944 uint32_t maxRenderPassSubpasses; 4945 uint32_t maxRenderPassDependencies; 4946 uint32_t maxSubpassInputAttachments; 4947 uint32_t maxSubpassPreserveAttachments; 4948 uint32_t maxFramebufferAttachments; 4949 uint32_t maxDescriptorSetLayoutBindings; 4950 uint32_t maxQueryFaultCount; 4951 uint32_t maxCallbackFaultCount; 4952 uint32_t maxCommandPoolCommandBuffers; 4953 VkDeviceSize maxCommandBufferSize; 4954 } VkPhysicalDeviceVulkanSC10Properties; 4955 4956 typedef struct VkPipelinePoolSize { 4957 VkStructureType sType; 4958 const void* pNext; 4959 VkDeviceSize poolEntrySize; 4960 uint32_t poolEntryCount; 4961 } VkPipelinePoolSize; 4962 4963 typedef struct VkDeviceObjectReservationCreateInfo { 4964 VkStructureType sType; 4965 const void* pNext; 4966 uint32_t pipelineCacheCreateInfoCount; 4967 const VkPipelineCacheCreateInfo* pPipelineCacheCreateInfos; 4968 uint32_t pipelinePoolSizeCount; 4969 const VkPipelinePoolSize* pPipelinePoolSizes; 4970 uint32_t semaphoreRequestCount; 4971 uint32_t commandBufferRequestCount; 4972 uint32_t fenceRequestCount; 4973 uint32_t deviceMemoryRequestCount; 4974 uint32_t bufferRequestCount; 4975 uint32_t imageRequestCount; 4976 uint32_t eventRequestCount; 4977 uint32_t queryPoolRequestCount; 4978 uint32_t bufferViewRequestCount; 4979 uint32_t imageViewRequestCount; 4980 uint32_t layeredImageViewRequestCount; 4981 uint32_t pipelineCacheRequestCount; 4982 uint32_t pipelineLayoutRequestCount; 4983 uint32_t renderPassRequestCount; 4984 uint32_t graphicsPipelineRequestCount; 4985 uint32_t computePipelineRequestCount; 4986 uint32_t descriptorSetLayoutRequestCount; 4987 uint32_t samplerRequestCount; 4988 uint32_t descriptorPoolRequestCount; 4989 uint32_t descriptorSetRequestCount; 4990 uint32_t framebufferRequestCount; 4991 uint32_t commandPoolRequestCount; 4992 uint32_t samplerYcbcrConversionRequestCount; 4993 uint32_t surfaceRequestCount; 4994 uint32_t swapchainRequestCount; 4995 uint32_t displayModeRequestCount; 4996 uint32_t subpassDescriptionRequestCount; 4997 uint32_t attachmentDescriptionRequestCount; 4998 uint32_t descriptorSetLayoutBindingRequestCount; 4999 uint32_t descriptorSetLayoutBindingLimit; 5000 uint32_t maxImageViewMipLevels; 5001 uint32_t maxImageViewArrayLayers; 5002 uint32_t maxLayeredImageViewMipLevels; 5003 uint32_t maxOcclusionQueriesPerPool; 5004 uint32_t maxPipelineStatisticsQueriesPerPool; 5005 uint32_t maxTimestampQueriesPerPool; 5006 uint32_t maxImmutableSamplersPerDescriptorSetLayout; 5007 } VkDeviceObjectReservationCreateInfo; 5008 5009 typedef struct VkCommandPoolMemoryReservationCreateInfo { 5010 VkStructureType sType; 5011 const void* pNext; 5012 VkDeviceSize commandPoolReservedSize; 5013 uint32_t commandPoolMaxCommandBuffers; 5014 } VkCommandPoolMemoryReservationCreateInfo; 5015 5016 typedef struct VkCommandPoolMemoryConsumption { 5017 VkStructureType sType; 5018 void* pNext; 5019 VkDeviceSize commandPoolAllocated; 5020 VkDeviceSize commandPoolReservedSize; 5021 VkDeviceSize commandBufferAllocated; 5022 } VkCommandPoolMemoryConsumption; 5023 5024 typedef struct VkFaultData { 5025 VkStructureType sType; 5026 void* pNext; 5027 VkFaultLevel faultLevel; 5028 VkFaultType faultType; 5029 } VkFaultData; 5030 5031 typedef void (VKAPI_PTR *PFN_vkFaultCallbackFunction)( 5032 VkBool32 unrecordedFaults, 5033 uint32_t faultCount, 5034 const VkFaultData* pFaults); 5035 5036 typedef struct VkFaultCallbackInfo { 5037 VkStructureType sType; 5038 void* pNext; 5039 uint32_t faultCount; 5040 VkFaultData* pFaults; 5041 PFN_vkFaultCallbackFunction pfnFaultCallback; 5042 } VkFaultCallbackInfo; 5043 5044 typedef struct VkPipelineOfflineCreateInfo { 5045 VkStructureType sType; 5046 const void* pNext; 5047 uint8_t pipelineIdentifier[VK_UUID_SIZE]; 5048 VkPipelineMatchControl matchControl; 5049 VkDeviceSize poolEntrySize; 5050 } VkPipelineOfflineCreateInfo; 5051 5052 typedef struct VkPipelineCacheStageValidationIndexEntry { 5053 uint64_t codeSize; 5054 uint64_t codeOffset; 5055 } VkPipelineCacheStageValidationIndexEntry; 5056 5057 typedef struct VkPipelineCacheSafetyCriticalIndexEntry { 5058 uint8_t pipelineIdentifier[VK_UUID_SIZE]; 5059 uint64_t pipelineMemorySize; 5060 uint64_t jsonSize; 5061 uint64_t jsonOffset; 5062 uint32_t stageIndexCount; 5063 uint32_t stageIndexStride; 5064 uint64_t stageIndexOffset; 5065 } VkPipelineCacheSafetyCriticalIndexEntry; 5066 5067 typedef struct VkPipelineCacheHeaderVersionSafetyCriticalOne { 5068 VkPipelineCacheHeaderVersionOne headerVersionOne; 5069 VkPipelineCacheValidationVersion validationVersion; 5070 uint32_t implementationData; 5071 uint32_t pipelineIndexCount; 5072 uint32_t pipelineIndexStride; 5073 uint64_t pipelineIndexOffset; 5074 } VkPipelineCacheHeaderVersionSafetyCriticalOne; 5075 5076 typedef void (VKAPI_PTR *PFN_vkGetCommandPoolMemoryConsumption)(VkDevice device, VkCommandPool commandPool, VkCommandBuffer commandBuffer, VkCommandPoolMemoryConsumption* pConsumption); 5077 typedef VkResult (VKAPI_PTR *PFN_vkGetFaultData)(VkDevice device, VkFaultQueryBehavior faultQueryBehavior, VkBool32* pUnrecordedFaults, uint32_t* pFaultCount, VkFaultData* pFaults); 5078 5079 #ifndef VK_NO_PROTOTYPES 5080 VKAPI_ATTR void VKAPI_CALL vkGetCommandPoolMemoryConsumption( 5081 VkDevice device, 5082 VkCommandPool commandPool, 5083 VkCommandBuffer commandBuffer, 5084 VkCommandPoolMemoryConsumption* pConsumption); 5085 5086 VKAPI_ATTR VkResult VKAPI_CALL vkGetFaultData( 5087 VkDevice device, 5088 VkFaultQueryBehavior faultQueryBehavior, 5089 VkBool32* pUnrecordedFaults, 5090 uint32_t* pFaultCount, 5091 VkFaultData* pFaults); 5092 #endif 5093 5094 5095 #define VK_KHR_surface 1 5096 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR) 5097 #define VK_KHR_SURFACE_SPEC_VERSION 25 5098 #define VK_KHR_SURFACE_EXTENSION_NAME "VK_KHR_surface" 5099 5100 typedef enum VkPresentModeKHR { 5101 VK_PRESENT_MODE_IMMEDIATE_KHR = 0, 5102 VK_PRESENT_MODE_MAILBOX_KHR = 1, 5103 VK_PRESENT_MODE_FIFO_KHR = 2, 5104 VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3, 5105 VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000, 5106 VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001, 5107 VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF 5108 } VkPresentModeKHR; 5109 5110 typedef enum VkColorSpaceKHR { 5111 VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0, 5112 VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001, 5113 VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002, 5114 VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT = 1000104003, 5115 VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004, 5116 VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005, 5117 VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006, 5118 VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007, 5119 VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008, 5120 VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009, 5121 VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010, 5122 VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011, 5123 VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012, 5124 VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013, 5125 VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014, 5126 VK_COLOR_SPACE_MAX_ENUM_KHR = 0x7FFFFFFF 5127 } VkColorSpaceKHR; 5128 5129 typedef enum VkSurfaceTransformFlagBitsKHR { 5130 VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001, 5131 VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002, 5132 VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004, 5133 VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008, 5134 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010, 5135 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020, 5136 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040, 5137 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080, 5138 VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100, 5139 VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF 5140 } VkSurfaceTransformFlagBitsKHR; 5141 5142 typedef enum VkCompositeAlphaFlagBitsKHR { 5143 VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001, 5144 VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002, 5145 VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004, 5146 VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008, 5147 VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF 5148 } VkCompositeAlphaFlagBitsKHR; 5149 typedef VkFlags VkCompositeAlphaFlagsKHR; 5150 typedef VkFlags VkSurfaceTransformFlagsKHR; 5151 typedef struct VkSurfaceCapabilitiesKHR { 5152 uint32_t minImageCount; 5153 uint32_t maxImageCount; 5154 VkExtent2D currentExtent; 5155 VkExtent2D minImageExtent; 5156 VkExtent2D maxImageExtent; 5157 uint32_t maxImageArrayLayers; 5158 VkSurfaceTransformFlagsKHR supportedTransforms; 5159 VkSurfaceTransformFlagBitsKHR currentTransform; 5160 VkCompositeAlphaFlagsKHR supportedCompositeAlpha; 5161 VkImageUsageFlags supportedUsageFlags; 5162 } VkSurfaceCapabilitiesKHR; 5163 5164 typedef struct VkSurfaceFormatKHR { 5165 VkFormat format; 5166 VkColorSpaceKHR colorSpace; 5167 } VkSurfaceFormatKHR; 5168 5169 typedef void (VKAPI_PTR *PFN_vkDestroySurfaceKHR)(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator); 5170 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported); 5171 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities); 5172 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats); 5173 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes); 5174 5175 #ifndef VK_NO_PROTOTYPES 5176 VKAPI_ATTR void VKAPI_CALL vkDestroySurfaceKHR( 5177 VkInstance instance, 5178 VkSurfaceKHR surface, 5179 const VkAllocationCallbacks* pAllocator); 5180 5181 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceSupportKHR( 5182 VkPhysicalDevice physicalDevice, 5183 uint32_t queueFamilyIndex, 5184 VkSurfaceKHR surface, 5185 VkBool32* pSupported); 5186 5187 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilitiesKHR( 5188 VkPhysicalDevice physicalDevice, 5189 VkSurfaceKHR surface, 5190 VkSurfaceCapabilitiesKHR* pSurfaceCapabilities); 5191 5192 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormatsKHR( 5193 VkPhysicalDevice physicalDevice, 5194 VkSurfaceKHR surface, 5195 uint32_t* pSurfaceFormatCount, 5196 VkSurfaceFormatKHR* pSurfaceFormats); 5197 5198 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModesKHR( 5199 VkPhysicalDevice physicalDevice, 5200 VkSurfaceKHR surface, 5201 uint32_t* pPresentModeCount, 5202 VkPresentModeKHR* pPresentModes); 5203 #endif 5204 5205 5206 #define VK_KHR_swapchain 1 5207 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR) 5208 #define VK_KHR_SWAPCHAIN_SPEC_VERSION 70 5209 #define VK_KHR_SWAPCHAIN_EXTENSION_NAME "VK_KHR_swapchain" 5210 5211 typedef enum VkSwapchainCreateFlagBitsKHR { 5212 VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001, 5213 VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002, 5214 VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 0x00000004, 5215 VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF 5216 } VkSwapchainCreateFlagBitsKHR; 5217 typedef VkFlags VkSwapchainCreateFlagsKHR; 5218 5219 typedef enum VkDeviceGroupPresentModeFlagBitsKHR { 5220 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0x00000001, 5221 VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0x00000002, 5222 VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0x00000004, 5223 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0x00000008, 5224 VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF 5225 } VkDeviceGroupPresentModeFlagBitsKHR; 5226 typedef VkFlags VkDeviceGroupPresentModeFlagsKHR; 5227 typedef struct VkSwapchainCreateInfoKHR { 5228 VkStructureType sType; 5229 const void* pNext; 5230 VkSwapchainCreateFlagsKHR flags; 5231 VkSurfaceKHR surface; 5232 uint32_t minImageCount; 5233 VkFormat imageFormat; 5234 VkColorSpaceKHR imageColorSpace; 5235 VkExtent2D imageExtent; 5236 uint32_t imageArrayLayers; 5237 VkImageUsageFlags imageUsage; 5238 VkSharingMode imageSharingMode; 5239 uint32_t queueFamilyIndexCount; 5240 const uint32_t* pQueueFamilyIndices; 5241 VkSurfaceTransformFlagBitsKHR preTransform; 5242 VkCompositeAlphaFlagBitsKHR compositeAlpha; 5243 VkPresentModeKHR presentMode; 5244 VkBool32 clipped; 5245 VkSwapchainKHR oldSwapchain; 5246 } VkSwapchainCreateInfoKHR; 5247 5248 typedef struct VkPresentInfoKHR { 5249 VkStructureType sType; 5250 const void* pNext; 5251 uint32_t waitSemaphoreCount; 5252 const VkSemaphore* pWaitSemaphores; 5253 uint32_t swapchainCount; 5254 const VkSwapchainKHR* pSwapchains; 5255 const uint32_t* pImageIndices; 5256 VkResult* pResults; 5257 } VkPresentInfoKHR; 5258 5259 typedef struct VkImageSwapchainCreateInfoKHR { 5260 VkStructureType sType; 5261 const void* pNext; 5262 VkSwapchainKHR swapchain; 5263 } VkImageSwapchainCreateInfoKHR; 5264 5265 typedef struct VkBindImageMemorySwapchainInfoKHR { 5266 VkStructureType sType; 5267 const void* pNext; 5268 VkSwapchainKHR swapchain; 5269 uint32_t imageIndex; 5270 } VkBindImageMemorySwapchainInfoKHR; 5271 5272 typedef struct VkAcquireNextImageInfoKHR { 5273 VkStructureType sType; 5274 const void* pNext; 5275 VkSwapchainKHR swapchain; 5276 uint64_t timeout; 5277 VkSemaphore semaphore; 5278 VkFence fence; 5279 uint32_t deviceMask; 5280 } VkAcquireNextImageInfoKHR; 5281 5282 typedef struct VkDeviceGroupPresentCapabilitiesKHR { 5283 VkStructureType sType; 5284 void* pNext; 5285 uint32_t presentMask[VK_MAX_DEVICE_GROUP_SIZE]; 5286 VkDeviceGroupPresentModeFlagsKHR modes; 5287 } VkDeviceGroupPresentCapabilitiesKHR; 5288 5289 typedef struct VkDeviceGroupPresentInfoKHR { 5290 VkStructureType sType; 5291 const void* pNext; 5292 uint32_t swapchainCount; 5293 const uint32_t* pDeviceMasks; 5294 VkDeviceGroupPresentModeFlagBitsKHR mode; 5295 } VkDeviceGroupPresentInfoKHR; 5296 5297 typedef struct VkDeviceGroupSwapchainCreateInfoKHR { 5298 VkStructureType sType; 5299 const void* pNext; 5300 VkDeviceGroupPresentModeFlagsKHR modes; 5301 } VkDeviceGroupSwapchainCreateInfoKHR; 5302 5303 typedef VkResult (VKAPI_PTR *PFN_vkCreateSwapchainKHR)(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain); 5304 typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainImagesKHR)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages); 5305 typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImageKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex); 5306 typedef VkResult (VKAPI_PTR *PFN_vkQueuePresentKHR)(VkQueue queue, const VkPresentInfoKHR* pPresentInfo); 5307 typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupPresentCapabilitiesKHR)(VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities); 5308 typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupSurfacePresentModesKHR)(VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes); 5309 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDevicePresentRectanglesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects); 5310 typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImage2KHR)(VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex); 5311 5312 #ifndef VK_NO_PROTOTYPES 5313 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSwapchainKHR( 5314 VkDevice device, 5315 const VkSwapchainCreateInfoKHR* pCreateInfo, 5316 const VkAllocationCallbacks* pAllocator, 5317 VkSwapchainKHR* pSwapchain); 5318 5319 VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainImagesKHR( 5320 VkDevice device, 5321 VkSwapchainKHR swapchain, 5322 uint32_t* pSwapchainImageCount, 5323 VkImage* pSwapchainImages); 5324 5325 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImageKHR( 5326 VkDevice device, 5327 VkSwapchainKHR swapchain, 5328 uint64_t timeout, 5329 VkSemaphore semaphore, 5330 VkFence fence, 5331 uint32_t* pImageIndex); 5332 5333 VKAPI_ATTR VkResult VKAPI_CALL vkQueuePresentKHR( 5334 VkQueue queue, 5335 const VkPresentInfoKHR* pPresentInfo); 5336 5337 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupPresentCapabilitiesKHR( 5338 VkDevice device, 5339 VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities); 5340 5341 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModesKHR( 5342 VkDevice device, 5343 VkSurfaceKHR surface, 5344 VkDeviceGroupPresentModeFlagsKHR* pModes); 5345 5346 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDevicePresentRectanglesKHR( 5347 VkPhysicalDevice physicalDevice, 5348 VkSurfaceKHR surface, 5349 uint32_t* pRectCount, 5350 VkRect2D* pRects); 5351 5352 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImage2KHR( 5353 VkDevice device, 5354 const VkAcquireNextImageInfoKHR* pAcquireInfo, 5355 uint32_t* pImageIndex); 5356 #endif 5357 5358 5359 #define VK_KHR_display 1 5360 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR) 5361 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR) 5362 #define VK_KHR_DISPLAY_SPEC_VERSION 23 5363 #define VK_KHR_DISPLAY_EXTENSION_NAME "VK_KHR_display" 5364 typedef VkFlags VkDisplayModeCreateFlagsKHR; 5365 5366 typedef enum VkDisplayPlaneAlphaFlagBitsKHR { 5367 VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001, 5368 VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002, 5369 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004, 5370 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008, 5371 VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF 5372 } VkDisplayPlaneAlphaFlagBitsKHR; 5373 typedef VkFlags VkDisplayPlaneAlphaFlagsKHR; 5374 typedef VkFlags VkDisplaySurfaceCreateFlagsKHR; 5375 typedef struct VkDisplayModeParametersKHR { 5376 VkExtent2D visibleRegion; 5377 uint32_t refreshRate; 5378 } VkDisplayModeParametersKHR; 5379 5380 typedef struct VkDisplayModeCreateInfoKHR { 5381 VkStructureType sType; 5382 const void* pNext; 5383 VkDisplayModeCreateFlagsKHR flags; 5384 VkDisplayModeParametersKHR parameters; 5385 } VkDisplayModeCreateInfoKHR; 5386 5387 typedef struct VkDisplayModePropertiesKHR { 5388 VkDisplayModeKHR displayMode; 5389 VkDisplayModeParametersKHR parameters; 5390 } VkDisplayModePropertiesKHR; 5391 5392 typedef struct VkDisplayPlaneCapabilitiesKHR { 5393 VkDisplayPlaneAlphaFlagsKHR supportedAlpha; 5394 VkOffset2D minSrcPosition; 5395 VkOffset2D maxSrcPosition; 5396 VkExtent2D minSrcExtent; 5397 VkExtent2D maxSrcExtent; 5398 VkOffset2D minDstPosition; 5399 VkOffset2D maxDstPosition; 5400 VkExtent2D minDstExtent; 5401 VkExtent2D maxDstExtent; 5402 } VkDisplayPlaneCapabilitiesKHR; 5403 5404 typedef struct VkDisplayPlanePropertiesKHR { 5405 VkDisplayKHR currentDisplay; 5406 uint32_t currentStackIndex; 5407 } VkDisplayPlanePropertiesKHR; 5408 5409 typedef struct VkDisplayPropertiesKHR { 5410 VkDisplayKHR display; 5411 const char* displayName; 5412 VkExtent2D physicalDimensions; 5413 VkExtent2D physicalResolution; 5414 VkSurfaceTransformFlagsKHR supportedTransforms; 5415 VkBool32 planeReorderPossible; 5416 VkBool32 persistentContent; 5417 } VkDisplayPropertiesKHR; 5418 5419 typedef struct VkDisplaySurfaceCreateInfoKHR { 5420 VkStructureType sType; 5421 const void* pNext; 5422 VkDisplaySurfaceCreateFlagsKHR flags; 5423 VkDisplayModeKHR displayMode; 5424 uint32_t planeIndex; 5425 uint32_t planeStackIndex; 5426 VkSurfaceTransformFlagBitsKHR transform; 5427 float globalAlpha; 5428 VkDisplayPlaneAlphaFlagBitsKHR alphaMode; 5429 VkExtent2D imageExtent; 5430 } VkDisplaySurfaceCreateInfoKHR; 5431 5432 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties); 5433 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties); 5434 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays); 5435 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties); 5436 typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode); 5437 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities); 5438 typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayPlaneSurfaceKHR)(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); 5439 5440 #ifndef VK_NO_PROTOTYPES 5441 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPropertiesKHR( 5442 VkPhysicalDevice physicalDevice, 5443 uint32_t* pPropertyCount, 5444 VkDisplayPropertiesKHR* pProperties); 5445 5446 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlanePropertiesKHR( 5447 VkPhysicalDevice physicalDevice, 5448 uint32_t* pPropertyCount, 5449 VkDisplayPlanePropertiesKHR* pProperties); 5450 5451 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneSupportedDisplaysKHR( 5452 VkPhysicalDevice physicalDevice, 5453 uint32_t planeIndex, 5454 uint32_t* pDisplayCount, 5455 VkDisplayKHR* pDisplays); 5456 5457 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModePropertiesKHR( 5458 VkPhysicalDevice physicalDevice, 5459 VkDisplayKHR display, 5460 uint32_t* pPropertyCount, 5461 VkDisplayModePropertiesKHR* pProperties); 5462 5463 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayModeKHR( 5464 VkPhysicalDevice physicalDevice, 5465 VkDisplayKHR display, 5466 const VkDisplayModeCreateInfoKHR* pCreateInfo, 5467 const VkAllocationCallbacks* pAllocator, 5468 VkDisplayModeKHR* pMode); 5469 5470 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilitiesKHR( 5471 VkPhysicalDevice physicalDevice, 5472 VkDisplayModeKHR mode, 5473 uint32_t planeIndex, 5474 VkDisplayPlaneCapabilitiesKHR* pCapabilities); 5475 5476 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayPlaneSurfaceKHR( 5477 VkInstance instance, 5478 const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, 5479 const VkAllocationCallbacks* pAllocator, 5480 VkSurfaceKHR* pSurface); 5481 #endif 5482 5483 5484 #define VK_KHR_display_swapchain 1 5485 #define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 10 5486 #define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain" 5487 typedef struct VkDisplayPresentInfoKHR { 5488 VkStructureType sType; 5489 const void* pNext; 5490 VkRect2D srcRect; 5491 VkRect2D dstRect; 5492 VkBool32 persistent; 5493 } VkDisplayPresentInfoKHR; 5494 5495 typedef VkResult (VKAPI_PTR *PFN_vkCreateSharedSwapchainsKHR)(VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains); 5496 5497 #ifndef VK_NO_PROTOTYPES 5498 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSharedSwapchainsKHR( 5499 VkDevice device, 5500 uint32_t swapchainCount, 5501 const VkSwapchainCreateInfoKHR* pCreateInfos, 5502 const VkAllocationCallbacks* pAllocator, 5503 VkSwapchainKHR* pSwapchains); 5504 #endif 5505 5506 5507 #define VK_KHR_external_memory_fd 1 5508 #define VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION 1 5509 #define VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME "VK_KHR_external_memory_fd" 5510 typedef struct VkImportMemoryFdInfoKHR { 5511 VkStructureType sType; 5512 const void* pNext; 5513 VkExternalMemoryHandleTypeFlagBits handleType; 5514 int fd; 5515 } VkImportMemoryFdInfoKHR; 5516 5517 typedef struct VkMemoryFdPropertiesKHR { 5518 VkStructureType sType; 5519 void* pNext; 5520 uint32_t memoryTypeBits; 5521 } VkMemoryFdPropertiesKHR; 5522 5523 typedef struct VkMemoryGetFdInfoKHR { 5524 VkStructureType sType; 5525 const void* pNext; 5526 VkDeviceMemory memory; 5527 VkExternalMemoryHandleTypeFlagBits handleType; 5528 } VkMemoryGetFdInfoKHR; 5529 5530 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdKHR)(VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd); 5531 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdPropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties); 5532 5533 #ifndef VK_NO_PROTOTYPES 5534 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdKHR( 5535 VkDevice device, 5536 const VkMemoryGetFdInfoKHR* pGetFdInfo, 5537 int* pFd); 5538 5539 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdPropertiesKHR( 5540 VkDevice device, 5541 VkExternalMemoryHandleTypeFlagBits handleType, 5542 int fd, 5543 VkMemoryFdPropertiesKHR* pMemoryFdProperties); 5544 #endif 5545 5546 5547 #define VK_KHR_external_semaphore_fd 1 5548 #define VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION 1 5549 #define VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME "VK_KHR_external_semaphore_fd" 5550 typedef struct VkImportSemaphoreFdInfoKHR { 5551 VkStructureType sType; 5552 const void* pNext; 5553 VkSemaphore semaphore; 5554 VkSemaphoreImportFlags flags; 5555 VkExternalSemaphoreHandleTypeFlagBits handleType; 5556 int fd; 5557 } VkImportSemaphoreFdInfoKHR; 5558 5559 typedef struct VkSemaphoreGetFdInfoKHR { 5560 VkStructureType sType; 5561 const void* pNext; 5562 VkSemaphore semaphore; 5563 VkExternalSemaphoreHandleTypeFlagBits handleType; 5564 } VkSemaphoreGetFdInfoKHR; 5565 5566 typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreFdKHR)(VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo); 5567 typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreFdKHR)(VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd); 5568 5569 #ifndef VK_NO_PROTOTYPES 5570 VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreFdKHR( 5571 VkDevice device, 5572 const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo); 5573 5574 VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreFdKHR( 5575 VkDevice device, 5576 const VkSemaphoreGetFdInfoKHR* pGetFdInfo, 5577 int* pFd); 5578 #endif 5579 5580 5581 #define VK_KHR_incremental_present 1 5582 #define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 2 5583 #define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present" 5584 typedef struct VkRectLayerKHR { 5585 VkOffset2D offset; 5586 VkExtent2D extent; 5587 uint32_t layer; 5588 } VkRectLayerKHR; 5589 5590 typedef struct VkPresentRegionKHR { 5591 uint32_t rectangleCount; 5592 const VkRectLayerKHR* pRectangles; 5593 } VkPresentRegionKHR; 5594 5595 typedef struct VkPresentRegionsKHR { 5596 VkStructureType sType; 5597 const void* pNext; 5598 uint32_t swapchainCount; 5599 const VkPresentRegionKHR* pRegions; 5600 } VkPresentRegionsKHR; 5601 5602 5603 5604 #define VK_KHR_shared_presentable_image 1 5605 #define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1 5606 #define VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME "VK_KHR_shared_presentable_image" 5607 typedef struct VkSharedPresentSurfaceCapabilitiesKHR { 5608 VkStructureType sType; 5609 void* pNext; 5610 VkImageUsageFlags sharedPresentSupportedUsageFlags; 5611 } VkSharedPresentSurfaceCapabilitiesKHR; 5612 5613 typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainStatusKHR)(VkDevice device, VkSwapchainKHR swapchain); 5614 5615 #ifndef VK_NO_PROTOTYPES 5616 VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainStatusKHR( 5617 VkDevice device, 5618 VkSwapchainKHR swapchain); 5619 #endif 5620 5621 5622 #define VK_KHR_external_fence_fd 1 5623 #define VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION 1 5624 #define VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME "VK_KHR_external_fence_fd" 5625 typedef struct VkImportFenceFdInfoKHR { 5626 VkStructureType sType; 5627 const void* pNext; 5628 VkFence fence; 5629 VkFenceImportFlags flags; 5630 VkExternalFenceHandleTypeFlagBits handleType; 5631 int fd; 5632 } VkImportFenceFdInfoKHR; 5633 5634 typedef struct VkFenceGetFdInfoKHR { 5635 VkStructureType sType; 5636 const void* pNext; 5637 VkFence fence; 5638 VkExternalFenceHandleTypeFlagBits handleType; 5639 } VkFenceGetFdInfoKHR; 5640 5641 typedef VkResult (VKAPI_PTR *PFN_vkImportFenceFdKHR)(VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo); 5642 typedef VkResult (VKAPI_PTR *PFN_vkGetFenceFdKHR)(VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd); 5643 5644 #ifndef VK_NO_PROTOTYPES 5645 VKAPI_ATTR VkResult VKAPI_CALL vkImportFenceFdKHR( 5646 VkDevice device, 5647 const VkImportFenceFdInfoKHR* pImportFenceFdInfo); 5648 5649 VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceFdKHR( 5650 VkDevice device, 5651 const VkFenceGetFdInfoKHR* pGetFdInfo, 5652 int* pFd); 5653 #endif 5654 5655 5656 #define VK_KHR_performance_query 1 5657 #define VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION 1 5658 #define VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME "VK_KHR_performance_query" 5659 5660 typedef enum VkPerformanceCounterUnitKHR { 5661 VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0, 5662 VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1, 5663 VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2, 5664 VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3, 5665 VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4, 5666 VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5, 5667 VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6, 5668 VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7, 5669 VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8, 5670 VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9, 5671 VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10, 5672 VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 0x7FFFFFFF 5673 } VkPerformanceCounterUnitKHR; 5674 5675 typedef enum VkPerformanceCounterScopeKHR { 5676 VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0, 5677 VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1, 5678 VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2, 5679 VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR, 5680 VK_QUERY_SCOPE_RENDER_PASS_KHR = VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR, 5681 VK_QUERY_SCOPE_COMMAND_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR, 5682 VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 0x7FFFFFFF 5683 } VkPerformanceCounterScopeKHR; 5684 5685 typedef enum VkPerformanceCounterStorageKHR { 5686 VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0, 5687 VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1, 5688 VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2, 5689 VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3, 5690 VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4, 5691 VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5, 5692 VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 0x7FFFFFFF 5693 } VkPerformanceCounterStorageKHR; 5694 5695 typedef enum VkPerformanceCounterDescriptionFlagBitsKHR { 5696 VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 0x00000001, 5697 VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 0x00000002, 5698 VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR, 5699 VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR, 5700 VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF 5701 } VkPerformanceCounterDescriptionFlagBitsKHR; 5702 typedef VkFlags VkPerformanceCounterDescriptionFlagsKHR; 5703 5704 typedef enum VkAcquireProfilingLockFlagBitsKHR { 5705 VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF 5706 } VkAcquireProfilingLockFlagBitsKHR; 5707 typedef VkFlags VkAcquireProfilingLockFlagsKHR; 5708 typedef struct VkPhysicalDevicePerformanceQueryFeaturesKHR { 5709 VkStructureType sType; 5710 void* pNext; 5711 VkBool32 performanceCounterQueryPools; 5712 VkBool32 performanceCounterMultipleQueryPools; 5713 } VkPhysicalDevicePerformanceQueryFeaturesKHR; 5714 5715 typedef struct VkPhysicalDevicePerformanceQueryPropertiesKHR { 5716 VkStructureType sType; 5717 void* pNext; 5718 VkBool32 allowCommandBufferQueryCopies; 5719 } VkPhysicalDevicePerformanceQueryPropertiesKHR; 5720 5721 typedef struct VkPerformanceCounterKHR { 5722 VkStructureType sType; 5723 void* pNext; 5724 VkPerformanceCounterUnitKHR unit; 5725 VkPerformanceCounterScopeKHR scope; 5726 VkPerformanceCounterStorageKHR storage; 5727 uint8_t uuid[VK_UUID_SIZE]; 5728 } VkPerformanceCounterKHR; 5729 5730 typedef struct VkPerformanceCounterDescriptionKHR { 5731 VkStructureType sType; 5732 void* pNext; 5733 VkPerformanceCounterDescriptionFlagsKHR flags; 5734 char name[VK_MAX_DESCRIPTION_SIZE]; 5735 char category[VK_MAX_DESCRIPTION_SIZE]; 5736 char description[VK_MAX_DESCRIPTION_SIZE]; 5737 } VkPerformanceCounterDescriptionKHR; 5738 5739 typedef struct VkQueryPoolPerformanceCreateInfoKHR { 5740 VkStructureType sType; 5741 const void* pNext; 5742 uint32_t queueFamilyIndex; 5743 uint32_t counterIndexCount; 5744 const uint32_t* pCounterIndices; 5745 } VkQueryPoolPerformanceCreateInfoKHR; 5746 5747 typedef union VkPerformanceCounterResultKHR { 5748 int32_t int32; 5749 int64_t int64; 5750 uint32_t uint32; 5751 uint64_t uint64; 5752 float float32; 5753 double float64; 5754 } VkPerformanceCounterResultKHR; 5755 5756 typedef struct VkAcquireProfilingLockInfoKHR { 5757 VkStructureType sType; 5758 const void* pNext; 5759 VkAcquireProfilingLockFlagsKHR flags; 5760 uint64_t timeout; 5761 } VkAcquireProfilingLockInfoKHR; 5762 5763 typedef struct VkPerformanceQuerySubmitInfoKHR { 5764 VkStructureType sType; 5765 const void* pNext; 5766 uint32_t counterPassIndex; 5767 } VkPerformanceQuerySubmitInfoKHR; 5768 5769 typedef struct VkPerformanceQueryReservationInfoKHR { 5770 VkStructureType sType; 5771 const void* pNext; 5772 uint32_t maxPerformanceQueriesPerPool; 5773 } VkPerformanceQueryReservationInfoKHR; 5774 5775 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pCounterCount, VkPerformanceCounterKHR* pCounters, VkPerformanceCounterDescriptionKHR* pCounterDescriptions); 5776 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR)(VkPhysicalDevice physicalDevice, const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses); 5777 typedef VkResult (VKAPI_PTR *PFN_vkAcquireProfilingLockKHR)(VkDevice device, const VkAcquireProfilingLockInfoKHR* pInfo); 5778 typedef void (VKAPI_PTR *PFN_vkReleaseProfilingLockKHR)(VkDevice device); 5779 5780 #ifndef VK_NO_PROTOTYPES 5781 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( 5782 VkPhysicalDevice physicalDevice, 5783 uint32_t queueFamilyIndex, 5784 uint32_t* pCounterCount, 5785 VkPerformanceCounterKHR* pCounters, 5786 VkPerformanceCounterDescriptionKHR* pCounterDescriptions); 5787 5788 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( 5789 VkPhysicalDevice physicalDevice, 5790 const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, 5791 uint32_t* pNumPasses); 5792 5793 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireProfilingLockKHR( 5794 VkDevice device, 5795 const VkAcquireProfilingLockInfoKHR* pInfo); 5796 5797 VKAPI_ATTR void VKAPI_CALL vkReleaseProfilingLockKHR( 5798 VkDevice device); 5799 #endif 5800 5801 5802 #define VK_KHR_get_surface_capabilities2 1 5803 #define VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION 1 5804 #define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2" 5805 typedef struct VkPhysicalDeviceSurfaceInfo2KHR { 5806 VkStructureType sType; 5807 const void* pNext; 5808 VkSurfaceKHR surface; 5809 } VkPhysicalDeviceSurfaceInfo2KHR; 5810 5811 typedef struct VkSurfaceCapabilities2KHR { 5812 VkStructureType sType; 5813 void* pNext; 5814 VkSurfaceCapabilitiesKHR surfaceCapabilities; 5815 } VkSurfaceCapabilities2KHR; 5816 5817 typedef struct VkSurfaceFormat2KHR { 5818 VkStructureType sType; 5819 void* pNext; 5820 VkSurfaceFormatKHR surfaceFormat; 5821 } VkSurfaceFormat2KHR; 5822 5823 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities); 5824 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats); 5825 5826 #ifndef VK_NO_PROTOTYPES 5827 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2KHR( 5828 VkPhysicalDevice physicalDevice, 5829 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, 5830 VkSurfaceCapabilities2KHR* pSurfaceCapabilities); 5831 5832 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormats2KHR( 5833 VkPhysicalDevice physicalDevice, 5834 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, 5835 uint32_t* pSurfaceFormatCount, 5836 VkSurfaceFormat2KHR* pSurfaceFormats); 5837 #endif 5838 5839 5840 #define VK_KHR_get_display_properties2 1 5841 #define VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION 1 5842 #define VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_display_properties2" 5843 typedef struct VkDisplayProperties2KHR { 5844 VkStructureType sType; 5845 void* pNext; 5846 VkDisplayPropertiesKHR displayProperties; 5847 } VkDisplayProperties2KHR; 5848 5849 typedef struct VkDisplayPlaneProperties2KHR { 5850 VkStructureType sType; 5851 void* pNext; 5852 VkDisplayPlanePropertiesKHR displayPlaneProperties; 5853 } VkDisplayPlaneProperties2KHR; 5854 5855 typedef struct VkDisplayModeProperties2KHR { 5856 VkStructureType sType; 5857 void* pNext; 5858 VkDisplayModePropertiesKHR displayModeProperties; 5859 } VkDisplayModeProperties2KHR; 5860 5861 typedef struct VkDisplayPlaneInfo2KHR { 5862 VkStructureType sType; 5863 const void* pNext; 5864 VkDisplayModeKHR mode; 5865 uint32_t planeIndex; 5866 } VkDisplayPlaneInfo2KHR; 5867 5868 typedef struct VkDisplayPlaneCapabilities2KHR { 5869 VkStructureType sType; 5870 void* pNext; 5871 VkDisplayPlaneCapabilitiesKHR capabilities; 5872 } VkDisplayPlaneCapabilities2KHR; 5873 5874 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayProperties2KHR* pProperties); 5875 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties); 5876 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModeProperties2KHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModeProperties2KHR* pProperties); 5877 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities); 5878 5879 #ifndef VK_NO_PROTOTYPES 5880 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayProperties2KHR( 5881 VkPhysicalDevice physicalDevice, 5882 uint32_t* pPropertyCount, 5883 VkDisplayProperties2KHR* pProperties); 5884 5885 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlaneProperties2KHR( 5886 VkPhysicalDevice physicalDevice, 5887 uint32_t* pPropertyCount, 5888 VkDisplayPlaneProperties2KHR* pProperties); 5889 5890 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModeProperties2KHR( 5891 VkPhysicalDevice physicalDevice, 5892 VkDisplayKHR display, 5893 uint32_t* pPropertyCount, 5894 VkDisplayModeProperties2KHR* pProperties); 5895 5896 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilities2KHR( 5897 VkPhysicalDevice physicalDevice, 5898 const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, 5899 VkDisplayPlaneCapabilities2KHR* pCapabilities); 5900 #endif 5901 5902 5903 #define VK_KHR_shader_clock 1 5904 #define VK_KHR_SHADER_CLOCK_SPEC_VERSION 1 5905 #define VK_KHR_SHADER_CLOCK_EXTENSION_NAME "VK_KHR_shader_clock" 5906 typedef struct VkPhysicalDeviceShaderClockFeaturesKHR { 5907 VkStructureType sType; 5908 void* pNext; 5909 VkBool32 shaderSubgroupClock; 5910 VkBool32 shaderDeviceClock; 5911 } VkPhysicalDeviceShaderClockFeaturesKHR; 5912 5913 5914 5915 #define VK_KHR_swapchain_mutable_format 1 5916 #define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_SPEC_VERSION 1 5917 #define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_EXTENSION_NAME "VK_KHR_swapchain_mutable_format" 5918 5919 5920 #define VK_KHR_shader_terminate_invocation 1 5921 #define VK_KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION 1 5922 #define VK_KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME "VK_KHR_shader_terminate_invocation" 5923 typedef struct VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR { 5924 VkStructureType sType; 5925 void* pNext; 5926 VkBool32 shaderTerminateInvocation; 5927 } VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR; 5928 5929 5930 5931 #define VK_KHR_fragment_shading_rate 1 5932 #define VK_KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION 2 5933 #define VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME "VK_KHR_fragment_shading_rate" 5934 5935 typedef enum VkFragmentShadingRateCombinerOpKHR { 5936 VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0, 5937 VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1, 5938 VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2, 5939 VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3, 5940 VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4, 5941 VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR = 0x7FFFFFFF 5942 } VkFragmentShadingRateCombinerOpKHR; 5943 typedef struct VkFragmentShadingRateAttachmentInfoKHR { 5944 VkStructureType sType; 5945 const void* pNext; 5946 const VkAttachmentReference2* pFragmentShadingRateAttachment; 5947 VkExtent2D shadingRateAttachmentTexelSize; 5948 } VkFragmentShadingRateAttachmentInfoKHR; 5949 5950 typedef struct VkPipelineFragmentShadingRateStateCreateInfoKHR { 5951 VkStructureType sType; 5952 const void* pNext; 5953 VkExtent2D fragmentSize; 5954 VkFragmentShadingRateCombinerOpKHR combinerOps[2]; 5955 } VkPipelineFragmentShadingRateStateCreateInfoKHR; 5956 5957 typedef struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR { 5958 VkStructureType sType; 5959 void* pNext; 5960 VkBool32 pipelineFragmentShadingRate; 5961 VkBool32 primitiveFragmentShadingRate; 5962 VkBool32 attachmentFragmentShadingRate; 5963 } VkPhysicalDeviceFragmentShadingRateFeaturesKHR; 5964 5965 typedef struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR { 5966 VkStructureType sType; 5967 void* pNext; 5968 VkExtent2D minFragmentShadingRateAttachmentTexelSize; 5969 VkExtent2D maxFragmentShadingRateAttachmentTexelSize; 5970 uint32_t maxFragmentShadingRateAttachmentTexelSizeAspectRatio; 5971 VkBool32 primitiveFragmentShadingRateWithMultipleViewports; 5972 VkBool32 layeredShadingRateAttachments; 5973 VkBool32 fragmentShadingRateNonTrivialCombinerOps; 5974 VkExtent2D maxFragmentSize; 5975 uint32_t maxFragmentSizeAspectRatio; 5976 uint32_t maxFragmentShadingRateCoverageSamples; 5977 VkSampleCountFlagBits maxFragmentShadingRateRasterizationSamples; 5978 VkBool32 fragmentShadingRateWithShaderDepthStencilWrites; 5979 VkBool32 fragmentShadingRateWithSampleMask; 5980 VkBool32 fragmentShadingRateWithShaderSampleMask; 5981 VkBool32 fragmentShadingRateWithConservativeRasterization; 5982 VkBool32 fragmentShadingRateWithFragmentShaderInterlock; 5983 VkBool32 fragmentShadingRateWithCustomSampleLocations; 5984 VkBool32 fragmentShadingRateStrictMultiplyCombiner; 5985 } VkPhysicalDeviceFragmentShadingRatePropertiesKHR; 5986 5987 typedef struct VkPhysicalDeviceFragmentShadingRateKHR { 5988 VkStructureType sType; 5989 void* pNext; 5990 VkSampleCountFlags sampleCounts; 5991 VkExtent2D fragmentSize; 5992 } VkPhysicalDeviceFragmentShadingRateKHR; 5993 5994 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pFragmentShadingRateCount, VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates); 5995 typedef void (VKAPI_PTR *PFN_vkCmdSetFragmentShadingRateKHR)(VkCommandBuffer commandBuffer, const VkExtent2D* pFragmentSize, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]); 5996 5997 #ifndef VK_NO_PROTOTYPES 5998 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceFragmentShadingRatesKHR( 5999 VkPhysicalDevice physicalDevice, 6000 uint32_t* pFragmentShadingRateCount, 6001 VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates); 6002 6003 VKAPI_ATTR void VKAPI_CALL vkCmdSetFragmentShadingRateKHR( 6004 VkCommandBuffer commandBuffer, 6005 const VkExtent2D* pFragmentSize, 6006 const VkFragmentShadingRateCombinerOpKHR combinerOps[2]); 6007 #endif 6008 6009 6010 #define VK_KHR_object_refresh 1 6011 #define VK_KHR_OBJECT_REFRESH_SPEC_VERSION 1 6012 #define VK_KHR_OBJECT_REFRESH_EXTENSION_NAME "VK_KHR_object_refresh" 6013 6014 typedef enum VkRefreshObjectFlagBitsKHR { 6015 VK_REFRESH_OBJECT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF 6016 } VkRefreshObjectFlagBitsKHR; 6017 typedef VkFlags VkRefreshObjectFlagsKHR; 6018 typedef struct VkRefreshObjectKHR { 6019 VkObjectType objectType; 6020 uint64_t objectHandle; 6021 VkRefreshObjectFlagsKHR flags; 6022 } VkRefreshObjectKHR; 6023 6024 typedef struct VkRefreshObjectListKHR { 6025 VkStructureType sType; 6026 const void* pNext; 6027 uint32_t objectCount; 6028 const VkRefreshObjectKHR* pObjects; 6029 } VkRefreshObjectListKHR; 6030 6031 typedef void (VKAPI_PTR *PFN_vkCmdRefreshObjectsKHR)(VkCommandBuffer commandBuffer, const VkRefreshObjectListKHR* pRefreshObjects); 6032 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceRefreshableObjectTypesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pRefreshableObjectTypeCount, VkObjectType* pRefreshableObjectTypes); 6033 6034 #ifndef VK_NO_PROTOTYPES 6035 VKAPI_ATTR void VKAPI_CALL vkCmdRefreshObjectsKHR( 6036 VkCommandBuffer commandBuffer, 6037 const VkRefreshObjectListKHR* pRefreshObjects); 6038 6039 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceRefreshableObjectTypesKHR( 6040 VkPhysicalDevice physicalDevice, 6041 uint32_t* pRefreshableObjectTypeCount, 6042 VkObjectType* pRefreshableObjectTypes); 6043 #endif 6044 6045 6046 #define VK_KHR_synchronization2 1 6047 typedef uint64_t VkFlags64; 6048 #define VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION 1 6049 #define VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME "VK_KHR_synchronization2" 6050 typedef VkFlags64 VkPipelineStageFlags2KHR; 6051 6052 // Flag bits for VkPipelineStageFlagBits2KHR 6053 typedef VkFlags64 VkPipelineStageFlagBits2KHR; 6054 static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_NONE_KHR = 0ULL; 6055 static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR = 0x00000001ULL; 6056 static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR = 0x00000002ULL; 6057 static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR = 0x00000004ULL; 6058 static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR = 0x00000008ULL; 6059 static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR = 0x00000010ULL; 6060 static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR = 0x00000020ULL; 6061 static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR = 0x00000040ULL; 6062 static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR = 0x00000080ULL; 6063 static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR = 0x00000100ULL; 6064 static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR = 0x00000200ULL; 6065 static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR = 0x00000400ULL; 6066 static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR = 0x00000800ULL; 6067 static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR = 0x00001000ULL; 6068 static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR = 0x00001000ULL; 6069 static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR = 0x00002000ULL; 6070 static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_HOST_BIT_KHR = 0x00004000ULL; 6071 static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR = 0x00008000ULL; 6072 static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR = 0x00010000ULL; 6073 static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_COPY_BIT_KHR = 0x100000000ULL; 6074 static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR = 0x200000000ULL; 6075 static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_BLIT_BIT_KHR = 0x400000000ULL; 6076 static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR = 0x800000000ULL; 6077 static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR = 0x1000000000ULL; 6078 static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR = 0x2000000000ULL; 6079 static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR = 0x4000000000ULL; 6080 static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000ULL; 6081 static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000ULL; 6082 static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV = 0x00020000ULL; 6083 static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00400000ULL; 6084 static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV = 0x00400000ULL; 6085 static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000ULL; 6086 static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR = 0x00200000ULL; 6087 static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV = 0x00200000ULL; 6088 static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 0x02000000ULL; 6089 static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000ULL; 6090 static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV = 0x00080000ULL; 6091 static const VkPipelineStageFlagBits2KHR VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV = 0x00100000ULL; 6092 6093 typedef VkFlags64 VkAccessFlags2KHR; 6094 6095 // Flag bits for VkAccessFlagBits2KHR 6096 typedef VkFlags64 VkAccessFlagBits2KHR; 6097 static const VkAccessFlagBits2KHR VK_ACCESS_2_NONE_KHR = 0ULL; 6098 static const VkAccessFlagBits2KHR VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR = 0x00000001ULL; 6099 static const VkAccessFlagBits2KHR VK_ACCESS_2_INDEX_READ_BIT_KHR = 0x00000002ULL; 6100 static const VkAccessFlagBits2KHR VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR = 0x00000004ULL; 6101 static const VkAccessFlagBits2KHR VK_ACCESS_2_UNIFORM_READ_BIT_KHR = 0x00000008ULL; 6102 static const VkAccessFlagBits2KHR VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR = 0x00000010ULL; 6103 static const VkAccessFlagBits2KHR VK_ACCESS_2_SHADER_READ_BIT_KHR = 0x00000020ULL; 6104 static const VkAccessFlagBits2KHR VK_ACCESS_2_SHADER_WRITE_BIT_KHR = 0x00000040ULL; 6105 static const VkAccessFlagBits2KHR VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR = 0x00000080ULL; 6106 static const VkAccessFlagBits2KHR VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR = 0x00000100ULL; 6107 static const VkAccessFlagBits2KHR VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR = 0x00000200ULL; 6108 static const VkAccessFlagBits2KHR VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR = 0x00000400ULL; 6109 static const VkAccessFlagBits2KHR VK_ACCESS_2_TRANSFER_READ_BIT_KHR = 0x00000800ULL; 6110 static const VkAccessFlagBits2KHR VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR = 0x00001000ULL; 6111 static const VkAccessFlagBits2KHR VK_ACCESS_2_HOST_READ_BIT_KHR = 0x00002000ULL; 6112 static const VkAccessFlagBits2KHR VK_ACCESS_2_HOST_WRITE_BIT_KHR = 0x00004000ULL; 6113 static const VkAccessFlagBits2KHR VK_ACCESS_2_MEMORY_READ_BIT_KHR = 0x00008000ULL; 6114 static const VkAccessFlagBits2KHR VK_ACCESS_2_MEMORY_WRITE_BIT_KHR = 0x00010000ULL; 6115 static const VkAccessFlagBits2KHR VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR = 0x100000000ULL; 6116 static const VkAccessFlagBits2KHR VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR = 0x200000000ULL; 6117 static const VkAccessFlagBits2KHR VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR = 0x400000000ULL; 6118 static const VkAccessFlagBits2KHR VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000ULL; 6119 static const VkAccessFlagBits2KHR VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000ULL; 6120 static const VkAccessFlagBits2KHR VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000ULL; 6121 static const VkAccessFlagBits2KHR VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000ULL; 6122 static const VkAccessFlagBits2KHR VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV = 0x00020000ULL; 6123 static const VkAccessFlagBits2KHR VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV = 0x00040000ULL; 6124 static const VkAccessFlagBits2KHR VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000ULL; 6125 static const VkAccessFlagBits2KHR VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000ULL; 6126 static const VkAccessFlagBits2KHR VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000ULL; 6127 static const VkAccessFlagBits2KHR VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000ULL; 6128 static const VkAccessFlagBits2KHR VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV = 0x00200000ULL; 6129 static const VkAccessFlagBits2KHR VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV = 0x00400000ULL; 6130 static const VkAccessFlagBits2KHR VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000ULL; 6131 static const VkAccessFlagBits2KHR VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000ULL; 6132 6133 6134 typedef enum VkSubmitFlagBitsKHR { 6135 VK_SUBMIT_PROTECTED_BIT_KHR = 0x00000001, 6136 VK_SUBMIT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF 6137 } VkSubmitFlagBitsKHR; 6138 typedef VkFlags VkSubmitFlagsKHR; 6139 typedef struct VkMemoryBarrier2KHR { 6140 VkStructureType sType; 6141 const void* pNext; 6142 VkPipelineStageFlags2KHR srcStageMask; 6143 VkAccessFlags2KHR srcAccessMask; 6144 VkPipelineStageFlags2KHR dstStageMask; 6145 VkAccessFlags2KHR dstAccessMask; 6146 } VkMemoryBarrier2KHR; 6147 6148 typedef struct VkBufferMemoryBarrier2KHR { 6149 VkStructureType sType; 6150 const void* pNext; 6151 VkPipelineStageFlags2KHR srcStageMask; 6152 VkAccessFlags2KHR srcAccessMask; 6153 VkPipelineStageFlags2KHR dstStageMask; 6154 VkAccessFlags2KHR dstAccessMask; 6155 uint32_t srcQueueFamilyIndex; 6156 uint32_t dstQueueFamilyIndex; 6157 VkBuffer buffer; 6158 VkDeviceSize offset; 6159 VkDeviceSize size; 6160 } VkBufferMemoryBarrier2KHR; 6161 6162 typedef struct VkImageMemoryBarrier2KHR { 6163 VkStructureType sType; 6164 const void* pNext; 6165 VkPipelineStageFlags2KHR srcStageMask; 6166 VkAccessFlags2KHR srcAccessMask; 6167 VkPipelineStageFlags2KHR dstStageMask; 6168 VkAccessFlags2KHR dstAccessMask; 6169 VkImageLayout oldLayout; 6170 VkImageLayout newLayout; 6171 uint32_t srcQueueFamilyIndex; 6172 uint32_t dstQueueFamilyIndex; 6173 VkImage image; 6174 VkImageSubresourceRange subresourceRange; 6175 } VkImageMemoryBarrier2KHR; 6176 6177 typedef struct VkDependencyInfoKHR { 6178 VkStructureType sType; 6179 const void* pNext; 6180 VkDependencyFlags dependencyFlags; 6181 uint32_t memoryBarrierCount; 6182 const VkMemoryBarrier2KHR* pMemoryBarriers; 6183 uint32_t bufferMemoryBarrierCount; 6184 const VkBufferMemoryBarrier2KHR* pBufferMemoryBarriers; 6185 uint32_t imageMemoryBarrierCount; 6186 const VkImageMemoryBarrier2KHR* pImageMemoryBarriers; 6187 } VkDependencyInfoKHR; 6188 6189 typedef struct VkSemaphoreSubmitInfoKHR { 6190 VkStructureType sType; 6191 const void* pNext; 6192 VkSemaphore semaphore; 6193 uint64_t value; 6194 VkPipelineStageFlags2KHR stageMask; 6195 uint32_t deviceIndex; 6196 } VkSemaphoreSubmitInfoKHR; 6197 6198 typedef struct VkCommandBufferSubmitInfoKHR { 6199 VkStructureType sType; 6200 const void* pNext; 6201 VkCommandBuffer commandBuffer; 6202 uint32_t deviceMask; 6203 } VkCommandBufferSubmitInfoKHR; 6204 6205 typedef struct VkSubmitInfo2KHR { 6206 VkStructureType sType; 6207 const void* pNext; 6208 VkSubmitFlagsKHR flags; 6209 uint32_t waitSemaphoreInfoCount; 6210 const VkSemaphoreSubmitInfoKHR* pWaitSemaphoreInfos; 6211 uint32_t commandBufferInfoCount; 6212 const VkCommandBufferSubmitInfoKHR* pCommandBufferInfos; 6213 uint32_t signalSemaphoreInfoCount; 6214 const VkSemaphoreSubmitInfoKHR* pSignalSemaphoreInfos; 6215 } VkSubmitInfo2KHR; 6216 6217 typedef struct VkPhysicalDeviceSynchronization2FeaturesKHR { 6218 VkStructureType sType; 6219 void* pNext; 6220 VkBool32 synchronization2; 6221 } VkPhysicalDeviceSynchronization2FeaturesKHR; 6222 6223 typedef struct VkQueueFamilyCheckpointProperties2NV { 6224 VkStructureType sType; 6225 void* pNext; 6226 VkPipelineStageFlags2KHR checkpointExecutionStageMask; 6227 } VkQueueFamilyCheckpointProperties2NV; 6228 6229 typedef struct VkCheckpointData2NV { 6230 VkStructureType sType; 6231 void* pNext; 6232 VkPipelineStageFlags2KHR stage; 6233 void* pCheckpointMarker; 6234 } VkCheckpointData2NV; 6235 6236 typedef void (VKAPI_PTR *PFN_vkCmdSetEvent2KHR)(VkCommandBuffer commandBuffer, VkEvent event, const VkDependencyInfoKHR* pDependencyInfo); 6237 typedef void (VKAPI_PTR *PFN_vkCmdResetEvent2KHR)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags2KHR stageMask); 6238 typedef void (VKAPI_PTR *PFN_vkCmdWaitEvents2KHR)(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, const VkDependencyInfoKHR* pDependencyInfos); 6239 typedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier2KHR)(VkCommandBuffer commandBuffer, const VkDependencyInfoKHR* pDependencyInfo); 6240 typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp2KHR)(VkCommandBuffer commandBuffer, VkPipelineStageFlags2KHR stage, VkQueryPool queryPool, uint32_t query); 6241 typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit2KHR)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo2KHR* pSubmits, VkFence fence); 6242 typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarker2AMD)(VkCommandBuffer commandBuffer, VkPipelineStageFlags2KHR stage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker); 6243 typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointData2NV)(VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointData2NV* pCheckpointData); 6244 6245 #ifndef VK_NO_PROTOTYPES 6246 VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent2KHR( 6247 VkCommandBuffer commandBuffer, 6248 VkEvent event, 6249 const VkDependencyInfoKHR* pDependencyInfo); 6250 6251 VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent2KHR( 6252 VkCommandBuffer commandBuffer, 6253 VkEvent event, 6254 VkPipelineStageFlags2KHR stageMask); 6255 6256 VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents2KHR( 6257 VkCommandBuffer commandBuffer, 6258 uint32_t eventCount, 6259 const VkEvent* pEvents, 6260 const VkDependencyInfoKHR* pDependencyInfos); 6261 6262 VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier2KHR( 6263 VkCommandBuffer commandBuffer, 6264 const VkDependencyInfoKHR* pDependencyInfo); 6265 6266 VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp2KHR( 6267 VkCommandBuffer commandBuffer, 6268 VkPipelineStageFlags2KHR stage, 6269 VkQueryPool queryPool, 6270 uint32_t query); 6271 6272 VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit2KHR( 6273 VkQueue queue, 6274 uint32_t submitCount, 6275 const VkSubmitInfo2KHR* pSubmits, 6276 VkFence fence); 6277 6278 VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarker2AMD( 6279 VkCommandBuffer commandBuffer, 6280 VkPipelineStageFlags2KHR stage, 6281 VkBuffer dstBuffer, 6282 VkDeviceSize dstOffset, 6283 uint32_t marker); 6284 6285 VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointData2NV( 6286 VkQueue queue, 6287 uint32_t* pCheckpointDataCount, 6288 VkCheckpointData2NV* pCheckpointData); 6289 #endif 6290 6291 6292 #define VK_KHR_copy_commands2 1 6293 #define VK_KHR_COPY_COMMANDS_2_SPEC_VERSION 1 6294 #define VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME "VK_KHR_copy_commands2" 6295 typedef struct VkBufferCopy2KHR { 6296 VkStructureType sType; 6297 const void* pNext; 6298 VkDeviceSize srcOffset; 6299 VkDeviceSize dstOffset; 6300 VkDeviceSize size; 6301 } VkBufferCopy2KHR; 6302 6303 typedef struct VkCopyBufferInfo2KHR { 6304 VkStructureType sType; 6305 const void* pNext; 6306 VkBuffer srcBuffer; 6307 VkBuffer dstBuffer; 6308 uint32_t regionCount; 6309 const VkBufferCopy2KHR* pRegions; 6310 } VkCopyBufferInfo2KHR; 6311 6312 typedef struct VkImageCopy2KHR { 6313 VkStructureType sType; 6314 const void* pNext; 6315 VkImageSubresourceLayers srcSubresource; 6316 VkOffset3D srcOffset; 6317 VkImageSubresourceLayers dstSubresource; 6318 VkOffset3D dstOffset; 6319 VkExtent3D extent; 6320 } VkImageCopy2KHR; 6321 6322 typedef struct VkCopyImageInfo2KHR { 6323 VkStructureType sType; 6324 const void* pNext; 6325 VkImage srcImage; 6326 VkImageLayout srcImageLayout; 6327 VkImage dstImage; 6328 VkImageLayout dstImageLayout; 6329 uint32_t regionCount; 6330 const VkImageCopy2KHR* pRegions; 6331 } VkCopyImageInfo2KHR; 6332 6333 typedef struct VkBufferImageCopy2KHR { 6334 VkStructureType sType; 6335 const void* pNext; 6336 VkDeviceSize bufferOffset; 6337 uint32_t bufferRowLength; 6338 uint32_t bufferImageHeight; 6339 VkImageSubresourceLayers imageSubresource; 6340 VkOffset3D imageOffset; 6341 VkExtent3D imageExtent; 6342 } VkBufferImageCopy2KHR; 6343 6344 typedef struct VkCopyBufferToImageInfo2KHR { 6345 VkStructureType sType; 6346 const void* pNext; 6347 VkBuffer srcBuffer; 6348 VkImage dstImage; 6349 VkImageLayout dstImageLayout; 6350 uint32_t regionCount; 6351 const VkBufferImageCopy2KHR* pRegions; 6352 } VkCopyBufferToImageInfo2KHR; 6353 6354 typedef struct VkCopyImageToBufferInfo2KHR { 6355 VkStructureType sType; 6356 const void* pNext; 6357 VkImage srcImage; 6358 VkImageLayout srcImageLayout; 6359 VkBuffer dstBuffer; 6360 uint32_t regionCount; 6361 const VkBufferImageCopy2KHR* pRegions; 6362 } VkCopyImageToBufferInfo2KHR; 6363 6364 typedef struct VkImageBlit2KHR { 6365 VkStructureType sType; 6366 const void* pNext; 6367 VkImageSubresourceLayers srcSubresource; 6368 VkOffset3D srcOffsets[2]; 6369 VkImageSubresourceLayers dstSubresource; 6370 VkOffset3D dstOffsets[2]; 6371 } VkImageBlit2KHR; 6372 6373 typedef struct VkBlitImageInfo2KHR { 6374 VkStructureType sType; 6375 const void* pNext; 6376 VkImage srcImage; 6377 VkImageLayout srcImageLayout; 6378 VkImage dstImage; 6379 VkImageLayout dstImageLayout; 6380 uint32_t regionCount; 6381 const VkImageBlit2KHR* pRegions; 6382 VkFilter filter; 6383 } VkBlitImageInfo2KHR; 6384 6385 typedef struct VkImageResolve2KHR { 6386 VkStructureType sType; 6387 const void* pNext; 6388 VkImageSubresourceLayers srcSubresource; 6389 VkOffset3D srcOffset; 6390 VkImageSubresourceLayers dstSubresource; 6391 VkOffset3D dstOffset; 6392 VkExtent3D extent; 6393 } VkImageResolve2KHR; 6394 6395 typedef struct VkResolveImageInfo2KHR { 6396 VkStructureType sType; 6397 const void* pNext; 6398 VkImage srcImage; 6399 VkImageLayout srcImageLayout; 6400 VkImage dstImage; 6401 VkImageLayout dstImageLayout; 6402 uint32_t regionCount; 6403 const VkImageResolve2KHR* pRegions; 6404 } VkResolveImageInfo2KHR; 6405 6406 typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer2KHR)(VkCommandBuffer commandBuffer, const VkCopyBufferInfo2KHR* pCopyBufferInfo); 6407 typedef void (VKAPI_PTR *PFN_vkCmdCopyImage2KHR)(VkCommandBuffer commandBuffer, const VkCopyImageInfo2KHR* pCopyImageInfo); 6408 typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage2KHR)(VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2KHR* pCopyBufferToImageInfo); 6409 typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer2KHR)(VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2KHR* pCopyImageToBufferInfo); 6410 typedef void (VKAPI_PTR *PFN_vkCmdBlitImage2KHR)(VkCommandBuffer commandBuffer, const VkBlitImageInfo2KHR* pBlitImageInfo); 6411 typedef void (VKAPI_PTR *PFN_vkCmdResolveImage2KHR)(VkCommandBuffer commandBuffer, const VkResolveImageInfo2KHR* pResolveImageInfo); 6412 6413 #ifndef VK_NO_PROTOTYPES 6414 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer2KHR( 6415 VkCommandBuffer commandBuffer, 6416 const VkCopyBufferInfo2KHR* pCopyBufferInfo); 6417 6418 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage2KHR( 6419 VkCommandBuffer commandBuffer, 6420 const VkCopyImageInfo2KHR* pCopyImageInfo); 6421 6422 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage2KHR( 6423 VkCommandBuffer commandBuffer, 6424 const VkCopyBufferToImageInfo2KHR* pCopyBufferToImageInfo); 6425 6426 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer2KHR( 6427 VkCommandBuffer commandBuffer, 6428 const VkCopyImageToBufferInfo2KHR* pCopyImageToBufferInfo); 6429 6430 VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage2KHR( 6431 VkCommandBuffer commandBuffer, 6432 const VkBlitImageInfo2KHR* pBlitImageInfo); 6433 6434 VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage2KHR( 6435 VkCommandBuffer commandBuffer, 6436 const VkResolveImageInfo2KHR* pResolveImageInfo); 6437 #endif 6438 6439 6440 #define VK_EXT_depth_range_unrestricted 1 6441 #define VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION 1 6442 #define VK_EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME "VK_EXT_depth_range_unrestricted" 6443 6444 6445 #define VK_EXT_texture_compression_astc_hdr 1 6446 #define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION 1 6447 #define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME "VK_EXT_texture_compression_astc_hdr" 6448 typedef struct VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT { 6449 VkStructureType sType; 6450 void* pNext; 6451 VkBool32 textureCompressionASTC_HDR; 6452 } VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT; 6453 6454 6455 6456 #define VK_EXT_astc_decode_mode 1 6457 #define VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION 1 6458 #define VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME "VK_EXT_astc_decode_mode" 6459 typedef struct VkImageViewASTCDecodeModeEXT { 6460 VkStructureType sType; 6461 const void* pNext; 6462 VkFormat decodeMode; 6463 } VkImageViewASTCDecodeModeEXT; 6464 6465 typedef struct VkPhysicalDeviceASTCDecodeFeaturesEXT { 6466 VkStructureType sType; 6467 void* pNext; 6468 VkBool32 decodeModeSharedExponent; 6469 } VkPhysicalDeviceASTCDecodeFeaturesEXT; 6470 6471 6472 6473 #define VK_EXT_direct_mode_display 1 6474 #define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1 6475 #define VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME "VK_EXT_direct_mode_display" 6476 typedef VkResult (VKAPI_PTR *PFN_vkReleaseDisplayEXT)(VkPhysicalDevice physicalDevice, VkDisplayKHR display); 6477 6478 #ifndef VK_NO_PROTOTYPES 6479 VKAPI_ATTR VkResult VKAPI_CALL vkReleaseDisplayEXT( 6480 VkPhysicalDevice physicalDevice, 6481 VkDisplayKHR display); 6482 #endif 6483 6484 6485 #define VK_EXT_display_surface_counter 1 6486 #define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1 6487 #define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter" 6488 6489 typedef enum VkSurfaceCounterFlagBitsEXT { 6490 VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 0x00000001, 6491 VK_SURFACE_COUNTER_VBLANK_EXT = VK_SURFACE_COUNTER_VBLANK_BIT_EXT, 6492 VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF 6493 } VkSurfaceCounterFlagBitsEXT; 6494 typedef VkFlags VkSurfaceCounterFlagsEXT; 6495 typedef struct VkSurfaceCapabilities2EXT { 6496 VkStructureType sType; 6497 void* pNext; 6498 uint32_t minImageCount; 6499 uint32_t maxImageCount; 6500 VkExtent2D currentExtent; 6501 VkExtent2D minImageExtent; 6502 VkExtent2D maxImageExtent; 6503 uint32_t maxImageArrayLayers; 6504 VkSurfaceTransformFlagsKHR supportedTransforms; 6505 VkSurfaceTransformFlagBitsKHR currentTransform; 6506 VkCompositeAlphaFlagsKHR supportedCompositeAlpha; 6507 VkImageUsageFlags supportedUsageFlags; 6508 VkSurfaceCounterFlagsEXT supportedSurfaceCounters; 6509 } VkSurfaceCapabilities2EXT; 6510 6511 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities); 6512 6513 #ifndef VK_NO_PROTOTYPES 6514 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2EXT( 6515 VkPhysicalDevice physicalDevice, 6516 VkSurfaceKHR surface, 6517 VkSurfaceCapabilities2EXT* pSurfaceCapabilities); 6518 #endif 6519 6520 6521 #define VK_EXT_display_control 1 6522 #define VK_EXT_DISPLAY_CONTROL_SPEC_VERSION 1 6523 #define VK_EXT_DISPLAY_CONTROL_EXTENSION_NAME "VK_EXT_display_control" 6524 6525 typedef enum VkDisplayPowerStateEXT { 6526 VK_DISPLAY_POWER_STATE_OFF_EXT = 0, 6527 VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1, 6528 VK_DISPLAY_POWER_STATE_ON_EXT = 2, 6529 VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 0x7FFFFFFF 6530 } VkDisplayPowerStateEXT; 6531 6532 typedef enum VkDeviceEventTypeEXT { 6533 VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0, 6534 VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF 6535 } VkDeviceEventTypeEXT; 6536 6537 typedef enum VkDisplayEventTypeEXT { 6538 VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0, 6539 VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF 6540 } VkDisplayEventTypeEXT; 6541 typedef struct VkDisplayPowerInfoEXT { 6542 VkStructureType sType; 6543 const void* pNext; 6544 VkDisplayPowerStateEXT powerState; 6545 } VkDisplayPowerInfoEXT; 6546 6547 typedef struct VkDeviceEventInfoEXT { 6548 VkStructureType sType; 6549 const void* pNext; 6550 VkDeviceEventTypeEXT deviceEvent; 6551 } VkDeviceEventInfoEXT; 6552 6553 typedef struct VkDisplayEventInfoEXT { 6554 VkStructureType sType; 6555 const void* pNext; 6556 VkDisplayEventTypeEXT displayEvent; 6557 } VkDisplayEventInfoEXT; 6558 6559 typedef struct VkSwapchainCounterCreateInfoEXT { 6560 VkStructureType sType; 6561 const void* pNext; 6562 VkSurfaceCounterFlagsEXT surfaceCounters; 6563 } VkSwapchainCounterCreateInfoEXT; 6564 6565 typedef VkResult (VKAPI_PTR *PFN_vkDisplayPowerControlEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo); 6566 typedef VkResult (VKAPI_PTR *PFN_vkRegisterDeviceEventEXT)(VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence); 6567 typedef VkResult (VKAPI_PTR *PFN_vkRegisterDisplayEventEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence); 6568 typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainCounterEXT)(VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue); 6569 6570 #ifndef VK_NO_PROTOTYPES 6571 VKAPI_ATTR VkResult VKAPI_CALL vkDisplayPowerControlEXT( 6572 VkDevice device, 6573 VkDisplayKHR display, 6574 const VkDisplayPowerInfoEXT* pDisplayPowerInfo); 6575 6576 VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDeviceEventEXT( 6577 VkDevice device, 6578 const VkDeviceEventInfoEXT* pDeviceEventInfo, 6579 const VkAllocationCallbacks* pAllocator, 6580 VkFence* pFence); 6581 6582 VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDisplayEventEXT( 6583 VkDevice device, 6584 VkDisplayKHR display, 6585 const VkDisplayEventInfoEXT* pDisplayEventInfo, 6586 const VkAllocationCallbacks* pAllocator, 6587 VkFence* pFence); 6588 6589 VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainCounterEXT( 6590 VkDevice device, 6591 VkSwapchainKHR swapchain, 6592 VkSurfaceCounterFlagBitsEXT counter, 6593 uint64_t* pCounterValue); 6594 #endif 6595 6596 6597 #define VK_EXT_discard_rectangles 1 6598 #define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 1 6599 #define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles" 6600 6601 typedef enum VkDiscardRectangleModeEXT { 6602 VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0, 6603 VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1, 6604 VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 0x7FFFFFFF 6605 } VkDiscardRectangleModeEXT; 6606 typedef VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT; 6607 typedef struct VkPhysicalDeviceDiscardRectanglePropertiesEXT { 6608 VkStructureType sType; 6609 void* pNext; 6610 uint32_t maxDiscardRectangles; 6611 } VkPhysicalDeviceDiscardRectanglePropertiesEXT; 6612 6613 typedef struct VkPipelineDiscardRectangleStateCreateInfoEXT { 6614 VkStructureType sType; 6615 const void* pNext; 6616 VkPipelineDiscardRectangleStateCreateFlagsEXT flags; 6617 VkDiscardRectangleModeEXT discardRectangleMode; 6618 uint32_t discardRectangleCount; 6619 const VkRect2D* pDiscardRectangles; 6620 } VkPipelineDiscardRectangleStateCreateInfoEXT; 6621 6622 typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEXT)(VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles); 6623 6624 #ifndef VK_NO_PROTOTYPES 6625 VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEXT( 6626 VkCommandBuffer commandBuffer, 6627 uint32_t firstDiscardRectangle, 6628 uint32_t discardRectangleCount, 6629 const VkRect2D* pDiscardRectangles); 6630 #endif 6631 6632 6633 #define VK_EXT_conservative_rasterization 1 6634 #define VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION 1 6635 #define VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME "VK_EXT_conservative_rasterization" 6636 6637 typedef enum VkConservativeRasterizationModeEXT { 6638 VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0, 6639 VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1, 6640 VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2, 6641 VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF 6642 } VkConservativeRasterizationModeEXT; 6643 typedef VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT; 6644 typedef struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT { 6645 VkStructureType sType; 6646 void* pNext; 6647 float primitiveOverestimationSize; 6648 float maxExtraPrimitiveOverestimationSize; 6649 float extraPrimitiveOverestimationSizeGranularity; 6650 VkBool32 primitiveUnderestimation; 6651 VkBool32 conservativePointAndLineRasterization; 6652 VkBool32 degenerateTrianglesRasterized; 6653 VkBool32 degenerateLinesRasterized; 6654 VkBool32 fullyCoveredFragmentShaderInputVariable; 6655 VkBool32 conservativeRasterizationPostDepthCoverage; 6656 } VkPhysicalDeviceConservativeRasterizationPropertiesEXT; 6657 6658 typedef struct VkPipelineRasterizationConservativeStateCreateInfoEXT { 6659 VkStructureType sType; 6660 const void* pNext; 6661 VkPipelineRasterizationConservativeStateCreateFlagsEXT flags; 6662 VkConservativeRasterizationModeEXT conservativeRasterizationMode; 6663 float extraPrimitiveOverestimationSize; 6664 } VkPipelineRasterizationConservativeStateCreateInfoEXT; 6665 6666 6667 6668 #define VK_EXT_depth_clip_enable 1 6669 #define VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION 1 6670 #define VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME "VK_EXT_depth_clip_enable" 6671 typedef VkFlags VkPipelineRasterizationDepthClipStateCreateFlagsEXT; 6672 typedef struct VkPhysicalDeviceDepthClipEnableFeaturesEXT { 6673 VkStructureType sType; 6674 void* pNext; 6675 VkBool32 depthClipEnable; 6676 } VkPhysicalDeviceDepthClipEnableFeaturesEXT; 6677 6678 typedef struct VkPipelineRasterizationDepthClipStateCreateInfoEXT { 6679 VkStructureType sType; 6680 const void* pNext; 6681 VkPipelineRasterizationDepthClipStateCreateFlagsEXT flags; 6682 VkBool32 depthClipEnable; 6683 } VkPipelineRasterizationDepthClipStateCreateInfoEXT; 6684 6685 6686 6687 #define VK_EXT_swapchain_colorspace 1 6688 #define VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION 4 6689 #define VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace" 6690 6691 6692 #define VK_EXT_hdr_metadata 1 6693 #define VK_EXT_HDR_METADATA_SPEC_VERSION 2 6694 #define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata" 6695 typedef struct VkXYColorEXT { 6696 float x; 6697 float y; 6698 } VkXYColorEXT; 6699 6700 typedef struct VkHdrMetadataEXT { 6701 VkStructureType sType; 6702 const void* pNext; 6703 VkXYColorEXT displayPrimaryRed; 6704 VkXYColorEXT displayPrimaryGreen; 6705 VkXYColorEXT displayPrimaryBlue; 6706 VkXYColorEXT whitePoint; 6707 float maxLuminance; 6708 float minLuminance; 6709 float maxContentLightLevel; 6710 float maxFrameAverageLightLevel; 6711 } VkHdrMetadataEXT; 6712 6713 typedef void (VKAPI_PTR *PFN_vkSetHdrMetadataEXT)(VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata); 6714 6715 #ifndef VK_NO_PROTOTYPES 6716 VKAPI_ATTR void VKAPI_CALL vkSetHdrMetadataEXT( 6717 VkDevice device, 6718 uint32_t swapchainCount, 6719 const VkSwapchainKHR* pSwapchains, 6720 const VkHdrMetadataEXT* pMetadata); 6721 #endif 6722 6723 6724 #define VK_EXT_external_memory_dma_buf 1 6725 #define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION 1 6726 #define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME "VK_EXT_external_memory_dma_buf" 6727 6728 6729 #define VK_EXT_queue_family_foreign 1 6730 #define VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION 1 6731 #define VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME "VK_EXT_queue_family_foreign" 6732 #define VK_QUEUE_FAMILY_FOREIGN_EXT (~2U) 6733 6734 6735 #define VK_EXT_debug_utils 1 6736 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugUtilsMessengerEXT) 6737 #define VK_EXT_DEBUG_UTILS_SPEC_VERSION 2 6738 #define VK_EXT_DEBUG_UTILS_EXTENSION_NAME "VK_EXT_debug_utils" 6739 typedef VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT; 6740 6741 typedef enum VkDebugUtilsMessageSeverityFlagBitsEXT { 6742 VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001, 6743 VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0x00000010, 6744 VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0x00000100, 6745 VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000, 6746 VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF 6747 } VkDebugUtilsMessageSeverityFlagBitsEXT; 6748 6749 typedef enum VkDebugUtilsMessageTypeFlagBitsEXT { 6750 VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001, 6751 VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0x00000002, 6752 VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0x00000004, 6753 VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF 6754 } VkDebugUtilsMessageTypeFlagBitsEXT; 6755 typedef VkFlags VkDebugUtilsMessageTypeFlagsEXT; 6756 typedef VkFlags VkDebugUtilsMessageSeverityFlagsEXT; 6757 typedef VkFlags VkDebugUtilsMessengerCreateFlagsEXT; 6758 typedef struct VkDebugUtilsLabelEXT { 6759 VkStructureType sType; 6760 const void* pNext; 6761 const char* pLabelName; 6762 float color[4]; 6763 } VkDebugUtilsLabelEXT; 6764 6765 typedef struct VkDebugUtilsObjectNameInfoEXT { 6766 VkStructureType sType; 6767 const void* pNext; 6768 VkObjectType objectType; 6769 uint64_t objectHandle; 6770 const char* pObjectName; 6771 } VkDebugUtilsObjectNameInfoEXT; 6772 6773 typedef struct VkDebugUtilsMessengerCallbackDataEXT { 6774 VkStructureType sType; 6775 const void* pNext; 6776 VkDebugUtilsMessengerCallbackDataFlagsEXT flags; 6777 const char* pMessageIdName; 6778 int32_t messageIdNumber; 6779 const char* pMessage; 6780 uint32_t queueLabelCount; 6781 const VkDebugUtilsLabelEXT* pQueueLabels; 6782 uint32_t cmdBufLabelCount; 6783 const VkDebugUtilsLabelEXT* pCmdBufLabels; 6784 uint32_t objectCount; 6785 const VkDebugUtilsObjectNameInfoEXT* pObjects; 6786 } VkDebugUtilsMessengerCallbackDataEXT; 6787 6788 typedef VkBool32 (VKAPI_PTR *PFN_vkDebugUtilsMessengerCallbackEXT)( 6789 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, 6790 VkDebugUtilsMessageTypeFlagsEXT messageTypes, 6791 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData, 6792 void* pUserData); 6793 6794 typedef struct VkDebugUtilsMessengerCreateInfoEXT { 6795 VkStructureType sType; 6796 const void* pNext; 6797 VkDebugUtilsMessengerCreateFlagsEXT flags; 6798 VkDebugUtilsMessageSeverityFlagsEXT messageSeverity; 6799 VkDebugUtilsMessageTypeFlagsEXT messageType; 6800 PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback; 6801 void* pUserData; 6802 } VkDebugUtilsMessengerCreateInfoEXT; 6803 6804 typedef struct VkDebugUtilsObjectTagInfoEXT { 6805 VkStructureType sType; 6806 const void* pNext; 6807 VkObjectType objectType; 6808 uint64_t objectHandle; 6809 uint64_t tagName; 6810 size_t tagSize; 6811 const void* pTag; 6812 } VkDebugUtilsObjectTagInfoEXT; 6813 6814 typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectNameEXT)(VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo); 6815 typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectTagEXT)(VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo); 6816 typedef void (VKAPI_PTR *PFN_vkQueueBeginDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo); 6817 typedef void (VKAPI_PTR *PFN_vkQueueEndDebugUtilsLabelEXT)(VkQueue queue); 6818 typedef void (VKAPI_PTR *PFN_vkQueueInsertDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo); 6819 typedef void (VKAPI_PTR *PFN_vkCmdBeginDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo); 6820 typedef void (VKAPI_PTR *PFN_vkCmdEndDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer); 6821 typedef void (VKAPI_PTR *PFN_vkCmdInsertDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo); 6822 typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugUtilsMessengerEXT)(VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugUtilsMessengerEXT* pMessenger); 6823 typedef void (VKAPI_PTR *PFN_vkDestroyDebugUtilsMessengerEXT)(VkInstance instance, VkDebugUtilsMessengerEXT messenger, const VkAllocationCallbacks* pAllocator); 6824 typedef void (VKAPI_PTR *PFN_vkSubmitDebugUtilsMessageEXT)(VkInstance instance, VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData); 6825 6826 #ifndef VK_NO_PROTOTYPES 6827 VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectNameEXT( 6828 VkDevice device, 6829 const VkDebugUtilsObjectNameInfoEXT* pNameInfo); 6830 6831 VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectTagEXT( 6832 VkDevice device, 6833 const VkDebugUtilsObjectTagInfoEXT* pTagInfo); 6834 6835 VKAPI_ATTR void VKAPI_CALL vkQueueBeginDebugUtilsLabelEXT( 6836 VkQueue queue, 6837 const VkDebugUtilsLabelEXT* pLabelInfo); 6838 6839 VKAPI_ATTR void VKAPI_CALL vkQueueEndDebugUtilsLabelEXT( 6840 VkQueue queue); 6841 6842 VKAPI_ATTR void VKAPI_CALL vkQueueInsertDebugUtilsLabelEXT( 6843 VkQueue queue, 6844 const VkDebugUtilsLabelEXT* pLabelInfo); 6845 6846 VKAPI_ATTR void VKAPI_CALL vkCmdBeginDebugUtilsLabelEXT( 6847 VkCommandBuffer commandBuffer, 6848 const VkDebugUtilsLabelEXT* pLabelInfo); 6849 6850 VKAPI_ATTR void VKAPI_CALL vkCmdEndDebugUtilsLabelEXT( 6851 VkCommandBuffer commandBuffer); 6852 6853 VKAPI_ATTR void VKAPI_CALL vkCmdInsertDebugUtilsLabelEXT( 6854 VkCommandBuffer commandBuffer, 6855 const VkDebugUtilsLabelEXT* pLabelInfo); 6856 6857 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugUtilsMessengerEXT( 6858 VkInstance instance, 6859 const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, 6860 const VkAllocationCallbacks* pAllocator, 6861 VkDebugUtilsMessengerEXT* pMessenger); 6862 6863 VKAPI_ATTR void VKAPI_CALL vkDestroyDebugUtilsMessengerEXT( 6864 VkInstance instance, 6865 VkDebugUtilsMessengerEXT messenger, 6866 const VkAllocationCallbacks* pAllocator); 6867 6868 VKAPI_ATTR void VKAPI_CALL vkSubmitDebugUtilsMessageEXT( 6869 VkInstance instance, 6870 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, 6871 VkDebugUtilsMessageTypeFlagsEXT messageTypes, 6872 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData); 6873 #endif 6874 6875 6876 #define VK_EXT_shader_stencil_export 1 6877 #define VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION 1 6878 #define VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME "VK_EXT_shader_stencil_export" 6879 6880 6881 #define VK_EXT_sample_locations 1 6882 #define VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION 1 6883 #define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations" 6884 typedef struct VkSampleLocationEXT { 6885 float x; 6886 float y; 6887 } VkSampleLocationEXT; 6888 6889 typedef struct VkSampleLocationsInfoEXT { 6890 VkStructureType sType; 6891 const void* pNext; 6892 VkSampleCountFlagBits sampleLocationsPerPixel; 6893 VkExtent2D sampleLocationGridSize; 6894 uint32_t sampleLocationsCount; 6895 const VkSampleLocationEXT* pSampleLocations; 6896 } VkSampleLocationsInfoEXT; 6897 6898 typedef struct VkAttachmentSampleLocationsEXT { 6899 uint32_t attachmentIndex; 6900 VkSampleLocationsInfoEXT sampleLocationsInfo; 6901 } VkAttachmentSampleLocationsEXT; 6902 6903 typedef struct VkSubpassSampleLocationsEXT { 6904 uint32_t subpassIndex; 6905 VkSampleLocationsInfoEXT sampleLocationsInfo; 6906 } VkSubpassSampleLocationsEXT; 6907 6908 typedef struct VkRenderPassSampleLocationsBeginInfoEXT { 6909 VkStructureType sType; 6910 const void* pNext; 6911 uint32_t attachmentInitialSampleLocationsCount; 6912 const VkAttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations; 6913 uint32_t postSubpassSampleLocationsCount; 6914 const VkSubpassSampleLocationsEXT* pPostSubpassSampleLocations; 6915 } VkRenderPassSampleLocationsBeginInfoEXT; 6916 6917 typedef struct VkPipelineSampleLocationsStateCreateInfoEXT { 6918 VkStructureType sType; 6919 const void* pNext; 6920 VkBool32 sampleLocationsEnable; 6921 VkSampleLocationsInfoEXT sampleLocationsInfo; 6922 } VkPipelineSampleLocationsStateCreateInfoEXT; 6923 6924 typedef struct VkPhysicalDeviceSampleLocationsPropertiesEXT { 6925 VkStructureType sType; 6926 void* pNext; 6927 VkSampleCountFlags sampleLocationSampleCounts; 6928 VkExtent2D maxSampleLocationGridSize; 6929 float sampleLocationCoordinateRange[2]; 6930 uint32_t sampleLocationSubPixelBits; 6931 VkBool32 variableSampleLocations; 6932 } VkPhysicalDeviceSampleLocationsPropertiesEXT; 6933 6934 typedef struct VkMultisamplePropertiesEXT { 6935 VkStructureType sType; 6936 void* pNext; 6937 VkExtent2D maxSampleLocationGridSize; 6938 } VkMultisamplePropertiesEXT; 6939 6940 typedef void (VKAPI_PTR *PFN_vkCmdSetSampleLocationsEXT)(VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo); 6941 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)(VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties); 6942 6943 #ifndef VK_NO_PROTOTYPES 6944 VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleLocationsEXT( 6945 VkCommandBuffer commandBuffer, 6946 const VkSampleLocationsInfoEXT* pSampleLocationsInfo); 6947 6948 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMultisamplePropertiesEXT( 6949 VkPhysicalDevice physicalDevice, 6950 VkSampleCountFlagBits samples, 6951 VkMultisamplePropertiesEXT* pMultisampleProperties); 6952 #endif 6953 6954 6955 #define VK_EXT_blend_operation_advanced 1 6956 #define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2 6957 #define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced" 6958 6959 typedef enum VkBlendOverlapEXT { 6960 VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0, 6961 VK_BLEND_OVERLAP_DISJOINT_EXT = 1, 6962 VK_BLEND_OVERLAP_CONJOINT_EXT = 2, 6963 VK_BLEND_OVERLAP_MAX_ENUM_EXT = 0x7FFFFFFF 6964 } VkBlendOverlapEXT; 6965 typedef struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT { 6966 VkStructureType sType; 6967 void* pNext; 6968 VkBool32 advancedBlendCoherentOperations; 6969 } VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT; 6970 6971 typedef struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT { 6972 VkStructureType sType; 6973 void* pNext; 6974 uint32_t advancedBlendMaxColorAttachments; 6975 VkBool32 advancedBlendIndependentBlend; 6976 VkBool32 advancedBlendNonPremultipliedSrcColor; 6977 VkBool32 advancedBlendNonPremultipliedDstColor; 6978 VkBool32 advancedBlendCorrelatedOverlap; 6979 VkBool32 advancedBlendAllOperations; 6980 } VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT; 6981 6982 typedef struct VkPipelineColorBlendAdvancedStateCreateInfoEXT { 6983 VkStructureType sType; 6984 const void* pNext; 6985 VkBool32 srcPremultiplied; 6986 VkBool32 dstPremultiplied; 6987 VkBlendOverlapEXT blendOverlap; 6988 } VkPipelineColorBlendAdvancedStateCreateInfoEXT; 6989 6990 6991 6992 #define VK_EXT_post_depth_coverage 1 6993 #define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1 6994 #define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage" 6995 6996 6997 #define VK_EXT_image_drm_format_modifier 1 6998 #define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION 2 6999 #define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME "VK_EXT_image_drm_format_modifier" 7000 typedef VkFlags64 VkFormatFeatureFlags2KHR; 7001 7002 // Flag bits for VkFormatFeatureFlagBits2KHR 7003 typedef VkFlags64 VkFormatFeatureFlagBits2KHR; 7004 static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR = 0x00000001ULL; 7005 static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT_KHR = 0x00000002ULL; 7006 static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT_KHR = 0x00000004ULL; 7007 static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR = 0x00000008ULL; 7008 static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT_KHR = 0x00000010ULL; 7009 static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT_KHR = 0x00000020ULL; 7010 static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT_KHR = 0x00000040ULL; 7011 static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT_KHR = 0x00000080ULL; 7012 static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT_KHR = 0x00000100ULL; 7013 static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT_KHR = 0x00000200ULL; 7014 static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR = 0x00000400ULL; 7015 static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_BLIT_DST_BIT_KHR = 0x00000800ULL; 7016 static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT_KHR = 0x00001000ULL; 7017 static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 0x00002000ULL; 7018 static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT_KHR = 0x00004000ULL; 7019 static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT_KHR = 0x00008000ULL; 7020 static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR = 0x00010000ULL; 7021 static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = 0x00020000ULL; 7022 static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = 0x00040000ULL; 7023 static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = 0x00080000ULL; 7024 static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = 0x00100000ULL; 7025 static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 0x00200000ULL; 7026 static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_DISJOINT_BIT_KHR = 0x00400000ULL; 7027 static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT_KHR = 0x00800000ULL; 7028 static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR = 0x80000000ULL; 7029 static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR = 0x100000000ULL; 7030 static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR = 0x200000000ULL; 7031 static const VkFormatFeatureFlagBits2KHR VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x40000000ULL; 7032 7033 typedef struct VkDrmFormatModifierPropertiesEXT { 7034 uint64_t drmFormatModifier; 7035 uint32_t drmFormatModifierPlaneCount; 7036 VkFormatFeatureFlags drmFormatModifierTilingFeatures; 7037 } VkDrmFormatModifierPropertiesEXT; 7038 7039 typedef struct VkDrmFormatModifierPropertiesListEXT { 7040 VkStructureType sType; 7041 void* pNext; 7042 uint32_t drmFormatModifierCount; 7043 VkDrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties; 7044 } VkDrmFormatModifierPropertiesListEXT; 7045 7046 typedef struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT { 7047 VkStructureType sType; 7048 const void* pNext; 7049 uint64_t drmFormatModifier; 7050 VkSharingMode sharingMode; 7051 uint32_t queueFamilyIndexCount; 7052 const uint32_t* pQueueFamilyIndices; 7053 } VkPhysicalDeviceImageDrmFormatModifierInfoEXT; 7054 7055 typedef struct VkImageDrmFormatModifierListCreateInfoEXT { 7056 VkStructureType sType; 7057 const void* pNext; 7058 uint32_t drmFormatModifierCount; 7059 const uint64_t* pDrmFormatModifiers; 7060 } VkImageDrmFormatModifierListCreateInfoEXT; 7061 7062 typedef struct VkImageDrmFormatModifierExplicitCreateInfoEXT { 7063 VkStructureType sType; 7064 const void* pNext; 7065 uint64_t drmFormatModifier; 7066 uint32_t drmFormatModifierPlaneCount; 7067 const VkSubresourceLayout* pPlaneLayouts; 7068 } VkImageDrmFormatModifierExplicitCreateInfoEXT; 7069 7070 typedef struct VkImageDrmFormatModifierPropertiesEXT { 7071 VkStructureType sType; 7072 void* pNext; 7073 uint64_t drmFormatModifier; 7074 } VkImageDrmFormatModifierPropertiesEXT; 7075 7076 typedef struct VkDrmFormatModifierProperties2EXT { 7077 uint64_t drmFormatModifier; 7078 uint32_t drmFormatModifierPlaneCount; 7079 VkFormatFeatureFlags2KHR drmFormatModifierTilingFeatures; 7080 } VkDrmFormatModifierProperties2EXT; 7081 7082 typedef struct VkDrmFormatModifierPropertiesList2EXT { 7083 VkStructureType sType; 7084 void* pNext; 7085 uint32_t drmFormatModifierCount; 7086 VkDrmFormatModifierProperties2EXT* pDrmFormatModifierProperties; 7087 } VkDrmFormatModifierPropertiesList2EXT; 7088 7089 typedef VkResult (VKAPI_PTR *PFN_vkGetImageDrmFormatModifierPropertiesEXT)(VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties); 7090 7091 #ifndef VK_NO_PROTOTYPES 7092 VKAPI_ATTR VkResult VKAPI_CALL vkGetImageDrmFormatModifierPropertiesEXT( 7093 VkDevice device, 7094 VkImage image, 7095 VkImageDrmFormatModifierPropertiesEXT* pProperties); 7096 #endif 7097 7098 7099 #define VK_EXT_filter_cubic 1 7100 #define VK_EXT_FILTER_CUBIC_SPEC_VERSION 3 7101 #define VK_EXT_FILTER_CUBIC_EXTENSION_NAME "VK_EXT_filter_cubic" 7102 typedef struct VkPhysicalDeviceImageViewImageFormatInfoEXT { 7103 VkStructureType sType; 7104 void* pNext; 7105 VkImageViewType imageViewType; 7106 } VkPhysicalDeviceImageViewImageFormatInfoEXT; 7107 7108 typedef struct VkFilterCubicImageViewImageFormatPropertiesEXT { 7109 VkStructureType sType; 7110 void* pNext; 7111 VkBool32 filterCubic; 7112 VkBool32 filterCubicMinmax; 7113 } VkFilterCubicImageViewImageFormatPropertiesEXT; 7114 7115 7116 7117 #define VK_EXT_global_priority 1 7118 #define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 2 7119 #define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority" 7120 7121 typedef enum VkQueueGlobalPriorityEXT { 7122 VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128, 7123 VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256, 7124 VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512, 7125 VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024, 7126 VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_EXT = 0x7FFFFFFF 7127 } VkQueueGlobalPriorityEXT; 7128 typedef struct VkDeviceQueueGlobalPriorityCreateInfoEXT { 7129 VkStructureType sType; 7130 const void* pNext; 7131 VkQueueGlobalPriorityEXT globalPriority; 7132 } VkDeviceQueueGlobalPriorityCreateInfoEXT; 7133 7134 7135 7136 #define VK_EXT_external_memory_host 1 7137 #define VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION 1 7138 #define VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME "VK_EXT_external_memory_host" 7139 typedef struct VkImportMemoryHostPointerInfoEXT { 7140 VkStructureType sType; 7141 const void* pNext; 7142 VkExternalMemoryHandleTypeFlagBits handleType; 7143 void* pHostPointer; 7144 } VkImportMemoryHostPointerInfoEXT; 7145 7146 typedef struct VkMemoryHostPointerPropertiesEXT { 7147 VkStructureType sType; 7148 void* pNext; 7149 uint32_t memoryTypeBits; 7150 } VkMemoryHostPointerPropertiesEXT; 7151 7152 typedef struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT { 7153 VkStructureType sType; 7154 void* pNext; 7155 VkDeviceSize minImportedHostPointerAlignment; 7156 } VkPhysicalDeviceExternalMemoryHostPropertiesEXT; 7157 7158 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryHostPointerPropertiesEXT)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties); 7159 7160 #ifndef VK_NO_PROTOTYPES 7161 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryHostPointerPropertiesEXT( 7162 VkDevice device, 7163 VkExternalMemoryHandleTypeFlagBits handleType, 7164 const void* pHostPointer, 7165 VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties); 7166 #endif 7167 7168 7169 #define VK_EXT_calibrated_timestamps 1 7170 #define VK_EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION 2 7171 #define VK_EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME "VK_EXT_calibrated_timestamps" 7172 7173 typedef enum VkTimeDomainEXT { 7174 VK_TIME_DOMAIN_DEVICE_EXT = 0, 7175 VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1, 7176 VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2, 7177 VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3, 7178 VK_TIME_DOMAIN_MAX_ENUM_EXT = 0x7FFFFFFF 7179 } VkTimeDomainEXT; 7180 typedef struct VkCalibratedTimestampInfoEXT { 7181 VkStructureType sType; 7182 const void* pNext; 7183 VkTimeDomainEXT timeDomain; 7184 } VkCalibratedTimestampInfoEXT; 7185 7186 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainEXT* pTimeDomains); 7187 typedef VkResult (VKAPI_PTR *PFN_vkGetCalibratedTimestampsEXT)(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation); 7188 7189 #ifndef VK_NO_PROTOTYPES 7190 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( 7191 VkPhysicalDevice physicalDevice, 7192 uint32_t* pTimeDomainCount, 7193 VkTimeDomainEXT* pTimeDomains); 7194 7195 VKAPI_ATTR VkResult VKAPI_CALL vkGetCalibratedTimestampsEXT( 7196 VkDevice device, 7197 uint32_t timestampCount, 7198 const VkCalibratedTimestampInfoEXT* pTimestampInfos, 7199 uint64_t* pTimestamps, 7200 uint64_t* pMaxDeviation); 7201 #endif 7202 7203 7204 #define VK_EXT_vertex_attribute_divisor 1 7205 #define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 3 7206 #define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_EXT_vertex_attribute_divisor" 7207 typedef struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT { 7208 VkStructureType sType; 7209 void* pNext; 7210 uint32_t maxVertexAttribDivisor; 7211 } VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT; 7212 7213 typedef struct VkVertexInputBindingDivisorDescriptionEXT { 7214 uint32_t binding; 7215 uint32_t divisor; 7216 } VkVertexInputBindingDivisorDescriptionEXT; 7217 7218 typedef struct VkPipelineVertexInputDivisorStateCreateInfoEXT { 7219 VkStructureType sType; 7220 const void* pNext; 7221 uint32_t vertexBindingDivisorCount; 7222 const VkVertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors; 7223 } VkPipelineVertexInputDivisorStateCreateInfoEXT; 7224 7225 typedef struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT { 7226 VkStructureType sType; 7227 void* pNext; 7228 VkBool32 vertexAttributeInstanceRateDivisor; 7229 VkBool32 vertexAttributeInstanceRateZeroDivisor; 7230 } VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT; 7231 7232 7233 7234 #define VK_EXT_pci_bus_info 1 7235 #define VK_EXT_PCI_BUS_INFO_SPEC_VERSION 2 7236 #define VK_EXT_PCI_BUS_INFO_EXTENSION_NAME "VK_EXT_pci_bus_info" 7237 typedef struct VkPhysicalDevicePCIBusInfoPropertiesEXT { 7238 VkStructureType sType; 7239 void* pNext; 7240 uint32_t pciDomain; 7241 uint32_t pciBus; 7242 uint32_t pciDevice; 7243 uint32_t pciFunction; 7244 } VkPhysicalDevicePCIBusInfoPropertiesEXT; 7245 7246 7247 7248 #define VK_EXT_subgroup_size_control 1 7249 #define VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION 2 7250 #define VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME "VK_EXT_subgroup_size_control" 7251 typedef struct VkPhysicalDeviceSubgroupSizeControlFeaturesEXT { 7252 VkStructureType sType; 7253 void* pNext; 7254 VkBool32 subgroupSizeControl; 7255 VkBool32 computeFullSubgroups; 7256 } VkPhysicalDeviceSubgroupSizeControlFeaturesEXT; 7257 7258 typedef struct VkPhysicalDeviceSubgroupSizeControlPropertiesEXT { 7259 VkStructureType sType; 7260 void* pNext; 7261 uint32_t minSubgroupSize; 7262 uint32_t maxSubgroupSize; 7263 uint32_t maxComputeWorkgroupSubgroups; 7264 VkShaderStageFlags requiredSubgroupSizeStages; 7265 } VkPhysicalDeviceSubgroupSizeControlPropertiesEXT; 7266 7267 typedef struct VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT { 7268 VkStructureType sType; 7269 void* pNext; 7270 uint32_t requiredSubgroupSize; 7271 } VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT; 7272 7273 7274 7275 #define VK_EXT_shader_image_atomic_int64 1 7276 #define VK_EXT_SHADER_IMAGE_ATOMIC_INT64_SPEC_VERSION 1 7277 #define VK_EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME "VK_EXT_shader_image_atomic_int64" 7278 typedef struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT { 7279 VkStructureType sType; 7280 void* pNext; 7281 VkBool32 shaderImageInt64Atomics; 7282 VkBool32 sparseImageInt64Atomics; 7283 } VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT; 7284 7285 7286 7287 #define VK_EXT_memory_budget 1 7288 #define VK_EXT_MEMORY_BUDGET_SPEC_VERSION 1 7289 #define VK_EXT_MEMORY_BUDGET_EXTENSION_NAME "VK_EXT_memory_budget" 7290 typedef struct VkPhysicalDeviceMemoryBudgetPropertiesEXT { 7291 VkStructureType sType; 7292 void* pNext; 7293 VkDeviceSize heapBudget[VK_MAX_MEMORY_HEAPS]; 7294 VkDeviceSize heapUsage[VK_MAX_MEMORY_HEAPS]; 7295 } VkPhysicalDeviceMemoryBudgetPropertiesEXT; 7296 7297 7298 7299 #define VK_EXT_validation_features 1 7300 #define VK_EXT_VALIDATION_FEATURES_SPEC_VERSION 5 7301 #define VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME "VK_EXT_validation_features" 7302 7303 typedef enum VkValidationFeatureEnableEXT { 7304 VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0, 7305 VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1, 7306 VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2, 7307 VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3, 7308 VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4, 7309 VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 0x7FFFFFFF 7310 } VkValidationFeatureEnableEXT; 7311 7312 typedef enum VkValidationFeatureDisableEXT { 7313 VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0, 7314 VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1, 7315 VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2, 7316 VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3, 7317 VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4, 7318 VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5, 7319 VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6, 7320 VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7, 7321 VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 0x7FFFFFFF 7322 } VkValidationFeatureDisableEXT; 7323 typedef struct VkValidationFeaturesEXT { 7324 VkStructureType sType; 7325 const void* pNext; 7326 uint32_t enabledValidationFeatureCount; 7327 const VkValidationFeatureEnableEXT* pEnabledValidationFeatures; 7328 uint32_t disabledValidationFeatureCount; 7329 const VkValidationFeatureDisableEXT* pDisabledValidationFeatures; 7330 } VkValidationFeaturesEXT; 7331 7332 7333 7334 #define VK_EXT_fragment_shader_interlock 1 7335 #define VK_EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION 1 7336 #define VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME "VK_EXT_fragment_shader_interlock" 7337 typedef struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT { 7338 VkStructureType sType; 7339 void* pNext; 7340 VkBool32 fragmentShaderSampleInterlock; 7341 VkBool32 fragmentShaderPixelInterlock; 7342 VkBool32 fragmentShaderShadingRateInterlock; 7343 } VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT; 7344 7345 7346 7347 #define VK_EXT_ycbcr_image_arrays 1 7348 #define VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION 1 7349 #define VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME "VK_EXT_ycbcr_image_arrays" 7350 typedef struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT { 7351 VkStructureType sType; 7352 void* pNext; 7353 VkBool32 ycbcrImageArrays; 7354 } VkPhysicalDeviceYcbcrImageArraysFeaturesEXT; 7355 7356 7357 7358 #define VK_EXT_headless_surface 1 7359 #define VK_EXT_HEADLESS_SURFACE_SPEC_VERSION 1 7360 #define VK_EXT_HEADLESS_SURFACE_EXTENSION_NAME "VK_EXT_headless_surface" 7361 typedef VkFlags VkHeadlessSurfaceCreateFlagsEXT; 7362 typedef struct VkHeadlessSurfaceCreateInfoEXT { 7363 VkStructureType sType; 7364 const void* pNext; 7365 VkHeadlessSurfaceCreateFlagsEXT flags; 7366 } VkHeadlessSurfaceCreateInfoEXT; 7367 7368 typedef VkResult (VKAPI_PTR *PFN_vkCreateHeadlessSurfaceEXT)(VkInstance instance, const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); 7369 7370 #ifndef VK_NO_PROTOTYPES 7371 VKAPI_ATTR VkResult VKAPI_CALL vkCreateHeadlessSurfaceEXT( 7372 VkInstance instance, 7373 const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, 7374 const VkAllocationCallbacks* pAllocator, 7375 VkSurfaceKHR* pSurface); 7376 #endif 7377 7378 7379 #define VK_EXT_line_rasterization 1 7380 #define VK_EXT_LINE_RASTERIZATION_SPEC_VERSION 1 7381 #define VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME "VK_EXT_line_rasterization" 7382 7383 typedef enum VkLineRasterizationModeEXT { 7384 VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = 0, 7385 VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = 1, 7386 VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = 2, 7387 VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = 3, 7388 VK_LINE_RASTERIZATION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF 7389 } VkLineRasterizationModeEXT; 7390 typedef struct VkPhysicalDeviceLineRasterizationFeaturesEXT { 7391 VkStructureType sType; 7392 void* pNext; 7393 VkBool32 rectangularLines; 7394 VkBool32 bresenhamLines; 7395 VkBool32 smoothLines; 7396 VkBool32 stippledRectangularLines; 7397 VkBool32 stippledBresenhamLines; 7398 VkBool32 stippledSmoothLines; 7399 } VkPhysicalDeviceLineRasterizationFeaturesEXT; 7400 7401 typedef struct VkPhysicalDeviceLineRasterizationPropertiesEXT { 7402 VkStructureType sType; 7403 void* pNext; 7404 uint32_t lineSubPixelPrecisionBits; 7405 } VkPhysicalDeviceLineRasterizationPropertiesEXT; 7406 7407 typedef struct VkPipelineRasterizationLineStateCreateInfoEXT { 7408 VkStructureType sType; 7409 const void* pNext; 7410 VkLineRasterizationModeEXT lineRasterizationMode; 7411 VkBool32 stippledLineEnable; 7412 uint32_t lineStippleFactor; 7413 uint16_t lineStipplePattern; 7414 } VkPipelineRasterizationLineStateCreateInfoEXT; 7415 7416 typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleEXT)(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern); 7417 7418 #ifndef VK_NO_PROTOTYPES 7419 VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleEXT( 7420 VkCommandBuffer commandBuffer, 7421 uint32_t lineStippleFactor, 7422 uint16_t lineStipplePattern); 7423 #endif 7424 7425 7426 #define VK_EXT_shader_atomic_float 1 7427 #define VK_EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION 1 7428 #define VK_EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME "VK_EXT_shader_atomic_float" 7429 typedef struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT { 7430 VkStructureType sType; 7431 void* pNext; 7432 VkBool32 shaderBufferFloat32Atomics; 7433 VkBool32 shaderBufferFloat32AtomicAdd; 7434 VkBool32 shaderBufferFloat64Atomics; 7435 VkBool32 shaderBufferFloat64AtomicAdd; 7436 VkBool32 shaderSharedFloat32Atomics; 7437 VkBool32 shaderSharedFloat32AtomicAdd; 7438 VkBool32 shaderSharedFloat64Atomics; 7439 VkBool32 shaderSharedFloat64AtomicAdd; 7440 VkBool32 shaderImageFloat32Atomics; 7441 VkBool32 shaderImageFloat32AtomicAdd; 7442 VkBool32 sparseImageFloat32Atomics; 7443 VkBool32 sparseImageFloat32AtomicAdd; 7444 } VkPhysicalDeviceShaderAtomicFloatFeaturesEXT; 7445 7446 7447 7448 #define VK_EXT_index_type_uint8 1 7449 #define VK_EXT_INDEX_TYPE_UINT8_SPEC_VERSION 1 7450 #define VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME "VK_EXT_index_type_uint8" 7451 typedef struct VkPhysicalDeviceIndexTypeUint8FeaturesEXT { 7452 VkStructureType sType; 7453 void* pNext; 7454 VkBool32 indexTypeUint8; 7455 } VkPhysicalDeviceIndexTypeUint8FeaturesEXT; 7456 7457 7458 7459 #define VK_EXT_extended_dynamic_state 1 7460 #define VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION 1 7461 #define VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_extended_dynamic_state" 7462 typedef struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT { 7463 VkStructureType sType; 7464 void* pNext; 7465 VkBool32 extendedDynamicState; 7466 } VkPhysicalDeviceExtendedDynamicStateFeaturesEXT; 7467 7468 typedef void (VKAPI_PTR *PFN_vkCmdSetCullModeEXT)(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode); 7469 typedef void (VKAPI_PTR *PFN_vkCmdSetFrontFaceEXT)(VkCommandBuffer commandBuffer, VkFrontFace frontFace); 7470 typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveTopologyEXT)(VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology); 7471 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWithCountEXT)(VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports); 7472 typedef void (VKAPI_PTR *PFN_vkCmdSetScissorWithCountEXT)(VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors); 7473 typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers2EXT)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes, const VkDeviceSize* pStrides); 7474 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable); 7475 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthWriteEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable); 7476 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthCompareOpEXT)(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp); 7477 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBoundsTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable); 7478 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable); 7479 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilOpEXT)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp); 7480 7481 #ifndef VK_NO_PROTOTYPES 7482 VKAPI_ATTR void VKAPI_CALL vkCmdSetCullModeEXT( 7483 VkCommandBuffer commandBuffer, 7484 VkCullModeFlags cullMode); 7485 7486 VKAPI_ATTR void VKAPI_CALL vkCmdSetFrontFaceEXT( 7487 VkCommandBuffer commandBuffer, 7488 VkFrontFace frontFace); 7489 7490 VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveTopologyEXT( 7491 VkCommandBuffer commandBuffer, 7492 VkPrimitiveTopology primitiveTopology); 7493 7494 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWithCountEXT( 7495 VkCommandBuffer commandBuffer, 7496 uint32_t viewportCount, 7497 const VkViewport* pViewports); 7498 7499 VKAPI_ATTR void VKAPI_CALL vkCmdSetScissorWithCountEXT( 7500 VkCommandBuffer commandBuffer, 7501 uint32_t scissorCount, 7502 const VkRect2D* pScissors); 7503 7504 VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers2EXT( 7505 VkCommandBuffer commandBuffer, 7506 uint32_t firstBinding, 7507 uint32_t bindingCount, 7508 const VkBuffer* pBuffers, 7509 const VkDeviceSize* pOffsets, 7510 const VkDeviceSize* pSizes, 7511 const VkDeviceSize* pStrides); 7512 7513 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthTestEnableEXT( 7514 VkCommandBuffer commandBuffer, 7515 VkBool32 depthTestEnable); 7516 7517 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthWriteEnableEXT( 7518 VkCommandBuffer commandBuffer, 7519 VkBool32 depthWriteEnable); 7520 7521 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthCompareOpEXT( 7522 VkCommandBuffer commandBuffer, 7523 VkCompareOp depthCompareOp); 7524 7525 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBoundsTestEnableEXT( 7526 VkCommandBuffer commandBuffer, 7527 VkBool32 depthBoundsTestEnable); 7528 7529 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilTestEnableEXT( 7530 VkCommandBuffer commandBuffer, 7531 VkBool32 stencilTestEnable); 7532 7533 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilOpEXT( 7534 VkCommandBuffer commandBuffer, 7535 VkStencilFaceFlags faceMask, 7536 VkStencilOp failOp, 7537 VkStencilOp passOp, 7538 VkStencilOp depthFailOp, 7539 VkCompareOp compareOp); 7540 #endif 7541 7542 7543 #define VK_EXT_shader_demote_to_helper_invocation 1 7544 #define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION 1 7545 #define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME "VK_EXT_shader_demote_to_helper_invocation" 7546 typedef struct VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT { 7547 VkStructureType sType; 7548 void* pNext; 7549 VkBool32 shaderDemoteToHelperInvocation; 7550 } VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT; 7551 7552 7553 7554 #define VK_EXT_texel_buffer_alignment 1 7555 #define VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION 1 7556 #define VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME "VK_EXT_texel_buffer_alignment" 7557 typedef struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT { 7558 VkStructureType sType; 7559 void* pNext; 7560 VkBool32 texelBufferAlignment; 7561 } VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT; 7562 7563 typedef struct VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT { 7564 VkStructureType sType; 7565 void* pNext; 7566 VkDeviceSize storageTexelBufferOffsetAlignmentBytes; 7567 VkBool32 storageTexelBufferOffsetSingleTexelAlignment; 7568 VkDeviceSize uniformTexelBufferOffsetAlignmentBytes; 7569 VkBool32 uniformTexelBufferOffsetSingleTexelAlignment; 7570 } VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT; 7571 7572 7573 7574 #define VK_EXT_robustness2 1 7575 #define VK_EXT_ROBUSTNESS_2_SPEC_VERSION 1 7576 #define VK_EXT_ROBUSTNESS_2_EXTENSION_NAME "VK_EXT_robustness2" 7577 typedef struct VkPhysicalDeviceRobustness2FeaturesEXT { 7578 VkStructureType sType; 7579 void* pNext; 7580 VkBool32 robustBufferAccess2; 7581 VkBool32 robustImageAccess2; 7582 VkBool32 nullDescriptor; 7583 } VkPhysicalDeviceRobustness2FeaturesEXT; 7584 7585 typedef struct VkPhysicalDeviceRobustness2PropertiesEXT { 7586 VkStructureType sType; 7587 void* pNext; 7588 VkDeviceSize robustStorageBufferAccessSizeAlignment; 7589 VkDeviceSize robustUniformBufferAccessSizeAlignment; 7590 } VkPhysicalDeviceRobustness2PropertiesEXT; 7591 7592 7593 7594 #define VK_EXT_custom_border_color 1 7595 #define VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION 12 7596 #define VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME "VK_EXT_custom_border_color" 7597 typedef struct VkSamplerCustomBorderColorCreateInfoEXT { 7598 VkStructureType sType; 7599 const void* pNext; 7600 VkClearColorValue customBorderColor; 7601 VkFormat format; 7602 } VkSamplerCustomBorderColorCreateInfoEXT; 7603 7604 typedef struct VkPhysicalDeviceCustomBorderColorPropertiesEXT { 7605 VkStructureType sType; 7606 void* pNext; 7607 uint32_t maxCustomBorderColorSamplers; 7608 } VkPhysicalDeviceCustomBorderColorPropertiesEXT; 7609 7610 typedef struct VkPhysicalDeviceCustomBorderColorFeaturesEXT { 7611 VkStructureType sType; 7612 void* pNext; 7613 VkBool32 customBorderColors; 7614 VkBool32 customBorderColorWithoutFormat; 7615 } VkPhysicalDeviceCustomBorderColorFeaturesEXT; 7616 7617 7618 7619 #define VK_EXT_ycbcr_2plane_444_formats 1 7620 #define VK_EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION 1 7621 #define VK_EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME "VK_EXT_ycbcr_2plane_444_formats" 7622 typedef struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT { 7623 VkStructureType sType; 7624 void* pNext; 7625 VkBool32 ycbcr2plane444Formats; 7626 } VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT; 7627 7628 7629 7630 #define VK_EXT_image_robustness 1 7631 #define VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION 1 7632 #define VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_image_robustness" 7633 typedef struct VkPhysicalDeviceImageRobustnessFeaturesEXT { 7634 VkStructureType sType; 7635 void* pNext; 7636 VkBool32 robustImageAccess; 7637 } VkPhysicalDeviceImageRobustnessFeaturesEXT; 7638 7639 7640 7641 #define VK_EXT_4444_formats 1 7642 #define VK_EXT_4444_FORMATS_SPEC_VERSION 1 7643 #define VK_EXT_4444_FORMATS_EXTENSION_NAME "VK_EXT_4444_formats" 7644 typedef struct VkPhysicalDevice4444FormatsFeaturesEXT { 7645 VkStructureType sType; 7646 void* pNext; 7647 VkBool32 formatA4R4G4B4; 7648 VkBool32 formatA4B4G4R4; 7649 } VkPhysicalDevice4444FormatsFeaturesEXT; 7650 7651 7652 7653 #define VK_EXT_vertex_input_dynamic_state 1 7654 #define VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION 2 7655 #define VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_vertex_input_dynamic_state" 7656 typedef struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT { 7657 VkStructureType sType; 7658 void* pNext; 7659 VkBool32 vertexInputDynamicState; 7660 } VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT; 7661 7662 typedef struct VkVertexInputBindingDescription2EXT { 7663 VkStructureType sType; 7664 void* pNext; 7665 uint32_t binding; 7666 uint32_t stride; 7667 VkVertexInputRate inputRate; 7668 uint32_t divisor; 7669 } VkVertexInputBindingDescription2EXT; 7670 7671 typedef struct VkVertexInputAttributeDescription2EXT { 7672 VkStructureType sType; 7673 void* pNext; 7674 uint32_t location; 7675 uint32_t binding; 7676 VkFormat format; 7677 uint32_t offset; 7678 } VkVertexInputAttributeDescription2EXT; 7679 7680 typedef void (VKAPI_PTR *PFN_vkCmdSetVertexInputEXT)(VkCommandBuffer commandBuffer, uint32_t vertexBindingDescriptionCount, const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions, uint32_t vertexAttributeDescriptionCount, const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions); 7681 7682 #ifndef VK_NO_PROTOTYPES 7683 VKAPI_ATTR void VKAPI_CALL vkCmdSetVertexInputEXT( 7684 VkCommandBuffer commandBuffer, 7685 uint32_t vertexBindingDescriptionCount, 7686 const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions, 7687 uint32_t vertexAttributeDescriptionCount, 7688 const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions); 7689 #endif 7690 7691 7692 #define VK_EXT_extended_dynamic_state2 1 7693 #define VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION 1 7694 #define VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME "VK_EXT_extended_dynamic_state2" 7695 typedef struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT { 7696 VkStructureType sType; 7697 void* pNext; 7698 VkBool32 extendedDynamicState2; 7699 VkBool32 extendedDynamicState2LogicOp; 7700 VkBool32 extendedDynamicState2PatchControlPoints; 7701 } VkPhysicalDeviceExtendedDynamicState2FeaturesEXT; 7702 7703 typedef void (VKAPI_PTR *PFN_vkCmdSetPatchControlPointsEXT)(VkCommandBuffer commandBuffer, uint32_t patchControlPoints); 7704 typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizerDiscardEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable); 7705 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBiasEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable); 7706 typedef void (VKAPI_PTR *PFN_vkCmdSetLogicOpEXT)(VkCommandBuffer commandBuffer, VkLogicOp logicOp); 7707 typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveRestartEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable); 7708 7709 #ifndef VK_NO_PROTOTYPES 7710 VKAPI_ATTR void VKAPI_CALL vkCmdSetPatchControlPointsEXT( 7711 VkCommandBuffer commandBuffer, 7712 uint32_t patchControlPoints); 7713 7714 VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizerDiscardEnableEXT( 7715 VkCommandBuffer commandBuffer, 7716 VkBool32 rasterizerDiscardEnable); 7717 7718 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBiasEnableEXT( 7719 VkCommandBuffer commandBuffer, 7720 VkBool32 depthBiasEnable); 7721 7722 VKAPI_ATTR void VKAPI_CALL vkCmdSetLogicOpEXT( 7723 VkCommandBuffer commandBuffer, 7724 VkLogicOp logicOp); 7725 7726 VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveRestartEnableEXT( 7727 VkCommandBuffer commandBuffer, 7728 VkBool32 primitiveRestartEnable); 7729 #endif 7730 7731 7732 #define VK_EXT_color_write_enable 1 7733 #define VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION 1 7734 #define VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME "VK_EXT_color_write_enable" 7735 typedef struct VkPhysicalDeviceColorWriteEnableFeaturesEXT { 7736 VkStructureType sType; 7737 void* pNext; 7738 VkBool32 colorWriteEnable; 7739 } VkPhysicalDeviceColorWriteEnableFeaturesEXT; 7740 7741 typedef struct VkPipelineColorWriteCreateInfoEXT { 7742 VkStructureType sType; 7743 const void* pNext; 7744 uint32_t attachmentCount; 7745 const VkBool32* pColorWriteEnables; 7746 } VkPipelineColorWriteCreateInfoEXT; 7747 7748 typedef void (VKAPI_PTR *PFN_vkCmdSetColorWriteEnableEXT)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkBool32* pColorWriteEnables); 7749 7750 #ifndef VK_NO_PROTOTYPES 7751 VKAPI_ATTR void VKAPI_CALL vkCmdSetColorWriteEnableEXT( 7752 VkCommandBuffer commandBuffer, 7753 uint32_t attachmentCount, 7754 const VkBool32* pColorWriteEnables); 7755 #endif 7756 7757 7758 #define VK_EXT_application_parameters 1 7759 #define VK_EXT_APPLICATION_PARAMETERS_SPEC_VERSION 1 7760 #define VK_EXT_APPLICATION_PARAMETERS_EXTENSION_NAME "VK_EXT_application_parameters" 7761 typedef struct VkApplicationParametersEXT { 7762 VkStructureType sType; 7763 const void* pNext; 7764 uint32_t vendorID; 7765 uint32_t deviceID; 7766 uint32_t key; 7767 uint64_t value; 7768 } VkApplicationParametersEXT; 7769 7770 7771 #ifdef __cplusplus 7772 } 7773 #endif 7774 7775 #endif 7776