vulkan.h (165089B)
1 /* See LICENSE for license details. */ 2 /* NOTE(rnp): mininum subset of the vulkan headers so that we don't 3 * have to deal with them using names that we typedef / #define 4 */ 5 6 #define VK_MAKE_API_VERSION(variant, major, minor, patch) \ 7 ((((uint32_t)(variant)) << 29U) | \ 8 (((uint32_t)(major)) << 22U) | \ 9 (((uint32_t)(minor)) << 12U) | \ 10 ((uint32_t)(patch))) 11 #define VK_API_VERSION_VARIANT(version) (((uint32_t)(version) >> 29U) & 0x00U) 12 #define VK_API_VERSION_MAJOR(version) (((uint32_t)(version) >> 22U) & 0x7FU) 13 #define VK_API_VERSION_MINOR(version) (((uint32_t)(version) >> 12U) & 0x3FFU) 14 #define VK_API_VERSION_PATCH(version) (((uint32_t)(version) >> 0U) & 0xFFFU) 15 16 #define VK_MAX_DESCRIPTION_SIZE 256U 17 #define VK_MAX_EXTENSION_NAME_SIZE 256U 18 #define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE 256U 19 #define VK_UUID_SIZE 16U 20 #define VK_LUID_SIZE 8U 21 #define VK_MAX_MEMORY_TYPES 32U 22 #define VK_MAX_MEMORY_HEAPS 16U 23 24 #define VK_WHOLE_SIZE (~0ULL) 25 26 #define VK_SUBPASS_EXTERNAL (~0U) 27 28 // NOTE: keeps type safety over void * 29 #define VK_HANDLE(kind) struct kind##_T; typedef struct kind##_T *kind; 30 31 typedef uint32_t VkBool32; 32 typedef uint32_t VkFlags; 33 typedef uint64_t VkFlags64; 34 typedef uint32_t VkSampleMask; 35 typedef uint64_t VkDeviceAddress; 36 typedef uint64_t VkDeviceSize; 37 VK_HANDLE(VkBuffer); 38 VK_HANDLE(VkBufferView); 39 VK_HANDLE(VkCommandBuffer); 40 VK_HANDLE(VkCommandPool); 41 VK_HANDLE(VkDescriptorPool); 42 VK_HANDLE(VkDescriptorSet); 43 VK_HANDLE(VkDescriptorSetLayout); 44 VK_HANDLE(VkDevice); 45 VK_HANDLE(VkDeviceMemory); 46 VK_HANDLE(VkFence); 47 VK_HANDLE(VkFramebuffer); 48 VK_HANDLE(VkImage); 49 VK_HANDLE(VkImageView); 50 VK_HANDLE(VkInstance); 51 VK_HANDLE(VkPhysicalDevice); 52 VK_HANDLE(VkPipeline); 53 VK_HANDLE(VkPipelineCache); 54 VK_HANDLE(VkPipelineLayout); 55 VK_HANDLE(VkQueryPool); 56 VK_HANDLE(VkQueue); 57 VK_HANDLE(VkRenderPass); 58 VK_HANDLE(VkSampler); 59 VK_HANDLE(VkSemaphore); 60 VK_HANDLE(VkShaderModule); 61 VK_HANDLE(VkSurfaceKHR); 62 VK_HANDLE(VkSwapchainKHR); 63 64 typedef enum { 65 VK_SUCCESS = 0, 66 VK_TIMEOUT = 2, 67 VK_SUBOPTIMAL_KHR = 1000001003, 68 VK_ERROR_OUT_OF_DATE_KHR = -1000001004, 69 VK_RESULT_MAX_ENUM = 0x7FFFFFFF 70 } VkResult; 71 72 typedef enum { 73 VK_STRUCTURE_TYPE_APPLICATION_INFO = 0, 74 VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1, 75 VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2, 76 VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3, 77 VK_STRUCTURE_TYPE_SUBMIT_INFO = 4, 78 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5, 79 VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6, 80 VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8, 81 VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9, 82 VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11, 83 VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12, 84 VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14, 85 VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15, 86 VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16, 87 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18, 88 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19, 89 VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20, 90 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22, 91 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23, 92 VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24, 93 VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25, 94 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26, 95 VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27, 96 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28, 97 VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29, 98 VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30, 99 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32, 100 VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33, 101 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34, 102 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35, 103 VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37, 104 VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39, 105 VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40, 106 VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42, 107 VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43, 108 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES = 49, 109 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES = 50, 110 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES = 51, 111 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES = 52, 112 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES = 53, 113 VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000, 114 VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001, 115 VK_STRUCTURE_TYPE_RENDERING_INFO = 1000044000, 116 VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO = 1000044001, 117 VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO = 1000044002, 118 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = 1000059000, 119 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001, 120 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = 1000059002, 121 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006, 122 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = 1000060000, 123 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = 1000072000, 124 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = 1000072001, 125 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = 1000072002, 126 VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR = 1000073003, 127 VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR = 1000074002, 128 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = 1000077000, 129 VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR = 1000078003, 130 VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001, 131 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001, 132 VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000128000, 133 VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO = 1000207002, 134 VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO = 1000207003, 135 VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO = 1000207004, 136 VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO = 1000207005, 137 VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO = 1000244001, 138 VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT = 1000247000, 139 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_KHR = 1000286000, 140 VK_STRUCTURE_TYPE_MEMORY_BARRIER_2 = 1000314000, 141 VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2 = 1000314001, 142 VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2 = 1000314002, 143 VK_STRUCTURE_TYPE_DEPENDENCY_INFO = 1000314003, 144 VK_STRUCTURE_TYPE_SUBMIT_INFO_2 = 1000314004, 145 VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO = 1000314005, 146 VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO = 1000314006, 147 VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2 = 1000337000, 148 VK_STRUCTURE_TYPE_BUFFER_COPY_2 = 1000337006, 149 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3 = 1000360000, 150 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR = 1000506000, 151 VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR = 1000506001, 152 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR = 1000558000, 153 VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF, 154 } VkStructureType; 155 156 typedef enum { 157 VK_OBJECT_TYPE_UNKNOWN = 0, 158 VK_OBJECT_TYPE_INSTANCE = 1, 159 VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2, 160 VK_OBJECT_TYPE_DEVICE = 3, 161 VK_OBJECT_TYPE_QUEUE = 4, 162 VK_OBJECT_TYPE_SEMAPHORE = 5, 163 VK_OBJECT_TYPE_COMMAND_BUFFER = 6, 164 VK_OBJECT_TYPE_FENCE = 7, 165 VK_OBJECT_TYPE_DEVICE_MEMORY = 8, 166 VK_OBJECT_TYPE_BUFFER = 9, 167 VK_OBJECT_TYPE_IMAGE = 10, 168 VK_OBJECT_TYPE_EVENT = 11, 169 VK_OBJECT_TYPE_QUERY_POOL = 12, 170 VK_OBJECT_TYPE_BUFFER_VIEW = 13, 171 VK_OBJECT_TYPE_IMAGE_VIEW = 14, 172 VK_OBJECT_TYPE_SHADER_MODULE = 15, 173 VK_OBJECT_TYPE_PIPELINE_CACHE = 16, 174 VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17, 175 VK_OBJECT_TYPE_RENDER_PASS = 18, 176 VK_OBJECT_TYPE_PIPELINE = 19, 177 VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20, 178 VK_OBJECT_TYPE_SAMPLER = 21, 179 VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22, 180 VK_OBJECT_TYPE_DESCRIPTOR_SET = 23, 181 VK_OBJECT_TYPE_FRAMEBUFFER = 24, 182 VK_OBJECT_TYPE_COMMAND_POOL = 25, 183 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000, 184 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000, 185 VK_OBJECT_TYPE_PRIVATE_DATA_SLOT = 1000295000, 186 VK_OBJECT_TYPE_SURFACE_KHR = 1000000000, 187 VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000, 188 VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000, 189 VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001, 190 VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000, 191 VK_OBJECT_TYPE_VIDEO_SESSION_KHR = 1000023000, 192 VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR = 1000023001, 193 VK_OBJECT_TYPE_CU_MODULE_NVX = 1000029000, 194 VK_OBJECT_TYPE_CU_FUNCTION_NVX = 1000029001, 195 VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000, 196 VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000, 197 VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000, 198 VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000, 199 VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL = 1000210000, 200 VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR = 1000268000, 201 VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV = 1000277000, 202 VK_OBJECT_TYPE_CUDA_MODULE_NV = 1000307000, 203 VK_OBJECT_TYPE_CUDA_FUNCTION_NV = 1000307001, 204 VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA = 1000366000, 205 VK_OBJECT_TYPE_MICROMAP_EXT = 1000396000, 206 VK_OBJECT_TYPE_TENSOR_ARM = 1000460000, 207 VK_OBJECT_TYPE_TENSOR_VIEW_ARM = 1000460001, 208 VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV = 1000464000, 209 VK_OBJECT_TYPE_SHADER_EXT = 1000482000, 210 VK_OBJECT_TYPE_PIPELINE_BINARY_KHR = 1000483000, 211 VK_OBJECT_TYPE_DATA_GRAPH_PIPELINE_SESSION_ARM = 1000507000, 212 VK_OBJECT_TYPE_EXTERNAL_COMPUTE_QUEUE_NV = 1000556000, 213 VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_EXT = 1000572000, 214 VK_OBJECT_TYPE_INDIRECT_EXECUTION_SET_EXT = 1000572001, 215 VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF 216 } VkObjectType; 217 218 typedef enum { 219 VK_PHYSICAL_DEVICE_TYPE_OTHER = 0, 220 VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1, 221 VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2, 222 VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3, 223 VK_PHYSICAL_DEVICE_TYPE_CPU = 4, 224 VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF 225 } VkPhysicalDeviceType; 226 227 typedef enum { 228 VK_QUERY_TYPE_OCCLUSION = 0, 229 VK_QUERY_TYPE_PIPELINE_STATISTICS = 1, 230 VK_QUERY_TYPE_TIMESTAMP = 2, 231 VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR = 1000023000, 232 VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004, 233 VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR = 1000116000, 234 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR = 1000150000, 235 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR = 1000150001, 236 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000, 237 VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL = 1000210000, 238 VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR = 1000299000, 239 VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT = 1000328000, 240 VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT = 1000382000, 241 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR = 1000386000, 242 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR = 1000386001, 243 VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT = 1000396000, 244 VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT = 1000396001, 245 VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF 246 } VkQueryType; 247 248 typedef enum { 249 VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0, 250 VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1, 251 VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2, 252 VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3, 253 VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4, 254 VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 0x7FFFFFFF 255 } VkSystemAllocationScope; 256 257 typedef enum { 258 VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0, 259 VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF 260 } VkInternalAllocationType; 261 262 typedef enum { 263 VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR = 0x00000001, 264 VK_INSTANCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 265 } VkInstanceCreateFlagBits; 266 typedef VkFlags VkInstanceCreateFlags; 267 268 typedef enum { 269 VK_QUEUE_GRAPHICS_BIT = 0x00000001, 270 VK_QUEUE_COMPUTE_BIT = 0x00000002, 271 VK_QUEUE_TRANSFER_BIT = 0x00000004, 272 VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008, 273 VK_QUEUE_PROTECTED_BIT = 0x00000010, 274 VK_QUEUE_VIDEO_DECODE_BIT_KHR = 0x00000020, 275 VK_QUEUE_VIDEO_ENCODE_BIT_KHR = 0x00000040, 276 VK_QUEUE_OPTICAL_FLOW_BIT_NV = 0x00000100, 277 VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 278 } VkQueueFlagBits; 279 typedef VkFlags VkQueueFlags; 280 281 typedef enum { 282 VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0x00000001, 283 VK_DEVICE_QUEUE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 284 } VkDeviceQueueCreateFlagBits; 285 typedef VkFlags VkDeviceQueueCreateFlags; 286 287 typedef enum { 288 VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001, 289 VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002, 290 VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004, 291 VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008, 292 VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010, 293 VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020, 294 VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040, 295 VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080, 296 VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100, 297 VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200, 298 VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400, 299 VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800, 300 VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000, 301 VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000, 302 VK_PIPELINE_STAGE_HOST_BIT = 0x00004000, 303 VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000, 304 VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000, 305 VK_PIPELINE_STAGE_NONE = 0, 306 VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000, 307 VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000, 308 VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000, 309 VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR = 0x00200000, 310 VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000, 311 VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00400000, 312 VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT = 0x00080000, 313 VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT = 0x00100000, 314 VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_EXT = 0x00020000, 315 VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 316 } VkPipelineStageFlagBits; 317 typedef VkFlags VkPipelineStageFlags; 318 319 typedef enum { 320 VK_PIPELINE_STAGE_2_NONE = 0ULL, 321 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT = 0x00000001ULL, 322 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT = 0x00000002ULL, 323 VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT = 0x00000004ULL, 324 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT = 0x00000008ULL, 325 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010ULL, 326 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020ULL, 327 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT = 0x00000040ULL, 328 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT = 0x00000080ULL, 329 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT = 0x00000100ULL, 330 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT = 0x00000200ULL, 331 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400ULL, 332 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT = 0x00000800ULL, 333 VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT = 0x00001000ULL, 334 VK_PIPELINE_STAGE_2_TRANSFER_BIT = 0x00001000ULL, 335 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT = 0x00002000ULL, 336 VK_PIPELINE_STAGE_2_HOST_BIT = 0x00004000ULL, 337 VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT = 0x00008000ULL, 338 VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT = 0x00010000ULL, 339 VK_PIPELINE_STAGE_2_COPY_BIT = 0x100000000ULL, 340 VK_PIPELINE_STAGE_2_RESOLVE_BIT = 0x200000000ULL, 341 VK_PIPELINE_STAGE_2_BLIT_BIT = 0x400000000ULL, 342 VK_PIPELINE_STAGE_2_CLEAR_BIT = 0x800000000ULL, 343 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT = 0x1000000000ULL, 344 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT = 0x2000000000ULL, 345 VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT = 0x4000000000ULL, 346 VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR = 0x04000000ULL, 347 VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR = 0x08000000ULL, 348 VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000ULL, 349 VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000ULL, 350 VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV = 0x00020000ULL, 351 VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_EXT = 0x00020000ULL, 352 VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00400000ULL, 353 VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV = 0x00400000ULL, 354 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000ULL, 355 VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR = 0x00200000ULL, 356 VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV = 0x00200000ULL, 357 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 0x02000000ULL, 358 VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000ULL, 359 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV = 0x00080000ULL, 360 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV = 0x00100000ULL, 361 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT = 0x00080000ULL, 362 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT = 0x00100000ULL, 363 VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI = 0x8000000000ULL, 364 VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI = 0x10000000000ULL, 365 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR = 0x10000000ULL, 366 VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT = 0x40000000ULL, 367 VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI = 0x20000000000ULL, 368 VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV = 0x20000000ULL, 369 VK_PIPELINE_STAGE_2_CONVERT_COOPERATIVE_VECTOR_MATRIX_BIT_NV = 0x100000000000ULL, 370 VK_PIPELINE_STAGE_2_DATA_GRAPH_BIT_ARM = 0x40000000000ULL, 371 VK_PIPELINE_STAGE_2_COPY_INDIRECT_BIT_KHR = 0x400000000000ULL, 372 VK_PIPELINE_STAGE_2_MEMORY_DECOMPRESSION_BIT_EXT = 0x200000000000ULL, 373 } VkPipelineStageFlagBits2; 374 typedef VkFlags64 VkPipelineStageFlags2; 375 376 typedef enum { 377 VK_ACCESS_2_NONE = 0ULL, 378 VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT = 0x00000001ULL, 379 VK_ACCESS_2_INDEX_READ_BIT = 0x00000002ULL, 380 VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004ULL, 381 VK_ACCESS_2_UNIFORM_READ_BIT = 0x00000008ULL, 382 VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT = 0x00000010ULL, 383 VK_ACCESS_2_SHADER_READ_BIT = 0x00000020ULL, 384 VK_ACCESS_2_SHADER_WRITE_BIT = 0x00000040ULL, 385 VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT = 0x00000080ULL, 386 VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100ULL, 387 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200ULL, 388 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400ULL, 389 VK_ACCESS_2_TRANSFER_READ_BIT = 0x00000800ULL, 390 VK_ACCESS_2_TRANSFER_WRITE_BIT = 0x00001000ULL, 391 VK_ACCESS_2_HOST_READ_BIT = 0x00002000ULL, 392 VK_ACCESS_2_HOST_WRITE_BIT = 0x00004000ULL, 393 VK_ACCESS_2_MEMORY_READ_BIT = 0x00008000ULL, 394 VK_ACCESS_2_MEMORY_WRITE_BIT = 0x00010000ULL, 395 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT = 0x100000000ULL, 396 VK_ACCESS_2_SHADER_STORAGE_READ_BIT = 0x200000000ULL, 397 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT = 0x400000000ULL, 398 VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR = 0x800000000ULL, 399 VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR = 0x1000000000ULL, 400 VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR = 0x2000000000ULL, 401 VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR = 0x4000000000ULL, 402 VK_ACCESS_2_SHADER_TILE_ATTACHMENT_READ_BIT_QCOM = 0x8000000000000ULL, 403 VK_ACCESS_2_SHADER_TILE_ATTACHMENT_WRITE_BIT_QCOM = 0x10000000000000ULL, 404 VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000ULL, 405 VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000ULL, 406 VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000ULL, 407 VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000ULL, 408 VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV = 0x00020000ULL, 409 VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV = 0x00040000ULL, 410 VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_EXT = 0x00020000ULL, 411 VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_EXT = 0x00040000ULL, 412 VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000ULL, 413 VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000ULL, 414 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000ULL, 415 VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000ULL, 416 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV = 0x00200000ULL, 417 VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV = 0x00400000ULL, 418 VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000ULL, 419 VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000ULL, 420 VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT = 0x20000000000ULL, 421 VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI = 0x8000000000ULL, 422 VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR = 0x10000000000ULL, 423 VK_ACCESS_2_MICROMAP_READ_BIT_EXT = 0x100000000000ULL, 424 VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT = 0x200000000000ULL, 425 VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV = 0x40000000000ULL, 426 VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV = 0x80000000000ULL, 427 VK_ACCESS_2_DATA_GRAPH_READ_BIT_ARM = 0x800000000000ULL, 428 VK_ACCESS_2_DATA_GRAPH_WRITE_BIT_ARM = 0x1000000000000ULL, 429 VK_ACCESS_2_MEMORY_DECOMPRESSION_READ_BIT_EXT = 0x80000000000000ULL, 430 VK_ACCESS_2_MEMORY_DECOMPRESSION_WRITE_BIT_EXT = 0x100000000000000ULL, 431 } VkAccessFlagBits2; 432 typedef VkFlags64 VkAccessFlags2; 433 434 typedef VkFlags VkDeviceCreateFlags; 435 436 typedef enum { 437 VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0, 438 VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1, 439 VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM = 0x7FFFFFFF 440 } VkPointClippingBehavior; 441 442 typedef enum { 443 VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001, 444 VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002, 445 VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004, 446 VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008, 447 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010, 448 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020, 449 VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040, 450 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080, 451 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100, 452 VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200, 453 VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400, 454 VK_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800, 455 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000, 456 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 0x00002000, 457 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 0x00004000, 458 VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 0x00008000, 459 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0x00010000, 460 VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000, 461 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000, 462 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000, 463 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000, 464 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000, 465 VK_FORMAT_FEATURE_DISJOINT_BIT = 0x00400000, 466 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000, 467 VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000, 468 VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR = 0x02000000, 469 VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR = 0x04000000, 470 VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR = 0x10000000, 471 VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0x20000000, 472 VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x40000000, 473 VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 474 } VkFormatFeatureFlagBits; 475 typedef VkFlags VkFormatFeatureFlags; 476 477 478 typedef enum { 479 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT = (1ULL << 0), 480 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT = (1ULL << 1), 481 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT = (1ULL << 2), 482 VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT = (1ULL << 3), 483 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT = (1ULL << 4), 484 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = (1ULL << 5), 485 VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT = (1ULL << 6), 486 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT = (1ULL << 7), 487 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT = (1ULL << 8), 488 VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT = (1ULL << 9), 489 VK_FORMAT_FEATURE_2_BLIT_SRC_BIT = (1ULL << 10), 490 VK_FORMAT_FEATURE_2_BLIT_DST_BIT = (1ULL << 11), 491 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT = (1ULL << 12), 492 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT = (1ULL << 13), 493 VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT = (1ULL << 14), 494 VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT = (1ULL << 15), 495 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT = (1ULL << 16), 496 VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT = (1ULL << 17), 497 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = (1ULL << 18), 498 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = (1ULL << 19), 499 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = (1ULL << 20), 500 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = (1ULL << 21), 501 VK_FORMAT_FEATURE_2_DISJOINT_BIT = (1ULL << 22), 502 VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT = (1ULL << 23), 503 VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT = (1ULL << 24), 504 VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR = (1ULL << 25), 505 VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR = (1ULL << 26), 506 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR = (1ULL << 27), 507 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR = (1ULL << 28), 508 VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = (1ULL << 29), 509 VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = (1ULL << 30), 510 VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT = (1ULL << 31), 511 VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT = (1ULL << 32), 512 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT = (1ULL << 33), 513 VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM = (1ULL << 34), 514 VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM = (1ULL << 35), 515 VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM = (1ULL << 36), 516 VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM = (1ULL << 37), 517 VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV = (1ULL << 38), 518 VK_FORMAT_FEATURE_2_TENSOR_SHADER_BIT_ARM = (1ULL << 39), 519 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV = (1ULL << 40), 520 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV = (1ULL << 41), 521 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV = (1ULL << 42), 522 VK_FORMAT_FEATURE_2_TENSOR_IMAGE_ALIASING_BIT_ARM = (1ULL << 43), 523 524 VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT = (1ULL << 46), 525 526 VK_FORMAT_FEATURE_2_TENSOR_DATA_GRAPH_BIT_ARM = (1ULL << 48), 527 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR = (1ULL << 49), 528 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR = (1ULL << 50), 529 VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_RADIUS_BUFFER_BIT_NV = (1ULL << 51), 530 VK_FORMAT_FEATURE_2_DEPTH_COPY_ON_COMPUTE_QUEUE_BIT_KHR = (1ULL << 52), 531 VK_FORMAT_FEATURE_2_DEPTH_COPY_ON_TRANSFER_QUEUE_BIT_KHR = (1ULL << 53), 532 VK_FORMAT_FEATURE_2_STENCIL_COPY_ON_COMPUTE_QUEUE_BIT_KHR = (1ULL << 54), 533 VK_FORMAT_FEATURE_2_STENCIL_COPY_ON_TRANSFER_QUEUE_BIT_KHR = (1ULL << 55), 534 535 VK_FORMAT_FEATURE_2_COPY_IMAGE_INDIRECT_DST_BIT_KHR = (1ULL << 59), 536 } VkFormatFeatureFlagBits2; 537 typedef VkFlags64 VkFormatFeatureFlags2; 538 539 typedef enum { 540 VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001, 541 VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, 542 VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004, 543 VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008, 544 VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010, 545 VK_IMAGE_CREATE_ALIAS_BIT = 0x00000400, 546 VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 0x00000040, 547 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 0x00000020, 548 VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 0x00000080, 549 VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0x00000100, 550 VK_IMAGE_CREATE_PROTECTED_BIT = 0x00000800, 551 VK_IMAGE_CREATE_DISJOINT_BIT = 0x00000200, 552 VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 0x00002000, 553 VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000, 554 VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 0x00004000, 555 VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00010000, 556 VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT = 0x00040000, 557 VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT = 0x00020000, 558 VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR = 0x00100000, 559 VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_EXT = 0x00008000, 560 VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 561 } VkImageCreateFlagBits; 562 typedef VkFlags VkImageCreateFlags; 563 564 typedef enum { 565 VK_SAMPLE_COUNT_1_BIT = 0x00000001, 566 VK_SAMPLE_COUNT_2_BIT = 0x00000002, 567 VK_SAMPLE_COUNT_4_BIT = 0x00000004, 568 VK_SAMPLE_COUNT_8_BIT = 0x00000008, 569 VK_SAMPLE_COUNT_16_BIT = 0x00000010, 570 VK_SAMPLE_COUNT_32_BIT = 0x00000020, 571 VK_SAMPLE_COUNT_64_BIT = 0x00000040, 572 VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 573 } VkSampleCountFlagBits; 574 typedef VkFlags VkSampleCountFlags; 575 576 typedef enum { 577 VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001, 578 VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002, 579 VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004, 580 VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008, 581 VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010, 582 VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020, 583 VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040, 584 VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080, 585 VK_IMAGE_USAGE_HOST_TRANSFER_BIT = 0x00400000, 586 VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0x00000400, 587 VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0x00000800, 588 VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR = 0x00001000, 589 VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x00000200, 590 VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00000100, 591 VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0x00002000, 592 VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0x00004000, 593 VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR = 0x00008000, 594 VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x00080000, 595 VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI = 0x00040000, 596 VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM = 0x00100000, 597 VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM = 0x00200000, 598 VK_IMAGE_USAGE_TILE_MEMORY_QCOM = 0x08000000, 599 VK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x02000000, 600 VK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR = 0x04000000, 601 VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, 602 VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT = VK_IMAGE_USAGE_HOST_TRANSFER_BIT, 603 VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 604 } VkImageUsageFlagBits; 605 typedef VkFlags VkImageUsageFlags; 606 607 typedef enum { 608 VK_COMPONENT_SWIZZLE_IDENTITY = 0, 609 VK_COMPONENT_SWIZZLE_ZERO = 1, 610 VK_COMPONENT_SWIZZLE_ONE = 2, 611 VK_COMPONENT_SWIZZLE_R = 3, 612 VK_COMPONENT_SWIZZLE_G = 4, 613 VK_COMPONENT_SWIZZLE_B = 5, 614 VK_COMPONENT_SWIZZLE_A = 6, 615 VK_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF 616 } VkComponentSwizzle; 617 618 typedef enum { 619 VK_IMAGE_VIEW_TYPE_1D = 0, 620 VK_IMAGE_VIEW_TYPE_2D = 1, 621 VK_IMAGE_VIEW_TYPE_3D = 2, 622 VK_IMAGE_VIEW_TYPE_CUBE = 3, 623 VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4, 624 VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5, 625 VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6, 626 VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF 627 } VkImageViewType; 628 629 typedef enum VkIndexType { 630 VK_INDEX_TYPE_UINT16 = 0, 631 VK_INDEX_TYPE_UINT32 = 1, 632 VK_INDEX_TYPE_UINT8 = 1000265000, 633 VK_INDEX_TYPE_NONE_KHR = 1000165000, 634 VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF 635 } VkIndexType; 636 637 typedef enum { 638 VK_BLEND_FACTOR_ZERO = 0, 639 VK_BLEND_FACTOR_ONE = 1, 640 VK_BLEND_FACTOR_SRC_COLOR = 2, 641 VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3, 642 VK_BLEND_FACTOR_DST_COLOR = 4, 643 VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5, 644 VK_BLEND_FACTOR_SRC_ALPHA = 6, 645 VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7, 646 VK_BLEND_FACTOR_DST_ALPHA = 8, 647 VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9, 648 VK_BLEND_FACTOR_CONSTANT_COLOR = 10, 649 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11, 650 VK_BLEND_FACTOR_CONSTANT_ALPHA = 12, 651 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13, 652 VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14, 653 VK_BLEND_FACTOR_SRC1_COLOR = 15, 654 VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16, 655 VK_BLEND_FACTOR_SRC1_ALPHA = 17, 656 VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18, 657 VK_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF 658 } VkBlendFactor; 659 660 typedef enum { 661 VK_BLEND_OP_ADD = 0, 662 VK_BLEND_OP_SUBTRACT = 1, 663 VK_BLEND_OP_REVERSE_SUBTRACT = 2, 664 VK_BLEND_OP_MIN = 3, 665 VK_BLEND_OP_MAX = 4, 666 VK_BLEND_OP_ZERO_EXT = 1000148000, 667 VK_BLEND_OP_SRC_EXT = 1000148001, 668 VK_BLEND_OP_DST_EXT = 1000148002, 669 VK_BLEND_OP_SRC_OVER_EXT = 1000148003, 670 VK_BLEND_OP_DST_OVER_EXT = 1000148004, 671 VK_BLEND_OP_SRC_IN_EXT = 1000148005, 672 VK_BLEND_OP_DST_IN_EXT = 1000148006, 673 VK_BLEND_OP_SRC_OUT_EXT = 1000148007, 674 VK_BLEND_OP_DST_OUT_EXT = 1000148008, 675 VK_BLEND_OP_SRC_ATOP_EXT = 1000148009, 676 VK_BLEND_OP_DST_ATOP_EXT = 1000148010, 677 VK_BLEND_OP_XOR_EXT = 1000148011, 678 VK_BLEND_OP_MULTIPLY_EXT = 1000148012, 679 VK_BLEND_OP_SCREEN_EXT = 1000148013, 680 VK_BLEND_OP_OVERLAY_EXT = 1000148014, 681 VK_BLEND_OP_DARKEN_EXT = 1000148015, 682 VK_BLEND_OP_LIGHTEN_EXT = 1000148016, 683 VK_BLEND_OP_COLORDODGE_EXT = 1000148017, 684 VK_BLEND_OP_COLORBURN_EXT = 1000148018, 685 VK_BLEND_OP_HARDLIGHT_EXT = 1000148019, 686 VK_BLEND_OP_SOFTLIGHT_EXT = 1000148020, 687 VK_BLEND_OP_DIFFERENCE_EXT = 1000148021, 688 VK_BLEND_OP_EXCLUSION_EXT = 1000148022, 689 VK_BLEND_OP_INVERT_EXT = 1000148023, 690 VK_BLEND_OP_INVERT_RGB_EXT = 1000148024, 691 VK_BLEND_OP_LINEARDODGE_EXT = 1000148025, 692 VK_BLEND_OP_LINEARBURN_EXT = 1000148026, 693 VK_BLEND_OP_VIVIDLIGHT_EXT = 1000148027, 694 VK_BLEND_OP_LINEARLIGHT_EXT = 1000148028, 695 VK_BLEND_OP_PINLIGHT_EXT = 1000148029, 696 VK_BLEND_OP_HARDMIX_EXT = 1000148030, 697 VK_BLEND_OP_HSL_HUE_EXT = 1000148031, 698 VK_BLEND_OP_HSL_SATURATION_EXT = 1000148032, 699 VK_BLEND_OP_HSL_COLOR_EXT = 1000148033, 700 VK_BLEND_OP_HSL_LUMINOSITY_EXT = 1000148034, 701 VK_BLEND_OP_PLUS_EXT = 1000148035, 702 VK_BLEND_OP_PLUS_CLAMPED_EXT = 1000148036, 703 VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037, 704 VK_BLEND_OP_PLUS_DARKER_EXT = 1000148038, 705 VK_BLEND_OP_MINUS_EXT = 1000148039, 706 VK_BLEND_OP_MINUS_CLAMPED_EXT = 1000148040, 707 VK_BLEND_OP_CONTRAST_EXT = 1000148041, 708 VK_BLEND_OP_INVERT_OVG_EXT = 1000148042, 709 VK_BLEND_OP_RED_EXT = 1000148043, 710 VK_BLEND_OP_GREEN_EXT = 1000148044, 711 VK_BLEND_OP_BLUE_EXT = 1000148045, 712 VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF 713 } VkBlendOp; 714 715 typedef enum { 716 VK_QUERY_POOL_CREATE_RESET_BIT_KHR = 0x00000001, 717 VK_QUERY_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 718 } VkQueryPoolCreateFlagBits; 719 typedef VkFlags VkQueryPoolCreateFlags; 720 721 typedef VkFlags VkSemaphoreCreateFlags; 722 723 typedef enum { 724 VK_SEMAPHORE_WAIT_ANY_BIT = 0x00000001, 725 VK_SEMAPHORE_WAIT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 726 } VkSemaphoreWaitFlagBits; 727 typedef VkFlags VkSemaphoreWaitFlags; 728 729 typedef enum { 730 VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 0x00000001, 731 VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000004, 732 VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = 0x00000002, 733 VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 734 } VkImageViewCreateFlagBits; 735 typedef VkFlags VkImageViewCreateFlags; 736 typedef VkFlags VkShaderModuleCreateFlags; 737 738 typedef enum { 739 VK_COLOR_COMPONENT_R_BIT = 0x00000001, 740 VK_COLOR_COMPONENT_G_BIT = 0x00000002, 741 VK_COLOR_COMPONENT_B_BIT = 0x00000004, 742 VK_COLOR_COMPONENT_A_BIT = 0x00000008, 743 VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 744 } VkColorComponentFlagBits; 745 typedef VkFlags VkColorComponentFlags; 746 747 typedef enum { 748 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001, 749 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002, 750 VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004, 751 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008, 752 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010, 753 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020, 754 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040, 755 VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080, 756 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100, 757 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200, 758 VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400, 759 VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT = 0x00000800, 760 VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT = 0x00001000, 761 VK_QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI = 0x00002000, 762 VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 763 } VkQueryPipelineStatisticFlagBits; 764 typedef VkFlags VkQueryPipelineStatisticFlags; 765 766 typedef enum { 767 VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001, 768 VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002, 769 VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004, 770 VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008, 771 VK_PIPELINE_CREATE_DISPATCH_BASE_BIT = 0x00000010, 772 VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT = 0x00000100, 773 VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT = 0x00000200, 774 VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT = 0x08000000, 775 VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT = 0x40000000, 776 VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = 0x00004000, 777 VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = 0x00008000, 778 VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = 0x00010000, 779 VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = 0x00020000, 780 VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = 0x00001000, 781 VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR = 0x00002000, 782 VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR = 0x00080000, 783 VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV = 0x00000020, 784 VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00400000, 785 VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00200000, 786 VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR = 0x00000040, 787 VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x00000080, 788 VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV = 0x00040000, 789 VK_PIPELINE_CREATE_LIBRARY_BIT_KHR = 0x00000800, 790 VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 0x20000000, 791 VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 0x00800000, 792 VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT = 0x00000400, 793 VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV = 0x00100000, 794 VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x02000000, 795 VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x04000000, 796 VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 0x01000000, 797 VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV = 0x10000000, 798 VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 799 } VkPipelineCreateFlagBits; 800 typedef VkFlags VkPipelineCreateFlags; 801 802 typedef enum { 803 VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001, 804 VK_ACCESS_INDEX_READ_BIT = 0x00000002, 805 VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004, 806 VK_ACCESS_UNIFORM_READ_BIT = 0x00000008, 807 VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010, 808 VK_ACCESS_SHADER_READ_BIT = 0x00000020, 809 VK_ACCESS_SHADER_WRITE_BIT = 0x00000040, 810 VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080, 811 VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100, 812 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200, 813 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400, 814 VK_ACCESS_TRANSFER_READ_BIT = 0x00000800, 815 VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000, 816 VK_ACCESS_HOST_READ_BIT = 0x00002000, 817 VK_ACCESS_HOST_WRITE_BIT = 0x00004000, 818 VK_ACCESS_MEMORY_READ_BIT = 0x00008000, 819 VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000, 820 VK_ACCESS_NONE = 0, 821 VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000, 822 VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000, 823 VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000, 824 VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000, 825 VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000, 826 VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000, 827 VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000, 828 VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000, 829 VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000, 830 VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_EXT = 0x00020000, 831 VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_EXT = 0x00040000, 832 VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 833 } VkAccessFlagBits; 834 typedef VkFlags VkAccessFlags; 835 836 typedef enum { 837 VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001, 838 VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002, 839 VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004, 840 VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008, 841 VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010, 842 VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020, 843 VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040, 844 VK_IMAGE_ASPECT_NONE = 0, 845 VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0x00000080, 846 VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0x00000100, 847 VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0x00000200, 848 VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0x00000400, 849 VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 850 } VkImageAspectFlagBits; 851 typedef VkFlags VkImageAspectFlags; 852 853 typedef enum { 854 VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001, 855 VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002, 856 VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 0x00000004, 857 VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT = 0x00000008, 858 VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF 859 } VkSwapchainCreateFlagBitsKHR; 860 typedef VkFlags VkSwapchainCreateFlagsKHR; 861 862 typedef enum { 863 VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001, 864 VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002, 865 VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004, 866 VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008, 867 VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF 868 } VkCompositeAlphaFlagBitsKHR; 869 typedef VkFlags VkCompositeAlphaFlagsKHR; 870 typedef VkFlags VkSurfaceTransformFlagsKHR; 871 872 typedef enum { 873 VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001, 874 VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002, 875 VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004, 876 VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008, 877 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010, 878 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020, 879 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040, 880 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080, 881 VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100, 882 VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF 883 } VkSurfaceTransformFlagBitsKHR; 884 885 typedef enum { 886 VK_PRESENT_MODE_IMMEDIATE_KHR = 0, 887 VK_PRESENT_MODE_MAILBOX_KHR = 1, 888 VK_PRESENT_MODE_FIFO_KHR = 2, 889 VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3, 890 VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000, 891 VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001, 892 VK_PRESENT_MODE_FIFO_LATEST_READY_EXT = 1000361000, 893 VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF 894 } VkPresentModeKHR; 895 896 typedef enum { 897 VK_FORMAT_UNDEFINED = 0, 898 VK_FORMAT_R4G4_UNORM_PACK8 = 1, 899 VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2, 900 VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3, 901 VK_FORMAT_R5G6B5_UNORM_PACK16 = 4, 902 VK_FORMAT_B5G6R5_UNORM_PACK16 = 5, 903 VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6, 904 VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7, 905 VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8, 906 VK_FORMAT_R8_UNORM = 9, 907 VK_FORMAT_R8_SNORM = 10, 908 VK_FORMAT_R8_USCALED = 11, 909 VK_FORMAT_R8_SSCALED = 12, 910 VK_FORMAT_R8_UINT = 13, 911 VK_FORMAT_R8_SINT = 14, 912 VK_FORMAT_R8_SRGB = 15, 913 VK_FORMAT_R8G8_UNORM = 16, 914 VK_FORMAT_R8G8_SNORM = 17, 915 VK_FORMAT_R8G8_USCALED = 18, 916 VK_FORMAT_R8G8_SSCALED = 19, 917 VK_FORMAT_R8G8_UINT = 20, 918 VK_FORMAT_R8G8_SINT = 21, 919 VK_FORMAT_R8G8_SRGB = 22, 920 VK_FORMAT_R8G8B8_UNORM = 23, 921 VK_FORMAT_R8G8B8_SNORM = 24, 922 VK_FORMAT_R8G8B8_USCALED = 25, 923 VK_FORMAT_R8G8B8_SSCALED = 26, 924 VK_FORMAT_R8G8B8_UINT = 27, 925 VK_FORMAT_R8G8B8_SINT = 28, 926 VK_FORMAT_R8G8B8_SRGB = 29, 927 VK_FORMAT_B8G8R8_UNORM = 30, 928 VK_FORMAT_B8G8R8_SNORM = 31, 929 VK_FORMAT_B8G8R8_USCALED = 32, 930 VK_FORMAT_B8G8R8_SSCALED = 33, 931 VK_FORMAT_B8G8R8_UINT = 34, 932 VK_FORMAT_B8G8R8_SINT = 35, 933 VK_FORMAT_B8G8R8_SRGB = 36, 934 VK_FORMAT_R8G8B8A8_UNORM = 37, 935 VK_FORMAT_R8G8B8A8_SNORM = 38, 936 VK_FORMAT_R8G8B8A8_USCALED = 39, 937 VK_FORMAT_R8G8B8A8_SSCALED = 40, 938 VK_FORMAT_R8G8B8A8_UINT = 41, 939 VK_FORMAT_R8G8B8A8_SINT = 42, 940 VK_FORMAT_R8G8B8A8_SRGB = 43, 941 VK_FORMAT_B8G8R8A8_UNORM = 44, 942 VK_FORMAT_B8G8R8A8_SNORM = 45, 943 VK_FORMAT_B8G8R8A8_USCALED = 46, 944 VK_FORMAT_B8G8R8A8_SSCALED = 47, 945 VK_FORMAT_B8G8R8A8_UINT = 48, 946 VK_FORMAT_B8G8R8A8_SINT = 49, 947 VK_FORMAT_B8G8R8A8_SRGB = 50, 948 VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51, 949 VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52, 950 VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53, 951 VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54, 952 VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55, 953 VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56, 954 VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57, 955 VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58, 956 VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59, 957 VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60, 958 VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61, 959 VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62, 960 VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63, 961 VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64, 962 VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65, 963 VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66, 964 VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67, 965 VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68, 966 VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69, 967 VK_FORMAT_R16_UNORM = 70, 968 VK_FORMAT_R16_SNORM = 71, 969 VK_FORMAT_R16_USCALED = 72, 970 VK_FORMAT_R16_SSCALED = 73, 971 VK_FORMAT_R16_UINT = 74, 972 VK_FORMAT_R16_SINT = 75, 973 VK_FORMAT_R16_SFLOAT = 76, 974 VK_FORMAT_R16G16_UNORM = 77, 975 VK_FORMAT_R16G16_SNORM = 78, 976 VK_FORMAT_R16G16_USCALED = 79, 977 VK_FORMAT_R16G16_SSCALED = 80, 978 VK_FORMAT_R16G16_UINT = 81, 979 VK_FORMAT_R16G16_SINT = 82, 980 VK_FORMAT_R16G16_SFLOAT = 83, 981 VK_FORMAT_R16G16B16_UNORM = 84, 982 VK_FORMAT_R16G16B16_SNORM = 85, 983 VK_FORMAT_R16G16B16_USCALED = 86, 984 VK_FORMAT_R16G16B16_SSCALED = 87, 985 VK_FORMAT_R16G16B16_UINT = 88, 986 VK_FORMAT_R16G16B16_SINT = 89, 987 VK_FORMAT_R16G16B16_SFLOAT = 90, 988 VK_FORMAT_R16G16B16A16_UNORM = 91, 989 VK_FORMAT_R16G16B16A16_SNORM = 92, 990 VK_FORMAT_R16G16B16A16_USCALED = 93, 991 VK_FORMAT_R16G16B16A16_SSCALED = 94, 992 VK_FORMAT_R16G16B16A16_UINT = 95, 993 VK_FORMAT_R16G16B16A16_SINT = 96, 994 VK_FORMAT_R16G16B16A16_SFLOAT = 97, 995 VK_FORMAT_R32_UINT = 98, 996 VK_FORMAT_R32_SINT = 99, 997 VK_FORMAT_R32_SFLOAT = 100, 998 VK_FORMAT_R32G32_UINT = 101, 999 VK_FORMAT_R32G32_SINT = 102, 1000 VK_FORMAT_R32G32_SFLOAT = 103, 1001 VK_FORMAT_R32G32B32_UINT = 104, 1002 VK_FORMAT_R32G32B32_SINT = 105, 1003 VK_FORMAT_R32G32B32_SFLOAT = 106, 1004 VK_FORMAT_R32G32B32A32_UINT = 107, 1005 VK_FORMAT_R32G32B32A32_SINT = 108, 1006 VK_FORMAT_R32G32B32A32_SFLOAT = 109, 1007 VK_FORMAT_R64_UINT = 110, 1008 VK_FORMAT_R64_SINT = 111, 1009 VK_FORMAT_R64_SFLOAT = 112, 1010 VK_FORMAT_R64G64_UINT = 113, 1011 VK_FORMAT_R64G64_SINT = 114, 1012 VK_FORMAT_R64G64_SFLOAT = 115, 1013 VK_FORMAT_R64G64B64_UINT = 116, 1014 VK_FORMAT_R64G64B64_SINT = 117, 1015 VK_FORMAT_R64G64B64_SFLOAT = 118, 1016 VK_FORMAT_R64G64B64A64_UINT = 119, 1017 VK_FORMAT_R64G64B64A64_SINT = 120, 1018 VK_FORMAT_R64G64B64A64_SFLOAT = 121, 1019 VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122, 1020 VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123, 1021 VK_FORMAT_D16_UNORM = 124, 1022 VK_FORMAT_X8_D24_UNORM_PACK32 = 125, 1023 VK_FORMAT_D32_SFLOAT = 126, 1024 VK_FORMAT_S8_UINT = 127, 1025 VK_FORMAT_D16_UNORM_S8_UINT = 128, 1026 VK_FORMAT_D24_UNORM_S8_UINT = 129, 1027 VK_FORMAT_D32_SFLOAT_S8_UINT = 130, 1028 VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131, 1029 VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132, 1030 VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133, 1031 VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134, 1032 VK_FORMAT_BC2_UNORM_BLOCK = 135, 1033 VK_FORMAT_BC2_SRGB_BLOCK = 136, 1034 VK_FORMAT_BC3_UNORM_BLOCK = 137, 1035 VK_FORMAT_BC3_SRGB_BLOCK = 138, 1036 VK_FORMAT_BC4_UNORM_BLOCK = 139, 1037 VK_FORMAT_BC4_SNORM_BLOCK = 140, 1038 VK_FORMAT_BC5_UNORM_BLOCK = 141, 1039 VK_FORMAT_BC5_SNORM_BLOCK = 142, 1040 VK_FORMAT_BC6H_UFLOAT_BLOCK = 143, 1041 VK_FORMAT_BC6H_SFLOAT_BLOCK = 144, 1042 VK_FORMAT_BC7_UNORM_BLOCK = 145, 1043 VK_FORMAT_BC7_SRGB_BLOCK = 146, 1044 VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147, 1045 VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148, 1046 VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149, 1047 VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150, 1048 VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151, 1049 VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152, 1050 VK_FORMAT_EAC_R11_UNORM_BLOCK = 153, 1051 VK_FORMAT_EAC_R11_SNORM_BLOCK = 154, 1052 VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155, 1053 VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156, 1054 VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157, 1055 VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158, 1056 VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159, 1057 VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160, 1058 VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161, 1059 VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162, 1060 VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163, 1061 VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164, 1062 VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165, 1063 VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166, 1064 VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167, 1065 VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168, 1066 VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169, 1067 VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170, 1068 VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171, 1069 VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172, 1070 VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173, 1071 VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174, 1072 VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175, 1073 VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176, 1074 VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177, 1075 VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178, 1076 VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179, 1077 VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180, 1078 VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181, 1079 VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182, 1080 VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183, 1081 VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184, 1082 VK_FORMAT_G8B8G8R8_422_UNORM = 1000156000, 1083 VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001, 1084 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002, 1085 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003, 1086 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004, 1087 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005, 1088 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006, 1089 VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007, 1090 VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008, 1091 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009, 1092 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010, 1093 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011, 1094 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012, 1095 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013, 1096 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014, 1097 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015, 1098 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016, 1099 VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017, 1100 VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018, 1101 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019, 1102 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020, 1103 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021, 1104 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022, 1105 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023, 1106 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024, 1107 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025, 1108 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026, 1109 VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027, 1110 VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028, 1111 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029, 1112 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030, 1113 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031, 1114 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032, 1115 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033, 1116 VK_FORMAT_G8_B8R8_2PLANE_444_UNORM = 1000330000, 1117 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16 = 1000330001, 1118 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16 = 1000330002, 1119 VK_FORMAT_G16_B16R16_2PLANE_444_UNORM = 1000330003, 1120 VK_FORMAT_A4R4G4B4_UNORM_PACK16 = 1000340000, 1121 VK_FORMAT_A4B4G4R4_UNORM_PACK16 = 1000340001, 1122 VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK = 1000066000, 1123 VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK = 1000066001, 1124 VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK = 1000066002, 1125 VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK = 1000066003, 1126 VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK = 1000066004, 1127 VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK = 1000066005, 1128 VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK = 1000066006, 1129 VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK = 1000066007, 1130 VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK = 1000066008, 1131 VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK = 1000066009, 1132 VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK = 1000066010, 1133 VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK = 1000066011, 1134 VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK = 1000066012, 1135 VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK = 1000066013, 1136 VK_FORMAT_A1B5G5R5_UNORM_PACK16 = 1000470000, 1137 VK_FORMAT_A8_UNORM = 1000470001, 1138 VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000, 1139 VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001, 1140 VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002, 1141 VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003, 1142 VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004, 1143 VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005, 1144 VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006, 1145 VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007, 1146 VK_FORMAT_R16G16_SFIXED5_NV = 1000464000, 1147 VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK, 1148 VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK, 1149 VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK, 1150 VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK, 1151 VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK, 1152 VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK, 1153 VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK, 1154 VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK, 1155 VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK, 1156 VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK, 1157 VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK, 1158 VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK, 1159 VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK, 1160 VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK, 1161 VK_FORMAT_G8B8G8R8_422_UNORM_KHR = VK_FORMAT_G8B8G8R8_422_UNORM, 1162 VK_FORMAT_B8G8R8G8_422_UNORM_KHR = VK_FORMAT_B8G8R8G8_422_UNORM, 1163 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM, 1164 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM, 1165 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM, 1166 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM, 1167 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM, 1168 VK_FORMAT_R10X6_UNORM_PACK16_KHR = VK_FORMAT_R10X6_UNORM_PACK16, 1169 VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR = VK_FORMAT_R10X6G10X6_UNORM_2PACK16, 1170 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16, 1171 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16, 1172 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16, 1173 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16, 1174 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16, 1175 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16, 1176 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16, 1177 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16, 1178 VK_FORMAT_R12X4_UNORM_PACK16_KHR = VK_FORMAT_R12X4_UNORM_PACK16, 1179 VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR = VK_FORMAT_R12X4G12X4_UNORM_2PACK16, 1180 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16, 1181 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16, 1182 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16, 1183 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16, 1184 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16, 1185 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16, 1186 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16, 1187 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16, 1188 VK_FORMAT_G16B16G16R16_422_UNORM_KHR = VK_FORMAT_G16B16G16R16_422_UNORM, 1189 VK_FORMAT_B16G16R16G16_422_UNORM_KHR = VK_FORMAT_B16G16R16G16_422_UNORM, 1190 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM, 1191 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM, 1192 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM, 1193 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM, 1194 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM, 1195 VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT = VK_FORMAT_G8_B8R8_2PLANE_444_UNORM, 1196 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16, 1197 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16, 1198 VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT = VK_FORMAT_G16_B16R16_2PLANE_444_UNORM, 1199 VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT = VK_FORMAT_A4R4G4B4_UNORM_PACK16, 1200 VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT = VK_FORMAT_A4B4G4R4_UNORM_PACK16, 1201 VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR = VK_FORMAT_A1B5G5R5_UNORM_PACK16, 1202 VK_FORMAT_A8_UNORM_KHR = VK_FORMAT_A8_UNORM, 1203 VK_FORMAT_MAX_ENUM = 0x7FFFFFFF 1204 } VkFormat; 1205 1206 typedef enum { 1207 VK_IMAGE_TILING_OPTIMAL = 0, 1208 VK_IMAGE_TILING_LINEAR = 1, 1209 VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT = 1000158000, 1210 VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF 1211 } VkImageTiling; 1212 1213 typedef enum { 1214 VK_IMAGE_TYPE_1D = 0, 1215 VK_IMAGE_TYPE_2D = 1, 1216 VK_IMAGE_TYPE_3D = 2, 1217 VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF 1218 } VkImageType; 1219 1220 typedef enum { 1221 VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0, 1222 VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001, 1223 VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002, 1224 VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT = 1000104003, 1225 VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004, 1226 VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005, 1227 VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006, 1228 VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007, 1229 VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008, 1230 // VK_COLOR_SPACE_DOLBYVISION_EXT is deprecated, but no reason was given in the API XML 1231 VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009, 1232 VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010, 1233 VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011, 1234 VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012, 1235 VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013, 1236 VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014, 1237 VK_COLOR_SPACE_DISPLAY_NATIVE_AMD = 1000213000, 1238 VK_COLOR_SPACE_MAX_ENUM_KHR = 0x7FFFFFFF 1239 } VkColorSpaceKHR; 1240 1241 typedef enum { 1242 VK_SHARING_MODE_EXCLUSIVE = 0, 1243 VK_SHARING_MODE_CONCURRENT = 1, 1244 VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF 1245 } VkSharingMode; 1246 1247 typedef enum { 1248 VK_QUERY_RESULT_64_BIT = 0x00000001, 1249 VK_QUERY_RESULT_WAIT_BIT = 0x00000002, 1250 VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004, 1251 VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008, 1252 VK_QUERY_RESULT_WITH_STATUS_BIT_KHR = 0x00000010, 1253 VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1254 } VkQueryResultFlagBits; 1255 typedef VkFlags VkQueryResultFlags; 1256 1257 typedef enum { 1258 VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001, 1259 VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002, 1260 VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004, 1261 VK_BUFFER_CREATE_PROTECTED_BIT = 0x00000008, 1262 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0x00000010, 1263 VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000020, 1264 VK_BUFFER_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR = 0x00000040, 1265 VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1266 } VkBufferCreateFlagBits; 1267 typedef VkFlags VkBufferCreateFlags; 1268 1269 typedef enum { 1270 VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001, 1271 VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002, 1272 VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004, 1273 VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008, 1274 VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010, 1275 VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020, 1276 VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040, 1277 VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080, 1278 VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100, 1279 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = 0x00020000, 1280 VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0x00002000, 1281 VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0x00004000, 1282 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800, 1283 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000, 1284 VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200, 1285 VK_BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX = 0x02000000, 1286 VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 0x00080000, 1287 VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 0x00100000, 1288 VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR = 0x00000400, 1289 VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0x00008000, 1290 VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0x00010000, 1291 VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 0x00200000, 1292 VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00400000, 1293 VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 0x04000000, 1294 VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 0x00800000, 1295 VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT = 0x01000000, 1296 VK_BUFFER_USAGE_TILE_MEMORY_BIT_QCOM = 0x08000000, 1297 VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1298 } VkBufferUsageFlagBits; 1299 typedef VkFlags VkBufferUsageFlags; 1300 typedef VkFlags VkBufferViewCreateFlags; 1301 1302 typedef enum { 1303 VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT = 0x00000001, 1304 VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT = 0x00000002, 1305 VK_PIPELINE_SHADER_STAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1306 } VkPipelineShaderStageCreateFlagBits; 1307 typedef VkFlags VkPipelineShaderStageCreateFlags; 1308 1309 typedef enum { 1310 VK_SHADER_STAGE_VERTEX_BIT = 0x00000001, 1311 VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002, 1312 VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004, 1313 VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008, 1314 VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010, 1315 VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020, 1316 VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F, 1317 VK_SHADER_STAGE_ALL = 0x7FFFFFFF, 1318 VK_SHADER_STAGE_RAYGEN_BIT_KHR = 0x00000100, 1319 VK_SHADER_STAGE_ANY_HIT_BIT_KHR = 0x00000200, 1320 VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR = 0x00000400, 1321 VK_SHADER_STAGE_MISS_BIT_KHR = 0x00000800, 1322 VK_SHADER_STAGE_INTERSECTION_BIT_KHR = 0x00001000, 1323 VK_SHADER_STAGE_CALLABLE_BIT_KHR = 0x00002000, 1324 VK_SHADER_STAGE_TASK_BIT_EXT = 0x00000040, 1325 VK_SHADER_STAGE_MESH_BIT_EXT = 0x00000080, 1326 VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI = 0x00004000, 1327 VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI = 0x00080000, 1328 VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1329 } VkShaderStageFlagBits; 1330 typedef VkFlags VkShaderStageFlags; 1331 1332 typedef enum { 1333 VK_COMPARE_OP_NEVER = 0, 1334 VK_COMPARE_OP_LESS = 1, 1335 VK_COMPARE_OP_EQUAL = 2, 1336 VK_COMPARE_OP_LESS_OR_EQUAL = 3, 1337 VK_COMPARE_OP_GREATER = 4, 1338 VK_COMPARE_OP_NOT_EQUAL = 5, 1339 VK_COMPARE_OP_GREATER_OR_EQUAL = 6, 1340 VK_COMPARE_OP_ALWAYS = 7, 1341 VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF 1342 } VkCompareOp; 1343 1344 typedef enum { 1345 VK_DYNAMIC_STATE_VIEWPORT = 0, 1346 VK_DYNAMIC_STATE_SCISSOR = 1, 1347 VK_DYNAMIC_STATE_LINE_WIDTH = 2, 1348 VK_DYNAMIC_STATE_DEPTH_BIAS = 3, 1349 VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4, 1350 VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5, 1351 VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6, 1352 VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7, 1353 VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8, 1354 VK_DYNAMIC_STATE_CULL_MODE = 1000267000, 1355 VK_DYNAMIC_STATE_FRONT_FACE = 1000267001, 1356 VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY = 1000267002, 1357 VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT = 1000267003, 1358 VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT = 1000267004, 1359 VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE = 1000267005, 1360 VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE = 1000267006, 1361 VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE = 1000267007, 1362 VK_DYNAMIC_STATE_DEPTH_COMPARE_OP = 1000267008, 1363 VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE = 1000267009, 1364 VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE = 1000267010, 1365 VK_DYNAMIC_STATE_STENCIL_OP = 1000267011, 1366 VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE = 1000377001, 1367 VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE = 1000377002, 1368 VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE = 1000377004, 1369 VK_DYNAMIC_STATE_LINE_STIPPLE = 1000259000, 1370 VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000, 1371 VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000, 1372 VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT = 1000099001, 1373 VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT = 1000099002, 1374 VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000, 1375 VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR = 1000347000, 1376 VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV = 1000164004, 1377 VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = 1000164006, 1378 VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV = 1000205000, 1379 VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = 1000205001, 1380 VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR = 1000226000, 1381 VK_DYNAMIC_STATE_VERTEX_INPUT_EXT = 1000352000, 1382 VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT = 1000377000, 1383 VK_DYNAMIC_STATE_LOGIC_OP_EXT = 1000377003, 1384 VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT = 1000381000, 1385 VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT = 1000455003, 1386 VK_DYNAMIC_STATE_POLYGON_MODE_EXT = 1000455004, 1387 VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT = 1000455005, 1388 VK_DYNAMIC_STATE_SAMPLE_MASK_EXT = 1000455006, 1389 VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT = 1000455007, 1390 VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT = 1000455008, 1391 VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT = 1000455009, 1392 VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT = 1000455010, 1393 VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT = 1000455011, 1394 VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT = 1000455012, 1395 VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT = 1000455002, 1396 VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT = 1000455013, 1397 VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT = 1000455014, 1398 VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT = 1000455015, 1399 VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT = 1000455016, 1400 VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT = 1000455017, 1401 VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT = 1000455018, 1402 VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT = 1000455019, 1403 VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT = 1000455020, 1404 VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT = 1000455021, 1405 VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT = 1000455022, 1406 VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV = 1000455023, 1407 VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV = 1000455024, 1408 VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV = 1000455025, 1409 VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV = 1000455026, 1410 VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV = 1000455027, 1411 VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV = 1000455028, 1412 VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV = 1000455029, 1413 VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV = 1000455030, 1414 VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV = 1000455031, 1415 VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV = 1000455032, 1416 VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT = 1000524000, 1417 VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT = 1000582000, 1418 VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF 1419 } VkDynamicState; 1420 1421 typedef enum VkFrontFace { 1422 VK_FRONT_FACE_COUNTER_CLOCKWISE = 0, 1423 VK_FRONT_FACE_CLOCKWISE = 1, 1424 VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF 1425 } VkFrontFace; 1426 1427 typedef enum { 1428 VK_VERTEX_INPUT_RATE_VERTEX = 0, 1429 VK_VERTEX_INPUT_RATE_INSTANCE = 1, 1430 VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF 1431 } VkVertexInputRate; 1432 1433 typedef enum { 1434 VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0, 1435 VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1, 1436 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2, 1437 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3, 1438 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4, 1439 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5, 1440 VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6, 1441 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7, 1442 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8, 1443 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9, 1444 VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10, 1445 VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF 1446 } VkPrimitiveTopology; 1447 1448 typedef enum { 1449 VK_POLYGON_MODE_FILL = 0, 1450 VK_POLYGON_MODE_LINE = 1, 1451 VK_POLYGON_MODE_POINT = 2, 1452 VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000, 1453 VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF 1454 } VkPolygonMode; 1455 1456 typedef enum { 1457 VK_STENCIL_OP_KEEP = 0, 1458 VK_STENCIL_OP_ZERO = 1, 1459 VK_STENCIL_OP_REPLACE = 2, 1460 VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3, 1461 VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4, 1462 VK_STENCIL_OP_INVERT = 5, 1463 VK_STENCIL_OP_INCREMENT_AND_WRAP = 6, 1464 VK_STENCIL_OP_DECREMENT_AND_WRAP = 7, 1465 VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF 1466 } VkStencilOp; 1467 1468 typedef enum VkLogicOp { 1469 VK_LOGIC_OP_CLEAR = 0, 1470 VK_LOGIC_OP_AND = 1, 1471 VK_LOGIC_OP_AND_REVERSE = 2, 1472 VK_LOGIC_OP_COPY = 3, 1473 VK_LOGIC_OP_AND_INVERTED = 4, 1474 VK_LOGIC_OP_NO_OP = 5, 1475 VK_LOGIC_OP_XOR = 6, 1476 VK_LOGIC_OP_OR = 7, 1477 VK_LOGIC_OP_NOR = 8, 1478 VK_LOGIC_OP_EQUIVALENT = 9, 1479 VK_LOGIC_OP_INVERT = 10, 1480 VK_LOGIC_OP_OR_REVERSE = 11, 1481 VK_LOGIC_OP_COPY_INVERTED = 12, 1482 VK_LOGIC_OP_OR_INVERTED = 13, 1483 VK_LOGIC_OP_NAND = 14, 1484 VK_LOGIC_OP_SET = 15, 1485 VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF 1486 } VkLogicOp; 1487 1488 typedef enum { 1489 VK_CULL_MODE_NONE = 0, 1490 VK_CULL_MODE_FRONT_BIT = 0x00000001, 1491 VK_CULL_MODE_BACK_BIT = 0x00000002, 1492 VK_CULL_MODE_FRONT_AND_BACK = 0x00000003, 1493 VK_CULL_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1494 } VkCullModeFlagBits; 1495 typedef VkFlags VkCullModeFlags; 1496 1497 typedef enum { 1498 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 0x00000001, 1499 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 0x00000002, 1500 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1501 } VkPipelineDepthStencilStateCreateFlagBits; 1502 typedef VkFlags VkPipelineDepthStencilStateCreateFlags; 1503 1504 1505 typedef enum { 1506 VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT = 0x00000001, 1507 VK_PIPELINE_COLOR_BLEND_STATE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1508 } VkPipelineColorBlendStateCreateFlagBits; 1509 typedef VkFlags VkPipelineColorBlendStateCreateFlags; 1510 typedef VkFlags VkPipelineDynamicStateCreateFlags; 1511 1512 typedef enum { 1513 VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT = 0x00000002, 1514 VK_PIPELINE_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1515 } VkPipelineLayoutCreateFlagBits; 1516 typedef VkFlags VkPipelineLayoutCreateFlags; 1517 1518 typedef VkFlags VkPipelineDynamicStateCreateFlags; 1519 typedef VkFlags VkPipelineVertexInputStateCreateFlags; 1520 typedef VkFlags VkPipelineInputAssemblyStateCreateFlags; 1521 typedef VkFlags VkPipelineTessellationStateCreateFlags; 1522 typedef VkFlags VkPipelineViewportStateCreateFlags; 1523 typedef VkFlags VkPipelineRasterizationStateCreateFlags; 1524 typedef VkFlags VkPipelineMultisampleStateCreateFlags; 1525 1526 typedef enum { 1527 VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001, 1528 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 0x00000002, 1529 VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT = 0x00000004, 1530 VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV = 0x00000008, 1531 VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV = 0x00000010, 1532 VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1533 } VkDescriptorPoolCreateFlagBits; 1534 typedef VkFlags VkDescriptorPoolCreateFlags; 1535 1536 typedef enum { 1537 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT = 0x00000001, 1538 VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = 0x00000002, 1539 VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT = 0x00000004, 1540 VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00000010, 1541 VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT = 0x00000020, 1542 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PER_STAGE_BIT_NV = 0x00000040, 1543 VK_DESCRIPTOR_SET_LAYOUT_CREATE_INDIRECT_BINDABLE_BIT_NV = 0x00000080, 1544 VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1545 } VkDescriptorSetLayoutCreateFlagBits; 1546 typedef VkFlags VkDescriptorSetLayoutCreateFlags; 1547 1548 typedef enum { 1549 VK_DESCRIPTOR_TYPE_SAMPLER = 0, 1550 VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1, 1551 VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2, 1552 VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3, 1553 VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4, 1554 VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5, 1555 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6, 1556 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7, 1557 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8, 1558 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9, 1559 VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10, 1560 VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK = 1000138000, 1561 VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000, 1562 VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000, 1563 VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM = 1000440000, 1564 VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM = 1000440001, 1565 VK_DESCRIPTOR_TYPE_TENSOR_ARM = 1000460000, 1566 VK_DESCRIPTOR_TYPE_MUTABLE_EXT = 1000351000, 1567 VK_DESCRIPTOR_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_NV = 1000570000, 1568 VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF 1569 } VkDescriptorType; 1570 1571 typedef enum { 1572 VK_ATTACHMENT_LOAD_OP_LOAD = 0, 1573 VK_ATTACHMENT_LOAD_OP_CLEAR = 1, 1574 VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2, 1575 VK_ATTACHMENT_LOAD_OP_NONE = 1000400000, 1576 VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF 1577 } VkAttachmentLoadOp; 1578 1579 typedef enum { 1580 VK_ATTACHMENT_STORE_OP_STORE = 0, 1581 VK_ATTACHMENT_STORE_OP_DONT_CARE = 1, 1582 VK_ATTACHMENT_STORE_OP_NONE = 1000301000, 1583 VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF 1584 } VkAttachmentStoreOp; 1585 1586 typedef enum { 1587 VK_PIPELINE_BIND_POINT_GRAPHICS = 0, 1588 VK_PIPELINE_BIND_POINT_COMPUTE = 1, 1589 VK_PIPELINE_BIND_POINT_EXECUTION_GRAPH_AMDX = 1000134000, 1590 VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR = 1000165000, 1591 VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI = 1000369003, 1592 VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF 1593 } VkPipelineBindPoint; 1594 1595 typedef enum { 1596 VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0, 1597 VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1, 1598 VK_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF 1599 } VkCommandBufferLevel; 1600 1601 typedef enum { 1602 VK_IMAGE_LAYOUT_UNDEFINED = 0, 1603 VK_IMAGE_LAYOUT_GENERAL = 1, 1604 VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2, 1605 VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3, 1606 VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4, 1607 VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5, 1608 VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6, 1609 VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7, 1610 VK_IMAGE_LAYOUT_PREINITIALIZED = 8, 1611 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000, 1612 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001, 1613 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL = 1000241000, 1614 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL = 1000241001, 1615 VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL = 1000241002, 1616 VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL = 1000241003, 1617 VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL = 1000314000, 1618 VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL = 1000314001, 1619 VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ = 1000232000, 1620 VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002, 1621 VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR = 1000024000, 1622 VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR = 1000024001, 1623 VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR = 1000024002, 1624 VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000, 1625 VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000, 1626 VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR = 1000164003, 1627 VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR = 1000299000, 1628 VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR = 1000299001, 1629 VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR = 1000299002, 1630 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT = 1000339000, 1631 VK_IMAGE_LAYOUT_VIDEO_ENCODE_QUANTIZATION_MAP_KHR = 1000553000, 1632 VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF 1633 } VkImageLayout; 1634 1635 typedef enum { 1636 VK_DEPENDENCY_BY_REGION_BIT = 0x00000001, 1637 VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004, 1638 VK_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002, 1639 VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT = 0x00000008, 1640 VK_DEPENDENCY_QUEUE_FAMILY_OWNERSHIP_TRANSFER_USE_ALL_STAGES_BIT_KHR = 0x00000020, 1641 VK_DEPENDENCY_ASYMMETRIC_EVENT_BIT_KHR = 0x00000040, 1642 VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1643 } VkDependencyFlagBits; 1644 typedef VkFlags VkDependencyFlags; 1645 1646 typedef enum { 1647 VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT = 0x00000001, 1648 VK_FRAMEBUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1649 } VkFramebufferCreateFlagBits; 1650 typedef VkFlags VkFramebufferCreateFlags; 1651 1652 typedef enum { 1653 VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001, 1654 VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002, 1655 VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 0x00000004, 1656 VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1657 } VkCommandPoolCreateFlagBits; 1658 typedef VkFlags VkCommandPoolCreateFlags; 1659 1660 typedef enum { 1661 VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001, 1662 VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002, 1663 VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004, 1664 VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1665 } VkCommandBufferUsageFlagBits; 1666 typedef VkFlags VkCommandBufferUsageFlags; 1667 1668 typedef enum { 1669 VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001, 1670 VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1671 } VkQueryControlFlagBits; 1672 typedef VkFlags VkQueryControlFlags; 1673 1674 typedef enum { 1675 VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001, 1676 VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1677 } VkCommandBufferResetFlagBits; 1678 typedef VkFlags VkCommandBufferResetFlags; 1679 1680 typedef enum { 1681 VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001, 1682 VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002, 1683 VK_MEMORY_HEAP_TILE_MEMORY_BIT_QCOM = 0x00000008, 1684 VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1685 } VkMemoryHeapFlagBits; 1686 typedef VkFlags VkMemoryHeapFlags; 1687 1688 typedef enum { 1689 VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001, 1690 VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002, 1691 VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004, 1692 VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008, 1693 VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010, 1694 VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020, 1695 VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD = 0x00000040, 1696 VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD = 0x00000080, 1697 VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV = 0x00000100, 1698 VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1699 } VkMemoryPropertyFlagBits; 1700 typedef VkFlags VkMemoryPropertyFlags; 1701 1702 typedef enum { 1703 VK_MEMORY_MAP_PLACED_BIT_EXT = 0x00000001, 1704 VK_MEMORY_MAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1705 } VkMemoryMapFlagBits; 1706 typedef VkFlags VkMemoryMapFlags; 1707 1708 typedef enum { 1709 VK_SUBGROUP_FEATURE_BASIC_BIT = 0x00000001, 1710 VK_SUBGROUP_FEATURE_VOTE_BIT = 0x00000002, 1711 VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 0x00000004, 1712 VK_SUBGROUP_FEATURE_BALLOT_BIT = 0x00000008, 1713 VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 0x00000010, 1714 VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 0x00000020, 1715 VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0x00000040, 1716 VK_SUBGROUP_FEATURE_QUAD_BIT = 0x00000080, 1717 VK_SUBGROUP_FEATURE_ROTATE_BIT = 0x00000200, 1718 VK_SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT = 0x00000400, 1719 VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = 0x00000100, 1720 VK_SUBGROUP_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1721 } VkSubgroupFeatureFlagBits; 1722 typedef VkFlags VkSubgroupFeatureFlags; 1723 1724 typedef enum { 1725 VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 0x00000001, 1726 VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT = 0x00000002, 1727 VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0x00000004, 1728 VK_MEMORY_ALLOCATE_ZERO_INITIALIZE_BIT_EXT = 0x00000008, 1729 VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1730 } VkMemoryAllocateFlagBits; 1731 typedef VkFlags VkMemoryAllocateFlags; 1732 1733 typedef enum { 1734 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001, 1735 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002, 1736 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004, 1737 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 0x00000008, 1738 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 0x00000010, 1739 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 0x00000020, 1740 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0x00000040, 1741 VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 0x00000200, 1742 VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0x00000400, 1743 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080, 1744 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100, 1745 VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA = 0x00000800, 1746 VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV = 0x00001000, 1747 VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX = 0x00004000, 1748 VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLBUFFER_BIT_EXT = 0x00010000, 1749 VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLTEXTURE_BIT_EXT = 0x00020000, 1750 VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLHEAP_BIT_EXT = 0x00040000, 1751 VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF, 1752 } VkExternalMemoryHandleTypeFlagBits; 1753 typedef VkFlags VkExternalMemoryHandleTypeFlags; 1754 1755 typedef enum { 1756 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001, 1757 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002, 1758 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004, 1759 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0x00000008, 1760 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000010, 1761 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA = 0x00000080, 1762 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF, 1763 } VkExternalSemaphoreHandleTypeFlagBits; 1764 typedef VkFlags VkExternalSemaphoreHandleTypeFlags; 1765 1766 typedef enum { 1767 VK_SEMAPHORE_TYPE_BINARY = 0, 1768 VK_SEMAPHORE_TYPE_TIMELINE = 1, 1769 VK_SEMAPHORE_TYPE_MAX_ENUM = 0x7FFFFFFF 1770 } VkSemaphoreType; 1771 1772 typedef enum { 1773 VK_RESOLVE_MODE_NONE = 0, 1774 VK_RESOLVE_MODE_SAMPLE_ZERO_BIT = 0x00000001, 1775 VK_RESOLVE_MODE_AVERAGE_BIT = 0x00000002, 1776 VK_RESOLVE_MODE_MIN_BIT = 0x00000004, 1777 VK_RESOLVE_MODE_MAX_BIT = 0x00000008, 1778 VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID = 0x00000010, 1779 VK_RESOLVE_MODE_CUSTOM_BIT_EXT = 0x00000020, 1780 VK_RESOLVE_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1781 } VkResolveModeFlagBits; 1782 typedef VkFlags VkResolveModeFlags; 1783 1784 typedef enum { 1785 VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT = 0x00000001, 1786 VK_RENDERING_SUSPENDING_BIT = 0x00000002, 1787 VK_RENDERING_RESUMING_BIT = 0x00000004, 1788 VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x00000008, 1789 VK_RENDERING_CONTENTS_INLINE_BIT_KHR = 0x00000010, 1790 VK_RENDERING_PER_LAYER_FRAGMENT_DENSITY_BIT_VALVE = 0x00000020, 1791 VK_RENDERING_FRAGMENT_REGION_BIT_EXT = 0x00000040, 1792 VK_RENDERING_CUSTOM_RESOLVE_BIT_EXT = 0x00000080, 1793 VK_RENDERING_LOCAL_READ_CONCURRENT_ACCESS_CONTROL_BIT_KHR = 0x00000100, 1794 VK_RENDERING_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1795 } VkRenderingFlagBits; 1796 typedef VkFlags VkRenderingFlags; 1797 1798 typedef enum { 1799 VK_SUBMIT_PROTECTED_BIT = 0x00000001, 1800 VK_SUBMIT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1801 } VkSubmitFlagBits; 1802 typedef VkFlags VkSubmitFlags; 1803 1804 typedef struct { 1805 uint32_t width; 1806 uint32_t height; 1807 } VkExtent2D; 1808 1809 typedef struct { 1810 uint32_t width; 1811 uint32_t height; 1812 uint32_t depth; 1813 } VkExtent3D; 1814 1815 typedef struct { 1816 int32_t x; 1817 int32_t y; 1818 } VkOffset2D; 1819 1820 typedef struct { 1821 VkOffset2D offset; 1822 VkExtent2D extent; 1823 } VkRect2D; 1824 1825 typedef struct { 1826 float x; 1827 float y; 1828 float width; 1829 float height; 1830 float minDepth; 1831 float maxDepth; 1832 } VkViewport; 1833 1834 typedef struct { 1835 char extensionName[VK_MAX_EXTENSION_NAME_SIZE]; 1836 uint32_t specVersion; 1837 } VkExtensionProperties; 1838 1839 typedef struct { 1840 char layerName[VK_MAX_EXTENSION_NAME_SIZE]; 1841 uint32_t specVersion; 1842 uint32_t implementationVersion; 1843 char description[VK_MAX_DESCRIPTION_SIZE]; 1844 } VkLayerProperties; 1845 1846 typedef struct { 1847 VkStructureType sType; 1848 const void * pNext; 1849 const char * pApplicationName; 1850 uint32_t applicationVersion; 1851 const char * pEngineName; 1852 uint32_t engineVersion; 1853 uint32_t apiVersion; 1854 } VkApplicationInfo; 1855 1856 typedef struct { 1857 VkFormatFeatureFlags linearTilingFeatures; 1858 VkFormatFeatureFlags optimalTilingFeatures; 1859 VkFormatFeatureFlags bufferFeatures; 1860 } VkFormatProperties; 1861 1862 typedef struct { 1863 VkStructureType sType; 1864 void * pNext; 1865 VkFormatProperties formatProperties; 1866 } VkFormatProperties2; 1867 1868 typedef struct { 1869 VkStructureType sType; 1870 void * pNext; 1871 VkFormatFeatureFlags2 linearTilingFeatures; 1872 VkFormatFeatureFlags2 optimalTilingFeatures; 1873 VkFormatFeatureFlags2 bufferFeatures; 1874 } VkFormatProperties3; 1875 1876 typedef struct { 1877 VkStructureType sType; 1878 const void * pNext; 1879 VkInstanceCreateFlags flags; 1880 const VkApplicationInfo * pApplicationInfo; 1881 uint32_t enabledLayerCount; 1882 const char * const * ppEnabledLayerNames; 1883 uint32_t enabledExtensionCount; 1884 const char * const * ppEnabledExtensionNames; 1885 } VkInstanceCreateInfo; 1886 1887 typedef struct { 1888 uint32_t maxImageDimension1D; 1889 uint32_t maxImageDimension2D; 1890 uint32_t maxImageDimension3D; 1891 uint32_t maxImageDimensionCube; 1892 uint32_t maxImageArrayLayers; 1893 uint32_t maxTexelBufferElements; 1894 uint32_t maxUniformBufferRange; 1895 uint32_t maxStorageBufferRange; 1896 uint32_t maxPushConstantsSize; 1897 uint32_t maxMemoryAllocationCount; 1898 uint32_t maxSamplerAllocationCount; 1899 VkDeviceSize bufferImageGranularity; 1900 VkDeviceSize sparseAddressSpaceSize; 1901 uint32_t maxBoundDescriptorSets; 1902 uint32_t maxPerStageDescriptorSamplers; 1903 uint32_t maxPerStageDescriptorUniformBuffers; 1904 uint32_t maxPerStageDescriptorStorageBuffers; 1905 uint32_t maxPerStageDescriptorSampledImages; 1906 uint32_t maxPerStageDescriptorStorageImages; 1907 uint32_t maxPerStageDescriptorInputAttachments; 1908 uint32_t maxPerStageResources; 1909 uint32_t maxDescriptorSetSamplers; 1910 uint32_t maxDescriptorSetUniformBuffers; 1911 uint32_t maxDescriptorSetUniformBuffersDynamic; 1912 uint32_t maxDescriptorSetStorageBuffers; 1913 uint32_t maxDescriptorSetStorageBuffersDynamic; 1914 uint32_t maxDescriptorSetSampledImages; 1915 uint32_t maxDescriptorSetStorageImages; 1916 uint32_t maxDescriptorSetInputAttachments; 1917 uint32_t maxVertexInputAttributes; 1918 uint32_t maxVertexInputBindings; 1919 uint32_t maxVertexInputAttributeOffset; 1920 uint32_t maxVertexInputBindingStride; 1921 uint32_t maxVertexOutputComponents; 1922 uint32_t maxTessellationGenerationLevel; 1923 uint32_t maxTessellationPatchSize; 1924 uint32_t maxTessellationControlPerVertexInputComponents; 1925 uint32_t maxTessellationControlPerVertexOutputComponents; 1926 uint32_t maxTessellationControlPerPatchOutputComponents; 1927 uint32_t maxTessellationControlTotalOutputComponents; 1928 uint32_t maxTessellationEvaluationInputComponents; 1929 uint32_t maxTessellationEvaluationOutputComponents; 1930 uint32_t maxGeometryShaderInvocations; 1931 uint32_t maxGeometryInputComponents; 1932 uint32_t maxGeometryOutputComponents; 1933 uint32_t maxGeometryOutputVertices; 1934 uint32_t maxGeometryTotalOutputComponents; 1935 uint32_t maxFragmentInputComponents; 1936 uint32_t maxFragmentOutputAttachments; 1937 uint32_t maxFragmentDualSrcAttachments; 1938 uint32_t maxFragmentCombinedOutputResources; 1939 uint32_t maxComputeSharedMemorySize; 1940 uint32_t maxComputeWorkGroupCount[3]; 1941 uint32_t maxComputeWorkGroupInvocations; 1942 uint32_t maxComputeWorkGroupSize[3]; 1943 uint32_t subPixelPrecisionBits; 1944 uint32_t subTexelPrecisionBits; 1945 uint32_t mipmapPrecisionBits; 1946 uint32_t maxDrawIndexedIndexValue; 1947 uint32_t maxDrawIndirectCount; 1948 float maxSamplerLodBias; 1949 float maxSamplerAnisotropy; 1950 uint32_t maxViewports; 1951 uint32_t maxViewportDimensions[2]; 1952 float viewportBoundsRange[2]; 1953 uint32_t viewportSubPixelBits; 1954 size_t minMemoryMapAlignment; 1955 VkDeviceSize minTexelBufferOffsetAlignment; 1956 VkDeviceSize minUniformBufferOffsetAlignment; 1957 VkDeviceSize minStorageBufferOffsetAlignment; 1958 int32_t minTexelOffset; 1959 uint32_t maxTexelOffset; 1960 int32_t minTexelGatherOffset; 1961 uint32_t maxTexelGatherOffset; 1962 float minInterpolationOffset; 1963 float maxInterpolationOffset; 1964 uint32_t subPixelInterpolationOffsetBits; 1965 uint32_t maxFramebufferWidth; 1966 uint32_t maxFramebufferHeight; 1967 uint32_t maxFramebufferLayers; 1968 VkSampleCountFlags framebufferColorSampleCounts; 1969 VkSampleCountFlags framebufferDepthSampleCounts; 1970 VkSampleCountFlags framebufferStencilSampleCounts; 1971 VkSampleCountFlags framebufferNoAttachmentsSampleCounts; 1972 uint32_t maxColorAttachments; 1973 VkSampleCountFlags sampledImageColorSampleCounts; 1974 VkSampleCountFlags sampledImageIntegerSampleCounts; 1975 VkSampleCountFlags sampledImageDepthSampleCounts; 1976 VkSampleCountFlags sampledImageStencilSampleCounts; 1977 VkSampleCountFlags storageImageSampleCounts; 1978 uint32_t maxSampleMaskWords; 1979 VkBool32 timestampComputeAndGraphics; 1980 float timestampPeriod; 1981 uint32_t maxClipDistances; 1982 uint32_t maxCullDistances; 1983 uint32_t maxCombinedClipAndCullDistances; 1984 uint32_t discreteQueuePriorities; 1985 float pointSizeRange[2]; 1986 float lineWidthRange[2]; 1987 float pointSizeGranularity; 1988 float lineWidthGranularity; 1989 VkBool32 strictLines; 1990 VkBool32 standardSampleLocations; 1991 VkDeviceSize optimalBufferCopyOffsetAlignment; 1992 VkDeviceSize optimalBufferCopyRowPitchAlignment; 1993 VkDeviceSize nonCoherentAtomSize; 1994 } VkPhysicalDeviceLimits; 1995 1996 typedef struct { 1997 VkBool32 residencyStandard2DBlockShape; 1998 VkBool32 residencyStandard2DMultisampleBlockShape; 1999 VkBool32 residencyStandard3DBlockShape; 2000 VkBool32 residencyAlignedMipSize; 2001 VkBool32 residencyNonResidentStrict; 2002 } VkPhysicalDeviceSparseProperties; 2003 2004 typedef struct { 2005 VkDeviceSize size; 2006 VkMemoryHeapFlags flags; 2007 } VkMemoryHeap; 2008 2009 typedef struct { 2010 VkMemoryPropertyFlags propertyFlags; 2011 uint32_t heapIndex; 2012 } VkMemoryType; 2013 2014 typedef struct { 2015 uint32_t memoryTypeCount; 2016 VkMemoryType memoryTypes[VK_MAX_MEMORY_TYPES]; 2017 uint32_t memoryHeapCount; 2018 VkMemoryHeap memoryHeaps[VK_MAX_MEMORY_HEAPS]; 2019 } VkPhysicalDeviceMemoryProperties; 2020 2021 typedef struct { 2022 VkStructureType sType; 2023 void * pNext; 2024 VkPhysicalDeviceMemoryProperties memoryProperties; 2025 } VkPhysicalDeviceMemoryProperties2; 2026 2027 typedef struct { 2028 VkStructureType sType; 2029 void * pNext; 2030 uint8_t deviceUUID[VK_UUID_SIZE]; 2031 uint8_t driverUUID[VK_UUID_SIZE]; 2032 uint8_t deviceLUID[VK_LUID_SIZE]; 2033 uint32_t deviceNodeMask; 2034 VkBool32 deviceLUIDValid; 2035 uint32_t subgroupSize; 2036 VkShaderStageFlags subgroupSupportedStages; 2037 VkSubgroupFeatureFlags subgroupSupportedOperations; 2038 VkBool32 subgroupQuadOperationsInAllStages; 2039 VkPointClippingBehavior pointClippingBehavior; 2040 uint32_t maxMultiviewViewCount; 2041 uint32_t maxMultiviewInstanceIndex; 2042 VkBool32 protectedNoFault; 2043 uint32_t maxPerSetDescriptors; 2044 VkDeviceSize maxMemoryAllocationSize; 2045 } VkPhysicalDeviceVulkan11Properties; 2046 2047 typedef struct { 2048 uint32_t apiVersion; 2049 uint32_t driverVersion; 2050 uint32_t vendorID; 2051 uint32_t deviceID; 2052 VkPhysicalDeviceType deviceType; 2053 char deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE]; 2054 uint8_t pipelineCacheUUID[VK_UUID_SIZE]; 2055 VkPhysicalDeviceLimits limits; 2056 VkPhysicalDeviceSparseProperties sparseProperties; 2057 } VkPhysicalDeviceProperties; 2058 2059 typedef struct { 2060 VkStructureType sType; 2061 void * pNext; 2062 VkPhysicalDeviceProperties properties; 2063 } VkPhysicalDeviceProperties2; 2064 2065 typedef struct { 2066 VkBool32 robustBufferAccess; 2067 VkBool32 fullDrawIndexUint32; 2068 VkBool32 imageCubeArray; 2069 VkBool32 independentBlend; 2070 VkBool32 geometryShader; 2071 VkBool32 tessellationShader; 2072 VkBool32 sampleRateShading; 2073 VkBool32 dualSrcBlend; 2074 VkBool32 logicOp; 2075 VkBool32 multiDrawIndirect; 2076 VkBool32 drawIndirectFirstInstance; 2077 VkBool32 depthClamp; 2078 VkBool32 depthBiasClamp; 2079 VkBool32 fillModeNonSolid; 2080 VkBool32 depthBounds; 2081 VkBool32 wideLines; 2082 VkBool32 largePoints; 2083 VkBool32 alphaToOne; 2084 VkBool32 multiViewport; 2085 VkBool32 samplerAnisotropy; 2086 VkBool32 textureCompressionETC2; 2087 VkBool32 textureCompressionASTC_LDR; 2088 VkBool32 textureCompressionBC; 2089 VkBool32 occlusionQueryPrecise; 2090 VkBool32 pipelineStatisticsQuery; 2091 VkBool32 vertexPipelineStoresAndAtomics; 2092 VkBool32 fragmentStoresAndAtomics; 2093 VkBool32 shaderTessellationAndGeometryPointSize; 2094 VkBool32 shaderImageGatherExtended; 2095 VkBool32 shaderStorageImageExtendedFormats; 2096 VkBool32 shaderStorageImageMultisample; 2097 VkBool32 shaderStorageImageReadWithoutFormat; 2098 VkBool32 shaderStorageImageWriteWithoutFormat; 2099 VkBool32 shaderUniformBufferArrayDynamicIndexing; 2100 VkBool32 shaderSampledImageArrayDynamicIndexing; 2101 VkBool32 shaderStorageBufferArrayDynamicIndexing; 2102 VkBool32 shaderStorageImageArrayDynamicIndexing; 2103 VkBool32 shaderClipDistance; 2104 VkBool32 shaderCullDistance; 2105 VkBool32 shaderFloat64; 2106 VkBool32 shaderInt64; 2107 VkBool32 shaderInt16; 2108 VkBool32 shaderResourceResidency; 2109 VkBool32 shaderResourceMinLod; 2110 VkBool32 sparseBinding; 2111 VkBool32 sparseResidencyBuffer; 2112 VkBool32 sparseResidencyImage2D; 2113 VkBool32 sparseResidencyImage3D; 2114 VkBool32 sparseResidency2Samples; 2115 VkBool32 sparseResidency4Samples; 2116 VkBool32 sparseResidency8Samples; 2117 VkBool32 sparseResidency16Samples; 2118 VkBool32 sparseResidencyAliased; 2119 VkBool32 variableMultisampleRate; 2120 VkBool32 inheritedQueries; 2121 } VkPhysicalDeviceFeatures; 2122 2123 typedef struct { 2124 VkStructureType sType; 2125 void * pNext; 2126 VkBool32 storageBuffer16BitAccess; 2127 VkBool32 uniformAndStorageBuffer16BitAccess; 2128 VkBool32 storagePushConstant16; 2129 VkBool32 storageInputOutput16; 2130 VkBool32 multiview; 2131 VkBool32 multiviewGeometryShader; 2132 VkBool32 multiviewTessellationShader; 2133 VkBool32 variablePointersStorageBuffer; 2134 VkBool32 variablePointers; 2135 VkBool32 protectedMemory; 2136 VkBool32 samplerYcbcrConversion; 2137 VkBool32 shaderDrawParameters; 2138 } VkPhysicalDeviceVulkan11Features; 2139 2140 typedef struct { 2141 VkStructureType sType; 2142 void * pNext; 2143 VkBool32 samplerMirrorClampToEdge; 2144 VkBool32 drawIndirectCount; 2145 VkBool32 storageBuffer8BitAccess; 2146 VkBool32 uniformAndStorageBuffer8BitAccess; 2147 VkBool32 storagePushConstant8; 2148 VkBool32 shaderBufferInt64Atomics; 2149 VkBool32 shaderSharedInt64Atomics; 2150 VkBool32 shaderFloat16; 2151 VkBool32 shaderInt8; 2152 VkBool32 descriptorIndexing; 2153 VkBool32 shaderInputAttachmentArrayDynamicIndexing; 2154 VkBool32 shaderUniformTexelBufferArrayDynamicIndexing; 2155 VkBool32 shaderStorageTexelBufferArrayDynamicIndexing; 2156 VkBool32 shaderUniformBufferArrayNonUniformIndexing; 2157 VkBool32 shaderSampledImageArrayNonUniformIndexing; 2158 VkBool32 shaderStorageBufferArrayNonUniformIndexing; 2159 VkBool32 shaderStorageImageArrayNonUniformIndexing; 2160 VkBool32 shaderInputAttachmentArrayNonUniformIndexing; 2161 VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing; 2162 VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing; 2163 VkBool32 descriptorBindingUniformBufferUpdateAfterBind; 2164 VkBool32 descriptorBindingSampledImageUpdateAfterBind; 2165 VkBool32 descriptorBindingStorageImageUpdateAfterBind; 2166 VkBool32 descriptorBindingStorageBufferUpdateAfterBind; 2167 VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind; 2168 VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind; 2169 VkBool32 descriptorBindingUpdateUnusedWhilePending; 2170 VkBool32 descriptorBindingPartiallyBound; 2171 VkBool32 descriptorBindingVariableDescriptorCount; 2172 VkBool32 runtimeDescriptorArray; 2173 VkBool32 samplerFilterMinmax; 2174 VkBool32 scalarBlockLayout; 2175 VkBool32 imagelessFramebuffer; 2176 VkBool32 uniformBufferStandardLayout; 2177 VkBool32 shaderSubgroupExtendedTypes; 2178 VkBool32 separateDepthStencilLayouts; 2179 VkBool32 hostQueryReset; 2180 VkBool32 timelineSemaphore; 2181 VkBool32 bufferDeviceAddress; 2182 VkBool32 bufferDeviceAddressCaptureReplay; 2183 VkBool32 bufferDeviceAddressMultiDevice; 2184 VkBool32 vulkanMemoryModel; 2185 VkBool32 vulkanMemoryModelDeviceScope; 2186 VkBool32 vulkanMemoryModelAvailabilityVisibilityChains; 2187 VkBool32 shaderOutputViewportIndex; 2188 VkBool32 shaderOutputLayer; 2189 VkBool32 subgroupBroadcastDynamicId; 2190 } VkPhysicalDeviceVulkan12Features; 2191 2192 typedef struct { 2193 VkStructureType sType; 2194 void * pNext; 2195 VkBool32 robustImageAccess; 2196 VkBool32 inlineUniformBlock; 2197 VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind; 2198 VkBool32 pipelineCreationCacheControl; 2199 VkBool32 privateData; 2200 VkBool32 shaderDemoteToHelperInvocation; 2201 VkBool32 shaderTerminateInvocation; 2202 VkBool32 subgroupSizeControl; 2203 VkBool32 computeFullSubgroups; 2204 VkBool32 synchronization2; 2205 VkBool32 textureCompressionASTC_HDR; 2206 VkBool32 shaderZeroInitializeWorkgroupMemory; 2207 VkBool32 dynamicRendering; 2208 VkBool32 shaderIntegerDotProduct; 2209 VkBool32 maintenance4; 2210 } VkPhysicalDeviceVulkan13Features; 2211 2212 typedef struct { 2213 VkStructureType sType; 2214 void * pNext; 2215 VkBool32 shaderRelaxedExtendedInstruction; 2216 } VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR; 2217 2218 typedef struct { 2219 VkStructureType sType; 2220 void * pNext; 2221 VkBool32 robustBufferAccess2; 2222 VkBool32 robustImageAccess2; 2223 VkBool32 nullDescriptor; 2224 } VkPhysicalDeviceRobustness2FeaturesKHR; 2225 2226 typedef struct { 2227 VkStructureType sType; 2228 void * pNext; 2229 VkPhysicalDeviceFeatures features; 2230 } VkPhysicalDeviceFeatures2; 2231 2232 typedef struct { 2233 VkQueueFlags queueFlags; 2234 uint32_t queueCount; 2235 uint32_t timestampValidBits; 2236 VkExtent3D minImageTransferGranularity; 2237 } VkQueueFamilyProperties; 2238 2239 typedef struct { 2240 VkStructureType sType; 2241 const void * pNext; 2242 VkDeviceQueueCreateFlags flags; 2243 uint32_t queueFamilyIndex; 2244 uint32_t queueCount; 2245 const float * pQueuePriorities; 2246 } VkDeviceQueueCreateInfo; 2247 2248 typedef struct { 2249 VkStructureType sType; 2250 const void * pNext; 2251 VkDeviceCreateFlags flags; 2252 uint32_t queueCreateInfoCount; 2253 const VkDeviceQueueCreateInfo * pQueueCreateInfos; 2254 uint32_t enabledLayerCount; // enabledLayerCount is deprecated 2255 const char * const * ppEnabledLayerNames; // ppEnabledLayerNames is deprecated 2256 uint32_t enabledExtensionCount; 2257 const char * const * ppEnabledExtensionNames; 2258 const VkPhysicalDeviceFeatures * pEnabledFeatures; 2259 } VkDeviceCreateInfo; 2260 2261 typedef struct { 2262 VkStructureType sType; 2263 const void* pNext; 2264 VkSwapchainCreateFlagsKHR flags; 2265 VkSurfaceKHR surface; 2266 uint32_t minImageCount; 2267 VkFormat imageFormat; 2268 VkColorSpaceKHR imageColorSpace; 2269 VkExtent2D imageExtent; 2270 uint32_t imageArrayLayers; 2271 VkImageUsageFlags imageUsage; 2272 VkSharingMode imageSharingMode; 2273 uint32_t queueFamilyIndexCount; 2274 const uint32_t * pQueueFamilyIndices; 2275 VkSurfaceTransformFlagBitsKHR preTransform; 2276 VkCompositeAlphaFlagBitsKHR compositeAlpha; 2277 VkPresentModeKHR presentMode; 2278 VkBool32 clipped; 2279 VkSwapchainKHR oldSwapchain; 2280 } VkSwapchainCreateInfoKHR; 2281 2282 typedef struct { 2283 VkStructureType sType; 2284 const void * pNext; 2285 uint32_t waitSemaphoreCount; 2286 const VkSemaphore * pWaitSemaphores; 2287 uint32_t swapchainCount; 2288 const VkSwapchainKHR * pSwapchains; 2289 const uint32_t * pImageIndices; 2290 VkResult * pResults; 2291 } VkPresentInfoKHR; 2292 2293 typedef struct { 2294 uint32_t minImageCount; 2295 uint32_t maxImageCount; 2296 VkExtent2D currentExtent; 2297 VkExtent2D minImageExtent; 2298 VkExtent2D maxImageExtent; 2299 uint32_t maxImageArrayLayers; 2300 VkSurfaceTransformFlagsKHR supportedTransforms; 2301 VkSurfaceTransformFlagBitsKHR currentTransform; 2302 VkCompositeAlphaFlagsKHR supportedCompositeAlpha; 2303 VkImageUsageFlags supportedUsageFlags; 2304 } VkSurfaceCapabilitiesKHR; 2305 2306 typedef struct { 2307 VkFormat format; 2308 VkColorSpaceKHR colorSpace; 2309 } VkSurfaceFormatKHR; 2310 2311 typedef struct { 2312 VkStructureType sType; 2313 const void * pNext; 2314 VkQueryPoolCreateFlags flags; 2315 VkQueryType queryType; 2316 uint32_t queryCount; 2317 VkQueryPipelineStatisticFlags pipelineStatistics; 2318 } VkQueryPoolCreateInfo; 2319 2320 typedef struct { 2321 VkStructureType sType; 2322 const void * pNext; 2323 VkSemaphoreCreateFlags flags; 2324 } VkSemaphoreCreateInfo; 2325 2326 typedef struct { 2327 VkStructureType sType; 2328 const void * pNext; 2329 VkSemaphoreType semaphoreType; 2330 uint64_t initialValue; 2331 } VkSemaphoreTypeCreateInfo; 2332 2333 typedef struct { 2334 VkStructureType sType; 2335 const void * pNext; 2336 uint32_t waitSemaphoreValueCount; 2337 const uint64_t * pWaitSemaphoreValues; 2338 uint32_t signalSemaphoreValueCount; 2339 const uint64_t * pSignalSemaphoreValues; 2340 } VkTimelineSemaphoreSubmitInfo; 2341 2342 typedef struct { 2343 VkStructureType sType; 2344 const void * pNext; 2345 VkSemaphoreWaitFlags flags; 2346 uint32_t semaphoreCount; 2347 const VkSemaphore * pSemaphores; 2348 const uint64_t * pValues; 2349 } VkSemaphoreWaitInfo; 2350 2351 typedef struct { 2352 VkStructureType sType; 2353 const void * pNext; 2354 VkSemaphore semaphore; 2355 uint64_t value; 2356 } VkSemaphoreSignalInfo; 2357 2358 typedef struct { 2359 VkStructureType sType; 2360 const void * pNext; 2361 VkSemaphore semaphore; 2362 uint64_t value; 2363 VkPipelineStageFlags2 stageMask; 2364 uint32_t deviceIndex; 2365 } VkSemaphoreSubmitInfo; 2366 2367 typedef struct { 2368 VkStructureType sType; 2369 const void * pNext; 2370 VkExternalSemaphoreHandleTypeFlags handleTypes; 2371 } VkExportSemaphoreCreateInfo; 2372 2373 typedef struct { 2374 VkStructureType sType; 2375 const void * pNext; 2376 VkSemaphore semaphore; 2377 VkExternalSemaphoreHandleTypeFlagBits handleType; 2378 } VkSemaphoreGetWin32HandleInfoKHR; 2379 2380 typedef struct { 2381 VkStructureType sType; 2382 const void * pNext; 2383 VkSemaphore semaphore; 2384 VkExternalSemaphoreHandleTypeFlagBits handleType; 2385 } VkSemaphoreGetFdInfoKHR; 2386 2387 typedef struct { 2388 VkImageAspectFlags aspectMask; 2389 uint32_t baseMipLevel; 2390 uint32_t levelCount; 2391 uint32_t baseArrayLayer; 2392 uint32_t layerCount; 2393 } VkImageSubresourceRange; 2394 2395 typedef struct { 2396 VkStructureType sType; 2397 const void * pNext; 2398 VkPipelineStageFlags2 srcStageMask; 2399 VkAccessFlags2 srcAccessMask; 2400 VkPipelineStageFlags2 dstStageMask; 2401 VkAccessFlags2 dstAccessMask; 2402 } VkMemoryBarrier2; 2403 2404 typedef struct { 2405 VkStructureType sType; 2406 const void * pNext; 2407 VkPipelineStageFlags2 srcStageMask; 2408 VkAccessFlags2 srcAccessMask; 2409 VkPipelineStageFlags2 dstStageMask; 2410 VkAccessFlags2 dstAccessMask; 2411 uint32_t srcQueueFamilyIndex; 2412 uint32_t dstQueueFamilyIndex; 2413 VkBuffer buffer; 2414 VkDeviceSize offset; 2415 VkDeviceSize size; 2416 } VkBufferMemoryBarrier2; 2417 2418 typedef struct { 2419 VkStructureType sType; 2420 const void * pNext; 2421 VkPipelineStageFlags2 srcStageMask; 2422 VkAccessFlags2 srcAccessMask; 2423 VkPipelineStageFlags2 dstStageMask; 2424 VkAccessFlags2 dstAccessMask; 2425 VkImageLayout oldLayout; 2426 VkImageLayout newLayout; 2427 uint32_t srcQueueFamilyIndex; 2428 uint32_t dstQueueFamilyIndex; 2429 VkImage image; 2430 VkImageSubresourceRange subresourceRange; 2431 } VkImageMemoryBarrier2; 2432 2433 typedef struct { 2434 VkStructureType sType; 2435 const void * pNext; 2436 VkDependencyFlags dependencyFlags; 2437 uint32_t memoryBarrierCount; 2438 const VkMemoryBarrier2 * pMemoryBarriers; 2439 uint32_t bufferMemoryBarrierCount; 2440 const VkBufferMemoryBarrier2 * pBufferMemoryBarriers; 2441 uint32_t imageMemoryBarrierCount; 2442 const VkImageMemoryBarrier2 * pImageMemoryBarriers; 2443 } VkDependencyInfo; 2444 2445 2446 typedef struct { 2447 VkComponentSwizzle r; 2448 VkComponentSwizzle g; 2449 VkComponentSwizzle b; 2450 VkComponentSwizzle a; 2451 } VkComponentMapping; 2452 2453 typedef struct { 2454 VkStructureType sType; 2455 const void * pNext; 2456 VkImageViewCreateFlags flags; 2457 VkImage image; 2458 VkImageViewType viewType; 2459 VkFormat format; 2460 VkComponentMapping components; 2461 VkImageSubresourceRange subresourceRange; 2462 } VkImageViewCreateInfo; 2463 2464 typedef struct { 2465 VkStructureType sType; 2466 const void * pNext; 2467 VkBufferCreateFlags flags; 2468 VkDeviceSize size; 2469 VkBufferUsageFlags usage; 2470 VkSharingMode sharingMode; 2471 uint32_t queueFamilyIndexCount; 2472 const uint32_t * pQueueFamilyIndices; 2473 } VkBufferCreateInfo; 2474 2475 typedef struct { 2476 VkStructureType sType; 2477 const void * pNext; 2478 VkImageCreateFlags flags; 2479 VkImageType imageType; 2480 VkFormat format; 2481 VkExtent3D extent; 2482 uint32_t mipLevels; 2483 uint32_t arrayLayers; 2484 VkSampleCountFlagBits samples; 2485 VkImageTiling tiling; 2486 VkImageUsageFlags usage; 2487 VkSharingMode sharingMode; 2488 uint32_t queueFamilyIndexCount; 2489 const uint32_t * pQueueFamilyIndices; 2490 VkImageLayout initialLayout; 2491 } VkImageCreateInfo; 2492 2493 typedef struct { 2494 VkStructureType sType; 2495 const void * pNext; 2496 VkShaderModuleCreateFlags flags; 2497 size_t codeSize; 2498 const uint32_t * pCode; 2499 } VkShaderModuleCreateInfo; 2500 2501 typedef struct { 2502 uint32_t constantID; 2503 uint32_t offset; 2504 size_t size; 2505 } VkSpecializationMapEntry; 2506 2507 typedef struct { 2508 uint32_t mapEntryCount; 2509 const VkSpecializationMapEntry * pMapEntries; 2510 size_t dataSize; 2511 const void * pData; 2512 } VkSpecializationInfo; 2513 2514 typedef struct { 2515 VkStructureType sType; 2516 const void * pNext; 2517 VkPipelineShaderStageCreateFlags flags; 2518 VkShaderStageFlagBits stage; 2519 VkShaderModule module; 2520 const char * pName; 2521 const VkSpecializationInfo * pSpecializationInfo; 2522 } VkPipelineShaderStageCreateInfo; 2523 2524 typedef struct { 2525 VkStructureType sType; 2526 const void * pNext; 2527 VkPipelineCreateFlags flags; 2528 VkPipelineShaderStageCreateInfo stage; 2529 VkPipelineLayout layout; 2530 VkPipeline basePipelineHandle; 2531 int32_t basePipelineIndex; 2532 } VkComputePipelineCreateInfo; 2533 2534 typedef struct { 2535 VkStencilOp failOp; 2536 VkStencilOp passOp; 2537 VkStencilOp depthFailOp; 2538 VkCompareOp compareOp; 2539 uint32_t compareMask; 2540 uint32_t writeMask; 2541 uint32_t reference; 2542 } VkStencilOpState; 2543 2544 typedef struct { 2545 VkStructureType sType; 2546 const void * pNext; 2547 VkPipelineDepthStencilStateCreateFlags flags; 2548 VkBool32 depthTestEnable; 2549 VkBool32 depthWriteEnable; 2550 VkCompareOp depthCompareOp; 2551 VkBool32 depthBoundsTestEnable; 2552 VkBool32 stencilTestEnable; 2553 VkStencilOpState front; 2554 VkStencilOpState back; 2555 float minDepthBounds; 2556 float maxDepthBounds; 2557 } VkPipelineDepthStencilStateCreateInfo; 2558 2559 typedef struct { 2560 VkBool32 blendEnable; 2561 VkBlendFactor srcColorBlendFactor; 2562 VkBlendFactor dstColorBlendFactor; 2563 VkBlendOp colorBlendOp; 2564 VkBlendFactor srcAlphaBlendFactor; 2565 VkBlendFactor dstAlphaBlendFactor; 2566 VkBlendOp alphaBlendOp; 2567 VkColorComponentFlags colorWriteMask; 2568 } VkPipelineColorBlendAttachmentState; 2569 2570 typedef struct { 2571 VkStructureType sType; 2572 const void * pNext; 2573 VkPipelineColorBlendStateCreateFlags flags; 2574 VkBool32 logicOpEnable; 2575 VkLogicOp logicOp; 2576 uint32_t attachmentCount; 2577 const VkPipelineColorBlendAttachmentState * pAttachments; 2578 float blendConstants[4]; 2579 } VkPipelineColorBlendStateCreateInfo; 2580 2581 typedef struct { 2582 VkStructureType sType; 2583 const void * pNext; 2584 VkPipelineDynamicStateCreateFlags flags; 2585 uint32_t dynamicStateCount; 2586 const VkDynamicState * pDynamicStates; 2587 } VkPipelineDynamicStateCreateInfo; 2588 2589 typedef struct { 2590 uint32_t binding; 2591 uint32_t stride; 2592 VkVertexInputRate inputRate; 2593 } VkVertexInputBindingDescription; 2594 2595 typedef struct { 2596 uint32_t location; 2597 uint32_t binding; 2598 VkFormat format; 2599 uint32_t offset; 2600 } VkVertexInputAttributeDescription; 2601 2602 typedef struct { 2603 VkStructureType sType; 2604 const void * pNext; 2605 VkPipelineVertexInputStateCreateFlags flags; 2606 uint32_t vertexBindingDescriptionCount; 2607 const VkVertexInputBindingDescription * pVertexBindingDescriptions; 2608 uint32_t vertexAttributeDescriptionCount; 2609 const VkVertexInputAttributeDescription * pVertexAttributeDescriptions; 2610 } VkPipelineVertexInputStateCreateInfo; 2611 2612 typedef struct { 2613 VkStructureType sType; 2614 const void * pNext; 2615 VkPipelineInputAssemblyStateCreateFlags flags; 2616 VkPrimitiveTopology topology; 2617 VkBool32 primitiveRestartEnable; 2618 } VkPipelineInputAssemblyStateCreateInfo; 2619 2620 typedef struct { 2621 VkStructureType sType; 2622 const void * pNext; 2623 VkPipelineTessellationStateCreateFlags flags; 2624 uint32_t patchControlPoints; 2625 } VkPipelineTessellationStateCreateInfo; 2626 2627 typedef struct VkPipelineViewportStateCreateInfo { 2628 VkStructureType sType; 2629 const void * pNext; 2630 VkPipelineViewportStateCreateFlags flags; 2631 uint32_t viewportCount; 2632 const VkViewport * pViewports; 2633 uint32_t scissorCount; 2634 const VkRect2D * pScissors; 2635 } VkPipelineViewportStateCreateInfo; 2636 2637 typedef struct { 2638 VkStructureType sType; 2639 const void * pNext; 2640 VkPipelineRasterizationStateCreateFlags flags; 2641 VkBool32 depthClampEnable; 2642 VkBool32 rasterizerDiscardEnable; 2643 VkPolygonMode polygonMode; 2644 VkCullModeFlags cullMode; 2645 VkFrontFace frontFace; 2646 VkBool32 depthBiasEnable; 2647 float depthBiasConstantFactor; 2648 float depthBiasClamp; 2649 float depthBiasSlopeFactor; 2650 float lineWidth; 2651 } VkPipelineRasterizationStateCreateInfo; 2652 2653 typedef struct { 2654 VkStructureType sType; 2655 const void * pNext; 2656 VkPipelineMultisampleStateCreateFlags flags; 2657 VkSampleCountFlagBits rasterizationSamples; 2658 VkBool32 sampleShadingEnable; 2659 float minSampleShading; 2660 const VkSampleMask * pSampleMask; 2661 VkBool32 alphaToCoverageEnable; 2662 VkBool32 alphaToOneEnable; 2663 } VkPipelineMultisampleStateCreateInfo; 2664 2665 typedef struct { 2666 VkShaderStageFlags stageFlags; 2667 uint32_t offset; 2668 uint32_t size; 2669 } VkPushConstantRange; 2670 2671 typedef struct { 2672 VkStructureType sType; 2673 const void * pNext; 2674 VkPipelineLayoutCreateFlags flags; 2675 uint32_t setLayoutCount; 2676 const VkDescriptorSetLayout * pSetLayouts; 2677 uint32_t pushConstantRangeCount; 2678 const VkPushConstantRange * pPushConstantRanges; 2679 } VkPipelineLayoutCreateInfo; 2680 2681 typedef union { 2682 float float32[4]; 2683 int32_t int32[4]; 2684 uint32_t uint32[4]; 2685 } VkClearColorValue; 2686 2687 typedef struct { 2688 float depth; 2689 uint32_t stencil; 2690 } VkClearDepthStencilValue; 2691 2692 typedef union { 2693 VkClearColorValue color; 2694 VkClearDepthStencilValue depthStencil; 2695 } VkClearValue; 2696 2697 typedef struct { 2698 VkStructureType sType; 2699 const void * pNext; 2700 VkImageView imageView; 2701 VkImageLayout imageLayout; 2702 VkResolveModeFlagBits resolveMode; 2703 VkImageView resolveImageView; 2704 VkImageLayout resolveImageLayout; 2705 VkAttachmentLoadOp loadOp; 2706 VkAttachmentStoreOp storeOp; 2707 VkClearValue clearValue; 2708 } VkRenderingAttachmentInfo; 2709 2710 typedef struct { 2711 VkStructureType sType; 2712 const void * pNext; 2713 VkRenderingFlags flags; 2714 VkRect2D renderArea; 2715 uint32_t layerCount; 2716 uint32_t viewMask; 2717 uint32_t colorAttachmentCount; 2718 const VkRenderingAttachmentInfo * pColorAttachments; 2719 const VkRenderingAttachmentInfo * pDepthAttachment; 2720 const VkRenderingAttachmentInfo * pStencilAttachment; 2721 } VkRenderingInfo; 2722 2723 typedef struct { 2724 VkStructureType sType; 2725 const void * pNext; 2726 uint32_t viewMask; 2727 uint32_t colorAttachmentCount; 2728 const VkFormat * pColorAttachmentFormats; 2729 VkFormat depthAttachmentFormat; 2730 VkFormat stencilAttachmentFormat; 2731 } VkPipelineRenderingCreateInfo; 2732 2733 typedef struct { 2734 VkStructureType sType; 2735 const void * pNext; 2736 VkCommandPoolCreateFlags flags; 2737 uint32_t queueFamilyIndex; 2738 } VkCommandPoolCreateInfo; 2739 2740 typedef struct { 2741 VkStructureType sType; 2742 const void * pNext; 2743 VkCommandPool commandPool; 2744 VkCommandBufferLevel level; 2745 uint32_t commandBufferCount; 2746 } VkCommandBufferAllocateInfo; 2747 2748 typedef struct { 2749 VkStructureType sType; 2750 const void * pNext; 2751 VkRenderPass renderPass; 2752 uint32_t subpass; 2753 VkFramebuffer framebuffer; 2754 VkBool32 occlusionQueryEnable; 2755 VkQueryControlFlags queryFlags; 2756 VkQueryPipelineStatisticFlags pipelineStatistics; 2757 } VkCommandBufferInheritanceInfo; 2758 2759 typedef struct { 2760 VkStructureType sType; 2761 const void * pNext; 2762 VkCommandBufferUsageFlags flags; 2763 const VkCommandBufferInheritanceInfo * pInheritanceInfo; 2764 } VkCommandBufferBeginInfo; 2765 2766 typedef struct { 2767 VkStructureType sType; 2768 const void * pNext; 2769 VkCommandBuffer commandBuffer; 2770 uint32_t deviceMask; 2771 } VkCommandBufferSubmitInfo; 2772 2773 typedef struct { 2774 VkStructureType sType; 2775 const void * pNext; 2776 VkSubmitFlags flags; 2777 uint32_t waitSemaphoreInfoCount; 2778 const VkSemaphoreSubmitInfo * pWaitSemaphoreInfos; 2779 uint32_t commandBufferInfoCount; 2780 const VkCommandBufferSubmitInfo * pCommandBufferInfos; 2781 uint32_t signalSemaphoreInfoCount; 2782 const VkSemaphoreSubmitInfo * pSignalSemaphoreInfos; 2783 } VkSubmitInfo2; 2784 2785 typedef struct { 2786 VkStructureType sType; 2787 const void * pNext; 2788 VkDeviceSize srcOffset; 2789 VkDeviceSize dstOffset; 2790 VkDeviceSize size; 2791 } VkBufferCopy2; 2792 2793 typedef struct { 2794 VkStructureType sType; 2795 const void * pNext; 2796 VkBuffer srcBuffer; 2797 VkBuffer dstBuffer; 2798 uint32_t regionCount; 2799 const VkBufferCopy2 * pRegions; 2800 } VkCopyBufferInfo2; 2801 2802 typedef struct { 2803 VkStructureType sType; 2804 const void * pNext; 2805 VkPipelineCreateFlags flags; 2806 uint32_t stageCount; 2807 const VkPipelineShaderStageCreateInfo * pStages; 2808 const VkPipelineVertexInputStateCreateInfo * pVertexInputState; 2809 const VkPipelineInputAssemblyStateCreateInfo * pInputAssemblyState; 2810 const VkPipelineTessellationStateCreateInfo * pTessellationState; 2811 const VkPipelineViewportStateCreateInfo * pViewportState; 2812 const VkPipelineRasterizationStateCreateInfo * pRasterizationState; 2813 const VkPipelineMultisampleStateCreateInfo * pMultisampleState; 2814 const VkPipelineDepthStencilStateCreateInfo * pDepthStencilState; 2815 const VkPipelineColorBlendStateCreateInfo * pColorBlendState; 2816 const VkPipelineDynamicStateCreateInfo * pDynamicState; 2817 VkPipelineLayout layout; 2818 VkRenderPass renderPass; 2819 uint32_t subpass; 2820 VkPipeline basePipelineHandle; 2821 int32_t basePipelineIndex; 2822 } VkGraphicsPipelineCreateInfo; 2823 2824 typedef void *vkAllocationFunction(void *pUserData, size_t size, size_t alignment, 2825 VkSystemAllocationScope allocationScope); 2826 2827 typedef void vkFreeFunction(void *pUserData, void *pMemory); 2828 2829 typedef void vkInternalAllocationNotification(void *pUserData, size_t size, 2830 VkInternalAllocationType allocationType, 2831 VkSystemAllocationScope allocationScope); 2832 2833 typedef void vkInternalFreeNotification(void *pUserData, size_t size, 2834 VkInternalAllocationType allocationType, 2835 VkSystemAllocationScope allocationScope); 2836 2837 typedef void *vkReallocationFunction(void *pUserData, void *pOriginal, size_t size, size_t alignment, 2838 VkSystemAllocationScope allocationScope); 2839 2840 typedef struct { 2841 void * UserData; 2842 vkAllocationFunction * Allocation; 2843 vkReallocationFunction * Reallocation; 2844 vkFreeFunction * Free; 2845 vkInternalAllocationNotification * InternalAllocation; 2846 vkInternalFreeNotification * InternalFree; 2847 } VkAllocationCallbacks; 2848 2849 typedef struct { 2850 VkStructureType sType; 2851 const void * pNext; 2852 VkDeviceMemory memory; 2853 VkDeviceSize offset; 2854 VkDeviceSize size; 2855 } VkMappedMemoryRange; 2856 2857 typedef struct { 2858 VkStructureType sType; 2859 const void * pNext; 2860 VkBuffer buffer; 2861 } VkBufferDeviceAddressInfo; 2862 2863 typedef struct { 2864 VkStructureType sType; 2865 const void * pNext; 2866 VkDeviceSize allocationSize; 2867 uint32_t memoryTypeIndex; 2868 } VkMemoryAllocateInfo; 2869 2870 typedef struct { 2871 VkDeviceSize size; 2872 VkDeviceSize alignment; 2873 uint32_t memoryTypeBits; 2874 } VkMemoryRequirements; 2875 2876 typedef struct { 2877 VkStructureType sType; 2878 const void * pNext; 2879 VkImage image; 2880 VkBuffer buffer; 2881 } VkMemoryDedicatedAllocateInfo; 2882 2883 typedef struct { 2884 VkStructureType sType; 2885 const void * pNext; 2886 VkMemoryAllocateFlags flags; 2887 uint32_t deviceMask; 2888 } VkMemoryAllocateFlagsInfo; 2889 2890 typedef struct { 2891 VkStructureType sType; 2892 const void * pNext; 2893 VkExternalMemoryHandleTypeFlags handleTypes; 2894 } VkExportMemoryAllocateInfo; 2895 2896 typedef struct { 2897 VkStructureType sType; 2898 const void * pNext; 2899 VkExternalMemoryHandleTypeFlags handleTypes; 2900 } VkExternalMemoryBufferCreateInfo; 2901 2902 typedef struct { 2903 VkStructureType sType; 2904 const void * pNext; 2905 VkExternalMemoryHandleTypeFlags handleTypes; 2906 } VkExternalMemoryImageCreateInfo; 2907 2908 typedef struct { 2909 VkStructureType sType; 2910 const void * pNext; 2911 VkDeviceMemory memory; 2912 VkExternalMemoryHandleTypeFlagBits handleType; 2913 } VkMemoryGetWin32HandleInfoKHR; 2914 2915 typedef struct { 2916 VkStructureType sType; 2917 const void * pNext; 2918 VkDeviceMemory memory; 2919 VkExternalMemoryHandleTypeFlagBits handleType; 2920 } VkMemoryGetFdInfoKHR; 2921 2922 typedef struct { 2923 VkDescriptorType type; 2924 uint32_t descriptorCount; 2925 } VkDescriptorPoolSize; 2926 2927 typedef struct { 2928 VkStructureType sType; 2929 const void * pNext; 2930 VkDescriptorPoolCreateFlags flags; 2931 uint32_t maxSets; 2932 uint32_t poolSizeCount; 2933 const VkDescriptorPoolSize * pPoolSizes; 2934 } VkDescriptorPoolCreateInfo; 2935 2936 typedef struct { 2937 uint32_t binding; 2938 VkDescriptorType descriptorType; 2939 uint32_t descriptorCount; 2940 VkShaderStageFlags stageFlags; 2941 const VkSampler * pImmutableSamplers; 2942 } VkDescriptorSetLayoutBinding; 2943 2944 typedef struct { 2945 VkStructureType sType; 2946 const void * pNext; 2947 VkDescriptorSetLayoutCreateFlags flags; 2948 uint32_t bindingCount; 2949 const VkDescriptorSetLayoutBinding * pBindings; 2950 } VkDescriptorSetLayoutCreateInfo; 2951 2952 typedef struct { 2953 VkStructureType sType; 2954 const void * pNext; 2955 VkDescriptorPool descriptorPool; 2956 uint32_t descriptorSetCount; 2957 const VkDescriptorSetLayout * pSetLayouts; 2958 } VkDescriptorSetAllocateInfo; 2959 2960 typedef struct { 2961 VkStructureType sType; 2962 const void * pNext; 2963 VkDescriptorSet srcSet; 2964 uint32_t srcBinding; 2965 uint32_t srcArrayElement; 2966 VkDescriptorSet dstSet; 2967 uint32_t dstBinding; 2968 uint32_t dstArrayElement; 2969 uint32_t descriptorCount; 2970 } VkCopyDescriptorSet; 2971 2972 typedef struct { 2973 VkBuffer buffer; 2974 VkDeviceSize offset; 2975 VkDeviceSize range; 2976 } VkDescriptorBufferInfo; 2977 2978 typedef struct { 2979 VkSampler sampler; 2980 VkImageView imageView; 2981 VkImageLayout imageLayout; 2982 } VkDescriptorImageInfo; 2983 2984 typedef struct { 2985 VkStructureType sType; 2986 const void * pNext; 2987 VkDescriptorSet dstSet; 2988 uint32_t dstBinding; 2989 uint32_t dstArrayElement; 2990 uint32_t descriptorCount; 2991 VkDescriptorType descriptorType; 2992 const VkDescriptorImageInfo * pImageInfo; 2993 const VkDescriptorBufferInfo * pBufferInfo; 2994 const VkBufferView * pTexelBufferView; 2995 } VkWriteDescriptorSet; 2996 2997 typedef enum { 2998 VK_COMPONENT_TYPE_FLOAT16_KHR = 0, 2999 VK_COMPONENT_TYPE_FLOAT32_KHR = 1, 3000 VK_COMPONENT_TYPE_FLOAT64_KHR = 2, 3001 VK_COMPONENT_TYPE_SINT8_KHR = 3, 3002 VK_COMPONENT_TYPE_SINT16_KHR = 4, 3003 VK_COMPONENT_TYPE_SINT32_KHR = 5, 3004 VK_COMPONENT_TYPE_SINT64_KHR = 6, 3005 VK_COMPONENT_TYPE_UINT8_KHR = 7, 3006 VK_COMPONENT_TYPE_UINT16_KHR = 8, 3007 VK_COMPONENT_TYPE_UINT32_KHR = 9, 3008 VK_COMPONENT_TYPE_UINT64_KHR = 10, 3009 VK_COMPONENT_TYPE_BFLOAT16_KHR = 1000141000, 3010 VK_COMPONENT_TYPE_SINT8_PACKED_NV = 1000491000, 3011 VK_COMPONENT_TYPE_UINT8_PACKED_NV = 1000491001, 3012 VK_COMPONENT_TYPE_FLOAT8_E4M3_EXT = 1000491002, 3013 VK_COMPONENT_TYPE_FLOAT8_E5M2_EXT = 1000491003, 3014 VK_COMPONENT_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF 3015 } VkComponentTypeKHR; 3016 3017 typedef enum { 3018 VK_SCOPE_DEVICE_KHR = 1, 3019 VK_SCOPE_WORKGROUP_KHR = 2, 3020 VK_SCOPE_SUBGROUP_KHR = 3, 3021 VK_SCOPE_QUEUE_FAMILY_KHR = 5, 3022 VK_SCOPE_MAX_ENUM_KHR = 0x7FFFFFFF 3023 } VkScopeKHR; 3024 3025 typedef struct { 3026 VkStructureType sType; 3027 void * pNext; 3028 uint32_t MSize; 3029 uint32_t NSize; 3030 uint32_t KSize; 3031 VkComponentTypeKHR AType; 3032 VkComponentTypeKHR BType; 3033 VkComponentTypeKHR CType; 3034 VkComponentTypeKHR ResultType; 3035 VkBool32 saturatingAccumulation; 3036 VkScopeKHR scope; 3037 } VkCooperativeMatrixPropertiesKHR; 3038 3039 typedef struct { 3040 VkStructureType sType; 3041 void * pNext; 3042 VkBool32 cooperativeMatrix; 3043 VkBool32 cooperativeMatrixRobustBufferAccess; 3044 } VkPhysicalDeviceCooperativeMatrixFeaturesKHR; 3045 3046 typedef enum { 3047 VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0, 3048 VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1, 3049 VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2, 3050 VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3, 3051 VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4, 3052 VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 0x7FFFFFFF 3053 } VkValidationFeatureEnableEXT; 3054 3055 typedef enum { 3056 VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0, 3057 VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1, 3058 VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2, 3059 VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3, 3060 VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4, 3061 VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5, 3062 VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6, 3063 VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7, 3064 VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 0x7FFFFFFF 3065 } VkValidationFeatureDisableEXT; 3066 3067 typedef struct { 3068 VkStructureType sType; 3069 const void * pNext; 3070 uint32_t enabledValidationFeatureCount; 3071 const VkValidationFeatureEnableEXT * pEnabledValidationFeatures; 3072 uint32_t disabledValidationFeatureCount; 3073 const VkValidationFeatureDisableEXT * pDisabledValidationFeatures; 3074 } VkValidationFeaturesEXT; 3075 3076 typedef struct { 3077 VkStructureType sType; 3078 const void * pNext; 3079 VkObjectType objectType; 3080 uint64_t objectHandle; 3081 const char * pObjectName; 3082 } VkDebugUtilsObjectNameInfoEXT; 3083 3084 /* X(name, ret, params) */ 3085 #define VkLoaderProcedureList \ 3086 X(vkGetInstanceProcAddr, void *, (VkInstance instance, const char *pName)) \ 3087 3088 /* X(name, ret, params) */ 3089 #define VkBaseProcedureList \ 3090 X(vkCreateInstance, VkResult, (const VkInstanceCreateInfo *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkInstance *pInstance)) \ 3091 X(vkEnumerateInstanceExtensionProperties, VkResult, (const char *pLayerName, uint32_t *pPropertyCount, VkExtensionProperties *pProperties)) \ 3092 X(vkEnumerateInstanceLayerProperties, VkResult, (uint32_t *pPropertyCount, VkLayerProperties *pProperties)) \ 3093 3094 /* X(name, ret, params) */ 3095 #define VkInstanceProcedureList \ 3096 X(vkCreateDevice, VkResult, (VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkDevice *pDevice)) \ 3097 X(vkEnumerateDeviceExtensionProperties, VkResult, (VkPhysicalDevice physicalDevice, const char *pLayerName, uint32_t *pPropertyCount, VkExtensionProperties *pProperties)) \ 3098 X(vkEnumeratePhysicalDevices, VkResult, (VkInstance instance, uint32_t *pPhysicalDeviceCount, VkPhysicalDevice *pPhysicalDevices)) \ 3099 X(vkGetDeviceProcAddr, void *, (VkDevice device, const char *pName)) \ 3100 X(vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR, VkResult, (VkPhysicalDevice physicalDevice, uint32_t *pPropertyCount, VkCooperativeMatrixPropertiesKHR *pProperties)) \ 3101 X(vkGetPhysicalDeviceFeatures2, void, (VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2 *pFeatures)) \ 3102 X(vkGetPhysicalDeviceFormatProperties2, void, (VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2 *pFormatProperties)) \ 3103 X(vkGetPhysicalDeviceMemoryProperties2, void, (VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2 *pMemoryProperties)) \ 3104 X(vkGetPhysicalDeviceProperties2, void, (VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2 *pProperties)) \ 3105 X(vkGetPhysicalDeviceQueueFamilyProperties, void, (VkPhysicalDevice physicalDevice, uint32_t *pQueueFamilyPropertyCount, VkQueueFamilyProperties *pQueueFamilyProperties)) \ 3106 3107 /* X(name, ret, params) */ 3108 #define VkDeviceProcedureList \ 3109 X(vkAllocateCommandBuffers, VkResult, (VkDevice device, const VkCommandBufferAllocateInfo *pAllocateInfo, VkCommandBuffer *pCommandBuffers)) \ 3110 X(vkAllocateDescriptorSets, VkResult, (VkDevice device, const VkDescriptorSetAllocateInfo *pAllocateInfo, VkDescriptorSet *pDescriptorSets)) \ 3111 X(vkAllocateMemory, VkResult, (VkDevice device, const VkMemoryAllocateInfo *pAllocateInfo, const VkAllocationCallbacks *pAllocator, VkDeviceMemory *pMemory)) \ 3112 X(vkBindBufferMemory, VkResult, (VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset)) \ 3113 X(vkBindImageMemory, VkResult, (VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset)) \ 3114 X(vkCreateBuffer, VkResult, (VkDevice device, const VkBufferCreateInfo *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkBuffer *pBuffer)) \ 3115 X(vkCreateCommandPool, VkResult, (VkDevice device, const VkCommandPoolCreateInfo *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkCommandPool *pCommandPool)) \ 3116 X(vkCreateComputePipelines, VkResult, (VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo *pCreateInfos, const VkAllocationCallbacks *pAllocator, VkPipeline *pPipelines)) \ 3117 X(vkCreateDescriptorPool, VkResult, (VkDevice device, const VkDescriptorPoolCreateInfo *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkDescriptorPool *pDescriptorPool)) \ 3118 X(vkCreateDescriptorSetLayout, VkResult, (VkDevice device, const VkDescriptorSetLayoutCreateInfo *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkDescriptorSetLayout *pSetLayout)) \ 3119 X(vkCreateGraphicsPipelines, VkResult, (VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo *pCreateInfos, const VkAllocationCallbacks *pAllocator, VkPipeline *pPipelines)) \ 3120 X(vkCreateImage, VkResult, (VkDevice device, const VkImageCreateInfo *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkImage *pImage)) \ 3121 X(vkCreateImageView, VkResult, (VkDevice device, const VkImageViewCreateInfo *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkImageView *pView)) \ 3122 X(vkCreatePipelineLayout, VkResult, (VkDevice device, const VkPipelineLayoutCreateInfo *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkPipelineLayout *pPipelineLayout)) \ 3123 X(vkCreateQueryPool, VkResult, (VkDevice device, const VkQueryPoolCreateInfo *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkQueryPool *pQueryPool)) \ 3124 X(vkCreateSemaphore, VkResult, (VkDevice device, const VkSemaphoreCreateInfo *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkSemaphore *pSemaphore)) \ 3125 X(vkCreateShaderModule, VkResult, (VkDevice device, const VkShaderModuleCreateInfo *pCreateInfo, const VkAllocationCallbacks *pAllocator, VkShaderModule *pShaderModule)) \ 3126 X(vkDestroyBuffer, void, (VkDevice device, VkBuffer buffer, const VkAllocationCallbacks *pAllocator)) \ 3127 X(vkDestroyImage, void, (VkDevice device, VkImage image, const VkAllocationCallbacks *pAllocator)) \ 3128 X(vkDestroyImageView, void, (VkDevice device, VkImageView imageView, const VkAllocationCallbacks *pAllocator)) \ 3129 X(vkDestroyPipeline, void, (VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks *pAllocator)) \ 3130 X(vkDestroyPipelineLayout, void, (VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks *pAllocator)) \ 3131 X(vkDestroyShaderModule, void, (VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks *pAllocator)) \ 3132 X(vkFlushMappedMemoryRanges, VkResult, (VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange *pMemoryRanges)) \ 3133 X(vkFreeMemory, void, (VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks *pAllocator)) \ 3134 X(vkGetBufferDeviceAddress, VkDeviceAddress, (VkDevice device, const VkBufferDeviceAddressInfo *pInfo)) \ 3135 X(vkGetBufferMemoryRequirements, void, (VkDevice device, VkBuffer buffer, VkMemoryRequirements *pMemoryRequirements)) \ 3136 X(vkGetDeviceQueue, void, (VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue *pQueue)) \ 3137 X(vkGetImageMemoryRequirements, void, (VkDevice device, VkImage image, VkMemoryRequirements *pMemoryRequirements)) \ 3138 X(vkGetMemoryFdKHR, VkResult, (VkDevice device, const VkMemoryGetFdInfoKHR *pGetFdInfo, int *pFd)) \ 3139 X(vkGetMemoryWin32HandleKHR, VkResult, (VkDevice device, const VkMemoryGetWin32HandleInfoKHR *pGetWin32HandleInfo, void **pHandle)) \ 3140 X(vkGetQueryPoolResults, VkResult, (VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void *pData, VkDeviceSize stride, VkQueryResultFlags flags)) \ 3141 X(vkGetSemaphoreFdKHR, VkResult, (VkDevice device, const VkSemaphoreGetFdInfoKHR *pGetFdInfo, int *pFd)) \ 3142 X(vkGetSemaphoreWin32HandleKHR, VkResult, (VkDevice device, const VkSemaphoreGetWin32HandleInfoKHR *pGetWin32HandleInfo, void **pHandle)) \ 3143 X(vkInvalidateMappedMemoryRanges, VkResult, (VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange *pMemoryRanges)) \ 3144 X(vkMapMemory, VkResult, (VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void **ppData)) \ 3145 X(vkSetDebugUtilsObjectNameEXT, VkResult, (VkDevice device, const VkDebugUtilsObjectNameInfoEXT *pNameInfo)) \ 3146 X(vkSignalSemaphore, VkResult, (VkDevice device, const VkSemaphoreSignalInfo *pSignalInfo)) \ 3147 X(vkUnmapMemory, void, (VkDevice device, VkDeviceMemory memory)) \ 3148 X(vkUpdateDescriptorSets, void, (VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet *pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet *pDescriptorCopies)) \ 3149 X(vkWaitSemaphores, VkResult, (VkDevice device, const VkSemaphoreWaitInfo *pWaitInfo, uint64_t timeout)) \ 3150 X(vkBeginCommandBuffer, VkResult, (VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo *pBeginInfo)) \ 3151 X(vkCmdBeginRendering, void, (VkCommandBuffer commandBuffer, const VkRenderingInfo *pRenderingInfo)) \ 3152 X(vkCmdBindDescriptorSets, void, (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const VkDescriptorSet *pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t *pDynamicOffsets)) \ 3153 X(vkCmdBindIndexBuffer2, void, (VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkDeviceSize size, VkIndexType indexType)) \ 3154 X(vkCmdBindPipeline, void, (VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline)) \ 3155 X(vkCmdCopyBuffer2, void, (VkCommandBuffer commandBuffer, const VkCopyBufferInfo2 *pCopyBufferInfo)) \ 3156 X(vkCmdDispatch, void, (VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ)) \ 3157 X(vkCmdDrawIndexed, void, (VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance)) \ 3158 X(vkCmdEndRendering, void, (VkCommandBuffer commandBuffer)) \ 3159 X(vkCmdFillBuffer, void, (VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data)) \ 3160 X(vkCmdPipelineBarrier2, void, (VkCommandBuffer commandBuffer, const VkDependencyInfo *pDependencyInfo)) \ 3161 X(vkCmdPushConstants, void, (VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void *pValues)) \ 3162 X(vkCmdResetQueryPool, void, (VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount)) \ 3163 X(vkCmdSetScissor, void, (VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D *pScissors)) \ 3164 X(vkCmdSetViewport, void, (VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport *pViewports)) \ 3165 X(vkCmdWriteTimestamp2, void, (VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkQueryPool queryPool, uint32_t query)) \ 3166 X(vkEndCommandBuffer, VkResult, (VkCommandBuffer commandBuffer)) \ 3167 X(vkQueueSubmit2, VkResult, (VkQueue queue, uint32_t submitCount, const VkSubmitInfo2 *pSubmits, VkFence fence)) \ 3168 3169 3170 #define X(name, ret, params) typedef ret name##_fn params; 3171 VkLoaderProcedureList 3172 VkBaseProcedureList 3173 VkDeviceProcedureList 3174 VkInstanceProcedureList 3175 #undef X 3176 #define X(name, ...) global name##_fn *name; 3177 VkLoaderProcedureList 3178 VkBaseProcedureList 3179 VkDeviceProcedureList 3180 VkInstanceProcedureList 3181 #undef X