vulkan.h (104445B)
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 12 #define VK_MAX_DESCRIPTION_SIZE 256U 13 #define VK_MAX_EXTENSION_NAME_SIZE 256U 14 #define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE 256U 15 #define VK_UUID_SIZE 16U 16 17 #define VK_SUBPASS_EXTERNAL (~0U) 18 19 typedef uint32_t VkBool32; 20 typedef uint32_t VkFlags; 21 typedef uint32_t VkSampleMask; 22 typedef uint64_t VkDeviceSize; 23 typedef void * VkCommandBuffer; 24 typedef void * VkCommandPool; 25 typedef void * VkDescriptorSetLayout; 26 typedef void * VkDevice; 27 typedef void * VkFence; 28 typedef void * VkFramebuffer; 29 typedef void * VkImage; 30 typedef void * VkImageView; 31 typedef void * VkInstance; 32 typedef void * VkPhysicalDevice; 33 typedef void * VkPipeline; 34 typedef void * VkPipelineCache; 35 typedef void * VkPipelineLayout; 36 typedef void * VkQueue; 37 typedef void * VkRenderPass; 38 typedef void * VkSemaphore; 39 typedef void * VkShaderModule; 40 typedef void * VkSurfaceKHR; 41 typedef void * VkSwapchainKHR; 42 43 typedef enum { 44 VK_SUCCESS = 0, 45 VK_SUBOPTIMAL_KHR = 1000001003, 46 VK_ERROR_OUT_OF_DATE_KHR = -1000001004, 47 VK_RESULT_MAX_ENUM = 0x7FFFFFFF 48 } VkResult; 49 50 typedef enum { 51 VK_STRUCTURE_TYPE_APPLICATION_INFO = 0, 52 VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1, 53 VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2, 54 VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3, 55 VK_STRUCTURE_TYPE_SUBMIT_INFO = 4, 56 VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8, 57 VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9, 58 VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15, 59 VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16, 60 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18, 61 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19, 62 VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20, 63 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22, 64 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23, 65 VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24, 66 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26, 67 VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27, 68 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28, 69 VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29, 70 VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30, 71 VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37, 72 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38, 73 VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39, 74 VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40, 75 VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42, 76 VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43, 77 VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000, 78 VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001, 79 VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF, 80 } VkStructureType; 81 82 typedef enum { 83 VK_PHYSICAL_DEVICE_TYPE_OTHER = 0, 84 VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1, 85 VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2, 86 VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3, 87 VK_PHYSICAL_DEVICE_TYPE_CPU = 4, 88 VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF 89 } VkPhysicalDeviceType; 90 91 typedef enum { 92 VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0, 93 VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1, 94 VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2, 95 VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3, 96 VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4, 97 VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 0x7FFFFFFF 98 } VkSystemAllocationScope; 99 100 typedef enum { 101 VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0, 102 VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF 103 } VkInternalAllocationType; 104 105 typedef enum { 106 VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR = 0x00000001, 107 VK_INSTANCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 108 } VkInstanceCreateFlagBits; 109 typedef VkFlags VkInstanceCreateFlags; 110 111 typedef enum { 112 VK_QUEUE_GRAPHICS_BIT = 0x00000001, 113 VK_QUEUE_COMPUTE_BIT = 0x00000002, 114 VK_QUEUE_TRANSFER_BIT = 0x00000004, 115 VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008, 116 VK_QUEUE_PROTECTED_BIT = 0x00000010, 117 VK_QUEUE_VIDEO_DECODE_BIT_KHR = 0x00000020, 118 VK_QUEUE_VIDEO_ENCODE_BIT_KHR = 0x00000040, 119 VK_QUEUE_OPTICAL_FLOW_BIT_NV = 0x00000100, 120 VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 121 } VkQueueFlagBits; 122 typedef VkFlags VkQueueFlags; 123 124 typedef enum { 125 VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0x00000001, 126 VK_DEVICE_QUEUE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 127 } VkDeviceQueueCreateFlagBits; 128 typedef VkFlags VkDeviceQueueCreateFlags; 129 130 typedef enum VkPipelineStageFlagBits { 131 VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001, 132 VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002, 133 VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004, 134 VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008, 135 VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010, 136 VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020, 137 VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040, 138 VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080, 139 VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100, 140 VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200, 141 VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400, 142 VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800, 143 VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000, 144 VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000, 145 VK_PIPELINE_STAGE_HOST_BIT = 0x00004000, 146 VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000, 147 VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000, 148 VK_PIPELINE_STAGE_NONE = 0, 149 VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000, 150 VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000, 151 VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000, 152 VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR = 0x00200000, 153 VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000, 154 VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00400000, 155 VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT = 0x00080000, 156 VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT = 0x00100000, 157 VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_EXT = 0x00020000, 158 VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 159 } VkPipelineStageFlagBits; 160 typedef VkFlags VkPipelineStageFlags; 161 162 typedef VkFlags VkDeviceCreateFlags; 163 164 typedef enum { 165 VK_SAMPLE_COUNT_1_BIT = 0x00000001, 166 VK_SAMPLE_COUNT_2_BIT = 0x00000002, 167 VK_SAMPLE_COUNT_4_BIT = 0x00000004, 168 VK_SAMPLE_COUNT_8_BIT = 0x00000008, 169 VK_SAMPLE_COUNT_16_BIT = 0x00000010, 170 VK_SAMPLE_COUNT_32_BIT = 0x00000020, 171 VK_SAMPLE_COUNT_64_BIT = 0x00000040, 172 VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 173 } VkSampleCountFlagBits; 174 typedef VkFlags VkSampleCountFlags; 175 176 typedef enum { 177 VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001, 178 VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002, 179 VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004, 180 VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008, 181 VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010, 182 VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020, 183 VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040, 184 VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080, 185 VK_IMAGE_USAGE_HOST_TRANSFER_BIT = 0x00400000, 186 VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0x00000400, 187 VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0x00000800, 188 VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR = 0x00001000, 189 VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x00000200, 190 VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00000100, 191 VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0x00002000, 192 VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0x00004000, 193 VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR = 0x00008000, 194 VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x00080000, 195 VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI = 0x00040000, 196 VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM = 0x00100000, 197 VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM = 0x00200000, 198 VK_IMAGE_USAGE_TILE_MEMORY_QCOM = 0x08000000, 199 VK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x02000000, 200 VK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR = 0x04000000, 201 VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR, 202 VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT = VK_IMAGE_USAGE_HOST_TRANSFER_BIT, 203 VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 204 } VkImageUsageFlagBits; 205 typedef VkFlags VkImageUsageFlags; 206 207 typedef enum { 208 VK_COMPONENT_SWIZZLE_IDENTITY = 0, 209 VK_COMPONENT_SWIZZLE_ZERO = 1, 210 VK_COMPONENT_SWIZZLE_ONE = 2, 211 VK_COMPONENT_SWIZZLE_R = 3, 212 VK_COMPONENT_SWIZZLE_G = 4, 213 VK_COMPONENT_SWIZZLE_B = 5, 214 VK_COMPONENT_SWIZZLE_A = 6, 215 VK_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF 216 } VkComponentSwizzle; 217 218 typedef enum { 219 VK_IMAGE_VIEW_TYPE_1D = 0, 220 VK_IMAGE_VIEW_TYPE_2D = 1, 221 VK_IMAGE_VIEW_TYPE_3D = 2, 222 VK_IMAGE_VIEW_TYPE_CUBE = 3, 223 VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4, 224 VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5, 225 VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6, 226 VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF 227 } VkImageViewType; 228 229 typedef enum { 230 VK_BLEND_FACTOR_ZERO = 0, 231 VK_BLEND_FACTOR_ONE = 1, 232 VK_BLEND_FACTOR_SRC_COLOR = 2, 233 VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3, 234 VK_BLEND_FACTOR_DST_COLOR = 4, 235 VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5, 236 VK_BLEND_FACTOR_SRC_ALPHA = 6, 237 VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7, 238 VK_BLEND_FACTOR_DST_ALPHA = 8, 239 VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9, 240 VK_BLEND_FACTOR_CONSTANT_COLOR = 10, 241 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11, 242 VK_BLEND_FACTOR_CONSTANT_ALPHA = 12, 243 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13, 244 VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14, 245 VK_BLEND_FACTOR_SRC1_COLOR = 15, 246 VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16, 247 VK_BLEND_FACTOR_SRC1_ALPHA = 17, 248 VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18, 249 VK_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF 250 } VkBlendFactor; 251 252 typedef enum { 253 VK_BLEND_OP_ADD = 0, 254 VK_BLEND_OP_SUBTRACT = 1, 255 VK_BLEND_OP_REVERSE_SUBTRACT = 2, 256 VK_BLEND_OP_MIN = 3, 257 VK_BLEND_OP_MAX = 4, 258 VK_BLEND_OP_ZERO_EXT = 1000148000, 259 VK_BLEND_OP_SRC_EXT = 1000148001, 260 VK_BLEND_OP_DST_EXT = 1000148002, 261 VK_BLEND_OP_SRC_OVER_EXT = 1000148003, 262 VK_BLEND_OP_DST_OVER_EXT = 1000148004, 263 VK_BLEND_OP_SRC_IN_EXT = 1000148005, 264 VK_BLEND_OP_DST_IN_EXT = 1000148006, 265 VK_BLEND_OP_SRC_OUT_EXT = 1000148007, 266 VK_BLEND_OP_DST_OUT_EXT = 1000148008, 267 VK_BLEND_OP_SRC_ATOP_EXT = 1000148009, 268 VK_BLEND_OP_DST_ATOP_EXT = 1000148010, 269 VK_BLEND_OP_XOR_EXT = 1000148011, 270 VK_BLEND_OP_MULTIPLY_EXT = 1000148012, 271 VK_BLEND_OP_SCREEN_EXT = 1000148013, 272 VK_BLEND_OP_OVERLAY_EXT = 1000148014, 273 VK_BLEND_OP_DARKEN_EXT = 1000148015, 274 VK_BLEND_OP_LIGHTEN_EXT = 1000148016, 275 VK_BLEND_OP_COLORDODGE_EXT = 1000148017, 276 VK_BLEND_OP_COLORBURN_EXT = 1000148018, 277 VK_BLEND_OP_HARDLIGHT_EXT = 1000148019, 278 VK_BLEND_OP_SOFTLIGHT_EXT = 1000148020, 279 VK_BLEND_OP_DIFFERENCE_EXT = 1000148021, 280 VK_BLEND_OP_EXCLUSION_EXT = 1000148022, 281 VK_BLEND_OP_INVERT_EXT = 1000148023, 282 VK_BLEND_OP_INVERT_RGB_EXT = 1000148024, 283 VK_BLEND_OP_LINEARDODGE_EXT = 1000148025, 284 VK_BLEND_OP_LINEARBURN_EXT = 1000148026, 285 VK_BLEND_OP_VIVIDLIGHT_EXT = 1000148027, 286 VK_BLEND_OP_LINEARLIGHT_EXT = 1000148028, 287 VK_BLEND_OP_PINLIGHT_EXT = 1000148029, 288 VK_BLEND_OP_HARDMIX_EXT = 1000148030, 289 VK_BLEND_OP_HSL_HUE_EXT = 1000148031, 290 VK_BLEND_OP_HSL_SATURATION_EXT = 1000148032, 291 VK_BLEND_OP_HSL_COLOR_EXT = 1000148033, 292 VK_BLEND_OP_HSL_LUMINOSITY_EXT = 1000148034, 293 VK_BLEND_OP_PLUS_EXT = 1000148035, 294 VK_BLEND_OP_PLUS_CLAMPED_EXT = 1000148036, 295 VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037, 296 VK_BLEND_OP_PLUS_DARKER_EXT = 1000148038, 297 VK_BLEND_OP_MINUS_EXT = 1000148039, 298 VK_BLEND_OP_MINUS_CLAMPED_EXT = 1000148040, 299 VK_BLEND_OP_CONTRAST_EXT = 1000148041, 300 VK_BLEND_OP_INVERT_OVG_EXT = 1000148042, 301 VK_BLEND_OP_RED_EXT = 1000148043, 302 VK_BLEND_OP_GREEN_EXT = 1000148044, 303 VK_BLEND_OP_BLUE_EXT = 1000148045, 304 VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF 305 } VkBlendOp; 306 307 typedef enum { 308 VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001, 309 VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 310 } VkFenceCreateFlagBits; 311 typedef VkFlags VkFenceCreateFlags; 312 typedef VkFlags VkSemaphoreCreateFlags; 313 314 typedef enum { 315 VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 0x00000001, 316 VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000004, 317 VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = 0x00000002, 318 VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 319 } VkImageViewCreateFlagBits; 320 typedef VkFlags VkImageViewCreateFlags; 321 typedef VkFlags VkShaderModuleCreateFlags; 322 323 typedef enum { 324 VK_COLOR_COMPONENT_R_BIT = 0x00000001, 325 VK_COLOR_COMPONENT_G_BIT = 0x00000002, 326 VK_COLOR_COMPONENT_B_BIT = 0x00000004, 327 VK_COLOR_COMPONENT_A_BIT = 0x00000008, 328 VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 329 } VkColorComponentFlagBits; 330 typedef VkFlags VkColorComponentFlags; 331 332 typedef enum { 333 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001, 334 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002, 335 VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004, 336 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008, 337 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010, 338 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020, 339 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040, 340 VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080, 341 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100, 342 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200, 343 VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400, 344 VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT = 0x00000800, 345 VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT = 0x00001000, 346 VK_QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI = 0x00002000, 347 VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 348 } VkQueryPipelineStatisticFlagBits; 349 typedef VkFlags VkQueryPipelineStatisticFlags; 350 351 typedef enum { 352 VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001, 353 VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002, 354 VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004, 355 VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008, 356 VK_PIPELINE_CREATE_DISPATCH_BASE_BIT = 0x00000010, 357 VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT = 0x00000100, 358 VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT = 0x00000200, 359 VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT = 0x08000000, 360 VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT = 0x40000000, 361 VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = 0x00004000, 362 VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = 0x00008000, 363 VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = 0x00010000, 364 VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = 0x00020000, 365 VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = 0x00001000, 366 VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR = 0x00002000, 367 VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR = 0x00080000, 368 VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV = 0x00000020, 369 VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00400000, 370 VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00200000, 371 VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR = 0x00000040, 372 VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x00000080, 373 VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV = 0x00040000, 374 VK_PIPELINE_CREATE_LIBRARY_BIT_KHR = 0x00000800, 375 VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 0x20000000, 376 VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 0x00800000, 377 VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT = 0x00000400, 378 VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV = 0x00100000, 379 VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x02000000, 380 VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x04000000, 381 VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 0x01000000, 382 VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV = 0x10000000, 383 VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 384 } VkPipelineCreateFlagBits; 385 typedef VkFlags VkPipelineCreateFlags; 386 387 typedef enum { 388 VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001, 389 VK_ACCESS_INDEX_READ_BIT = 0x00000002, 390 VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004, 391 VK_ACCESS_UNIFORM_READ_BIT = 0x00000008, 392 VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010, 393 VK_ACCESS_SHADER_READ_BIT = 0x00000020, 394 VK_ACCESS_SHADER_WRITE_BIT = 0x00000040, 395 VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080, 396 VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100, 397 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200, 398 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400, 399 VK_ACCESS_TRANSFER_READ_BIT = 0x00000800, 400 VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000, 401 VK_ACCESS_HOST_READ_BIT = 0x00002000, 402 VK_ACCESS_HOST_WRITE_BIT = 0x00004000, 403 VK_ACCESS_MEMORY_READ_BIT = 0x00008000, 404 VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000, 405 VK_ACCESS_NONE = 0, 406 VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000, 407 VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000, 408 VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000, 409 VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000, 410 VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000, 411 VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000, 412 VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000, 413 VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000, 414 VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000, 415 VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_EXT = 0x00020000, 416 VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_EXT = 0x00040000, 417 VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 418 } VkAccessFlagBits; 419 typedef VkFlags VkAccessFlags; 420 421 typedef enum { 422 VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001, 423 VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002, 424 VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004, 425 VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008, 426 VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010, 427 VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020, 428 VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040, 429 VK_IMAGE_ASPECT_NONE = 0, 430 VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0x00000080, 431 VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0x00000100, 432 VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0x00000200, 433 VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0x00000400, 434 VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 435 } VkImageAspectFlagBits; 436 typedef VkFlags VkImageAspectFlags; 437 438 typedef enum { 439 VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001, 440 VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002, 441 VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 0x00000004, 442 VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT = 0x00000008, 443 VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF 444 } VkSwapchainCreateFlagBitsKHR; 445 typedef VkFlags VkSwapchainCreateFlagsKHR; 446 447 typedef enum { 448 VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001, 449 VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002, 450 VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004, 451 VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008, 452 VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF 453 } VkCompositeAlphaFlagBitsKHR; 454 typedef VkFlags VkCompositeAlphaFlagsKHR; 455 typedef VkFlags VkSurfaceTransformFlagsKHR; 456 457 typedef enum { 458 VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001, 459 VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002, 460 VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004, 461 VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008, 462 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010, 463 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020, 464 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040, 465 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080, 466 VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100, 467 VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF 468 } VkSurfaceTransformFlagBitsKHR; 469 470 typedef enum { 471 VK_PRESENT_MODE_IMMEDIATE_KHR = 0, 472 VK_PRESENT_MODE_MAILBOX_KHR = 1, 473 VK_PRESENT_MODE_FIFO_KHR = 2, 474 VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3, 475 VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000, 476 VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001, 477 VK_PRESENT_MODE_FIFO_LATEST_READY_EXT = 1000361000, 478 VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF 479 } VkPresentModeKHR; 480 481 typedef enum { 482 VK_FORMAT_UNDEFINED = 0, 483 VK_FORMAT_R4G4_UNORM_PACK8 = 1, 484 VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2, 485 VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3, 486 VK_FORMAT_R5G6B5_UNORM_PACK16 = 4, 487 VK_FORMAT_B5G6R5_UNORM_PACK16 = 5, 488 VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6, 489 VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7, 490 VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8, 491 VK_FORMAT_R8_UNORM = 9, 492 VK_FORMAT_R8_SNORM = 10, 493 VK_FORMAT_R8_USCALED = 11, 494 VK_FORMAT_R8_SSCALED = 12, 495 VK_FORMAT_R8_UINT = 13, 496 VK_FORMAT_R8_SINT = 14, 497 VK_FORMAT_R8_SRGB = 15, 498 VK_FORMAT_R8G8_UNORM = 16, 499 VK_FORMAT_R8G8_SNORM = 17, 500 VK_FORMAT_R8G8_USCALED = 18, 501 VK_FORMAT_R8G8_SSCALED = 19, 502 VK_FORMAT_R8G8_UINT = 20, 503 VK_FORMAT_R8G8_SINT = 21, 504 VK_FORMAT_R8G8_SRGB = 22, 505 VK_FORMAT_R8G8B8_UNORM = 23, 506 VK_FORMAT_R8G8B8_SNORM = 24, 507 VK_FORMAT_R8G8B8_USCALED = 25, 508 VK_FORMAT_R8G8B8_SSCALED = 26, 509 VK_FORMAT_R8G8B8_UINT = 27, 510 VK_FORMAT_R8G8B8_SINT = 28, 511 VK_FORMAT_R8G8B8_SRGB = 29, 512 VK_FORMAT_B8G8R8_UNORM = 30, 513 VK_FORMAT_B8G8R8_SNORM = 31, 514 VK_FORMAT_B8G8R8_USCALED = 32, 515 VK_FORMAT_B8G8R8_SSCALED = 33, 516 VK_FORMAT_B8G8R8_UINT = 34, 517 VK_FORMAT_B8G8R8_SINT = 35, 518 VK_FORMAT_B8G8R8_SRGB = 36, 519 VK_FORMAT_R8G8B8A8_UNORM = 37, 520 VK_FORMAT_R8G8B8A8_SNORM = 38, 521 VK_FORMAT_R8G8B8A8_USCALED = 39, 522 VK_FORMAT_R8G8B8A8_SSCALED = 40, 523 VK_FORMAT_R8G8B8A8_UINT = 41, 524 VK_FORMAT_R8G8B8A8_SINT = 42, 525 VK_FORMAT_R8G8B8A8_SRGB = 43, 526 VK_FORMAT_B8G8R8A8_UNORM = 44, 527 VK_FORMAT_B8G8R8A8_SNORM = 45, 528 VK_FORMAT_B8G8R8A8_USCALED = 46, 529 VK_FORMAT_B8G8R8A8_SSCALED = 47, 530 VK_FORMAT_B8G8R8A8_UINT = 48, 531 VK_FORMAT_B8G8R8A8_SINT = 49, 532 VK_FORMAT_B8G8R8A8_SRGB = 50, 533 VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51, 534 VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52, 535 VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53, 536 VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54, 537 VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55, 538 VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56, 539 VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57, 540 VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58, 541 VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59, 542 VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60, 543 VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61, 544 VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62, 545 VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63, 546 VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64, 547 VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65, 548 VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66, 549 VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67, 550 VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68, 551 VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69, 552 VK_FORMAT_R16_UNORM = 70, 553 VK_FORMAT_R16_SNORM = 71, 554 VK_FORMAT_R16_USCALED = 72, 555 VK_FORMAT_R16_SSCALED = 73, 556 VK_FORMAT_R16_UINT = 74, 557 VK_FORMAT_R16_SINT = 75, 558 VK_FORMAT_R16_SFLOAT = 76, 559 VK_FORMAT_R16G16_UNORM = 77, 560 VK_FORMAT_R16G16_SNORM = 78, 561 VK_FORMAT_R16G16_USCALED = 79, 562 VK_FORMAT_R16G16_SSCALED = 80, 563 VK_FORMAT_R16G16_UINT = 81, 564 VK_FORMAT_R16G16_SINT = 82, 565 VK_FORMAT_R16G16_SFLOAT = 83, 566 VK_FORMAT_R16G16B16_UNORM = 84, 567 VK_FORMAT_R16G16B16_SNORM = 85, 568 VK_FORMAT_R16G16B16_USCALED = 86, 569 VK_FORMAT_R16G16B16_SSCALED = 87, 570 VK_FORMAT_R16G16B16_UINT = 88, 571 VK_FORMAT_R16G16B16_SINT = 89, 572 VK_FORMAT_R16G16B16_SFLOAT = 90, 573 VK_FORMAT_R16G16B16A16_UNORM = 91, 574 VK_FORMAT_R16G16B16A16_SNORM = 92, 575 VK_FORMAT_R16G16B16A16_USCALED = 93, 576 VK_FORMAT_R16G16B16A16_SSCALED = 94, 577 VK_FORMAT_R16G16B16A16_UINT = 95, 578 VK_FORMAT_R16G16B16A16_SINT = 96, 579 VK_FORMAT_R16G16B16A16_SFLOAT = 97, 580 VK_FORMAT_R32_UINT = 98, 581 VK_FORMAT_R32_SINT = 99, 582 VK_FORMAT_R32_SFLOAT = 100, 583 VK_FORMAT_R32G32_UINT = 101, 584 VK_FORMAT_R32G32_SINT = 102, 585 VK_FORMAT_R32G32_SFLOAT = 103, 586 VK_FORMAT_R32G32B32_UINT = 104, 587 VK_FORMAT_R32G32B32_SINT = 105, 588 VK_FORMAT_R32G32B32_SFLOAT = 106, 589 VK_FORMAT_R32G32B32A32_UINT = 107, 590 VK_FORMAT_R32G32B32A32_SINT = 108, 591 VK_FORMAT_R32G32B32A32_SFLOAT = 109, 592 VK_FORMAT_R64_UINT = 110, 593 VK_FORMAT_R64_SINT = 111, 594 VK_FORMAT_R64_SFLOAT = 112, 595 VK_FORMAT_R64G64_UINT = 113, 596 VK_FORMAT_R64G64_SINT = 114, 597 VK_FORMAT_R64G64_SFLOAT = 115, 598 VK_FORMAT_R64G64B64_UINT = 116, 599 VK_FORMAT_R64G64B64_SINT = 117, 600 VK_FORMAT_R64G64B64_SFLOAT = 118, 601 VK_FORMAT_R64G64B64A64_UINT = 119, 602 VK_FORMAT_R64G64B64A64_SINT = 120, 603 VK_FORMAT_R64G64B64A64_SFLOAT = 121, 604 VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122, 605 VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123, 606 VK_FORMAT_D16_UNORM = 124, 607 VK_FORMAT_X8_D24_UNORM_PACK32 = 125, 608 VK_FORMAT_D32_SFLOAT = 126, 609 VK_FORMAT_S8_UINT = 127, 610 VK_FORMAT_D16_UNORM_S8_UINT = 128, 611 VK_FORMAT_D24_UNORM_S8_UINT = 129, 612 VK_FORMAT_D32_SFLOAT_S8_UINT = 130, 613 VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131, 614 VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132, 615 VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133, 616 VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134, 617 VK_FORMAT_BC2_UNORM_BLOCK = 135, 618 VK_FORMAT_BC2_SRGB_BLOCK = 136, 619 VK_FORMAT_BC3_UNORM_BLOCK = 137, 620 VK_FORMAT_BC3_SRGB_BLOCK = 138, 621 VK_FORMAT_BC4_UNORM_BLOCK = 139, 622 VK_FORMAT_BC4_SNORM_BLOCK = 140, 623 VK_FORMAT_BC5_UNORM_BLOCK = 141, 624 VK_FORMAT_BC5_SNORM_BLOCK = 142, 625 VK_FORMAT_BC6H_UFLOAT_BLOCK = 143, 626 VK_FORMAT_BC6H_SFLOAT_BLOCK = 144, 627 VK_FORMAT_BC7_UNORM_BLOCK = 145, 628 VK_FORMAT_BC7_SRGB_BLOCK = 146, 629 VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147, 630 VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148, 631 VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149, 632 VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150, 633 VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151, 634 VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152, 635 VK_FORMAT_EAC_R11_UNORM_BLOCK = 153, 636 VK_FORMAT_EAC_R11_SNORM_BLOCK = 154, 637 VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155, 638 VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156, 639 VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157, 640 VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158, 641 VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159, 642 VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160, 643 VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161, 644 VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162, 645 VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163, 646 VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164, 647 VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165, 648 VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166, 649 VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167, 650 VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168, 651 VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169, 652 VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170, 653 VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171, 654 VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172, 655 VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173, 656 VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174, 657 VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175, 658 VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176, 659 VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177, 660 VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178, 661 VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179, 662 VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180, 663 VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181, 664 VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182, 665 VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183, 666 VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184, 667 VK_FORMAT_G8B8G8R8_422_UNORM = 1000156000, 668 VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001, 669 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002, 670 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003, 671 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004, 672 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005, 673 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006, 674 VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007, 675 VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008, 676 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009, 677 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010, 678 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011, 679 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012, 680 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013, 681 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014, 682 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015, 683 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016, 684 VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017, 685 VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018, 686 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019, 687 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020, 688 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021, 689 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022, 690 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023, 691 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024, 692 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025, 693 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026, 694 VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027, 695 VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028, 696 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029, 697 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030, 698 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031, 699 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032, 700 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033, 701 VK_FORMAT_G8_B8R8_2PLANE_444_UNORM = 1000330000, 702 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16 = 1000330001, 703 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16 = 1000330002, 704 VK_FORMAT_G16_B16R16_2PLANE_444_UNORM = 1000330003, 705 VK_FORMAT_A4R4G4B4_UNORM_PACK16 = 1000340000, 706 VK_FORMAT_A4B4G4R4_UNORM_PACK16 = 1000340001, 707 VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK = 1000066000, 708 VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK = 1000066001, 709 VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK = 1000066002, 710 VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK = 1000066003, 711 VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK = 1000066004, 712 VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK = 1000066005, 713 VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK = 1000066006, 714 VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK = 1000066007, 715 VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK = 1000066008, 716 VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK = 1000066009, 717 VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK = 1000066010, 718 VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK = 1000066011, 719 VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK = 1000066012, 720 VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK = 1000066013, 721 VK_FORMAT_A1B5G5R5_UNORM_PACK16 = 1000470000, 722 VK_FORMAT_A8_UNORM = 1000470001, 723 VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000, 724 VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001, 725 VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002, 726 VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003, 727 VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004, 728 VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005, 729 VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006, 730 VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007, 731 VK_FORMAT_R16G16_SFIXED5_NV = 1000464000, 732 VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK, 733 VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK, 734 VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK, 735 VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK, 736 VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK, 737 VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK, 738 VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK, 739 VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK, 740 VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK, 741 VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK, 742 VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK, 743 VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK, 744 VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK, 745 VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK, 746 VK_FORMAT_G8B8G8R8_422_UNORM_KHR = VK_FORMAT_G8B8G8R8_422_UNORM, 747 VK_FORMAT_B8G8R8G8_422_UNORM_KHR = VK_FORMAT_B8G8R8G8_422_UNORM, 748 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM, 749 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM, 750 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM, 751 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM, 752 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM, 753 VK_FORMAT_R10X6_UNORM_PACK16_KHR = VK_FORMAT_R10X6_UNORM_PACK16, 754 VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR = VK_FORMAT_R10X6G10X6_UNORM_2PACK16, 755 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16, 756 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16, 757 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16, 758 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16, 759 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16, 760 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16, 761 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16, 762 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16, 763 VK_FORMAT_R12X4_UNORM_PACK16_KHR = VK_FORMAT_R12X4_UNORM_PACK16, 764 VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR = VK_FORMAT_R12X4G12X4_UNORM_2PACK16, 765 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16, 766 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16, 767 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16, 768 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16, 769 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16, 770 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16, 771 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16, 772 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16, 773 VK_FORMAT_G16B16G16R16_422_UNORM_KHR = VK_FORMAT_G16B16G16R16_422_UNORM, 774 VK_FORMAT_B16G16R16G16_422_UNORM_KHR = VK_FORMAT_B16G16R16G16_422_UNORM, 775 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM, 776 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM, 777 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM, 778 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM, 779 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM, 780 VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT = VK_FORMAT_G8_B8R8_2PLANE_444_UNORM, 781 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16, 782 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16, 783 VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT = VK_FORMAT_G16_B16R16_2PLANE_444_UNORM, 784 VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT = VK_FORMAT_A4R4G4B4_UNORM_PACK16, 785 VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT = VK_FORMAT_A4B4G4R4_UNORM_PACK16, 786 VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR = VK_FORMAT_A1B5G5R5_UNORM_PACK16, 787 VK_FORMAT_A8_UNORM_KHR = VK_FORMAT_A8_UNORM, 788 VK_FORMAT_MAX_ENUM = 0x7FFFFFFF 789 } VkFormat; 790 791 typedef enum { 792 VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0, 793 VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001, 794 VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002, 795 VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT = 1000104003, 796 VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004, 797 VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005, 798 VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006, 799 VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007, 800 VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008, 801 // VK_COLOR_SPACE_DOLBYVISION_EXT is deprecated, but no reason was given in the API XML 802 VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009, 803 VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010, 804 VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011, 805 VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012, 806 VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013, 807 VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014, 808 VK_COLOR_SPACE_DISPLAY_NATIVE_AMD = 1000213000, 809 VK_COLOR_SPACE_MAX_ENUM_KHR = 0x7FFFFFFF 810 } VkColorSpaceKHR; 811 812 typedef enum { 813 VK_SHARING_MODE_EXCLUSIVE = 0, 814 VK_SHARING_MODE_CONCURRENT = 1, 815 VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF 816 } VkSharingMode; 817 818 typedef enum { 819 VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT = 0x00000001, 820 VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT = 0x00000002, 821 VK_PIPELINE_SHADER_STAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 822 } VkPipelineShaderStageCreateFlagBits; 823 typedef VkFlags VkPipelineShaderStageCreateFlags; 824 825 typedef enum { 826 VK_SHADER_STAGE_VERTEX_BIT = 0x00000001, 827 VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002, 828 VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004, 829 VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008, 830 VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010, 831 VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020, 832 VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F, 833 VK_SHADER_STAGE_ALL = 0x7FFFFFFF, 834 VK_SHADER_STAGE_RAYGEN_BIT_KHR = 0x00000100, 835 VK_SHADER_STAGE_ANY_HIT_BIT_KHR = 0x00000200, 836 VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR = 0x00000400, 837 VK_SHADER_STAGE_MISS_BIT_KHR = 0x00000800, 838 VK_SHADER_STAGE_INTERSECTION_BIT_KHR = 0x00001000, 839 VK_SHADER_STAGE_CALLABLE_BIT_KHR = 0x00002000, 840 VK_SHADER_STAGE_TASK_BIT_EXT = 0x00000040, 841 VK_SHADER_STAGE_MESH_BIT_EXT = 0x00000080, 842 VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI = 0x00004000, 843 VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI = 0x00080000, 844 VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 845 } VkShaderStageFlagBits; 846 typedef VkFlags VkShaderStageFlags; 847 848 typedef enum { 849 VK_COMPARE_OP_NEVER = 0, 850 VK_COMPARE_OP_LESS = 1, 851 VK_COMPARE_OP_EQUAL = 2, 852 VK_COMPARE_OP_LESS_OR_EQUAL = 3, 853 VK_COMPARE_OP_GREATER = 4, 854 VK_COMPARE_OP_NOT_EQUAL = 5, 855 VK_COMPARE_OP_GREATER_OR_EQUAL = 6, 856 VK_COMPARE_OP_ALWAYS = 7, 857 VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF 858 } VkCompareOp; 859 860 typedef enum { 861 VK_DYNAMIC_STATE_VIEWPORT = 0, 862 VK_DYNAMIC_STATE_SCISSOR = 1, 863 VK_DYNAMIC_STATE_LINE_WIDTH = 2, 864 VK_DYNAMIC_STATE_DEPTH_BIAS = 3, 865 VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4, 866 VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5, 867 VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6, 868 VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7, 869 VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8, 870 VK_DYNAMIC_STATE_CULL_MODE = 1000267000, 871 VK_DYNAMIC_STATE_FRONT_FACE = 1000267001, 872 VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY = 1000267002, 873 VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT = 1000267003, 874 VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT = 1000267004, 875 VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE = 1000267005, 876 VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE = 1000267006, 877 VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE = 1000267007, 878 VK_DYNAMIC_STATE_DEPTH_COMPARE_OP = 1000267008, 879 VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE = 1000267009, 880 VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE = 1000267010, 881 VK_DYNAMIC_STATE_STENCIL_OP = 1000267011, 882 VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE = 1000377001, 883 VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE = 1000377002, 884 VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE = 1000377004, 885 VK_DYNAMIC_STATE_LINE_STIPPLE = 1000259000, 886 VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000, 887 VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000, 888 VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT = 1000099001, 889 VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT = 1000099002, 890 VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000, 891 VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR = 1000347000, 892 VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV = 1000164004, 893 VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = 1000164006, 894 VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV = 1000205000, 895 VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = 1000205001, 896 VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR = 1000226000, 897 VK_DYNAMIC_STATE_VERTEX_INPUT_EXT = 1000352000, 898 VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT = 1000377000, 899 VK_DYNAMIC_STATE_LOGIC_OP_EXT = 1000377003, 900 VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT = 1000381000, 901 VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT = 1000455003, 902 VK_DYNAMIC_STATE_POLYGON_MODE_EXT = 1000455004, 903 VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT = 1000455005, 904 VK_DYNAMIC_STATE_SAMPLE_MASK_EXT = 1000455006, 905 VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT = 1000455007, 906 VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT = 1000455008, 907 VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT = 1000455009, 908 VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT = 1000455010, 909 VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT = 1000455011, 910 VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT = 1000455012, 911 VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT = 1000455002, 912 VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT = 1000455013, 913 VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT = 1000455014, 914 VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT = 1000455015, 915 VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT = 1000455016, 916 VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT = 1000455017, 917 VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT = 1000455018, 918 VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT = 1000455019, 919 VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT = 1000455020, 920 VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT = 1000455021, 921 VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT = 1000455022, 922 VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV = 1000455023, 923 VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV = 1000455024, 924 VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV = 1000455025, 925 VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV = 1000455026, 926 VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV = 1000455027, 927 VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV = 1000455028, 928 VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV = 1000455029, 929 VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV = 1000455030, 930 VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV = 1000455031, 931 VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV = 1000455032, 932 VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT = 1000524000, 933 VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT = 1000582000, 934 VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF 935 } VkDynamicState; 936 937 typedef enum VkFrontFace { 938 VK_FRONT_FACE_COUNTER_CLOCKWISE = 0, 939 VK_FRONT_FACE_CLOCKWISE = 1, 940 VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF 941 } VkFrontFace; 942 943 typedef enum { 944 VK_VERTEX_INPUT_RATE_VERTEX = 0, 945 VK_VERTEX_INPUT_RATE_INSTANCE = 1, 946 VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF 947 } VkVertexInputRate; 948 949 typedef enum { 950 VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0, 951 VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1, 952 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2, 953 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3, 954 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4, 955 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5, 956 VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6, 957 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7, 958 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8, 959 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9, 960 VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10, 961 VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF 962 } VkPrimitiveTopology; 963 964 typedef enum { 965 VK_POLYGON_MODE_FILL = 0, 966 VK_POLYGON_MODE_LINE = 1, 967 VK_POLYGON_MODE_POINT = 2, 968 VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000, 969 VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF 970 } VkPolygonMode; 971 972 typedef enum { 973 VK_STENCIL_OP_KEEP = 0, 974 VK_STENCIL_OP_ZERO = 1, 975 VK_STENCIL_OP_REPLACE = 2, 976 VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3, 977 VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4, 978 VK_STENCIL_OP_INVERT = 5, 979 VK_STENCIL_OP_INCREMENT_AND_WRAP = 6, 980 VK_STENCIL_OP_DECREMENT_AND_WRAP = 7, 981 VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF 982 } VkStencilOp; 983 984 typedef enum VkLogicOp { 985 VK_LOGIC_OP_CLEAR = 0, 986 VK_LOGIC_OP_AND = 1, 987 VK_LOGIC_OP_AND_REVERSE = 2, 988 VK_LOGIC_OP_COPY = 3, 989 VK_LOGIC_OP_AND_INVERTED = 4, 990 VK_LOGIC_OP_NO_OP = 5, 991 VK_LOGIC_OP_XOR = 6, 992 VK_LOGIC_OP_OR = 7, 993 VK_LOGIC_OP_NOR = 8, 994 VK_LOGIC_OP_EQUIVALENT = 9, 995 VK_LOGIC_OP_INVERT = 10, 996 VK_LOGIC_OP_OR_REVERSE = 11, 997 VK_LOGIC_OP_COPY_INVERTED = 12, 998 VK_LOGIC_OP_OR_INVERTED = 13, 999 VK_LOGIC_OP_NAND = 14, 1000 VK_LOGIC_OP_SET = 15, 1001 VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF 1002 } VkLogicOp; 1003 1004 typedef enum { 1005 VK_CULL_MODE_NONE = 0, 1006 VK_CULL_MODE_FRONT_BIT = 0x00000001, 1007 VK_CULL_MODE_BACK_BIT = 0x00000002, 1008 VK_CULL_MODE_FRONT_AND_BACK = 0x00000003, 1009 VK_CULL_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1010 } VkCullModeFlagBits; 1011 typedef VkFlags VkCullModeFlags; 1012 1013 typedef enum { 1014 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 0x00000001, 1015 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 0x00000002, 1016 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1017 } VkPipelineDepthStencilStateCreateFlagBits; 1018 typedef VkFlags VkPipelineDepthStencilStateCreateFlags; 1019 1020 1021 typedef enum { 1022 VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT = 0x00000001, 1023 VK_PIPELINE_COLOR_BLEND_STATE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1024 } VkPipelineColorBlendStateCreateFlagBits; 1025 typedef VkFlags VkPipelineColorBlendStateCreateFlags; 1026 typedef VkFlags VkPipelineDynamicStateCreateFlags; 1027 1028 typedef enum { 1029 VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT = 0x00000002, 1030 VK_PIPELINE_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1031 } VkPipelineLayoutCreateFlagBits; 1032 typedef VkFlags VkPipelineLayoutCreateFlags; 1033 1034 typedef VkFlags VkPipelineDynamicStateCreateFlags; 1035 typedef VkFlags VkPipelineVertexInputStateCreateFlags; 1036 typedef VkFlags VkPipelineInputAssemblyStateCreateFlags; 1037 typedef VkFlags VkPipelineTessellationStateCreateFlags; 1038 typedef VkFlags VkPipelineViewportStateCreateFlags; 1039 typedef VkFlags VkPipelineRasterizationStateCreateFlags; 1040 typedef VkFlags VkPipelineMultisampleStateCreateFlags; 1041 1042 typedef enum { 1043 VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001, 1044 VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1045 } VkAttachmentDescriptionFlagBits; 1046 typedef VkFlags VkAttachmentDescriptionFlags; 1047 1048 typedef enum { 1049 VK_ATTACHMENT_LOAD_OP_LOAD = 0, 1050 VK_ATTACHMENT_LOAD_OP_CLEAR = 1, 1051 VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2, 1052 VK_ATTACHMENT_LOAD_OP_NONE = 1000400000, 1053 VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF 1054 } VkAttachmentLoadOp; 1055 1056 typedef enum { 1057 VK_ATTACHMENT_STORE_OP_STORE = 0, 1058 VK_ATTACHMENT_STORE_OP_DONT_CARE = 1, 1059 VK_ATTACHMENT_STORE_OP_NONE = 1000301000, 1060 VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF 1061 } VkAttachmentStoreOp; 1062 1063 typedef enum { 1064 VK_PIPELINE_BIND_POINT_GRAPHICS = 0, 1065 VK_PIPELINE_BIND_POINT_COMPUTE = 1, 1066 VK_PIPELINE_BIND_POINT_EXECUTION_GRAPH_AMDX = 1000134000, 1067 VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR = 1000165000, 1068 VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI = 1000369003, 1069 VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF 1070 } VkPipelineBindPoint; 1071 1072 typedef enum { 1073 VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0, 1074 VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1, 1075 VK_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF 1076 } VkCommandBufferLevel; 1077 1078 typedef enum { 1079 VK_SUBPASS_CONTENTS_INLINE = 0, 1080 VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1, 1081 VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR = 1000451000, 1082 VK_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF 1083 } VkSubpassContents; 1084 1085 typedef enum { 1086 VK_IMAGE_LAYOUT_UNDEFINED = 0, 1087 VK_IMAGE_LAYOUT_GENERAL = 1, 1088 VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2, 1089 VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3, 1090 VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4, 1091 VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5, 1092 VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6, 1093 VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7, 1094 VK_IMAGE_LAYOUT_PREINITIALIZED = 8, 1095 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000, 1096 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001, 1097 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL = 1000241000, 1098 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL = 1000241001, 1099 VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL = 1000241002, 1100 VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL = 1000241003, 1101 VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL = 1000314000, 1102 VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL = 1000314001, 1103 VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ = 1000232000, 1104 VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002, 1105 VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR = 1000024000, 1106 VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR = 1000024001, 1107 VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR = 1000024002, 1108 VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000, 1109 VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000, 1110 VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR = 1000164003, 1111 VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR = 1000299000, 1112 VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR = 1000299001, 1113 VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR = 1000299002, 1114 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT = 1000339000, 1115 VK_IMAGE_LAYOUT_VIDEO_ENCODE_QUANTIZATION_MAP_KHR = 1000553000, 1116 VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF 1117 } VkImageLayout; 1118 1119 typedef enum { 1120 VK_DEPENDENCY_BY_REGION_BIT = 0x00000001, 1121 VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004, 1122 VK_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002, 1123 VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT = 0x00000008, 1124 VK_DEPENDENCY_QUEUE_FAMILY_OWNERSHIP_TRANSFER_USE_ALL_STAGES_BIT_KHR = 0x00000020, 1125 VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1126 } VkDependencyFlagBits; 1127 typedef VkFlags VkDependencyFlags; 1128 1129 typedef enum { 1130 VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT = 0x00000001, 1131 VK_FRAMEBUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1132 } VkFramebufferCreateFlagBits; 1133 typedef VkFlags VkFramebufferCreateFlags; 1134 1135 typedef enum { 1136 VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM = 0x00000002, 1137 VK_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1138 } VkRenderPassCreateFlagBits; 1139 typedef VkFlags VkRenderPassCreateFlags; 1140 1141 typedef enum { 1142 VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001, 1143 VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002, 1144 VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM = 0x00000004, 1145 VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM = 0x00000008, 1146 VK_SUBPASS_DESCRIPTION_TILE_SHADING_APRON_BIT_QCOM = 0x00000100, 1147 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT = 0x00000010, 1148 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 0x00000020, 1149 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 0x00000040, 1150 VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x00000080, 1151 VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1152 } VkSubpassDescriptionFlagBits; 1153 typedef VkFlags VkSubpassDescriptionFlags; 1154 1155 typedef enum { 1156 VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001, 1157 VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002, 1158 VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 0x00000004, 1159 VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1160 } VkCommandPoolCreateFlagBits; 1161 typedef VkFlags VkCommandPoolCreateFlags; 1162 1163 typedef enum { 1164 VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001, 1165 VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002, 1166 VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004, 1167 VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1168 } VkCommandBufferUsageFlagBits; 1169 typedef VkFlags VkCommandBufferUsageFlags; 1170 1171 typedef enum { 1172 VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001, 1173 VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1174 } VkQueryControlFlagBits; 1175 typedef VkFlags VkQueryControlFlags; 1176 1177 typedef enum { 1178 VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001, 1179 VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF 1180 } VkCommandBufferResetFlagBits; 1181 typedef VkFlags VkCommandBufferResetFlags; 1182 1183 typedef struct { 1184 uint32_t width; 1185 uint32_t height; 1186 } VkExtent2D; 1187 1188 typedef struct { 1189 uint32_t width; 1190 uint32_t height; 1191 uint32_t depth; 1192 } VkExtent3D; 1193 1194 typedef struct { 1195 int32_t x; 1196 int32_t y; 1197 } VkOffset2D; 1198 1199 typedef struct { 1200 VkOffset2D offset; 1201 VkExtent2D extent; 1202 } VkRect2D; 1203 1204 typedef struct { 1205 float x; 1206 float y; 1207 float width; 1208 float height; 1209 float minDepth; 1210 float maxDepth; 1211 } VkViewport; 1212 1213 typedef struct { 1214 char extensionName[VK_MAX_EXTENSION_NAME_SIZE]; 1215 uint32_t specVersion; 1216 } VkExtensionProperties; 1217 1218 typedef struct { 1219 char layerName[VK_MAX_EXTENSION_NAME_SIZE]; 1220 uint32_t specVersion; 1221 uint32_t implementationVersion; 1222 char description[VK_MAX_DESCRIPTION_SIZE]; 1223 } VkLayerProperties; 1224 1225 typedef struct { 1226 VkStructureType sType; 1227 const void *pNext; 1228 uint32_t waitSemaphoreCount; 1229 const VkSemaphore *pWaitSemaphores; 1230 const VkPipelineStageFlags *pWaitDstStageMask; 1231 uint32_t commandBufferCount; 1232 const VkCommandBuffer *pCommandBuffers; 1233 uint32_t signalSemaphoreCount; 1234 const VkSemaphore *pSignalSemaphores; 1235 } VkSubmitInfo; 1236 1237 typedef struct { 1238 VkStructureType sType; 1239 const void* pNext; 1240 const char* pApplicationName; 1241 uint32_t applicationVersion; 1242 const char* pEngineName; 1243 uint32_t engineVersion; 1244 uint32_t apiVersion; 1245 } VkApplicationInfo; 1246 1247 typedef struct { 1248 VkStructureType sType; 1249 const void* pNext; 1250 VkInstanceCreateFlags flags; 1251 const VkApplicationInfo* pApplicationInfo; 1252 uint32_t enabledLayerCount; 1253 const char* const* ppEnabledLayerNames; 1254 uint32_t enabledExtensionCount; 1255 const char* const* ppEnabledExtensionNames; 1256 } VkInstanceCreateInfo; 1257 1258 typedef struct { 1259 uint32_t maxImageDimension1D; 1260 uint32_t maxImageDimension2D; 1261 uint32_t maxImageDimension3D; 1262 uint32_t maxImageDimensionCube; 1263 uint32_t maxImageArrayLayers; 1264 uint32_t maxTexelBufferElements; 1265 uint32_t maxUniformBufferRange; 1266 uint32_t maxStorageBufferRange; 1267 uint32_t maxPushConstantsSize; 1268 uint32_t maxMemoryAllocationCount; 1269 uint32_t maxSamplerAllocationCount; 1270 VkDeviceSize bufferImageGranularity; 1271 VkDeviceSize sparseAddressSpaceSize; 1272 uint32_t maxBoundDescriptorSets; 1273 uint32_t maxPerStageDescriptorSamplers; 1274 uint32_t maxPerStageDescriptorUniformBuffers; 1275 uint32_t maxPerStageDescriptorStorageBuffers; 1276 uint32_t maxPerStageDescriptorSampledImages; 1277 uint32_t maxPerStageDescriptorStorageImages; 1278 uint32_t maxPerStageDescriptorInputAttachments; 1279 uint32_t maxPerStageResources; 1280 uint32_t maxDescriptorSetSamplers; 1281 uint32_t maxDescriptorSetUniformBuffers; 1282 uint32_t maxDescriptorSetUniformBuffersDynamic; 1283 uint32_t maxDescriptorSetStorageBuffers; 1284 uint32_t maxDescriptorSetStorageBuffersDynamic; 1285 uint32_t maxDescriptorSetSampledImages; 1286 uint32_t maxDescriptorSetStorageImages; 1287 uint32_t maxDescriptorSetInputAttachments; 1288 uint32_t maxVertexInputAttributes; 1289 uint32_t maxVertexInputBindings; 1290 uint32_t maxVertexInputAttributeOffset; 1291 uint32_t maxVertexInputBindingStride; 1292 uint32_t maxVertexOutputComponents; 1293 uint32_t maxTessellationGenerationLevel; 1294 uint32_t maxTessellationPatchSize; 1295 uint32_t maxTessellationControlPerVertexInputComponents; 1296 uint32_t maxTessellationControlPerVertexOutputComponents; 1297 uint32_t maxTessellationControlPerPatchOutputComponents; 1298 uint32_t maxTessellationControlTotalOutputComponents; 1299 uint32_t maxTessellationEvaluationInputComponents; 1300 uint32_t maxTessellationEvaluationOutputComponents; 1301 uint32_t maxGeometryShaderInvocations; 1302 uint32_t maxGeometryInputComponents; 1303 uint32_t maxGeometryOutputComponents; 1304 uint32_t maxGeometryOutputVertices; 1305 uint32_t maxGeometryTotalOutputComponents; 1306 uint32_t maxFragmentInputComponents; 1307 uint32_t maxFragmentOutputAttachments; 1308 uint32_t maxFragmentDualSrcAttachments; 1309 uint32_t maxFragmentCombinedOutputResources; 1310 uint32_t maxComputeSharedMemorySize; 1311 uint32_t maxComputeWorkGroupCount[3]; 1312 uint32_t maxComputeWorkGroupInvocations; 1313 uint32_t maxComputeWorkGroupSize[3]; 1314 uint32_t subPixelPrecisionBits; 1315 uint32_t subTexelPrecisionBits; 1316 uint32_t mipmapPrecisionBits; 1317 uint32_t maxDrawIndexedIndexValue; 1318 uint32_t maxDrawIndirectCount; 1319 float maxSamplerLodBias; 1320 float maxSamplerAnisotropy; 1321 uint32_t maxViewports; 1322 uint32_t maxViewportDimensions[2]; 1323 float viewportBoundsRange[2]; 1324 uint32_t viewportSubPixelBits; 1325 size_t minMemoryMapAlignment; 1326 VkDeviceSize minTexelBufferOffsetAlignment; 1327 VkDeviceSize minUniformBufferOffsetAlignment; 1328 VkDeviceSize minStorageBufferOffsetAlignment; 1329 int32_t minTexelOffset; 1330 uint32_t maxTexelOffset; 1331 int32_t minTexelGatherOffset; 1332 uint32_t maxTexelGatherOffset; 1333 float minInterpolationOffset; 1334 float maxInterpolationOffset; 1335 uint32_t subPixelInterpolationOffsetBits; 1336 uint32_t maxFramebufferWidth; 1337 uint32_t maxFramebufferHeight; 1338 uint32_t maxFramebufferLayers; 1339 VkSampleCountFlags framebufferColorSampleCounts; 1340 VkSampleCountFlags framebufferDepthSampleCounts; 1341 VkSampleCountFlags framebufferStencilSampleCounts; 1342 VkSampleCountFlags framebufferNoAttachmentsSampleCounts; 1343 uint32_t maxColorAttachments; 1344 VkSampleCountFlags sampledImageColorSampleCounts; 1345 VkSampleCountFlags sampledImageIntegerSampleCounts; 1346 VkSampleCountFlags sampledImageDepthSampleCounts; 1347 VkSampleCountFlags sampledImageStencilSampleCounts; 1348 VkSampleCountFlags storageImageSampleCounts; 1349 uint32_t maxSampleMaskWords; 1350 VkBool32 timestampComputeAndGraphics; 1351 float timestampPeriod; 1352 uint32_t maxClipDistances; 1353 uint32_t maxCullDistances; 1354 uint32_t maxCombinedClipAndCullDistances; 1355 uint32_t discreteQueuePriorities; 1356 float pointSizeRange[2]; 1357 float lineWidthRange[2]; 1358 float pointSizeGranularity; 1359 float lineWidthGranularity; 1360 VkBool32 strictLines; 1361 VkBool32 standardSampleLocations; 1362 VkDeviceSize optimalBufferCopyOffsetAlignment; 1363 VkDeviceSize optimalBufferCopyRowPitchAlignment; 1364 VkDeviceSize nonCoherentAtomSize; 1365 } VkPhysicalDeviceLimits; 1366 1367 typedef struct { 1368 VkBool32 residencyStandard2DBlockShape; 1369 VkBool32 residencyStandard2DMultisampleBlockShape; 1370 VkBool32 residencyStandard3DBlockShape; 1371 VkBool32 residencyAlignedMipSize; 1372 VkBool32 residencyNonResidentStrict; 1373 } VkPhysicalDeviceSparseProperties; 1374 1375 typedef struct { 1376 uint32_t apiVersion; 1377 uint32_t driverVersion; 1378 uint32_t vendorID; 1379 uint32_t deviceID; 1380 VkPhysicalDeviceType deviceType; 1381 char deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE]; 1382 uint8_t pipelineCacheUUID[VK_UUID_SIZE]; 1383 VkPhysicalDeviceLimits limits; 1384 VkPhysicalDeviceSparseProperties sparseProperties; 1385 } VkPhysicalDeviceProperties; 1386 1387 typedef struct { 1388 VkBool32 robustBufferAccess; 1389 VkBool32 fullDrawIndexUint32; 1390 VkBool32 imageCubeArray; 1391 VkBool32 independentBlend; 1392 VkBool32 geometryShader; 1393 VkBool32 tessellationShader; 1394 VkBool32 sampleRateShading; 1395 VkBool32 dualSrcBlend; 1396 VkBool32 logicOp; 1397 VkBool32 multiDrawIndirect; 1398 VkBool32 drawIndirectFirstInstance; 1399 VkBool32 depthClamp; 1400 VkBool32 depthBiasClamp; 1401 VkBool32 fillModeNonSolid; 1402 VkBool32 depthBounds; 1403 VkBool32 wideLines; 1404 VkBool32 largePoints; 1405 VkBool32 alphaToOne; 1406 VkBool32 multiViewport; 1407 VkBool32 samplerAnisotropy; 1408 VkBool32 textureCompressionETC2; 1409 VkBool32 textureCompressionASTC_LDR; 1410 VkBool32 textureCompressionBC; 1411 VkBool32 occlusionQueryPrecise; 1412 VkBool32 pipelineStatisticsQuery; 1413 VkBool32 vertexPipelineStoresAndAtomics; 1414 VkBool32 fragmentStoresAndAtomics; 1415 VkBool32 shaderTessellationAndGeometryPointSize; 1416 VkBool32 shaderImageGatherExtended; 1417 VkBool32 shaderStorageImageExtendedFormats; 1418 VkBool32 shaderStorageImageMultisample; 1419 VkBool32 shaderStorageImageReadWithoutFormat; 1420 VkBool32 shaderStorageImageWriteWithoutFormat; 1421 VkBool32 shaderUniformBufferArrayDynamicIndexing; 1422 VkBool32 shaderSampledImageArrayDynamicIndexing; 1423 VkBool32 shaderStorageBufferArrayDynamicIndexing; 1424 VkBool32 shaderStorageImageArrayDynamicIndexing; 1425 VkBool32 shaderClipDistance; 1426 VkBool32 shaderCullDistance; 1427 VkBool32 shaderFloat64; 1428 VkBool32 shaderInt64; 1429 VkBool32 shaderInt16; 1430 VkBool32 shaderResourceResidency; 1431 VkBool32 shaderResourceMinLod; 1432 VkBool32 sparseBinding; 1433 VkBool32 sparseResidencyBuffer; 1434 VkBool32 sparseResidencyImage2D; 1435 VkBool32 sparseResidencyImage3D; 1436 VkBool32 sparseResidency2Samples; 1437 VkBool32 sparseResidency4Samples; 1438 VkBool32 sparseResidency8Samples; 1439 VkBool32 sparseResidency16Samples; 1440 VkBool32 sparseResidencyAliased; 1441 VkBool32 variableMultisampleRate; 1442 VkBool32 inheritedQueries; 1443 } VkPhysicalDeviceFeatures; 1444 1445 typedef struct { 1446 VkQueueFlags queueFlags; 1447 uint32_t queueCount; 1448 uint32_t timestampValidBits; 1449 VkExtent3D minImageTransferGranularity; 1450 } VkQueueFamilyProperties; 1451 1452 typedef struct { 1453 VkStructureType sType; 1454 const void* pNext; 1455 VkDeviceQueueCreateFlags flags; 1456 uint32_t queueFamilyIndex; 1457 uint32_t queueCount; 1458 const float* pQueuePriorities; 1459 } VkDeviceQueueCreateInfo; 1460 1461 typedef struct { 1462 VkStructureType sType; 1463 const void* pNext; 1464 VkDeviceCreateFlags flags; 1465 uint32_t queueCreateInfoCount; 1466 const VkDeviceQueueCreateInfo* pQueueCreateInfos; 1467 uint32_t enabledLayerCount; // enabledLayerCount is deprecated 1468 const char* const* ppEnabledLayerNames; // ppEnabledLayerNames is deprecated 1469 uint32_t enabledExtensionCount; 1470 const char* const* ppEnabledExtensionNames; 1471 const VkPhysicalDeviceFeatures* pEnabledFeatures; 1472 } VkDeviceCreateInfo; 1473 1474 typedef struct { 1475 VkStructureType sType; 1476 const void* pNext; 1477 VkSwapchainCreateFlagsKHR flags; 1478 VkSurfaceKHR surface; 1479 uint32_t minImageCount; 1480 VkFormat imageFormat; 1481 VkColorSpaceKHR imageColorSpace; 1482 VkExtent2D imageExtent; 1483 uint32_t imageArrayLayers; 1484 VkImageUsageFlags imageUsage; 1485 VkSharingMode imageSharingMode; 1486 uint32_t queueFamilyIndexCount; 1487 const uint32_t* pQueueFamilyIndices; 1488 VkSurfaceTransformFlagBitsKHR preTransform; 1489 VkCompositeAlphaFlagBitsKHR compositeAlpha; 1490 VkPresentModeKHR presentMode; 1491 VkBool32 clipped; 1492 VkSwapchainKHR oldSwapchain; 1493 } VkSwapchainCreateInfoKHR; 1494 1495 typedef struct { 1496 VkStructureType sType; 1497 const void *pNext; 1498 uint32_t waitSemaphoreCount; 1499 const VkSemaphore *pWaitSemaphores; 1500 uint32_t swapchainCount; 1501 const VkSwapchainKHR *pSwapchains; 1502 const uint32_t *pImageIndices; 1503 VkResult *pResults; 1504 } VkPresentInfoKHR; 1505 1506 typedef struct { 1507 uint32_t minImageCount; 1508 uint32_t maxImageCount; 1509 VkExtent2D currentExtent; 1510 VkExtent2D minImageExtent; 1511 VkExtent2D maxImageExtent; 1512 uint32_t maxImageArrayLayers; 1513 VkSurfaceTransformFlagsKHR supportedTransforms; 1514 VkSurfaceTransformFlagBitsKHR currentTransform; 1515 VkCompositeAlphaFlagsKHR supportedCompositeAlpha; 1516 VkImageUsageFlags supportedUsageFlags; 1517 } VkSurfaceCapabilitiesKHR; 1518 1519 typedef struct { 1520 VkFormat format; 1521 VkColorSpaceKHR colorSpace; 1522 } VkSurfaceFormatKHR; 1523 1524 1525 typedef struct { 1526 VkStructureType sType; 1527 const void *pNext; 1528 VkFenceCreateFlags flags; 1529 } VkFenceCreateInfo; 1530 1531 typedef struct { 1532 VkStructureType sType; 1533 const void *pNext; 1534 VkSemaphoreCreateFlags flags; 1535 } VkSemaphoreCreateInfo; 1536 1537 typedef struct { 1538 VkComponentSwizzle r; 1539 VkComponentSwizzle g; 1540 VkComponentSwizzle b; 1541 VkComponentSwizzle a; 1542 } VkComponentMapping; 1543 1544 typedef struct { 1545 VkImageAspectFlags aspectMask; 1546 uint32_t baseMipLevel; 1547 uint32_t levelCount; 1548 uint32_t baseArrayLayer; 1549 uint32_t layerCount; 1550 } VkImageSubresourceRange; 1551 1552 typedef struct { 1553 VkStructureType sType; 1554 const void *pNext; 1555 VkImageViewCreateFlags flags; 1556 VkImage image; 1557 VkImageViewType viewType; 1558 VkFormat format; 1559 VkComponentMapping components; 1560 VkImageSubresourceRange subresourceRange; 1561 } VkImageViewCreateInfo; 1562 1563 typedef struct { 1564 VkStructureType sType; 1565 const void *pNext; 1566 VkShaderModuleCreateFlags flags; 1567 size_t codeSize; 1568 const uint32_t *pCode; 1569 } VkShaderModuleCreateInfo; 1570 1571 typedef struct { 1572 uint32_t constantID; 1573 uint32_t offset; 1574 size_t size; 1575 } VkSpecializationMapEntry; 1576 1577 typedef struct { 1578 uint32_t mapEntryCount; 1579 const VkSpecializationMapEntry *pMapEntries; 1580 size_t dataSize; 1581 const void *pData; 1582 } VkSpecializationInfo; 1583 1584 typedef struct { 1585 VkStructureType sType; 1586 const void *pNext; 1587 VkPipelineShaderStageCreateFlags flags; 1588 VkShaderStageFlagBits stage; 1589 VkShaderModule module; 1590 const char *pName; 1591 const VkSpecializationInfo *pSpecializationInfo; 1592 } VkPipelineShaderStageCreateInfo; 1593 1594 typedef struct { 1595 VkStructureType sType; 1596 const void *pNext; 1597 VkPipelineCreateFlags flags; 1598 VkPipelineShaderStageCreateInfo stage; 1599 VkPipelineLayout layout; 1600 VkPipeline basePipelineHandle; 1601 int32_t basePipelineIndex; 1602 } VkComputePipelineCreateInfo; 1603 1604 typedef struct { 1605 VkStencilOp failOp; 1606 VkStencilOp passOp; 1607 VkStencilOp depthFailOp; 1608 VkCompareOp compareOp; 1609 uint32_t compareMask; 1610 uint32_t writeMask; 1611 uint32_t reference; 1612 } VkStencilOpState; 1613 1614 typedef struct { 1615 VkStructureType sType; 1616 const void *pNext; 1617 VkPipelineDepthStencilStateCreateFlags flags; 1618 VkBool32 depthTestEnable; 1619 VkBool32 depthWriteEnable; 1620 VkCompareOp depthCompareOp; 1621 VkBool32 depthBoundsTestEnable; 1622 VkBool32 stencilTestEnable; 1623 VkStencilOpState front; 1624 VkStencilOpState back; 1625 float minDepthBounds; 1626 float maxDepthBounds; 1627 } VkPipelineDepthStencilStateCreateInfo; 1628 1629 typedef struct { 1630 VkBool32 blendEnable; 1631 VkBlendFactor srcColorBlendFactor; 1632 VkBlendFactor dstColorBlendFactor; 1633 VkBlendOp colorBlendOp; 1634 VkBlendFactor srcAlphaBlendFactor; 1635 VkBlendFactor dstAlphaBlendFactor; 1636 VkBlendOp alphaBlendOp; 1637 VkColorComponentFlags colorWriteMask; 1638 } VkPipelineColorBlendAttachmentState; 1639 1640 typedef struct { 1641 VkStructureType sType; 1642 const void *pNext; 1643 VkPipelineColorBlendStateCreateFlags flags; 1644 VkBool32 logicOpEnable; 1645 VkLogicOp logicOp; 1646 uint32_t attachmentCount; 1647 const VkPipelineColorBlendAttachmentState *pAttachments; 1648 float blendConstants[4]; 1649 } VkPipelineColorBlendStateCreateInfo; 1650 1651 typedef struct { 1652 VkStructureType sType; 1653 const void *pNext; 1654 VkPipelineDynamicStateCreateFlags flags; 1655 uint32_t dynamicStateCount; 1656 const VkDynamicState *pDynamicStates; 1657 } VkPipelineDynamicStateCreateInfo; 1658 1659 typedef struct { 1660 uint32_t binding; 1661 uint32_t stride; 1662 VkVertexInputRate inputRate; 1663 } VkVertexInputBindingDescription; 1664 1665 typedef struct { 1666 uint32_t location; 1667 uint32_t binding; 1668 VkFormat format; 1669 uint32_t offset; 1670 } VkVertexInputAttributeDescription; 1671 1672 typedef struct { 1673 VkStructureType sType; 1674 const void *pNext; 1675 VkPipelineVertexInputStateCreateFlags flags; 1676 uint32_t vertexBindingDescriptionCount; 1677 const VkVertexInputBindingDescription *pVertexBindingDescriptions; 1678 uint32_t vertexAttributeDescriptionCount; 1679 const VkVertexInputAttributeDescription *pVertexAttributeDescriptions; 1680 } VkPipelineVertexInputStateCreateInfo; 1681 1682 typedef struct { 1683 VkStructureType sType; 1684 const void *pNext; 1685 VkPipelineInputAssemblyStateCreateFlags flags; 1686 VkPrimitiveTopology topology; 1687 VkBool32 primitiveRestartEnable; 1688 } VkPipelineInputAssemblyStateCreateInfo; 1689 1690 typedef struct { 1691 VkStructureType sType; 1692 const void *pNext; 1693 VkPipelineTessellationStateCreateFlags flags; 1694 uint32_t patchControlPoints; 1695 } VkPipelineTessellationStateCreateInfo; 1696 1697 typedef struct VkPipelineViewportStateCreateInfo { 1698 VkStructureType sType; 1699 const void *pNext; 1700 VkPipelineViewportStateCreateFlags flags; 1701 uint32_t viewportCount; 1702 const VkViewport *pViewports; 1703 uint32_t scissorCount; 1704 const VkRect2D *pScissors; 1705 } VkPipelineViewportStateCreateInfo; 1706 1707 typedef struct { 1708 VkStructureType sType; 1709 const void *pNext; 1710 VkPipelineRasterizationStateCreateFlags flags; 1711 VkBool32 depthClampEnable; 1712 VkBool32 rasterizerDiscardEnable; 1713 VkPolygonMode polygonMode; 1714 VkCullModeFlags cullMode; 1715 VkFrontFace frontFace; 1716 VkBool32 depthBiasEnable; 1717 float depthBiasConstantFactor; 1718 float depthBiasClamp; 1719 float depthBiasSlopeFactor; 1720 float lineWidth; 1721 } VkPipelineRasterizationStateCreateInfo; 1722 1723 typedef struct { 1724 VkStructureType sType; 1725 const void *pNext; 1726 VkPipelineMultisampleStateCreateFlags flags; 1727 VkSampleCountFlagBits rasterizationSamples; 1728 VkBool32 sampleShadingEnable; 1729 float minSampleShading; 1730 const VkSampleMask *pSampleMask; 1731 VkBool32 alphaToCoverageEnable; 1732 VkBool32 alphaToOneEnable; 1733 } VkPipelineMultisampleStateCreateInfo; 1734 1735 typedef struct { 1736 VkShaderStageFlags stageFlags; 1737 uint32_t offset; 1738 uint32_t size; 1739 } VkPushConstantRange; 1740 1741 typedef struct { 1742 VkStructureType sType; 1743 const void *pNext; 1744 VkPipelineLayoutCreateFlags flags; 1745 uint32_t setLayoutCount; 1746 const VkDescriptorSetLayout *pSetLayouts; 1747 uint32_t pushConstantRangeCount; 1748 const VkPushConstantRange *pPushConstantRanges; 1749 } VkPipelineLayoutCreateInfo; 1750 1751 typedef struct { 1752 VkAttachmentDescriptionFlags flags; 1753 VkFormat format; 1754 VkSampleCountFlagBits samples; 1755 VkAttachmentLoadOp loadOp; 1756 VkAttachmentStoreOp storeOp; 1757 VkAttachmentLoadOp stencilLoadOp; 1758 VkAttachmentStoreOp stencilStoreOp; 1759 VkImageLayout initialLayout; 1760 VkImageLayout finalLayout; 1761 } VkAttachmentDescription; 1762 1763 typedef struct { 1764 uint32_t attachment; 1765 VkImageLayout layout; 1766 } VkAttachmentReference; 1767 1768 typedef struct { 1769 VkStructureType sType; 1770 const void *pNext; 1771 VkFramebufferCreateFlags flags; 1772 VkRenderPass renderPass; 1773 uint32_t attachmentCount; 1774 const VkImageView *pAttachments; 1775 uint32_t width; 1776 uint32_t height; 1777 uint32_t layers; 1778 } VkFramebufferCreateInfo; 1779 1780 typedef struct { 1781 VkSubpassDescriptionFlags flags; 1782 VkPipelineBindPoint pipelineBindPoint; 1783 uint32_t inputAttachmentCount; 1784 const VkAttachmentReference *pInputAttachments; 1785 uint32_t colorAttachmentCount; 1786 const VkAttachmentReference *pColorAttachments; 1787 const VkAttachmentReference *pResolveAttachments; 1788 const VkAttachmentReference *pDepthStencilAttachment; 1789 uint32_t preserveAttachmentCount; 1790 const uint32_t *pPreserveAttachments; 1791 } VkSubpassDescription; 1792 1793 typedef struct { 1794 uint32_t srcSubpass; 1795 uint32_t dstSubpass; 1796 VkPipelineStageFlags srcStageMask; 1797 VkPipelineStageFlags dstStageMask; 1798 VkAccessFlags srcAccessMask; 1799 VkAccessFlags dstAccessMask; 1800 VkDependencyFlags dependencyFlags; 1801 } VkSubpassDependency; 1802 1803 typedef struct { 1804 VkStructureType sType; 1805 const void *pNext; 1806 VkRenderPassCreateFlags flags; 1807 uint32_t attachmentCount; 1808 const VkAttachmentDescription *pAttachments; 1809 uint32_t subpassCount; 1810 const VkSubpassDescription *pSubpasses; 1811 uint32_t dependencyCount; 1812 const VkSubpassDependency *pDependencies; 1813 } VkRenderPassCreateInfo; 1814 1815 typedef struct { 1816 VkStructureType sType; 1817 const void *pNext; 1818 VkCommandPoolCreateFlags flags; 1819 uint32_t queueFamilyIndex; 1820 } VkCommandPoolCreateInfo; 1821 1822 typedef struct { 1823 VkStructureType sType; 1824 const void *pNext; 1825 VkCommandPool commandPool; 1826 VkCommandBufferLevel level; 1827 uint32_t commandBufferCount; 1828 } VkCommandBufferAllocateInfo; 1829 1830 typedef struct { 1831 VkStructureType sType; 1832 const void *pNext; 1833 VkRenderPass renderPass; 1834 uint32_t subpass; 1835 VkFramebuffer framebuffer; 1836 VkBool32 occlusionQueryEnable; 1837 VkQueryControlFlags queryFlags; 1838 VkQueryPipelineStatisticFlags pipelineStatistics; 1839 } VkCommandBufferInheritanceInfo; 1840 1841 typedef struct { 1842 VkStructureType sType; 1843 const void *pNext; 1844 VkCommandBufferUsageFlags flags; 1845 const VkCommandBufferInheritanceInfo *pInheritanceInfo; 1846 } VkCommandBufferBeginInfo; 1847 1848 typedef union { 1849 float float32[4]; 1850 int32_t int32[4]; 1851 uint32_t uint32[4]; 1852 } VkClearColorValue; 1853 1854 typedef struct { 1855 float depth; 1856 uint32_t stencil; 1857 } VkClearDepthStencilValue; 1858 1859 typedef union { 1860 VkClearColorValue color; 1861 VkClearDepthStencilValue depthStencil; 1862 } VkClearValue; 1863 1864 typedef struct { 1865 VkStructureType sType; 1866 const void *pNext; 1867 VkPipelineCreateFlags flags; 1868 uint32_t stageCount; 1869 const VkPipelineShaderStageCreateInfo *pStages; 1870 const VkPipelineVertexInputStateCreateInfo *pVertexInputState; 1871 const VkPipelineInputAssemblyStateCreateInfo *pInputAssemblyState; 1872 const VkPipelineTessellationStateCreateInfo *pTessellationState; 1873 const VkPipelineViewportStateCreateInfo *pViewportState; 1874 const VkPipelineRasterizationStateCreateInfo *pRasterizationState; 1875 const VkPipelineMultisampleStateCreateInfo *pMultisampleState; 1876 const VkPipelineDepthStencilStateCreateInfo *pDepthStencilState; 1877 const VkPipelineColorBlendStateCreateInfo *pColorBlendState; 1878 const VkPipelineDynamicStateCreateInfo *pDynamicState; 1879 VkPipelineLayout layout; 1880 VkRenderPass renderPass; 1881 uint32_t subpass; 1882 VkPipeline basePipelineHandle; 1883 int32_t basePipelineIndex; 1884 } VkGraphicsPipelineCreateInfo; 1885 1886 typedef void *vkAllocationFunction(void *pUserData, size_t size, size_t alignment, 1887 VkSystemAllocationScope allocationScope); 1888 1889 typedef void vkFreeFunction(void *pUserData, void *pMemory); 1890 1891 typedef void vkInternalAllocationNotification(void *pUserData, size_t size, 1892 VkInternalAllocationType allocationType, 1893 VkSystemAllocationScope allocationScope); 1894 1895 typedef void vkInternalFreeNotification(void *pUserData, size_t size, 1896 VkInternalAllocationType allocationType, 1897 VkSystemAllocationScope allocationScope); 1898 1899 typedef void *vkReallocationFunction(void *pUserData, void *pOriginal, size_t size, size_t alignment, 1900 VkSystemAllocationScope allocationScope); 1901 1902 typedef struct { 1903 void *UserData; 1904 vkAllocationFunction *Allocation; 1905 vkReallocationFunction *Reallocation; 1906 vkFreeFunction *Free; 1907 vkInternalAllocationNotification *InternalAllocation; 1908 vkInternalFreeNotification *InternalFree; 1909 } VkAllocationCallbacks; 1910 1911 typedef struct { 1912 VkStructureType sType; 1913 const void *pNext; 1914 VkRenderPass renderPass; 1915 VkFramebuffer framebuffer; 1916 VkRect2D renderArea; 1917 uint32_t clearValueCount; 1918 const VkClearValue *pClearValues; 1919 } VkRenderPassBeginInfo; 1920 1921 VkResult vkCreateInstance(const VkInstanceCreateInfo *pCreateInfo, 1922 const VkAllocationCallbacks *pAllocator, 1923 VkInstance *pInstance); 1924 1925 VkResult vkCreateDevice(VkPhysicalDevice physicalDevice, 1926 const VkDeviceCreateInfo *pCreateInfo, 1927 const VkAllocationCallbacks *pAllocator, 1928 VkDevice *pDevice); 1929 1930 VkResult vkEnumerateInstanceExtensionProperties(const char *pLayerName, 1931 uint32_t *pPropertyCount, 1932 VkExtensionProperties *pProperties); 1933 VkResult vkEnumerateInstanceLayerProperties(uint32_t *pPropertyCount, 1934 VkLayerProperties *pProperties); 1935 VkResult vkEnumeratePhysicalDevices(VkInstance instance, 1936 uint32_t *pPhysicalDeviceCount, 1937 VkPhysicalDevice *pPhysicalDevices); 1938 VkResult vkEnumerateDeviceExtensionProperties(VkPhysicalDevice physicalDevice, 1939 const char *pLayerName, 1940 uint32_t *pPropertyCount, 1941 VkExtensionProperties *pProperties); 1942 1943 void vkGetPhysicalDeviceProperties(VkPhysicalDevice physicalDevice, 1944 VkPhysicalDeviceProperties *pProperties); 1945 VkResult vkGetPhysicalDeviceSurfaceSupportKHR(VkPhysicalDevice physicalDevice, 1946 uint32_t queueFamilyIndex, 1947 VkSurfaceKHR surface, 1948 VkBool32 *pSupported); 1949 1950 VkResult vkGetPhysicalDeviceSurfaceCapabilitiesKHR(VkPhysicalDevice physicalDevice, 1951 VkSurfaceKHR surface, 1952 VkSurfaceCapabilitiesKHR *pSurfaceCapabilities); 1953 1954 VkResult vkGetPhysicalDeviceSurfaceFormatsKHR(VkPhysicalDevice physicalDevice, 1955 VkSurfaceKHR surface, 1956 uint32_t *pSurfaceFormatCount, 1957 VkSurfaceFormatKHR *pSurfaceFormats); 1958 1959 VkResult vkGetPhysicalDeviceSurfacePresentModesKHR(VkPhysicalDevice physicalDevice, 1960 VkSurfaceKHR surface, 1961 uint32_t *pPresentModeCount, 1962 VkPresentModeKHR *pPresentModes); 1963 1964 void vkGetPhysicalDeviceQueueFamilyProperties(VkPhysicalDevice physicalDevice, 1965 uint32_t *pQueueFamilyPropertyCount, 1966 VkQueueFamilyProperties *pQueueFamilyProperties); 1967 1968 void vkGetDeviceQueue(VkDevice device, 1969 uint32_t queueFamilyIndex, 1970 uint32_t queueIndex, 1971 VkQueue *pQueue); 1972 1973 VkResult vkQueueSubmit(VkQueue queue, 1974 uint32_t submitCount, 1975 const VkSubmitInfo *pSubmits, 1976 VkFence fence); 1977 1978 VkResult vkDeviceWaitIdle(VkDevice device); 1979 1980 VkResult vkCreateSwapchainKHR(VkDevice device, 1981 const VkSwapchainCreateInfoKHR *pCreateInfo, 1982 const VkAllocationCallbacks *pAllocator, 1983 VkSwapchainKHR *pSwapchain); 1984 1985 void vkDestroySwapchainKHR(VkDevice device, 1986 VkSwapchainKHR swapchain, 1987 const VkAllocationCallbacks *pAllocator); 1988 1989 VkResult vkGetSwapchainImagesKHR(VkDevice device, 1990 VkSwapchainKHR swapchain, 1991 uint32_t *pSwapchainImageCount, 1992 VkImage *pSwapchainImages); 1993 1994 VkResult vkAcquireNextImageKHR(VkDevice device, 1995 VkSwapchainKHR swapchain, 1996 uint64_t timeout, 1997 VkSemaphore semaphore, 1998 VkFence fence, 1999 uint32_t *pImageIndex); 2000 2001 VkResult vkQueuePresentKHR(VkQueue queue, const VkPresentInfoKHR *pPresentInfo); 2002 2003 VkResult vkCreateFence(VkDevice device, 2004 const VkFenceCreateInfo *pCreateInfo, 2005 const VkAllocationCallbacks *pAllocator, 2006 VkFence *pFence); 2007 2008 void vkDestroyFence(VkDevice device, 2009 VkFence fence, 2010 const VkAllocationCallbacks *pAllocator); 2011 2012 VkResult vkResetFences(VkDevice device, uint32_t fenceCount, const VkFence *pFences); 2013 VkResult vkGetFenceStatus(VkDevice device, VkFence fence); 2014 2015 VkResult vkWaitForFences(VkDevice device, 2016 uint32_t fenceCount, 2017 const VkFence *pFences, 2018 VkBool32 waitAll, 2019 uint64_t timeout); 2020 2021 VkResult vkCreateSemaphore(VkDevice device, 2022 const VkSemaphoreCreateInfo *pCreateInfo, 2023 const VkAllocationCallbacks *pAllocator, 2024 VkSemaphore *pSemaphore); 2025 2026 void vkDestroySemaphore(VkDevice device, 2027 VkSemaphore semaphore, 2028 const VkAllocationCallbacks *pAllocator); 2029 2030 VkResult vkCreateImageView(VkDevice device, 2031 const VkImageViewCreateInfo *pCreateInfo, 2032 const VkAllocationCallbacks *pAllocator, 2033 VkImageView *pView); 2034 2035 void vkDestroyImageView(VkDevice device, 2036 VkImageView imageView, 2037 const VkAllocationCallbacks *pAllocator); 2038 2039 VkResult vkCreateShaderModule(VkDevice device, 2040 const VkShaderModuleCreateInfo *pCreateInfo, 2041 const VkAllocationCallbacks *pAllocator, 2042 VkShaderModule *pShaderModule); 2043 2044 void vkDestroyShaderModule(VkDevice device, 2045 VkShaderModule shaderModule, 2046 const VkAllocationCallbacks *pAllocator); 2047 2048 VkResult vkCreateGraphicsPipelines(VkDevice device, 2049 VkPipelineCache pipelineCache, 2050 uint32_t createInfoCount, 2051 const VkGraphicsPipelineCreateInfo *pCreateInfos, 2052 const VkAllocationCallbacks *pAllocator, 2053 VkPipeline *pPipelines); 2054 2055 VkResult vkCreateComputePipelines(VkDevice device, 2056 VkPipelineCache pipelineCache, 2057 uint32_t createInfoCount, 2058 const VkComputePipelineCreateInfo *pCreateInfos, 2059 const VkAllocationCallbacks *pAllocator, 2060 VkPipeline *pPipelines); 2061 2062 void vkDestroyPipeline(VkDevice device, 2063 VkPipeline pipeline, 2064 const VkAllocationCallbacks *pAllocator); 2065 2066 VkResult vkCreatePipelineLayout(VkDevice device, 2067 const VkPipelineLayoutCreateInfo *pCreateInfo, 2068 const VkAllocationCallbacks *pAllocator, 2069 VkPipelineLayout *pPipelineLayout); 2070 2071 void vkDestroyPipelineLayout(VkDevice device, 2072 VkPipelineLayout pipelineLayout, 2073 const VkAllocationCallbacks *pAllocator); 2074 2075 VkResult vkCreateRenderPass(VkDevice device, 2076 const VkRenderPassCreateInfo *pCreateInfo, 2077 const VkAllocationCallbacks *pAllocator, 2078 VkRenderPass *pRenderPass); 2079 2080 void vkDestroyRenderPass(VkDevice device, 2081 VkRenderPass renderPass, 2082 const VkAllocationCallbacks *pAllocator); 2083 2084 VkResult vkCreateFramebuffer(VkDevice device, 2085 const VkFramebufferCreateInfo *pCreateInfo, 2086 const VkAllocationCallbacks *pAllocator, 2087 VkFramebuffer *pFramebuffer); 2088 2089 void vkDestroyFramebuffer(VkDevice device, 2090 VkFramebuffer framebuffer, 2091 const VkAllocationCallbacks *pAllocator); 2092 2093 VkResult vkCreateCommandPool(VkDevice device, 2094 const VkCommandPoolCreateInfo *pCreateInfo, 2095 const VkAllocationCallbacks *pAllocator, 2096 VkCommandPool *pCommandPool); 2097 2098 VkResult vkAllocateCommandBuffers(VkDevice device, 2099 const VkCommandBufferAllocateInfo *pAllocateInfo, 2100 VkCommandBuffer *pCommandBuffers); 2101 2102 VkResult vkBeginCommandBuffer(VkCommandBuffer commandBuffer, 2103 const VkCommandBufferBeginInfo *pBeginInfo); 2104 VkResult vkEndCommandBuffer(VkCommandBuffer commandBuffer); 2105 VkResult vkResetCommandBuffer(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags); 2106 2107 void vkCmdBindPipeline(VkCommandBuffer commandBuffer, 2108 VkPipelineBindPoint pipelineBindPoint, 2109 VkPipeline pipeline); 2110 2111 void vkCmdSetViewport(VkCommandBuffer commandBuffer, 2112 uint32_t firstViewport, 2113 uint32_t viewportCount, 2114 const VkViewport *pViewports); 2115 2116 void vkCmdSetScissor(VkCommandBuffer commandBuffer, 2117 uint32_t firstScissor, 2118 uint32_t scissorCount, 2119 const VkRect2D *pScissors); 2120 2121 void vkCmdBeginRenderPass(VkCommandBuffer commandBuffer, 2122 const VkRenderPassBeginInfo *pRenderPassBegin, 2123 VkSubpassContents contents); 2124 void vkCmdEndRenderPass(VkCommandBuffer commandBuffer); 2125 2126 void vkCmdDraw(VkCommandBuffer commandBuffer, 2127 uint32_t vertexCount, 2128 uint32_t instanceCount, 2129 uint32_t firstVertex, 2130 uint32_t firstInstance);