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