1 #ifndef VULKAN_CORE_H_ 2 #define VULKAN_CORE_H_ 1 3 4 #ifdef __cplusplus 5 extern "C" { 6 #endif 7 8 /* 9 ** Copyright (c) 2015-2019 The Khronos Group Inc. 10 ** 11 ** Licensed under the Apache License, Version 2.0 (the "License"); 12 ** you may not use this file except in compliance with the License. 13 ** You may obtain a copy of the License at 14 ** 15 ** http://www.apache.org/licenses/LICENSE-2.0 16 ** 17 ** Unless required by applicable law or agreed to in writing, software 18 ** distributed under the License is distributed on an "AS IS" BASIS, 19 ** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 20 ** See the License for the specific language governing permissions and 21 ** limitations under the License. 22 */ 23 24 /* 25 ** This header is generated from the Khronos Vulkan XML API Registry. 26 ** 27 */ 28 29 30 #define VK_VERSION_1_0 1 31 #include "vk_platform.h" 32 33 #define VK_MAKE_VERSION(major, minor, patch) \ 34 (((major) << 22) | ((minor) << 12) | (patch)) 35 36 // DEPRECATED: This define has been removed. Specific version defines (e.g. VK_API_VERSION_1_0), or the VK_MAKE_VERSION macro, should be used instead. 37 //#define VK_API_VERSION VK_MAKE_VERSION(1, 0, 0) // Patch version should always be set to 0 38 39 // Vulkan 1.0 version number 40 #define VK_API_VERSION_1_0 VK_MAKE_VERSION(1, 0, 0)// Patch version should always be set to 0 41 42 #define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22) 43 #define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12) & 0x3ff) 44 #define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xfff) 45 // Version of this file 46 #define VK_HEADER_VERSION 102 47 48 49 #define VK_NULL_HANDLE 0 50 51 52 #define VK_DEFINE_HANDLE(object) typedef struct object##_T* object; 53 54 55 #if !defined(VK_DEFINE_NON_DISPATCHABLE_HANDLE) 56 #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) 57 #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object; 58 #else 59 #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object; 60 #endif 61 #endif 62 63 64 typedef uint32_t VkFlags; 65 typedef uint32_t VkBool32; 66 typedef uint64_t VkDeviceSize; 67 typedef uint32_t VkSampleMask; 68 69 VK_DEFINE_HANDLE(VkInstance) 70 VK_DEFINE_HANDLE(VkPhysicalDevice) 71 VK_DEFINE_HANDLE(VkDevice) 72 VK_DEFINE_HANDLE(VkQueue) 73 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSemaphore) 74 VK_DEFINE_HANDLE(VkCommandBuffer) 75 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFence) 76 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeviceMemory) 77 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer) 78 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImage) 79 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkEvent) 80 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkQueryPool) 81 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferView) 82 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImageView) 83 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderModule) 84 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineCache) 85 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineLayout) 86 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass) 87 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipeline) 88 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSetLayout) 89 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSampler) 90 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool) 91 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet) 92 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer) 93 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool) 94 95 #define VK_LOD_CLAMP_NONE 1000.0f 96 #define VK_REMAINING_MIP_LEVELS (~0U) 97 #define VK_REMAINING_ARRAY_LAYERS (~0U) 98 #define VK_WHOLE_SIZE (~0ULL) 99 #define VK_ATTACHMENT_UNUSED (~0U) 100 #define VK_TRUE 1 101 #define VK_FALSE 0 102 #define VK_QUEUE_FAMILY_IGNORED (~0U) 103 #define VK_SUBPASS_EXTERNAL (~0U) 104 #define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE 256 105 #define VK_UUID_SIZE 16 106 #define VK_MAX_MEMORY_TYPES 32 107 #define VK_MAX_MEMORY_HEAPS 16 108 #define VK_MAX_EXTENSION_NAME_SIZE 256 109 #define VK_MAX_DESCRIPTION_SIZE 256 110 111 112 typedef enum VkPipelineCacheHeaderVersion { 113 VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1, 114 VK_PIPELINE_CACHE_HEADER_VERSION_BEGIN_RANGE = VK_PIPELINE_CACHE_HEADER_VERSION_ONE, 115 VK_PIPELINE_CACHE_HEADER_VERSION_END_RANGE = VK_PIPELINE_CACHE_HEADER_VERSION_ONE, 116 VK_PIPELINE_CACHE_HEADER_VERSION_RANGE_SIZE = (VK_PIPELINE_CACHE_HEADER_VERSION_ONE - VK_PIPELINE_CACHE_HEADER_VERSION_ONE + 1), 117 VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF 118 } VkPipelineCacheHeaderVersion; 119 120 typedef enum VkResult { 121 VK_SUCCESS = 0, 122 VK_NOT_READY = 1, 123 VK_TIMEOUT = 2, 124 VK_EVENT_SET = 3, 125 VK_EVENT_RESET = 4, 126 VK_INCOMPLETE = 5, 127 VK_ERROR_OUT_OF_HOST_MEMORY = -1, 128 VK_ERROR_OUT_OF_DEVICE_MEMORY = -2, 129 VK_ERROR_INITIALIZATION_FAILED = -3, 130 VK_ERROR_DEVICE_LOST = -4, 131 VK_ERROR_MEMORY_MAP_FAILED = -5, 132 VK_ERROR_LAYER_NOT_PRESENT = -6, 133 VK_ERROR_EXTENSION_NOT_PRESENT = -7, 134 VK_ERROR_FEATURE_NOT_PRESENT = -8, 135 VK_ERROR_INCOMPATIBLE_DRIVER = -9, 136 VK_ERROR_TOO_MANY_OBJECTS = -10, 137 VK_ERROR_FORMAT_NOT_SUPPORTED = -11, 138 VK_ERROR_FRAGMENTED_POOL = -12, 139 VK_ERROR_OUT_OF_POOL_MEMORY = -1000069000, 140 VK_ERROR_INVALID_EXTERNAL_HANDLE = -1000072003, 141 VK_ERROR_SURFACE_LOST_KHR = -1000000000, 142 VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = -1000000001, 143 VK_SUBOPTIMAL_KHR = 1000001003, 144 VK_ERROR_OUT_OF_DATE_KHR = -1000001004, 145 VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001, 146 VK_ERROR_VALIDATION_FAILED_EXT = -1000011001, 147 VK_ERROR_INVALID_SHADER_NV = -1000012000, 148 VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = -1000158000, 149 VK_ERROR_FRAGMENTATION_EXT = -1000161000, 150 VK_ERROR_NOT_PERMITTED_EXT = -1000174001, 151 VK_ERROR_INVALID_DEVICE_ADDRESS_EXT = -1000244000, 152 VK_ERROR_OUT_OF_POOL_MEMORY_KHR = VK_ERROR_OUT_OF_POOL_MEMORY, 153 VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = VK_ERROR_INVALID_EXTERNAL_HANDLE, 154 VK_RESULT_BEGIN_RANGE = VK_ERROR_FRAGMENTED_POOL, 155 VK_RESULT_END_RANGE = VK_INCOMPLETE, 156 VK_RESULT_RANGE_SIZE = (VK_INCOMPLETE - VK_ERROR_FRAGMENTED_POOL + 1), 157 VK_RESULT_MAX_ENUM = 0x7FFFFFFF 158 } VkResult; 159 160 typedef enum VkStructureType { 161 VK_STRUCTURE_TYPE_APPLICATION_INFO = 0, 162 VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1, 163 VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2, 164 VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3, 165 VK_STRUCTURE_TYPE_SUBMIT_INFO = 4, 166 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5, 167 VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6, 168 VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7, 169 VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8, 170 VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9, 171 VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10, 172 VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11, 173 VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12, 174 VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13, 175 VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14, 176 VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15, 177 VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16, 178 VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17, 179 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18, 180 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19, 181 VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20, 182 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21, 183 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22, 184 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23, 185 VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24, 186 VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25, 187 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26, 188 VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27, 189 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28, 190 VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29, 191 VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30, 192 VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31, 193 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32, 194 VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33, 195 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34, 196 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35, 197 VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36, 198 VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37, 199 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38, 200 VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39, 201 VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40, 202 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41, 203 VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42, 204 VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43, 205 VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44, 206 VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45, 207 VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46, 208 VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47, 209 VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48, 210 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = 1000094000, 211 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = 1000157000, 212 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = 1000157001, 213 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = 1000083000, 214 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = 1000127000, 215 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001, 216 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = 1000060000, 217 VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = 1000060003, 218 VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = 1000060004, 219 VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = 1000060005, 220 VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = 1000060006, 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_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = 1000146002, 228 VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = 1000146003, 229 VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = 1000146004, 230 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = 1000059000, 231 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001, 232 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = 1000059002, 233 VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = 1000059003, 234 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = 1000059004, 235 VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = 1000059005, 236 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006, 237 VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = 1000059007, 238 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = 1000059008, 239 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = 1000117000, 240 VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = 1000117001, 241 VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = 1000117002, 242 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = 1000117003, 243 VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000, 244 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001, 245 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002, 246 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = 1000120000, 247 VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000, 248 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001, 249 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002, 250 VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = 1000145003, 251 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = 1000156000, 252 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = 1000156001, 253 VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = 1000156002, 254 VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = 1000156003, 255 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = 1000156004, 256 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = 1000156005, 257 VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = 1000085000, 258 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = 1000071000, 259 VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = 1000071001, 260 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = 1000071002, 261 VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = 1000071003, 262 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = 1000071004, 263 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = 1000072000, 264 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = 1000072001, 265 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = 1000072002, 266 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = 1000112000, 267 VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = 1000112001, 268 VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = 1000113000, 269 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = 1000077000, 270 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = 1000076000, 271 VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001, 272 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000, 273 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001, 274 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = 1000063000, 275 VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000, 276 VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001, 277 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007, 278 VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008, 279 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009, 280 VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010, 281 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011, 282 VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012, 283 VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000, 284 VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001, 285 VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR = 1000003000, 286 VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000, 287 VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000, 288 VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000, 289 VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000, 290 VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000, 291 VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000, 292 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000, 293 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000, 294 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001, 295 VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002, 296 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000, 297 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001, 298 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002, 299 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT = 1000028000, 300 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT = 1000028001, 301 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT = 1000028002, 302 VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = 1000030000, 303 VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000, 304 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000, 305 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000, 306 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001, 307 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000, 308 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001, 309 VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000, 310 VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000, 311 VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000, 312 VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000, 313 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001, 314 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000, 315 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001, 316 VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002, 317 VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR = 1000073003, 318 VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = 1000074000, 319 VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = 1000074001, 320 VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR = 1000074002, 321 VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = 1000075000, 322 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078000, 323 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078001, 324 VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = 1000078002, 325 VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR = 1000078003, 326 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000, 327 VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001, 328 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = 1000080000, 329 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = 1000081000, 330 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = 1000081001, 331 VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = 1000081002, 332 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR = 1000082000, 333 VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000, 334 VK_STRUCTURE_TYPE_OBJECT_TABLE_CREATE_INFO_NVX = 1000086000, 335 VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NVX = 1000086001, 336 VK_STRUCTURE_TYPE_CMD_PROCESS_COMMANDS_INFO_NVX = 1000086002, 337 VK_STRUCTURE_TYPE_CMD_RESERVE_SPACE_FOR_COMMANDS_INFO_NVX = 1000086003, 338 VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_LIMITS_NVX = 1000086004, 339 VK_STRUCTURE_TYPE_DEVICE_GENERATED_COMMANDS_FEATURES_NVX = 1000086005, 340 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000, 341 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000, 342 VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000, 343 VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001, 344 VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002, 345 VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003, 346 VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000, 347 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000, 348 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000, 349 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000, 350 VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001, 351 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000, 352 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001, 353 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT = 1000102000, 354 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT = 1000102001, 355 VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000, 356 VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR = 1000109000, 357 VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR = 1000109001, 358 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR = 1000109002, 359 VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR = 1000109003, 360 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR = 1000109004, 361 VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR = 1000109005, 362 VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR = 1000109006, 363 VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000, 364 VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000, 365 VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001, 366 VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002, 367 VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000, 368 VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001, 369 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000, 370 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001, 371 VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002, 372 VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR = 1000121000, 373 VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR = 1000121001, 374 VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR = 1000121002, 375 VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR = 1000121003, 376 VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR = 1000121004, 377 VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000, 378 VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000, 379 VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000128000, 380 VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT = 1000128001, 381 VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = 1000128002, 382 VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000128003, 383 VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000128004, 384 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = 1000129000, 385 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = 1000129001, 386 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = 1000129002, 387 VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129003, 388 VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004, 389 VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005, 390 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = 1000130000, 391 VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = 1000130001, 392 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT = 1000138000, 393 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT = 1000138001, 394 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT = 1000138002, 395 VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT = 1000138003, 396 VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000, 397 VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001, 398 VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002, 399 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003, 400 VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004, 401 VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = 1000147000, 402 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000, 403 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001, 404 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002, 405 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000, 406 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000, 407 VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT = 1000158000, 408 VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158001, 409 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT = 1000158002, 410 VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT = 1000158003, 411 VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT = 1000158004, 412 VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158005, 413 VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000, 414 VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001, 415 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT = 1000161000, 416 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT = 1000161001, 417 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = 1000161002, 418 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = 1000161003, 419 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = 1000161004, 420 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV = 1000164000, 421 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV = 1000164001, 422 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV = 1000164002, 423 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV = 1000164005, 424 VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV = 1000165000, 425 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV = 1000165001, 426 VK_STRUCTURE_TYPE_GEOMETRY_NV = 1000165003, 427 VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV = 1000165004, 428 VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV = 1000165005, 429 VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV = 1000165006, 430 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV = 1000165007, 431 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV = 1000165008, 432 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV = 1000165009, 433 VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV = 1000165011, 434 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV = 1000165012, 435 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV = 1000166000, 436 VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV = 1000166001, 437 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT = 1000170000, 438 VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT = 1000170001, 439 VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = 1000174000, 440 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR = 1000177000, 441 VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000, 442 VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001, 443 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002, 444 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR = 1000180000, 445 VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = 1000184000, 446 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000, 447 VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD = 1000189000, 448 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000, 449 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = 1000190001, 450 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = 1000190002, 451 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR = 1000196000, 452 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR = 1000197000, 453 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR = 1000199000, 454 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR = 1000199001, 455 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = 1000201000, 456 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = 1000202000, 457 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = 1000202001, 458 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = 1000203000, 459 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = 1000204000, 460 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = 1000205000, 461 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = 1000205002, 462 VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000, 463 VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001, 464 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = 1000211000, 465 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT = 1000212000, 466 VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA = 1000214000, 467 VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT = 1000217000, 468 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT = 1000218000, 469 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT = 1000218001, 470 VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT = 1000218002, 471 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT = 1000221000, 472 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT = 1000237000, 473 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT = 1000238000, 474 VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT = 1000238001, 475 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV = 1000240000, 476 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT = 1000244000, 477 VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT = 1000244001, 478 VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT = 1000244002, 479 VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT = 1000246000, 480 VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT = 1000247000, 481 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV = 1000249000, 482 VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249001, 483 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249002, 484 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT = 1000252000, 485 VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT, 486 VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO, 487 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES, 488 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES, 489 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2, 490 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2, 491 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2, 492 VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2, 493 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2, 494 VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2, 495 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2, 496 VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2, 497 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2, 498 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO, 499 VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO, 500 VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO, 501 VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO, 502 VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO, 503 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO, 504 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO, 505 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES, 506 VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO, 507 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO, 508 VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES, 509 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO, 510 VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES, 511 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES, 512 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO, 513 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO, 514 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO, 515 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO, 516 VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES, 517 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO, 518 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES, 519 VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO, 520 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT, 521 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO, 522 VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES, 523 VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO, 524 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES, 525 VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO, 526 VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO, 527 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO, 528 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES, 529 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS, 530 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO, 531 VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2, 532 VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2, 533 VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2, 534 VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2, 535 VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2, 536 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO, 537 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO, 538 VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO, 539 VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO, 540 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES, 541 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES, 542 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO, 543 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO, 544 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES, 545 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT, 546 VK_STRUCTURE_TYPE_BEGIN_RANGE = VK_STRUCTURE_TYPE_APPLICATION_INFO, 547 VK_STRUCTURE_TYPE_END_RANGE = VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO, 548 VK_STRUCTURE_TYPE_RANGE_SIZE = (VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO - VK_STRUCTURE_TYPE_APPLICATION_INFO + 1), 549 VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF 550 } VkStructureType; 551 552 typedef enum VkSystemAllocationScope { 553 VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0, 554 VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1, 555 VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2, 556 VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3, 557 VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4, 558 VK_SYSTEM_ALLOCATION_SCOPE_BEGIN_RANGE = VK_SYSTEM_ALLOCATION_SCOPE_COMMAND, 559 VK_SYSTEM_ALLOCATION_SCOPE_END_RANGE = VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE, 560 VK_SYSTEM_ALLOCATION_SCOPE_RANGE_SIZE = (VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE - VK_SYSTEM_ALLOCATION_SCOPE_COMMAND + 1), 561 VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 0x7FFFFFFF 562 } VkSystemAllocationScope; 563 564 typedef enum VkInternalAllocationType { 565 VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0, 566 VK_INTERNAL_ALLOCATION_TYPE_BEGIN_RANGE = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE, 567 VK_INTERNAL_ALLOCATION_TYPE_END_RANGE = VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE, 568 VK_INTERNAL_ALLOCATION_TYPE_RANGE_SIZE = (VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE - VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE + 1), 569 VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF 570 } VkInternalAllocationType; 571 572 typedef enum VkFormat { 573 VK_FORMAT_UNDEFINED = 0, 574 VK_FORMAT_R4G4_UNORM_PACK8 = 1, 575 VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2, 576 VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3, 577 VK_FORMAT_R5G6B5_UNORM_PACK16 = 4, 578 VK_FORMAT_B5G6R5_UNORM_PACK16 = 5, 579 VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6, 580 VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7, 581 VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8, 582 VK_FORMAT_R8_UNORM = 9, 583 VK_FORMAT_R8_SNORM = 10, 584 VK_FORMAT_R8_USCALED = 11, 585 VK_FORMAT_R8_SSCALED = 12, 586 VK_FORMAT_R8_UINT = 13, 587 VK_FORMAT_R8_SINT = 14, 588 VK_FORMAT_R8_SRGB = 15, 589 VK_FORMAT_R8G8_UNORM = 16, 590 VK_FORMAT_R8G8_SNORM = 17, 591 VK_FORMAT_R8G8_USCALED = 18, 592 VK_FORMAT_R8G8_SSCALED = 19, 593 VK_FORMAT_R8G8_UINT = 20, 594 VK_FORMAT_R8G8_SINT = 21, 595 VK_FORMAT_R8G8_SRGB = 22, 596 VK_FORMAT_R8G8B8_UNORM = 23, 597 VK_FORMAT_R8G8B8_SNORM = 24, 598 VK_FORMAT_R8G8B8_USCALED = 25, 599 VK_FORMAT_R8G8B8_SSCALED = 26, 600 VK_FORMAT_R8G8B8_UINT = 27, 601 VK_FORMAT_R8G8B8_SINT = 28, 602 VK_FORMAT_R8G8B8_SRGB = 29, 603 VK_FORMAT_B8G8R8_UNORM = 30, 604 VK_FORMAT_B8G8R8_SNORM = 31, 605 VK_FORMAT_B8G8R8_USCALED = 32, 606 VK_FORMAT_B8G8R8_SSCALED = 33, 607 VK_FORMAT_B8G8R8_UINT = 34, 608 VK_FORMAT_B8G8R8_SINT = 35, 609 VK_FORMAT_B8G8R8_SRGB = 36, 610 VK_FORMAT_R8G8B8A8_UNORM = 37, 611 VK_FORMAT_R8G8B8A8_SNORM = 38, 612 VK_FORMAT_R8G8B8A8_USCALED = 39, 613 VK_FORMAT_R8G8B8A8_SSCALED = 40, 614 VK_FORMAT_R8G8B8A8_UINT = 41, 615 VK_FORMAT_R8G8B8A8_SINT = 42, 616 VK_FORMAT_R8G8B8A8_SRGB = 43, 617 VK_FORMAT_B8G8R8A8_UNORM = 44, 618 VK_FORMAT_B8G8R8A8_SNORM = 45, 619 VK_FORMAT_B8G8R8A8_USCALED = 46, 620 VK_FORMAT_B8G8R8A8_SSCALED = 47, 621 VK_FORMAT_B8G8R8A8_UINT = 48, 622 VK_FORMAT_B8G8R8A8_SINT = 49, 623 VK_FORMAT_B8G8R8A8_SRGB = 50, 624 VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51, 625 VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52, 626 VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53, 627 VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54, 628 VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55, 629 VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56, 630 VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57, 631 VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58, 632 VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59, 633 VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60, 634 VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61, 635 VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62, 636 VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63, 637 VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64, 638 VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65, 639 VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66, 640 VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67, 641 VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68, 642 VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69, 643 VK_FORMAT_R16_UNORM = 70, 644 VK_FORMAT_R16_SNORM = 71, 645 VK_FORMAT_R16_USCALED = 72, 646 VK_FORMAT_R16_SSCALED = 73, 647 VK_FORMAT_R16_UINT = 74, 648 VK_FORMAT_R16_SINT = 75, 649 VK_FORMAT_R16_SFLOAT = 76, 650 VK_FORMAT_R16G16_UNORM = 77, 651 VK_FORMAT_R16G16_SNORM = 78, 652 VK_FORMAT_R16G16_USCALED = 79, 653 VK_FORMAT_R16G16_SSCALED = 80, 654 VK_FORMAT_R16G16_UINT = 81, 655 VK_FORMAT_R16G16_SINT = 82, 656 VK_FORMAT_R16G16_SFLOAT = 83, 657 VK_FORMAT_R16G16B16_UNORM = 84, 658 VK_FORMAT_R16G16B16_SNORM = 85, 659 VK_FORMAT_R16G16B16_USCALED = 86, 660 VK_FORMAT_R16G16B16_SSCALED = 87, 661 VK_FORMAT_R16G16B16_UINT = 88, 662 VK_FORMAT_R16G16B16_SINT = 89, 663 VK_FORMAT_R16G16B16_SFLOAT = 90, 664 VK_FORMAT_R16G16B16A16_UNORM = 91, 665 VK_FORMAT_R16G16B16A16_SNORM = 92, 666 VK_FORMAT_R16G16B16A16_USCALED = 93, 667 VK_FORMAT_R16G16B16A16_SSCALED = 94, 668 VK_FORMAT_R16G16B16A16_UINT = 95, 669 VK_FORMAT_R16G16B16A16_SINT = 96, 670 VK_FORMAT_R16G16B16A16_SFLOAT = 97, 671 VK_FORMAT_R32_UINT = 98, 672 VK_FORMAT_R32_SINT = 99, 673 VK_FORMAT_R32_SFLOAT = 100, 674 VK_FORMAT_R32G32_UINT = 101, 675 VK_FORMAT_R32G32_SINT = 102, 676 VK_FORMAT_R32G32_SFLOAT = 103, 677 VK_FORMAT_R32G32B32_UINT = 104, 678 VK_FORMAT_R32G32B32_SINT = 105, 679 VK_FORMAT_R32G32B32_SFLOAT = 106, 680 VK_FORMAT_R32G32B32A32_UINT = 107, 681 VK_FORMAT_R32G32B32A32_SINT = 108, 682 VK_FORMAT_R32G32B32A32_SFLOAT = 109, 683 VK_FORMAT_R64_UINT = 110, 684 VK_FORMAT_R64_SINT = 111, 685 VK_FORMAT_R64_SFLOAT = 112, 686 VK_FORMAT_R64G64_UINT = 113, 687 VK_FORMAT_R64G64_SINT = 114, 688 VK_FORMAT_R64G64_SFLOAT = 115, 689 VK_FORMAT_R64G64B64_UINT = 116, 690 VK_FORMAT_R64G64B64_SINT = 117, 691 VK_FORMAT_R64G64B64_SFLOAT = 118, 692 VK_FORMAT_R64G64B64A64_UINT = 119, 693 VK_FORMAT_R64G64B64A64_SINT = 120, 694 VK_FORMAT_R64G64B64A64_SFLOAT = 121, 695 VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122, 696 VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123, 697 VK_FORMAT_D16_UNORM = 124, 698 VK_FORMAT_X8_D24_UNORM_PACK32 = 125, 699 VK_FORMAT_D32_SFLOAT = 126, 700 VK_FORMAT_S8_UINT = 127, 701 VK_FORMAT_D16_UNORM_S8_UINT = 128, 702 VK_FORMAT_D24_UNORM_S8_UINT = 129, 703 VK_FORMAT_D32_SFLOAT_S8_UINT = 130, 704 VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131, 705 VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132, 706 VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133, 707 VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134, 708 VK_FORMAT_BC2_UNORM_BLOCK = 135, 709 VK_FORMAT_BC2_SRGB_BLOCK = 136, 710 VK_FORMAT_BC3_UNORM_BLOCK = 137, 711 VK_FORMAT_BC3_SRGB_BLOCK = 138, 712 VK_FORMAT_BC4_UNORM_BLOCK = 139, 713 VK_FORMAT_BC4_SNORM_BLOCK = 140, 714 VK_FORMAT_BC5_UNORM_BLOCK = 141, 715 VK_FORMAT_BC5_SNORM_BLOCK = 142, 716 VK_FORMAT_BC6H_UFLOAT_BLOCK = 143, 717 VK_FORMAT_BC6H_SFLOAT_BLOCK = 144, 718 VK_FORMAT_BC7_UNORM_BLOCK = 145, 719 VK_FORMAT_BC7_SRGB_BLOCK = 146, 720 VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147, 721 VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148, 722 VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149, 723 VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150, 724 VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151, 725 VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152, 726 VK_FORMAT_EAC_R11_UNORM_BLOCK = 153, 727 VK_FORMAT_EAC_R11_SNORM_BLOCK = 154, 728 VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155, 729 VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156, 730 VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157, 731 VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158, 732 VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159, 733 VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160, 734 VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161, 735 VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162, 736 VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163, 737 VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164, 738 VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165, 739 VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166, 740 VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167, 741 VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168, 742 VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169, 743 VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170, 744 VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171, 745 VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172, 746 VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173, 747 VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174, 748 VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175, 749 VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176, 750 VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177, 751 VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178, 752 VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179, 753 VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180, 754 VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181, 755 VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182, 756 VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183, 757 VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184, 758 VK_FORMAT_G8B8G8R8_422_UNORM = 1000156000, 759 VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001, 760 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002, 761 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003, 762 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004, 763 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005, 764 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006, 765 VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007, 766 VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008, 767 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009, 768 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010, 769 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011, 770 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012, 771 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013, 772 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014, 773 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015, 774 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016, 775 VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017, 776 VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018, 777 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019, 778 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020, 779 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021, 780 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022, 781 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023, 782 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024, 783 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025, 784 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026, 785 VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027, 786 VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028, 787 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029, 788 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030, 789 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031, 790 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032, 791 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033, 792 VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000, 793 VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001, 794 VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002, 795 VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003, 796 VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004, 797 VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005, 798 VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006, 799 VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007, 800 VK_FORMAT_G8B8G8R8_422_UNORM_KHR = VK_FORMAT_G8B8G8R8_422_UNORM, 801 VK_FORMAT_B8G8R8G8_422_UNORM_KHR = VK_FORMAT_B8G8R8G8_422_UNORM, 802 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM, 803 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM, 804 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM, 805 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM, 806 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM, 807 VK_FORMAT_R10X6_UNORM_PACK16_KHR = VK_FORMAT_R10X6_UNORM_PACK16, 808 VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR = VK_FORMAT_R10X6G10X6_UNORM_2PACK16, 809 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16, 810 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16, 811 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16, 812 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16, 813 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16, 814 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16, 815 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16, 816 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16, 817 VK_FORMAT_R12X4_UNORM_PACK16_KHR = VK_FORMAT_R12X4_UNORM_PACK16, 818 VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR = VK_FORMAT_R12X4G12X4_UNORM_2PACK16, 819 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16, 820 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16, 821 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16, 822 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16, 823 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16, 824 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16, 825 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16, 826 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16, 827 VK_FORMAT_G16B16G16R16_422_UNORM_KHR = VK_FORMAT_G16B16G16R16_422_UNORM, 828 VK_FORMAT_B16G16R16G16_422_UNORM_KHR = VK_FORMAT_B16G16R16G16_422_UNORM, 829 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM, 830 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM, 831 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM, 832 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM, 833 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM, 834 VK_FORMAT_BEGIN_RANGE = VK_FORMAT_UNDEFINED, 835 VK_FORMAT_END_RANGE = VK_FORMAT_ASTC_12x12_SRGB_BLOCK, 836 VK_FORMAT_RANGE_SIZE = (VK_FORMAT_ASTC_12x12_SRGB_BLOCK - VK_FORMAT_UNDEFINED + 1), 837 VK_FORMAT_MAX_ENUM = 0x7FFFFFFF 838 } VkFormat; 839 840 typedef enum VkImageType { 841 VK_IMAGE_TYPE_1D = 0, 842 VK_IMAGE_TYPE_2D = 1, 843 VK_IMAGE_TYPE_3D = 2, 844 VK_IMAGE_TYPE_BEGIN_RANGE = VK_IMAGE_TYPE_1D, 845 VK_IMAGE_TYPE_END_RANGE = VK_IMAGE_TYPE_3D, 846 VK_IMAGE_TYPE_RANGE_SIZE = (VK_IMAGE_TYPE_3D - VK_IMAGE_TYPE_1D + 1), 847 VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF 848 } VkImageType; 849 850 typedef enum VkImageTiling { 851 VK_IMAGE_TILING_OPTIMAL = 0, 852 VK_IMAGE_TILING_LINEAR = 1, 853 VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT = 1000158000, 854 VK_IMAGE_TILING_BEGIN_RANGE = VK_IMAGE_TILING_OPTIMAL, 855 VK_IMAGE_TILING_END_RANGE = VK_IMAGE_TILING_LINEAR, 856 VK_IMAGE_TILING_RANGE_SIZE = (VK_IMAGE_TILING_LINEAR - VK_IMAGE_TILING_OPTIMAL + 1), 857 VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF 858 } VkImageTiling; 859 860 typedef enum VkPhysicalDeviceType { 861 VK_PHYSICAL_DEVICE_TYPE_OTHER = 0, 862 VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1, 863 VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2, 864 VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3, 865 VK_PHYSICAL_DEVICE_TYPE_CPU = 4, 866 VK_PHYSICAL_DEVICE_TYPE_BEGIN_RANGE = VK_PHYSICAL_DEVICE_TYPE_OTHER, 867 VK_PHYSICAL_DEVICE_TYPE_END_RANGE = VK_PHYSICAL_DEVICE_TYPE_CPU, 868 VK_PHYSICAL_DEVICE_TYPE_RANGE_SIZE = (VK_PHYSICAL_DEVICE_TYPE_CPU - VK_PHYSICAL_DEVICE_TYPE_OTHER + 1), 869 VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF 870 } VkPhysicalDeviceType; 871 872 typedef enum VkQueryType { 873 VK_QUERY_TYPE_OCCLUSION = 0, 874 VK_QUERY_TYPE_PIPELINE_STATISTICS = 1, 875 VK_QUERY_TYPE_TIMESTAMP = 2, 876 VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004, 877 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000, 878 VK_QUERY_TYPE_BEGIN_RANGE = VK_QUERY_TYPE_OCCLUSION, 879 VK_QUERY_TYPE_END_RANGE = VK_QUERY_TYPE_TIMESTAMP, 880 VK_QUERY_TYPE_RANGE_SIZE = (VK_QUERY_TYPE_TIMESTAMP - VK_QUERY_TYPE_OCCLUSION + 1), 881 VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF 882 } VkQueryType; 883 884 typedef enum VkSharingMode { 885 VK_SHARING_MODE_EXCLUSIVE = 0, 886 VK_SHARING_MODE_CONCURRENT = 1, 887 VK_SHARING_MODE_BEGIN_RANGE = VK_SHARING_MODE_EXCLUSIVE, 888 VK_SHARING_MODE_END_RANGE = VK_SHARING_MODE_CONCURRENT, 889 VK_SHARING_MODE_RANGE_SIZE = (VK_SHARING_MODE_CONCURRENT - VK_SHARING_MODE_EXCLUSIVE + 1), 890 VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF 891 } VkSharingMode; 892 893 typedef enum VkImageLayout { 894 VK_IMAGE_LAYOUT_UNDEFINED = 0, 895 VK_IMAGE_LAYOUT_GENERAL = 1, 896 VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2, 897 VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3, 898 VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4, 899 VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5, 900 VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6, 901 VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7, 902 VK_IMAGE_LAYOUT_PREINITIALIZED = 8, 903 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000, 904 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001, 905 VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002, 906 VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000, 907 VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = 1000164003, 908 VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000, 909 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL, 910 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL, 911 VK_IMAGE_LAYOUT_BEGIN_RANGE = VK_IMAGE_LAYOUT_UNDEFINED, 912 VK_IMAGE_LAYOUT_END_RANGE = VK_IMAGE_LAYOUT_PREINITIALIZED, 913 VK_IMAGE_LAYOUT_RANGE_SIZE = (VK_IMAGE_LAYOUT_PREINITIALIZED - VK_IMAGE_LAYOUT_UNDEFINED + 1), 914 VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF 915 } VkImageLayout; 916 917 typedef enum VkImageViewType { 918 VK_IMAGE_VIEW_TYPE_1D = 0, 919 VK_IMAGE_VIEW_TYPE_2D = 1, 920 VK_IMAGE_VIEW_TYPE_3D = 2, 921 VK_IMAGE_VIEW_TYPE_CUBE = 3, 922 VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4, 923 VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5, 924 VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6, 925 VK_IMAGE_VIEW_TYPE_BEGIN_RANGE = VK_IMAGE_VIEW_TYPE_1D, 926 VK_IMAGE_VIEW_TYPE_END_RANGE = VK_IMAGE_VIEW_TYPE_CUBE_ARRAY, 927 VK_IMAGE_VIEW_TYPE_RANGE_SIZE = (VK_IMAGE_VIEW_TYPE_CUBE_ARRAY - VK_IMAGE_VIEW_TYPE_1D + 1), 928 VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF 929 } VkImageViewType; 930 931 typedef enum VkComponentSwizzle { 932 VK_COMPONENT_SWIZZLE_IDENTITY = 0, 933 VK_COMPONENT_SWIZZLE_ZERO = 1, 934 VK_COMPONENT_SWIZZLE_ONE = 2, 935 VK_COMPONENT_SWIZZLE_R = 3, 936 VK_COMPONENT_SWIZZLE_G = 4, 937 VK_COMPONENT_SWIZZLE_B = 5, 938 VK_COMPONENT_SWIZZLE_A = 6, 939 VK_COMPONENT_SWIZZLE_BEGIN_RANGE = VK_COMPONENT_SWIZZLE_IDENTITY, 940 VK_COMPONENT_SWIZZLE_END_RANGE = VK_COMPONENT_SWIZZLE_A, 941 VK_COMPONENT_SWIZZLE_RANGE_SIZE = (VK_COMPONENT_SWIZZLE_A - VK_COMPONENT_SWIZZLE_IDENTITY + 1), 942 VK_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF 943 } VkComponentSwizzle; 944 945 typedef enum VkVertexInputRate { 946 VK_VERTEX_INPUT_RATE_VERTEX = 0, 947 VK_VERTEX_INPUT_RATE_INSTANCE = 1, 948 VK_VERTEX_INPUT_RATE_BEGIN_RANGE = VK_VERTEX_INPUT_RATE_VERTEX, 949 VK_VERTEX_INPUT_RATE_END_RANGE = VK_VERTEX_INPUT_RATE_INSTANCE, 950 VK_VERTEX_INPUT_RATE_RANGE_SIZE = (VK_VERTEX_INPUT_RATE_INSTANCE - VK_VERTEX_INPUT_RATE_VERTEX + 1), 951 VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF 952 } VkVertexInputRate; 953 954 typedef enum VkPrimitiveTopology { 955 VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0, 956 VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1, 957 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2, 958 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3, 959 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4, 960 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5, 961 VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6, 962 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7, 963 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8, 964 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9, 965 VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10, 966 VK_PRIMITIVE_TOPOLOGY_BEGIN_RANGE = VK_PRIMITIVE_TOPOLOGY_POINT_LIST, 967 VK_PRIMITIVE_TOPOLOGY_END_RANGE = VK_PRIMITIVE_TOPOLOGY_PATCH_LIST, 968 VK_PRIMITIVE_TOPOLOGY_RANGE_SIZE = (VK_PRIMITIVE_TOPOLOGY_PATCH_LIST - VK_PRIMITIVE_TOPOLOGY_POINT_LIST + 1), 969 VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF 970 } VkPrimitiveTopology; 971 972 typedef enum VkPolygonMode { 973 VK_POLYGON_MODE_FILL = 0, 974 VK_POLYGON_MODE_LINE = 1, 975 VK_POLYGON_MODE_POINT = 2, 976 VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000, 977 VK_POLYGON_MODE_BEGIN_RANGE = VK_POLYGON_MODE_FILL, 978 VK_POLYGON_MODE_END_RANGE = VK_POLYGON_MODE_POINT, 979 VK_POLYGON_MODE_RANGE_SIZE = (VK_POLYGON_MODE_POINT - VK_POLYGON_MODE_FILL + 1), 980 VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF 981 } VkPolygonMode; 982 983 typedef enum VkFrontFace { 984 VK_FRONT_FACE_COUNTER_CLOCKWISE = 0, 985 VK_FRONT_FACE_CLOCKWISE = 1, 986 VK_FRONT_FACE_BEGIN_RANGE = VK_FRONT_FACE_COUNTER_CLOCKWISE, 987 VK_FRONT_FACE_END_RANGE = VK_FRONT_FACE_CLOCKWISE, 988 VK_FRONT_FACE_RANGE_SIZE = (VK_FRONT_FACE_CLOCKWISE - VK_FRONT_FACE_COUNTER_CLOCKWISE + 1), 989 VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF 990 } VkFrontFace; 991 992 typedef enum VkCompareOp { 993 VK_COMPARE_OP_NEVER = 0, 994 VK_COMPARE_OP_LESS = 1, 995 VK_COMPARE_OP_EQUAL = 2, 996 VK_COMPARE_OP_LESS_OR_EQUAL = 3, 997 VK_COMPARE_OP_GREATER = 4, 998 VK_COMPARE_OP_NOT_EQUAL = 5, 999 VK_COMPARE_OP_GREATER_OR_EQUAL = 6, 1000 VK_COMPARE_OP_ALWAYS = 7, 1001 VK_COMPARE_OP_BEGIN_RANGE = VK_COMPARE_OP_NEVER, 1002 VK_COMPARE_OP_END_RANGE = VK_COMPARE_OP_ALWAYS, 1003 VK_COMPARE_OP_RANGE_SIZE = (VK_COMPARE_OP_ALWAYS - VK_COMPARE_OP_NEVER + 1), 1004 VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF 1005 } VkCompareOp; 1006 1007 typedef enum VkStencilOp { 1008 VK_STENCIL_OP_KEEP = 0, 1009 VK_STENCIL_OP_ZERO = 1, 1010 VK_STENCIL_OP_REPLACE = 2, 1011 VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3, 1012 VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4, 1013 VK_STENCIL_OP_INVERT = 5, 1014 VK_STENCIL_OP_INCREMENT_AND_WRAP = 6, 1015 VK_STENCIL_OP_DECREMENT_AND_WRAP = 7, 1016 VK_STENCIL_OP_BEGIN_RANGE = VK_STENCIL_OP_KEEP, 1017 VK_STENCIL_OP_END_RANGE = VK_STENCIL_OP_DECREMENT_AND_WRAP, 1018 VK_STENCIL_OP_RANGE_SIZE = (VK_STENCIL_OP_DECREMENT_AND_WRAP - VK_STENCIL_OP_KEEP + 1), 1019 VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF 1020 } VkStencilOp; 1021 1022 typedef enum VkLogicOp { 1023 VK_LOGIC_OP_CLEAR = 0, 1024 VK_LOGIC_OP_AND = 1, 1025 VK_LOGIC_OP_AND_REVERSE = 2, 1026 VK_LOGIC_OP_COPY = 3, 1027 VK_LOGIC_OP_AND_INVERTED = 4, 1028 VK_LOGIC_OP_NO_OP = 5, 1029 VK_LOGIC_OP_XOR = 6, 1030 VK_LOGIC_OP_OR = 7, 1031 VK_LOGIC_OP_NOR = 8, 1032 VK_LOGIC_OP_EQUIVALENT = 9, 1033 VK_LOGIC_OP_INVERT = 10, 1034 VK_LOGIC_OP_OR_REVERSE = 11, 1035 VK_LOGIC_OP_COPY_INVERTED = 12, 1036 VK_LOGIC_OP_OR_INVERTED = 13, 1037 VK_LOGIC_OP_NAND = 14, 1038 VK_LOGIC_OP_SET = 15, 1039 VK_LOGIC_OP_BEGIN_RANGE = VK_LOGIC_OP_CLEAR, 1040 VK_LOGIC_OP_END_RANGE = VK_LOGIC_OP_SET, 1041 VK_LOGIC_OP_RANGE_SIZE = (VK_LOGIC_OP_SET - VK_LOGIC_OP_CLEAR + 1), 1042 VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF 1043 } VkLogicOp; 1044 1045 typedef enum VkBlendFactor { 1046 VK_BLEND_FACTOR_ZERO = 0, 1047 VK_BLEND_FACTOR_ONE = 1, 1048 VK_BLEND_FACTOR_SRC_COLOR = 2, 1049 VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3, 1050 VK_BLEND_FACTOR_DST_COLOR = 4, 1051 VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5, 1052 VK_BLEND_FACTOR_SRC_ALPHA = 6, 1053 VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7, 1054 VK_BLEND_FACTOR_DST_ALPHA = 8, 1055 VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9, 1056 VK_BLEND_FACTOR_CONSTANT_COLOR = 10, 1057 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11, 1058 VK_BLEND_FACTOR_CONSTANT_ALPHA = 12, 1059 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13, 1060 VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14, 1061 VK_BLEND_FACTOR_SRC1_COLOR = 15, 1062 VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16, 1063 VK_BLEND_FACTOR_SRC1_ALPHA = 17, 1064 VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18, 1065 VK_BLEND_FACTOR_BEGIN_RANGE = VK_BLEND_FACTOR_ZERO, 1066 VK_BLEND_FACTOR_END_RANGE = VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA, 1067 VK_BLEND_FACTOR_RANGE_SIZE = (VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA - VK_BLEND_FACTOR_ZERO + 1), 1068 VK_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF 1069 } VkBlendFactor; 1070 1071 typedef enum VkBlendOp { 1072 VK_BLEND_OP_ADD = 0, 1073 VK_BLEND_OP_SUBTRACT = 1, 1074 VK_BLEND_OP_REVERSE_SUBTRACT = 2, 1075 VK_BLEND_OP_MIN = 3, 1076 VK_BLEND_OP_MAX = 4, 1077 VK_BLEND_OP_ZERO_EXT = 1000148000, 1078 VK_BLEND_OP_SRC_EXT = 1000148001, 1079 VK_BLEND_OP_DST_EXT = 1000148002, 1080 VK_BLEND_OP_SRC_OVER_EXT = 1000148003, 1081 VK_BLEND_OP_DST_OVER_EXT = 1000148004, 1082 VK_BLEND_OP_SRC_IN_EXT = 1000148005, 1083 VK_BLEND_OP_DST_IN_EXT = 1000148006, 1084 VK_BLEND_OP_SRC_OUT_EXT = 1000148007, 1085 VK_BLEND_OP_DST_OUT_EXT = 1000148008, 1086 VK_BLEND_OP_SRC_ATOP_EXT = 1000148009, 1087 VK_BLEND_OP_DST_ATOP_EXT = 1000148010, 1088 VK_BLEND_OP_XOR_EXT = 1000148011, 1089 VK_BLEND_OP_MULTIPLY_EXT = 1000148012, 1090 VK_BLEND_OP_SCREEN_EXT = 1000148013, 1091 VK_BLEND_OP_OVERLAY_EXT = 1000148014, 1092 VK_BLEND_OP_DARKEN_EXT = 1000148015, 1093 VK_BLEND_OP_LIGHTEN_EXT = 1000148016, 1094 VK_BLEND_OP_COLORDODGE_EXT = 1000148017, 1095 VK_BLEND_OP_COLORBURN_EXT = 1000148018, 1096 VK_BLEND_OP_HARDLIGHT_EXT = 1000148019, 1097 VK_BLEND_OP_SOFTLIGHT_EXT = 1000148020, 1098 VK_BLEND_OP_DIFFERENCE_EXT = 1000148021, 1099 VK_BLEND_OP_EXCLUSION_EXT = 1000148022, 1100 VK_BLEND_OP_INVERT_EXT = 1000148023, 1101 VK_BLEND_OP_INVERT_RGB_EXT = 1000148024, 1102 VK_BLEND_OP_LINEARDODGE_EXT = 1000148025, 1103 VK_BLEND_OP_LINEARBURN_EXT = 1000148026, 1104 VK_BLEND_OP_VIVIDLIGHT_EXT = 1000148027, 1105 VK_BLEND_OP_LINEARLIGHT_EXT = 1000148028, 1106 VK_BLEND_OP_PINLIGHT_EXT = 1000148029, 1107 VK_BLEND_OP_HARDMIX_EXT = 1000148030, 1108 VK_BLEND_OP_HSL_HUE_EXT = 1000148031, 1109 VK_BLEND_OP_HSL_SATURATION_EXT = 1000148032, 1110 VK_BLEND_OP_HSL_COLOR_EXT = 1000148033, 1111 VK_BLEND_OP_HSL_LUMINOSITY_EXT = 1000148034, 1112 VK_BLEND_OP_PLUS_EXT = 1000148035, 1113 VK_BLEND_OP_PLUS_CLAMPED_EXT = 1000148036, 1114 VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037, 1115 VK_BLEND_OP_PLUS_DARKER_EXT = 1000148038, 1116 VK_BLEND_OP_MINUS_EXT = 1000148039, 1117 VK_BLEND_OP_MINUS_CLAMPED_EXT = 1000148040, 1118 VK_BLEND_OP_CONTRAST_EXT = 1000148041, 1119 VK_BLEND_OP_INVERT_OVG_EXT = 1000148042, 1120 VK_BLEND_OP_RED_EXT = 1000148043, 1121 VK_BLEND_OP_GREEN_EXT = 1000148044, 1122 VK_BLEND_OP_BLUE_EXT = 1000148045, 1123 VK_BLEND_OP_BEGIN_RANGE = VK_BLEND_OP_ADD, 1124 VK_BLEND_OP_END_RANGE = VK_BLEND_OP_MAX, 1125 VK_BLEND_OP_RANGE_SIZE = (VK_BLEND_OP_MAX - VK_BLEND_OP_ADD + 1), 1126 VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF 1127 } VkBlendOp; 1128 1129 typedef enum VkDynamicState { 1130 VK_DYNAMIC_STATE_VIEWPORT = 0, 1131 VK_DYNAMIC_STATE_SCISSOR = 1, 1132 VK_DYNAMIC_STATE_LINE_WIDTH = 2, 1133 VK_DYNAMIC_STATE_DEPTH_BIAS = 3, 1134 VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4, 1135 VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5, 1136 VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6, 1137 VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7, 1138 VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8, 1139 VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000, 1140 VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000, 1141 VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000, 1142 VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV = 1000164004, 1143 VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = 1000164006, 1144 VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = 1000205001, 1145 VK_DYNAMIC_STATE_BEGIN_RANGE = VK_DYNAMIC_STATE_VIEWPORT, 1146 VK_DYNAMIC_STATE_END_RANGE = VK_DYNAMIC_STATE_STENCIL_REFERENCE, 1147 VK_DYNAMIC_STATE_RANGE_SIZE = (VK_DYNAMIC_STATE_STENCIL_REFERENCE - VK_DYNAMIC_STATE_VIEWPORT + 1), 1148 VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF 1149 } VkDynamicState; 1150 1151 typedef enum VkFilter { 1152 VK_FILTER_NEAREST = 0, 1153 VK_FILTER_LINEAR = 1, 1154 VK_FILTER_CUBIC_IMG = 1000015000, 1155 VK_FILTER_CUBIC_EXT = VK_FILTER_CUBIC_IMG, 1156 VK_FILTER_BEGIN_RANGE = VK_FILTER_NEAREST, 1157 VK_FILTER_END_RANGE = VK_FILTER_LINEAR, 1158 VK_FILTER_RANGE_SIZE = (VK_FILTER_LINEAR - VK_FILTER_NEAREST + 1), 1159 VK_FILTER_MAX_ENUM = 0x7FFFFFFF 1160 } VkFilter; 1161 1162 typedef enum VkSamplerMipmapMode { 1163 VK_SAMPLER_MIPMAP_MODE_NEAREST = 0, 1164 VK_SAMPLER_MIPMAP_MODE_LINEAR = 1, 1165 VK_SAMPLER_MIPMAP_MODE_BEGIN_RANGE = VK_SAMPLER_MIPMAP_MODE_NEAREST, 1166 VK_SAMPLER_MIPMAP_MODE_END_RANGE = VK_SAMPLER_MIPMAP_MODE_LINEAR, 1167 VK_SAMPLER_MIPMAP_MODE_RANGE_SIZE = (VK_SAMPLER_MIPMAP_MODE_LINEAR - VK_SAMPLER_MIPMAP_MODE_NEAREST + 1), 1168 VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF 1169 } VkSamplerMipmapMode; 1170 1171 typedef enum VkSamplerAddressMode { 1172 VK_SAMPLER_ADDRESS_MODE_REPEAT = 0, 1173 VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1, 1174 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2, 1175 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3, 1176 VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4, 1177 VK_SAMPLER_ADDRESS_MODE_BEGIN_RANGE = VK_SAMPLER_ADDRESS_MODE_REPEAT, 1178 VK_SAMPLER_ADDRESS_MODE_END_RANGE = VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER, 1179 VK_SAMPLER_ADDRESS_MODE_RANGE_SIZE = (VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER - VK_SAMPLER_ADDRESS_MODE_REPEAT + 1), 1180 VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF 1181 } VkSamplerAddressMode; 1182 1183 typedef enum VkBorderColor { 1184 VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0, 1185 VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1, 1186 VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2, 1187 VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3, 1188 VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4, 1189 VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5, 1190 VK_BORDER_COLOR_BEGIN_RANGE = VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK, 1191 VK_BORDER_COLOR_END_RANGE = VK_BORDER_COLOR_INT_OPAQUE_WHITE, 1192 VK_BORDER_COLOR_RANGE_SIZE = (VK_BORDER_COLOR_INT_OPAQUE_WHITE - VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK + 1), 1193 VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF 1194 } VkBorderColor; 1195 1196 typedef enum VkDescriptorType { 1197 VK_DESCRIPTOR_TYPE_SAMPLER = 0, 1198 VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1, 1199 VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2, 1200 VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3, 1201 VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4, 1202 VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5, 1203 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6, 1204 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7, 1205 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8, 1206 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9, 1207 VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10, 1208 VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = 1000138000, 1209 VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000, 1210 VK_DESCRIPTOR_TYPE_BEGIN_RANGE = VK_DESCRIPTOR_TYPE_SAMPLER, 1211 VK_DESCRIPTOR_TYPE_END_RANGE = VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT, 1212 VK_DESCRIPTOR_TYPE_RANGE_SIZE = (VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT - VK_DESCRIPTOR_TYPE_SAMPLER + 1), 1213 VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF 1214 } VkDescriptorType; 1215 1216 typedef enum VkAttachmentLoadOp { 1217 VK_ATTACHMENT_LOAD_OP_LOAD = 0, 1218 VK_ATTACHMENT_LOAD_OP_CLEAR = 1, 1219 VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2, 1220 VK_ATTACHMENT_LOAD_OP_BEGIN_RANGE = VK_ATTACHMENT_LOAD_OP_LOAD, 1221 VK_ATTACHMENT_LOAD_OP_END_RANGE = VK_ATTACHMENT_LOAD_OP_DONT_CARE, 1222 VK_ATTACHMENT_LOAD_OP_RANGE_SIZE = (VK_ATTACHMENT_LOAD_OP_DONT_CARE - VK_ATTACHMENT_LOAD_OP_LOAD + 1), 1223 VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF 1224 } VkAttachmentLoadOp; 1225 1226 typedef enum VkAttachmentStoreOp { 1227 VK_ATTACHMENT_STORE_OP_STORE = 0, 1228 VK_ATTACHMENT_STORE_OP_DONT_CARE = 1, 1229 VK_ATTACHMENT_STORE_OP_BEGIN_RANGE = VK_ATTACHMENT_STORE_OP_STORE, 1230 VK_ATTACHMENT_STORE_OP_END_RANGE = VK_ATTACHMENT_STORE_OP_DONT_CARE, 1231 VK_ATTACHMENT_STORE_OP_RANGE_SIZE = (VK_ATTACHMENT_STORE_OP_DONT_CARE - VK_ATTACHMENT_STORE_OP_STORE + 1), 1232 VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF 1233 } VkAttachmentStoreOp; 1234 1235 typedef enum VkPipelineBindPoint { 1236 VK_PIPELINE_BIND_POINT_GRAPHICS = 0, 1237 VK_PIPELINE_BIND_POINT_COMPUTE = 1, 1238 VK_PIPELINE_BIND_POINT_RAY_TRACING_NV = 1000165000, 1239 VK_PIPELINE_BIND_POINT_BEGIN_RANGE = VK_PIPELINE_BIND_POINT_GRAPHICS, 1240 VK_PIPELINE_BIND_POINT_END_RANGE = VK_PIPELINE_BIND_POINT_COMPUTE, 1241 VK_PIPELINE_BIND_POINT_RANGE_SIZE = (VK_PIPELINE_BIND_POINT_COMPUTE - VK_PIPELINE_BIND_POINT_GRAPHICS + 1), 1242 VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF 1243 } VkPipelineBindPoint; 1244 1245 typedef enum VkCommandBufferLevel { 1246 VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0, 1247 VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1, 1248 VK_COMMAND_BUFFER_LEVEL_BEGIN_RANGE = VK_COMMAND_BUFFER_LEVEL_PRIMARY, 1249 VK_COMMAND_BUFFER_LEVEL_END_RANGE = VK_COMMAND_BUFFER_LEVEL_SECONDARY, 1250 VK_COMMAND_BUFFER_LEVEL_RANGE_SIZE = (VK_COMMAND_BUFFER_LEVEL_SECONDARY - VK_COMMAND_BUFFER_LEVEL_PRIMARY + 1), 1251 VK_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF 1252 } VkCommandBufferLevel; 1253 1254 typedef enum VkIndexType { 1255 VK_INDEX_TYPE_UINT16 = 0, 1256 VK_INDEX_TYPE_UINT32 = 1, 1257 VK_INDEX_TYPE_NONE_NV = 1000165000, 1258 VK_INDEX_TYPE_BEGIN_RANGE = VK_INDEX_TYPE_UINT16, 1259 VK_INDEX_TYPE_END_RANGE = VK_INDEX_TYPE_UINT32, 1260 VK_INDEX_TYPE_RANGE_SIZE = (VK_INDEX_TYPE_UINT32 - VK_INDEX_TYPE_UINT16 + 1), 1261 VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF 1262 } VkIndexType; 1263 1264 typedef enum VkSubpassContents { 1265 VK_SUBPASS_CONTENTS_INLINE = 0, 1266 VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1, 1267 VK_SUBPASS_CONTENTS_BEGIN_RANGE = VK_SUBPASS_CONTENTS_INLINE, 1268 VK_SUBPASS_CONTENTS_END_RANGE = VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS, 1269 VK_SUBPASS_CONTENTS_RANGE_SIZE = (VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS - VK_SUBPASS_CONTENTS_INLINE + 1), 1270 VK_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF 1271 } VkSubpassContents; 1272 1273 typedef enum VkObjectType { 1274 VK_OBJECT_TYPE_UNKNOWN = 0, 1275 VK_OBJECT_TYPE_INSTANCE = 1, 1276 VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2, 1277 VK_OBJECT_TYPE_DEVICE = 3, 1278 VK_OBJECT_TYPE_QUEUE = 4, 1279 VK_OBJECT_TYPE_SEMAPHORE = 5, 1280 VK_OBJECT_TYPE_COMMAND_BUFFER = 6, 1281 VK_OBJECT_TYPE_FENCE = 7, 1282 VK_OBJECT_TYPE_DEVICE_MEMORY = 8, 1283 VK_OBJECT_TYPE_BUFFER = 9, 1284 VK_OBJECT_TYPE_IMAGE = 10, 1285 VK_OBJECT_TYPE_EVENT = 11, 1286 VK_OBJECT_TYPE_QUERY_POOL = 12, 1287 VK_OBJECT_TYPE_BUFFER_VIEW = 13, 1288 VK_OBJECT_TYPE_IMAGE_VIEW = 14, 1289 VK_OBJECT_TYPE_SHADER_MODULE = 15, 1290 VK_OBJECT_TYPE_PIPELINE_CACHE = 16, 1291 VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17, 1292 VK_OBJECT_TYPE_RENDER_PASS = 18, 1293 VK_OBJECT_TYPE_PIPELINE = 19, 1294 VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20, 1295 VK_OBJECT_TYPE_SAMPLER = 21, 1296 VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22, 1297 VK_OBJECT_TYPE_DESCRIPTOR_SET = 23, 1298 VK_OBJECT_TYPE_FRAMEBUFFER = 24, 1299 VK_OBJECT_TYPE_COMMAND_POOL = 25, 1300 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000, 1301 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000, 1302 VK_OBJECT_TYPE_SURFACE_KHR = 1000000000, 1303 VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000, 1304 VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000, 1305 VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001, 1306 VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000, 1307 VK_OBJECT_TYPE_OBJECT_TABLE_NVX = 1000086000, 1308 VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX = 1000086001, 1309 VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000, 1310 VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000, 1311 VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000, 1312 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE, 1313 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION, 1314 VK_OBJECT_TYPE_BEGIN_RANGE = VK_OBJECT_TYPE_UNKNOWN, 1315 VK_OBJECT_TYPE_END_RANGE = VK_OBJECT_TYPE_COMMAND_POOL, 1316 VK_OBJECT_TYPE_RANGE_SIZE = (VK_OBJECT_TYPE_COMMAND_POOL - VK_OBJECT_TYPE_UNKNOWN + 1), 1317 VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF 1318 } VkObjectType; 1319 1320 typedef enum VkVendorId { 1321 VK_VENDOR_ID_VIV = 0x10001, 1322 VK_VENDOR_ID_VSI = 0x10002, 1323 VK_VENDOR_ID_KAZAN = 0x10003, 1324 VK_VENDOR_ID_BEGIN_RANGE = VK_VENDOR_ID_VIV, 1325 VK_VENDOR_ID_END_RANGE = VK_VENDOR_ID_KAZAN, 1326 VK_VENDOR_ID_RANGE_SIZE = (VK_VENDOR_ID_KAZAN - VK_VENDOR_ID_VIV + 1), 1327 VK_VENDOR_ID_MAX_ENUM = 0x7FFFFFFF 1328 } VkVendorId; 1329 1330 typedef VkFlags VkInstanceCreateFlags; 1331 1332 typedef enum VkFormatFeatureFlagBits { 1333 VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001, 1334 VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002, 1335 VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004, 1336 VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008, 1337 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010, 1338 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020, 1339 VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040, 1340 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080, 1341 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100, 1342 VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200, 1343 VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400, 1344 VK_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800, 1345 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000, 1346 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 0x00004000, 1347 VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 0x00008000, 1348 VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000, 1349 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000, 1350 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000, 1351 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000, 1352 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000, 1353 VK_FORMAT_FEATURE_DISJOINT_BIT = 0x00400000, 1354 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000, 1355 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = 0x00002000, 1356 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = 0x00010000, 1357 VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000, 1358 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT, 1359 VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_DST_BIT, 1360 VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT, 1361 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT, 1362 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT, 1363 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT, 1364 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT, 1365 VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = VK_FORMAT_FEATURE_DISJOINT_BIT, 1366 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT, 1367 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG, 1368 VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1369 } VkFormatFeatureFlagBits; 1370 typedef VkFlags VkFormatFeatureFlags; 1371 1372 typedef enum VkImageUsageFlagBits { 1373 VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001, 1374 VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002, 1375 VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004, 1376 VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008, 1377 VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010, 1378 VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020, 1379 VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040, 1380 VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080, 1381 VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00000100, 1382 VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x00000200, 1383 VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1384 } VkImageUsageFlagBits; 1385 typedef VkFlags VkImageUsageFlags; 1386 1387 typedef enum VkImageCreateFlagBits { 1388 VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001, 1389 VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, 1390 VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004, 1391 VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008, 1392 VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010, 1393 VK_IMAGE_CREATE_ALIAS_BIT = 0x00000400, 1394 VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 0x00000040, 1395 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 0x00000020, 1396 VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 0x00000080, 1397 VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0x00000100, 1398 VK_IMAGE_CREATE_PROTECTED_BIT = 0x00000800, 1399 VK_IMAGE_CREATE_DISJOINT_BIT = 0x00000200, 1400 VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 0x00002000, 1401 VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000, 1402 VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 0x00004000, 1403 VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT, 1404 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT, 1405 VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT, 1406 VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT, 1407 VK_IMAGE_CREATE_DISJOINT_BIT_KHR = VK_IMAGE_CREATE_DISJOINT_BIT, 1408 VK_IMAGE_CREATE_ALIAS_BIT_KHR = VK_IMAGE_CREATE_ALIAS_BIT, 1409 VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1410 } VkImageCreateFlagBits; 1411 typedef VkFlags VkImageCreateFlags; 1412 1413 typedef enum VkSampleCountFlagBits { 1414 VK_SAMPLE_COUNT_1_BIT = 0x00000001, 1415 VK_SAMPLE_COUNT_2_BIT = 0x00000002, 1416 VK_SAMPLE_COUNT_4_BIT = 0x00000004, 1417 VK_SAMPLE_COUNT_8_BIT = 0x00000008, 1418 VK_SAMPLE_COUNT_16_BIT = 0x00000010, 1419 VK_SAMPLE_COUNT_32_BIT = 0x00000020, 1420 VK_SAMPLE_COUNT_64_BIT = 0x00000040, 1421 VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1422 } VkSampleCountFlagBits; 1423 typedef VkFlags VkSampleCountFlags; 1424 1425 typedef enum VkQueueFlagBits { 1426 VK_QUEUE_GRAPHICS_BIT = 0x00000001, 1427 VK_QUEUE_COMPUTE_BIT = 0x00000002, 1428 VK_QUEUE_TRANSFER_BIT = 0x00000004, 1429 VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008, 1430 VK_QUEUE_PROTECTED_BIT = 0x00000010, 1431 VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1432 } VkQueueFlagBits; 1433 typedef VkFlags VkQueueFlags; 1434 1435 typedef enum VkMemoryPropertyFlagBits { 1436 VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001, 1437 VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002, 1438 VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004, 1439 VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008, 1440 VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010, 1441 VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020, 1442 VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1443 } VkMemoryPropertyFlagBits; 1444 typedef VkFlags VkMemoryPropertyFlags; 1445 1446 typedef enum VkMemoryHeapFlagBits { 1447 VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001, 1448 VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002, 1449 VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT, 1450 VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1451 } VkMemoryHeapFlagBits; 1452 typedef VkFlags VkMemoryHeapFlags; 1453 typedef VkFlags VkDeviceCreateFlags; 1454 1455 typedef enum VkDeviceQueueCreateFlagBits { 1456 VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0x00000001, 1457 VK_DEVICE_QUEUE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1458 } VkDeviceQueueCreateFlagBits; 1459 typedef VkFlags VkDeviceQueueCreateFlags; 1460 1461 typedef enum VkPipelineStageFlagBits { 1462 VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001, 1463 VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002, 1464 VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004, 1465 VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008, 1466 VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010, 1467 VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020, 1468 VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040, 1469 VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080, 1470 VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100, 1471 VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200, 1472 VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400, 1473 VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800, 1474 VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000, 1475 VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000, 1476 VK_PIPELINE_STAGE_HOST_BIT = 0x00004000, 1477 VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000, 1478 VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000, 1479 VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000, 1480 VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000, 1481 VK_PIPELINE_STAGE_COMMAND_PROCESS_BIT_NVX = 0x00020000, 1482 VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = 0x00400000, 1483 VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = 0x00200000, 1484 VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 0x02000000, 1485 VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = 0x00080000, 1486 VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = 0x00100000, 1487 VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000, 1488 VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1489 } VkPipelineStageFlagBits; 1490 typedef VkFlags VkPipelineStageFlags; 1491 typedef VkFlags VkMemoryMapFlags; 1492 1493 typedef enum VkImageAspectFlagBits { 1494 VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001, 1495 VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002, 1496 VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004, 1497 VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008, 1498 VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010, 1499 VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020, 1500 VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040, 1501 VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0x00000080, 1502 VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0x00000100, 1503 VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0x00000200, 1504 VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0x00000400, 1505 VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = VK_IMAGE_ASPECT_PLANE_0_BIT, 1506 VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = VK_IMAGE_ASPECT_PLANE_1_BIT, 1507 VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = VK_IMAGE_ASPECT_PLANE_2_BIT, 1508 VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1509 } VkImageAspectFlagBits; 1510 typedef VkFlags VkImageAspectFlags; 1511 1512 typedef enum VkSparseImageFormatFlagBits { 1513 VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001, 1514 VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 0x00000002, 1515 VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004, 1516 VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1517 } VkSparseImageFormatFlagBits; 1518 typedef VkFlags VkSparseImageFormatFlags; 1519 1520 typedef enum VkSparseMemoryBindFlagBits { 1521 VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001, 1522 VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1523 } VkSparseMemoryBindFlagBits; 1524 typedef VkFlags VkSparseMemoryBindFlags; 1525 1526 typedef enum VkFenceCreateFlagBits { 1527 VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001, 1528 VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1529 } VkFenceCreateFlagBits; 1530 typedef VkFlags VkFenceCreateFlags; 1531 typedef VkFlags VkSemaphoreCreateFlags; 1532 typedef VkFlags VkEventCreateFlags; 1533 typedef VkFlags VkQueryPoolCreateFlags; 1534 1535 typedef enum VkQueryPipelineStatisticFlagBits { 1536 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001, 1537 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002, 1538 VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004, 1539 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008, 1540 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010, 1541 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020, 1542 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040, 1543 VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080, 1544 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100, 1545 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200, 1546 VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400, 1547 VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1548 } VkQueryPipelineStatisticFlagBits; 1549 typedef VkFlags VkQueryPipelineStatisticFlags; 1550 1551 typedef enum VkQueryResultFlagBits { 1552 VK_QUERY_RESULT_64_BIT = 0x00000001, 1553 VK_QUERY_RESULT_WAIT_BIT = 0x00000002, 1554 VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004, 1555 VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008, 1556 VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1557 } VkQueryResultFlagBits; 1558 typedef VkFlags VkQueryResultFlags; 1559 1560 typedef enum VkBufferCreateFlagBits { 1561 VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001, 1562 VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, 1563 VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004, 1564 VK_BUFFER_CREATE_PROTECTED_BIT = 0x00000008, 1565 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 0x00000010, 1566 VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1567 } VkBufferCreateFlagBits; 1568 typedef VkFlags VkBufferCreateFlags; 1569 1570 typedef enum VkBufferUsageFlagBits { 1571 VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001, 1572 VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002, 1573 VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004, 1574 VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008, 1575 VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010, 1576 VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020, 1577 VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040, 1578 VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080, 1579 VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100, 1580 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800, 1581 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000, 1582 VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200, 1583 VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = 0x00000400, 1584 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT = 0x00020000, 1585 VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1586 } VkBufferUsageFlagBits; 1587 typedef VkFlags VkBufferUsageFlags; 1588 typedef VkFlags VkBufferViewCreateFlags; 1589 1590 typedef enum VkImageViewCreateFlagBits { 1591 VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 0x00000001, 1592 VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1593 } VkImageViewCreateFlagBits; 1594 typedef VkFlags VkImageViewCreateFlags; 1595 typedef VkFlags VkShaderModuleCreateFlags; 1596 typedef VkFlags VkPipelineCacheCreateFlags; 1597 1598 typedef enum VkPipelineCreateFlagBits { 1599 VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001, 1600 VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002, 1601 VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004, 1602 VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008, 1603 VK_PIPELINE_CREATE_DISPATCH_BASE = 0x00000010, 1604 VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV = 0x00000020, 1605 VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT, 1606 VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = VK_PIPELINE_CREATE_DISPATCH_BASE, 1607 VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1608 } VkPipelineCreateFlagBits; 1609 typedef VkFlags VkPipelineCreateFlags; 1610 typedef VkFlags VkPipelineShaderStageCreateFlags; 1611 1612 typedef enum VkShaderStageFlagBits { 1613 VK_SHADER_STAGE_VERTEX_BIT = 0x00000001, 1614 VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002, 1615 VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004, 1616 VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008, 1617 VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010, 1618 VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020, 1619 VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F, 1620 VK_SHADER_STAGE_ALL = 0x7FFFFFFF, 1621 VK_SHADER_STAGE_RAYGEN_BIT_NV = 0x00000100, 1622 VK_SHADER_STAGE_ANY_HIT_BIT_NV = 0x00000200, 1623 VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = 0x00000400, 1624 VK_SHADER_STAGE_MISS_BIT_NV = 0x00000800, 1625 VK_SHADER_STAGE_INTERSECTION_BIT_NV = 0x00001000, 1626 VK_SHADER_STAGE_CALLABLE_BIT_NV = 0x00002000, 1627 VK_SHADER_STAGE_TASK_BIT_NV = 0x00000040, 1628 VK_SHADER_STAGE_MESH_BIT_NV = 0x00000080, 1629 VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1630 } VkShaderStageFlagBits; 1631 typedef VkFlags VkPipelineVertexInputStateCreateFlags; 1632 typedef VkFlags VkPipelineInputAssemblyStateCreateFlags; 1633 typedef VkFlags VkPipelineTessellationStateCreateFlags; 1634 typedef VkFlags VkPipelineViewportStateCreateFlags; 1635 typedef VkFlags VkPipelineRasterizationStateCreateFlags; 1636 1637 typedef enum VkCullModeFlagBits { 1638 VK_CULL_MODE_NONE = 0, 1639 VK_CULL_MODE_FRONT_BIT = 0x00000001, 1640 VK_CULL_MODE_BACK_BIT = 0x00000002, 1641 VK_CULL_MODE_FRONT_AND_BACK = 0x00000003, 1642 VK_CULL_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1643 } VkCullModeFlagBits; 1644 typedef VkFlags VkCullModeFlags; 1645 typedef VkFlags VkPipelineMultisampleStateCreateFlags; 1646 typedef VkFlags VkPipelineDepthStencilStateCreateFlags; 1647 typedef VkFlags VkPipelineColorBlendStateCreateFlags; 1648 1649 typedef enum VkColorComponentFlagBits { 1650 VK_COLOR_COMPONENT_R_BIT = 0x00000001, 1651 VK_COLOR_COMPONENT_G_BIT = 0x00000002, 1652 VK_COLOR_COMPONENT_B_BIT = 0x00000004, 1653 VK_COLOR_COMPONENT_A_BIT = 0x00000008, 1654 VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1655 } VkColorComponentFlagBits; 1656 typedef VkFlags VkColorComponentFlags; 1657 typedef VkFlags VkPipelineDynamicStateCreateFlags; 1658 typedef VkFlags VkPipelineLayoutCreateFlags; 1659 typedef VkFlags VkShaderStageFlags; 1660 1661 typedef enum VkSamplerCreateFlagBits { 1662 VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT = 0x00000001, 1663 VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT = 0x00000002, 1664 VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1665 } VkSamplerCreateFlagBits; 1666 typedef VkFlags VkSamplerCreateFlags; 1667 1668 typedef enum VkDescriptorSetLayoutCreateFlagBits { 1669 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = 0x00000001, 1670 VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = 0x00000002, 1671 VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1672 } VkDescriptorSetLayoutCreateFlagBits; 1673 typedef VkFlags VkDescriptorSetLayoutCreateFlags; 1674 1675 typedef enum VkDescriptorPoolCreateFlagBits { 1676 VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001, 1677 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = 0x00000002, 1678 VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1679 } VkDescriptorPoolCreateFlagBits; 1680 typedef VkFlags VkDescriptorPoolCreateFlags; 1681 typedef VkFlags VkDescriptorPoolResetFlags; 1682 typedef VkFlags VkFramebufferCreateFlags; 1683 typedef VkFlags VkRenderPassCreateFlags; 1684 1685 typedef enum VkAttachmentDescriptionFlagBits { 1686 VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001, 1687 VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1688 } VkAttachmentDescriptionFlagBits; 1689 typedef VkFlags VkAttachmentDescriptionFlags; 1690 1691 typedef enum VkSubpassDescriptionFlagBits { 1692 VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001, 1693 VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002, 1694 VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1695 } VkSubpassDescriptionFlagBits; 1696 typedef VkFlags VkSubpassDescriptionFlags; 1697 1698 typedef enum VkAccessFlagBits { 1699 VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001, 1700 VK_ACCESS_INDEX_READ_BIT = 0x00000002, 1701 VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004, 1702 VK_ACCESS_UNIFORM_READ_BIT = 0x00000008, 1703 VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010, 1704 VK_ACCESS_SHADER_READ_BIT = 0x00000020, 1705 VK_ACCESS_SHADER_WRITE_BIT = 0x00000040, 1706 VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080, 1707 VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100, 1708 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200, 1709 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400, 1710 VK_ACCESS_TRANSFER_READ_BIT = 0x00000800, 1711 VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000, 1712 VK_ACCESS_HOST_READ_BIT = 0x00002000, 1713 VK_ACCESS_HOST_WRITE_BIT = 0x00004000, 1714 VK_ACCESS_MEMORY_READ_BIT = 0x00008000, 1715 VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000, 1716 VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000, 1717 VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000, 1718 VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000, 1719 VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000, 1720 VK_ACCESS_COMMAND_PROCESS_READ_BIT_NVX = 0x00020000, 1721 VK_ACCESS_COMMAND_PROCESS_WRITE_BIT_NVX = 0x00040000, 1722 VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000, 1723 VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000, 1724 VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV = 0x00200000, 1725 VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV = 0x00400000, 1726 VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000, 1727 VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1728 } VkAccessFlagBits; 1729 typedef VkFlags VkAccessFlags; 1730 1731 typedef enum VkDependencyFlagBits { 1732 VK_DEPENDENCY_BY_REGION_BIT = 0x00000001, 1733 VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004, 1734 VK_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002, 1735 VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = VK_DEPENDENCY_VIEW_LOCAL_BIT, 1736 VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = VK_DEPENDENCY_DEVICE_GROUP_BIT, 1737 VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1738 } VkDependencyFlagBits; 1739 typedef VkFlags VkDependencyFlags; 1740 1741 typedef enum VkCommandPoolCreateFlagBits { 1742 VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001, 1743 VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002, 1744 VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 0x00000004, 1745 VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1746 } VkCommandPoolCreateFlagBits; 1747 typedef VkFlags VkCommandPoolCreateFlags; 1748 1749 typedef enum VkCommandPoolResetFlagBits { 1750 VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001, 1751 VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1752 } VkCommandPoolResetFlagBits; 1753 typedef VkFlags VkCommandPoolResetFlags; 1754 1755 typedef enum VkCommandBufferUsageFlagBits { 1756 VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001, 1757 VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002, 1758 VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004, 1759 VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1760 } VkCommandBufferUsageFlagBits; 1761 typedef VkFlags VkCommandBufferUsageFlags; 1762 1763 typedef enum VkQueryControlFlagBits { 1764 VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001, 1765 VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1766 } VkQueryControlFlagBits; 1767 typedef VkFlags VkQueryControlFlags; 1768 1769 typedef enum VkCommandBufferResetFlagBits { 1770 VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001, 1771 VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1772 } VkCommandBufferResetFlagBits; 1773 typedef VkFlags VkCommandBufferResetFlags; 1774 1775 typedef enum VkStencilFaceFlagBits { 1776 VK_STENCIL_FACE_FRONT_BIT = 0x00000001, 1777 VK_STENCIL_FACE_BACK_BIT = 0x00000002, 1778 VK_STENCIL_FRONT_AND_BACK = 0x00000003, 1779 VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1780 } VkStencilFaceFlagBits; 1781 typedef VkFlags VkStencilFaceFlags; 1782 1783 typedef struct VkApplicationInfo { 1784 VkStructureType sType; 1785 const void* pNext; 1786 const char* pApplicationName; 1787 uint32_t applicationVersion; 1788 const char* pEngineName; 1789 uint32_t engineVersion; 1790 uint32_t apiVersion; 1791 } VkApplicationInfo; 1792 1793 typedef struct VkInstanceCreateInfo { 1794 VkStructureType sType; 1795 const void* pNext; 1796 VkInstanceCreateFlags flags; 1797 const VkApplicationInfo* pApplicationInfo; 1798 uint32_t enabledLayerCount; 1799 const char* const* ppEnabledLayerNames; 1800 uint32_t enabledExtensionCount; 1801 const char* const* ppEnabledExtensionNames; 1802 } VkInstanceCreateInfo; 1803 1804 typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)( 1805 void* pUserData, 1806 size_t size, 1807 size_t alignment, 1808 VkSystemAllocationScope allocationScope); 1809 1810 typedef void* (VKAPI_PTR *PFN_vkReallocationFunction)( 1811 void* pUserData, 1812 void* pOriginal, 1813 size_t size, 1814 size_t alignment, 1815 VkSystemAllocationScope allocationScope); 1816 1817 typedef void (VKAPI_PTR *PFN_vkFreeFunction)( 1818 void* pUserData, 1819 void* pMemory); 1820 1821 typedef void (VKAPI_PTR *PFN_vkInternalAllocationNotification)( 1822 void* pUserData, 1823 size_t size, 1824 VkInternalAllocationType allocationType, 1825 VkSystemAllocationScope allocationScope); 1826 1827 typedef void (VKAPI_PTR *PFN_vkInternalFreeNotification)( 1828 void* pUserData, 1829 size_t size, 1830 VkInternalAllocationType allocationType, 1831 VkSystemAllocationScope allocationScope); 1832 1833 typedef struct VkAllocationCallbacks { 1834 void* pUserData; 1835 PFN_vkAllocationFunction pfnAllocation; 1836 PFN_vkReallocationFunction pfnReallocation; 1837 PFN_vkFreeFunction pfnFree; 1838 PFN_vkInternalAllocationNotification pfnInternalAllocation; 1839 PFN_vkInternalFreeNotification pfnInternalFree; 1840 } VkAllocationCallbacks; 1841 1842 typedef struct VkPhysicalDeviceFeatures { 1843 VkBool32 robustBufferAccess; 1844 VkBool32 fullDrawIndexUint32; 1845 VkBool32 imageCubeArray; 1846 VkBool32 independentBlend; 1847 VkBool32 geometryShader; 1848 VkBool32 tessellationShader; 1849 VkBool32 sampleRateShading; 1850 VkBool32 dualSrcBlend; 1851 VkBool32 logicOp; 1852 VkBool32 multiDrawIndirect; 1853 VkBool32 drawIndirectFirstInstance; 1854 VkBool32 depthClamp; 1855 VkBool32 depthBiasClamp; 1856 VkBool32 fillModeNonSolid; 1857 VkBool32 depthBounds; 1858 VkBool32 wideLines; 1859 VkBool32 largePoints; 1860 VkBool32 alphaToOne; 1861 VkBool32 multiViewport; 1862 VkBool32 samplerAnisotropy; 1863 VkBool32 textureCompressionETC2; 1864 VkBool32 textureCompressionASTC_LDR; 1865 VkBool32 textureCompressionBC; 1866 VkBool32 occlusionQueryPrecise; 1867 VkBool32 pipelineStatisticsQuery; 1868 VkBool32 vertexPipelineStoresAndAtomics; 1869 VkBool32 fragmentStoresAndAtomics; 1870 VkBool32 shaderTessellationAndGeometryPointSize; 1871 VkBool32 shaderImageGatherExtended; 1872 VkBool32 shaderStorageImageExtendedFormats; 1873 VkBool32 shaderStorageImageMultisample; 1874 VkBool32 shaderStorageImageReadWithoutFormat; 1875 VkBool32 shaderStorageImageWriteWithoutFormat; 1876 VkBool32 shaderUniformBufferArrayDynamicIndexing; 1877 VkBool32 shaderSampledImageArrayDynamicIndexing; 1878 VkBool32 shaderStorageBufferArrayDynamicIndexing; 1879 VkBool32 shaderStorageImageArrayDynamicIndexing; 1880 VkBool32 shaderClipDistance; 1881 VkBool32 shaderCullDistance; 1882 VkBool32 shaderFloat64; 1883 VkBool32 shaderInt64; 1884 VkBool32 shaderInt16; 1885 VkBool32 shaderResourceResidency; 1886 VkBool32 shaderResourceMinLod; 1887 VkBool32 sparseBinding; 1888 VkBool32 sparseResidencyBuffer; 1889 VkBool32 sparseResidencyImage2D; 1890 VkBool32 sparseResidencyImage3D; 1891 VkBool32 sparseResidency2Samples; 1892 VkBool32 sparseResidency4Samples; 1893 VkBool32 sparseResidency8Samples; 1894 VkBool32 sparseResidency16Samples; 1895 VkBool32 sparseResidencyAliased; 1896 VkBool32 variableMultisampleRate; 1897 VkBool32 inheritedQueries; 1898 } VkPhysicalDeviceFeatures; 1899 1900 typedef struct VkFormatProperties { 1901 VkFormatFeatureFlags linearTilingFeatures; 1902 VkFormatFeatureFlags optimalTilingFeatures; 1903 VkFormatFeatureFlags bufferFeatures; 1904 } VkFormatProperties; 1905 1906 typedef struct VkExtent3D { 1907 uint32_t width; 1908 uint32_t height; 1909 uint32_t depth; 1910 } VkExtent3D; 1911 1912 typedef struct VkImageFormatProperties { 1913 VkExtent3D maxExtent; 1914 uint32_t maxMipLevels; 1915 uint32_t maxArrayLayers; 1916 VkSampleCountFlags sampleCounts; 1917 VkDeviceSize maxResourceSize; 1918 } VkImageFormatProperties; 1919 1920 typedef struct VkPhysicalDeviceLimits { 1921 uint32_t maxImageDimension1D; 1922 uint32_t maxImageDimension2D; 1923 uint32_t maxImageDimension3D; 1924 uint32_t maxImageDimensionCube; 1925 uint32_t maxImageArrayLayers; 1926 uint32_t maxTexelBufferElements; 1927 uint32_t maxUniformBufferRange; 1928 uint32_t maxStorageBufferRange; 1929 uint32_t maxPushConstantsSize; 1930 uint32_t maxMemoryAllocationCount; 1931 uint32_t maxSamplerAllocationCount; 1932 VkDeviceSize bufferImageGranularity; 1933 VkDeviceSize sparseAddressSpaceSize; 1934 uint32_t maxBoundDescriptorSets; 1935 uint32_t maxPerStageDescriptorSamplers; 1936 uint32_t maxPerStageDescriptorUniformBuffers; 1937 uint32_t maxPerStageDescriptorStorageBuffers; 1938 uint32_t maxPerStageDescriptorSampledImages; 1939 uint32_t maxPerStageDescriptorStorageImages; 1940 uint32_t maxPerStageDescriptorInputAttachments; 1941 uint32_t maxPerStageResources; 1942 uint32_t maxDescriptorSetSamplers; 1943 uint32_t maxDescriptorSetUniformBuffers; 1944 uint32_t maxDescriptorSetUniformBuffersDynamic; 1945 uint32_t maxDescriptorSetStorageBuffers; 1946 uint32_t maxDescriptorSetStorageBuffersDynamic; 1947 uint32_t maxDescriptorSetSampledImages; 1948 uint32_t maxDescriptorSetStorageImages; 1949 uint32_t maxDescriptorSetInputAttachments; 1950 uint32_t maxVertexInputAttributes; 1951 uint32_t maxVertexInputBindings; 1952 uint32_t maxVertexInputAttributeOffset; 1953 uint32_t maxVertexInputBindingStride; 1954 uint32_t maxVertexOutputComponents; 1955 uint32_t maxTessellationGenerationLevel; 1956 uint32_t maxTessellationPatchSize; 1957 uint32_t maxTessellationControlPerVertexInputComponents; 1958 uint32_t maxTessellationControlPerVertexOutputComponents; 1959 uint32_t maxTessellationControlPerPatchOutputComponents; 1960 uint32_t maxTessellationControlTotalOutputComponents; 1961 uint32_t maxTessellationEvaluationInputComponents; 1962 uint32_t maxTessellationEvaluationOutputComponents; 1963 uint32_t maxGeometryShaderInvocations; 1964 uint32_t maxGeometryInputComponents; 1965 uint32_t maxGeometryOutputComponents; 1966 uint32_t maxGeometryOutputVertices; 1967 uint32_t maxGeometryTotalOutputComponents; 1968 uint32_t maxFragmentInputComponents; 1969 uint32_t maxFragmentOutputAttachments; 1970 uint32_t maxFragmentDualSrcAttachments; 1971 uint32_t maxFragmentCombinedOutputResources; 1972 uint32_t maxComputeSharedMemorySize; 1973 uint32_t maxComputeWorkGroupCount[3]; 1974 uint32_t maxComputeWorkGroupInvocations; 1975 uint32_t maxComputeWorkGroupSize[3]; 1976 uint32_t subPixelPrecisionBits; 1977 uint32_t subTexelPrecisionBits; 1978 uint32_t mipmapPrecisionBits; 1979 uint32_t maxDrawIndexedIndexValue; 1980 uint32_t maxDrawIndirectCount; 1981 float maxSamplerLodBias; 1982 float maxSamplerAnisotropy; 1983 uint32_t maxViewports; 1984 uint32_t maxViewportDimensions[2]; 1985 float viewportBoundsRange[2]; 1986 uint32_t viewportSubPixelBits; 1987 size_t minMemoryMapAlignment; 1988 VkDeviceSize minTexelBufferOffsetAlignment; 1989 VkDeviceSize minUniformBufferOffsetAlignment; 1990 VkDeviceSize minStorageBufferOffsetAlignment; 1991 int32_t minTexelOffset; 1992 uint32_t maxTexelOffset; 1993 int32_t minTexelGatherOffset; 1994 uint32_t maxTexelGatherOffset; 1995 float minInterpolationOffset; 1996 float maxInterpolationOffset; 1997 uint32_t subPixelInterpolationOffsetBits; 1998 uint32_t maxFramebufferWidth; 1999 uint32_t maxFramebufferHeight; 2000 uint32_t maxFramebufferLayers; 2001 VkSampleCountFlags framebufferColorSampleCounts; 2002 VkSampleCountFlags framebufferDepthSampleCounts; 2003 VkSampleCountFlags framebufferStencilSampleCounts; 2004 VkSampleCountFlags framebufferNoAttachmentsSampleCounts; 2005 uint32_t maxColorAttachments; 2006 VkSampleCountFlags sampledImageColorSampleCounts; 2007 VkSampleCountFlags sampledImageIntegerSampleCounts; 2008 VkSampleCountFlags sampledImageDepthSampleCounts; 2009 VkSampleCountFlags sampledImageStencilSampleCounts; 2010 VkSampleCountFlags storageImageSampleCounts; 2011 uint32_t maxSampleMaskWords; 2012 VkBool32 timestampComputeAndGraphics; 2013 float timestampPeriod; 2014 uint32_t maxClipDistances; 2015 uint32_t maxCullDistances; 2016 uint32_t maxCombinedClipAndCullDistances; 2017 uint32_t discreteQueuePriorities; 2018 float pointSizeRange[2]; 2019 float lineWidthRange[2]; 2020 float pointSizeGranularity; 2021 float lineWidthGranularity; 2022 VkBool32 strictLines; 2023 VkBool32 standardSampleLocations; 2024 VkDeviceSize optimalBufferCopyOffsetAlignment; 2025 VkDeviceSize optimalBufferCopyRowPitchAlignment; 2026 VkDeviceSize nonCoherentAtomSize; 2027 } VkPhysicalDeviceLimits; 2028 2029 typedef struct VkPhysicalDeviceSparseProperties { 2030 VkBool32 residencyStandard2DBlockShape; 2031 VkBool32 residencyStandard2DMultisampleBlockShape; 2032 VkBool32 residencyStandard3DBlockShape; 2033 VkBool32 residencyAlignedMipSize; 2034 VkBool32 residencyNonResidentStrict; 2035 } VkPhysicalDeviceSparseProperties; 2036 2037 typedef struct VkPhysicalDeviceProperties { 2038 uint32_t apiVersion; 2039 uint32_t driverVersion; 2040 uint32_t vendorID; 2041 uint32_t deviceID; 2042 VkPhysicalDeviceType deviceType; 2043 char deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE]; 2044 uint8_t pipelineCacheUUID[VK_UUID_SIZE]; 2045 VkPhysicalDeviceLimits limits; 2046 VkPhysicalDeviceSparseProperties sparseProperties; 2047 } VkPhysicalDeviceProperties; 2048 2049 typedef struct VkQueueFamilyProperties { 2050 VkQueueFlags queueFlags; 2051 uint32_t queueCount; 2052 uint32_t timestampValidBits; 2053 VkExtent3D minImageTransferGranularity; 2054 } VkQueueFamilyProperties; 2055 2056 typedef struct VkMemoryType { 2057 VkMemoryPropertyFlags propertyFlags; 2058 uint32_t heapIndex; 2059 } VkMemoryType; 2060 2061 typedef struct VkMemoryHeap { 2062 VkDeviceSize size; 2063 VkMemoryHeapFlags flags; 2064 } VkMemoryHeap; 2065 2066 typedef struct VkPhysicalDeviceMemoryProperties { 2067 uint32_t memoryTypeCount; 2068 VkMemoryType memoryTypes[VK_MAX_MEMORY_TYPES]; 2069 uint32_t memoryHeapCount; 2070 VkMemoryHeap memoryHeaps[VK_MAX_MEMORY_HEAPS]; 2071 } VkPhysicalDeviceMemoryProperties; 2072 2073 typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void); 2074 typedef struct VkDeviceQueueCreateInfo { 2075 VkStructureType sType; 2076 const void* pNext; 2077 VkDeviceQueueCreateFlags flags; 2078 uint32_t queueFamilyIndex; 2079 uint32_t queueCount; 2080 const float* pQueuePriorities; 2081 } VkDeviceQueueCreateInfo; 2082 2083 typedef struct VkDeviceCreateInfo { 2084 VkStructureType sType; 2085 const void* pNext; 2086 VkDeviceCreateFlags flags; 2087 uint32_t queueCreateInfoCount; 2088 const VkDeviceQueueCreateInfo* pQueueCreateInfos; 2089 uint32_t enabledLayerCount; 2090 const char* const* ppEnabledLayerNames; 2091 uint32_t enabledExtensionCount; 2092 const char* const* ppEnabledExtensionNames; 2093 const VkPhysicalDeviceFeatures* pEnabledFeatures; 2094 } VkDeviceCreateInfo; 2095 2096 typedef struct VkExtensionProperties { 2097 char extensionName[VK_MAX_EXTENSION_NAME_SIZE]; 2098 uint32_t specVersion; 2099 } VkExtensionProperties; 2100 2101 typedef struct VkLayerProperties { 2102 char layerName[VK_MAX_EXTENSION_NAME_SIZE]; 2103 uint32_t specVersion; 2104 uint32_t implementationVersion; 2105 char description[VK_MAX_DESCRIPTION_SIZE]; 2106 } VkLayerProperties; 2107 2108 typedef struct VkSubmitInfo { 2109 VkStructureType sType; 2110 const void* pNext; 2111 uint32_t waitSemaphoreCount; 2112 const VkSemaphore* pWaitSemaphores; 2113 const VkPipelineStageFlags* pWaitDstStageMask; 2114 uint32_t commandBufferCount; 2115 const VkCommandBuffer* pCommandBuffers; 2116 uint32_t signalSemaphoreCount; 2117 const VkSemaphore* pSignalSemaphores; 2118 } VkSubmitInfo; 2119 2120 typedef struct VkMemoryAllocateInfo { 2121 VkStructureType sType; 2122 const void* pNext; 2123 VkDeviceSize allocationSize; 2124 uint32_t memoryTypeIndex; 2125 } VkMemoryAllocateInfo; 2126 2127 typedef struct VkMappedMemoryRange { 2128 VkStructureType sType; 2129 const void* pNext; 2130 VkDeviceMemory memory; 2131 VkDeviceSize offset; 2132 VkDeviceSize size; 2133 } VkMappedMemoryRange; 2134 2135 typedef struct VkMemoryRequirements { 2136 VkDeviceSize size; 2137 VkDeviceSize alignment; 2138 uint32_t memoryTypeBits; 2139 } VkMemoryRequirements; 2140 2141 typedef struct VkSparseImageFormatProperties { 2142 VkImageAspectFlags aspectMask; 2143 VkExtent3D imageGranularity; 2144 VkSparseImageFormatFlags flags; 2145 } VkSparseImageFormatProperties; 2146 2147 typedef struct VkSparseImageMemoryRequirements { 2148 VkSparseImageFormatProperties formatProperties; 2149 uint32_t imageMipTailFirstLod; 2150 VkDeviceSize imageMipTailSize; 2151 VkDeviceSize imageMipTailOffset; 2152 VkDeviceSize imageMipTailStride; 2153 } VkSparseImageMemoryRequirements; 2154 2155 typedef struct VkSparseMemoryBind { 2156 VkDeviceSize resourceOffset; 2157 VkDeviceSize size; 2158 VkDeviceMemory memory; 2159 VkDeviceSize memoryOffset; 2160 VkSparseMemoryBindFlags flags; 2161 } VkSparseMemoryBind; 2162 2163 typedef struct VkSparseBufferMemoryBindInfo { 2164 VkBuffer buffer; 2165 uint32_t bindCount; 2166 const VkSparseMemoryBind* pBinds; 2167 } VkSparseBufferMemoryBindInfo; 2168 2169 typedef struct VkSparseImageOpaqueMemoryBindInfo { 2170 VkImage image; 2171 uint32_t bindCount; 2172 const VkSparseMemoryBind* pBinds; 2173 } VkSparseImageOpaqueMemoryBindInfo; 2174 2175 typedef struct VkImageSubresource { 2176 VkImageAspectFlags aspectMask; 2177 uint32_t mipLevel; 2178 uint32_t arrayLayer; 2179 } VkImageSubresource; 2180 2181 typedef struct VkOffset3D { 2182 int32_t x; 2183 int32_t y; 2184 int32_t z; 2185 } VkOffset3D; 2186 2187 typedef struct VkSparseImageMemoryBind { 2188 VkImageSubresource subresource; 2189 VkOffset3D offset; 2190 VkExtent3D extent; 2191 VkDeviceMemory memory; 2192 VkDeviceSize memoryOffset; 2193 VkSparseMemoryBindFlags flags; 2194 } VkSparseImageMemoryBind; 2195 2196 typedef struct VkSparseImageMemoryBindInfo { 2197 VkImage image; 2198 uint32_t bindCount; 2199 const VkSparseImageMemoryBind* pBinds; 2200 } VkSparseImageMemoryBindInfo; 2201 2202 typedef struct VkBindSparseInfo { 2203 VkStructureType sType; 2204 const void* pNext; 2205 uint32_t waitSemaphoreCount; 2206 const VkSemaphore* pWaitSemaphores; 2207 uint32_t bufferBindCount; 2208 const VkSparseBufferMemoryBindInfo* pBufferBinds; 2209 uint32_t imageOpaqueBindCount; 2210 const VkSparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds; 2211 uint32_t imageBindCount; 2212 const VkSparseImageMemoryBindInfo* pImageBinds; 2213 uint32_t signalSemaphoreCount; 2214 const VkSemaphore* pSignalSemaphores; 2215 } VkBindSparseInfo; 2216 2217 typedef struct VkFenceCreateInfo { 2218 VkStructureType sType; 2219 const void* pNext; 2220 VkFenceCreateFlags flags; 2221 } VkFenceCreateInfo; 2222 2223 typedef struct VkSemaphoreCreateInfo { 2224 VkStructureType sType; 2225 const void* pNext; 2226 VkSemaphoreCreateFlags flags; 2227 } VkSemaphoreCreateInfo; 2228 2229 typedef struct VkEventCreateInfo { 2230 VkStructureType sType; 2231 const void* pNext; 2232 VkEventCreateFlags flags; 2233 } VkEventCreateInfo; 2234 2235 typedef struct VkQueryPoolCreateInfo { 2236 VkStructureType sType; 2237 const void* pNext; 2238 VkQueryPoolCreateFlags flags; 2239 VkQueryType queryType; 2240 uint32_t queryCount; 2241 VkQueryPipelineStatisticFlags pipelineStatistics; 2242 } VkQueryPoolCreateInfo; 2243 2244 typedef struct VkBufferCreateInfo { 2245 VkStructureType sType; 2246 const void* pNext; 2247 VkBufferCreateFlags flags; 2248 VkDeviceSize size; 2249 VkBufferUsageFlags usage; 2250 VkSharingMode sharingMode; 2251 uint32_t queueFamilyIndexCount; 2252 const uint32_t* pQueueFamilyIndices; 2253 } VkBufferCreateInfo; 2254 2255 typedef struct VkBufferViewCreateInfo { 2256 VkStructureType sType; 2257 const void* pNext; 2258 VkBufferViewCreateFlags flags; 2259 VkBuffer buffer; 2260 VkFormat format; 2261 VkDeviceSize offset; 2262 VkDeviceSize range; 2263 } VkBufferViewCreateInfo; 2264 2265 typedef struct VkImageCreateInfo { 2266 VkStructureType sType; 2267 const void* pNext; 2268 VkImageCreateFlags flags; 2269 VkImageType imageType; 2270 VkFormat format; 2271 VkExtent3D extent; 2272 uint32_t mipLevels; 2273 uint32_t arrayLayers; 2274 VkSampleCountFlagBits samples; 2275 VkImageTiling tiling; 2276 VkImageUsageFlags usage; 2277 VkSharingMode sharingMode; 2278 uint32_t queueFamilyIndexCount; 2279 const uint32_t* pQueueFamilyIndices; 2280 VkImageLayout initialLayout; 2281 } VkImageCreateInfo; 2282 2283 typedef struct VkSubresourceLayout { 2284 VkDeviceSize offset; 2285 VkDeviceSize size; 2286 VkDeviceSize rowPitch; 2287 VkDeviceSize arrayPitch; 2288 VkDeviceSize depthPitch; 2289 } VkSubresourceLayout; 2290 2291 typedef struct VkComponentMapping { 2292 VkComponentSwizzle r; 2293 VkComponentSwizzle g; 2294 VkComponentSwizzle b; 2295 VkComponentSwizzle a; 2296 } VkComponentMapping; 2297 2298 typedef struct VkImageSubresourceRange { 2299 VkImageAspectFlags aspectMask; 2300 uint32_t baseMipLevel; 2301 uint32_t levelCount; 2302 uint32_t baseArrayLayer; 2303 uint32_t layerCount; 2304 } VkImageSubresourceRange; 2305 2306 typedef struct VkImageViewCreateInfo { 2307 VkStructureType sType; 2308 const void* pNext; 2309 VkImageViewCreateFlags flags; 2310 VkImage image; 2311 VkImageViewType viewType; 2312 VkFormat format; 2313 VkComponentMapping components; 2314 VkImageSubresourceRange subresourceRange; 2315 } VkImageViewCreateInfo; 2316 2317 typedef struct VkShaderModuleCreateInfo { 2318 VkStructureType sType; 2319 const void* pNext; 2320 VkShaderModuleCreateFlags flags; 2321 size_t codeSize; 2322 const uint32_t* pCode; 2323 } VkShaderModuleCreateInfo; 2324 2325 typedef struct VkPipelineCacheCreateInfo { 2326 VkStructureType sType; 2327 const void* pNext; 2328 VkPipelineCacheCreateFlags flags; 2329 size_t initialDataSize; 2330 const void* pInitialData; 2331 } VkPipelineCacheCreateInfo; 2332 2333 typedef struct VkSpecializationMapEntry { 2334 uint32_t constantID; 2335 uint32_t offset; 2336 size_t size; 2337 } VkSpecializationMapEntry; 2338 2339 typedef struct VkSpecializationInfo { 2340 uint32_t mapEntryCount; 2341 const VkSpecializationMapEntry* pMapEntries; 2342 size_t dataSize; 2343 const void* pData; 2344 } VkSpecializationInfo; 2345 2346 typedef struct VkPipelineShaderStageCreateInfo { 2347 VkStructureType sType; 2348 const void* pNext; 2349 VkPipelineShaderStageCreateFlags flags; 2350 VkShaderStageFlagBits stage; 2351 VkShaderModule module; 2352 const char* pName; 2353 const VkSpecializationInfo* pSpecializationInfo; 2354 } VkPipelineShaderStageCreateInfo; 2355 2356 typedef struct VkVertexInputBindingDescription { 2357 uint32_t binding; 2358 uint32_t stride; 2359 VkVertexInputRate inputRate; 2360 } VkVertexInputBindingDescription; 2361 2362 typedef struct VkVertexInputAttributeDescription { 2363 uint32_t location; 2364 uint32_t binding; 2365 VkFormat format; 2366 uint32_t offset; 2367 } VkVertexInputAttributeDescription; 2368 2369 typedef struct VkPipelineVertexInputStateCreateInfo { 2370 VkStructureType sType; 2371 const void* pNext; 2372 VkPipelineVertexInputStateCreateFlags flags; 2373 uint32_t vertexBindingDescriptionCount; 2374 const VkVertexInputBindingDescription* pVertexBindingDescriptions; 2375 uint32_t vertexAttributeDescriptionCount; 2376 const VkVertexInputAttributeDescription* pVertexAttributeDescriptions; 2377 } VkPipelineVertexInputStateCreateInfo; 2378 2379 typedef struct VkPipelineInputAssemblyStateCreateInfo { 2380 VkStructureType sType; 2381 const void* pNext; 2382 VkPipelineInputAssemblyStateCreateFlags flags; 2383 VkPrimitiveTopology topology; 2384 VkBool32 primitiveRestartEnable; 2385 } VkPipelineInputAssemblyStateCreateInfo; 2386 2387 typedef struct VkPipelineTessellationStateCreateInfo { 2388 VkStructureType sType; 2389 const void* pNext; 2390 VkPipelineTessellationStateCreateFlags flags; 2391 uint32_t patchControlPoints; 2392 } VkPipelineTessellationStateCreateInfo; 2393 2394 typedef struct VkViewport { 2395 float x; 2396 float y; 2397 float width; 2398 float height; 2399 float minDepth; 2400 float maxDepth; 2401 } VkViewport; 2402 2403 typedef struct VkOffset2D { 2404 int32_t x; 2405 int32_t y; 2406 } VkOffset2D; 2407 2408 typedef struct VkExtent2D { 2409 uint32_t width; 2410 uint32_t height; 2411 } VkExtent2D; 2412 2413 typedef struct VkRect2D { 2414 VkOffset2D offset; 2415 VkExtent2D extent; 2416 } VkRect2D; 2417 2418 typedef struct VkPipelineViewportStateCreateInfo { 2419 VkStructureType sType; 2420 const void* pNext; 2421 VkPipelineViewportStateCreateFlags flags; 2422 uint32_t viewportCount; 2423 const VkViewport* pViewports; 2424 uint32_t scissorCount; 2425 const VkRect2D* pScissors; 2426 } VkPipelineViewportStateCreateInfo; 2427 2428 typedef struct VkPipelineRasterizationStateCreateInfo { 2429 VkStructureType sType; 2430 const void* pNext; 2431 VkPipelineRasterizationStateCreateFlags flags; 2432 VkBool32 depthClampEnable; 2433 VkBool32 rasterizerDiscardEnable; 2434 VkPolygonMode polygonMode; 2435 VkCullModeFlags cullMode; 2436 VkFrontFace frontFace; 2437 VkBool32 depthBiasEnable; 2438 float depthBiasConstantFactor; 2439 float depthBiasClamp; 2440 float depthBiasSlopeFactor; 2441 float lineWidth; 2442 } VkPipelineRasterizationStateCreateInfo; 2443 2444 typedef struct VkPipelineMultisampleStateCreateInfo { 2445 VkStructureType sType; 2446 const void* pNext; 2447 VkPipelineMultisampleStateCreateFlags flags; 2448 VkSampleCountFlagBits rasterizationSamples; 2449 VkBool32 sampleShadingEnable; 2450 float minSampleShading; 2451 const VkSampleMask* pSampleMask; 2452 VkBool32 alphaToCoverageEnable; 2453 VkBool32 alphaToOneEnable; 2454 } VkPipelineMultisampleStateCreateInfo; 2455 2456 typedef struct VkStencilOpState { 2457 VkStencilOp failOp; 2458 VkStencilOp passOp; 2459 VkStencilOp depthFailOp; 2460 VkCompareOp compareOp; 2461 uint32_t compareMask; 2462 uint32_t writeMask; 2463 uint32_t reference; 2464 } VkStencilOpState; 2465 2466 typedef struct VkPipelineDepthStencilStateCreateInfo { 2467 VkStructureType sType; 2468 const void* pNext; 2469 VkPipelineDepthStencilStateCreateFlags flags; 2470 VkBool32 depthTestEnable; 2471 VkBool32 depthWriteEnable; 2472 VkCompareOp depthCompareOp; 2473 VkBool32 depthBoundsTestEnable; 2474 VkBool32 stencilTestEnable; 2475 VkStencilOpState front; 2476 VkStencilOpState back; 2477 float minDepthBounds; 2478 float maxDepthBounds; 2479 } VkPipelineDepthStencilStateCreateInfo; 2480 2481 typedef struct VkPipelineColorBlendAttachmentState { 2482 VkBool32 blendEnable; 2483 VkBlendFactor srcColorBlendFactor; 2484 VkBlendFactor dstColorBlendFactor; 2485 VkBlendOp colorBlendOp; 2486 VkBlendFactor srcAlphaBlendFactor; 2487 VkBlendFactor dstAlphaBlendFactor; 2488 VkBlendOp alphaBlendOp; 2489 VkColorComponentFlags colorWriteMask; 2490 } VkPipelineColorBlendAttachmentState; 2491 2492 typedef struct VkPipelineColorBlendStateCreateInfo { 2493 VkStructureType sType; 2494 const void* pNext; 2495 VkPipelineColorBlendStateCreateFlags flags; 2496 VkBool32 logicOpEnable; 2497 VkLogicOp logicOp; 2498 uint32_t attachmentCount; 2499 const VkPipelineColorBlendAttachmentState* pAttachments; 2500 float blendConstants[4]; 2501 } VkPipelineColorBlendStateCreateInfo; 2502 2503 typedef struct VkPipelineDynamicStateCreateInfo { 2504 VkStructureType sType; 2505 const void* pNext; 2506 VkPipelineDynamicStateCreateFlags flags; 2507 uint32_t dynamicStateCount; 2508 const VkDynamicState* pDynamicStates; 2509 } VkPipelineDynamicStateCreateInfo; 2510 2511 typedef struct VkGraphicsPipelineCreateInfo { 2512 VkStructureType sType; 2513 const void* pNext; 2514 VkPipelineCreateFlags flags; 2515 uint32_t stageCount; 2516 const VkPipelineShaderStageCreateInfo* pStages; 2517 const VkPipelineVertexInputStateCreateInfo* pVertexInputState; 2518 const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState; 2519 const VkPipelineTessellationStateCreateInfo* pTessellationState; 2520 const VkPipelineViewportStateCreateInfo* pViewportState; 2521 const VkPipelineRasterizationStateCreateInfo* pRasterizationState; 2522 const VkPipelineMultisampleStateCreateInfo* pMultisampleState; 2523 const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState; 2524 const VkPipelineColorBlendStateCreateInfo* pColorBlendState; 2525 const VkPipelineDynamicStateCreateInfo* pDynamicState; 2526 VkPipelineLayout layout; 2527 VkRenderPass renderPass; 2528 uint32_t subpass; 2529 VkPipeline basePipelineHandle; 2530 int32_t basePipelineIndex; 2531 } VkGraphicsPipelineCreateInfo; 2532 2533 typedef struct VkComputePipelineCreateInfo { 2534 VkStructureType sType; 2535 const void* pNext; 2536 VkPipelineCreateFlags flags; 2537 VkPipelineShaderStageCreateInfo stage; 2538 VkPipelineLayout layout; 2539 VkPipeline basePipelineHandle; 2540 int32_t basePipelineIndex; 2541 } VkComputePipelineCreateInfo; 2542 2543 typedef struct VkPushConstantRange { 2544 VkShaderStageFlags stageFlags; 2545 uint32_t offset; 2546 uint32_t size; 2547 } VkPushConstantRange; 2548 2549 typedef struct VkPipelineLayoutCreateInfo { 2550 VkStructureType sType; 2551 const void* pNext; 2552 VkPipelineLayoutCreateFlags flags; 2553 uint32_t setLayoutCount; 2554 const VkDescriptorSetLayout* pSetLayouts; 2555 uint32_t pushConstantRangeCount; 2556 const VkPushConstantRange* pPushConstantRanges; 2557 } VkPipelineLayoutCreateInfo; 2558 2559 typedef struct VkSamplerCreateInfo { 2560 VkStructureType sType; 2561 const void* pNext; 2562 VkSamplerCreateFlags flags; 2563 VkFilter magFilter; 2564 VkFilter minFilter; 2565 VkSamplerMipmapMode mipmapMode; 2566 VkSamplerAddressMode addressModeU; 2567 VkSamplerAddressMode addressModeV; 2568 VkSamplerAddressMode addressModeW; 2569 float mipLodBias; 2570 VkBool32 anisotropyEnable; 2571 float maxAnisotropy; 2572 VkBool32 compareEnable; 2573 VkCompareOp compareOp; 2574 float minLod; 2575 float maxLod; 2576 VkBorderColor borderColor; 2577 VkBool32 unnormalizedCoordinates; 2578 } VkSamplerCreateInfo; 2579 2580 typedef struct VkDescriptorSetLayoutBinding { 2581 uint32_t binding; 2582 VkDescriptorType descriptorType; 2583 uint32_t descriptorCount; 2584 VkShaderStageFlags stageFlags; 2585 const VkSampler* pImmutableSamplers; 2586 } VkDescriptorSetLayoutBinding; 2587 2588 typedef struct VkDescriptorSetLayoutCreateInfo { 2589 VkStructureType sType; 2590 const void* pNext; 2591 VkDescriptorSetLayoutCreateFlags flags; 2592 uint32_t bindingCount; 2593 const VkDescriptorSetLayoutBinding* pBindings; 2594 } VkDescriptorSetLayoutCreateInfo; 2595 2596 typedef struct VkDescriptorPoolSize { 2597 VkDescriptorType type; 2598 uint32_t descriptorCount; 2599 } VkDescriptorPoolSize; 2600 2601 typedef struct VkDescriptorPoolCreateInfo { 2602 VkStructureType sType; 2603 const void* pNext; 2604 VkDescriptorPoolCreateFlags flags; 2605 uint32_t maxSets; 2606 uint32_t poolSizeCount; 2607 const VkDescriptorPoolSize* pPoolSizes; 2608 } VkDescriptorPoolCreateInfo; 2609 2610 typedef struct VkDescriptorSetAllocateInfo { 2611 VkStructureType sType; 2612 const void* pNext; 2613 VkDescriptorPool descriptorPool; 2614 uint32_t descriptorSetCount; 2615 const VkDescriptorSetLayout* pSetLayouts; 2616 } VkDescriptorSetAllocateInfo; 2617 2618 typedef struct VkDescriptorImageInfo { 2619 VkSampler sampler; 2620 VkImageView imageView; 2621 VkImageLayout imageLayout; 2622 } VkDescriptorImageInfo; 2623 2624 typedef struct VkDescriptorBufferInfo { 2625 VkBuffer buffer; 2626 VkDeviceSize offset; 2627 VkDeviceSize range; 2628 } VkDescriptorBufferInfo; 2629 2630 typedef struct VkWriteDescriptorSet { 2631 VkStructureType sType; 2632 const void* pNext; 2633 VkDescriptorSet dstSet; 2634 uint32_t dstBinding; 2635 uint32_t dstArrayElement; 2636 uint32_t descriptorCount; 2637 VkDescriptorType descriptorType; 2638 const VkDescriptorImageInfo* pImageInfo; 2639 const VkDescriptorBufferInfo* pBufferInfo; 2640 const VkBufferView* pTexelBufferView; 2641 } VkWriteDescriptorSet; 2642 2643 typedef struct VkCopyDescriptorSet { 2644 VkStructureType sType; 2645 const void* pNext; 2646 VkDescriptorSet srcSet; 2647 uint32_t srcBinding; 2648 uint32_t srcArrayElement; 2649 VkDescriptorSet dstSet; 2650 uint32_t dstBinding; 2651 uint32_t dstArrayElement; 2652 uint32_t descriptorCount; 2653 } VkCopyDescriptorSet; 2654 2655 typedef struct VkFramebufferCreateInfo { 2656 VkStructureType sType; 2657 const void* pNext; 2658 VkFramebufferCreateFlags flags; 2659 VkRenderPass renderPass; 2660 uint32_t attachmentCount; 2661 const VkImageView* pAttachments; 2662 uint32_t width; 2663 uint32_t height; 2664 uint32_t layers; 2665 } VkFramebufferCreateInfo; 2666 2667 typedef struct VkAttachmentDescription { 2668 VkAttachmentDescriptionFlags flags; 2669 VkFormat format; 2670 VkSampleCountFlagBits samples; 2671 VkAttachmentLoadOp loadOp; 2672 VkAttachmentStoreOp storeOp; 2673 VkAttachmentLoadOp stencilLoadOp; 2674 VkAttachmentStoreOp stencilStoreOp; 2675 VkImageLayout initialLayout; 2676 VkImageLayout finalLayout; 2677 } VkAttachmentDescription; 2678 2679 typedef struct VkAttachmentReference { 2680 uint32_t attachment; 2681 VkImageLayout layout; 2682 } VkAttachmentReference; 2683 2684 typedef struct VkSubpassDescription { 2685 VkSubpassDescriptionFlags flags; 2686 VkPipelineBindPoint pipelineBindPoint; 2687 uint32_t inputAttachmentCount; 2688 const VkAttachmentReference* pInputAttachments; 2689 uint32_t colorAttachmentCount; 2690 const VkAttachmentReference* pColorAttachments; 2691 const VkAttachmentReference* pResolveAttachments; 2692 const VkAttachmentReference* pDepthStencilAttachment; 2693 uint32_t preserveAttachmentCount; 2694 const uint32_t* pPreserveAttachments; 2695 } VkSubpassDescription; 2696 2697 typedef struct VkSubpassDependency { 2698 uint32_t srcSubpass; 2699 uint32_t dstSubpass; 2700 VkPipelineStageFlags srcStageMask; 2701 VkPipelineStageFlags dstStageMask; 2702 VkAccessFlags srcAccessMask; 2703 VkAccessFlags dstAccessMask; 2704 VkDependencyFlags dependencyFlags; 2705 } VkSubpassDependency; 2706 2707 typedef struct VkRenderPassCreateInfo { 2708 VkStructureType sType; 2709 const void* pNext; 2710 VkRenderPassCreateFlags flags; 2711 uint32_t attachmentCount; 2712 const VkAttachmentDescription* pAttachments; 2713 uint32_t subpassCount; 2714 const VkSubpassDescription* pSubpasses; 2715 uint32_t dependencyCount; 2716 const VkSubpassDependency* pDependencies; 2717 } VkRenderPassCreateInfo; 2718 2719 typedef struct VkCommandPoolCreateInfo { 2720 VkStructureType sType; 2721 const void* pNext; 2722 VkCommandPoolCreateFlags flags; 2723 uint32_t queueFamilyIndex; 2724 } VkCommandPoolCreateInfo; 2725 2726 typedef struct VkCommandBufferAllocateInfo { 2727 VkStructureType sType; 2728 const void* pNext; 2729 VkCommandPool commandPool; 2730 VkCommandBufferLevel level; 2731 uint32_t commandBufferCount; 2732 } VkCommandBufferAllocateInfo; 2733 2734 typedef struct VkCommandBufferInheritanceInfo { 2735 VkStructureType sType; 2736 const void* pNext; 2737 VkRenderPass renderPass; 2738 uint32_t subpass; 2739 VkFramebuffer framebuffer; 2740 VkBool32 occlusionQueryEnable; 2741 VkQueryControlFlags queryFlags; 2742 VkQueryPipelineStatisticFlags pipelineStatistics; 2743 } VkCommandBufferInheritanceInfo; 2744 2745 typedef struct VkCommandBufferBeginInfo { 2746 VkStructureType sType; 2747 const void* pNext; 2748 VkCommandBufferUsageFlags flags; 2749 const VkCommandBufferInheritanceInfo* pInheritanceInfo; 2750 } VkCommandBufferBeginInfo; 2751 2752 typedef struct VkBufferCopy { 2753 VkDeviceSize srcOffset; 2754 VkDeviceSize dstOffset; 2755 VkDeviceSize size; 2756 } VkBufferCopy; 2757 2758 typedef struct VkImageSubresourceLayers { 2759 VkImageAspectFlags aspectMask; 2760 uint32_t mipLevel; 2761 uint32_t baseArrayLayer; 2762 uint32_t layerCount; 2763 } VkImageSubresourceLayers; 2764 2765 typedef struct VkImageCopy { 2766 VkImageSubresourceLayers srcSubresource; 2767 VkOffset3D srcOffset; 2768 VkImageSubresourceLayers dstSubresource; 2769 VkOffset3D dstOffset; 2770 VkExtent3D extent; 2771 } VkImageCopy; 2772 2773 typedef struct VkImageBlit { 2774 VkImageSubresourceLayers srcSubresource; 2775 VkOffset3D srcOffsets[2]; 2776 VkImageSubresourceLayers dstSubresource; 2777 VkOffset3D dstOffsets[2]; 2778 } VkImageBlit; 2779 2780 typedef struct VkBufferImageCopy { 2781 VkDeviceSize bufferOffset; 2782 uint32_t bufferRowLength; 2783 uint32_t bufferImageHeight; 2784 VkImageSubresourceLayers imageSubresource; 2785 VkOffset3D imageOffset; 2786 VkExtent3D imageExtent; 2787 } VkBufferImageCopy; 2788 2789 typedef union VkClearColorValue { 2790 float float32[4]; 2791 int32_t int32[4]; 2792 uint32_t uint32[4]; 2793 } VkClearColorValue; 2794 2795 typedef struct VkClearDepthStencilValue { 2796 float depth; 2797 uint32_t stencil; 2798 } VkClearDepthStencilValue; 2799 2800 typedef union VkClearValue { 2801 VkClearColorValue color; 2802 VkClearDepthStencilValue depthStencil; 2803 } VkClearValue; 2804 2805 typedef struct VkClearAttachment { 2806 VkImageAspectFlags aspectMask; 2807 uint32_t colorAttachment; 2808 VkClearValue clearValue; 2809 } VkClearAttachment; 2810 2811 typedef struct VkClearRect { 2812 VkRect2D rect; 2813 uint32_t baseArrayLayer; 2814 uint32_t layerCount; 2815 } VkClearRect; 2816 2817 typedef struct VkImageResolve { 2818 VkImageSubresourceLayers srcSubresource; 2819 VkOffset3D srcOffset; 2820 VkImageSubresourceLayers dstSubresource; 2821 VkOffset3D dstOffset; 2822 VkExtent3D extent; 2823 } VkImageResolve; 2824 2825 typedef struct VkMemoryBarrier { 2826 VkStructureType sType; 2827 const void* pNext; 2828 VkAccessFlags srcAccessMask; 2829 VkAccessFlags dstAccessMask; 2830 } VkMemoryBarrier; 2831 2832 typedef struct VkBufferMemoryBarrier { 2833 VkStructureType sType; 2834 const void* pNext; 2835 VkAccessFlags srcAccessMask; 2836 VkAccessFlags dstAccessMask; 2837 uint32_t srcQueueFamilyIndex; 2838 uint32_t dstQueueFamilyIndex; 2839 VkBuffer buffer; 2840 VkDeviceSize offset; 2841 VkDeviceSize size; 2842 } VkBufferMemoryBarrier; 2843 2844 typedef struct VkImageMemoryBarrier { 2845 VkStructureType sType; 2846 const void* pNext; 2847 VkAccessFlags srcAccessMask; 2848 VkAccessFlags dstAccessMask; 2849 VkImageLayout oldLayout; 2850 VkImageLayout newLayout; 2851 uint32_t srcQueueFamilyIndex; 2852 uint32_t dstQueueFamilyIndex; 2853 VkImage image; 2854 VkImageSubresourceRange subresourceRange; 2855 } VkImageMemoryBarrier; 2856 2857 typedef struct VkRenderPassBeginInfo { 2858 VkStructureType sType; 2859 const void* pNext; 2860 VkRenderPass renderPass; 2861 VkFramebuffer framebuffer; 2862 VkRect2D renderArea; 2863 uint32_t clearValueCount; 2864 const VkClearValue* pClearValues; 2865 } VkRenderPassBeginInfo; 2866 2867 typedef struct VkDispatchIndirectCommand { 2868 uint32_t x; 2869 uint32_t y; 2870 uint32_t z; 2871 } VkDispatchIndirectCommand; 2872 2873 typedef struct VkDrawIndexedIndirectCommand { 2874 uint32_t indexCount; 2875 uint32_t instanceCount; 2876 uint32_t firstIndex; 2877 int32_t vertexOffset; 2878 uint32_t firstInstance; 2879 } VkDrawIndexedIndirectCommand; 2880 2881 typedef struct VkDrawIndirectCommand { 2882 uint32_t vertexCount; 2883 uint32_t instanceCount; 2884 uint32_t firstVertex; 2885 uint32_t firstInstance; 2886 } VkDrawIndirectCommand; 2887 2888 typedef struct VkBaseOutStructure { 2889 VkStructureType sType; 2890 struct VkBaseOutStructure* pNext; 2891 } VkBaseOutStructure; 2892 2893 typedef struct VkBaseInStructure { 2894 VkStructureType sType; 2895 const struct VkBaseInStructure* pNext; 2896 } VkBaseInStructure; 2897 2898 2899 typedef VkResult (VKAPI_PTR *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance); 2900 typedef void (VKAPI_PTR *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks* pAllocator); 2901 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices); 2902 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures); 2903 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties); 2904 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties); 2905 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties); 2906 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties); 2907 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties); 2908 typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char* pName); 2909 typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetDeviceProcAddr)(VkDevice device, const char* pName); 2910 typedef VkResult (VKAPI_PTR *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice); 2911 typedef void (VKAPI_PTR *PFN_vkDestroyDevice)(VkDevice device, const VkAllocationCallbacks* pAllocator); 2912 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceExtensionProperties)(const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties); 2913 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties); 2914 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceLayerProperties)(uint32_t* pPropertyCount, VkLayerProperties* pProperties); 2915 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties); 2916 typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue); 2917 typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence); 2918 typedef VkResult (VKAPI_PTR *PFN_vkQueueWaitIdle)(VkQueue queue); 2919 typedef VkResult (VKAPI_PTR *PFN_vkDeviceWaitIdle)(VkDevice device); 2920 typedef VkResult (VKAPI_PTR *PFN_vkAllocateMemory)(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory); 2921 typedef void (VKAPI_PTR *PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator); 2922 typedef VkResult (VKAPI_PTR *PFN_vkMapMemory)(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData); 2923 typedef void (VKAPI_PTR *PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory memory); 2924 typedef VkResult (VKAPI_PTR *PFN_vkFlushMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges); 2925 typedef VkResult (VKAPI_PTR *PFN_vkInvalidateMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges); 2926 typedef void (VKAPI_PTR *PFN_vkGetDeviceMemoryCommitment)(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes); 2927 typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory)(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset); 2928 typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory)(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset); 2929 typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements)(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements); 2930 typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements); 2931 typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements); 2932 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties); 2933 typedef VkResult (VKAPI_PTR *PFN_vkQueueBindSparse)(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence); 2934 typedef VkResult (VKAPI_PTR *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence); 2935 typedef void (VKAPI_PTR *PFN_vkDestroyFence)(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator); 2936 typedef VkResult (VKAPI_PTR *PFN_vkResetFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences); 2937 typedef VkResult (VKAPI_PTR *PFN_vkGetFenceStatus)(VkDevice device, VkFence fence); 2938 typedef VkResult (VKAPI_PTR *PFN_vkWaitForFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout); 2939 typedef VkResult (VKAPI_PTR *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore); 2940 typedef void (VKAPI_PTR *PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator); 2941 typedef VkResult (VKAPI_PTR *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent); 2942 typedef void (VKAPI_PTR *PFN_vkDestroyEvent)(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator); 2943 typedef VkResult (VKAPI_PTR *PFN_vkGetEventStatus)(VkDevice device, VkEvent event); 2944 typedef VkResult (VKAPI_PTR *PFN_vkSetEvent)(VkDevice device, VkEvent event); 2945 typedef VkResult (VKAPI_PTR *PFN_vkResetEvent)(VkDevice device, VkEvent event); 2946 typedef VkResult (VKAPI_PTR *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool); 2947 typedef void (VKAPI_PTR *PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator); 2948 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); 2949 typedef VkResult (VKAPI_PTR *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer); 2950 typedef void (VKAPI_PTR *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator); 2951 typedef VkResult (VKAPI_PTR *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView); 2952 typedef void (VKAPI_PTR *PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator); 2953 typedef VkResult (VKAPI_PTR *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage); 2954 typedef void (VKAPI_PTR *PFN_vkDestroyImage)(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator); 2955 typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout); 2956 typedef VkResult (VKAPI_PTR *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView); 2957 typedef void (VKAPI_PTR *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator); 2958 typedef VkResult (VKAPI_PTR *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule); 2959 typedef void (VKAPI_PTR *PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator); 2960 typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache); 2961 typedef void (VKAPI_PTR *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator); 2962 typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData); 2963 typedef VkResult (VKAPI_PTR *PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches); 2964 typedef VkResult (VKAPI_PTR *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines); 2965 typedef VkResult (VKAPI_PTR *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines); 2966 typedef void (VKAPI_PTR *PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator); 2967 typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout); 2968 typedef void (VKAPI_PTR *PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator); 2969 typedef VkResult (VKAPI_PTR *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler); 2970 typedef void (VKAPI_PTR *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator); 2971 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout); 2972 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator); 2973 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool); 2974 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator); 2975 typedef VkResult (VKAPI_PTR *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags); 2976 typedef VkResult (VKAPI_PTR *PFN_vkAllocateDescriptorSets)(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets); 2977 typedef VkResult (VKAPI_PTR *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets); 2978 typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies); 2979 typedef VkResult (VKAPI_PTR *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer); 2980 typedef void (VKAPI_PTR *PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator); 2981 typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass); 2982 typedef void (VKAPI_PTR *PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator); 2983 typedef void (VKAPI_PTR *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity); 2984 typedef VkResult (VKAPI_PTR *PFN_vkCreateCommandPool)(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool); 2985 typedef void (VKAPI_PTR *PFN_vkDestroyCommandPool)(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator); 2986 typedef VkResult (VKAPI_PTR *PFN_vkResetCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags); 2987 typedef VkResult (VKAPI_PTR *PFN_vkAllocateCommandBuffers)(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers); 2988 typedef void (VKAPI_PTR *PFN_vkFreeCommandBuffers)(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers); 2989 typedef VkResult (VKAPI_PTR *PFN_vkBeginCommandBuffer)(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo); 2990 typedef VkResult (VKAPI_PTR *PFN_vkEndCommandBuffer)(VkCommandBuffer commandBuffer); 2991 typedef VkResult (VKAPI_PTR *PFN_vkResetCommandBuffer)(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags); 2992 typedef void (VKAPI_PTR *PFN_vkCmdBindPipeline)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline); 2993 typedef void (VKAPI_PTR *PFN_vkCmdSetViewport)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports); 2994 typedef void (VKAPI_PTR *PFN_vkCmdSetScissor)(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors); 2995 typedef void (VKAPI_PTR *PFN_vkCmdSetLineWidth)(VkCommandBuffer commandBuffer, float lineWidth); 2996 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias)(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor); 2997 typedef void (VKAPI_PTR *PFN_vkCmdSetBlendConstants)(VkCommandBuffer commandBuffer, const float blendConstants[4]); 2998 typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBounds)(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds); 2999 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilCompareMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask); 3000 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilWriteMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask); 3001 typedef void (VKAPI_PTR *PFN_vkCmdSetStencilReference)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference); 3002 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); 3003 typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType); 3004 typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets); 3005 typedef void (VKAPI_PTR *PFN_vkCmdDraw)(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance); 3006 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexed)(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance); 3007 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride); 3008 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride); 3009 typedef void (VKAPI_PTR *PFN_vkCmdDispatch)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ); 3010 typedef void (VKAPI_PTR *PFN_vkCmdDispatchIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset); 3011 typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions); 3012 typedef void (VKAPI_PTR *PFN_vkCmdCopyImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions); 3013 typedef void (VKAPI_PTR *PFN_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter); 3014 typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions); 3015 typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions); 3016 typedef void (VKAPI_PTR *PFN_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData); 3017 typedef void (VKAPI_PTR *PFN_vkCmdFillBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data); 3018 typedef void (VKAPI_PTR *PFN_vkCmdClearColorImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges); 3019 typedef void (VKAPI_PTR *PFN_vkCmdClearDepthStencilImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges); 3020 typedef void (VKAPI_PTR *PFN_vkCmdClearAttachments)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects); 3021 typedef void (VKAPI_PTR *PFN_vkCmdResolveImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions); 3022 typedef void (VKAPI_PTR *PFN_vkCmdSetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask); 3023 typedef void (VKAPI_PTR *PFN_vkCmdResetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask); 3024 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); 3025 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); 3026 typedef void (VKAPI_PTR *PFN_vkCmdBeginQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags); 3027 typedef void (VKAPI_PTR *PFN_vkCmdEndQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query); 3028 typedef void (VKAPI_PTR *PFN_vkCmdResetQueryPool)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount); 3029 typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query); 3030 typedef void (VKAPI_PTR *PFN_vkCmdCopyQueryPoolResults)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags); 3031 typedef void (VKAPI_PTR *PFN_vkCmdPushConstants)(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues); 3032 typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents); 3033 typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass)(VkCommandBuffer commandBuffer, VkSubpassContents contents); 3034 typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass)(VkCommandBuffer commandBuffer); 3035 typedef void (VKAPI_PTR *PFN_vkCmdExecuteCommands)(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers); 3036 3037 #ifndef VK_NO_PROTOTYPES 3038 VKAPI_ATTR VkResult VKAPI_CALL vkCreateInstance( 3039 const VkInstanceCreateInfo* pCreateInfo, 3040 const VkAllocationCallbacks* pAllocator, 3041 VkInstance* pInstance); 3042 3043 VKAPI_ATTR void VKAPI_CALL vkDestroyInstance( 3044 VkInstance instance, 3045 const VkAllocationCallbacks* pAllocator); 3046 3047 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDevices( 3048 VkInstance instance, 3049 uint32_t* pPhysicalDeviceCount, 3050 VkPhysicalDevice* pPhysicalDevices); 3051 3052 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures( 3053 VkPhysicalDevice physicalDevice, 3054 VkPhysicalDeviceFeatures* pFeatures); 3055 3056 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties( 3057 VkPhysicalDevice physicalDevice, 3058 VkFormat format, 3059 VkFormatProperties* pFormatProperties); 3060 3061 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties( 3062 VkPhysicalDevice physicalDevice, 3063 VkFormat format, 3064 VkImageType type, 3065 VkImageTiling tiling, 3066 VkImageUsageFlags usage, 3067 VkImageCreateFlags flags, 3068 VkImageFormatProperties* pImageFormatProperties); 3069 3070 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties( 3071 VkPhysicalDevice physicalDevice, 3072 VkPhysicalDeviceProperties* pProperties); 3073 3074 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties( 3075 VkPhysicalDevice physicalDevice, 3076 uint32_t* pQueueFamilyPropertyCount, 3077 VkQueueFamilyProperties* pQueueFamilyProperties); 3078 3079 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties( 3080 VkPhysicalDevice physicalDevice, 3081 VkPhysicalDeviceMemoryProperties* pMemoryProperties); 3082 3083 VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr( 3084 VkInstance instance, 3085 const char* pName); 3086 3087 VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr( 3088 VkDevice device, 3089 const char* pName); 3090 3091 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDevice( 3092 VkPhysicalDevice physicalDevice, 3093 const VkDeviceCreateInfo* pCreateInfo, 3094 const VkAllocationCallbacks* pAllocator, 3095 VkDevice* pDevice); 3096 3097 VKAPI_ATTR void VKAPI_CALL vkDestroyDevice( 3098 VkDevice device, 3099 const VkAllocationCallbacks* pAllocator); 3100 3101 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceExtensionProperties( 3102 const char* pLayerName, 3103 uint32_t* pPropertyCount, 3104 VkExtensionProperties* pProperties); 3105 3106 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceExtensionProperties( 3107 VkPhysicalDevice physicalDevice, 3108 const char* pLayerName, 3109 uint32_t* pPropertyCount, 3110 VkExtensionProperties* pProperties); 3111 3112 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceLayerProperties( 3113 uint32_t* pPropertyCount, 3114 VkLayerProperties* pProperties); 3115 3116 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceLayerProperties( 3117 VkPhysicalDevice physicalDevice, 3118 uint32_t* pPropertyCount, 3119 VkLayerProperties* pProperties); 3120 3121 VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue( 3122 VkDevice device, 3123 uint32_t queueFamilyIndex, 3124 uint32_t queueIndex, 3125 VkQueue* pQueue); 3126 3127 VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit( 3128 VkQueue queue, 3129 uint32_t submitCount, 3130 const VkSubmitInfo* pSubmits, 3131 VkFence fence); 3132 3133 VKAPI_ATTR VkResult VKAPI_CALL vkQueueWaitIdle( 3134 VkQueue queue); 3135 3136 VKAPI_ATTR VkResult VKAPI_CALL vkDeviceWaitIdle( 3137 VkDevice device); 3138 3139 VKAPI_ATTR VkResult VKAPI_CALL vkAllocateMemory( 3140 VkDevice device, 3141 const VkMemoryAllocateInfo* pAllocateInfo, 3142 const VkAllocationCallbacks* pAllocator, 3143 VkDeviceMemory* pMemory); 3144 3145 VKAPI_ATTR void VKAPI_CALL vkFreeMemory( 3146 VkDevice device, 3147 VkDeviceMemory memory, 3148 const VkAllocationCallbacks* pAllocator); 3149 3150 VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory( 3151 VkDevice device, 3152 VkDeviceMemory memory, 3153 VkDeviceSize offset, 3154 VkDeviceSize size, 3155 VkMemoryMapFlags flags, 3156 void** ppData); 3157 3158 VKAPI_ATTR void VKAPI_CALL vkUnmapMemory( 3159 VkDevice device, 3160 VkDeviceMemory memory); 3161 3162 VKAPI_ATTR VkResult VKAPI_CALL vkFlushMappedMemoryRanges( 3163 VkDevice device, 3164 uint32_t memoryRangeCount, 3165 const VkMappedMemoryRange* pMemoryRanges); 3166 3167 VKAPI_ATTR VkResult VKAPI_CALL vkInvalidateMappedMemoryRanges( 3168 VkDevice device, 3169 uint32_t memoryRangeCount, 3170 const VkMappedMemoryRange* pMemoryRanges); 3171 3172 VKAPI_ATTR void VKAPI_CALL vkGetDeviceMemoryCommitment( 3173 VkDevice device, 3174 VkDeviceMemory memory, 3175 VkDeviceSize* pCommittedMemoryInBytes); 3176 3177 VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory( 3178 VkDevice device, 3179 VkBuffer buffer, 3180 VkDeviceMemory memory, 3181 VkDeviceSize memoryOffset); 3182 3183 VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory( 3184 VkDevice device, 3185 VkImage image, 3186 VkDeviceMemory memory, 3187 VkDeviceSize memoryOffset); 3188 3189 VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements( 3190 VkDevice device, 3191 VkBuffer buffer, 3192 VkMemoryRequirements* pMemoryRequirements); 3193 3194 VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements( 3195 VkDevice device, 3196 VkImage image, 3197 VkMemoryRequirements* pMemoryRequirements); 3198 3199 VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements( 3200 VkDevice device, 3201 VkImage image, 3202 uint32_t* pSparseMemoryRequirementCount, 3203 VkSparseImageMemoryRequirements* pSparseMemoryRequirements); 3204 3205 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties( 3206 VkPhysicalDevice physicalDevice, 3207 VkFormat format, 3208 VkImageType type, 3209 VkSampleCountFlagBits samples, 3210 VkImageUsageFlags usage, 3211 VkImageTiling tiling, 3212 uint32_t* pPropertyCount, 3213 VkSparseImageFormatProperties* pProperties); 3214 3215 VKAPI_ATTR VkResult VKAPI_CALL vkQueueBindSparse( 3216 VkQueue queue, 3217 uint32_t bindInfoCount, 3218 const VkBindSparseInfo* pBindInfo, 3219 VkFence fence); 3220 3221 VKAPI_ATTR VkResult VKAPI_CALL vkCreateFence( 3222 VkDevice device, 3223 const VkFenceCreateInfo* pCreateInfo, 3224 const VkAllocationCallbacks* pAllocator, 3225 VkFence* pFence); 3226 3227 VKAPI_ATTR void VKAPI_CALL vkDestroyFence( 3228 VkDevice device, 3229 VkFence fence, 3230 const VkAllocationCallbacks* pAllocator); 3231 3232 VKAPI_ATTR VkResult VKAPI_CALL vkResetFences( 3233 VkDevice device, 3234 uint32_t fenceCount, 3235 const VkFence* pFences); 3236 3237 VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceStatus( 3238 VkDevice device, 3239 VkFence fence); 3240 3241 VKAPI_ATTR VkResult VKAPI_CALL vkWaitForFences( 3242 VkDevice device, 3243 uint32_t fenceCount, 3244 const VkFence* pFences, 3245 VkBool32 waitAll, 3246 uint64_t timeout); 3247 3248 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSemaphore( 3249 VkDevice device, 3250 const VkSemaphoreCreateInfo* pCreateInfo, 3251 const VkAllocationCallbacks* pAllocator, 3252 VkSemaphore* pSemaphore); 3253 3254 VKAPI_ATTR void VKAPI_CALL vkDestroySemaphore( 3255 VkDevice device, 3256 VkSemaphore semaphore, 3257 const VkAllocationCallbacks* pAllocator); 3258 3259 VKAPI_ATTR VkResult VKAPI_CALL vkCreateEvent( 3260 VkDevice device, 3261 const VkEventCreateInfo* pCreateInfo, 3262 const VkAllocationCallbacks* pAllocator, 3263 VkEvent* pEvent); 3264 3265 VKAPI_ATTR void VKAPI_CALL vkDestroyEvent( 3266 VkDevice device, 3267 VkEvent event, 3268 const VkAllocationCallbacks* pAllocator); 3269 3270 VKAPI_ATTR VkResult VKAPI_CALL vkGetEventStatus( 3271 VkDevice device, 3272 VkEvent event); 3273 3274 VKAPI_ATTR VkResult VKAPI_CALL vkSetEvent( 3275 VkDevice device, 3276 VkEvent event); 3277 3278 VKAPI_ATTR VkResult VKAPI_CALL vkResetEvent( 3279 VkDevice device, 3280 VkEvent event); 3281 3282 VKAPI_ATTR VkResult VKAPI_CALL vkCreateQueryPool( 3283 VkDevice device, 3284 const VkQueryPoolCreateInfo* pCreateInfo, 3285 const VkAllocationCallbacks* pAllocator, 3286 VkQueryPool* pQueryPool); 3287 3288 VKAPI_ATTR void VKAPI_CALL vkDestroyQueryPool( 3289 VkDevice device, 3290 VkQueryPool queryPool, 3291 const VkAllocationCallbacks* pAllocator); 3292 3293 VKAPI_ATTR VkResult VKAPI_CALL vkGetQueryPoolResults( 3294 VkDevice device, 3295 VkQueryPool queryPool, 3296 uint32_t firstQuery, 3297 uint32_t queryCount, 3298 size_t dataSize, 3299 void* pData, 3300 VkDeviceSize stride, 3301 VkQueryResultFlags flags); 3302 3303 VKAPI_ATTR VkResult VKAPI_CALL vkCreateBuffer( 3304 VkDevice device, 3305 const VkBufferCreateInfo* pCreateInfo, 3306 const VkAllocationCallbacks* pAllocator, 3307 VkBuffer* pBuffer); 3308 3309 VKAPI_ATTR void VKAPI_CALL vkDestroyBuffer( 3310 VkDevice device, 3311 VkBuffer buffer, 3312 const VkAllocationCallbacks* pAllocator); 3313 3314 VKAPI_ATTR VkResult VKAPI_CALL vkCreateBufferView( 3315 VkDevice device, 3316 const VkBufferViewCreateInfo* pCreateInfo, 3317 const VkAllocationCallbacks* pAllocator, 3318 VkBufferView* pView); 3319 3320 VKAPI_ATTR void VKAPI_CALL vkDestroyBufferView( 3321 VkDevice device, 3322 VkBufferView bufferView, 3323 const VkAllocationCallbacks* pAllocator); 3324 3325 VKAPI_ATTR VkResult VKAPI_CALL vkCreateImage( 3326 VkDevice device, 3327 const VkImageCreateInfo* pCreateInfo, 3328 const VkAllocationCallbacks* pAllocator, 3329 VkImage* pImage); 3330 3331 VKAPI_ATTR void VKAPI_CALL vkDestroyImage( 3332 VkDevice device, 3333 VkImage image, 3334 const VkAllocationCallbacks* pAllocator); 3335 3336 VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout( 3337 VkDevice device, 3338 VkImage image, 3339 const VkImageSubresource* pSubresource, 3340 VkSubresourceLayout* pLayout); 3341 3342 VKAPI_ATTR VkResult VKAPI_CALL vkCreateImageView( 3343 VkDevice device, 3344 const VkImageViewCreateInfo* pCreateInfo, 3345 const VkAllocationCallbacks* pAllocator, 3346 VkImageView* pView); 3347 3348 VKAPI_ATTR void VKAPI_CALL vkDestroyImageView( 3349 VkDevice device, 3350 VkImageView imageView, 3351 const VkAllocationCallbacks* pAllocator); 3352 3353 VKAPI_ATTR VkResult VKAPI_CALL vkCreateShaderModule( 3354 VkDevice device, 3355 const VkShaderModuleCreateInfo* pCreateInfo, 3356 const VkAllocationCallbacks* pAllocator, 3357 VkShaderModule* pShaderModule); 3358 3359 VKAPI_ATTR void VKAPI_CALL vkDestroyShaderModule( 3360 VkDevice device, 3361 VkShaderModule shaderModule, 3362 const VkAllocationCallbacks* pAllocator); 3363 3364 VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineCache( 3365 VkDevice device, 3366 const VkPipelineCacheCreateInfo* pCreateInfo, 3367 const VkAllocationCallbacks* pAllocator, 3368 VkPipelineCache* pPipelineCache); 3369 3370 VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineCache( 3371 VkDevice device, 3372 VkPipelineCache pipelineCache, 3373 const VkAllocationCallbacks* pAllocator); 3374 3375 VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineCacheData( 3376 VkDevice device, 3377 VkPipelineCache pipelineCache, 3378 size_t* pDataSize, 3379 void* pData); 3380 3381 VKAPI_ATTR VkResult VKAPI_CALL vkMergePipelineCaches( 3382 VkDevice device, 3383 VkPipelineCache dstCache, 3384 uint32_t srcCacheCount, 3385 const VkPipelineCache* pSrcCaches); 3386 3387 VKAPI_ATTR VkResult VKAPI_CALL vkCreateGraphicsPipelines( 3388 VkDevice device, 3389 VkPipelineCache pipelineCache, 3390 uint32_t createInfoCount, 3391 const VkGraphicsPipelineCreateInfo* pCreateInfos, 3392 const VkAllocationCallbacks* pAllocator, 3393 VkPipeline* pPipelines); 3394 3395 VKAPI_ATTR VkResult VKAPI_CALL vkCreateComputePipelines( 3396 VkDevice device, 3397 VkPipelineCache pipelineCache, 3398 uint32_t createInfoCount, 3399 const VkComputePipelineCreateInfo* pCreateInfos, 3400 const VkAllocationCallbacks* pAllocator, 3401 VkPipeline* pPipelines); 3402 3403 VKAPI_ATTR void VKAPI_CALL vkDestroyPipeline( 3404 VkDevice device, 3405 VkPipeline pipeline, 3406 const VkAllocationCallbacks* pAllocator); 3407 3408 VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineLayout( 3409 VkDevice device, 3410 const VkPipelineLayoutCreateInfo* pCreateInfo, 3411 const VkAllocationCallbacks* pAllocator, 3412 VkPipelineLayout* pPipelineLayout); 3413 3414 VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineLayout( 3415 VkDevice device, 3416 VkPipelineLayout pipelineLayout, 3417 const VkAllocationCallbacks* pAllocator); 3418 3419 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSampler( 3420 VkDevice device, 3421 const VkSamplerCreateInfo* pCreateInfo, 3422 const VkAllocationCallbacks* pAllocator, 3423 VkSampler* pSampler); 3424 3425 VKAPI_ATTR void VKAPI_CALL vkDestroySampler( 3426 VkDevice device, 3427 VkSampler sampler, 3428 const VkAllocationCallbacks* pAllocator); 3429 3430 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorSetLayout( 3431 VkDevice device, 3432 const VkDescriptorSetLayoutCreateInfo* pCreateInfo, 3433 const VkAllocationCallbacks* pAllocator, 3434 VkDescriptorSetLayout* pSetLayout); 3435 3436 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorSetLayout( 3437 VkDevice device, 3438 VkDescriptorSetLayout descriptorSetLayout, 3439 const VkAllocationCallbacks* pAllocator); 3440 3441 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorPool( 3442 VkDevice device, 3443 const VkDescriptorPoolCreateInfo* pCreateInfo, 3444 const VkAllocationCallbacks* pAllocator, 3445 VkDescriptorPool* pDescriptorPool); 3446 3447 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorPool( 3448 VkDevice device, 3449 VkDescriptorPool descriptorPool, 3450 const VkAllocationCallbacks* pAllocator); 3451 3452 VKAPI_ATTR VkResult VKAPI_CALL vkResetDescriptorPool( 3453 VkDevice device, 3454 VkDescriptorPool descriptorPool, 3455 VkDescriptorPoolResetFlags flags); 3456 3457 VKAPI_ATTR VkResult VKAPI_CALL vkAllocateDescriptorSets( 3458 VkDevice device, 3459 const VkDescriptorSetAllocateInfo* pAllocateInfo, 3460 VkDescriptorSet* pDescriptorSets); 3461 3462 VKAPI_ATTR VkResult VKAPI_CALL vkFreeDescriptorSets( 3463 VkDevice device, 3464 VkDescriptorPool descriptorPool, 3465 uint32_t descriptorSetCount, 3466 const VkDescriptorSet* pDescriptorSets); 3467 3468 VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSets( 3469 VkDevice device, 3470 uint32_t descriptorWriteCount, 3471 const VkWriteDescriptorSet* pDescriptorWrites, 3472 uint32_t descriptorCopyCount, 3473 const VkCopyDescriptorSet* pDescriptorCopies); 3474 3475 VKAPI_ATTR VkResult VKAPI_CALL vkCreateFramebuffer( 3476 VkDevice device, 3477 const VkFramebufferCreateInfo* pCreateInfo, 3478 const VkAllocationCallbacks* pAllocator, 3479 VkFramebuffer* pFramebuffer); 3480 3481 VKAPI_ATTR void VKAPI_CALL vkDestroyFramebuffer( 3482 VkDevice device, 3483 VkFramebuffer framebuffer, 3484 const VkAllocationCallbacks* pAllocator); 3485 3486 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass( 3487 VkDevice device, 3488 const VkRenderPassCreateInfo* pCreateInfo, 3489 const VkAllocationCallbacks* pAllocator, 3490 VkRenderPass* pRenderPass); 3491 3492 VKAPI_ATTR void VKAPI_CALL vkDestroyRenderPass( 3493 VkDevice device, 3494 VkRenderPass renderPass, 3495 const VkAllocationCallbacks* pAllocator); 3496 3497 VKAPI_ATTR void VKAPI_CALL vkGetRenderAreaGranularity( 3498 VkDevice device, 3499 VkRenderPass renderPass, 3500 VkExtent2D* pGranularity); 3501 3502 VKAPI_ATTR VkResult VKAPI_CALL vkCreateCommandPool( 3503 VkDevice device, 3504 const VkCommandPoolCreateInfo* pCreateInfo, 3505 const VkAllocationCallbacks* pAllocator, 3506 VkCommandPool* pCommandPool); 3507 3508 VKAPI_ATTR void VKAPI_CALL vkDestroyCommandPool( 3509 VkDevice device, 3510 VkCommandPool commandPool, 3511 const VkAllocationCallbacks* pAllocator); 3512 3513 VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandPool( 3514 VkDevice device, 3515 VkCommandPool commandPool, 3516 VkCommandPoolResetFlags flags); 3517 3518 VKAPI_ATTR VkResult VKAPI_CALL vkAllocateCommandBuffers( 3519 VkDevice device, 3520 const VkCommandBufferAllocateInfo* pAllocateInfo, 3521 VkCommandBuffer* pCommandBuffers); 3522 3523 VKAPI_ATTR void VKAPI_CALL vkFreeCommandBuffers( 3524 VkDevice device, 3525 VkCommandPool commandPool, 3526 uint32_t commandBufferCount, 3527 const VkCommandBuffer* pCommandBuffers); 3528 3529 VKAPI_ATTR VkResult VKAPI_CALL vkBeginCommandBuffer( 3530 VkCommandBuffer commandBuffer, 3531 const VkCommandBufferBeginInfo* pBeginInfo); 3532 3533 VKAPI_ATTR VkResult VKAPI_CALL vkEndCommandBuffer( 3534 VkCommandBuffer commandBuffer); 3535 3536 VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandBuffer( 3537 VkCommandBuffer commandBuffer, 3538 VkCommandBufferResetFlags flags); 3539 3540 VKAPI_ATTR void VKAPI_CALL vkCmdBindPipeline( 3541 VkCommandBuffer commandBuffer, 3542 VkPipelineBindPoint pipelineBindPoint, 3543 VkPipeline pipeline); 3544 3545 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewport( 3546 VkCommandBuffer commandBuffer, 3547 uint32_t firstViewport, 3548 uint32_t viewportCount, 3549 const VkViewport* pViewports); 3550 3551 VKAPI_ATTR void VKAPI_CALL vkCmdSetScissor( 3552 VkCommandBuffer commandBuffer, 3553 uint32_t firstScissor, 3554 uint32_t scissorCount, 3555 const VkRect2D* pScissors); 3556 3557 VKAPI_ATTR void VKAPI_CALL vkCmdSetLineWidth( 3558 VkCommandBuffer commandBuffer, 3559 float lineWidth); 3560 3561 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias( 3562 VkCommandBuffer commandBuffer, 3563 float depthBiasConstantFactor, 3564 float depthBiasClamp, 3565 float depthBiasSlopeFactor); 3566 3567 VKAPI_ATTR void VKAPI_CALL vkCmdSetBlendConstants( 3568 VkCommandBuffer commandBuffer, 3569 const float blendConstants[4]); 3570 3571 VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBounds( 3572 VkCommandBuffer commandBuffer, 3573 float minDepthBounds, 3574 float maxDepthBounds); 3575 3576 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilCompareMask( 3577 VkCommandBuffer commandBuffer, 3578 VkStencilFaceFlags faceMask, 3579 uint32_t compareMask); 3580 3581 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilWriteMask( 3582 VkCommandBuffer commandBuffer, 3583 VkStencilFaceFlags faceMask, 3584 uint32_t writeMask); 3585 3586 VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilReference( 3587 VkCommandBuffer commandBuffer, 3588 VkStencilFaceFlags faceMask, 3589 uint32_t reference); 3590 3591 VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets( 3592 VkCommandBuffer commandBuffer, 3593 VkPipelineBindPoint pipelineBindPoint, 3594 VkPipelineLayout layout, 3595 uint32_t firstSet, 3596 uint32_t descriptorSetCount, 3597 const VkDescriptorSet* pDescriptorSets, 3598 uint32_t dynamicOffsetCount, 3599 const uint32_t* pDynamicOffsets); 3600 3601 VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer( 3602 VkCommandBuffer commandBuffer, 3603 VkBuffer buffer, 3604 VkDeviceSize offset, 3605 VkIndexType indexType); 3606 3607 VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers( 3608 VkCommandBuffer commandBuffer, 3609 uint32_t firstBinding, 3610 uint32_t bindingCount, 3611 const VkBuffer* pBuffers, 3612 const VkDeviceSize* pOffsets); 3613 3614 VKAPI_ATTR void VKAPI_CALL vkCmdDraw( 3615 VkCommandBuffer commandBuffer, 3616 uint32_t vertexCount, 3617 uint32_t instanceCount, 3618 uint32_t firstVertex, 3619 uint32_t firstInstance); 3620 3621 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexed( 3622 VkCommandBuffer commandBuffer, 3623 uint32_t indexCount, 3624 uint32_t instanceCount, 3625 uint32_t firstIndex, 3626 int32_t vertexOffset, 3627 uint32_t firstInstance); 3628 3629 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirect( 3630 VkCommandBuffer commandBuffer, 3631 VkBuffer buffer, 3632 VkDeviceSize offset, 3633 uint32_t drawCount, 3634 uint32_t stride); 3635 3636 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirect( 3637 VkCommandBuffer commandBuffer, 3638 VkBuffer buffer, 3639 VkDeviceSize offset, 3640 uint32_t drawCount, 3641 uint32_t stride); 3642 3643 VKAPI_ATTR void VKAPI_CALL vkCmdDispatch( 3644 VkCommandBuffer commandBuffer, 3645 uint32_t groupCountX, 3646 uint32_t groupCountY, 3647 uint32_t groupCountZ); 3648 3649 VKAPI_ATTR void VKAPI_CALL vkCmdDispatchIndirect( 3650 VkCommandBuffer commandBuffer, 3651 VkBuffer buffer, 3652 VkDeviceSize offset); 3653 3654 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer( 3655 VkCommandBuffer commandBuffer, 3656 VkBuffer srcBuffer, 3657 VkBuffer dstBuffer, 3658 uint32_t regionCount, 3659 const VkBufferCopy* pRegions); 3660 3661 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage( 3662 VkCommandBuffer commandBuffer, 3663 VkImage srcImage, 3664 VkImageLayout srcImageLayout, 3665 VkImage dstImage, 3666 VkImageLayout dstImageLayout, 3667 uint32_t regionCount, 3668 const VkImageCopy* pRegions); 3669 3670 VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage( 3671 VkCommandBuffer commandBuffer, 3672 VkImage srcImage, 3673 VkImageLayout srcImageLayout, 3674 VkImage dstImage, 3675 VkImageLayout dstImageLayout, 3676 uint32_t regionCount, 3677 const VkImageBlit* pRegions, 3678 VkFilter filter); 3679 3680 VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage( 3681 VkCommandBuffer commandBuffer, 3682 VkBuffer srcBuffer, 3683 VkImage dstImage, 3684 VkImageLayout dstImageLayout, 3685 uint32_t regionCount, 3686 const VkBufferImageCopy* pRegions); 3687 3688 VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer( 3689 VkCommandBuffer commandBuffer, 3690 VkImage srcImage, 3691 VkImageLayout srcImageLayout, 3692 VkBuffer dstBuffer, 3693 uint32_t regionCount, 3694 const VkBufferImageCopy* pRegions); 3695 3696 VKAPI_ATTR void VKAPI_CALL vkCmdUpdateBuffer( 3697 VkCommandBuffer commandBuffer, 3698 VkBuffer dstBuffer, 3699 VkDeviceSize dstOffset, 3700 VkDeviceSize dataSize, 3701 const void* pData); 3702 3703 VKAPI_ATTR void VKAPI_CALL vkCmdFillBuffer( 3704 VkCommandBuffer commandBuffer, 3705 VkBuffer dstBuffer, 3706 VkDeviceSize dstOffset, 3707 VkDeviceSize size, 3708 uint32_t data); 3709 3710 VKAPI_ATTR void VKAPI_CALL vkCmdClearColorImage( 3711 VkCommandBuffer commandBuffer, 3712 VkImage image, 3713 VkImageLayout imageLayout, 3714 const VkClearColorValue* pColor, 3715 uint32_t rangeCount, 3716 const VkImageSubresourceRange* pRanges); 3717 3718 VKAPI_ATTR void VKAPI_CALL vkCmdClearDepthStencilImage( 3719 VkCommandBuffer commandBuffer, 3720 VkImage image, 3721 VkImageLayout imageLayout, 3722 const VkClearDepthStencilValue* pDepthStencil, 3723 uint32_t rangeCount, 3724 const VkImageSubresourceRange* pRanges); 3725 3726 VKAPI_ATTR void VKAPI_CALL vkCmdClearAttachments( 3727 VkCommandBuffer commandBuffer, 3728 uint32_t attachmentCount, 3729 const VkClearAttachment* pAttachments, 3730 uint32_t rectCount, 3731 const VkClearRect* pRects); 3732 3733 VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage( 3734 VkCommandBuffer commandBuffer, 3735 VkImage srcImage, 3736 VkImageLayout srcImageLayout, 3737 VkImage dstImage, 3738 VkImageLayout dstImageLayout, 3739 uint32_t regionCount, 3740 const VkImageResolve* pRegions); 3741 3742 VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent( 3743 VkCommandBuffer commandBuffer, 3744 VkEvent event, 3745 VkPipelineStageFlags stageMask); 3746 3747 VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent( 3748 VkCommandBuffer commandBuffer, 3749 VkEvent event, 3750 VkPipelineStageFlags stageMask); 3751 3752 VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents( 3753 VkCommandBuffer commandBuffer, 3754 uint32_t eventCount, 3755 const VkEvent* pEvents, 3756 VkPipelineStageFlags srcStageMask, 3757 VkPipelineStageFlags dstStageMask, 3758 uint32_t memoryBarrierCount, 3759 const VkMemoryBarrier* pMemoryBarriers, 3760 uint32_t bufferMemoryBarrierCount, 3761 const VkBufferMemoryBarrier* pBufferMemoryBarriers, 3762 uint32_t imageMemoryBarrierCount, 3763 const VkImageMemoryBarrier* pImageMemoryBarriers); 3764 3765 VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier( 3766 VkCommandBuffer commandBuffer, 3767 VkPipelineStageFlags srcStageMask, 3768 VkPipelineStageFlags dstStageMask, 3769 VkDependencyFlags dependencyFlags, 3770 uint32_t memoryBarrierCount, 3771 const VkMemoryBarrier* pMemoryBarriers, 3772 uint32_t bufferMemoryBarrierCount, 3773 const VkBufferMemoryBarrier* pBufferMemoryBarriers, 3774 uint32_t imageMemoryBarrierCount, 3775 const VkImageMemoryBarrier* pImageMemoryBarriers); 3776 3777 VKAPI_ATTR void VKAPI_CALL vkCmdBeginQuery( 3778 VkCommandBuffer commandBuffer, 3779 VkQueryPool queryPool, 3780 uint32_t query, 3781 VkQueryControlFlags flags); 3782 3783 VKAPI_ATTR void VKAPI_CALL vkCmdEndQuery( 3784 VkCommandBuffer commandBuffer, 3785 VkQueryPool queryPool, 3786 uint32_t query); 3787 3788 VKAPI_ATTR void VKAPI_CALL vkCmdResetQueryPool( 3789 VkCommandBuffer commandBuffer, 3790 VkQueryPool queryPool, 3791 uint32_t firstQuery, 3792 uint32_t queryCount); 3793 3794 VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp( 3795 VkCommandBuffer commandBuffer, 3796 VkPipelineStageFlagBits pipelineStage, 3797 VkQueryPool queryPool, 3798 uint32_t query); 3799 3800 VKAPI_ATTR void VKAPI_CALL vkCmdCopyQueryPoolResults( 3801 VkCommandBuffer commandBuffer, 3802 VkQueryPool queryPool, 3803 uint32_t firstQuery, 3804 uint32_t queryCount, 3805 VkBuffer dstBuffer, 3806 VkDeviceSize dstOffset, 3807 VkDeviceSize stride, 3808 VkQueryResultFlags flags); 3809 3810 VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants( 3811 VkCommandBuffer commandBuffer, 3812 VkPipelineLayout layout, 3813 VkShaderStageFlags stageFlags, 3814 uint32_t offset, 3815 uint32_t size, 3816 const void* pValues); 3817 3818 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass( 3819 VkCommandBuffer commandBuffer, 3820 const VkRenderPassBeginInfo* pRenderPassBegin, 3821 VkSubpassContents contents); 3822 3823 VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass( 3824 VkCommandBuffer commandBuffer, 3825 VkSubpassContents contents); 3826 3827 VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass( 3828 VkCommandBuffer commandBuffer); 3829 3830 VKAPI_ATTR void VKAPI_CALL vkCmdExecuteCommands( 3831 VkCommandBuffer commandBuffer, 3832 uint32_t commandBufferCount, 3833 const VkCommandBuffer* pCommandBuffers); 3834 #endif 3835 3836 #define VK_VERSION_1_1 1 3837 // Vulkan 1.1 version number 3838 #define VK_API_VERSION_1_1 VK_MAKE_VERSION(1, 1, 0)// Patch version should always be set to 0 3839 3840 3841 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSamplerYcbcrConversion) 3842 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorUpdateTemplate) 3843 3844 #define VK_MAX_DEVICE_GROUP_SIZE 32 3845 #define VK_LUID_SIZE 8 3846 #define VK_QUEUE_FAMILY_EXTERNAL (~0U-1) 3847 3848 3849 typedef enum VkPointClippingBehavior { 3850 VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0, 3851 VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1, 3852 VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES, 3853 VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY, 3854 VK_POINT_CLIPPING_BEHAVIOR_BEGIN_RANGE = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES, 3855 VK_POINT_CLIPPING_BEHAVIOR_END_RANGE = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY, 3856 VK_POINT_CLIPPING_BEHAVIOR_RANGE_SIZE = (VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY - VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES + 1), 3857 VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM = 0x7FFFFFFF 3858 } VkPointClippingBehavior; 3859 3860 typedef enum VkTessellationDomainOrigin { 3861 VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0, 3862 VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1, 3863 VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT, 3864 VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT, 3865 VK_TESSELLATION_DOMAIN_ORIGIN_BEGIN_RANGE = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT, 3866 VK_TESSELLATION_DOMAIN_ORIGIN_END_RANGE = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT, 3867 VK_TESSELLATION_DOMAIN_ORIGIN_RANGE_SIZE = (VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT - VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT + 1), 3868 VK_TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM = 0x7FFFFFFF 3869 } VkTessellationDomainOrigin; 3870 3871 typedef enum VkSamplerYcbcrModelConversion { 3872 VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = 0, 3873 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = 1, 3874 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = 2, 3875 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = 3, 3876 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4, 3877 VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY, 3878 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY, 3879 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709, 3880 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601, 3881 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020, 3882 VK_SAMPLER_YCBCR_MODEL_CONVERSION_BEGIN_RANGE = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY, 3883 VK_SAMPLER_YCBCR_MODEL_CONVERSION_END_RANGE = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020, 3884 VK_SAMPLER_YCBCR_MODEL_CONVERSION_RANGE_SIZE = (VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 - VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY + 1), 3885 VK_SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM = 0x7FFFFFFF 3886 } VkSamplerYcbcrModelConversion; 3887 3888 typedef enum VkSamplerYcbcrRange { 3889 VK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0, 3890 VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1, 3891 VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_FULL, 3892 VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW, 3893 VK_SAMPLER_YCBCR_RANGE_BEGIN_RANGE = VK_SAMPLER_YCBCR_RANGE_ITU_FULL, 3894 VK_SAMPLER_YCBCR_RANGE_END_RANGE = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW, 3895 VK_SAMPLER_YCBCR_RANGE_RANGE_SIZE = (VK_SAMPLER_YCBCR_RANGE_ITU_NARROW - VK_SAMPLER_YCBCR_RANGE_ITU_FULL + 1), 3896 VK_SAMPLER_YCBCR_RANGE_MAX_ENUM = 0x7FFFFFFF 3897 } VkSamplerYcbcrRange; 3898 3899 typedef enum VkChromaLocation { 3900 VK_CHROMA_LOCATION_COSITED_EVEN = 0, 3901 VK_CHROMA_LOCATION_MIDPOINT = 1, 3902 VK_CHROMA_LOCATION_COSITED_EVEN_KHR = VK_CHROMA_LOCATION_COSITED_EVEN, 3903 VK_CHROMA_LOCATION_MIDPOINT_KHR = VK_CHROMA_LOCATION_MIDPOINT, 3904 VK_CHROMA_LOCATION_BEGIN_RANGE = VK_CHROMA_LOCATION_COSITED_EVEN, 3905 VK_CHROMA_LOCATION_END_RANGE = VK_CHROMA_LOCATION_MIDPOINT, 3906 VK_CHROMA_LOCATION_RANGE_SIZE = (VK_CHROMA_LOCATION_MIDPOINT - VK_CHROMA_LOCATION_COSITED_EVEN + 1), 3907 VK_CHROMA_LOCATION_MAX_ENUM = 0x7FFFFFFF 3908 } VkChromaLocation; 3909 3910 typedef enum VkDescriptorUpdateTemplateType { 3911 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0, 3912 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = 1, 3913 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET, 3914 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_BEGIN_RANGE = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET, 3915 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_END_RANGE = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET, 3916 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_RANGE_SIZE = (VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET - VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET + 1), 3917 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM = 0x7FFFFFFF 3918 } VkDescriptorUpdateTemplateType; 3919 3920 3921 typedef enum VkSubgroupFeatureFlagBits { 3922 VK_SUBGROUP_FEATURE_BASIC_BIT = 0x00000001, 3923 VK_SUBGROUP_FEATURE_VOTE_BIT = 0x00000002, 3924 VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 0x00000004, 3925 VK_SUBGROUP_FEATURE_BALLOT_BIT = 0x00000008, 3926 VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 0x00000010, 3927 VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 0x00000020, 3928 VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0x00000040, 3929 VK_SUBGROUP_FEATURE_QUAD_BIT = 0x00000080, 3930 VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = 0x00000100, 3931 VK_SUBGROUP_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 3932 } VkSubgroupFeatureFlagBits; 3933 typedef VkFlags VkSubgroupFeatureFlags; 3934 3935 typedef enum VkPeerMemoryFeatureFlagBits { 3936 VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 0x00000001, 3937 VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 0x00000002, 3938 VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 0x00000004, 3939 VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 0x00000008, 3940 VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT, 3941 VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_DST_BIT, 3942 VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT, 3943 VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT, 3944 VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 3945 } VkPeerMemoryFeatureFlagBits; 3946 typedef VkFlags VkPeerMemoryFeatureFlags; 3947 3948 typedef enum VkMemoryAllocateFlagBits { 3949 VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 0x00000001, 3950 VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT, 3951 VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 3952 } VkMemoryAllocateFlagBits; 3953 typedef VkFlags VkMemoryAllocateFlags; 3954 typedef VkFlags VkCommandPoolTrimFlags; 3955 typedef VkFlags VkDescriptorUpdateTemplateCreateFlags; 3956 3957 typedef enum VkExternalMemoryHandleTypeFlagBits { 3958 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001, 3959 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002, 3960 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004, 3961 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 0x00000008, 3962 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 0x00000010, 3963 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 0x00000020, 3964 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0x00000040, 3965 VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 0x00000200, 3966 VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0x00000400, 3967 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080, 3968 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100, 3969 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT, 3970 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT, 3971 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, 3972 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT, 3973 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT, 3974 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT, 3975 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT, 3976 VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 3977 } VkExternalMemoryHandleTypeFlagBits; 3978 typedef VkFlags VkExternalMemoryHandleTypeFlags; 3979 3980 typedef enum VkExternalMemoryFeatureFlagBits { 3981 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 0x00000001, 3982 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 0x00000002, 3983 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 0x00000004, 3984 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT, 3985 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT, 3986 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT, 3987 VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 3988 } VkExternalMemoryFeatureFlagBits; 3989 typedef VkFlags VkExternalMemoryFeatureFlags; 3990 3991 typedef enum VkExternalFenceHandleTypeFlagBits { 3992 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001, 3993 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002, 3994 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004, 3995 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000008, 3996 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT, 3997 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT, 3998 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, 3999 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT, 4000 VK_EXTERNAL_FENCE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 4001 } VkExternalFenceHandleTypeFlagBits; 4002 typedef VkFlags VkExternalFenceHandleTypeFlags; 4003 4004 typedef enum VkExternalFenceFeatureFlagBits { 4005 VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 0x00000001, 4006 VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 0x00000002, 4007 VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT, 4008 VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT, 4009 VK_EXTERNAL_FENCE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 4010 } VkExternalFenceFeatureFlagBits; 4011 typedef VkFlags VkExternalFenceFeatureFlags; 4012 4013 typedef enum VkFenceImportFlagBits { 4014 VK_FENCE_IMPORT_TEMPORARY_BIT = 0x00000001, 4015 VK_FENCE_IMPORT_TEMPORARY_BIT_KHR = VK_FENCE_IMPORT_TEMPORARY_BIT, 4016 VK_FENCE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 4017 } VkFenceImportFlagBits; 4018 typedef VkFlags VkFenceImportFlags; 4019 4020 typedef enum VkSemaphoreImportFlagBits { 4021 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 0x00000001, 4022 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR = VK_SEMAPHORE_IMPORT_TEMPORARY_BIT, 4023 VK_SEMAPHORE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 4024 } VkSemaphoreImportFlagBits; 4025 typedef VkFlags VkSemaphoreImportFlags; 4026 4027 typedef enum VkExternalSemaphoreHandleTypeFlagBits { 4028 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001, 4029 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002, 4030 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004, 4031 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0x00000008, 4032 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000010, 4033 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT, 4034 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT, 4035 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT, 4036 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT, 4037 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT, 4038 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 4039 } VkExternalSemaphoreHandleTypeFlagBits; 4040 typedef VkFlags VkExternalSemaphoreHandleTypeFlags; 4041 4042 typedef enum VkExternalSemaphoreFeatureFlagBits { 4043 VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 0x00000001, 4044 VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 0x00000002, 4045 VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT, 4046 VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT, 4047 VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 4048 } VkExternalSemaphoreFeatureFlagBits; 4049 typedef VkFlags VkExternalSemaphoreFeatureFlags; 4050 4051 typedef struct VkPhysicalDeviceSubgroupProperties { 4052 VkStructureType sType; 4053 void* pNext; 4054 uint32_t subgroupSize; 4055 VkShaderStageFlags supportedStages; 4056 VkSubgroupFeatureFlags supportedOperations; 4057 VkBool32 quadOperationsInAllStages; 4058 } VkPhysicalDeviceSubgroupProperties; 4059 4060 typedef struct VkBindBufferMemoryInfo { 4061 VkStructureType sType; 4062 const void* pNext; 4063 VkBuffer buffer; 4064 VkDeviceMemory memory; 4065 VkDeviceSize memoryOffset; 4066 } VkBindBufferMemoryInfo; 4067 4068 typedef struct VkBindImageMemoryInfo { 4069 VkStructureType sType; 4070 const void* pNext; 4071 VkImage image; 4072 VkDeviceMemory memory; 4073 VkDeviceSize memoryOffset; 4074 } VkBindImageMemoryInfo; 4075 4076 typedef struct VkPhysicalDevice16BitStorageFeatures { 4077 VkStructureType sType; 4078 void* pNext; 4079 VkBool32 storageBuffer16BitAccess; 4080 VkBool32 uniformAndStorageBuffer16BitAccess; 4081 VkBool32 storagePushConstant16; 4082 VkBool32 storageInputOutput16; 4083 } VkPhysicalDevice16BitStorageFeatures; 4084 4085 typedef struct VkMemoryDedicatedRequirements { 4086 VkStructureType sType; 4087 void* pNext; 4088 VkBool32 prefersDedicatedAllocation; 4089 VkBool32 requiresDedicatedAllocation; 4090 } VkMemoryDedicatedRequirements; 4091 4092 typedef struct VkMemoryDedicatedAllocateInfo { 4093 VkStructureType sType; 4094 const void* pNext; 4095 VkImage image; 4096 VkBuffer buffer; 4097 } VkMemoryDedicatedAllocateInfo; 4098 4099 typedef struct VkMemoryAllocateFlagsInfo { 4100 VkStructureType sType; 4101 const void* pNext; 4102 VkMemoryAllocateFlags flags; 4103 uint32_t deviceMask; 4104 } VkMemoryAllocateFlagsInfo; 4105 4106 typedef struct VkDeviceGroupRenderPassBeginInfo { 4107 VkStructureType sType; 4108 const void* pNext; 4109 uint32_t deviceMask; 4110 uint32_t deviceRenderAreaCount; 4111 const VkRect2D* pDeviceRenderAreas; 4112 } VkDeviceGroupRenderPassBeginInfo; 4113 4114 typedef struct VkDeviceGroupCommandBufferBeginInfo { 4115 VkStructureType sType; 4116 const void* pNext; 4117 uint32_t deviceMask; 4118 } VkDeviceGroupCommandBufferBeginInfo; 4119 4120 typedef struct VkDeviceGroupSubmitInfo { 4121 VkStructureType sType; 4122 const void* pNext; 4123 uint32_t waitSemaphoreCount; 4124 const uint32_t* pWaitSemaphoreDeviceIndices; 4125 uint32_t commandBufferCount; 4126 const uint32_t* pCommandBufferDeviceMasks; 4127 uint32_t signalSemaphoreCount; 4128 const uint32_t* pSignalSemaphoreDeviceIndices; 4129 } VkDeviceGroupSubmitInfo; 4130 4131 typedef struct VkDeviceGroupBindSparseInfo { 4132 VkStructureType sType; 4133 const void* pNext; 4134 uint32_t resourceDeviceIndex; 4135 uint32_t memoryDeviceIndex; 4136 } VkDeviceGroupBindSparseInfo; 4137 4138 typedef struct VkBindBufferMemoryDeviceGroupInfo { 4139 VkStructureType sType; 4140 const void* pNext; 4141 uint32_t deviceIndexCount; 4142 const uint32_t* pDeviceIndices; 4143 } VkBindBufferMemoryDeviceGroupInfo; 4144 4145 typedef struct VkBindImageMemoryDeviceGroupInfo { 4146 VkStructureType sType; 4147 const void* pNext; 4148 uint32_t deviceIndexCount; 4149 const uint32_t* pDeviceIndices; 4150 uint32_t splitInstanceBindRegionCount; 4151 const VkRect2D* pSplitInstanceBindRegions; 4152 } VkBindImageMemoryDeviceGroupInfo; 4153 4154 typedef struct VkPhysicalDeviceGroupProperties { 4155 VkStructureType sType; 4156 void* pNext; 4157 uint32_t physicalDeviceCount; 4158 VkPhysicalDevice physicalDevices[VK_MAX_DEVICE_GROUP_SIZE]; 4159 VkBool32 subsetAllocation; 4160 } VkPhysicalDeviceGroupProperties; 4161 4162 typedef struct VkDeviceGroupDeviceCreateInfo { 4163 VkStructureType sType; 4164 const void* pNext; 4165 uint32_t physicalDeviceCount; 4166 const VkPhysicalDevice* pPhysicalDevices; 4167 } VkDeviceGroupDeviceCreateInfo; 4168 4169 typedef struct VkBufferMemoryRequirementsInfo2 { 4170 VkStructureType sType; 4171 const void* pNext; 4172 VkBuffer buffer; 4173 } VkBufferMemoryRequirementsInfo2; 4174 4175 typedef struct VkImageMemoryRequirementsInfo2 { 4176 VkStructureType sType; 4177 const void* pNext; 4178 VkImage image; 4179 } VkImageMemoryRequirementsInfo2; 4180 4181 typedef struct VkImageSparseMemoryRequirementsInfo2 { 4182 VkStructureType sType; 4183 const void* pNext; 4184 VkImage image; 4185 } VkImageSparseMemoryRequirementsInfo2; 4186 4187 typedef struct VkMemoryRequirements2 { 4188 VkStructureType sType; 4189 void* pNext; 4190 VkMemoryRequirements memoryRequirements; 4191 } VkMemoryRequirements2; 4192 4193 typedef VkMemoryRequirements2 VkMemoryRequirements2KHR; 4194 4195 typedef struct VkSparseImageMemoryRequirements2 { 4196 VkStructureType sType; 4197 void* pNext; 4198 VkSparseImageMemoryRequirements memoryRequirements; 4199 } VkSparseImageMemoryRequirements2; 4200 4201 typedef struct VkPhysicalDeviceFeatures2 { 4202 VkStructureType sType; 4203 void* pNext; 4204 VkPhysicalDeviceFeatures features; 4205 } VkPhysicalDeviceFeatures2; 4206 4207 typedef struct VkPhysicalDeviceProperties2 { 4208 VkStructureType sType; 4209 void* pNext; 4210 VkPhysicalDeviceProperties properties; 4211 } VkPhysicalDeviceProperties2; 4212 4213 typedef struct VkFormatProperties2 { 4214 VkStructureType sType; 4215 void* pNext; 4216 VkFormatProperties formatProperties; 4217 } VkFormatProperties2; 4218 4219 typedef struct VkImageFormatProperties2 { 4220 VkStructureType sType; 4221 void* pNext; 4222 VkImageFormatProperties imageFormatProperties; 4223 } VkImageFormatProperties2; 4224 4225 typedef struct VkPhysicalDeviceImageFormatInfo2 { 4226 VkStructureType sType; 4227 const void* pNext; 4228 VkFormat format; 4229 VkImageType type; 4230 VkImageTiling tiling; 4231 VkImageUsageFlags usage; 4232 VkImageCreateFlags flags; 4233 } VkPhysicalDeviceImageFormatInfo2; 4234 4235 typedef struct VkQueueFamilyProperties2 { 4236 VkStructureType sType; 4237 void* pNext; 4238 VkQueueFamilyProperties queueFamilyProperties; 4239 } VkQueueFamilyProperties2; 4240 4241 typedef struct VkPhysicalDeviceMemoryProperties2 { 4242 VkStructureType sType; 4243 void* pNext; 4244 VkPhysicalDeviceMemoryProperties memoryProperties; 4245 } VkPhysicalDeviceMemoryProperties2; 4246 4247 typedef struct VkSparseImageFormatProperties2 { 4248 VkStructureType sType; 4249 void* pNext; 4250 VkSparseImageFormatProperties properties; 4251 } VkSparseImageFormatProperties2; 4252 4253 typedef struct VkPhysicalDeviceSparseImageFormatInfo2 { 4254 VkStructureType sType; 4255 const void* pNext; 4256 VkFormat format; 4257 VkImageType type; 4258 VkSampleCountFlagBits samples; 4259 VkImageUsageFlags usage; 4260 VkImageTiling tiling; 4261 } VkPhysicalDeviceSparseImageFormatInfo2; 4262 4263 typedef struct VkPhysicalDevicePointClippingProperties { 4264 VkStructureType sType; 4265 void* pNext; 4266 VkPointClippingBehavior pointClippingBehavior; 4267 } VkPhysicalDevicePointClippingProperties; 4268 4269 typedef struct VkInputAttachmentAspectReference { 4270 uint32_t subpass; 4271 uint32_t inputAttachmentIndex; 4272 VkImageAspectFlags aspectMask; 4273 } VkInputAttachmentAspectReference; 4274 4275 typedef struct VkRenderPassInputAttachmentAspectCreateInfo { 4276 VkStructureType sType; 4277 const void* pNext; 4278 uint32_t aspectReferenceCount; 4279 const VkInputAttachmentAspectReference* pAspectReferences; 4280 } VkRenderPassInputAttachmentAspectCreateInfo; 4281 4282 typedef struct VkImageViewUsageCreateInfo { 4283 VkStructureType sType; 4284 const void* pNext; 4285 VkImageUsageFlags usage; 4286 } VkImageViewUsageCreateInfo; 4287 4288 typedef struct VkPipelineTessellationDomainOriginStateCreateInfo { 4289 VkStructureType sType; 4290 const void* pNext; 4291 VkTessellationDomainOrigin domainOrigin; 4292 } VkPipelineTessellationDomainOriginStateCreateInfo; 4293 4294 typedef struct VkRenderPassMultiviewCreateInfo { 4295 VkStructureType sType; 4296 const void* pNext; 4297 uint32_t subpassCount; 4298 const uint32_t* pViewMasks; 4299 uint32_t dependencyCount; 4300 const int32_t* pViewOffsets; 4301 uint32_t correlationMaskCount; 4302 const uint32_t* pCorrelationMasks; 4303 } VkRenderPassMultiviewCreateInfo; 4304 4305 typedef struct VkPhysicalDeviceMultiviewFeatures { 4306 VkStructureType sType; 4307 void* pNext; 4308 VkBool32 multiview; 4309 VkBool32 multiviewGeometryShader; 4310 VkBool32 multiviewTessellationShader; 4311 } VkPhysicalDeviceMultiviewFeatures; 4312 4313 typedef struct VkPhysicalDeviceMultiviewProperties { 4314 VkStructureType sType; 4315 void* pNext; 4316 uint32_t maxMultiviewViewCount; 4317 uint32_t maxMultiviewInstanceIndex; 4318 } VkPhysicalDeviceMultiviewProperties; 4319 4320 typedef struct VkPhysicalDeviceVariablePointerFeatures { 4321 VkStructureType sType; 4322 void* pNext; 4323 VkBool32 variablePointersStorageBuffer; 4324 VkBool32 variablePointers; 4325 } VkPhysicalDeviceVariablePointerFeatures; 4326 4327 typedef struct VkPhysicalDeviceProtectedMemoryFeatures { 4328 VkStructureType sType; 4329 void* pNext; 4330 VkBool32 protectedMemory; 4331 } VkPhysicalDeviceProtectedMemoryFeatures; 4332 4333 typedef struct VkPhysicalDeviceProtectedMemoryProperties { 4334 VkStructureType sType; 4335 void* pNext; 4336 VkBool32 protectedNoFault; 4337 } VkPhysicalDeviceProtectedMemoryProperties; 4338 4339 typedef struct VkDeviceQueueInfo2 { 4340 VkStructureType sType; 4341 const void* pNext; 4342 VkDeviceQueueCreateFlags flags; 4343 uint32_t queueFamilyIndex; 4344 uint32_t queueIndex; 4345 } VkDeviceQueueInfo2; 4346 4347 typedef struct VkProtectedSubmitInfo { 4348 VkStructureType sType; 4349 const void* pNext; 4350 VkBool32 protectedSubmit; 4351 } VkProtectedSubmitInfo; 4352 4353 typedef struct VkSamplerYcbcrConversionCreateInfo { 4354 VkStructureType sType; 4355 const void* pNext; 4356 VkFormat format; 4357 VkSamplerYcbcrModelConversion ycbcrModel; 4358 VkSamplerYcbcrRange ycbcrRange; 4359 VkComponentMapping components; 4360 VkChromaLocation xChromaOffset; 4361 VkChromaLocation yChromaOffset; 4362 VkFilter chromaFilter; 4363 VkBool32 forceExplicitReconstruction; 4364 } VkSamplerYcbcrConversionCreateInfo; 4365 4366 typedef struct VkSamplerYcbcrConversionInfo { 4367 VkStructureType sType; 4368 const void* pNext; 4369 VkSamplerYcbcrConversion conversion; 4370 } VkSamplerYcbcrConversionInfo; 4371 4372 typedef struct VkBindImagePlaneMemoryInfo { 4373 VkStructureType sType; 4374 const void* pNext; 4375 VkImageAspectFlagBits planeAspect; 4376 } VkBindImagePlaneMemoryInfo; 4377 4378 typedef struct VkImagePlaneMemoryRequirementsInfo { 4379 VkStructureType sType; 4380 const void* pNext; 4381 VkImageAspectFlagBits planeAspect; 4382 } VkImagePlaneMemoryRequirementsInfo; 4383 4384 typedef struct VkPhysicalDeviceSamplerYcbcrConversionFeatures { 4385 VkStructureType sType; 4386 void* pNext; 4387 VkBool32 samplerYcbcrConversion; 4388 } VkPhysicalDeviceSamplerYcbcrConversionFeatures; 4389 4390 typedef struct VkSamplerYcbcrConversionImageFormatProperties { 4391 VkStructureType sType; 4392 void* pNext; 4393 uint32_t combinedImageSamplerDescriptorCount; 4394 } VkSamplerYcbcrConversionImageFormatProperties; 4395 4396 typedef struct VkDescriptorUpdateTemplateEntry { 4397 uint32_t dstBinding; 4398 uint32_t dstArrayElement; 4399 uint32_t descriptorCount; 4400 VkDescriptorType descriptorType; 4401 size_t offset; 4402 size_t stride; 4403 } VkDescriptorUpdateTemplateEntry; 4404 4405 typedef struct VkDescriptorUpdateTemplateCreateInfo { 4406 VkStructureType sType; 4407 const void* pNext; 4408 VkDescriptorUpdateTemplateCreateFlags flags; 4409 uint32_t descriptorUpdateEntryCount; 4410 const VkDescriptorUpdateTemplateEntry* pDescriptorUpdateEntries; 4411 VkDescriptorUpdateTemplateType templateType; 4412 VkDescriptorSetLayout descriptorSetLayout; 4413 VkPipelineBindPoint pipelineBindPoint; 4414 VkPipelineLayout pipelineLayout; 4415 uint32_t set; 4416 } VkDescriptorUpdateTemplateCreateInfo; 4417 4418 typedef struct VkExternalMemoryProperties { 4419 VkExternalMemoryFeatureFlags externalMemoryFeatures; 4420 VkExternalMemoryHandleTypeFlags exportFromImportedHandleTypes; 4421 VkExternalMemoryHandleTypeFlags compatibleHandleTypes; 4422 } VkExternalMemoryProperties; 4423 4424 typedef struct VkPhysicalDeviceExternalImageFormatInfo { 4425 VkStructureType sType; 4426 const void* pNext; 4427 VkExternalMemoryHandleTypeFlagBits handleType; 4428 } VkPhysicalDeviceExternalImageFormatInfo; 4429 4430 typedef struct VkExternalImageFormatProperties { 4431 VkStructureType sType; 4432 void* pNext; 4433 VkExternalMemoryProperties externalMemoryProperties; 4434 } VkExternalImageFormatProperties; 4435 4436 typedef struct VkPhysicalDeviceExternalBufferInfo { 4437 VkStructureType sType; 4438 const void* pNext; 4439 VkBufferCreateFlags flags; 4440 VkBufferUsageFlags usage; 4441 VkExternalMemoryHandleTypeFlagBits handleType; 4442 } VkPhysicalDeviceExternalBufferInfo; 4443 4444 typedef struct VkExternalBufferProperties { 4445 VkStructureType sType; 4446 void* pNext; 4447 VkExternalMemoryProperties externalMemoryProperties; 4448 } VkExternalBufferProperties; 4449 4450 typedef struct VkPhysicalDeviceIDProperties { 4451 VkStructureType sType; 4452 void* pNext; 4453 uint8_t deviceUUID[VK_UUID_SIZE]; 4454 uint8_t driverUUID[VK_UUID_SIZE]; 4455 uint8_t deviceLUID[VK_LUID_SIZE]; 4456 uint32_t deviceNodeMask; 4457 VkBool32 deviceLUIDValid; 4458 } VkPhysicalDeviceIDProperties; 4459 4460 typedef struct VkExternalMemoryImageCreateInfo { 4461 VkStructureType sType; 4462 const void* pNext; 4463 VkExternalMemoryHandleTypeFlags handleTypes; 4464 } VkExternalMemoryImageCreateInfo; 4465 4466 typedef struct VkExternalMemoryBufferCreateInfo { 4467 VkStructureType sType; 4468 const void* pNext; 4469 VkExternalMemoryHandleTypeFlags handleTypes; 4470 } VkExternalMemoryBufferCreateInfo; 4471 4472 typedef struct VkExportMemoryAllocateInfo { 4473 VkStructureType sType; 4474 const void* pNext; 4475 VkExternalMemoryHandleTypeFlags handleTypes; 4476 } VkExportMemoryAllocateInfo; 4477 4478 typedef struct VkPhysicalDeviceExternalFenceInfo { 4479 VkStructureType sType; 4480 const void* pNext; 4481 VkExternalFenceHandleTypeFlagBits handleType; 4482 } VkPhysicalDeviceExternalFenceInfo; 4483 4484 typedef struct VkExternalFenceProperties { 4485 VkStructureType sType; 4486 void* pNext; 4487 VkExternalFenceHandleTypeFlags exportFromImportedHandleTypes; 4488 VkExternalFenceHandleTypeFlags compatibleHandleTypes; 4489 VkExternalFenceFeatureFlags externalFenceFeatures; 4490 } VkExternalFenceProperties; 4491 4492 typedef struct VkExportFenceCreateInfo { 4493 VkStructureType sType; 4494 const void* pNext; 4495 VkExternalFenceHandleTypeFlags handleTypes; 4496 } VkExportFenceCreateInfo; 4497 4498 typedef struct VkExportSemaphoreCreateInfo { 4499 VkStructureType sType; 4500 const void* pNext; 4501 VkExternalSemaphoreHandleTypeFlags handleTypes; 4502 } VkExportSemaphoreCreateInfo; 4503 4504 typedef struct VkPhysicalDeviceExternalSemaphoreInfo { 4505 VkStructureType sType; 4506 const void* pNext; 4507 VkExternalSemaphoreHandleTypeFlagBits handleType; 4508 } VkPhysicalDeviceExternalSemaphoreInfo; 4509 4510 typedef struct VkExternalSemaphoreProperties { 4511 VkStructureType sType; 4512 void* pNext; 4513 VkExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes; 4514 VkExternalSemaphoreHandleTypeFlags compatibleHandleTypes; 4515 VkExternalSemaphoreFeatureFlags externalSemaphoreFeatures; 4516 } VkExternalSemaphoreProperties; 4517 4518 typedef struct VkPhysicalDeviceMaintenance3Properties { 4519 VkStructureType sType; 4520 void* pNext; 4521 uint32_t maxPerSetDescriptors; 4522 VkDeviceSize maxMemoryAllocationSize; 4523 } VkPhysicalDeviceMaintenance3Properties; 4524 4525 typedef struct VkDescriptorSetLayoutSupport { 4526 VkStructureType sType; 4527 void* pNext; 4528 VkBool32 supported; 4529 } VkDescriptorSetLayoutSupport; 4530 4531 typedef struct VkPhysicalDeviceShaderDrawParameterFeatures { 4532 VkStructureType sType; 4533 void* pNext; 4534 VkBool32 shaderDrawParameters; 4535 } VkPhysicalDeviceShaderDrawParameterFeatures; 4536 4537 4538 typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceVersion)(uint32_t* pApiVersion); 4539 typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos); 4540 typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos); 4541 typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeatures)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures); 4542 typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMask)(VkCommandBuffer commandBuffer, uint32_t deviceMask); 4543 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); 4544 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroups)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties); 4545 typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements); 4546 typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements); 4547 typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements); 4548 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures); 4549 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties); 4550 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties); 4551 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties); 4552 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties); 4553 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties); 4554 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties); 4555 typedef void (VKAPI_PTR *PFN_vkTrimCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags); 4556 typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue2)(VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue); 4557 typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversion)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion); 4558 typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversion)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator); 4559 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplate)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate); 4560 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplate)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator); 4561 typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplate)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData); 4562 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties); 4563 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFenceProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties); 4564 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphoreProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties); 4565 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupport)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport); 4566 4567 #ifndef VK_NO_PROTOTYPES 4568 VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceVersion( 4569 uint32_t* pApiVersion); 4570 4571 VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2( 4572 VkDevice device, 4573 uint32_t bindInfoCount, 4574 const VkBindBufferMemoryInfo* pBindInfos); 4575 4576 VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2( 4577 VkDevice device, 4578 uint32_t bindInfoCount, 4579 const VkBindImageMemoryInfo* pBindInfos); 4580 4581 VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeatures( 4582 VkDevice device, 4583 uint32_t heapIndex, 4584 uint32_t localDeviceIndex, 4585 uint32_t remoteDeviceIndex, 4586 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures); 4587 4588 VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMask( 4589 VkCommandBuffer commandBuffer, 4590 uint32_t deviceMask); 4591 4592 VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBase( 4593 VkCommandBuffer commandBuffer, 4594 uint32_t baseGroupX, 4595 uint32_t baseGroupY, 4596 uint32_t baseGroupZ, 4597 uint32_t groupCountX, 4598 uint32_t groupCountY, 4599 uint32_t groupCountZ); 4600 4601 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroups( 4602 VkInstance instance, 4603 uint32_t* pPhysicalDeviceGroupCount, 4604 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties); 4605 4606 VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2( 4607 VkDevice device, 4608 const VkImageMemoryRequirementsInfo2* pInfo, 4609 VkMemoryRequirements2* pMemoryRequirements); 4610 4611 VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2( 4612 VkDevice device, 4613 const VkBufferMemoryRequirementsInfo2* pInfo, 4614 VkMemoryRequirements2* pMemoryRequirements); 4615 4616 VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2( 4617 VkDevice device, 4618 const VkImageSparseMemoryRequirementsInfo2* pInfo, 4619 uint32_t* pSparseMemoryRequirementCount, 4620 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements); 4621 4622 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2( 4623 VkPhysicalDevice physicalDevice, 4624 VkPhysicalDeviceFeatures2* pFeatures); 4625 4626 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2( 4627 VkPhysicalDevice physicalDevice, 4628 VkPhysicalDeviceProperties2* pProperties); 4629 4630 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2( 4631 VkPhysicalDevice physicalDevice, 4632 VkFormat format, 4633 VkFormatProperties2* pFormatProperties); 4634 4635 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2( 4636 VkPhysicalDevice physicalDevice, 4637 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, 4638 VkImageFormatProperties2* pImageFormatProperties); 4639 4640 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2( 4641 VkPhysicalDevice physicalDevice, 4642 uint32_t* pQueueFamilyPropertyCount, 4643 VkQueueFamilyProperties2* pQueueFamilyProperties); 4644 4645 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2( 4646 VkPhysicalDevice physicalDevice, 4647 VkPhysicalDeviceMemoryProperties2* pMemoryProperties); 4648 4649 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2( 4650 VkPhysicalDevice physicalDevice, 4651 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, 4652 uint32_t* pPropertyCount, 4653 VkSparseImageFormatProperties2* pProperties); 4654 4655 VKAPI_ATTR void VKAPI_CALL vkTrimCommandPool( 4656 VkDevice device, 4657 VkCommandPool commandPool, 4658 VkCommandPoolTrimFlags flags); 4659 4660 VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue2( 4661 VkDevice device, 4662 const VkDeviceQueueInfo2* pQueueInfo, 4663 VkQueue* pQueue); 4664 4665 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversion( 4666 VkDevice device, 4667 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, 4668 const VkAllocationCallbacks* pAllocator, 4669 VkSamplerYcbcrConversion* pYcbcrConversion); 4670 4671 VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversion( 4672 VkDevice device, 4673 VkSamplerYcbcrConversion ycbcrConversion, 4674 const VkAllocationCallbacks* pAllocator); 4675 4676 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplate( 4677 VkDevice device, 4678 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, 4679 const VkAllocationCallbacks* pAllocator, 4680 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate); 4681 4682 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplate( 4683 VkDevice device, 4684 VkDescriptorUpdateTemplate descriptorUpdateTemplate, 4685 const VkAllocationCallbacks* pAllocator); 4686 4687 VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplate( 4688 VkDevice device, 4689 VkDescriptorSet descriptorSet, 4690 VkDescriptorUpdateTemplate descriptorUpdateTemplate, 4691 const void* pData); 4692 4693 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferProperties( 4694 VkPhysicalDevice physicalDevice, 4695 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, 4696 VkExternalBufferProperties* pExternalBufferProperties); 4697 4698 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFenceProperties( 4699 VkPhysicalDevice physicalDevice, 4700 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, 4701 VkExternalFenceProperties* pExternalFenceProperties); 4702 4703 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphoreProperties( 4704 VkPhysicalDevice physicalDevice, 4705 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, 4706 VkExternalSemaphoreProperties* pExternalSemaphoreProperties); 4707 4708 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupport( 4709 VkDevice device, 4710 const VkDescriptorSetLayoutCreateInfo* pCreateInfo, 4711 VkDescriptorSetLayoutSupport* pSupport); 4712 #endif 4713 4714 #define VK_KHR_surface 1 4715 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR) 4716 4717 #define VK_KHR_SURFACE_SPEC_VERSION 25 4718 #define VK_KHR_SURFACE_EXTENSION_NAME "VK_KHR_surface" 4719 4720 4721 typedef enum VkColorSpaceKHR { 4722 VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0, 4723 VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001, 4724 VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002, 4725 VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = 1000104003, 4726 VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004, 4727 VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005, 4728 VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006, 4729 VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007, 4730 VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008, 4731 VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009, 4732 VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010, 4733 VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011, 4734 VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012, 4735 VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013, 4736 VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014, 4737 VK_COLORSPACE_SRGB_NONLINEAR_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR, 4738 VK_COLOR_SPACE_BEGIN_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR, 4739 VK_COLOR_SPACE_END_RANGE_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR, 4740 VK_COLOR_SPACE_RANGE_SIZE_KHR = (VK_COLOR_SPACE_SRGB_NONLINEAR_KHR - VK_COLOR_SPACE_SRGB_NONLINEAR_KHR + 1), 4741 VK_COLOR_SPACE_MAX_ENUM_KHR = 0x7FFFFFFF 4742 } VkColorSpaceKHR; 4743 4744 typedef enum VkPresentModeKHR { 4745 VK_PRESENT_MODE_IMMEDIATE_KHR = 0, 4746 VK_PRESENT_MODE_MAILBOX_KHR = 1, 4747 VK_PRESENT_MODE_FIFO_KHR = 2, 4748 VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3, 4749 VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000, 4750 VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001, 4751 VK_PRESENT_MODE_BEGIN_RANGE_KHR = VK_PRESENT_MODE_IMMEDIATE_KHR, 4752 VK_PRESENT_MODE_END_RANGE_KHR = VK_PRESENT_MODE_FIFO_RELAXED_KHR, 4753 VK_PRESENT_MODE_RANGE_SIZE_KHR = (VK_PRESENT_MODE_FIFO_RELAXED_KHR - VK_PRESENT_MODE_IMMEDIATE_KHR + 1), 4754 VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF 4755 } VkPresentModeKHR; 4756 4757 4758 typedef enum VkSurfaceTransformFlagBitsKHR { 4759 VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001, 4760 VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002, 4761 VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004, 4762 VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008, 4763 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010, 4764 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020, 4765 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040, 4766 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080, 4767 VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100, 4768 VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF 4769 } VkSurfaceTransformFlagBitsKHR; 4770 typedef VkFlags VkSurfaceTransformFlagsKHR; 4771 4772 typedef enum VkCompositeAlphaFlagBitsKHR { 4773 VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001, 4774 VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002, 4775 VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004, 4776 VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008, 4777 VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF 4778 } VkCompositeAlphaFlagBitsKHR; 4779 typedef VkFlags VkCompositeAlphaFlagsKHR; 4780 4781 typedef struct VkSurfaceCapabilitiesKHR { 4782 uint32_t minImageCount; 4783 uint32_t maxImageCount; 4784 VkExtent2D currentExtent; 4785 VkExtent2D minImageExtent; 4786 VkExtent2D maxImageExtent; 4787 uint32_t maxImageArrayLayers; 4788 VkSurfaceTransformFlagsKHR supportedTransforms; 4789 VkSurfaceTransformFlagBitsKHR currentTransform; 4790 VkCompositeAlphaFlagsKHR supportedCompositeAlpha; 4791 VkImageUsageFlags supportedUsageFlags; 4792 } VkSurfaceCapabilitiesKHR; 4793 4794 typedef struct VkSurfaceFormatKHR { 4795 VkFormat format; 4796 VkColorSpaceKHR colorSpace; 4797 } VkSurfaceFormatKHR; 4798 4799 4800 typedef void (VKAPI_PTR *PFN_vkDestroySurfaceKHR)(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator); 4801 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported); 4802 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities); 4803 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats); 4804 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes); 4805 4806 #ifndef VK_NO_PROTOTYPES 4807 VKAPI_ATTR void VKAPI_CALL vkDestroySurfaceKHR( 4808 VkInstance instance, 4809 VkSurfaceKHR surface, 4810 const VkAllocationCallbacks* pAllocator); 4811 4812 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceSupportKHR( 4813 VkPhysicalDevice physicalDevice, 4814 uint32_t queueFamilyIndex, 4815 VkSurfaceKHR surface, 4816 VkBool32* pSupported); 4817 4818 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilitiesKHR( 4819 VkPhysicalDevice physicalDevice, 4820 VkSurfaceKHR surface, 4821 VkSurfaceCapabilitiesKHR* pSurfaceCapabilities); 4822 4823 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormatsKHR( 4824 VkPhysicalDevice physicalDevice, 4825 VkSurfaceKHR surface, 4826 uint32_t* pSurfaceFormatCount, 4827 VkSurfaceFormatKHR* pSurfaceFormats); 4828 4829 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModesKHR( 4830 VkPhysicalDevice physicalDevice, 4831 VkSurfaceKHR surface, 4832 uint32_t* pPresentModeCount, 4833 VkPresentModeKHR* pPresentModes); 4834 #endif 4835 4836 #define VK_KHR_swapchain 1 4837 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR) 4838 4839 #define VK_KHR_SWAPCHAIN_SPEC_VERSION 70 4840 #define VK_KHR_SWAPCHAIN_EXTENSION_NAME "VK_KHR_swapchain" 4841 4842 4843 typedef enum VkSwapchainCreateFlagBitsKHR { 4844 VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001, 4845 VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002, 4846 VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 0x00000004, 4847 VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF 4848 } VkSwapchainCreateFlagBitsKHR; 4849 typedef VkFlags VkSwapchainCreateFlagsKHR; 4850 4851 typedef enum VkDeviceGroupPresentModeFlagBitsKHR { 4852 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0x00000001, 4853 VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0x00000002, 4854 VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0x00000004, 4855 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0x00000008, 4856 VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF 4857 } VkDeviceGroupPresentModeFlagBitsKHR; 4858 typedef VkFlags VkDeviceGroupPresentModeFlagsKHR; 4859 4860 typedef struct VkSwapchainCreateInfoKHR { 4861 VkStructureType sType; 4862 const void* pNext; 4863 VkSwapchainCreateFlagsKHR flags; 4864 VkSurfaceKHR surface; 4865 uint32_t minImageCount; 4866 VkFormat imageFormat; 4867 VkColorSpaceKHR imageColorSpace; 4868 VkExtent2D imageExtent; 4869 uint32_t imageArrayLayers; 4870 VkImageUsageFlags imageUsage; 4871 VkSharingMode imageSharingMode; 4872 uint32_t queueFamilyIndexCount; 4873 const uint32_t* pQueueFamilyIndices; 4874 VkSurfaceTransformFlagBitsKHR preTransform; 4875 VkCompositeAlphaFlagBitsKHR compositeAlpha; 4876 VkPresentModeKHR presentMode; 4877 VkBool32 clipped; 4878 VkSwapchainKHR oldSwapchain; 4879 } VkSwapchainCreateInfoKHR; 4880 4881 typedef struct VkPresentInfoKHR { 4882 VkStructureType sType; 4883 const void* pNext; 4884 uint32_t waitSemaphoreCount; 4885 const VkSemaphore* pWaitSemaphores; 4886 uint32_t swapchainCount; 4887 const VkSwapchainKHR* pSwapchains; 4888 const uint32_t* pImageIndices; 4889 VkResult* pResults; 4890 } VkPresentInfoKHR; 4891 4892 typedef struct VkImageSwapchainCreateInfoKHR { 4893 VkStructureType sType; 4894 const void* pNext; 4895 VkSwapchainKHR swapchain; 4896 } VkImageSwapchainCreateInfoKHR; 4897 4898 typedef struct VkBindImageMemorySwapchainInfoKHR { 4899 VkStructureType sType; 4900 const void* pNext; 4901 VkSwapchainKHR swapchain; 4902 uint32_t imageIndex; 4903 } VkBindImageMemorySwapchainInfoKHR; 4904 4905 typedef struct VkAcquireNextImageInfoKHR { 4906 VkStructureType sType; 4907 const void* pNext; 4908 VkSwapchainKHR swapchain; 4909 uint64_t timeout; 4910 VkSemaphore semaphore; 4911 VkFence fence; 4912 uint32_t deviceMask; 4913 } VkAcquireNextImageInfoKHR; 4914 4915 typedef struct VkDeviceGroupPresentCapabilitiesKHR { 4916 VkStructureType sType; 4917 const void* pNext; 4918 uint32_t presentMask[VK_MAX_DEVICE_GROUP_SIZE]; 4919 VkDeviceGroupPresentModeFlagsKHR modes; 4920 } VkDeviceGroupPresentCapabilitiesKHR; 4921 4922 typedef struct VkDeviceGroupPresentInfoKHR { 4923 VkStructureType sType; 4924 const void* pNext; 4925 uint32_t swapchainCount; 4926 const uint32_t* pDeviceMasks; 4927 VkDeviceGroupPresentModeFlagBitsKHR mode; 4928 } VkDeviceGroupPresentInfoKHR; 4929 4930 typedef struct VkDeviceGroupSwapchainCreateInfoKHR { 4931 VkStructureType sType; 4932 const void* pNext; 4933 VkDeviceGroupPresentModeFlagsKHR modes; 4934 } VkDeviceGroupSwapchainCreateInfoKHR; 4935 4936 4937 typedef VkResult (VKAPI_PTR *PFN_vkCreateSwapchainKHR)(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain); 4938 typedef void (VKAPI_PTR *PFN_vkDestroySwapchainKHR)(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator); 4939 typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainImagesKHR)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages); 4940 typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImageKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex); 4941 typedef VkResult (VKAPI_PTR *PFN_vkQueuePresentKHR)(VkQueue queue, const VkPresentInfoKHR* pPresentInfo); 4942 typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupPresentCapabilitiesKHR)(VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities); 4943 typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupSurfacePresentModesKHR)(VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes); 4944 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDevicePresentRectanglesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects); 4945 typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImage2KHR)(VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex); 4946 4947 #ifndef VK_NO_PROTOTYPES 4948 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSwapchainKHR( 4949 VkDevice device, 4950 const VkSwapchainCreateInfoKHR* pCreateInfo, 4951 const VkAllocationCallbacks* pAllocator, 4952 VkSwapchainKHR* pSwapchain); 4953 4954 VKAPI_ATTR void VKAPI_CALL vkDestroySwapchainKHR( 4955 VkDevice device, 4956 VkSwapchainKHR swapchain, 4957 const VkAllocationCallbacks* pAllocator); 4958 4959 VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainImagesKHR( 4960 VkDevice device, 4961 VkSwapchainKHR swapchain, 4962 uint32_t* pSwapchainImageCount, 4963 VkImage* pSwapchainImages); 4964 4965 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImageKHR( 4966 VkDevice device, 4967 VkSwapchainKHR swapchain, 4968 uint64_t timeout, 4969 VkSemaphore semaphore, 4970 VkFence fence, 4971 uint32_t* pImageIndex); 4972 4973 VKAPI_ATTR VkResult VKAPI_CALL vkQueuePresentKHR( 4974 VkQueue queue, 4975 const VkPresentInfoKHR* pPresentInfo); 4976 4977 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupPresentCapabilitiesKHR( 4978 VkDevice device, 4979 VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities); 4980 4981 VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModesKHR( 4982 VkDevice device, 4983 VkSurfaceKHR surface, 4984 VkDeviceGroupPresentModeFlagsKHR* pModes); 4985 4986 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDevicePresentRectanglesKHR( 4987 VkPhysicalDevice physicalDevice, 4988 VkSurfaceKHR surface, 4989 uint32_t* pRectCount, 4990 VkRect2D* pRects); 4991 4992 VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImage2KHR( 4993 VkDevice device, 4994 const VkAcquireNextImageInfoKHR* pAcquireInfo, 4995 uint32_t* pImageIndex); 4996 #endif 4997 4998 #define VK_KHR_display 1 4999 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR) 5000 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR) 5001 5002 #define VK_KHR_DISPLAY_SPEC_VERSION 21 5003 #define VK_KHR_DISPLAY_EXTENSION_NAME "VK_KHR_display" 5004 5005 5006 typedef enum VkDisplayPlaneAlphaFlagBitsKHR { 5007 VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001, 5008 VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002, 5009 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004, 5010 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008, 5011 VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF 5012 } VkDisplayPlaneAlphaFlagBitsKHR; 5013 typedef VkFlags VkDisplayPlaneAlphaFlagsKHR; 5014 typedef VkFlags VkDisplayModeCreateFlagsKHR; 5015 typedef VkFlags VkDisplaySurfaceCreateFlagsKHR; 5016 5017 typedef struct VkDisplayPropertiesKHR { 5018 VkDisplayKHR display; 5019 const char* displayName; 5020 VkExtent2D physicalDimensions; 5021 VkExtent2D physicalResolution; 5022 VkSurfaceTransformFlagsKHR supportedTransforms; 5023 VkBool32 planeReorderPossible; 5024 VkBool32 persistentContent; 5025 } VkDisplayPropertiesKHR; 5026 5027 typedef struct VkDisplayModeParametersKHR { 5028 VkExtent2D visibleRegion; 5029 uint32_t refreshRate; 5030 } VkDisplayModeParametersKHR; 5031 5032 typedef struct VkDisplayModePropertiesKHR { 5033 VkDisplayModeKHR displayMode; 5034 VkDisplayModeParametersKHR parameters; 5035 } VkDisplayModePropertiesKHR; 5036 5037 typedef struct VkDisplayModeCreateInfoKHR { 5038 VkStructureType sType; 5039 const void* pNext; 5040 VkDisplayModeCreateFlagsKHR flags; 5041 VkDisplayModeParametersKHR parameters; 5042 } VkDisplayModeCreateInfoKHR; 5043 5044 typedef struct VkDisplayPlaneCapabilitiesKHR { 5045 VkDisplayPlaneAlphaFlagsKHR supportedAlpha; 5046 VkOffset2D minSrcPosition; 5047 VkOffset2D maxSrcPosition; 5048 VkExtent2D minSrcExtent; 5049 VkExtent2D maxSrcExtent; 5050 VkOffset2D minDstPosition; 5051 VkOffset2D maxDstPosition; 5052 VkExtent2D minDstExtent; 5053 VkExtent2D maxDstExtent; 5054 } VkDisplayPlaneCapabilitiesKHR; 5055 5056 typedef struct VkDisplayPlanePropertiesKHR { 5057 VkDisplayKHR currentDisplay; 5058 uint32_t currentStackIndex; 5059 } VkDisplayPlanePropertiesKHR; 5060 5061 typedef struct VkDisplaySurfaceCreateInfoKHR { 5062 VkStructureType sType; 5063 const void* pNext; 5064 VkDisplaySurfaceCreateFlagsKHR flags; 5065 VkDisplayModeKHR displayMode; 5066 uint32_t planeIndex; 5067 uint32_t planeStackIndex; 5068 VkSurfaceTransformFlagBitsKHR transform; 5069 float globalAlpha; 5070 VkDisplayPlaneAlphaFlagBitsKHR alphaMode; 5071 VkExtent2D imageExtent; 5072 } VkDisplaySurfaceCreateInfoKHR; 5073 5074 5075 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties); 5076 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties); 5077 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays); 5078 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties); 5079 typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode); 5080 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities); 5081 typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayPlaneSurfaceKHR)(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); 5082 5083 #ifndef VK_NO_PROTOTYPES 5084 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPropertiesKHR( 5085 VkPhysicalDevice physicalDevice, 5086 uint32_t* pPropertyCount, 5087 VkDisplayPropertiesKHR* pProperties); 5088 5089 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlanePropertiesKHR( 5090 VkPhysicalDevice physicalDevice, 5091 uint32_t* pPropertyCount, 5092 VkDisplayPlanePropertiesKHR* pProperties); 5093 5094 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneSupportedDisplaysKHR( 5095 VkPhysicalDevice physicalDevice, 5096 uint32_t planeIndex, 5097 uint32_t* pDisplayCount, 5098 VkDisplayKHR* pDisplays); 5099 5100 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModePropertiesKHR( 5101 VkPhysicalDevice physicalDevice, 5102 VkDisplayKHR display, 5103 uint32_t* pPropertyCount, 5104 VkDisplayModePropertiesKHR* pProperties); 5105 5106 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayModeKHR( 5107 VkPhysicalDevice physicalDevice, 5108 VkDisplayKHR display, 5109 const VkDisplayModeCreateInfoKHR* pCreateInfo, 5110 const VkAllocationCallbacks* pAllocator, 5111 VkDisplayModeKHR* pMode); 5112 5113 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilitiesKHR( 5114 VkPhysicalDevice physicalDevice, 5115 VkDisplayModeKHR mode, 5116 uint32_t planeIndex, 5117 VkDisplayPlaneCapabilitiesKHR* pCapabilities); 5118 5119 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayPlaneSurfaceKHR( 5120 VkInstance instance, 5121 const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, 5122 const VkAllocationCallbacks* pAllocator, 5123 VkSurfaceKHR* pSurface); 5124 #endif 5125 5126 #define VK_KHR_display_swapchain 1 5127 #define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 9 5128 #define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain" 5129 5130 typedef struct VkDisplayPresentInfoKHR { 5131 VkStructureType sType; 5132 const void* pNext; 5133 VkRect2D srcRect; 5134 VkRect2D dstRect; 5135 VkBool32 persistent; 5136 } VkDisplayPresentInfoKHR; 5137 5138 5139 typedef VkResult (VKAPI_PTR *PFN_vkCreateSharedSwapchainsKHR)(VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains); 5140 5141 #ifndef VK_NO_PROTOTYPES 5142 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSharedSwapchainsKHR( 5143 VkDevice device, 5144 uint32_t swapchainCount, 5145 const VkSwapchainCreateInfoKHR* pCreateInfos, 5146 const VkAllocationCallbacks* pAllocator, 5147 VkSwapchainKHR* pSwapchains); 5148 #endif 5149 5150 #define VK_KHR_sampler_mirror_clamp_to_edge 1 5151 #define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 1 5152 #define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME "VK_KHR_sampler_mirror_clamp_to_edge" 5153 5154 5155 #define VK_KHR_multiview 1 5156 #define VK_KHR_MULTIVIEW_SPEC_VERSION 1 5157 #define VK_KHR_MULTIVIEW_EXTENSION_NAME "VK_KHR_multiview" 5158 5159 typedef VkRenderPassMultiviewCreateInfo VkRenderPassMultiviewCreateInfoKHR; 5160 5161 typedef VkPhysicalDeviceMultiviewFeatures VkPhysicalDeviceMultiviewFeaturesKHR; 5162 5163 typedef VkPhysicalDeviceMultiviewProperties VkPhysicalDeviceMultiviewPropertiesKHR; 5164 5165 5166 5167 #define VK_KHR_get_physical_device_properties2 1 5168 #define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 1 5169 #define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2" 5170 5171 typedef VkPhysicalDeviceFeatures2 VkPhysicalDeviceFeatures2KHR; 5172 5173 typedef VkPhysicalDeviceProperties2 VkPhysicalDeviceProperties2KHR; 5174 5175 typedef VkFormatProperties2 VkFormatProperties2KHR; 5176 5177 typedef VkImageFormatProperties2 VkImageFormatProperties2KHR; 5178 5179 typedef VkPhysicalDeviceImageFormatInfo2 VkPhysicalDeviceImageFormatInfo2KHR; 5180 5181 typedef VkQueueFamilyProperties2 VkQueueFamilyProperties2KHR; 5182 5183 typedef VkPhysicalDeviceMemoryProperties2 VkPhysicalDeviceMemoryProperties2KHR; 5184 5185 typedef VkSparseImageFormatProperties2 VkSparseImageFormatProperties2KHR; 5186 5187 typedef VkPhysicalDeviceSparseImageFormatInfo2 VkPhysicalDeviceSparseImageFormatInfo2KHR; 5188 5189 5190 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures); 5191 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties); 5192 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2KHR)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties); 5193 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties); 5194 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties); 5195 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties); 5196 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties); 5197 5198 #ifndef VK_NO_PROTOTYPES 5199 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2KHR( 5200 VkPhysicalDevice physicalDevice, 5201 VkPhysicalDeviceFeatures2* pFeatures); 5202 5203 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2KHR( 5204 VkPhysicalDevice physicalDevice, 5205 VkPhysicalDeviceProperties2* pProperties); 5206 5207 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2KHR( 5208 VkPhysicalDevice physicalDevice, 5209 VkFormat format, 5210 VkFormatProperties2* pFormatProperties); 5211 5212 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2KHR( 5213 VkPhysicalDevice physicalDevice, 5214 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, 5215 VkImageFormatProperties2* pImageFormatProperties); 5216 5217 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2KHR( 5218 VkPhysicalDevice physicalDevice, 5219 uint32_t* pQueueFamilyPropertyCount, 5220 VkQueueFamilyProperties2* pQueueFamilyProperties); 5221 5222 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2KHR( 5223 VkPhysicalDevice physicalDevice, 5224 VkPhysicalDeviceMemoryProperties2* pMemoryProperties); 5225 5226 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2KHR( 5227 VkPhysicalDevice physicalDevice, 5228 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, 5229 uint32_t* pPropertyCount, 5230 VkSparseImageFormatProperties2* pProperties); 5231 #endif 5232 5233 #define VK_KHR_device_group 1 5234 #define VK_KHR_DEVICE_GROUP_SPEC_VERSION 3 5235 #define VK_KHR_DEVICE_GROUP_EXTENSION_NAME "VK_KHR_device_group" 5236 5237 typedef VkPeerMemoryFeatureFlags VkPeerMemoryFeatureFlagsKHR; 5238 5239 typedef VkPeerMemoryFeatureFlagBits VkPeerMemoryFeatureFlagBitsKHR; 5240 5241 typedef VkMemoryAllocateFlags VkMemoryAllocateFlagsKHR; 5242 5243 typedef VkMemoryAllocateFlagBits VkMemoryAllocateFlagBitsKHR; 5244 5245 5246 typedef VkMemoryAllocateFlagsInfo VkMemoryAllocateFlagsInfoKHR; 5247 5248 typedef VkDeviceGroupRenderPassBeginInfo VkDeviceGroupRenderPassBeginInfoKHR; 5249 5250 typedef VkDeviceGroupCommandBufferBeginInfo VkDeviceGroupCommandBufferBeginInfoKHR; 5251 5252 typedef VkDeviceGroupSubmitInfo VkDeviceGroupSubmitInfoKHR; 5253 5254 typedef VkDeviceGroupBindSparseInfo VkDeviceGroupBindSparseInfoKHR; 5255 5256 typedef VkBindBufferMemoryDeviceGroupInfo VkBindBufferMemoryDeviceGroupInfoKHR; 5257 5258 typedef VkBindImageMemoryDeviceGroupInfo VkBindImageMemoryDeviceGroupInfoKHR; 5259 5260 5261 typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures); 5262 typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMaskKHR)(VkCommandBuffer commandBuffer, uint32_t deviceMask); 5263 typedef void (VKAPI_PTR *PFN_vkCmdDispatchBaseKHR)(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ); 5264 5265 #ifndef VK_NO_PROTOTYPES 5266 VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeaturesKHR( 5267 VkDevice device, 5268 uint32_t heapIndex, 5269 uint32_t localDeviceIndex, 5270 uint32_t remoteDeviceIndex, 5271 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures); 5272 5273 VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMaskKHR( 5274 VkCommandBuffer commandBuffer, 5275 uint32_t deviceMask); 5276 5277 VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBaseKHR( 5278 VkCommandBuffer commandBuffer, 5279 uint32_t baseGroupX, 5280 uint32_t baseGroupY, 5281 uint32_t baseGroupZ, 5282 uint32_t groupCountX, 5283 uint32_t groupCountY, 5284 uint32_t groupCountZ); 5285 #endif 5286 5287 #define VK_KHR_shader_draw_parameters 1 5288 #define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1 5289 #define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters" 5290 5291 5292 #define VK_KHR_maintenance1 1 5293 #define VK_KHR_MAINTENANCE1_SPEC_VERSION 2 5294 #define VK_KHR_MAINTENANCE1_EXTENSION_NAME "VK_KHR_maintenance1" 5295 5296 typedef VkCommandPoolTrimFlags VkCommandPoolTrimFlagsKHR; 5297 5298 5299 typedef void (VKAPI_PTR *PFN_vkTrimCommandPoolKHR)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags); 5300 5301 #ifndef VK_NO_PROTOTYPES 5302 VKAPI_ATTR void VKAPI_CALL vkTrimCommandPoolKHR( 5303 VkDevice device, 5304 VkCommandPool commandPool, 5305 VkCommandPoolTrimFlags flags); 5306 #endif 5307 5308 #define VK_KHR_device_group_creation 1 5309 #define VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION 1 5310 #define VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME "VK_KHR_device_group_creation" 5311 #define VK_MAX_DEVICE_GROUP_SIZE_KHR VK_MAX_DEVICE_GROUP_SIZE 5312 5313 typedef VkPhysicalDeviceGroupProperties VkPhysicalDeviceGroupPropertiesKHR; 5314 5315 typedef VkDeviceGroupDeviceCreateInfo VkDeviceGroupDeviceCreateInfoKHR; 5316 5317 5318 typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroupsKHR)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties); 5319 5320 #ifndef VK_NO_PROTOTYPES 5321 VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroupsKHR( 5322 VkInstance instance, 5323 uint32_t* pPhysicalDeviceGroupCount, 5324 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties); 5325 #endif 5326 5327 #define VK_KHR_external_memory_capabilities 1 5328 #define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1 5329 #define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_memory_capabilities" 5330 #define VK_LUID_SIZE_KHR VK_LUID_SIZE 5331 5332 typedef VkExternalMemoryHandleTypeFlags VkExternalMemoryHandleTypeFlagsKHR; 5333 5334 typedef VkExternalMemoryHandleTypeFlagBits VkExternalMemoryHandleTypeFlagBitsKHR; 5335 5336 typedef VkExternalMemoryFeatureFlags VkExternalMemoryFeatureFlagsKHR; 5337 5338 typedef VkExternalMemoryFeatureFlagBits VkExternalMemoryFeatureFlagBitsKHR; 5339 5340 5341 typedef VkExternalMemoryProperties VkExternalMemoryPropertiesKHR; 5342 5343 typedef VkPhysicalDeviceExternalImageFormatInfo VkPhysicalDeviceExternalImageFormatInfoKHR; 5344 5345 typedef VkExternalImageFormatProperties VkExternalImageFormatPropertiesKHR; 5346 5347 typedef VkPhysicalDeviceExternalBufferInfo VkPhysicalDeviceExternalBufferInfoKHR; 5348 5349 typedef VkExternalBufferProperties VkExternalBufferPropertiesKHR; 5350 5351 typedef VkPhysicalDeviceIDProperties VkPhysicalDeviceIDPropertiesKHR; 5352 5353 5354 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties); 5355 5356 #ifndef VK_NO_PROTOTYPES 5357 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferPropertiesKHR( 5358 VkPhysicalDevice physicalDevice, 5359 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, 5360 VkExternalBufferProperties* pExternalBufferProperties); 5361 #endif 5362 5363 #define VK_KHR_external_memory 1 5364 #define VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION 1 5365 #define VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME "VK_KHR_external_memory" 5366 #define VK_QUEUE_FAMILY_EXTERNAL_KHR VK_QUEUE_FAMILY_EXTERNAL 5367 5368 typedef VkExternalMemoryImageCreateInfo VkExternalMemoryImageCreateInfoKHR; 5369 5370 typedef VkExternalMemoryBufferCreateInfo VkExternalMemoryBufferCreateInfoKHR; 5371 5372 typedef VkExportMemoryAllocateInfo VkExportMemoryAllocateInfoKHR; 5373 5374 5375 5376 #define VK_KHR_external_memory_fd 1 5377 #define VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION 1 5378 #define VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME "VK_KHR_external_memory_fd" 5379 5380 typedef struct VkImportMemoryFdInfoKHR { 5381 VkStructureType sType; 5382 const void* pNext; 5383 VkExternalMemoryHandleTypeFlagBits handleType; 5384 int fd; 5385 } VkImportMemoryFdInfoKHR; 5386 5387 typedef struct VkMemoryFdPropertiesKHR { 5388 VkStructureType sType; 5389 void* pNext; 5390 uint32_t memoryTypeBits; 5391 } VkMemoryFdPropertiesKHR; 5392 5393 typedef struct VkMemoryGetFdInfoKHR { 5394 VkStructureType sType; 5395 const void* pNext; 5396 VkDeviceMemory memory; 5397 VkExternalMemoryHandleTypeFlagBits handleType; 5398 } VkMemoryGetFdInfoKHR; 5399 5400 5401 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdKHR)(VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd); 5402 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdPropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties); 5403 5404 #ifndef VK_NO_PROTOTYPES 5405 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdKHR( 5406 VkDevice device, 5407 const VkMemoryGetFdInfoKHR* pGetFdInfo, 5408 int* pFd); 5409 5410 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdPropertiesKHR( 5411 VkDevice device, 5412 VkExternalMemoryHandleTypeFlagBits handleType, 5413 int fd, 5414 VkMemoryFdPropertiesKHR* pMemoryFdProperties); 5415 #endif 5416 5417 #define VK_KHR_external_semaphore_capabilities 1 5418 #define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION 1 5419 #define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_semaphore_capabilities" 5420 5421 typedef VkExternalSemaphoreHandleTypeFlags VkExternalSemaphoreHandleTypeFlagsKHR; 5422 5423 typedef VkExternalSemaphoreHandleTypeFlagBits VkExternalSemaphoreHandleTypeFlagBitsKHR; 5424 5425 typedef VkExternalSemaphoreFeatureFlags VkExternalSemaphoreFeatureFlagsKHR; 5426 5427 typedef VkExternalSemaphoreFeatureFlagBits VkExternalSemaphoreFeatureFlagBitsKHR; 5428 5429 5430 typedef VkPhysicalDeviceExternalSemaphoreInfo VkPhysicalDeviceExternalSemaphoreInfoKHR; 5431 5432 typedef VkExternalSemaphoreProperties VkExternalSemaphorePropertiesKHR; 5433 5434 5435 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties); 5436 5437 #ifndef VK_NO_PROTOTYPES 5438 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( 5439 VkPhysicalDevice physicalDevice, 5440 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, 5441 VkExternalSemaphoreProperties* pExternalSemaphoreProperties); 5442 #endif 5443 5444 #define VK_KHR_external_semaphore 1 5445 #define VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION 1 5446 #define VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_KHR_external_semaphore" 5447 5448 typedef VkSemaphoreImportFlags VkSemaphoreImportFlagsKHR; 5449 5450 typedef VkSemaphoreImportFlagBits VkSemaphoreImportFlagBitsKHR; 5451 5452 5453 typedef VkExportSemaphoreCreateInfo VkExportSemaphoreCreateInfoKHR; 5454 5455 5456 5457 #define VK_KHR_external_semaphore_fd 1 5458 #define VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION 1 5459 #define VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME "VK_KHR_external_semaphore_fd" 5460 5461 typedef struct VkImportSemaphoreFdInfoKHR { 5462 VkStructureType sType; 5463 const void* pNext; 5464 VkSemaphore semaphore; 5465 VkSemaphoreImportFlags flags; 5466 VkExternalSemaphoreHandleTypeFlagBits handleType; 5467 int fd; 5468 } VkImportSemaphoreFdInfoKHR; 5469 5470 typedef struct VkSemaphoreGetFdInfoKHR { 5471 VkStructureType sType; 5472 const void* pNext; 5473 VkSemaphore semaphore; 5474 VkExternalSemaphoreHandleTypeFlagBits handleType; 5475 } VkSemaphoreGetFdInfoKHR; 5476 5477 5478 typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreFdKHR)(VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo); 5479 typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreFdKHR)(VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd); 5480 5481 #ifndef VK_NO_PROTOTYPES 5482 VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreFdKHR( 5483 VkDevice device, 5484 const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo); 5485 5486 VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreFdKHR( 5487 VkDevice device, 5488 const VkSemaphoreGetFdInfoKHR* pGetFdInfo, 5489 int* pFd); 5490 #endif 5491 5492 #define VK_KHR_push_descriptor 1 5493 #define VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION 2 5494 #define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor" 5495 5496 typedef struct VkPhysicalDevicePushDescriptorPropertiesKHR { 5497 VkStructureType sType; 5498 void* pNext; 5499 uint32_t maxPushDescriptors; 5500 } VkPhysicalDevicePushDescriptorPropertiesKHR; 5501 5502 5503 typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetKHR)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites); 5504 typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplateKHR)(VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData); 5505 5506 #ifndef VK_NO_PROTOTYPES 5507 VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetKHR( 5508 VkCommandBuffer commandBuffer, 5509 VkPipelineBindPoint pipelineBindPoint, 5510 VkPipelineLayout layout, 5511 uint32_t set, 5512 uint32_t descriptorWriteCount, 5513 const VkWriteDescriptorSet* pDescriptorWrites); 5514 5515 VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplateKHR( 5516 VkCommandBuffer commandBuffer, 5517 VkDescriptorUpdateTemplate descriptorUpdateTemplate, 5518 VkPipelineLayout layout, 5519 uint32_t set, 5520 const void* pData); 5521 #endif 5522 5523 #define VK_KHR_shader_float16_int8 1 5524 #define VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION 1 5525 #define VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME "VK_KHR_shader_float16_int8" 5526 5527 typedef struct VkPhysicalDeviceFloat16Int8FeaturesKHR { 5528 VkStructureType sType; 5529 void* pNext; 5530 VkBool32 shaderFloat16; 5531 VkBool32 shaderInt8; 5532 } VkPhysicalDeviceFloat16Int8FeaturesKHR; 5533 5534 5535 5536 #define VK_KHR_16bit_storage 1 5537 #define VK_KHR_16BIT_STORAGE_SPEC_VERSION 1 5538 #define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage" 5539 5540 typedef VkPhysicalDevice16BitStorageFeatures VkPhysicalDevice16BitStorageFeaturesKHR; 5541 5542 5543 5544 #define VK_KHR_incremental_present 1 5545 #define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 1 5546 #define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present" 5547 5548 typedef struct VkRectLayerKHR { 5549 VkOffset2D offset; 5550 VkExtent2D extent; 5551 uint32_t layer; 5552 } VkRectLayerKHR; 5553 5554 typedef struct VkPresentRegionKHR { 5555 uint32_t rectangleCount; 5556 const VkRectLayerKHR* pRectangles; 5557 } VkPresentRegionKHR; 5558 5559 typedef struct VkPresentRegionsKHR { 5560 VkStructureType sType; 5561 const void* pNext; 5562 uint32_t swapchainCount; 5563 const VkPresentRegionKHR* pRegions; 5564 } VkPresentRegionsKHR; 5565 5566 5567 5568 #define VK_KHR_descriptor_update_template 1 5569 typedef VkDescriptorUpdateTemplate VkDescriptorUpdateTemplateKHR; 5570 5571 5572 #define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1 5573 #define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME "VK_KHR_descriptor_update_template" 5574 5575 typedef VkDescriptorUpdateTemplateType VkDescriptorUpdateTemplateTypeKHR; 5576 5577 5578 typedef VkDescriptorUpdateTemplateCreateFlags VkDescriptorUpdateTemplateCreateFlagsKHR; 5579 5580 5581 typedef VkDescriptorUpdateTemplateEntry VkDescriptorUpdateTemplateEntryKHR; 5582 5583 typedef VkDescriptorUpdateTemplateCreateInfo VkDescriptorUpdateTemplateCreateInfoKHR; 5584 5585 5586 typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplateKHR)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate); 5587 typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplateKHR)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator); 5588 typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplateKHR)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData); 5589 5590 #ifndef VK_NO_PROTOTYPES 5591 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplateKHR( 5592 VkDevice device, 5593 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, 5594 const VkAllocationCallbacks* pAllocator, 5595 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate); 5596 5597 VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplateKHR( 5598 VkDevice device, 5599 VkDescriptorUpdateTemplate descriptorUpdateTemplate, 5600 const VkAllocationCallbacks* pAllocator); 5601 5602 VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplateKHR( 5603 VkDevice device, 5604 VkDescriptorSet descriptorSet, 5605 VkDescriptorUpdateTemplate descriptorUpdateTemplate, 5606 const void* pData); 5607 #endif 5608 5609 #define VK_KHR_create_renderpass2 1 5610 #define VK_KHR_CREATE_RENDERPASS_2_SPEC_VERSION 1 5611 #define VK_KHR_CREATE_RENDERPASS_2_EXTENSION_NAME "VK_KHR_create_renderpass2" 5612 5613 typedef struct VkAttachmentDescription2KHR { 5614 VkStructureType sType; 5615 const void* pNext; 5616 VkAttachmentDescriptionFlags flags; 5617 VkFormat format; 5618 VkSampleCountFlagBits samples; 5619 VkAttachmentLoadOp loadOp; 5620 VkAttachmentStoreOp storeOp; 5621 VkAttachmentLoadOp stencilLoadOp; 5622 VkAttachmentStoreOp stencilStoreOp; 5623 VkImageLayout initialLayout; 5624 VkImageLayout finalLayout; 5625 } VkAttachmentDescription2KHR; 5626 5627 typedef struct VkAttachmentReference2KHR { 5628 VkStructureType sType; 5629 const void* pNext; 5630 uint32_t attachment; 5631 VkImageLayout layout; 5632 VkImageAspectFlags aspectMask; 5633 } VkAttachmentReference2KHR; 5634 5635 typedef struct VkSubpassDescription2KHR { 5636 VkStructureType sType; 5637 const void* pNext; 5638 VkSubpassDescriptionFlags flags; 5639 VkPipelineBindPoint pipelineBindPoint; 5640 uint32_t viewMask; 5641 uint32_t inputAttachmentCount; 5642 const VkAttachmentReference2KHR* pInputAttachments; 5643 uint32_t colorAttachmentCount; 5644 const VkAttachmentReference2KHR* pColorAttachments; 5645 const VkAttachmentReference2KHR* pResolveAttachments; 5646 const VkAttachmentReference2KHR* pDepthStencilAttachment; 5647 uint32_t preserveAttachmentCount; 5648 const uint32_t* pPreserveAttachments; 5649 } VkSubpassDescription2KHR; 5650 5651 typedef struct VkSubpassDependency2KHR { 5652 VkStructureType sType; 5653 const void* pNext; 5654 uint32_t srcSubpass; 5655 uint32_t dstSubpass; 5656 VkPipelineStageFlags srcStageMask; 5657 VkPipelineStageFlags dstStageMask; 5658 VkAccessFlags srcAccessMask; 5659 VkAccessFlags dstAccessMask; 5660 VkDependencyFlags dependencyFlags; 5661 int32_t viewOffset; 5662 } VkSubpassDependency2KHR; 5663 5664 typedef struct VkRenderPassCreateInfo2KHR { 5665 VkStructureType sType; 5666 const void* pNext; 5667 VkRenderPassCreateFlags flags; 5668 uint32_t attachmentCount; 5669 const VkAttachmentDescription2KHR* pAttachments; 5670 uint32_t subpassCount; 5671 const VkSubpassDescription2KHR* pSubpasses; 5672 uint32_t dependencyCount; 5673 const VkSubpassDependency2KHR* pDependencies; 5674 uint32_t correlatedViewMaskCount; 5675 const uint32_t* pCorrelatedViewMasks; 5676 } VkRenderPassCreateInfo2KHR; 5677 5678 typedef struct VkSubpassBeginInfoKHR { 5679 VkStructureType sType; 5680 const void* pNext; 5681 VkSubpassContents contents; 5682 } VkSubpassBeginInfoKHR; 5683 5684 typedef struct VkSubpassEndInfoKHR { 5685 VkStructureType sType; 5686 const void* pNext; 5687 } VkSubpassEndInfoKHR; 5688 5689 5690 typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2KHR)(VkDevice device, const VkRenderPassCreateInfo2KHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass); 5691 typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfoKHR* pSubpassBeginInfo); 5692 typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfoKHR* pSubpassBeginInfo, const VkSubpassEndInfoKHR* pSubpassEndInfo); 5693 typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassEndInfoKHR* pSubpassEndInfo); 5694 5695 #ifndef VK_NO_PROTOTYPES 5696 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2KHR( 5697 VkDevice device, 5698 const VkRenderPassCreateInfo2KHR* pCreateInfo, 5699 const VkAllocationCallbacks* pAllocator, 5700 VkRenderPass* pRenderPass); 5701 5702 VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2KHR( 5703 VkCommandBuffer commandBuffer, 5704 const VkRenderPassBeginInfo* pRenderPassBegin, 5705 const VkSubpassBeginInfoKHR* pSubpassBeginInfo); 5706 5707 VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2KHR( 5708 VkCommandBuffer commandBuffer, 5709 const VkSubpassBeginInfoKHR* pSubpassBeginInfo, 5710 const VkSubpassEndInfoKHR* pSubpassEndInfo); 5711 5712 VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2KHR( 5713 VkCommandBuffer commandBuffer, 5714 const VkSubpassEndInfoKHR* pSubpassEndInfo); 5715 #endif 5716 5717 #define VK_KHR_shared_presentable_image 1 5718 #define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1 5719 #define VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME "VK_KHR_shared_presentable_image" 5720 5721 typedef struct VkSharedPresentSurfaceCapabilitiesKHR { 5722 VkStructureType sType; 5723 void* pNext; 5724 VkImageUsageFlags sharedPresentSupportedUsageFlags; 5725 } VkSharedPresentSurfaceCapabilitiesKHR; 5726 5727 5728 typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainStatusKHR)(VkDevice device, VkSwapchainKHR swapchain); 5729 5730 #ifndef VK_NO_PROTOTYPES 5731 VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainStatusKHR( 5732 VkDevice device, 5733 VkSwapchainKHR swapchain); 5734 #endif 5735 5736 #define VK_KHR_external_fence_capabilities 1 5737 #define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION 1 5738 #define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_fence_capabilities" 5739 5740 typedef VkExternalFenceHandleTypeFlags VkExternalFenceHandleTypeFlagsKHR; 5741 5742 typedef VkExternalFenceHandleTypeFlagBits VkExternalFenceHandleTypeFlagBitsKHR; 5743 5744 typedef VkExternalFenceFeatureFlags VkExternalFenceFeatureFlagsKHR; 5745 5746 typedef VkExternalFenceFeatureFlagBits VkExternalFenceFeatureFlagBitsKHR; 5747 5748 5749 typedef VkPhysicalDeviceExternalFenceInfo VkPhysicalDeviceExternalFenceInfoKHR; 5750 5751 typedef VkExternalFenceProperties VkExternalFencePropertiesKHR; 5752 5753 5754 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties); 5755 5756 #ifndef VK_NO_PROTOTYPES 5757 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFencePropertiesKHR( 5758 VkPhysicalDevice physicalDevice, 5759 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, 5760 VkExternalFenceProperties* pExternalFenceProperties); 5761 #endif 5762 5763 #define VK_KHR_external_fence 1 5764 #define VK_KHR_EXTERNAL_FENCE_SPEC_VERSION 1 5765 #define VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME "VK_KHR_external_fence" 5766 5767 typedef VkFenceImportFlags VkFenceImportFlagsKHR; 5768 5769 typedef VkFenceImportFlagBits VkFenceImportFlagBitsKHR; 5770 5771 5772 typedef VkExportFenceCreateInfo VkExportFenceCreateInfoKHR; 5773 5774 5775 5776 #define VK_KHR_external_fence_fd 1 5777 #define VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION 1 5778 #define VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME "VK_KHR_external_fence_fd" 5779 5780 typedef struct VkImportFenceFdInfoKHR { 5781 VkStructureType sType; 5782 const void* pNext; 5783 VkFence fence; 5784 VkFenceImportFlags flags; 5785 VkExternalFenceHandleTypeFlagBits handleType; 5786 int fd; 5787 } VkImportFenceFdInfoKHR; 5788 5789 typedef struct VkFenceGetFdInfoKHR { 5790 VkStructureType sType; 5791 const void* pNext; 5792 VkFence fence; 5793 VkExternalFenceHandleTypeFlagBits handleType; 5794 } VkFenceGetFdInfoKHR; 5795 5796 5797 typedef VkResult (VKAPI_PTR *PFN_vkImportFenceFdKHR)(VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo); 5798 typedef VkResult (VKAPI_PTR *PFN_vkGetFenceFdKHR)(VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd); 5799 5800 #ifndef VK_NO_PROTOTYPES 5801 VKAPI_ATTR VkResult VKAPI_CALL vkImportFenceFdKHR( 5802 VkDevice device, 5803 const VkImportFenceFdInfoKHR* pImportFenceFdInfo); 5804 5805 VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceFdKHR( 5806 VkDevice device, 5807 const VkFenceGetFdInfoKHR* pGetFdInfo, 5808 int* pFd); 5809 #endif 5810 5811 #define VK_KHR_maintenance2 1 5812 #define VK_KHR_MAINTENANCE2_SPEC_VERSION 1 5813 #define VK_KHR_MAINTENANCE2_EXTENSION_NAME "VK_KHR_maintenance2" 5814 5815 typedef VkPointClippingBehavior VkPointClippingBehaviorKHR; 5816 5817 typedef VkTessellationDomainOrigin VkTessellationDomainOriginKHR; 5818 5819 5820 typedef VkPhysicalDevicePointClippingProperties VkPhysicalDevicePointClippingPropertiesKHR; 5821 5822 typedef VkRenderPassInputAttachmentAspectCreateInfo VkRenderPassInputAttachmentAspectCreateInfoKHR; 5823 5824 typedef VkInputAttachmentAspectReference VkInputAttachmentAspectReferenceKHR; 5825 5826 typedef VkImageViewUsageCreateInfo VkImageViewUsageCreateInfoKHR; 5827 5828 typedef VkPipelineTessellationDomainOriginStateCreateInfo VkPipelineTessellationDomainOriginStateCreateInfoKHR; 5829 5830 5831 5832 #define VK_KHR_get_surface_capabilities2 1 5833 #define VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION 1 5834 #define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2" 5835 5836 typedef struct VkPhysicalDeviceSurfaceInfo2KHR { 5837 VkStructureType sType; 5838 const void* pNext; 5839 VkSurfaceKHR surface; 5840 } VkPhysicalDeviceSurfaceInfo2KHR; 5841 5842 typedef struct VkSurfaceCapabilities2KHR { 5843 VkStructureType sType; 5844 void* pNext; 5845 VkSurfaceCapabilitiesKHR surfaceCapabilities; 5846 } VkSurfaceCapabilities2KHR; 5847 5848 typedef struct VkSurfaceFormat2KHR { 5849 VkStructureType sType; 5850 void* pNext; 5851 VkSurfaceFormatKHR surfaceFormat; 5852 } VkSurfaceFormat2KHR; 5853 5854 5855 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities); 5856 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats); 5857 5858 #ifndef VK_NO_PROTOTYPES 5859 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2KHR( 5860 VkPhysicalDevice physicalDevice, 5861 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, 5862 VkSurfaceCapabilities2KHR* pSurfaceCapabilities); 5863 5864 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormats2KHR( 5865 VkPhysicalDevice physicalDevice, 5866 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, 5867 uint32_t* pSurfaceFormatCount, 5868 VkSurfaceFormat2KHR* pSurfaceFormats); 5869 #endif 5870 5871 #define VK_KHR_variable_pointers 1 5872 #define VK_KHR_VARIABLE_POINTERS_SPEC_VERSION 1 5873 #define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers" 5874 5875 typedef VkPhysicalDeviceVariablePointerFeatures VkPhysicalDeviceVariablePointerFeaturesKHR; 5876 5877 5878 5879 #define VK_KHR_get_display_properties2 1 5880 #define VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION 1 5881 #define VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_display_properties2" 5882 5883 typedef struct VkDisplayProperties2KHR { 5884 VkStructureType sType; 5885 void* pNext; 5886 VkDisplayPropertiesKHR displayProperties; 5887 } VkDisplayProperties2KHR; 5888 5889 typedef struct VkDisplayPlaneProperties2KHR { 5890 VkStructureType sType; 5891 void* pNext; 5892 VkDisplayPlanePropertiesKHR displayPlaneProperties; 5893 } VkDisplayPlaneProperties2KHR; 5894 5895 typedef struct VkDisplayModeProperties2KHR { 5896 VkStructureType sType; 5897 void* pNext; 5898 VkDisplayModePropertiesKHR displayModeProperties; 5899 } VkDisplayModeProperties2KHR; 5900 5901 typedef struct VkDisplayPlaneInfo2KHR { 5902 VkStructureType sType; 5903 const void* pNext; 5904 VkDisplayModeKHR mode; 5905 uint32_t planeIndex; 5906 } VkDisplayPlaneInfo2KHR; 5907 5908 typedef struct VkDisplayPlaneCapabilities2KHR { 5909 VkStructureType sType; 5910 void* pNext; 5911 VkDisplayPlaneCapabilitiesKHR capabilities; 5912 } VkDisplayPlaneCapabilities2KHR; 5913 5914 5915 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayProperties2KHR* pProperties); 5916 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties); 5917 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModeProperties2KHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModeProperties2KHR* pProperties); 5918 typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities); 5919 5920 #ifndef VK_NO_PROTOTYPES 5921 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayProperties2KHR( 5922 VkPhysicalDevice physicalDevice, 5923 uint32_t* pPropertyCount, 5924 VkDisplayProperties2KHR* pProperties); 5925 5926 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlaneProperties2KHR( 5927 VkPhysicalDevice physicalDevice, 5928 uint32_t* pPropertyCount, 5929 VkDisplayPlaneProperties2KHR* pProperties); 5930 5931 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModeProperties2KHR( 5932 VkPhysicalDevice physicalDevice, 5933 VkDisplayKHR display, 5934 uint32_t* pPropertyCount, 5935 VkDisplayModeProperties2KHR* pProperties); 5936 5937 VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilities2KHR( 5938 VkPhysicalDevice physicalDevice, 5939 const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, 5940 VkDisplayPlaneCapabilities2KHR* pCapabilities); 5941 #endif 5942 5943 #define VK_KHR_dedicated_allocation 1 5944 #define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3 5945 #define VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_KHR_dedicated_allocation" 5946 5947 typedef VkMemoryDedicatedRequirements VkMemoryDedicatedRequirementsKHR; 5948 5949 typedef VkMemoryDedicatedAllocateInfo VkMemoryDedicatedAllocateInfoKHR; 5950 5951 5952 5953 #define VK_KHR_storage_buffer_storage_class 1 5954 #define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION 1 5955 #define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME "VK_KHR_storage_buffer_storage_class" 5956 5957 5958 #define VK_KHR_relaxed_block_layout 1 5959 #define VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION 1 5960 #define VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME "VK_KHR_relaxed_block_layout" 5961 5962 5963 #define VK_KHR_get_memory_requirements2 1 5964 #define VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION 1 5965 #define VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME "VK_KHR_get_memory_requirements2" 5966 5967 typedef VkBufferMemoryRequirementsInfo2 VkBufferMemoryRequirementsInfo2KHR; 5968 5969 typedef VkImageMemoryRequirementsInfo2 VkImageMemoryRequirementsInfo2KHR; 5970 5971 typedef VkImageSparseMemoryRequirementsInfo2 VkImageSparseMemoryRequirementsInfo2KHR; 5972 5973 typedef VkSparseImageMemoryRequirements2 VkSparseImageMemoryRequirements2KHR; 5974 5975 5976 typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2KHR)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements); 5977 typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2KHR)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements); 5978 typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2KHR)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements); 5979 5980 #ifndef VK_NO_PROTOTYPES 5981 VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2KHR( 5982 VkDevice device, 5983 const VkImageMemoryRequirementsInfo2* pInfo, 5984 VkMemoryRequirements2* pMemoryRequirements); 5985 5986 VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2KHR( 5987 VkDevice device, 5988 const VkBufferMemoryRequirementsInfo2* pInfo, 5989 VkMemoryRequirements2* pMemoryRequirements); 5990 5991 VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2KHR( 5992 VkDevice device, 5993 const VkImageSparseMemoryRequirementsInfo2* pInfo, 5994 uint32_t* pSparseMemoryRequirementCount, 5995 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements); 5996 #endif 5997 5998 #define VK_KHR_image_format_list 1 5999 #define VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION 1 6000 #define VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME "VK_KHR_image_format_list" 6001 6002 typedef struct VkImageFormatListCreateInfoKHR { 6003 VkStructureType sType; 6004 const void* pNext; 6005 uint32_t viewFormatCount; 6006 const VkFormat* pViewFormats; 6007 } VkImageFormatListCreateInfoKHR; 6008 6009 6010 6011 #define VK_KHR_sampler_ycbcr_conversion 1 6012 typedef VkSamplerYcbcrConversion VkSamplerYcbcrConversionKHR; 6013 6014 6015 #define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 1 6016 #define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion" 6017 6018 typedef VkSamplerYcbcrModelConversion VkSamplerYcbcrModelConversionKHR; 6019 6020 typedef VkSamplerYcbcrRange VkSamplerYcbcrRangeKHR; 6021 6022 typedef VkChromaLocation VkChromaLocationKHR; 6023 6024 6025 typedef VkSamplerYcbcrConversionCreateInfo VkSamplerYcbcrConversionCreateInfoKHR; 6026 6027 typedef VkSamplerYcbcrConversionInfo VkSamplerYcbcrConversionInfoKHR; 6028 6029 typedef VkBindImagePlaneMemoryInfo VkBindImagePlaneMemoryInfoKHR; 6030 6031 typedef VkImagePlaneMemoryRequirementsInfo VkImagePlaneMemoryRequirementsInfoKHR; 6032 6033 typedef VkPhysicalDeviceSamplerYcbcrConversionFeatures VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR; 6034 6035 typedef VkSamplerYcbcrConversionImageFormatProperties VkSamplerYcbcrConversionImageFormatPropertiesKHR; 6036 6037 6038 typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversionKHR)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion); 6039 typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversionKHR)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator); 6040 6041 #ifndef VK_NO_PROTOTYPES 6042 VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversionKHR( 6043 VkDevice device, 6044 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, 6045 const VkAllocationCallbacks* pAllocator, 6046 VkSamplerYcbcrConversion* pYcbcrConversion); 6047 6048 VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversionKHR( 6049 VkDevice device, 6050 VkSamplerYcbcrConversion ycbcrConversion, 6051 const VkAllocationCallbacks* pAllocator); 6052 #endif 6053 6054 #define VK_KHR_bind_memory2 1 6055 #define VK_KHR_BIND_MEMORY_2_SPEC_VERSION 1 6056 #define VK_KHR_BIND_MEMORY_2_EXTENSION_NAME "VK_KHR_bind_memory2" 6057 6058 typedef VkBindBufferMemoryInfo VkBindBufferMemoryInfoKHR; 6059 6060 typedef VkBindImageMemoryInfo VkBindImageMemoryInfoKHR; 6061 6062 6063 typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos); 6064 typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos); 6065 6066 #ifndef VK_NO_PROTOTYPES 6067 VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2KHR( 6068 VkDevice device, 6069 uint32_t bindInfoCount, 6070 const VkBindBufferMemoryInfo* pBindInfos); 6071 6072 VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2KHR( 6073 VkDevice device, 6074 uint32_t bindInfoCount, 6075 const VkBindImageMemoryInfo* pBindInfos); 6076 #endif 6077 6078 #define VK_KHR_maintenance3 1 6079 #define VK_KHR_MAINTENANCE3_SPEC_VERSION 1 6080 #define VK_KHR_MAINTENANCE3_EXTENSION_NAME "VK_KHR_maintenance3" 6081 6082 typedef VkPhysicalDeviceMaintenance3Properties VkPhysicalDeviceMaintenance3PropertiesKHR; 6083 6084 typedef VkDescriptorSetLayoutSupport VkDescriptorSetLayoutSupportKHR; 6085 6086 6087 typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupportKHR)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport); 6088 6089 #ifndef VK_NO_PROTOTYPES 6090 VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupportKHR( 6091 VkDevice device, 6092 const VkDescriptorSetLayoutCreateInfo* pCreateInfo, 6093 VkDescriptorSetLayoutSupport* pSupport); 6094 #endif 6095 6096 #define VK_KHR_draw_indirect_count 1 6097 #define VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION 1 6098 #define VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_KHR_draw_indirect_count" 6099 6100 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); 6101 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); 6102 6103 #ifndef VK_NO_PROTOTYPES 6104 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountKHR( 6105 VkCommandBuffer commandBuffer, 6106 VkBuffer buffer, 6107 VkDeviceSize offset, 6108 VkBuffer countBuffer, 6109 VkDeviceSize countBufferOffset, 6110 uint32_t maxDrawCount, 6111 uint32_t stride); 6112 6113 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountKHR( 6114 VkCommandBuffer commandBuffer, 6115 VkBuffer buffer, 6116 VkDeviceSize offset, 6117 VkBuffer countBuffer, 6118 VkDeviceSize countBufferOffset, 6119 uint32_t maxDrawCount, 6120 uint32_t stride); 6121 #endif 6122 6123 #define VK_KHR_8bit_storage 1 6124 #define VK_KHR_8BIT_STORAGE_SPEC_VERSION 1 6125 #define VK_KHR_8BIT_STORAGE_EXTENSION_NAME "VK_KHR_8bit_storage" 6126 6127 typedef struct VkPhysicalDevice8BitStorageFeaturesKHR { 6128 VkStructureType sType; 6129 void* pNext; 6130 VkBool32 storageBuffer8BitAccess; 6131 VkBool32 uniformAndStorageBuffer8BitAccess; 6132 VkBool32 storagePushConstant8; 6133 } VkPhysicalDevice8BitStorageFeaturesKHR; 6134 6135 6136 6137 #define VK_KHR_shader_atomic_int64 1 6138 #define VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION 1 6139 #define VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME "VK_KHR_shader_atomic_int64" 6140 6141 typedef struct VkPhysicalDeviceShaderAtomicInt64FeaturesKHR { 6142 VkStructureType sType; 6143 void* pNext; 6144 VkBool32 shaderBufferInt64Atomics; 6145 VkBool32 shaderSharedInt64Atomics; 6146 } VkPhysicalDeviceShaderAtomicInt64FeaturesKHR; 6147 6148 6149 6150 #define VK_KHR_driver_properties 1 6151 #define VK_MAX_DRIVER_NAME_SIZE_KHR 256 6152 #define VK_MAX_DRIVER_INFO_SIZE_KHR 256 6153 #define VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION 1 6154 #define VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME "VK_KHR_driver_properties" 6155 6156 6157 typedef enum VkDriverIdKHR { 6158 VK_DRIVER_ID_AMD_PROPRIETARY_KHR = 1, 6159 VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = 2, 6160 VK_DRIVER_ID_MESA_RADV_KHR = 3, 6161 VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR = 4, 6162 VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR = 5, 6163 VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR = 6, 6164 VK_DRIVER_ID_IMAGINATION_PROPRIETARY_KHR = 7, 6165 VK_DRIVER_ID_QUALCOMM_PROPRIETARY_KHR = 8, 6166 VK_DRIVER_ID_ARM_PROPRIETARY_KHR = 9, 6167 VK_DRIVER_ID_GOOGLE_PASTEL_KHR = 10, 6168 VK_DRIVER_ID_BEGIN_RANGE_KHR = VK_DRIVER_ID_AMD_PROPRIETARY_KHR, 6169 VK_DRIVER_ID_END_RANGE_KHR = VK_DRIVER_ID_GOOGLE_PASTEL_KHR, 6170 VK_DRIVER_ID_RANGE_SIZE_KHR = (VK_DRIVER_ID_GOOGLE_PASTEL_KHR - VK_DRIVER_ID_AMD_PROPRIETARY_KHR + 1), 6171 VK_DRIVER_ID_MAX_ENUM_KHR = 0x7FFFFFFF 6172 } VkDriverIdKHR; 6173 6174 typedef struct VkConformanceVersionKHR { 6175 uint8_t major; 6176 uint8_t minor; 6177 uint8_t subminor; 6178 uint8_t patch; 6179 } VkConformanceVersionKHR; 6180 6181 typedef struct VkPhysicalDeviceDriverPropertiesKHR { 6182 VkStructureType sType; 6183 void* pNext; 6184 VkDriverIdKHR driverID; 6185 char driverName[VK_MAX_DRIVER_NAME_SIZE_KHR]; 6186 char driverInfo[VK_MAX_DRIVER_INFO_SIZE_KHR]; 6187 VkConformanceVersionKHR conformanceVersion; 6188 } VkPhysicalDeviceDriverPropertiesKHR; 6189 6190 6191 6192 #define VK_KHR_shader_float_controls 1 6193 #define VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION 1 6194 #define VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME "VK_KHR_shader_float_controls" 6195 6196 typedef struct VkPhysicalDeviceFloatControlsPropertiesKHR { 6197 VkStructureType sType; 6198 void* pNext; 6199 VkBool32 separateDenormSettings; 6200 VkBool32 separateRoundingModeSettings; 6201 VkBool32 shaderSignedZeroInfNanPreserveFloat16; 6202 VkBool32 shaderSignedZeroInfNanPreserveFloat32; 6203 VkBool32 shaderSignedZeroInfNanPreserveFloat64; 6204 VkBool32 shaderDenormPreserveFloat16; 6205 VkBool32 shaderDenormPreserveFloat32; 6206 VkBool32 shaderDenormPreserveFloat64; 6207 VkBool32 shaderDenormFlushToZeroFloat16; 6208 VkBool32 shaderDenormFlushToZeroFloat32; 6209 VkBool32 shaderDenormFlushToZeroFloat64; 6210 VkBool32 shaderRoundingModeRTEFloat16; 6211 VkBool32 shaderRoundingModeRTEFloat32; 6212 VkBool32 shaderRoundingModeRTEFloat64; 6213 VkBool32 shaderRoundingModeRTZFloat16; 6214 VkBool32 shaderRoundingModeRTZFloat32; 6215 VkBool32 shaderRoundingModeRTZFloat64; 6216 } VkPhysicalDeviceFloatControlsPropertiesKHR; 6217 6218 6219 6220 #define VK_KHR_depth_stencil_resolve 1 6221 #define VK_KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION 1 6222 #define VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME "VK_KHR_depth_stencil_resolve" 6223 6224 6225 typedef enum VkResolveModeFlagBitsKHR { 6226 VK_RESOLVE_MODE_NONE_KHR = 0, 6227 VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR = 0x00000001, 6228 VK_RESOLVE_MODE_AVERAGE_BIT_KHR = 0x00000002, 6229 VK_RESOLVE_MODE_MIN_BIT_KHR = 0x00000004, 6230 VK_RESOLVE_MODE_MAX_BIT_KHR = 0x00000008, 6231 VK_RESOLVE_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF 6232 } VkResolveModeFlagBitsKHR; 6233 typedef VkFlags VkResolveModeFlagsKHR; 6234 6235 typedef struct VkSubpassDescriptionDepthStencilResolveKHR { 6236 VkStructureType sType; 6237 const void* pNext; 6238 VkResolveModeFlagBitsKHR depthResolveMode; 6239 VkResolveModeFlagBitsKHR stencilResolveMode; 6240 const VkAttachmentReference2KHR* pDepthStencilResolveAttachment; 6241 } VkSubpassDescriptionDepthStencilResolveKHR; 6242 6243 typedef struct VkPhysicalDeviceDepthStencilResolvePropertiesKHR { 6244 VkStructureType sType; 6245 void* pNext; 6246 VkResolveModeFlagsKHR supportedDepthResolveModes; 6247 VkResolveModeFlagsKHR supportedStencilResolveModes; 6248 VkBool32 independentResolveNone; 6249 VkBool32 independentResolve; 6250 } VkPhysicalDeviceDepthStencilResolvePropertiesKHR; 6251 6252 6253 6254 #define VK_KHR_swapchain_mutable_format 1 6255 #define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_SPEC_VERSION 1 6256 #define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_EXTENSION_NAME "VK_KHR_swapchain_mutable_format" 6257 6258 6259 #define VK_KHR_vulkan_memory_model 1 6260 #define VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION 3 6261 #define VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME "VK_KHR_vulkan_memory_model" 6262 6263 typedef struct VkPhysicalDeviceVulkanMemoryModelFeaturesKHR { 6264 VkStructureType sType; 6265 void* pNext; 6266 VkBool32 vulkanMemoryModel; 6267 VkBool32 vulkanMemoryModelDeviceScope; 6268 VkBool32 vulkanMemoryModelAvailabilityVisibilityChains; 6269 } VkPhysicalDeviceVulkanMemoryModelFeaturesKHR; 6270 6271 6272 6273 #define VK_EXT_debug_report 1 6274 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT) 6275 6276 #define VK_EXT_DEBUG_REPORT_SPEC_VERSION 9 6277 #define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report" 6278 6279 6280 typedef enum VkDebugReportObjectTypeEXT { 6281 VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0, 6282 VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1, 6283 VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2, 6284 VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3, 6285 VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4, 6286 VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5, 6287 VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6, 6288 VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7, 6289 VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8, 6290 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9, 6291 VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10, 6292 VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11, 6293 VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12, 6294 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13, 6295 VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14, 6296 VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15, 6297 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16, 6298 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17, 6299 VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18, 6300 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19, 6301 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20, 6302 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21, 6303 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22, 6304 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23, 6305 VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24, 6306 VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25, 6307 VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26, 6308 VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27, 6309 VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28, 6310 VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29, 6311 VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30, 6312 VK_DEBUG_REPORT_OBJECT_TYPE_OBJECT_TABLE_NVX_EXT = 31, 6313 VK_DEBUG_REPORT_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NVX_EXT = 32, 6314 VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33, 6315 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000, 6316 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000, 6317 VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000, 6318 VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT, 6319 VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT, 6320 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT, 6321 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT, 6322 VK_DEBUG_REPORT_OBJECT_TYPE_BEGIN_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT, 6323 VK_DEBUG_REPORT_OBJECT_TYPE_END_RANGE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT, 6324 VK_DEBUG_REPORT_OBJECT_TYPE_RANGE_SIZE_EXT = (VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT - VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT + 1), 6325 VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF 6326 } VkDebugReportObjectTypeEXT; 6327 6328 6329 typedef enum VkDebugReportFlagBitsEXT { 6330 VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001, 6331 VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002, 6332 VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004, 6333 VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008, 6334 VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010, 6335 VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF 6336 } VkDebugReportFlagBitsEXT; 6337 typedef VkFlags VkDebugReportFlagsEXT; 6338 6339 typedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)( 6340 VkDebugReportFlagsEXT flags, 6341 VkDebugReportObjectTypeEXT objectType, 6342 uint64_t object, 6343 size_t location, 6344 int32_t messageCode, 6345 const char* pLayerPrefix, 6346 const char* pMessage, 6347 void* pUserData); 6348 6349 typedef struct VkDebugReportCallbackCreateInfoEXT { 6350 VkStructureType sType; 6351 const void* pNext; 6352 VkDebugReportFlagsEXT flags; 6353 PFN_vkDebugReportCallbackEXT pfnCallback; 6354 void* pUserData; 6355 } VkDebugReportCallbackCreateInfoEXT; 6356 6357 6358 typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugReportCallbackEXT)(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback); 6359 typedef void (VKAPI_PTR *PFN_vkDestroyDebugReportCallbackEXT)(VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator); 6360 typedef void (VKAPI_PTR *PFN_vkDebugReportMessageEXT)(VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage); 6361 6362 #ifndef VK_NO_PROTOTYPES 6363 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugReportCallbackEXT( 6364 VkInstance instance, 6365 const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, 6366 const VkAllocationCallbacks* pAllocator, 6367 VkDebugReportCallbackEXT* pCallback); 6368 6369 VKAPI_ATTR void VKAPI_CALL vkDestroyDebugReportCallbackEXT( 6370 VkInstance instance, 6371 VkDebugReportCallbackEXT callback, 6372 const VkAllocationCallbacks* pAllocator); 6373 6374 VKAPI_ATTR void VKAPI_CALL vkDebugReportMessageEXT( 6375 VkInstance instance, 6376 VkDebugReportFlagsEXT flags, 6377 VkDebugReportObjectTypeEXT objectType, 6378 uint64_t object, 6379 size_t location, 6380 int32_t messageCode, 6381 const char* pLayerPrefix, 6382 const char* pMessage); 6383 #endif 6384 6385 #define VK_NV_glsl_shader 1 6386 #define VK_NV_GLSL_SHADER_SPEC_VERSION 1 6387 #define VK_NV_GLSL_SHADER_EXTENSION_NAME "VK_NV_glsl_shader" 6388 6389 6390 #define VK_EXT_depth_range_unrestricted 1 6391 #define VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION 1 6392 #define VK_EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME "VK_EXT_depth_range_unrestricted" 6393 6394 6395 #define VK_IMG_filter_cubic 1 6396 #define VK_IMG_FILTER_CUBIC_SPEC_VERSION 1 6397 #define VK_IMG_FILTER_CUBIC_EXTENSION_NAME "VK_IMG_filter_cubic" 6398 6399 6400 #define VK_AMD_rasterization_order 1 6401 #define VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION 1 6402 #define VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME "VK_AMD_rasterization_order" 6403 6404 6405 typedef enum VkRasterizationOrderAMD { 6406 VK_RASTERIZATION_ORDER_STRICT_AMD = 0, 6407 VK_RASTERIZATION_ORDER_RELAXED_AMD = 1, 6408 VK_RASTERIZATION_ORDER_BEGIN_RANGE_AMD = VK_RASTERIZATION_ORDER_STRICT_AMD, 6409 VK_RASTERIZATION_ORDER_END_RANGE_AMD = VK_RASTERIZATION_ORDER_RELAXED_AMD, 6410 VK_RASTERIZATION_ORDER_RANGE_SIZE_AMD = (VK_RASTERIZATION_ORDER_RELAXED_AMD - VK_RASTERIZATION_ORDER_STRICT_AMD + 1), 6411 VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 0x7FFFFFFF 6412 } VkRasterizationOrderAMD; 6413 6414 typedef struct VkPipelineRasterizationStateRasterizationOrderAMD { 6415 VkStructureType sType; 6416 const void* pNext; 6417 VkRasterizationOrderAMD rasterizationOrder; 6418 } VkPipelineRasterizationStateRasterizationOrderAMD; 6419 6420 6421 6422 #define VK_AMD_shader_trinary_minmax 1 6423 #define VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION 1 6424 #define VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME "VK_AMD_shader_trinary_minmax" 6425 6426 6427 #define VK_AMD_shader_explicit_vertex_parameter 1 6428 #define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION 1 6429 #define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME "VK_AMD_shader_explicit_vertex_parameter" 6430 6431 6432 #define VK_EXT_debug_marker 1 6433 #define VK_EXT_DEBUG_MARKER_SPEC_VERSION 4 6434 #define VK_EXT_DEBUG_MARKER_EXTENSION_NAME "VK_EXT_debug_marker" 6435 6436 typedef struct VkDebugMarkerObjectNameInfoEXT { 6437 VkStructureType sType; 6438 const void* pNext; 6439 VkDebugReportObjectTypeEXT objectType; 6440 uint64_t object; 6441 const char* pObjectName; 6442 } VkDebugMarkerObjectNameInfoEXT; 6443 6444 typedef struct VkDebugMarkerObjectTagInfoEXT { 6445 VkStructureType sType; 6446 const void* pNext; 6447 VkDebugReportObjectTypeEXT objectType; 6448 uint64_t object; 6449 uint64_t tagName; 6450 size_t tagSize; 6451 const void* pTag; 6452 } VkDebugMarkerObjectTagInfoEXT; 6453 6454 typedef struct VkDebugMarkerMarkerInfoEXT { 6455 VkStructureType sType; 6456 const void* pNext; 6457 const char* pMarkerName; 6458 float color[4]; 6459 } VkDebugMarkerMarkerInfoEXT; 6460 6461 6462 typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectTagEXT)(VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo); 6463 typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectNameEXT)(VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo); 6464 typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerBeginEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo); 6465 typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerEndEXT)(VkCommandBuffer commandBuffer); 6466 typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerInsertEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo); 6467 6468 #ifndef VK_NO_PROTOTYPES 6469 VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectTagEXT( 6470 VkDevice device, 6471 const VkDebugMarkerObjectTagInfoEXT* pTagInfo); 6472 6473 VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectNameEXT( 6474 VkDevice device, 6475 const VkDebugMarkerObjectNameInfoEXT* pNameInfo); 6476 6477 VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerBeginEXT( 6478 VkCommandBuffer commandBuffer, 6479 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo); 6480 6481 VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerEndEXT( 6482 VkCommandBuffer commandBuffer); 6483 6484 VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerInsertEXT( 6485 VkCommandBuffer commandBuffer, 6486 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo); 6487 #endif 6488 6489 #define VK_AMD_gcn_shader 1 6490 #define VK_AMD_GCN_SHADER_SPEC_VERSION 1 6491 #define VK_AMD_GCN_SHADER_EXTENSION_NAME "VK_AMD_gcn_shader" 6492 6493 6494 #define VK_NV_dedicated_allocation 1 6495 #define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1 6496 #define VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_NV_dedicated_allocation" 6497 6498 typedef struct VkDedicatedAllocationImageCreateInfoNV { 6499 VkStructureType sType; 6500 const void* pNext; 6501 VkBool32 dedicatedAllocation; 6502 } VkDedicatedAllocationImageCreateInfoNV; 6503 6504 typedef struct VkDedicatedAllocationBufferCreateInfoNV { 6505 VkStructureType sType; 6506 const void* pNext; 6507 VkBool32 dedicatedAllocation; 6508 } VkDedicatedAllocationBufferCreateInfoNV; 6509 6510 typedef struct VkDedicatedAllocationMemoryAllocateInfoNV { 6511 VkStructureType sType; 6512 const void* pNext; 6513 VkImage image; 6514 VkBuffer buffer; 6515 } VkDedicatedAllocationMemoryAllocateInfoNV; 6516 6517 6518 6519 #define VK_EXT_transform_feedback 1 6520 #define VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION 1 6521 #define VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME "VK_EXT_transform_feedback" 6522 6523 typedef VkFlags VkPipelineRasterizationStateStreamCreateFlagsEXT; 6524 6525 typedef struct VkPhysicalDeviceTransformFeedbackFeaturesEXT { 6526 VkStructureType sType; 6527 void* pNext; 6528 VkBool32 transformFeedback; 6529 VkBool32 geometryStreams; 6530 } VkPhysicalDeviceTransformFeedbackFeaturesEXT; 6531 6532 typedef struct VkPhysicalDeviceTransformFeedbackPropertiesEXT { 6533 VkStructureType sType; 6534 void* pNext; 6535 uint32_t maxTransformFeedbackStreams; 6536 uint32_t maxTransformFeedbackBuffers; 6537 VkDeviceSize maxTransformFeedbackBufferSize; 6538 uint32_t maxTransformFeedbackStreamDataSize; 6539 uint32_t maxTransformFeedbackBufferDataSize; 6540 uint32_t maxTransformFeedbackBufferDataStride; 6541 VkBool32 transformFeedbackQueries; 6542 VkBool32 transformFeedbackStreamsLinesTriangles; 6543 VkBool32 transformFeedbackRasterizationStreamSelect; 6544 VkBool32 transformFeedbackDraw; 6545 } VkPhysicalDeviceTransformFeedbackPropertiesEXT; 6546 6547 typedef struct VkPipelineRasterizationStateStreamCreateInfoEXT { 6548 VkStructureType sType; 6549 const void* pNext; 6550 VkPipelineRasterizationStateStreamCreateFlagsEXT flags; 6551 uint32_t rasterizationStream; 6552 } VkPipelineRasterizationStateStreamCreateInfoEXT; 6553 6554 6555 typedef void (VKAPI_PTR *PFN_vkCmdBindTransformFeedbackBuffersEXT)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes); 6556 typedef void (VKAPI_PTR *PFN_vkCmdBeginTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets); 6557 typedef void (VKAPI_PTR *PFN_vkCmdEndTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets); 6558 typedef void (VKAPI_PTR *PFN_vkCmdBeginQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index); 6559 typedef void (VKAPI_PTR *PFN_vkCmdEndQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index); 6560 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectByteCountEXT)(VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride); 6561 6562 #ifndef VK_NO_PROTOTYPES 6563 VKAPI_ATTR void VKAPI_CALL vkCmdBindTransformFeedbackBuffersEXT( 6564 VkCommandBuffer commandBuffer, 6565 uint32_t firstBinding, 6566 uint32_t bindingCount, 6567 const VkBuffer* pBuffers, 6568 const VkDeviceSize* pOffsets, 6569 const VkDeviceSize* pSizes); 6570 6571 VKAPI_ATTR void VKAPI_CALL vkCmdBeginTransformFeedbackEXT( 6572 VkCommandBuffer commandBuffer, 6573 uint32_t firstCounterBuffer, 6574 uint32_t counterBufferCount, 6575 const VkBuffer* pCounterBuffers, 6576 const VkDeviceSize* pCounterBufferOffsets); 6577 6578 VKAPI_ATTR void VKAPI_CALL vkCmdEndTransformFeedbackEXT( 6579 VkCommandBuffer commandBuffer, 6580 uint32_t firstCounterBuffer, 6581 uint32_t counterBufferCount, 6582 const VkBuffer* pCounterBuffers, 6583 const VkDeviceSize* pCounterBufferOffsets); 6584 6585 VKAPI_ATTR void VKAPI_CALL vkCmdBeginQueryIndexedEXT( 6586 VkCommandBuffer commandBuffer, 6587 VkQueryPool queryPool, 6588 uint32_t query, 6589 VkQueryControlFlags flags, 6590 uint32_t index); 6591 6592 VKAPI_ATTR void VKAPI_CALL vkCmdEndQueryIndexedEXT( 6593 VkCommandBuffer commandBuffer, 6594 VkQueryPool queryPool, 6595 uint32_t query, 6596 uint32_t index); 6597 6598 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectByteCountEXT( 6599 VkCommandBuffer commandBuffer, 6600 uint32_t instanceCount, 6601 uint32_t firstInstance, 6602 VkBuffer counterBuffer, 6603 VkDeviceSize counterBufferOffset, 6604 uint32_t counterOffset, 6605 uint32_t vertexStride); 6606 #endif 6607 6608 #define VK_NVX_image_view_handle 1 6609 #define VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION 1 6610 #define VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME "VK_NVX_image_view_handle" 6611 6612 typedef struct VkImageViewHandleInfoNVX { 6613 VkStructureType sType; 6614 const void* pNext; 6615 VkImageView imageView; 6616 VkDescriptorType descriptorType; 6617 VkSampler sampler; 6618 } VkImageViewHandleInfoNVX; 6619 6620 6621 typedef uint32_t (VKAPI_PTR *PFN_vkGetImageViewHandleNVX)(VkDevice device, const VkImageViewHandleInfoNVX* pInfo); 6622 6623 #ifndef VK_NO_PROTOTYPES 6624 VKAPI_ATTR uint32_t VKAPI_CALL vkGetImageViewHandleNVX( 6625 VkDevice device, 6626 const VkImageViewHandleInfoNVX* pInfo); 6627 #endif 6628 6629 #define VK_AMD_draw_indirect_count 1 6630 #define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 1 6631 #define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count" 6632 6633 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); 6634 typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); 6635 6636 #ifndef VK_NO_PROTOTYPES 6637 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountAMD( 6638 VkCommandBuffer commandBuffer, 6639 VkBuffer buffer, 6640 VkDeviceSize offset, 6641 VkBuffer countBuffer, 6642 VkDeviceSize countBufferOffset, 6643 uint32_t maxDrawCount, 6644 uint32_t stride); 6645 6646 VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountAMD( 6647 VkCommandBuffer commandBuffer, 6648 VkBuffer buffer, 6649 VkDeviceSize offset, 6650 VkBuffer countBuffer, 6651 VkDeviceSize countBufferOffset, 6652 uint32_t maxDrawCount, 6653 uint32_t stride); 6654 #endif 6655 6656 #define VK_AMD_negative_viewport_height 1 6657 #define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1 6658 #define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height" 6659 6660 6661 #define VK_AMD_gpu_shader_half_float 1 6662 #define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 1 6663 #define VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME "VK_AMD_gpu_shader_half_float" 6664 6665 6666 #define VK_AMD_shader_ballot 1 6667 #define VK_AMD_SHADER_BALLOT_SPEC_VERSION 1 6668 #define VK_AMD_SHADER_BALLOT_EXTENSION_NAME "VK_AMD_shader_ballot" 6669 6670 6671 #define VK_AMD_texture_gather_bias_lod 1 6672 #define VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION 1 6673 #define VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME "VK_AMD_texture_gather_bias_lod" 6674 6675 typedef struct VkTextureLODGatherFormatPropertiesAMD { 6676 VkStructureType sType; 6677 void* pNext; 6678 VkBool32 supportsTextureGatherLODBiasAMD; 6679 } VkTextureLODGatherFormatPropertiesAMD; 6680 6681 6682 6683 #define VK_AMD_shader_info 1 6684 #define VK_AMD_SHADER_INFO_SPEC_VERSION 1 6685 #define VK_AMD_SHADER_INFO_EXTENSION_NAME "VK_AMD_shader_info" 6686 6687 6688 typedef enum VkShaderInfoTypeAMD { 6689 VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0, 6690 VK_SHADER_INFO_TYPE_BINARY_AMD = 1, 6691 VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2, 6692 VK_SHADER_INFO_TYPE_BEGIN_RANGE_AMD = VK_SHADER_INFO_TYPE_STATISTICS_AMD, 6693 VK_SHADER_INFO_TYPE_END_RANGE_AMD = VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD, 6694 VK_SHADER_INFO_TYPE_RANGE_SIZE_AMD = (VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD - VK_SHADER_INFO_TYPE_STATISTICS_AMD + 1), 6695 VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 0x7FFFFFFF 6696 } VkShaderInfoTypeAMD; 6697 6698 typedef struct VkShaderResourceUsageAMD { 6699 uint32_t numUsedVgprs; 6700 uint32_t numUsedSgprs; 6701 uint32_t ldsSizePerLocalWorkGroup; 6702 size_t ldsUsageSizeInBytes; 6703 size_t scratchMemUsageInBytes; 6704 } VkShaderResourceUsageAMD; 6705 6706 typedef struct VkShaderStatisticsInfoAMD { 6707 VkShaderStageFlags shaderStageMask; 6708 VkShaderResourceUsageAMD resourceUsage; 6709 uint32_t numPhysicalVgprs; 6710 uint32_t numPhysicalSgprs; 6711 uint32_t numAvailableVgprs; 6712 uint32_t numAvailableSgprs; 6713 uint32_t computeWorkGroupSize[3]; 6714 } VkShaderStatisticsInfoAMD; 6715 6716 6717 typedef VkResult (VKAPI_PTR *PFN_vkGetShaderInfoAMD)(VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo); 6718 6719 #ifndef VK_NO_PROTOTYPES 6720 VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderInfoAMD( 6721 VkDevice device, 6722 VkPipeline pipeline, 6723 VkShaderStageFlagBits shaderStage, 6724 VkShaderInfoTypeAMD infoType, 6725 size_t* pInfoSize, 6726 void* pInfo); 6727 #endif 6728 6729 #define VK_AMD_shader_image_load_store_lod 1 6730 #define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION 1 6731 #define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME "VK_AMD_shader_image_load_store_lod" 6732 6733 6734 #define VK_NV_corner_sampled_image 1 6735 #define VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION 2 6736 #define VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME "VK_NV_corner_sampled_image" 6737 6738 typedef struct VkPhysicalDeviceCornerSampledImageFeaturesNV { 6739 VkStructureType sType; 6740 void* pNext; 6741 VkBool32 cornerSampledImage; 6742 } VkPhysicalDeviceCornerSampledImageFeaturesNV; 6743 6744 6745 6746 #define VK_IMG_format_pvrtc 1 6747 #define VK_IMG_FORMAT_PVRTC_SPEC_VERSION 1 6748 #define VK_IMG_FORMAT_PVRTC_EXTENSION_NAME "VK_IMG_format_pvrtc" 6749 6750 6751 #define VK_NV_external_memory_capabilities 1 6752 #define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1 6753 #define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities" 6754 6755 6756 typedef enum VkExternalMemoryHandleTypeFlagBitsNV { 6757 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001, 6758 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002, 6759 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004, 6760 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008, 6761 VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF 6762 } VkExternalMemoryHandleTypeFlagBitsNV; 6763 typedef VkFlags VkExternalMemoryHandleTypeFlagsNV; 6764 6765 typedef enum VkExternalMemoryFeatureFlagBitsNV { 6766 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001, 6767 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002, 6768 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004, 6769 VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF 6770 } VkExternalMemoryFeatureFlagBitsNV; 6771 typedef VkFlags VkExternalMemoryFeatureFlagsNV; 6772 6773 typedef struct VkExternalImageFormatPropertiesNV { 6774 VkImageFormatProperties imageFormatProperties; 6775 VkExternalMemoryFeatureFlagsNV externalMemoryFeatures; 6776 VkExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes; 6777 VkExternalMemoryHandleTypeFlagsNV compatibleHandleTypes; 6778 } VkExternalImageFormatPropertiesNV; 6779 6780 6781 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties); 6782 6783 #ifndef VK_NO_PROTOTYPES 6784 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceExternalImageFormatPropertiesNV( 6785 VkPhysicalDevice physicalDevice, 6786 VkFormat format, 6787 VkImageType type, 6788 VkImageTiling tiling, 6789 VkImageUsageFlags usage, 6790 VkImageCreateFlags flags, 6791 VkExternalMemoryHandleTypeFlagsNV externalHandleType, 6792 VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties); 6793 #endif 6794 6795 #define VK_NV_external_memory 1 6796 #define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1 6797 #define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory" 6798 6799 typedef struct VkExternalMemoryImageCreateInfoNV { 6800 VkStructureType sType; 6801 const void* pNext; 6802 VkExternalMemoryHandleTypeFlagsNV handleTypes; 6803 } VkExternalMemoryImageCreateInfoNV; 6804 6805 typedef struct VkExportMemoryAllocateInfoNV { 6806 VkStructureType sType; 6807 const void* pNext; 6808 VkExternalMemoryHandleTypeFlagsNV handleTypes; 6809 } VkExportMemoryAllocateInfoNV; 6810 6811 6812 6813 #define VK_EXT_validation_flags 1 6814 #define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 1 6815 #define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags" 6816 6817 6818 typedef enum VkValidationCheckEXT { 6819 VK_VALIDATION_CHECK_ALL_EXT = 0, 6820 VK_VALIDATION_CHECK_SHADERS_EXT = 1, 6821 VK_VALIDATION_CHECK_BEGIN_RANGE_EXT = VK_VALIDATION_CHECK_ALL_EXT, 6822 VK_VALIDATION_CHECK_END_RANGE_EXT = VK_VALIDATION_CHECK_SHADERS_EXT, 6823 VK_VALIDATION_CHECK_RANGE_SIZE_EXT = (VK_VALIDATION_CHECK_SHADERS_EXT - VK_VALIDATION_CHECK_ALL_EXT + 1), 6824 VK_VALIDATION_CHECK_MAX_ENUM_EXT = 0x7FFFFFFF 6825 } VkValidationCheckEXT; 6826 6827 typedef struct VkValidationFlagsEXT { 6828 VkStructureType sType; 6829 const void* pNext; 6830 uint32_t disabledValidationCheckCount; 6831 const VkValidationCheckEXT* pDisabledValidationChecks; 6832 } VkValidationFlagsEXT; 6833 6834 6835 6836 #define VK_EXT_shader_subgroup_ballot 1 6837 #define VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION 1 6838 #define VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME "VK_EXT_shader_subgroup_ballot" 6839 6840 6841 #define VK_EXT_shader_subgroup_vote 1 6842 #define VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION 1 6843 #define VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME "VK_EXT_shader_subgroup_vote" 6844 6845 6846 #define VK_EXT_astc_decode_mode 1 6847 #define VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION 1 6848 #define VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME "VK_EXT_astc_decode_mode" 6849 6850 typedef struct VkImageViewASTCDecodeModeEXT { 6851 VkStructureType sType; 6852 const void* pNext; 6853 VkFormat decodeMode; 6854 } VkImageViewASTCDecodeModeEXT; 6855 6856 typedef struct VkPhysicalDeviceASTCDecodeFeaturesEXT { 6857 VkStructureType sType; 6858 void* pNext; 6859 VkBool32 decodeModeSharedExponent; 6860 } VkPhysicalDeviceASTCDecodeFeaturesEXT; 6861 6862 6863 6864 #define VK_EXT_conditional_rendering 1 6865 #define VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION 1 6866 #define VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME "VK_EXT_conditional_rendering" 6867 6868 6869 typedef enum VkConditionalRenderingFlagBitsEXT { 6870 VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 0x00000001, 6871 VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF 6872 } VkConditionalRenderingFlagBitsEXT; 6873 typedef VkFlags VkConditionalRenderingFlagsEXT; 6874 6875 typedef struct VkConditionalRenderingBeginInfoEXT { 6876 VkStructureType sType; 6877 const void* pNext; 6878 VkBuffer buffer; 6879 VkDeviceSize offset; 6880 VkConditionalRenderingFlagsEXT flags; 6881 } VkConditionalRenderingBeginInfoEXT; 6882 6883 typedef struct VkPhysicalDeviceConditionalRenderingFeaturesEXT { 6884 VkStructureType sType; 6885 void* pNext; 6886 VkBool32 conditionalRendering; 6887 VkBool32 inheritedConditionalRendering; 6888 } VkPhysicalDeviceConditionalRenderingFeaturesEXT; 6889 6890 typedef struct VkCommandBufferInheritanceConditionalRenderingInfoEXT { 6891 VkStructureType sType; 6892 const void* pNext; 6893 VkBool32 conditionalRenderingEnable; 6894 } VkCommandBufferInheritanceConditionalRenderingInfoEXT; 6895 6896 6897 typedef void (VKAPI_PTR *PFN_vkCmdBeginConditionalRenderingEXT)(VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin); 6898 typedef void (VKAPI_PTR *PFN_vkCmdEndConditionalRenderingEXT)(VkCommandBuffer commandBuffer); 6899 6900 #ifndef VK_NO_PROTOTYPES 6901 VKAPI_ATTR void VKAPI_CALL vkCmdBeginConditionalRenderingEXT( 6902 VkCommandBuffer commandBuffer, 6903 const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin); 6904 6905 VKAPI_ATTR void VKAPI_CALL vkCmdEndConditionalRenderingEXT( 6906 VkCommandBuffer commandBuffer); 6907 #endif 6908 6909 #define VK_NVX_device_generated_commands 1 6910 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkObjectTableNVX) 6911 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNVX) 6912 6913 #define VK_NVX_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3 6914 #define VK_NVX_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NVX_device_generated_commands" 6915 6916 6917 typedef enum VkIndirectCommandsTokenTypeNVX { 6918 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX = 0, 6919 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DESCRIPTOR_SET_NVX = 1, 6920 VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NVX = 2, 6921 VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NVX = 3, 6922 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NVX = 4, 6923 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NVX = 5, 6924 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NVX = 6, 6925 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX = 7, 6926 VK_INDIRECT_COMMANDS_TOKEN_TYPE_BEGIN_RANGE_NVX = VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX, 6927 VK_INDIRECT_COMMANDS_TOKEN_TYPE_END_RANGE_NVX = VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX, 6928 VK_INDIRECT_COMMANDS_TOKEN_TYPE_RANGE_SIZE_NVX = (VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NVX - VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NVX + 1), 6929 VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NVX = 0x7FFFFFFF 6930 } VkIndirectCommandsTokenTypeNVX; 6931 6932 typedef enum VkObjectEntryTypeNVX { 6933 VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX = 0, 6934 VK_OBJECT_ENTRY_TYPE_PIPELINE_NVX = 1, 6935 VK_OBJECT_ENTRY_TYPE_INDEX_BUFFER_NVX = 2, 6936 VK_OBJECT_ENTRY_TYPE_VERTEX_BUFFER_NVX = 3, 6937 VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX = 4, 6938 VK_OBJECT_ENTRY_TYPE_BEGIN_RANGE_NVX = VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX, 6939 VK_OBJECT_ENTRY_TYPE_END_RANGE_NVX = VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX, 6940 VK_OBJECT_ENTRY_TYPE_RANGE_SIZE_NVX = (VK_OBJECT_ENTRY_TYPE_PUSH_CONSTANT_NVX - VK_OBJECT_ENTRY_TYPE_DESCRIPTOR_SET_NVX + 1), 6941 VK_OBJECT_ENTRY_TYPE_MAX_ENUM_NVX = 0x7FFFFFFF 6942 } VkObjectEntryTypeNVX; 6943 6944 6945 typedef enum VkIndirectCommandsLayoutUsageFlagBitsNVX { 6946 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NVX = 0x00000001, 6947 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_SPARSE_SEQUENCES_BIT_NVX = 0x00000002, 6948 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EMPTY_EXECUTIONS_BIT_NVX = 0x00000004, 6949 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NVX = 0x00000008, 6950 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NVX = 0x7FFFFFFF 6951 } VkIndirectCommandsLayoutUsageFlagBitsNVX; 6952 typedef VkFlags VkIndirectCommandsLayoutUsageFlagsNVX; 6953 6954 typedef enum VkObjectEntryUsageFlagBitsNVX { 6955 VK_OBJECT_ENTRY_USAGE_GRAPHICS_BIT_NVX = 0x00000001, 6956 VK_OBJECT_ENTRY_USAGE_COMPUTE_BIT_NVX = 0x00000002, 6957 VK_OBJECT_ENTRY_USAGE_FLAG_BITS_MAX_ENUM_NVX = 0x7FFFFFFF 6958 } VkObjectEntryUsageFlagBitsNVX; 6959 typedef VkFlags VkObjectEntryUsageFlagsNVX; 6960 6961 typedef struct VkDeviceGeneratedCommandsFeaturesNVX { 6962 VkStructureType sType; 6963 const void* pNext; 6964 VkBool32 computeBindingPointSupport; 6965 } VkDeviceGeneratedCommandsFeaturesNVX; 6966 6967 typedef struct VkDeviceGeneratedCommandsLimitsNVX { 6968 VkStructureType sType; 6969 const void* pNext; 6970 uint32_t maxIndirectCommandsLayoutTokenCount; 6971 uint32_t maxObjectEntryCounts; 6972 uint32_t minSequenceCountBufferOffsetAlignment; 6973 uint32_t minSequenceIndexBufferOffsetAlignment; 6974 uint32_t minCommandsTokenBufferOffsetAlignment; 6975 } VkDeviceGeneratedCommandsLimitsNVX; 6976 6977 typedef struct VkIndirectCommandsTokenNVX { 6978 VkIndirectCommandsTokenTypeNVX tokenType; 6979 VkBuffer buffer; 6980 VkDeviceSize offset; 6981 } VkIndirectCommandsTokenNVX; 6982 6983 typedef struct VkIndirectCommandsLayoutTokenNVX { 6984 VkIndirectCommandsTokenTypeNVX tokenType; 6985 uint32_t bindingUnit; 6986 uint32_t dynamicCount; 6987 uint32_t divisor; 6988 } VkIndirectCommandsLayoutTokenNVX; 6989 6990 typedef struct VkIndirectCommandsLayoutCreateInfoNVX { 6991 VkStructureType sType; 6992 const void* pNext; 6993 VkPipelineBindPoint pipelineBindPoint; 6994 VkIndirectCommandsLayoutUsageFlagsNVX flags; 6995 uint32_t tokenCount; 6996 const VkIndirectCommandsLayoutTokenNVX* pTokens; 6997 } VkIndirectCommandsLayoutCreateInfoNVX; 6998 6999 typedef struct VkCmdProcessCommandsInfoNVX { 7000 VkStructureType sType; 7001 const void* pNext; 7002 VkObjectTableNVX objectTable; 7003 VkIndirectCommandsLayoutNVX indirectCommandsLayout; 7004 uint32_t indirectCommandsTokenCount; 7005 const VkIndirectCommandsTokenNVX* pIndirectCommandsTokens; 7006 uint32_t maxSequencesCount; 7007 VkCommandBuffer targetCommandBuffer; 7008 VkBuffer sequencesCountBuffer; 7009 VkDeviceSize sequencesCountOffset; 7010 VkBuffer sequencesIndexBuffer; 7011 VkDeviceSize sequencesIndexOffset; 7012 } VkCmdProcessCommandsInfoNVX; 7013 7014 typedef struct VkCmdReserveSpaceForCommandsInfoNVX { 7015 VkStructureType sType; 7016 const void* pNext; 7017 VkObjectTableNVX objectTable; 7018 VkIndirectCommandsLayoutNVX indirectCommandsLayout; 7019 uint32_t maxSequencesCount; 7020 } VkCmdReserveSpaceForCommandsInfoNVX; 7021 7022 typedef struct VkObjectTableCreateInfoNVX { 7023 VkStructureType sType; 7024 const void* pNext; 7025 uint32_t objectCount; 7026 const VkObjectEntryTypeNVX* pObjectEntryTypes; 7027 const uint32_t* pObjectEntryCounts; 7028 const VkObjectEntryUsageFlagsNVX* pObjectEntryUsageFlags; 7029 uint32_t maxUniformBuffersPerDescriptor; 7030 uint32_t maxStorageBuffersPerDescriptor; 7031 uint32_t maxStorageImagesPerDescriptor; 7032 uint32_t maxSampledImagesPerDescriptor; 7033 uint32_t maxPipelineLayouts; 7034 } VkObjectTableCreateInfoNVX; 7035 7036 typedef struct VkObjectTableEntryNVX { 7037 VkObjectEntryTypeNVX type; 7038 VkObjectEntryUsageFlagsNVX flags; 7039 } VkObjectTableEntryNVX; 7040 7041 typedef struct VkObjectTablePipelineEntryNVX { 7042 VkObjectEntryTypeNVX type; 7043 VkObjectEntryUsageFlagsNVX flags; 7044 VkPipeline pipeline; 7045 } VkObjectTablePipelineEntryNVX; 7046 7047 typedef struct VkObjectTableDescriptorSetEntryNVX { 7048 VkObjectEntryTypeNVX type; 7049 VkObjectEntryUsageFlagsNVX flags; 7050 VkPipelineLayout pipelineLayout; 7051 VkDescriptorSet descriptorSet; 7052 } VkObjectTableDescriptorSetEntryNVX; 7053 7054 typedef struct VkObjectTableVertexBufferEntryNVX { 7055 VkObjectEntryTypeNVX type; 7056 VkObjectEntryUsageFlagsNVX flags; 7057 VkBuffer buffer; 7058 } VkObjectTableVertexBufferEntryNVX; 7059 7060 typedef struct VkObjectTableIndexBufferEntryNVX { 7061 VkObjectEntryTypeNVX type; 7062 VkObjectEntryUsageFlagsNVX flags; 7063 VkBuffer buffer; 7064 VkIndexType indexType; 7065 } VkObjectTableIndexBufferEntryNVX; 7066 7067 typedef struct VkObjectTablePushConstantEntryNVX { 7068 VkObjectEntryTypeNVX type; 7069 VkObjectEntryUsageFlagsNVX flags; 7070 VkPipelineLayout pipelineLayout; 7071 VkShaderStageFlags stageFlags; 7072 } VkObjectTablePushConstantEntryNVX; 7073 7074 7075 typedef void (VKAPI_PTR *PFN_vkCmdProcessCommandsNVX)(VkCommandBuffer commandBuffer, const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo); 7076 typedef void (VKAPI_PTR *PFN_vkCmdReserveSpaceForCommandsNVX)(VkCommandBuffer commandBuffer, const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo); 7077 typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutNVX)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout); 7078 typedef void (VKAPI_PTR *PFN_vkDestroyIndirectCommandsLayoutNVX)(VkDevice device, VkIndirectCommandsLayoutNVX indirectCommandsLayout, const VkAllocationCallbacks* pAllocator); 7079 typedef VkResult (VKAPI_PTR *PFN_vkCreateObjectTableNVX)(VkDevice device, const VkObjectTableCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkObjectTableNVX* pObjectTable); 7080 typedef void (VKAPI_PTR *PFN_vkDestroyObjectTableNVX)(VkDevice device, VkObjectTableNVX objectTable, const VkAllocationCallbacks* pAllocator); 7081 typedef VkResult (VKAPI_PTR *PFN_vkRegisterObjectsNVX)(VkDevice device, VkObjectTableNVX objectTable, uint32_t objectCount, const VkObjectTableEntryNVX* const* ppObjectTableEntries, const uint32_t* pObjectIndices); 7082 typedef VkResult (VKAPI_PTR *PFN_vkUnregisterObjectsNVX)(VkDevice device, VkObjectTableNVX objectTable, uint32_t objectCount, const VkObjectEntryTypeNVX* pObjectEntryTypes, const uint32_t* pObjectIndices); 7083 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX)(VkPhysicalDevice physicalDevice, VkDeviceGeneratedCommandsFeaturesNVX* pFeatures, VkDeviceGeneratedCommandsLimitsNVX* pLimits); 7084 7085 #ifndef VK_NO_PROTOTYPES 7086 VKAPI_ATTR void VKAPI_CALL vkCmdProcessCommandsNVX( 7087 VkCommandBuffer commandBuffer, 7088 const VkCmdProcessCommandsInfoNVX* pProcessCommandsInfo); 7089 7090 VKAPI_ATTR void VKAPI_CALL vkCmdReserveSpaceForCommandsNVX( 7091 VkCommandBuffer commandBuffer, 7092 const VkCmdReserveSpaceForCommandsInfoNVX* pReserveSpaceInfo); 7093 7094 VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutNVX( 7095 VkDevice device, 7096 const VkIndirectCommandsLayoutCreateInfoNVX* pCreateInfo, 7097 const VkAllocationCallbacks* pAllocator, 7098 VkIndirectCommandsLayoutNVX* pIndirectCommandsLayout); 7099 7100 VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutNVX( 7101 VkDevice device, 7102 VkIndirectCommandsLayoutNVX indirectCommandsLayout, 7103 const VkAllocationCallbacks* pAllocator); 7104 7105 VKAPI_ATTR VkResult VKAPI_CALL vkCreateObjectTableNVX( 7106 VkDevice device, 7107 const VkObjectTableCreateInfoNVX* pCreateInfo, 7108 const VkAllocationCallbacks* pAllocator, 7109 VkObjectTableNVX* pObjectTable); 7110 7111 VKAPI_ATTR void VKAPI_CALL vkDestroyObjectTableNVX( 7112 VkDevice device, 7113 VkObjectTableNVX objectTable, 7114 const VkAllocationCallbacks* pAllocator); 7115 7116 VKAPI_ATTR VkResult VKAPI_CALL vkRegisterObjectsNVX( 7117 VkDevice device, 7118 VkObjectTableNVX objectTable, 7119 uint32_t objectCount, 7120 const VkObjectTableEntryNVX* const* ppObjectTableEntries, 7121 const uint32_t* pObjectIndices); 7122 7123 VKAPI_ATTR VkResult VKAPI_CALL vkUnregisterObjectsNVX( 7124 VkDevice device, 7125 VkObjectTableNVX objectTable, 7126 uint32_t objectCount, 7127 const VkObjectEntryTypeNVX* pObjectEntryTypes, 7128 const uint32_t* pObjectIndices); 7129 7130 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceGeneratedCommandsPropertiesNVX( 7131 VkPhysicalDevice physicalDevice, 7132 VkDeviceGeneratedCommandsFeaturesNVX* pFeatures, 7133 VkDeviceGeneratedCommandsLimitsNVX* pLimits); 7134 #endif 7135 7136 #define VK_NV_clip_space_w_scaling 1 7137 #define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1 7138 #define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling" 7139 7140 typedef struct VkViewportWScalingNV { 7141 float xcoeff; 7142 float ycoeff; 7143 } VkViewportWScalingNV; 7144 7145 typedef struct VkPipelineViewportWScalingStateCreateInfoNV { 7146 VkStructureType sType; 7147 const void* pNext; 7148 VkBool32 viewportWScalingEnable; 7149 uint32_t viewportCount; 7150 const VkViewportWScalingNV* pViewportWScalings; 7151 } VkPipelineViewportWScalingStateCreateInfoNV; 7152 7153 7154 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWScalingNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings); 7155 7156 #ifndef VK_NO_PROTOTYPES 7157 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWScalingNV( 7158 VkCommandBuffer commandBuffer, 7159 uint32_t firstViewport, 7160 uint32_t viewportCount, 7161 const VkViewportWScalingNV* pViewportWScalings); 7162 #endif 7163 7164 #define VK_EXT_direct_mode_display 1 7165 #define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1 7166 #define VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME "VK_EXT_direct_mode_display" 7167 7168 typedef VkResult (VKAPI_PTR *PFN_vkReleaseDisplayEXT)(VkPhysicalDevice physicalDevice, VkDisplayKHR display); 7169 7170 #ifndef VK_NO_PROTOTYPES 7171 VKAPI_ATTR VkResult VKAPI_CALL vkReleaseDisplayEXT( 7172 VkPhysicalDevice physicalDevice, 7173 VkDisplayKHR display); 7174 #endif 7175 7176 #define VK_EXT_display_surface_counter 1 7177 #define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1 7178 #define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter" 7179 7180 7181 typedef enum VkSurfaceCounterFlagBitsEXT { 7182 VK_SURFACE_COUNTER_VBLANK_EXT = 0x00000001, 7183 VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF 7184 } VkSurfaceCounterFlagBitsEXT; 7185 typedef VkFlags VkSurfaceCounterFlagsEXT; 7186 7187 typedef struct VkSurfaceCapabilities2EXT { 7188 VkStructureType sType; 7189 void* pNext; 7190 uint32_t minImageCount; 7191 uint32_t maxImageCount; 7192 VkExtent2D currentExtent; 7193 VkExtent2D minImageExtent; 7194 VkExtent2D maxImageExtent; 7195 uint32_t maxImageArrayLayers; 7196 VkSurfaceTransformFlagsKHR supportedTransforms; 7197 VkSurfaceTransformFlagBitsKHR currentTransform; 7198 VkCompositeAlphaFlagsKHR supportedCompositeAlpha; 7199 VkImageUsageFlags supportedUsageFlags; 7200 VkSurfaceCounterFlagsEXT supportedSurfaceCounters; 7201 } VkSurfaceCapabilities2EXT; 7202 7203 7204 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities); 7205 7206 #ifndef VK_NO_PROTOTYPES 7207 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2EXT( 7208 VkPhysicalDevice physicalDevice, 7209 VkSurfaceKHR surface, 7210 VkSurfaceCapabilities2EXT* pSurfaceCapabilities); 7211 #endif 7212 7213 #define VK_EXT_display_control 1 7214 #define VK_EXT_DISPLAY_CONTROL_SPEC_VERSION 1 7215 #define VK_EXT_DISPLAY_CONTROL_EXTENSION_NAME "VK_EXT_display_control" 7216 7217 7218 typedef enum VkDisplayPowerStateEXT { 7219 VK_DISPLAY_POWER_STATE_OFF_EXT = 0, 7220 VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1, 7221 VK_DISPLAY_POWER_STATE_ON_EXT = 2, 7222 VK_DISPLAY_POWER_STATE_BEGIN_RANGE_EXT = VK_DISPLAY_POWER_STATE_OFF_EXT, 7223 VK_DISPLAY_POWER_STATE_END_RANGE_EXT = VK_DISPLAY_POWER_STATE_ON_EXT, 7224 VK_DISPLAY_POWER_STATE_RANGE_SIZE_EXT = (VK_DISPLAY_POWER_STATE_ON_EXT - VK_DISPLAY_POWER_STATE_OFF_EXT + 1), 7225 VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 0x7FFFFFFF 7226 } VkDisplayPowerStateEXT; 7227 7228 typedef enum VkDeviceEventTypeEXT { 7229 VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0, 7230 VK_DEVICE_EVENT_TYPE_BEGIN_RANGE_EXT = VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT, 7231 VK_DEVICE_EVENT_TYPE_END_RANGE_EXT = VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT, 7232 VK_DEVICE_EVENT_TYPE_RANGE_SIZE_EXT = (VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT - VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT + 1), 7233 VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF 7234 } VkDeviceEventTypeEXT; 7235 7236 typedef enum VkDisplayEventTypeEXT { 7237 VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0, 7238 VK_DISPLAY_EVENT_TYPE_BEGIN_RANGE_EXT = VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT, 7239 VK_DISPLAY_EVENT_TYPE_END_RANGE_EXT = VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT, 7240 VK_DISPLAY_EVENT_TYPE_RANGE_SIZE_EXT = (VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT - VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT + 1), 7241 VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF 7242 } VkDisplayEventTypeEXT; 7243 7244 typedef struct VkDisplayPowerInfoEXT { 7245 VkStructureType sType; 7246 const void* pNext; 7247 VkDisplayPowerStateEXT powerState; 7248 } VkDisplayPowerInfoEXT; 7249 7250 typedef struct VkDeviceEventInfoEXT { 7251 VkStructureType sType; 7252 const void* pNext; 7253 VkDeviceEventTypeEXT deviceEvent; 7254 } VkDeviceEventInfoEXT; 7255 7256 typedef struct VkDisplayEventInfoEXT { 7257 VkStructureType sType; 7258 const void* pNext; 7259 VkDisplayEventTypeEXT displayEvent; 7260 } VkDisplayEventInfoEXT; 7261 7262 typedef struct VkSwapchainCounterCreateInfoEXT { 7263 VkStructureType sType; 7264 const void* pNext; 7265 VkSurfaceCounterFlagsEXT surfaceCounters; 7266 } VkSwapchainCounterCreateInfoEXT; 7267 7268 7269 typedef VkResult (VKAPI_PTR *PFN_vkDisplayPowerControlEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo); 7270 typedef VkResult (VKAPI_PTR *PFN_vkRegisterDeviceEventEXT)(VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence); 7271 typedef VkResult (VKAPI_PTR *PFN_vkRegisterDisplayEventEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence); 7272 typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainCounterEXT)(VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue); 7273 7274 #ifndef VK_NO_PROTOTYPES 7275 VKAPI_ATTR VkResult VKAPI_CALL vkDisplayPowerControlEXT( 7276 VkDevice device, 7277 VkDisplayKHR display, 7278 const VkDisplayPowerInfoEXT* pDisplayPowerInfo); 7279 7280 VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDeviceEventEXT( 7281 VkDevice device, 7282 const VkDeviceEventInfoEXT* pDeviceEventInfo, 7283 const VkAllocationCallbacks* pAllocator, 7284 VkFence* pFence); 7285 7286 VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDisplayEventEXT( 7287 VkDevice device, 7288 VkDisplayKHR display, 7289 const VkDisplayEventInfoEXT* pDisplayEventInfo, 7290 const VkAllocationCallbacks* pAllocator, 7291 VkFence* pFence); 7292 7293 VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainCounterEXT( 7294 VkDevice device, 7295 VkSwapchainKHR swapchain, 7296 VkSurfaceCounterFlagBitsEXT counter, 7297 uint64_t* pCounterValue); 7298 #endif 7299 7300 #define VK_GOOGLE_display_timing 1 7301 #define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1 7302 #define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing" 7303 7304 typedef struct VkRefreshCycleDurationGOOGLE { 7305 uint64_t refreshDuration; 7306 } VkRefreshCycleDurationGOOGLE; 7307 7308 typedef struct VkPastPresentationTimingGOOGLE { 7309 uint32_t presentID; 7310 uint64_t desiredPresentTime; 7311 uint64_t actualPresentTime; 7312 uint64_t earliestPresentTime; 7313 uint64_t presentMargin; 7314 } VkPastPresentationTimingGOOGLE; 7315 7316 typedef struct VkPresentTimeGOOGLE { 7317 uint32_t presentID; 7318 uint64_t desiredPresentTime; 7319 } VkPresentTimeGOOGLE; 7320 7321 typedef struct VkPresentTimesInfoGOOGLE { 7322 VkStructureType sType; 7323 const void* pNext; 7324 uint32_t swapchainCount; 7325 const VkPresentTimeGOOGLE* pTimes; 7326 } VkPresentTimesInfoGOOGLE; 7327 7328 7329 typedef VkResult (VKAPI_PTR *PFN_vkGetRefreshCycleDurationGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties); 7330 typedef VkResult (VKAPI_PTR *PFN_vkGetPastPresentationTimingGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings); 7331 7332 #ifndef VK_NO_PROTOTYPES 7333 VKAPI_ATTR VkResult VKAPI_CALL vkGetRefreshCycleDurationGOOGLE( 7334 VkDevice device, 7335 VkSwapchainKHR swapchain, 7336 VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties); 7337 7338 VKAPI_ATTR VkResult VKAPI_CALL vkGetPastPresentationTimingGOOGLE( 7339 VkDevice device, 7340 VkSwapchainKHR swapchain, 7341 uint32_t* pPresentationTimingCount, 7342 VkPastPresentationTimingGOOGLE* pPresentationTimings); 7343 #endif 7344 7345 #define VK_NV_sample_mask_override_coverage 1 7346 #define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION 1 7347 #define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME "VK_NV_sample_mask_override_coverage" 7348 7349 7350 #define VK_NV_geometry_shader_passthrough 1 7351 #define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION 1 7352 #define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME "VK_NV_geometry_shader_passthrough" 7353 7354 7355 #define VK_NV_viewport_array2 1 7356 #define VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION 1 7357 #define VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME "VK_NV_viewport_array2" 7358 7359 7360 #define VK_NVX_multiview_per_view_attributes 1 7361 #define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION 1 7362 #define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes" 7363 7364 typedef struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX { 7365 VkStructureType sType; 7366 void* pNext; 7367 VkBool32 perViewPositionAllComponents; 7368 } VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX; 7369 7370 7371 7372 #define VK_NV_viewport_swizzle 1 7373 #define VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION 1 7374 #define VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME "VK_NV_viewport_swizzle" 7375 7376 7377 typedef enum VkViewportCoordinateSwizzleNV { 7378 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0, 7379 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1, 7380 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2, 7381 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3, 7382 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4, 7383 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5, 7384 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6, 7385 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7, 7386 VK_VIEWPORT_COORDINATE_SWIZZLE_BEGIN_RANGE_NV = VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV, 7387 VK_VIEWPORT_COORDINATE_SWIZZLE_END_RANGE_NV = VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV, 7388 VK_VIEWPORT_COORDINATE_SWIZZLE_RANGE_SIZE_NV = (VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV - VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV + 1), 7389 VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 0x7FFFFFFF 7390 } VkViewportCoordinateSwizzleNV; 7391 7392 typedef VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV; 7393 7394 typedef struct VkViewportSwizzleNV { 7395 VkViewportCoordinateSwizzleNV x; 7396 VkViewportCoordinateSwizzleNV y; 7397 VkViewportCoordinateSwizzleNV z; 7398 VkViewportCoordinateSwizzleNV w; 7399 } VkViewportSwizzleNV; 7400 7401 typedef struct VkPipelineViewportSwizzleStateCreateInfoNV { 7402 VkStructureType sType; 7403 const void* pNext; 7404 VkPipelineViewportSwizzleStateCreateFlagsNV flags; 7405 uint32_t viewportCount; 7406 const VkViewportSwizzleNV* pViewportSwizzles; 7407 } VkPipelineViewportSwizzleStateCreateInfoNV; 7408 7409 7410 7411 #define VK_EXT_discard_rectangles 1 7412 #define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 1 7413 #define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles" 7414 7415 7416 typedef enum VkDiscardRectangleModeEXT { 7417 VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0, 7418 VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1, 7419 VK_DISCARD_RECTANGLE_MODE_BEGIN_RANGE_EXT = VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT, 7420 VK_DISCARD_RECTANGLE_MODE_END_RANGE_EXT = VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT, 7421 VK_DISCARD_RECTANGLE_MODE_RANGE_SIZE_EXT = (VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT - VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT + 1), 7422 VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 0x7FFFFFFF 7423 } VkDiscardRectangleModeEXT; 7424 7425 typedef VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT; 7426 7427 typedef struct VkPhysicalDeviceDiscardRectanglePropertiesEXT { 7428 VkStructureType sType; 7429 void* pNext; 7430 uint32_t maxDiscardRectangles; 7431 } VkPhysicalDeviceDiscardRectanglePropertiesEXT; 7432 7433 typedef struct VkPipelineDiscardRectangleStateCreateInfoEXT { 7434 VkStructureType sType; 7435 const void* pNext; 7436 VkPipelineDiscardRectangleStateCreateFlagsEXT flags; 7437 VkDiscardRectangleModeEXT discardRectangleMode; 7438 uint32_t discardRectangleCount; 7439 const VkRect2D* pDiscardRectangles; 7440 } VkPipelineDiscardRectangleStateCreateInfoEXT; 7441 7442 7443 typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEXT)(VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles); 7444 7445 #ifndef VK_NO_PROTOTYPES 7446 VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEXT( 7447 VkCommandBuffer commandBuffer, 7448 uint32_t firstDiscardRectangle, 7449 uint32_t discardRectangleCount, 7450 const VkRect2D* pDiscardRectangles); 7451 #endif 7452 7453 #define VK_EXT_conservative_rasterization 1 7454 #define VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION 1 7455 #define VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME "VK_EXT_conservative_rasterization" 7456 7457 7458 typedef enum VkConservativeRasterizationModeEXT { 7459 VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0, 7460 VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1, 7461 VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2, 7462 VK_CONSERVATIVE_RASTERIZATION_MODE_BEGIN_RANGE_EXT = VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT, 7463 VK_CONSERVATIVE_RASTERIZATION_MODE_END_RANGE_EXT = VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT, 7464 VK_CONSERVATIVE_RASTERIZATION_MODE_RANGE_SIZE_EXT = (VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT - VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT + 1), 7465 VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF 7466 } VkConservativeRasterizationModeEXT; 7467 7468 typedef VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT; 7469 7470 typedef struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT { 7471 VkStructureType sType; 7472 void* pNext; 7473 float primitiveOverestimationSize; 7474 float maxExtraPrimitiveOverestimationSize; 7475 float extraPrimitiveOverestimationSizeGranularity; 7476 VkBool32 primitiveUnderestimation; 7477 VkBool32 conservativePointAndLineRasterization; 7478 VkBool32 degenerateTrianglesRasterized; 7479 VkBool32 degenerateLinesRasterized; 7480 VkBool32 fullyCoveredFragmentShaderInputVariable; 7481 VkBool32 conservativeRasterizationPostDepthCoverage; 7482 } VkPhysicalDeviceConservativeRasterizationPropertiesEXT; 7483 7484 typedef struct VkPipelineRasterizationConservativeStateCreateInfoEXT { 7485 VkStructureType sType; 7486 const void* pNext; 7487 VkPipelineRasterizationConservativeStateCreateFlagsEXT flags; 7488 VkConservativeRasterizationModeEXT conservativeRasterizationMode; 7489 float extraPrimitiveOverestimationSize; 7490 } VkPipelineRasterizationConservativeStateCreateInfoEXT; 7491 7492 7493 7494 #define VK_EXT_depth_clip_enable 1 7495 #define VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION 1 7496 #define VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME "VK_EXT_depth_clip_enable" 7497 7498 typedef VkFlags VkPipelineRasterizationDepthClipStateCreateFlagsEXT; 7499 7500 typedef struct VkPhysicalDeviceDepthClipEnableFeaturesEXT { 7501 VkStructureType sType; 7502 void* pNext; 7503 VkBool32 depthClipEnable; 7504 } VkPhysicalDeviceDepthClipEnableFeaturesEXT; 7505 7506 typedef struct VkPipelineRasterizationDepthClipStateCreateInfoEXT { 7507 VkStructureType sType; 7508 const void* pNext; 7509 VkPipelineRasterizationDepthClipStateCreateFlagsEXT flags; 7510 VkBool32 depthClipEnable; 7511 } VkPipelineRasterizationDepthClipStateCreateInfoEXT; 7512 7513 7514 7515 #define VK_EXT_swapchain_colorspace 1 7516 #define VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION 3 7517 #define VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace" 7518 7519 7520 #define VK_EXT_hdr_metadata 1 7521 #define VK_EXT_HDR_METADATA_SPEC_VERSION 1 7522 #define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata" 7523 7524 typedef struct VkXYColorEXT { 7525 float x; 7526 float y; 7527 } VkXYColorEXT; 7528 7529 typedef struct VkHdrMetadataEXT { 7530 VkStructureType sType; 7531 const void* pNext; 7532 VkXYColorEXT displayPrimaryRed; 7533 VkXYColorEXT displayPrimaryGreen; 7534 VkXYColorEXT displayPrimaryBlue; 7535 VkXYColorEXT whitePoint; 7536 float maxLuminance; 7537 float minLuminance; 7538 float maxContentLightLevel; 7539 float maxFrameAverageLightLevel; 7540 } VkHdrMetadataEXT; 7541 7542 7543 typedef void (VKAPI_PTR *PFN_vkSetHdrMetadataEXT)(VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata); 7544 7545 #ifndef VK_NO_PROTOTYPES 7546 VKAPI_ATTR void VKAPI_CALL vkSetHdrMetadataEXT( 7547 VkDevice device, 7548 uint32_t swapchainCount, 7549 const VkSwapchainKHR* pSwapchains, 7550 const VkHdrMetadataEXT* pMetadata); 7551 #endif 7552 7553 #define VK_EXT_external_memory_dma_buf 1 7554 #define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION 1 7555 #define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME "VK_EXT_external_memory_dma_buf" 7556 7557 7558 #define VK_EXT_queue_family_foreign 1 7559 #define VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION 1 7560 #define VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME "VK_EXT_queue_family_foreign" 7561 #define VK_QUEUE_FAMILY_FOREIGN_EXT (~0U-2) 7562 7563 7564 #define VK_EXT_debug_utils 1 7565 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugUtilsMessengerEXT) 7566 7567 #define VK_EXT_DEBUG_UTILS_SPEC_VERSION 1 7568 #define VK_EXT_DEBUG_UTILS_EXTENSION_NAME "VK_EXT_debug_utils" 7569 7570 typedef VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT; 7571 typedef VkFlags VkDebugUtilsMessengerCreateFlagsEXT; 7572 7573 typedef enum VkDebugUtilsMessageSeverityFlagBitsEXT { 7574 VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001, 7575 VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0x00000010, 7576 VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0x00000100, 7577 VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000, 7578 VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF 7579 } VkDebugUtilsMessageSeverityFlagBitsEXT; 7580 typedef VkFlags VkDebugUtilsMessageSeverityFlagsEXT; 7581 7582 typedef enum VkDebugUtilsMessageTypeFlagBitsEXT { 7583 VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001, 7584 VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0x00000002, 7585 VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0x00000004, 7586 VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF 7587 } VkDebugUtilsMessageTypeFlagBitsEXT; 7588 typedef VkFlags VkDebugUtilsMessageTypeFlagsEXT; 7589 7590 typedef struct VkDebugUtilsObjectNameInfoEXT { 7591 VkStructureType sType; 7592 const void* pNext; 7593 VkObjectType objectType; 7594 uint64_t objectHandle; 7595 const char* pObjectName; 7596 } VkDebugUtilsObjectNameInfoEXT; 7597 7598 typedef struct VkDebugUtilsObjectTagInfoEXT { 7599 VkStructureType sType; 7600 const void* pNext; 7601 VkObjectType objectType; 7602 uint64_t objectHandle; 7603 uint64_t tagName; 7604 size_t tagSize; 7605 const void* pTag; 7606 } VkDebugUtilsObjectTagInfoEXT; 7607 7608 typedef struct VkDebugUtilsLabelEXT { 7609 VkStructureType sType; 7610 const void* pNext; 7611 const char* pLabelName; 7612 float color[4]; 7613 } VkDebugUtilsLabelEXT; 7614 7615 typedef struct VkDebugUtilsMessengerCallbackDataEXT { 7616 VkStructureType sType; 7617 const void* pNext; 7618 VkDebugUtilsMessengerCallbackDataFlagsEXT flags; 7619 const char* pMessageIdName; 7620 int32_t messageIdNumber; 7621 const char* pMessage; 7622 uint32_t queueLabelCount; 7623 const VkDebugUtilsLabelEXT* pQueueLabels; 7624 uint32_t cmdBufLabelCount; 7625 const VkDebugUtilsLabelEXT* pCmdBufLabels; 7626 uint32_t objectCount; 7627 const VkDebugUtilsObjectNameInfoEXT* pObjects; 7628 } VkDebugUtilsMessengerCallbackDataEXT; 7629 7630 typedef VkBool32 (VKAPI_PTR *PFN_vkDebugUtilsMessengerCallbackEXT)( 7631 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, 7632 VkDebugUtilsMessageTypeFlagsEXT messageTypes, 7633 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData, 7634 void* pUserData); 7635 7636 typedef struct VkDebugUtilsMessengerCreateInfoEXT { 7637 VkStructureType sType; 7638 const void* pNext; 7639 VkDebugUtilsMessengerCreateFlagsEXT flags; 7640 VkDebugUtilsMessageSeverityFlagsEXT messageSeverity; 7641 VkDebugUtilsMessageTypeFlagsEXT messageType; 7642 PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback; 7643 void* pUserData; 7644 } VkDebugUtilsMessengerCreateInfoEXT; 7645 7646 7647 typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectNameEXT)(VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo); 7648 typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectTagEXT)(VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo); 7649 typedef void (VKAPI_PTR *PFN_vkQueueBeginDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo); 7650 typedef void (VKAPI_PTR *PFN_vkQueueEndDebugUtilsLabelEXT)(VkQueue queue); 7651 typedef void (VKAPI_PTR *PFN_vkQueueInsertDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo); 7652 typedef void (VKAPI_PTR *PFN_vkCmdBeginDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo); 7653 typedef void (VKAPI_PTR *PFN_vkCmdEndDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer); 7654 typedef void (VKAPI_PTR *PFN_vkCmdInsertDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo); 7655 typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugUtilsMessengerEXT)(VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugUtilsMessengerEXT* pMessenger); 7656 typedef void (VKAPI_PTR *PFN_vkDestroyDebugUtilsMessengerEXT)(VkInstance instance, VkDebugUtilsMessengerEXT messenger, const VkAllocationCallbacks* pAllocator); 7657 typedef void (VKAPI_PTR *PFN_vkSubmitDebugUtilsMessageEXT)(VkInstance instance, VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData); 7658 7659 #ifndef VK_NO_PROTOTYPES 7660 VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectNameEXT( 7661 VkDevice device, 7662 const VkDebugUtilsObjectNameInfoEXT* pNameInfo); 7663 7664 VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectTagEXT( 7665 VkDevice device, 7666 const VkDebugUtilsObjectTagInfoEXT* pTagInfo); 7667 7668 VKAPI_ATTR void VKAPI_CALL vkQueueBeginDebugUtilsLabelEXT( 7669 VkQueue queue, 7670 const VkDebugUtilsLabelEXT* pLabelInfo); 7671 7672 VKAPI_ATTR void VKAPI_CALL vkQueueEndDebugUtilsLabelEXT( 7673 VkQueue queue); 7674 7675 VKAPI_ATTR void VKAPI_CALL vkQueueInsertDebugUtilsLabelEXT( 7676 VkQueue queue, 7677 const VkDebugUtilsLabelEXT* pLabelInfo); 7678 7679 VKAPI_ATTR void VKAPI_CALL vkCmdBeginDebugUtilsLabelEXT( 7680 VkCommandBuffer commandBuffer, 7681 const VkDebugUtilsLabelEXT* pLabelInfo); 7682 7683 VKAPI_ATTR void VKAPI_CALL vkCmdEndDebugUtilsLabelEXT( 7684 VkCommandBuffer commandBuffer); 7685 7686 VKAPI_ATTR void VKAPI_CALL vkCmdInsertDebugUtilsLabelEXT( 7687 VkCommandBuffer commandBuffer, 7688 const VkDebugUtilsLabelEXT* pLabelInfo); 7689 7690 VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugUtilsMessengerEXT( 7691 VkInstance instance, 7692 const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, 7693 const VkAllocationCallbacks* pAllocator, 7694 VkDebugUtilsMessengerEXT* pMessenger); 7695 7696 VKAPI_ATTR void VKAPI_CALL vkDestroyDebugUtilsMessengerEXT( 7697 VkInstance instance, 7698 VkDebugUtilsMessengerEXT messenger, 7699 const VkAllocationCallbacks* pAllocator); 7700 7701 VKAPI_ATTR void VKAPI_CALL vkSubmitDebugUtilsMessageEXT( 7702 VkInstance instance, 7703 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, 7704 VkDebugUtilsMessageTypeFlagsEXT messageTypes, 7705 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData); 7706 #endif 7707 7708 #define VK_EXT_sampler_filter_minmax 1 7709 #define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 1 7710 #define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax" 7711 7712 7713 typedef enum VkSamplerReductionModeEXT { 7714 VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = 0, 7715 VK_SAMPLER_REDUCTION_MODE_MIN_EXT = 1, 7716 VK_SAMPLER_REDUCTION_MODE_MAX_EXT = 2, 7717 VK_SAMPLER_REDUCTION_MODE_BEGIN_RANGE_EXT = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT, 7718 VK_SAMPLER_REDUCTION_MODE_END_RANGE_EXT = VK_SAMPLER_REDUCTION_MODE_MAX_EXT, 7719 VK_SAMPLER_REDUCTION_MODE_RANGE_SIZE_EXT = (VK_SAMPLER_REDUCTION_MODE_MAX_EXT - VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT + 1), 7720 VK_SAMPLER_REDUCTION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF 7721 } VkSamplerReductionModeEXT; 7722 7723 typedef struct VkSamplerReductionModeCreateInfoEXT { 7724 VkStructureType sType; 7725 const void* pNext; 7726 VkSamplerReductionModeEXT reductionMode; 7727 } VkSamplerReductionModeCreateInfoEXT; 7728 7729 typedef struct VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT { 7730 VkStructureType sType; 7731 void* pNext; 7732 VkBool32 filterMinmaxSingleComponentFormats; 7733 VkBool32 filterMinmaxImageComponentMapping; 7734 } VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT; 7735 7736 7737 7738 #define VK_AMD_gpu_shader_int16 1 7739 #define VK_AMD_GPU_SHADER_INT16_SPEC_VERSION 1 7740 #define VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME "VK_AMD_gpu_shader_int16" 7741 7742 7743 #define VK_AMD_mixed_attachment_samples 1 7744 #define VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION 1 7745 #define VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME "VK_AMD_mixed_attachment_samples" 7746 7747 7748 #define VK_AMD_shader_fragment_mask 1 7749 #define VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION 1 7750 #define VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME "VK_AMD_shader_fragment_mask" 7751 7752 7753 #define VK_EXT_inline_uniform_block 1 7754 #define VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION 1 7755 #define VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME "VK_EXT_inline_uniform_block" 7756 7757 typedef struct VkPhysicalDeviceInlineUniformBlockFeaturesEXT { 7758 VkStructureType sType; 7759 void* pNext; 7760 VkBool32 inlineUniformBlock; 7761 VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind; 7762 } VkPhysicalDeviceInlineUniformBlockFeaturesEXT; 7763 7764 typedef struct VkPhysicalDeviceInlineUniformBlockPropertiesEXT { 7765 VkStructureType sType; 7766 void* pNext; 7767 uint32_t maxInlineUniformBlockSize; 7768 uint32_t maxPerStageDescriptorInlineUniformBlocks; 7769 uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks; 7770 uint32_t maxDescriptorSetInlineUniformBlocks; 7771 uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks; 7772 } VkPhysicalDeviceInlineUniformBlockPropertiesEXT; 7773 7774 typedef struct VkWriteDescriptorSetInlineUniformBlockEXT { 7775 VkStructureType sType; 7776 const void* pNext; 7777 uint32_t dataSize; 7778 const void* pData; 7779 } VkWriteDescriptorSetInlineUniformBlockEXT; 7780 7781 typedef struct VkDescriptorPoolInlineUniformBlockCreateInfoEXT { 7782 VkStructureType sType; 7783 const void* pNext; 7784 uint32_t maxInlineUniformBlockBindings; 7785 } VkDescriptorPoolInlineUniformBlockCreateInfoEXT; 7786 7787 7788 7789 #define VK_EXT_shader_stencil_export 1 7790 #define VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION 1 7791 #define VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME "VK_EXT_shader_stencil_export" 7792 7793 7794 #define VK_EXT_sample_locations 1 7795 #define VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION 1 7796 #define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations" 7797 7798 typedef struct VkSampleLocationEXT { 7799 float x; 7800 float y; 7801 } VkSampleLocationEXT; 7802 7803 typedef struct VkSampleLocationsInfoEXT { 7804 VkStructureType sType; 7805 const void* pNext; 7806 VkSampleCountFlagBits sampleLocationsPerPixel; 7807 VkExtent2D sampleLocationGridSize; 7808 uint32_t sampleLocationsCount; 7809 const VkSampleLocationEXT* pSampleLocations; 7810 } VkSampleLocationsInfoEXT; 7811 7812 typedef struct VkAttachmentSampleLocationsEXT { 7813 uint32_t attachmentIndex; 7814 VkSampleLocationsInfoEXT sampleLocationsInfo; 7815 } VkAttachmentSampleLocationsEXT; 7816 7817 typedef struct VkSubpassSampleLocationsEXT { 7818 uint32_t subpassIndex; 7819 VkSampleLocationsInfoEXT sampleLocationsInfo; 7820 } VkSubpassSampleLocationsEXT; 7821 7822 typedef struct VkRenderPassSampleLocationsBeginInfoEXT { 7823 VkStructureType sType; 7824 const void* pNext; 7825 uint32_t attachmentInitialSampleLocationsCount; 7826 const VkAttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations; 7827 uint32_t postSubpassSampleLocationsCount; 7828 const VkSubpassSampleLocationsEXT* pPostSubpassSampleLocations; 7829 } VkRenderPassSampleLocationsBeginInfoEXT; 7830 7831 typedef struct VkPipelineSampleLocationsStateCreateInfoEXT { 7832 VkStructureType sType; 7833 const void* pNext; 7834 VkBool32 sampleLocationsEnable; 7835 VkSampleLocationsInfoEXT sampleLocationsInfo; 7836 } VkPipelineSampleLocationsStateCreateInfoEXT; 7837 7838 typedef struct VkPhysicalDeviceSampleLocationsPropertiesEXT { 7839 VkStructureType sType; 7840 void* pNext; 7841 VkSampleCountFlags sampleLocationSampleCounts; 7842 VkExtent2D maxSampleLocationGridSize; 7843 float sampleLocationCoordinateRange[2]; 7844 uint32_t sampleLocationSubPixelBits; 7845 VkBool32 variableSampleLocations; 7846 } VkPhysicalDeviceSampleLocationsPropertiesEXT; 7847 7848 typedef struct VkMultisamplePropertiesEXT { 7849 VkStructureType sType; 7850 void* pNext; 7851 VkExtent2D maxSampleLocationGridSize; 7852 } VkMultisamplePropertiesEXT; 7853 7854 7855 typedef void (VKAPI_PTR *PFN_vkCmdSetSampleLocationsEXT)(VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo); 7856 typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)(VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties); 7857 7858 #ifndef VK_NO_PROTOTYPES 7859 VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleLocationsEXT( 7860 VkCommandBuffer commandBuffer, 7861 const VkSampleLocationsInfoEXT* pSampleLocationsInfo); 7862 7863 VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMultisamplePropertiesEXT( 7864 VkPhysicalDevice physicalDevice, 7865 VkSampleCountFlagBits samples, 7866 VkMultisamplePropertiesEXT* pMultisampleProperties); 7867 #endif 7868 7869 #define VK_EXT_blend_operation_advanced 1 7870 #define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2 7871 #define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced" 7872 7873 7874 typedef enum VkBlendOverlapEXT { 7875 VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0, 7876 VK_BLEND_OVERLAP_DISJOINT_EXT = 1, 7877 VK_BLEND_OVERLAP_CONJOINT_EXT = 2, 7878 VK_BLEND_OVERLAP_BEGIN_RANGE_EXT = VK_BLEND_OVERLAP_UNCORRELATED_EXT, 7879 VK_BLEND_OVERLAP_END_RANGE_EXT = VK_BLEND_OVERLAP_CONJOINT_EXT, 7880 VK_BLEND_OVERLAP_RANGE_SIZE_EXT = (VK_BLEND_OVERLAP_CONJOINT_EXT - VK_BLEND_OVERLAP_UNCORRELATED_EXT + 1), 7881 VK_BLEND_OVERLAP_MAX_ENUM_EXT = 0x7FFFFFFF 7882 } VkBlendOverlapEXT; 7883 7884 typedef struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT { 7885 VkStructureType sType; 7886 void* pNext; 7887 VkBool32 advancedBlendCoherentOperations; 7888 } VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT; 7889 7890 typedef struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT { 7891 VkStructureType sType; 7892 void* pNext; 7893 uint32_t advancedBlendMaxColorAttachments; 7894 VkBool32 advancedBlendIndependentBlend; 7895 VkBool32 advancedBlendNonPremultipliedSrcColor; 7896 VkBool32 advancedBlendNonPremultipliedDstColor; 7897 VkBool32 advancedBlendCorrelatedOverlap; 7898 VkBool32 advancedBlendAllOperations; 7899 } VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT; 7900 7901 typedef struct VkPipelineColorBlendAdvancedStateCreateInfoEXT { 7902 VkStructureType sType; 7903 const void* pNext; 7904 VkBool32 srcPremultiplied; 7905 VkBool32 dstPremultiplied; 7906 VkBlendOverlapEXT blendOverlap; 7907 } VkPipelineColorBlendAdvancedStateCreateInfoEXT; 7908 7909 7910 7911 #define VK_NV_fragment_coverage_to_color 1 7912 #define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION 1 7913 #define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME "VK_NV_fragment_coverage_to_color" 7914 7915 typedef VkFlags VkPipelineCoverageToColorStateCreateFlagsNV; 7916 7917 typedef struct VkPipelineCoverageToColorStateCreateInfoNV { 7918 VkStructureType sType; 7919 const void* pNext; 7920 VkPipelineCoverageToColorStateCreateFlagsNV flags; 7921 VkBool32 coverageToColorEnable; 7922 uint32_t coverageToColorLocation; 7923 } VkPipelineCoverageToColorStateCreateInfoNV; 7924 7925 7926 7927 #define VK_NV_framebuffer_mixed_samples 1 7928 #define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION 1 7929 #define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME "VK_NV_framebuffer_mixed_samples" 7930 7931 7932 typedef enum VkCoverageModulationModeNV { 7933 VK_COVERAGE_MODULATION_MODE_NONE_NV = 0, 7934 VK_COVERAGE_MODULATION_MODE_RGB_NV = 1, 7935 VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2, 7936 VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3, 7937 VK_COVERAGE_MODULATION_MODE_BEGIN_RANGE_NV = VK_COVERAGE_MODULATION_MODE_NONE_NV, 7938 VK_COVERAGE_MODULATION_MODE_END_RANGE_NV = VK_COVERAGE_MODULATION_MODE_RGBA_NV, 7939 VK_COVERAGE_MODULATION_MODE_RANGE_SIZE_NV = (VK_COVERAGE_MODULATION_MODE_RGBA_NV - VK_COVERAGE_MODULATION_MODE_NONE_NV + 1), 7940 VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 0x7FFFFFFF 7941 } VkCoverageModulationModeNV; 7942 7943 typedef VkFlags VkPipelineCoverageModulationStateCreateFlagsNV; 7944 7945 typedef struct VkPipelineCoverageModulationStateCreateInfoNV { 7946 VkStructureType sType; 7947 const void* pNext; 7948 VkPipelineCoverageModulationStateCreateFlagsNV flags; 7949 VkCoverageModulationModeNV coverageModulationMode; 7950 VkBool32 coverageModulationTableEnable; 7951 uint32_t coverageModulationTableCount; 7952 const float* pCoverageModulationTable; 7953 } VkPipelineCoverageModulationStateCreateInfoNV; 7954 7955 7956 7957 #define VK_NV_fill_rectangle 1 7958 #define VK_NV_FILL_RECTANGLE_SPEC_VERSION 1 7959 #define VK_NV_FILL_RECTANGLE_EXTENSION_NAME "VK_NV_fill_rectangle" 7960 7961 7962 #define VK_EXT_post_depth_coverage 1 7963 #define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1 7964 #define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage" 7965 7966 7967 #define VK_EXT_image_drm_format_modifier 1 7968 #define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION 1 7969 #define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME "VK_EXT_image_drm_format_modifier" 7970 7971 typedef struct VkDrmFormatModifierPropertiesEXT { 7972 uint64_t drmFormatModifier; 7973 uint32_t drmFormatModifierPlaneCount; 7974 VkFormatFeatureFlags drmFormatModifierTilingFeatures; 7975 } VkDrmFormatModifierPropertiesEXT; 7976 7977 typedef struct VkDrmFormatModifierPropertiesListEXT { 7978 VkStructureType sType; 7979 void* pNext; 7980 uint32_t drmFormatModifierCount; 7981 VkDrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties; 7982 } VkDrmFormatModifierPropertiesListEXT; 7983 7984 typedef struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT { 7985 VkStructureType sType; 7986 const void* pNext; 7987 uint64_t drmFormatModifier; 7988 VkSharingMode sharingMode; 7989 uint32_t queueFamilyIndexCount; 7990 const uint32_t* pQueueFamilyIndices; 7991 } VkPhysicalDeviceImageDrmFormatModifierInfoEXT; 7992 7993 typedef struct VkImageDrmFormatModifierListCreateInfoEXT { 7994 VkStructureType sType; 7995 const void* pNext; 7996 uint32_t drmFormatModifierCount; 7997 const uint64_t* pDrmFormatModifiers; 7998 } VkImageDrmFormatModifierListCreateInfoEXT; 7999 8000 typedef struct VkImageDrmFormatModifierExplicitCreateInfoEXT { 8001 VkStructureType sType; 8002 const void* pNext; 8003 uint64_t drmFormatModifier; 8004 uint32_t drmFormatModifierPlaneCount; 8005 const VkSubresourceLayout* pPlaneLayouts; 8006 } VkImageDrmFormatModifierExplicitCreateInfoEXT; 8007 8008 typedef struct VkImageDrmFormatModifierPropertiesEXT { 8009 VkStructureType sType; 8010 void* pNext; 8011 uint64_t drmFormatModifier; 8012 } VkImageDrmFormatModifierPropertiesEXT; 8013 8014 8015 typedef VkResult (VKAPI_PTR *PFN_vkGetImageDrmFormatModifierPropertiesEXT)(VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties); 8016 8017 #ifndef VK_NO_PROTOTYPES 8018 VKAPI_ATTR VkResult VKAPI_CALL vkGetImageDrmFormatModifierPropertiesEXT( 8019 VkDevice device, 8020 VkImage image, 8021 VkImageDrmFormatModifierPropertiesEXT* pProperties); 8022 #endif 8023 8024 #define VK_EXT_validation_cache 1 8025 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkValidationCacheEXT) 8026 8027 #define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1 8028 #define VK_EXT_VALIDATION_CACHE_EXTENSION_NAME "VK_EXT_validation_cache" 8029 8030 8031 typedef enum VkValidationCacheHeaderVersionEXT { 8032 VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1, 8033 VK_VALIDATION_CACHE_HEADER_VERSION_BEGIN_RANGE_EXT = VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT, 8034 VK_VALIDATION_CACHE_HEADER_VERSION_END_RANGE_EXT = VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT, 8035 VK_VALIDATION_CACHE_HEADER_VERSION_RANGE_SIZE_EXT = (VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT - VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT + 1), 8036 VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF 8037 } VkValidationCacheHeaderVersionEXT; 8038 8039 typedef VkFlags VkValidationCacheCreateFlagsEXT; 8040 8041 typedef struct VkValidationCacheCreateInfoEXT { 8042 VkStructureType sType; 8043 const void* pNext; 8044 VkValidationCacheCreateFlagsEXT flags; 8045 size_t initialDataSize; 8046 const void* pInitialData; 8047 } VkValidationCacheCreateInfoEXT; 8048 8049 typedef struct VkShaderModuleValidationCacheCreateInfoEXT { 8050 VkStructureType sType; 8051 const void* pNext; 8052 VkValidationCacheEXT validationCache; 8053 } VkShaderModuleValidationCacheCreateInfoEXT; 8054 8055 8056 typedef VkResult (VKAPI_PTR *PFN_vkCreateValidationCacheEXT)(VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache); 8057 typedef void (VKAPI_PTR *PFN_vkDestroyValidationCacheEXT)(VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator); 8058 typedef VkResult (VKAPI_PTR *PFN_vkMergeValidationCachesEXT)(VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches); 8059 typedef VkResult (VKAPI_PTR *PFN_vkGetValidationCacheDataEXT)(VkDevice device, VkValidationCacheEXT validationCache, size_t* pDataSize, void* pData); 8060 8061 #ifndef VK_NO_PROTOTYPES 8062 VKAPI_ATTR VkResult VKAPI_CALL vkCreateValidationCacheEXT( 8063 VkDevice device, 8064 const VkValidationCacheCreateInfoEXT* pCreateInfo, 8065 const VkAllocationCallbacks* pAllocator, 8066 VkValidationCacheEXT* pValidationCache); 8067 8068 VKAPI_ATTR void VKAPI_CALL vkDestroyValidationCacheEXT( 8069 VkDevice device, 8070 VkValidationCacheEXT validationCache, 8071 const VkAllocationCallbacks* pAllocator); 8072 8073 VKAPI_ATTR VkResult VKAPI_CALL vkMergeValidationCachesEXT( 8074 VkDevice device, 8075 VkValidationCacheEXT dstCache, 8076 uint32_t srcCacheCount, 8077 const VkValidationCacheEXT* pSrcCaches); 8078 8079 VKAPI_ATTR VkResult VKAPI_CALL vkGetValidationCacheDataEXT( 8080 VkDevice device, 8081 VkValidationCacheEXT validationCache, 8082 size_t* pDataSize, 8083 void* pData); 8084 #endif 8085 8086 #define VK_EXT_descriptor_indexing 1 8087 #define VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION 2 8088 #define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME "VK_EXT_descriptor_indexing" 8089 8090 8091 typedef enum VkDescriptorBindingFlagBitsEXT { 8092 VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT = 0x00000001, 8093 VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT = 0x00000002, 8094 VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT = 0x00000004, 8095 VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT = 0x00000008, 8096 VK_DESCRIPTOR_BINDING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF 8097 } VkDescriptorBindingFlagBitsEXT; 8098 typedef VkFlags VkDescriptorBindingFlagsEXT; 8099 8100 typedef struct VkDescriptorSetLayoutBindingFlagsCreateInfoEXT { 8101 VkStructureType sType; 8102 const void* pNext; 8103 uint32_t bindingCount; 8104 const VkDescriptorBindingFlagsEXT* pBindingFlags; 8105 } VkDescriptorSetLayoutBindingFlagsCreateInfoEXT; 8106 8107 typedef struct VkPhysicalDeviceDescriptorIndexingFeaturesEXT { 8108 VkStructureType sType; 8109 void* pNext; 8110 VkBool32 shaderInputAttachmentArrayDynamicIndexing; 8111 VkBool32 shaderUniformTexelBufferArrayDynamicIndexing; 8112 VkBool32 shaderStorageTexelBufferArrayDynamicIndexing; 8113 VkBool32 shaderUniformBufferArrayNonUniformIndexing; 8114 VkBool32 shaderSampledImageArrayNonUniformIndexing; 8115 VkBool32 shaderStorageBufferArrayNonUniformIndexing; 8116 VkBool32 shaderStorageImageArrayNonUniformIndexing; 8117 VkBool32 shaderInputAttachmentArrayNonUniformIndexing; 8118 VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing; 8119 VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing; 8120 VkBool32 descriptorBindingUniformBufferUpdateAfterBind; 8121 VkBool32 descriptorBindingSampledImageUpdateAfterBind; 8122 VkBool32 descriptorBindingStorageImageUpdateAfterBind; 8123 VkBool32 descriptorBindingStorageBufferUpdateAfterBind; 8124 VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind; 8125 VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind; 8126 VkBool32 descriptorBindingUpdateUnusedWhilePending; 8127 VkBool32 descriptorBindingPartiallyBound; 8128 VkBool32 descriptorBindingVariableDescriptorCount; 8129 VkBool32 runtimeDescriptorArray; 8130 } VkPhysicalDeviceDescriptorIndexingFeaturesEXT; 8131 8132 typedef struct VkPhysicalDeviceDescriptorIndexingPropertiesEXT { 8133 VkStructureType sType; 8134 void* pNext; 8135 uint32_t maxUpdateAfterBindDescriptorsInAllPools; 8136 VkBool32 shaderUniformBufferArrayNonUniformIndexingNative; 8137 VkBool32 shaderSampledImageArrayNonUniformIndexingNative; 8138 VkBool32 shaderStorageBufferArrayNonUniformIndexingNative; 8139 VkBool32 shaderStorageImageArrayNonUniformIndexingNative; 8140 VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative; 8141 VkBool32 robustBufferAccessUpdateAfterBind; 8142 VkBool32 quadDivergentImplicitLod; 8143 uint32_t maxPerStageDescriptorUpdateAfterBindSamplers; 8144 uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers; 8145 uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers; 8146 uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages; 8147 uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages; 8148 uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments; 8149 uint32_t maxPerStageUpdateAfterBindResources; 8150 uint32_t maxDescriptorSetUpdateAfterBindSamplers; 8151 uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers; 8152 uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic; 8153 uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers; 8154 uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic; 8155 uint32_t maxDescriptorSetUpdateAfterBindSampledImages; 8156 uint32_t maxDescriptorSetUpdateAfterBindStorageImages; 8157 uint32_t maxDescriptorSetUpdateAfterBindInputAttachments; 8158 } VkPhysicalDeviceDescriptorIndexingPropertiesEXT; 8159 8160 typedef struct VkDescriptorSetVariableDescriptorCountAllocateInfoEXT { 8161 VkStructureType sType; 8162 const void* pNext; 8163 uint32_t descriptorSetCount; 8164 const uint32_t* pDescriptorCounts; 8165 } VkDescriptorSetVariableDescriptorCountAllocateInfoEXT; 8166 8167 typedef struct VkDescriptorSetVariableDescriptorCountLayoutSupportEXT { 8168 VkStructureType sType; 8169 void* pNext; 8170 uint32_t maxVariableDescriptorCount; 8171 } VkDescriptorSetVariableDescriptorCountLayoutSupportEXT; 8172 8173 8174 8175 #define VK_EXT_shader_viewport_index_layer 1 8176 #define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION 1 8177 #define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME "VK_EXT_shader_viewport_index_layer" 8178 8179 8180 #define VK_NV_shading_rate_image 1 8181 #define VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION 3 8182 #define VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME "VK_NV_shading_rate_image" 8183 8184 8185 typedef enum VkShadingRatePaletteEntryNV { 8186 VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0, 8187 VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1, 8188 VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2, 8189 VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3, 8190 VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4, 8191 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5, 8192 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6, 8193 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7, 8194 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8, 8195 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9, 8196 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10, 8197 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11, 8198 VK_SHADING_RATE_PALETTE_ENTRY_BEGIN_RANGE_NV = VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV, 8199 VK_SHADING_RATE_PALETTE_ENTRY_END_RANGE_NV = VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV, 8200 VK_SHADING_RATE_PALETTE_ENTRY_RANGE_SIZE_NV = (VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV - VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV + 1), 8201 VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 0x7FFFFFFF 8202 } VkShadingRatePaletteEntryNV; 8203 8204 typedef enum VkCoarseSampleOrderTypeNV { 8205 VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0, 8206 VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1, 8207 VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2, 8208 VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3, 8209 VK_COARSE_SAMPLE_ORDER_TYPE_BEGIN_RANGE_NV = VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV, 8210 VK_COARSE_SAMPLE_ORDER_TYPE_END_RANGE_NV = VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV, 8211 VK_COARSE_SAMPLE_ORDER_TYPE_RANGE_SIZE_NV = (VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV - VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV + 1), 8212 VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 0x7FFFFFFF 8213 } VkCoarseSampleOrderTypeNV; 8214 8215 typedef struct VkShadingRatePaletteNV { 8216 uint32_t shadingRatePaletteEntryCount; 8217 const VkShadingRatePaletteEntryNV* pShadingRatePaletteEntries; 8218 } VkShadingRatePaletteNV; 8219 8220 typedef struct VkPipelineViewportShadingRateImageStateCreateInfoNV { 8221 VkStructureType sType; 8222 const void* pNext; 8223 VkBool32 shadingRateImageEnable; 8224 uint32_t viewportCount; 8225 const VkShadingRatePaletteNV* pShadingRatePalettes; 8226 } VkPipelineViewportShadingRateImageStateCreateInfoNV; 8227 8228 typedef struct VkPhysicalDeviceShadingRateImageFeaturesNV { 8229 VkStructureType sType; 8230 void* pNext; 8231 VkBool32 shadingRateImage; 8232 VkBool32 shadingRateCoarseSampleOrder; 8233 } VkPhysicalDeviceShadingRateImageFeaturesNV; 8234 8235 typedef struct VkPhysicalDeviceShadingRateImagePropertiesNV { 8236 VkStructureType sType; 8237 void* pNext; 8238 VkExtent2D shadingRateTexelSize; 8239 uint32_t shadingRatePaletteSize; 8240 uint32_t shadingRateMaxCoarseSamples; 8241 } VkPhysicalDeviceShadingRateImagePropertiesNV; 8242 8243 typedef struct VkCoarseSampleLocationNV { 8244 uint32_t pixelX; 8245 uint32_t pixelY; 8246 uint32_t sample; 8247 } VkCoarseSampleLocationNV; 8248 8249 typedef struct VkCoarseSampleOrderCustomNV { 8250 VkShadingRatePaletteEntryNV shadingRate; 8251 uint32_t sampleCount; 8252 uint32_t sampleLocationCount; 8253 const VkCoarseSampleLocationNV* pSampleLocations; 8254 } VkCoarseSampleOrderCustomNV; 8255 8256 typedef struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV { 8257 VkStructureType sType; 8258 const void* pNext; 8259 VkCoarseSampleOrderTypeNV sampleOrderType; 8260 uint32_t customSampleOrderCount; 8261 const VkCoarseSampleOrderCustomNV* pCustomSampleOrders; 8262 } VkPipelineViewportCoarseSampleOrderStateCreateInfoNV; 8263 8264 8265 typedef void (VKAPI_PTR *PFN_vkCmdBindShadingRateImageNV)(VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout); 8266 typedef void (VKAPI_PTR *PFN_vkCmdSetViewportShadingRatePaletteNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes); 8267 typedef void (VKAPI_PTR *PFN_vkCmdSetCoarseSampleOrderNV)(VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders); 8268 8269 #ifndef VK_NO_PROTOTYPES 8270 VKAPI_ATTR void VKAPI_CALL vkCmdBindShadingRateImageNV( 8271 VkCommandBuffer commandBuffer, 8272 VkImageView imageView, 8273 VkImageLayout imageLayout); 8274 8275 VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportShadingRatePaletteNV( 8276 VkCommandBuffer commandBuffer, 8277 uint32_t firstViewport, 8278 uint32_t viewportCount, 8279 const VkShadingRatePaletteNV* pShadingRatePalettes); 8280 8281 VKAPI_ATTR void VKAPI_CALL vkCmdSetCoarseSampleOrderNV( 8282 VkCommandBuffer commandBuffer, 8283 VkCoarseSampleOrderTypeNV sampleOrderType, 8284 uint32_t customSampleOrderCount, 8285 const VkCoarseSampleOrderCustomNV* pCustomSampleOrders); 8286 #endif 8287 8288 #define VK_NV_ray_tracing 1 8289 VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureNV) 8290 8291 #define VK_NV_RAY_TRACING_SPEC_VERSION 3 8292 #define VK_NV_RAY_TRACING_EXTENSION_NAME "VK_NV_ray_tracing" 8293 #define VK_SHADER_UNUSED_NV (~0U) 8294 8295 8296 typedef enum VkRayTracingShaderGroupTypeNV { 8297 VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = 0, 8298 VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = 1, 8299 VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = 2, 8300 VK_RAY_TRACING_SHADER_GROUP_TYPE_BEGIN_RANGE_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV, 8301 VK_RAY_TRACING_SHADER_GROUP_TYPE_END_RANGE_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV, 8302 VK_RAY_TRACING_SHADER_GROUP_TYPE_RANGE_SIZE_NV = (VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV - VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV + 1), 8303 VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_NV = 0x7FFFFFFF 8304 } VkRayTracingShaderGroupTypeNV; 8305 8306 typedef enum VkGeometryTypeNV { 8307 VK_GEOMETRY_TYPE_TRIANGLES_NV = 0, 8308 VK_GEOMETRY_TYPE_AABBS_NV = 1, 8309 VK_GEOMETRY_TYPE_BEGIN_RANGE_NV = VK_GEOMETRY_TYPE_TRIANGLES_NV, 8310 VK_GEOMETRY_TYPE_END_RANGE_NV = VK_GEOMETRY_TYPE_AABBS_NV, 8311 VK_GEOMETRY_TYPE_RANGE_SIZE_NV = (VK_GEOMETRY_TYPE_AABBS_NV - VK_GEOMETRY_TYPE_TRIANGLES_NV + 1), 8312 VK_GEOMETRY_TYPE_MAX_ENUM_NV = 0x7FFFFFFF 8313 } VkGeometryTypeNV; 8314 8315 typedef enum VkAccelerationStructureTypeNV { 8316 VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = 0, 8317 VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = 1, 8318 VK_ACCELERATION_STRUCTURE_TYPE_BEGIN_RANGE_NV = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV, 8319 VK_ACCELERATION_STRUCTURE_TYPE_END_RANGE_NV = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV, 8320 VK_ACCELERATION_STRUCTURE_TYPE_RANGE_SIZE_NV = (VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV - VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV + 1), 8321 VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF 8322 } VkAccelerationStructureTypeNV; 8323 8324 typedef enum VkCopyAccelerationStructureModeNV { 8325 VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = 0, 8326 VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = 1, 8327 VK_COPY_ACCELERATION_STRUCTURE_MODE_BEGIN_RANGE_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV, 8328 VK_COPY_ACCELERATION_STRUCTURE_MODE_END_RANGE_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV, 8329 VK_COPY_ACCELERATION_STRUCTURE_MODE_RANGE_SIZE_NV = (VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV - VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV + 1), 8330 VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_NV = 0x7FFFFFFF 8331 } VkCopyAccelerationStructureModeNV; 8332 8333 typedef enum VkAccelerationStructureMemoryRequirementsTypeNV { 8334 VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0, 8335 VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1, 8336 VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2, 8337 VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BEGIN_RANGE_NV = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV, 8338 VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_END_RANGE_NV = VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV, 8339 VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_RANGE_SIZE_NV = (VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV - VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV + 1), 8340 VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 0x7FFFFFFF 8341 } VkAccelerationStructureMemoryRequirementsTypeNV; 8342 8343 8344 typedef enum VkGeometryFlagBitsNV { 8345 VK_GEOMETRY_OPAQUE_BIT_NV = 0x00000001, 8346 VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = 0x00000002, 8347 VK_GEOMETRY_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF 8348 } VkGeometryFlagBitsNV; 8349 typedef VkFlags VkGeometryFlagsNV; 8350 8351 typedef enum VkGeometryInstanceFlagBitsNV { 8352 VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = 0x00000001, 8353 VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = 0x00000002, 8354 VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = 0x00000004, 8355 VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = 0x00000008, 8356 VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF 8357 } VkGeometryInstanceFlagBitsNV; 8358 typedef VkFlags VkGeometryInstanceFlagsNV; 8359 8360 typedef enum VkBuildAccelerationStructureFlagBitsNV { 8361 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = 0x00000001, 8362 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = 0x00000002, 8363 VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = 0x00000004, 8364 VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = 0x00000008, 8365 VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = 0x00000010, 8366 VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF 8367 } VkBuildAccelerationStructureFlagBitsNV; 8368 typedef VkFlags VkBuildAccelerationStructureFlagsNV; 8369 8370 typedef struct VkRayTracingShaderGroupCreateInfoNV { 8371 VkStructureType sType; 8372 const void* pNext; 8373 VkRayTracingShaderGroupTypeNV type; 8374 uint32_t generalShader; 8375 uint32_t closestHitShader; 8376 uint32_t anyHitShader; 8377 uint32_t intersectionShader; 8378 } VkRayTracingShaderGroupCreateInfoNV; 8379 8380 typedef struct VkRayTracingPipelineCreateInfoNV { 8381 VkStructureType sType; 8382 const void* pNext; 8383 VkPipelineCreateFlags flags; 8384 uint32_t stageCount; 8385 const VkPipelineShaderStageCreateInfo* pStages; 8386 uint32_t groupCount; 8387 const VkRayTracingShaderGroupCreateInfoNV* pGroups; 8388 uint32_t maxRecursionDepth; 8389 VkPipelineLayout layout; 8390 VkPipeline basePipelineHandle; 8391 int32_t basePipelineIndex; 8392 } VkRayTracingPipelineCreateInfoNV; 8393 8394 typedef struct VkGeometryTrianglesNV { 8395 VkStructureType sType; 8396 const void* pNext; 8397 VkBuffer vertexData; 8398 VkDeviceSize vertexOffset; 8399 uint32_t vertexCount; 8400 VkDeviceSize vertexStride; 8401 VkFormat vertexFormat; 8402 VkBuffer indexData; 8403 VkDeviceSize indexOffset; 8404 uint32_t indexCount; 8405 VkIndexType indexType; 8406 VkBuffer transformData; 8407 VkDeviceSize transformOffset; 8408 } VkGeometryTrianglesNV; 8409 8410 typedef struct VkGeometryAABBNV { 8411 VkStructureType sType; 8412 const void* pNext; 8413 VkBuffer aabbData; 8414 uint32_t numAABBs; 8415 uint32_t stride; 8416 VkDeviceSize offset; 8417 } VkGeometryAABBNV; 8418 8419 typedef struct VkGeometryDataNV { 8420 VkGeometryTrianglesNV triangles; 8421 VkGeometryAABBNV aabbs; 8422 } VkGeometryDataNV; 8423 8424 typedef struct VkGeometryNV { 8425 VkStructureType sType; 8426 const void* pNext; 8427 VkGeometryTypeNV geometryType; 8428 VkGeometryDataNV geometry; 8429 VkGeometryFlagsNV flags; 8430 } VkGeometryNV; 8431 8432 typedef struct VkAccelerationStructureInfoNV { 8433 VkStructureType sType; 8434 const void* pNext; 8435 VkAccelerationStructureTypeNV type; 8436 VkBuildAccelerationStructureFlagsNV flags; 8437 uint32_t instanceCount; 8438 uint32_t geometryCount; 8439 const VkGeometryNV* pGeometries; 8440 } VkAccelerationStructureInfoNV; 8441 8442 typedef struct VkAccelerationStructureCreateInfoNV { 8443 VkStructureType sType; 8444 const void* pNext; 8445 VkDeviceSize compactedSize; 8446 VkAccelerationStructureInfoNV info; 8447 } VkAccelerationStructureCreateInfoNV; 8448 8449 typedef struct VkBindAccelerationStructureMemoryInfoNV { 8450 VkStructureType sType; 8451 const void* pNext; 8452 VkAccelerationStructureNV accelerationStructure; 8453 VkDeviceMemory memory; 8454 VkDeviceSize memoryOffset; 8455 uint32_t deviceIndexCount; 8456 const uint32_t* pDeviceIndices; 8457 } VkBindAccelerationStructureMemoryInfoNV; 8458 8459 typedef struct VkWriteDescriptorSetAccelerationStructureNV { 8460 VkStructureType sType; 8461 const void* pNext; 8462 uint32_t accelerationStructureCount; 8463 const VkAccelerationStructureNV* pAccelerationStructures; 8464 } VkWriteDescriptorSetAccelerationStructureNV; 8465 8466 typedef struct VkAccelerationStructureMemoryRequirementsInfoNV { 8467 VkStructureType sType; 8468 const void* pNext; 8469 VkAccelerationStructureMemoryRequirementsTypeNV type; 8470 VkAccelerationStructureNV accelerationStructure; 8471 } VkAccelerationStructureMemoryRequirementsInfoNV; 8472 8473 typedef struct VkPhysicalDeviceRayTracingPropertiesNV { 8474 VkStructureType sType; 8475 void* pNext; 8476 uint32_t shaderGroupHandleSize; 8477 uint32_t maxRecursionDepth; 8478 uint32_t maxShaderGroupStride; 8479 uint32_t shaderGroupBaseAlignment; 8480 uint64_t maxGeometryCount; 8481 uint64_t maxInstanceCount; 8482 uint64_t maxTriangleCount; 8483 uint32_t maxDescriptorSetAccelerationStructures; 8484 } VkPhysicalDeviceRayTracingPropertiesNV; 8485 8486 8487 typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureNV)(VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNV* pAccelerationStructure); 8488 typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, const VkAllocationCallbacks* pAllocator); 8489 typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureMemoryRequirementsNV)(VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements); 8490 typedef VkResult (VKAPI_PTR *PFN_vkBindAccelerationStructureMemoryNV)(VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoNV* pBindInfos); 8491 typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructureNV)(VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV* pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkBuffer scratch, VkDeviceSize scratchOffset); 8492 typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureNV)(VkCommandBuffer commandBuffer, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkCopyAccelerationStructureModeNV mode); 8493 typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysNV)(VkCommandBuffer commandBuffer, VkBuffer raygenShaderBindingTableBuffer, VkDeviceSize raygenShaderBindingOffset, VkBuffer missShaderBindingTableBuffer, VkDeviceSize missShaderBindingOffset, VkDeviceSize missShaderBindingStride, VkBuffer hitShaderBindingTableBuffer, VkDeviceSize hitShaderBindingOffset, VkDeviceSize hitShaderBindingStride, VkBuffer callableShaderBindingTableBuffer, VkDeviceSize callableShaderBindingOffset, VkDeviceSize callableShaderBindingStride, uint32_t width, uint32_t height, uint32_t depth); 8494 typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesNV)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoNV* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines); 8495 typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupHandlesNV)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData); 8496 typedef VkResult (VKAPI_PTR *PFN_vkGetAccelerationStructureHandleNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, size_t dataSize, void* pData); 8497 typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesNV)(VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureNV* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery); 8498 typedef VkResult (VKAPI_PTR *PFN_vkCompileDeferredNV)(VkDevice device, VkPipeline pipeline, uint32_t shader); 8499 8500 #ifndef VK_NO_PROTOTYPES 8501 VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureNV( 8502 VkDevice device, 8503 const VkAccelerationStructureCreateInfoNV* pCreateInfo, 8504 const VkAllocationCallbacks* pAllocator, 8505 VkAccelerationStructureNV* pAccelerationStructure); 8506 8507 VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureNV( 8508 VkDevice device, 8509 VkAccelerationStructureNV accelerationStructure, 8510 const VkAllocationCallbacks* pAllocator); 8511 8512 VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureMemoryRequirementsNV( 8513 VkDevice device, 8514 const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, 8515 VkMemoryRequirements2KHR* pMemoryRequirements); 8516 8517 VKAPI_ATTR VkResult VKAPI_CALL vkBindAccelerationStructureMemoryNV( 8518 VkDevice device, 8519 uint32_t bindInfoCount, 8520 const VkBindAccelerationStructureMemoryInfoNV* pBindInfos); 8521 8522 VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructureNV( 8523 VkCommandBuffer commandBuffer, 8524 const VkAccelerationStructureInfoNV* pInfo, 8525 VkBuffer instanceData, 8526 VkDeviceSize instanceOffset, 8527 VkBool32 update, 8528 VkAccelerationStructureNV dst, 8529 VkAccelerationStructureNV src, 8530 VkBuffer scratch, 8531 VkDeviceSize scratchOffset); 8532 8533 VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureNV( 8534 VkCommandBuffer commandBuffer, 8535 VkAccelerationStructureNV dst, 8536 VkAccelerationStructureNV src, 8537 VkCopyAccelerationStructureModeNV mode); 8538 8539 VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysNV( 8540 VkCommandBuffer commandBuffer, 8541 VkBuffer raygenShaderBindingTableBuffer, 8542 VkDeviceSize raygenShaderBindingOffset, 8543 VkBuffer missShaderBindingTableBuffer, 8544 VkDeviceSize missShaderBindingOffset, 8545 VkDeviceSize missShaderBindingStride, 8546 VkBuffer hitShaderBindingTableBuffer, 8547 VkDeviceSize hitShaderBindingOffset, 8548 VkDeviceSize hitShaderBindingStride, 8549 VkBuffer callableShaderBindingTableBuffer, 8550 VkDeviceSize callableShaderBindingOffset, 8551 VkDeviceSize callableShaderBindingStride, 8552 uint32_t width, 8553 uint32_t height, 8554 uint32_t depth); 8555 8556 VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesNV( 8557 VkDevice device, 8558 VkPipelineCache pipelineCache, 8559 uint32_t createInfoCount, 8560 const VkRayTracingPipelineCreateInfoNV* pCreateInfos, 8561 const VkAllocationCallbacks* pAllocator, 8562 VkPipeline* pPipelines); 8563 8564 VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesNV( 8565 VkDevice device, 8566 VkPipeline pipeline, 8567 uint32_t firstGroup, 8568 uint32_t groupCount, 8569 size_t dataSize, 8570 void* pData); 8571 8572 VKAPI_ATTR VkResult VKAPI_CALL vkGetAccelerationStructureHandleNV( 8573 VkDevice device, 8574 VkAccelerationStructureNV accelerationStructure, 8575 size_t dataSize, 8576 void* pData); 8577 8578 VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructuresPropertiesNV( 8579 VkCommandBuffer commandBuffer, 8580 uint32_t accelerationStructureCount, 8581 const VkAccelerationStructureNV* pAccelerationStructures, 8582 VkQueryType queryType, 8583 VkQueryPool queryPool, 8584 uint32_t firstQuery); 8585 8586 VKAPI_ATTR VkResult VKAPI_CALL vkCompileDeferredNV( 8587 VkDevice device, 8588 VkPipeline pipeline, 8589 uint32_t shader); 8590 #endif 8591 8592 #define VK_NV_representative_fragment_test 1 8593 #define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION 1 8594 #define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME "VK_NV_representative_fragment_test" 8595 8596 typedef struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV { 8597 VkStructureType sType; 8598 void* pNext; 8599 VkBool32 representativeFragmentTest; 8600 } VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV; 8601 8602 typedef struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV { 8603 VkStructureType sType; 8604 const void* pNext; 8605 VkBool32 representativeFragmentTestEnable; 8606 } VkPipelineRepresentativeFragmentTestStateCreateInfoNV; 8607 8608 8609 8610 #define VK_EXT_filter_cubic 1 8611 #define VK_EXT_FILTER_CUBIC_SPEC_VERSION 1 8612 #define VK_EXT_FILTER_CUBIC_EXTENSION_NAME "VK_EXT_filter_cubic" 8613 8614 typedef struct VkPhysicalDeviceImageViewImageFormatInfoEXT { 8615 VkStructureType sType; 8616 void* pNext; 8617 VkImageViewType imageViewType; 8618 } VkPhysicalDeviceImageViewImageFormatInfoEXT; 8619 8620 typedef struct VkFilterCubicImageViewImageFormatPropertiesEXT { 8621 VkStructureType sType; 8622 void* pNext; 8623 VkBool32 filterCubic; 8624 VkBool32 filterCubicMinmax ; 8625 } VkFilterCubicImageViewImageFormatPropertiesEXT; 8626 8627 8628 8629 #define VK_EXT_global_priority 1 8630 #define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 2 8631 #define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority" 8632 8633 8634 typedef enum VkQueueGlobalPriorityEXT { 8635 VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = 128, 8636 VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = 256, 8637 VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = 512, 8638 VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = 1024, 8639 VK_QUEUE_GLOBAL_PRIORITY_BEGIN_RANGE_EXT = VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT, 8640 VK_QUEUE_GLOBAL_PRIORITY_END_RANGE_EXT = VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT, 8641 VK_QUEUE_GLOBAL_PRIORITY_RANGE_SIZE_EXT = (VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT - VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT + 1), 8642 VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM_EXT = 0x7FFFFFFF 8643 } VkQueueGlobalPriorityEXT; 8644 8645 typedef struct VkDeviceQueueGlobalPriorityCreateInfoEXT { 8646 VkStructureType sType; 8647 const void* pNext; 8648 VkQueueGlobalPriorityEXT globalPriority; 8649 } VkDeviceQueueGlobalPriorityCreateInfoEXT; 8650 8651 8652 8653 #define VK_EXT_external_memory_host 1 8654 #define VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION 1 8655 #define VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME "VK_EXT_external_memory_host" 8656 8657 typedef struct VkImportMemoryHostPointerInfoEXT { 8658 VkStructureType sType; 8659 const void* pNext; 8660 VkExternalMemoryHandleTypeFlagBits handleType; 8661 void* pHostPointer; 8662 } VkImportMemoryHostPointerInfoEXT; 8663 8664 typedef struct VkMemoryHostPointerPropertiesEXT { 8665 VkStructureType sType; 8666 void* pNext; 8667 uint32_t memoryTypeBits; 8668 } VkMemoryHostPointerPropertiesEXT; 8669 8670 typedef struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT { 8671 VkStructureType sType; 8672 void* pNext; 8673 VkDeviceSize minImportedHostPointerAlignment; 8674 } VkPhysicalDeviceExternalMemoryHostPropertiesEXT; 8675 8676 8677 typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryHostPointerPropertiesEXT)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties); 8678 8679 #ifndef VK_NO_PROTOTYPES 8680 VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryHostPointerPropertiesEXT( 8681 VkDevice device, 8682 VkExternalMemoryHandleTypeFlagBits handleType, 8683 const void* pHostPointer, 8684 VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties); 8685 #endif 8686 8687 #define VK_AMD_buffer_marker 1 8688 #define VK_AMD_BUFFER_MARKER_SPEC_VERSION 1 8689 #define VK_AMD_BUFFER_MARKER_EXTENSION_NAME "VK_AMD_buffer_marker" 8690 8691 typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarkerAMD)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker); 8692 8693 #ifndef VK_NO_PROTOTYPES 8694 VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarkerAMD( 8695 VkCommandBuffer commandBuffer, 8696 VkPipelineStageFlagBits pipelineStage, 8697 VkBuffer dstBuffer, 8698 VkDeviceSize dstOffset, 8699 uint32_t marker); 8700 #endif 8701 8702 #define VK_EXT_calibrated_timestamps 1 8703 #define VK_EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION 1 8704 #define VK_EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME "VK_EXT_calibrated_timestamps" 8705 8706 8707 typedef enum VkTimeDomainEXT { 8708 VK_TIME_DOMAIN_DEVICE_EXT = 0, 8709 VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = 1, 8710 VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = 2, 8711 VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = 3, 8712 VK_TIME_DOMAIN_BEGIN_RANGE_EXT = VK_TIME_DOMAIN_DEVICE_EXT, 8713 VK_TIME_DOMAIN_END_RANGE_EXT = VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT, 8714 VK_TIME_DOMAIN_RANGE_SIZE_EXT = (VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT - VK_TIME_DOMAIN_DEVICE_EXT + 1), 8715 VK_TIME_DOMAIN_MAX_ENUM_EXT = 0x7FFFFFFF 8716 } VkTimeDomainEXT; 8717 8718 typedef struct VkCalibratedTimestampInfoEXT { 8719 VkStructureType sType; 8720 const void* pNext; 8721 VkTimeDomainEXT timeDomain; 8722 } VkCalibratedTimestampInfoEXT; 8723 8724 8725 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainEXT* pTimeDomains); 8726 typedef VkResult (VKAPI_PTR *PFN_vkGetCalibratedTimestampsEXT)(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoEXT* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation); 8727 8728 #ifndef VK_NO_PROTOTYPES 8729 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( 8730 VkPhysicalDevice physicalDevice, 8731 uint32_t* pTimeDomainCount, 8732 VkTimeDomainEXT* pTimeDomains); 8733 8734 VKAPI_ATTR VkResult VKAPI_CALL vkGetCalibratedTimestampsEXT( 8735 VkDevice device, 8736 uint32_t timestampCount, 8737 const VkCalibratedTimestampInfoEXT* pTimestampInfos, 8738 uint64_t* pTimestamps, 8739 uint64_t* pMaxDeviation); 8740 #endif 8741 8742 #define VK_AMD_shader_core_properties 1 8743 #define VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION 1 8744 #define VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_AMD_shader_core_properties" 8745 8746 typedef struct VkPhysicalDeviceShaderCorePropertiesAMD { 8747 VkStructureType sType; 8748 void* pNext; 8749 uint32_t shaderEngineCount; 8750 uint32_t shaderArraysPerEngineCount; 8751 uint32_t computeUnitsPerShaderArray; 8752 uint32_t simdPerComputeUnit; 8753 uint32_t wavefrontsPerSimd; 8754 uint32_t wavefrontSize; 8755 uint32_t sgprsPerSimd; 8756 uint32_t minSgprAllocation; 8757 uint32_t maxSgprAllocation; 8758 uint32_t sgprAllocationGranularity; 8759 uint32_t vgprsPerSimd; 8760 uint32_t minVgprAllocation; 8761 uint32_t maxVgprAllocation; 8762 uint32_t vgprAllocationGranularity; 8763 } VkPhysicalDeviceShaderCorePropertiesAMD; 8764 8765 8766 8767 #define VK_AMD_memory_overallocation_behavior 1 8768 #define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_SPEC_VERSION 1 8769 #define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_EXTENSION_NAME "VK_AMD_memory_overallocation_behavior" 8770 8771 8772 typedef enum VkMemoryOverallocationBehaviorAMD { 8773 VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0, 8774 VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1, 8775 VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2, 8776 VK_MEMORY_OVERALLOCATION_BEHAVIOR_BEGIN_RANGE_AMD = VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD, 8777 VK_MEMORY_OVERALLOCATION_BEHAVIOR_END_RANGE_AMD = VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD, 8778 VK_MEMORY_OVERALLOCATION_BEHAVIOR_RANGE_SIZE_AMD = (VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD - VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD + 1), 8779 VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 0x7FFFFFFF 8780 } VkMemoryOverallocationBehaviorAMD; 8781 8782 typedef struct VkDeviceMemoryOverallocationCreateInfoAMD { 8783 VkStructureType sType; 8784 const void* pNext; 8785 VkMemoryOverallocationBehaviorAMD overallocationBehavior; 8786 } VkDeviceMemoryOverallocationCreateInfoAMD; 8787 8788 8789 8790 #define VK_EXT_vertex_attribute_divisor 1 8791 #define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 3 8792 #define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_EXT_vertex_attribute_divisor" 8793 8794 typedef struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT { 8795 VkStructureType sType; 8796 void* pNext; 8797 uint32_t maxVertexAttribDivisor; 8798 } VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT; 8799 8800 typedef struct VkVertexInputBindingDivisorDescriptionEXT { 8801 uint32_t binding; 8802 uint32_t divisor; 8803 } VkVertexInputBindingDivisorDescriptionEXT; 8804 8805 typedef struct VkPipelineVertexInputDivisorStateCreateInfoEXT { 8806 VkStructureType sType; 8807 const void* pNext; 8808 uint32_t vertexBindingDivisorCount; 8809 const VkVertexInputBindingDivisorDescriptionEXT* pVertexBindingDivisors; 8810 } VkPipelineVertexInputDivisorStateCreateInfoEXT; 8811 8812 typedef struct VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT { 8813 VkStructureType sType; 8814 void* pNext; 8815 VkBool32 vertexAttributeInstanceRateDivisor; 8816 VkBool32 vertexAttributeInstanceRateZeroDivisor; 8817 } VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT; 8818 8819 8820 8821 #define VK_NV_shader_subgroup_partitioned 1 8822 #define VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION 1 8823 #define VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME "VK_NV_shader_subgroup_partitioned" 8824 8825 8826 #define VK_NV_compute_shader_derivatives 1 8827 #define VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION 1 8828 #define VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_NV_compute_shader_derivatives" 8829 8830 typedef struct VkPhysicalDeviceComputeShaderDerivativesFeaturesNV { 8831 VkStructureType sType; 8832 void* pNext; 8833 VkBool32 computeDerivativeGroupQuads; 8834 VkBool32 computeDerivativeGroupLinear; 8835 } VkPhysicalDeviceComputeShaderDerivativesFeaturesNV; 8836 8837 8838 8839 #define VK_NV_mesh_shader 1 8840 #define VK_NV_MESH_SHADER_SPEC_VERSION 1 8841 #define VK_NV_MESH_SHADER_EXTENSION_NAME "VK_NV_mesh_shader" 8842 8843 typedef struct VkPhysicalDeviceMeshShaderFeaturesNV { 8844 VkStructureType sType; 8845 void* pNext; 8846 VkBool32 taskShader; 8847 VkBool32 meshShader; 8848 } VkPhysicalDeviceMeshShaderFeaturesNV; 8849 8850 typedef struct VkPhysicalDeviceMeshShaderPropertiesNV { 8851 VkStructureType sType; 8852 void* pNext; 8853 uint32_t maxDrawMeshTasksCount; 8854 uint32_t maxTaskWorkGroupInvocations; 8855 uint32_t maxTaskWorkGroupSize[3]; 8856 uint32_t maxTaskTotalMemorySize; 8857 uint32_t maxTaskOutputCount; 8858 uint32_t maxMeshWorkGroupInvocations; 8859 uint32_t maxMeshWorkGroupSize[3]; 8860 uint32_t maxMeshTotalMemorySize; 8861 uint32_t maxMeshOutputVertices; 8862 uint32_t maxMeshOutputPrimitives; 8863 uint32_t maxMeshMultiviewViewCount; 8864 uint32_t meshOutputPerVertexGranularity; 8865 uint32_t meshOutputPerPrimitiveGranularity; 8866 } VkPhysicalDeviceMeshShaderPropertiesNV; 8867 8868 typedef struct VkDrawMeshTasksIndirectCommandNV { 8869 uint32_t taskCount; 8870 uint32_t firstTask; 8871 } VkDrawMeshTasksIndirectCommandNV; 8872 8873 8874 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksNV)(VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask); 8875 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride); 8876 typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectCountNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride); 8877 8878 #ifndef VK_NO_PROTOTYPES 8879 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksNV( 8880 VkCommandBuffer commandBuffer, 8881 uint32_t taskCount, 8882 uint32_t firstTask); 8883 8884 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectNV( 8885 VkCommandBuffer commandBuffer, 8886 VkBuffer buffer, 8887 VkDeviceSize offset, 8888 uint32_t drawCount, 8889 uint32_t stride); 8890 8891 VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectCountNV( 8892 VkCommandBuffer commandBuffer, 8893 VkBuffer buffer, 8894 VkDeviceSize offset, 8895 VkBuffer countBuffer, 8896 VkDeviceSize countBufferOffset, 8897 uint32_t maxDrawCount, 8898 uint32_t stride); 8899 #endif 8900 8901 #define VK_NV_fragment_shader_barycentric 1 8902 #define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1 8903 #define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_NV_fragment_shader_barycentric" 8904 8905 typedef struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV { 8906 VkStructureType sType; 8907 void* pNext; 8908 VkBool32 fragmentShaderBarycentric; 8909 } VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV; 8910 8911 8912 8913 #define VK_NV_shader_image_footprint 1 8914 #define VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION 1 8915 #define VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME "VK_NV_shader_image_footprint" 8916 8917 typedef struct VkPhysicalDeviceShaderImageFootprintFeaturesNV { 8918 VkStructureType sType; 8919 void* pNext; 8920 VkBool32 imageFootprint; 8921 } VkPhysicalDeviceShaderImageFootprintFeaturesNV; 8922 8923 8924 8925 #define VK_NV_scissor_exclusive 1 8926 #define VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION 1 8927 #define VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME "VK_NV_scissor_exclusive" 8928 8929 typedef struct VkPipelineViewportExclusiveScissorStateCreateInfoNV { 8930 VkStructureType sType; 8931 const void* pNext; 8932 uint32_t exclusiveScissorCount; 8933 const VkRect2D* pExclusiveScissors; 8934 } VkPipelineViewportExclusiveScissorStateCreateInfoNV; 8935 8936 typedef struct VkPhysicalDeviceExclusiveScissorFeaturesNV { 8937 VkStructureType sType; 8938 void* pNext; 8939 VkBool32 exclusiveScissor; 8940 } VkPhysicalDeviceExclusiveScissorFeaturesNV; 8941 8942 8943 typedef void (VKAPI_PTR *PFN_vkCmdSetExclusiveScissorNV)(VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors); 8944 8945 #ifndef VK_NO_PROTOTYPES 8946 VKAPI_ATTR void VKAPI_CALL vkCmdSetExclusiveScissorNV( 8947 VkCommandBuffer commandBuffer, 8948 uint32_t firstExclusiveScissor, 8949 uint32_t exclusiveScissorCount, 8950 const VkRect2D* pExclusiveScissors); 8951 #endif 8952 8953 #define VK_NV_device_diagnostic_checkpoints 1 8954 #define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION 2 8955 #define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME "VK_NV_device_diagnostic_checkpoints" 8956 8957 typedef struct VkQueueFamilyCheckpointPropertiesNV { 8958 VkStructureType sType; 8959 void* pNext; 8960 VkPipelineStageFlags checkpointExecutionStageMask; 8961 } VkQueueFamilyCheckpointPropertiesNV; 8962 8963 typedef struct VkCheckpointDataNV { 8964 VkStructureType sType; 8965 void* pNext; 8966 VkPipelineStageFlagBits stage; 8967 void* pCheckpointMarker; 8968 } VkCheckpointDataNV; 8969 8970 8971 typedef void (VKAPI_PTR *PFN_vkCmdSetCheckpointNV)(VkCommandBuffer commandBuffer, const void* pCheckpointMarker); 8972 typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointDataNV)(VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData); 8973 8974 #ifndef VK_NO_PROTOTYPES 8975 VKAPI_ATTR void VKAPI_CALL vkCmdSetCheckpointNV( 8976 VkCommandBuffer commandBuffer, 8977 const void* pCheckpointMarker); 8978 8979 VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointDataNV( 8980 VkQueue queue, 8981 uint32_t* pCheckpointDataCount, 8982 VkCheckpointDataNV* pCheckpointData); 8983 #endif 8984 8985 #define VK_EXT_pci_bus_info 1 8986 #define VK_EXT_PCI_BUS_INFO_SPEC_VERSION 2 8987 #define VK_EXT_PCI_BUS_INFO_EXTENSION_NAME "VK_EXT_pci_bus_info" 8988 8989 typedef struct VkPhysicalDevicePCIBusInfoPropertiesEXT { 8990 VkStructureType sType; 8991 void* pNext; 8992 uint32_t pciDomain; 8993 uint32_t pciBus; 8994 uint32_t pciDevice; 8995 uint32_t pciFunction; 8996 } VkPhysicalDevicePCIBusInfoPropertiesEXT; 8997 8998 8999 9000 #define VK_EXT_fragment_density_map 1 9001 #define VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION 1 9002 #define VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME "VK_EXT_fragment_density_map" 9003 9004 typedef struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT { 9005 VkStructureType sType; 9006 void* pNext; 9007 VkBool32 fragmentDensityMap; 9008 VkBool32 fragmentDensityMapDynamic; 9009 VkBool32 fragmentDensityMapNonSubsampledImages; 9010 } VkPhysicalDeviceFragmentDensityMapFeaturesEXT; 9011 9012 typedef struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT { 9013 VkStructureType sType; 9014 void* pNext; 9015 VkExtent2D minFragmentDensityTexelSize; 9016 VkExtent2D maxFragmentDensityTexelSize; 9017 VkBool32 fragmentDensityInvocations; 9018 } VkPhysicalDeviceFragmentDensityMapPropertiesEXT; 9019 9020 typedef struct VkRenderPassFragmentDensityMapCreateInfoEXT { 9021 VkStructureType sType; 9022 const void* pNext; 9023 VkAttachmentReference fragmentDensityMapAttachment; 9024 } VkRenderPassFragmentDensityMapCreateInfoEXT; 9025 9026 9027 9028 #define VK_EXT_scalar_block_layout 1 9029 #define VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION 1 9030 #define VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME "VK_EXT_scalar_block_layout" 9031 9032 typedef struct VkPhysicalDeviceScalarBlockLayoutFeaturesEXT { 9033 VkStructureType sType; 9034 void* pNext; 9035 VkBool32 scalarBlockLayout; 9036 } VkPhysicalDeviceScalarBlockLayoutFeaturesEXT; 9037 9038 9039 9040 #define VK_GOOGLE_hlsl_functionality1 1 9041 #define VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION 1 9042 #define VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME "VK_GOOGLE_hlsl_functionality1" 9043 9044 9045 #define VK_GOOGLE_decorate_string 1 9046 #define VK_GOOGLE_DECORATE_STRING_SPEC_VERSION 1 9047 #define VK_GOOGLE_DECORATE_STRING_EXTENSION_NAME "VK_GOOGLE_decorate_string" 9048 9049 9050 #define VK_EXT_memory_budget 1 9051 #define VK_EXT_MEMORY_BUDGET_SPEC_VERSION 1 9052 #define VK_EXT_MEMORY_BUDGET_EXTENSION_NAME "VK_EXT_memory_budget" 9053 9054 typedef struct VkPhysicalDeviceMemoryBudgetPropertiesEXT { 9055 VkStructureType sType; 9056 void* pNext; 9057 VkDeviceSize heapBudget[VK_MAX_MEMORY_HEAPS]; 9058 VkDeviceSize heapUsage[VK_MAX_MEMORY_HEAPS]; 9059 } VkPhysicalDeviceMemoryBudgetPropertiesEXT; 9060 9061 9062 9063 #define VK_EXT_memory_priority 1 9064 #define VK_EXT_MEMORY_PRIORITY_SPEC_VERSION 1 9065 #define VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME "VK_EXT_memory_priority" 9066 9067 typedef struct VkPhysicalDeviceMemoryPriorityFeaturesEXT { 9068 VkStructureType sType; 9069 void* pNext; 9070 VkBool32 memoryPriority; 9071 } VkPhysicalDeviceMemoryPriorityFeaturesEXT; 9072 9073 typedef struct VkMemoryPriorityAllocateInfoEXT { 9074 VkStructureType sType; 9075 const void* pNext; 9076 float priority; 9077 } VkMemoryPriorityAllocateInfoEXT; 9078 9079 9080 9081 #define VK_NV_dedicated_allocation_image_aliasing 1 9082 #define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION 1 9083 #define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME "VK_NV_dedicated_allocation_image_aliasing" 9084 9085 typedef struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV { 9086 VkStructureType sType; 9087 void* pNext; 9088 VkBool32 dedicatedAllocationImageAliasing; 9089 } VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV; 9090 9091 9092 9093 #define VK_EXT_buffer_device_address 1 9094 typedef uint64_t VkDeviceAddress; 9095 9096 #define VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 2 9097 #define VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_EXT_buffer_device_address" 9098 9099 typedef struct VkPhysicalDeviceBufferAddressFeaturesEXT { 9100 VkStructureType sType; 9101 void* pNext; 9102 VkBool32 bufferDeviceAddress; 9103 VkBool32 bufferDeviceAddressCaptureReplay; 9104 VkBool32 bufferDeviceAddressMultiDevice; 9105 } VkPhysicalDeviceBufferAddressFeaturesEXT; 9106 9107 typedef struct VkBufferDeviceAddressInfoEXT { 9108 VkStructureType sType; 9109 const void* pNext; 9110 VkBuffer buffer; 9111 } VkBufferDeviceAddressInfoEXT; 9112 9113 typedef struct VkBufferDeviceAddressCreateInfoEXT { 9114 VkStructureType sType; 9115 const void* pNext; 9116 VkDeviceSize deviceAddress; 9117 } VkBufferDeviceAddressCreateInfoEXT; 9118 9119 9120 typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddressEXT)(VkDevice device, const VkBufferDeviceAddressInfoEXT* pInfo); 9121 9122 #ifndef VK_NO_PROTOTYPES 9123 VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddressEXT( 9124 VkDevice device, 9125 const VkBufferDeviceAddressInfoEXT* pInfo); 9126 #endif 9127 9128 #define VK_EXT_separate_stencil_usage 1 9129 #define VK_EXT_SEPARATE_STENCIL_USAGE_SPEC_VERSION 1 9130 #define VK_EXT_SEPARATE_STENCIL_USAGE_EXTENSION_NAME "VK_EXT_separate_stencil_usage" 9131 9132 typedef struct VkImageStencilUsageCreateInfoEXT { 9133 VkStructureType sType; 9134 const void* pNext; 9135 VkImageUsageFlags stencilUsage; 9136 } VkImageStencilUsageCreateInfoEXT; 9137 9138 9139 9140 #define VK_EXT_validation_features 1 9141 #define VK_EXT_VALIDATION_FEATURES_SPEC_VERSION 1 9142 #define VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME "VK_EXT_validation_features" 9143 9144 9145 typedef enum VkValidationFeatureEnableEXT { 9146 VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0, 9147 VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1, 9148 VK_VALIDATION_FEATURE_ENABLE_BEGIN_RANGE_EXT = VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT, 9149 VK_VALIDATION_FEATURE_ENABLE_END_RANGE_EXT = VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT, 9150 VK_VALIDATION_FEATURE_ENABLE_RANGE_SIZE_EXT = (VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT - VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT + 1), 9151 VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 0x7FFFFFFF 9152 } VkValidationFeatureEnableEXT; 9153 9154 typedef enum VkValidationFeatureDisableEXT { 9155 VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0, 9156 VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1, 9157 VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2, 9158 VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3, 9159 VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4, 9160 VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5, 9161 VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6, 9162 VK_VALIDATION_FEATURE_DISABLE_BEGIN_RANGE_EXT = VK_VALIDATION_FEATURE_DISABLE_ALL_EXT, 9163 VK_VALIDATION_FEATURE_DISABLE_END_RANGE_EXT = VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT, 9164 VK_VALIDATION_FEATURE_DISABLE_RANGE_SIZE_EXT = (VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT - VK_VALIDATION_FEATURE_DISABLE_ALL_EXT + 1), 9165 VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 0x7FFFFFFF 9166 } VkValidationFeatureDisableEXT; 9167 9168 typedef struct VkValidationFeaturesEXT { 9169 VkStructureType sType; 9170 const void* pNext; 9171 uint32_t enabledValidationFeatureCount; 9172 const VkValidationFeatureEnableEXT* pEnabledValidationFeatures; 9173 uint32_t disabledValidationFeatureCount; 9174 const VkValidationFeatureDisableEXT* pDisabledValidationFeatures; 9175 } VkValidationFeaturesEXT; 9176 9177 9178 9179 #define VK_NV_cooperative_matrix 1 9180 #define VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION 1 9181 #define VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_NV_cooperative_matrix" 9182 9183 9184 typedef enum VkComponentTypeNV { 9185 VK_COMPONENT_TYPE_FLOAT16_NV = 0, 9186 VK_COMPONENT_TYPE_FLOAT32_NV = 1, 9187 VK_COMPONENT_TYPE_FLOAT64_NV = 2, 9188 VK_COMPONENT_TYPE_SINT8_NV = 3, 9189 VK_COMPONENT_TYPE_SINT16_NV = 4, 9190 VK_COMPONENT_TYPE_SINT32_NV = 5, 9191 VK_COMPONENT_TYPE_SINT64_NV = 6, 9192 VK_COMPONENT_TYPE_UINT8_NV = 7, 9193 VK_COMPONENT_TYPE_UINT16_NV = 8, 9194 VK_COMPONENT_TYPE_UINT32_NV = 9, 9195 VK_COMPONENT_TYPE_UINT64_NV = 10, 9196 VK_COMPONENT_TYPE_BEGIN_RANGE_NV = VK_COMPONENT_TYPE_FLOAT16_NV, 9197 VK_COMPONENT_TYPE_END_RANGE_NV = VK_COMPONENT_TYPE_UINT64_NV, 9198 VK_COMPONENT_TYPE_RANGE_SIZE_NV = (VK_COMPONENT_TYPE_UINT64_NV - VK_COMPONENT_TYPE_FLOAT16_NV + 1), 9199 VK_COMPONENT_TYPE_MAX_ENUM_NV = 0x7FFFFFFF 9200 } VkComponentTypeNV; 9201 9202 typedef enum VkScopeNV { 9203 VK_SCOPE_DEVICE_NV = 1, 9204 VK_SCOPE_WORKGROUP_NV = 2, 9205 VK_SCOPE_SUBGROUP_NV = 3, 9206 VK_SCOPE_QUEUE_FAMILY_NV = 5, 9207 VK_SCOPE_BEGIN_RANGE_NV = VK_SCOPE_DEVICE_NV, 9208 VK_SCOPE_END_RANGE_NV = VK_SCOPE_QUEUE_FAMILY_NV, 9209 VK_SCOPE_RANGE_SIZE_NV = (VK_SCOPE_QUEUE_FAMILY_NV - VK_SCOPE_DEVICE_NV + 1), 9210 VK_SCOPE_MAX_ENUM_NV = 0x7FFFFFFF 9211 } VkScopeNV; 9212 9213 typedef struct VkCooperativeMatrixPropertiesNV { 9214 VkStructureType sType; 9215 void* pNext; 9216 uint32_t MSize; 9217 uint32_t NSize; 9218 uint32_t KSize; 9219 VkComponentTypeNV AType; 9220 VkComponentTypeNV BType; 9221 VkComponentTypeNV CType; 9222 VkComponentTypeNV DType; 9223 VkScopeNV scope; 9224 } VkCooperativeMatrixPropertiesNV; 9225 9226 typedef struct VkPhysicalDeviceCooperativeMatrixFeaturesNV { 9227 VkStructureType sType; 9228 void* pNext; 9229 VkBool32 cooperativeMatrix; 9230 VkBool32 cooperativeMatrixRobustBufferAccess; 9231 } VkPhysicalDeviceCooperativeMatrixFeaturesNV; 9232 9233 typedef struct VkPhysicalDeviceCooperativeMatrixPropertiesNV { 9234 VkStructureType sType; 9235 void* pNext; 9236 VkShaderStageFlags cooperativeMatrixSupportedStages; 9237 } VkPhysicalDeviceCooperativeMatrixPropertiesNV; 9238 9239 9240 typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties); 9241 9242 #ifndef VK_NO_PROTOTYPES 9243 VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( 9244 VkPhysicalDevice physicalDevice, 9245 uint32_t* pPropertyCount, 9246 VkCooperativeMatrixPropertiesNV* pProperties); 9247 #endif 9248 9249 #define VK_EXT_ycbcr_image_arrays 1 9250 #define VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION 1 9251 #define VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME "VK_EXT_ycbcr_image_arrays" 9252 9253 typedef struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT { 9254 VkStructureType sType; 9255 void* pNext; 9256 VkBool32 ycbcrImageArrays; 9257 } VkPhysicalDeviceYcbcrImageArraysFeaturesEXT; 9258 9259 9260 9261 #ifdef __cplusplus 9262 } 9263 #endif 9264 9265 #endif 9266