1#ifndef VULKAN_CORE_H_
2#define VULKAN_CORE_H_ 1
3
4/*
5** Copyright 2015-2025 The Khronos Group Inc.
6**
7** SPDX-License-Identifier: Apache-2.0
8*/
9
10/*
11** This header is generated from the Khronos Vulkan XML API Registry.
12**
13*/
14
15
16#ifdef __cplusplus
17extern "C" {
18#endif
19
20
21
22// VK_VERSION_1_0 is a preprocessor guard. Do not pass it to API calls.
23#define VK_VERSION_1_0 1
24#include "vk_platform.h"
25
26#define VK_DEFINE_HANDLE(object) typedef struct object##_T* object;
27
28
29#ifndef VK_USE_64_BIT_PTR_DEFINES
30 #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) || (defined(__riscv) && __riscv_xlen == 64)
31 #define VK_USE_64_BIT_PTR_DEFINES 1
32 #else
33 #define VK_USE_64_BIT_PTR_DEFINES 0
34 #endif
35#endif
36
37
38#ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE
39 #if (VK_USE_64_BIT_PTR_DEFINES==1)
40 #if (defined(__cplusplus) && (__cplusplus >= 201103L)) || (defined(_MSVC_LANG) && (_MSVC_LANG >= 201103L))
41 #define VK_NULL_HANDLE nullptr
42 #else
43 #define VK_NULL_HANDLE ((void*)0)
44 #endif
45 #else
46 #define VK_NULL_HANDLE 0ULL
47 #endif
48#endif
49#ifndef VK_NULL_HANDLE
50 #define VK_NULL_HANDLE 0
51#endif
52
53
54#ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE
55 #if (VK_USE_64_BIT_PTR_DEFINES==1)
56 #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object;
57 #else
58 #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object;
59 #endif
60#endif
61
62#define VK_MAKE_API_VERSION(variant, major, minor, patch) \
63 ((((uint32_t)(variant)) << 29U) | (((uint32_t)(major)) << 22U) | (((uint32_t)(minor)) << 12U) | ((uint32_t)(patch)))
64
65
66//#define VK_API_VERSION VK_MAKE_API_VERSION(0, 1, 0, 0) // Patch version should always be set to 0
67
68// Version of this file
69#define VK_HEADER_VERSION 335
70
71// Complete version of this file
72#define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 4, VK_HEADER_VERSION)
73
74
75#define VK_MAKE_VERSION(major, minor, patch) \
76 ((((uint32_t)(major)) << 22U) | (((uint32_t)(minor)) << 12U) | ((uint32_t)(patch)))
77
78
79#define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22U)
80
81
82#define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12U) & 0x3FFU)
83
84
85#define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xFFFU)
86
87#define VK_API_VERSION_VARIANT(version) ((uint32_t)(version) >> 29U)
88#define VK_API_VERSION_MAJOR(version) (((uint32_t)(version) >> 22U) & 0x7FU)
89#define VK_API_VERSION_MINOR(version) (((uint32_t)(version) >> 12U) & 0x3FFU)
90#define VK_API_VERSION_PATCH(version) ((uint32_t)(version) & 0xFFFU)
91// Vulkan 1.0 version number
92#define VK_API_VERSION_1_0 VK_MAKE_API_VERSION(0, 1, 0, 0)// Patch version should always be set to 0
93
94typedef uint32_t VkBool32;
95typedef uint64_t VkDeviceAddress;
96typedef uint64_t VkDeviceSize;
97typedef uint32_t VkFlags;
98typedef uint32_t VkSampleMask;
99VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer)
100VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImage)
101VK_DEFINE_HANDLE(VkInstance)
102VK_DEFINE_HANDLE(VkPhysicalDevice)
103VK_DEFINE_HANDLE(VkDevice)
104VK_DEFINE_HANDLE(VkQueue)
105VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSemaphore)
106VK_DEFINE_HANDLE(VkCommandBuffer)
107VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFence)
108VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeviceMemory)
109VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkQueryPool)
110VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImageView)
111VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool)
112VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass)
113VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer)
114VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkEvent)
115VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferView)
116VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderModule)
117VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineCache)
118VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineLayout)
119VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipeline)
120VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSetLayout)
121VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSampler)
122VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet)
123VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool)
124#define VK_FALSE 0U
125#define VK_LOD_CLAMP_NONE 1000.0F
126#define VK_QUEUE_FAMILY_IGNORED (~0U)
127#define VK_REMAINING_ARRAY_LAYERS (~0U)
128#define VK_REMAINING_MIP_LEVELS (~0U)
129#define VK_TRUE 1U
130#define VK_WHOLE_SIZE (~0ULL)
131#define VK_MAX_MEMORY_TYPES 32U
132#define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE 256U
133#define VK_UUID_SIZE 16U
134#define VK_MAX_EXTENSION_NAME_SIZE 256U
135#define VK_MAX_DESCRIPTION_SIZE 256U
136#define VK_MAX_MEMORY_HEAPS 16U
137#define VK_ATTACHMENT_UNUSED (~0U)
138#define VK_SUBPASS_EXTERNAL (~0U)
139
140typedef enum VkResult {
141 VK_SUCCESS = 0,
142 VK_NOT_READY = 1,
143 VK_TIMEOUT = 2,
144 VK_EVENT_SET = 3,
145 VK_EVENT_RESET = 4,
146 VK_INCOMPLETE = 5,
147 VK_ERROR_OUT_OF_HOST_MEMORY = -1,
148 VK_ERROR_OUT_OF_DEVICE_MEMORY = -2,
149 VK_ERROR_INITIALIZATION_FAILED = -3,
150 VK_ERROR_DEVICE_LOST = -4,
151 VK_ERROR_MEMORY_MAP_FAILED = -5,
152 VK_ERROR_LAYER_NOT_PRESENT = -6,
153 VK_ERROR_EXTENSION_NOT_PRESENT = -7,
154 VK_ERROR_FEATURE_NOT_PRESENT = -8,
155 VK_ERROR_INCOMPATIBLE_DRIVER = -9,
156 VK_ERROR_TOO_MANY_OBJECTS = -10,
157 VK_ERROR_FORMAT_NOT_SUPPORTED = -11,
158 VK_ERROR_FRAGMENTED_POOL = -12,
159 VK_ERROR_UNKNOWN = -13,
160 VK_ERROR_VALIDATION_FAILED = -1000011001,
161 VK_ERROR_OUT_OF_POOL_MEMORY = -1000069000,
162 VK_ERROR_INVALID_EXTERNAL_HANDLE = -1000072003,
163 VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS = -1000257000,
164 VK_ERROR_FRAGMENTATION = -1000161000,
165 VK_PIPELINE_COMPILE_REQUIRED = 1000297000,
166 VK_ERROR_NOT_PERMITTED = -1000174001,
167 VK_ERROR_SURFACE_LOST_KHR = -1000000000,
168 VK_ERROR_NATIVE_WINDOW_IN_USE_KHR = -1000000001,
169 VK_SUBOPTIMAL_KHR = 1000001003,
170 VK_ERROR_OUT_OF_DATE_KHR = -1000001004,
171 VK_ERROR_INCOMPATIBLE_DISPLAY_KHR = -1000003001,
172 VK_ERROR_INVALID_SHADER_NV = -1000012000,
173 VK_ERROR_IMAGE_USAGE_NOT_SUPPORTED_KHR = -1000023000,
174 VK_ERROR_VIDEO_PICTURE_LAYOUT_NOT_SUPPORTED_KHR = -1000023001,
175 VK_ERROR_VIDEO_PROFILE_OPERATION_NOT_SUPPORTED_KHR = -1000023002,
176 VK_ERROR_VIDEO_PROFILE_FORMAT_NOT_SUPPORTED_KHR = -1000023003,
177 VK_ERROR_VIDEO_PROFILE_CODEC_NOT_SUPPORTED_KHR = -1000023004,
178 VK_ERROR_VIDEO_STD_VERSION_NOT_SUPPORTED_KHR = -1000023005,
179 VK_ERROR_INVALID_DRM_FORMAT_MODIFIER_PLANE_LAYOUT_EXT = -1000158000,
180 VK_ERROR_PRESENT_TIMING_QUEUE_FULL_EXT = -1000208000,
181 VK_ERROR_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = -1000255000,
182 VK_THREAD_IDLE_KHR = 1000268000,
183 VK_THREAD_DONE_KHR = 1000268001,
184 VK_OPERATION_DEFERRED_KHR = 1000268002,
185 VK_OPERATION_NOT_DEFERRED_KHR = 1000268003,
186 VK_ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR = -1000299000,
187 VK_ERROR_COMPRESSION_EXHAUSTED_EXT = -1000338000,
188 VK_INCOMPATIBLE_SHADER_BINARY_EXT = 1000482000,
189 VK_PIPELINE_BINARY_MISSING_KHR = 1000483000,
190 VK_ERROR_NOT_ENOUGH_SPACE_KHR = -1000483000,
191 VK_ERROR_VALIDATION_FAILED_EXT = VK_ERROR_VALIDATION_FAILED,
192 VK_ERROR_OUT_OF_POOL_MEMORY_KHR = VK_ERROR_OUT_OF_POOL_MEMORY,
193 VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = VK_ERROR_INVALID_EXTERNAL_HANDLE,
194 VK_ERROR_FRAGMENTATION_EXT = VK_ERROR_FRAGMENTATION,
195 VK_ERROR_NOT_PERMITTED_EXT = VK_ERROR_NOT_PERMITTED,
196 VK_ERROR_NOT_PERMITTED_KHR = VK_ERROR_NOT_PERMITTED,
197 VK_ERROR_INVALID_DEVICE_ADDRESS_EXT = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
198 VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
199 VK_PIPELINE_COMPILE_REQUIRED_EXT = VK_PIPELINE_COMPILE_REQUIRED,
200 VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT = VK_PIPELINE_COMPILE_REQUIRED,
201 // VK_ERROR_INCOMPATIBLE_SHADER_BINARY_EXT is a legacy alias
202 VK_ERROR_INCOMPATIBLE_SHADER_BINARY_EXT = VK_INCOMPATIBLE_SHADER_BINARY_EXT,
203 VK_RESULT_MAX_ENUM = 0x7FFFFFFF
204} VkResult;
205
206typedef enum VkStructureType {
207 VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
208 VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
209 VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
210 VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
211 VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
212 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5,
213 VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
214 VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
215 VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
216 VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
217 VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
218 VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
219 VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
220 VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
221 VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
222 VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
223 VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
224 VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17,
225 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18,
226 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19,
227 VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20,
228 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21,
229 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22,
230 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23,
231 VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24,
232 VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25,
233 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26,
234 VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27,
235 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28,
236 VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29,
237 VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30,
238 VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31,
239 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32,
240 VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
241 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34,
242 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35,
243 VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36,
244 VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37,
245 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38,
246 VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39,
247 VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40,
248 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41,
249 VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42,
250 VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
251 VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44,
252 VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45,
253 VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46,
254 VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47,
255 VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48,
256 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = 1000157000,
257 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = 1000157001,
258 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = 1000127000,
259 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001,
260 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = 1000060000,
261 VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = 1000060004,
262 VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = 1000060005,
263 VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = 1000060006,
264 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = 1000060013,
265 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = 1000060014,
266 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = 1000070000,
267 VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = 1000070001,
268 VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = 1000146000,
269 VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = 1000146001,
270 VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = 1000146002,
271 VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = 1000146003,
272 VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = 1000146004,
273 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = 1000059000,
274 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001,
275 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = 1000059002,
276 VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = 1000059003,
277 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = 1000059004,
278 VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = 1000059005,
279 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006,
280 VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = 1000059007,
281 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = 1000059008,
282 VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = 1000117002,
283 VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000,
284 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001,
285 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002,
286 VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = 1000145003,
287 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = 1000071000,
288 VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = 1000071001,
289 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = 1000071002,
290 VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = 1000071003,
291 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = 1000071004,
292 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = 1000072000,
293 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = 1000072001,
294 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = 1000072002,
295 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = 1000112000,
296 VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = 1000112001,
297 VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = 1000113000,
298 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = 1000077000,
299 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = 1000076000,
300 VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001,
301 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = 1000094000,
302 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = 1000083000,
303 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES = 1000120000,
304 VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = 1000085000,
305 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000,
306 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001,
307 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = 1000156000,
308 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = 1000156001,
309 VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = 1000156002,
310 VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = 1000156003,
311 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = 1000156004,
312 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = 1000156005,
313 VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = 1000060003,
314 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = 1000117000,
315 VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = 1000117001,
316 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = 1000117003,
317 VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000,
318 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001,
319 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002,
320 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES = 1000063000,
321 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES = 49,
322 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES = 50,
323 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES = 51,
324 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES = 52,
325 VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO = 1000147000,
326 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES = 1000196000,
327 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES = 1000211000,
328 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES = 1000261000,
329 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES = 1000207000,
330 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES = 1000207001,
331 VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO = 1000207002,
332 VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO = 1000207003,
333 VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO = 1000207004,
334 VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO = 1000207005,
335 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES = 1000257000,
336 VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO = 1000244001,
337 VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO = 1000257002,
338 VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO = 1000257003,
339 VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO = 1000257004,
340 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES = 1000177000,
341 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES = 1000180000,
342 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES = 1000082000,
343 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES = 1000197000,
344 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO = 1000161000,
345 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES = 1000161001,
346 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES = 1000161002,
347 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO = 1000161003,
348 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT = 1000161004,
349 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES = 1000221000,
350 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES = 1000130000,
351 VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO = 1000130001,
352 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES = 1000253000,
353 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES = 1000175000,
354 VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2 = 1000109000,
355 VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2 = 1000109001,
356 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2 = 1000109002,
357 VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2 = 1000109003,
358 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2 = 1000109004,
359 VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO = 1000109005,
360 VK_STRUCTURE_TYPE_SUBPASS_END_INFO = 1000109006,
361 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES = 1000199000,
362 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE = 1000199001,
363 VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO = 1000246000,
364 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES = 1000108000,
365 VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO = 1000108001,
366 VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO = 1000108002,
367 VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO = 1000108003,
368 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES = 1000241000,
369 VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT = 1000241001,
370 VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT = 1000241002,
371 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES = 53,
372 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES = 54,
373 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES = 1000245000,
374 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES = 1000295000,
375 VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO = 1000295001,
376 VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO = 1000295002,
377 VK_STRUCTURE_TYPE_MEMORY_BARRIER_2 = 1000314000,
378 VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2 = 1000314001,
379 VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2 = 1000314002,
380 VK_STRUCTURE_TYPE_DEPENDENCY_INFO = 1000314003,
381 VK_STRUCTURE_TYPE_SUBMIT_INFO_2 = 1000314004,
382 VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO = 1000314005,
383 VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO = 1000314006,
384 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES = 1000314007,
385 VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2 = 1000337000,
386 VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2 = 1000337001,
387 VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2 = 1000337002,
388 VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2 = 1000337003,
389 VK_STRUCTURE_TYPE_BUFFER_COPY_2 = 1000337006,
390 VK_STRUCTURE_TYPE_IMAGE_COPY_2 = 1000337007,
391 VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2 = 1000337009,
392 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES = 1000066000,
393 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3 = 1000360000,
394 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES = 1000413000,
395 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES = 1000413001,
396 VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS = 1000413002,
397 VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS = 1000413003,
398 VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO = 1000192000,
399 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES = 1000215000,
400 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES = 1000276000,
401 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES = 1000297000,
402 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES = 1000325000,
403 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES = 1000335000,
404 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES = 1000225000,
405 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO = 1000225001,
406 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES = 1000225002,
407 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES = 1000138000,
408 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES = 1000138001,
409 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK = 1000138002,
410 VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO = 1000138003,
411 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES = 1000280000,
412 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES = 1000280001,
413 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES = 1000281001,
414 VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2 = 1000337004,
415 VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2 = 1000337005,
416 VK_STRUCTURE_TYPE_IMAGE_BLIT_2 = 1000337008,
417 VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2 = 1000337010,
418 VK_STRUCTURE_TYPE_RENDERING_INFO = 1000044000,
419 VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO = 1000044001,
420 VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO = 1000044002,
421 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES = 1000044003,
422 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO = 1000044004,
423 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_4_FEATURES = 55,
424 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_4_PROPERTIES = 56,
425 VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO = 1000174000,
426 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES = 1000388000,
427 VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES = 1000388001,
428 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES = 1000265000,
429 VK_STRUCTURE_TYPE_MEMORY_MAP_INFO = 1000271000,
430 VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO = 1000271001,
431 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES = 1000470000,
432 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES = 1000470001,
433 VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO = 1000470004,
434 VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2 = 1000338002,
435 VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2 = 1000338003,
436 VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO = 1000470006,
437 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES = 1000545000,
438 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES = 1000545001,
439 VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS = 1000545002,
440 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES = 1000270000,
441 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES = 1000270001,
442 VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY = 1000270002,
443 VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY = 1000270003,
444 VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO = 1000270004,
445 VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO = 1000270005,
446 VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO = 1000270006,
447 VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO = 1000270007,
448 VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE = 1000270008,
449 VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY = 1000270009,
450 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES = 1000416000,
451 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES = 1000528000,
452 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES = 1000544000,
453 VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO = 1000470005,
454 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES = 1000080000,
455 VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO = 1000545003,
456 VK_STRUCTURE_TYPE_PUSH_CONSTANTS_INFO = 1000545004,
457 VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO = 1000545005,
458 VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO = 1000545006,
459 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES = 1000466000,
460 VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO = 1000068000,
461 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES = 1000068001,
462 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES = 1000068002,
463 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES = 1000259000,
464 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO = 1000259001,
465 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES = 1000259002,
466 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES = 1000525000,
467 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO = 1000190001,
468 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES = 1000190002,
469 VK_STRUCTURE_TYPE_RENDERING_AREA_INFO = 1000470003,
470 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES = 1000232000,
471 VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO = 1000232001,
472 VK_STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO = 1000232002,
473 VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000,
474 VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001,
475 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
476 VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008,
477 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009,
478 VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010,
479 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011,
480 VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012,
481 VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000,
482 VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001,
483 VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR = 1000003000,
484 VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000,
485 VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000,
486 VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000,
487 VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000,
488 VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000,
489 VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000,
490 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000,
491 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000,
492 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001,
493 VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002,
494 VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR = 1000023000,
495 VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR = 1000023001,
496 VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR = 1000023002,
497 VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR = 1000023003,
498 VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR = 1000023004,
499 VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR = 1000023005,
500 VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000023006,
501 VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR = 1000023007,
502 VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR = 1000023008,
503 VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR = 1000023009,
504 VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR = 1000023010,
505 VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR = 1000023011,
506 VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR = 1000023012,
507 VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR = 1000023013,
508 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR = 1000023014,
509 VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR = 1000023015,
510 VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR = 1000023016,
511 VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR = 1000024000,
512 VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR = 1000024001,
513 VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR = 1000024002,
514 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000,
515 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001,
516 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002,
517 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT = 1000028000,
518 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT = 1000028001,
519 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT = 1000028002,
520 VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX = 1000029000,
521 VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX = 1000029001,
522 VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX = 1000029002,
523 VK_STRUCTURE_TYPE_CU_MODULE_TEXTURING_MODE_CREATE_INFO_NVX = 1000029004,
524 VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = 1000030000,
525 VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX = 1000030001,
526 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_KHR = 1000038000,
527 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000038001,
528 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR = 1000038002,
529 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PICTURE_INFO_KHR = 1000038003,
530 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_KHR = 1000038004,
531 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_KHR = 1000038005,
532 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_GOP_REMAINING_FRAME_INFO_KHR = 1000038006,
533 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_KHR = 1000038007,
534 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_KHR = 1000038008,
535 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_KHR = 1000038009,
536 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_KHR = 1000038010,
537 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUALITY_LEVEL_PROPERTIES_KHR = 1000038011,
538 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_GET_INFO_KHR = 1000038012,
539 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_FEEDBACK_INFO_KHR = 1000038013,
540 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_KHR = 1000039000,
541 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000039001,
542 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR = 1000039002,
543 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PICTURE_INFO_KHR = 1000039003,
544 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_KHR = 1000039004,
545 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_KHR = 1000039005,
546 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_GOP_REMAINING_FRAME_INFO_KHR = 1000039006,
547 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_KHR = 1000039007,
548 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_KHR = 1000039009,
549 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_KHR = 1000039010,
550 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_KHR = 1000039011,
551 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUALITY_LEVEL_PROPERTIES_KHR = 1000039012,
552 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_GET_INFO_KHR = 1000039013,
553 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_FEEDBACK_INFO_KHR = 1000039014,
554 VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR = 1000040000,
555 VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR = 1000040001,
556 VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR = 1000040003,
557 VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000040004,
558 VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR = 1000040005,
559 VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR = 1000040006,
560 VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000,
561 VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP = 1000049000,
562 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000,
563 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
564 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001,
565 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000,
566 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001,
567 VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000,
568 VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000,
569 VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000,
570 VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000,
571 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001,
572 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000,
573 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001,
574 VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002,
575 VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR = 1000073003,
576 VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = 1000074000,
577 VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = 1000074001,
578 VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR = 1000074002,
579 VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = 1000075000,
580 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078000,
581 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078001,
582 VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = 1000078002,
583 VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR = 1000078003,
584 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000,
585 VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001,
586 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = 1000081000,
587 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = 1000081001,
588 VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = 1000081002,
589 VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000,
590 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000,
591 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000,
592 VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000,
593 VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001,
594 VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002,
595 VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003,
596 VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000,
597 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000,
598 VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX = 1000044009,
599 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000,
600 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000,
601 VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001,
602 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000,
603 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001,
604 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT = 1000102000,
605 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT = 1000102001,
606 VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000,
607 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG = 1000110000,
608 VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000,
609 VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000,
610 VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001,
611 VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002,
612 VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000,
613 VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001,
614 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR = 1000116000,
615 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR = 1000116001,
616 VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR = 1000116002,
617 VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR = 1000116003,
618 VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR = 1000116004,
619 VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR = 1000116005,
620 VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR = 1000116006,
621 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000,
622 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001,
623 VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002,
624 VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR = 1000121000,
625 VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR = 1000121001,
626 VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR = 1000121002,
627 VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR = 1000121003,
628 VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR = 1000121004,
629 VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000,
630 VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000,
631 VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000128000,
632 VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT = 1000128001,
633 VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = 1000128002,
634 VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000128003,
635 VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000128004,
636 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = 1000129000,
637 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = 1000129001,
638 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = 1000129002,
639 VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129003,
640 VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004,
641 VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005,
642 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID = 1000129006,
643#ifdef VK_ENABLE_BETA_EXTENSIONS
644 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX = 1000134000,
645#endif
646#ifdef VK_ENABLE_BETA_EXTENSIONS
647 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX = 1000134001,
648#endif
649#ifdef VK_ENABLE_BETA_EXTENSIONS
650 VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX = 1000134002,
651#endif
652#ifdef VK_ENABLE_BETA_EXTENSIONS
653 VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX = 1000134003,
654#endif
655#ifdef VK_ENABLE_BETA_EXTENSIONS
656 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX = 1000134004,
657#endif
658 VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD = 1000044008,
659 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_BFLOAT16_FEATURES_KHR = 1000141000,
660 VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000,
661 VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001,
662 VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002,
663 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003,
664 VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004,
665 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000,
666 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001,
667 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002,
668 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000,
669 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR = 1000150007,
670 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR = 1000150000,
671 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR = 1000150002,
672 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR = 1000150003,
673 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR = 1000150004,
674 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR = 1000150005,
675 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR = 1000150006,
676 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR = 1000150009,
677 VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR = 1000150010,
678 VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR = 1000150011,
679 VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR = 1000150012,
680 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR = 1000150013,
681 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR = 1000150014,
682 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR = 1000150017,
683 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR = 1000150020,
684 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR = 1000347000,
685 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR = 1000347001,
686 VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR = 1000150015,
687 VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR = 1000150016,
688 VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR = 1000150018,
689 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR = 1000348013,
690 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000,
691 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV = 1000154000,
692 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV = 1000154001,
693 VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT = 1000158000,
694 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT = 1000158002,
695 VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT = 1000158003,
696 VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT = 1000158004,
697 VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158005,
698 VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT = 1000158006,
699 VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000,
700 VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001,
701#ifdef VK_ENABLE_BETA_EXTENSIONS
702 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR = 1000163000,
703#endif
704#ifdef VK_ENABLE_BETA_EXTENSIONS
705 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR = 1000163001,
706#endif
707 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV = 1000164000,
708 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV = 1000164001,
709 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV = 1000164002,
710 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV = 1000164005,
711 VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV = 1000165000,
712 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV = 1000165001,
713 VK_STRUCTURE_TYPE_GEOMETRY_NV = 1000165003,
714 VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV = 1000165004,
715 VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV = 1000165005,
716 VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV = 1000165006,
717 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV = 1000165007,
718 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV = 1000165008,
719 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV = 1000165009,
720 VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV = 1000165011,
721 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV = 1000165012,
722 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV = 1000166000,
723 VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV = 1000166001,
724 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT = 1000170000,
725 VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT = 1000170001,
726 VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000,
727 VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001,
728 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002,
729 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR = 1000181000,
730 VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = 1000183000,
731 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000,
732 VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR = 1000187000,
733 VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000187001,
734 VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR = 1000187002,
735 VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR = 1000187003,
736 VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR = 1000187004,
737 VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR = 1000187005,
738 VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD = 1000189000,
739 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000,
740 VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP = 1000191000,
741 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = 1000202000,
742 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = 1000202001,
743 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = 1000204000,
744 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = 1000205000,
745 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = 1000205002,
746 VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000,
747 VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001,
748 VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV = 1000314008,
749 VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV = 1000314009,
750 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_TIMING_FEATURES_EXT = 1000208000,
751 VK_STRUCTURE_TYPE_SWAPCHAIN_TIMING_PROPERTIES_EXT = 1000208001,
752 VK_STRUCTURE_TYPE_SWAPCHAIN_TIME_DOMAIN_PROPERTIES_EXT = 1000208002,
753 VK_STRUCTURE_TYPE_PRESENT_TIMINGS_INFO_EXT = 1000208003,
754 VK_STRUCTURE_TYPE_PRESENT_TIMING_INFO_EXT = 1000208004,
755 VK_STRUCTURE_TYPE_PAST_PRESENTATION_TIMING_INFO_EXT = 1000208005,
756 VK_STRUCTURE_TYPE_PAST_PRESENTATION_TIMING_PROPERTIES_EXT = 1000208006,
757 VK_STRUCTURE_TYPE_PAST_PRESENTATION_TIMING_EXT = 1000208007,
758 VK_STRUCTURE_TYPE_PRESENT_TIMING_SURFACE_CAPABILITIES_EXT = 1000208008,
759 VK_STRUCTURE_TYPE_SWAPCHAIN_CALIBRATED_TIMESTAMP_INFO_EXT = 1000208009,
760 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL = 1000209000,
761 VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL = 1000210000,
762 VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL = 1000210001,
763 VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL = 1000210002,
764 VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL = 1000210003,
765 VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL = 1000210004,
766 VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL = 1000210005,
767 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT = 1000212000,
768 VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD = 1000213000,
769 VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD = 1000213001,
770 VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA = 1000214000,
771 VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT = 1000217000,
772 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT = 1000218000,
773 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT = 1000218001,
774 VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT = 1000218002,
775 VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT = 1000044007,
776 VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000226000,
777 VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR = 1000226001,
778 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR = 1000226002,
779 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR = 1000226003,
780 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR = 1000226004,
781 VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000044006,
782 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD = 1000227000,
783 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD = 1000229000,
784 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT = 1000234000,
785 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR = 1000235000,
786 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT = 1000237000,
787 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT = 1000238000,
788 VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT = 1000238001,
789 VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR = 1000239000,
790 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV = 1000240000,
791 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT = 1000244000,
792 VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT = 1000244002,
793 VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT = 1000247000,
794 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR = 1000248000,
795 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV = 1000249000,
796 VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249001,
797 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249002,
798 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV = 1000250000,
799 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV = 1000250001,
800 VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV = 1000250002,
801 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT = 1000251000,
802 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT = 1000252000,
803 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT = 1000254000,
804 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT = 1000254001,
805 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT = 1000254002,
806 VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT = 1000255000,
807 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT = 1000255002,
808 VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT = 1000255001,
809 VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT = 1000256000,
810 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT = 1000260000,
811 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT = 1000267000,
812 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR = 1000269000,
813 VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR = 1000269001,
814 VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR = 1000269002,
815 VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR = 1000269003,
816 VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = 1000269004,
817 VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = 1000269005,
818 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT = 1000272000,
819 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT = 1000272001,
820 VK_STRUCTURE_TYPE_MEMORY_MAP_PLACED_INFO_EXT = 1000272002,
821 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT = 1000273000,
822 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV = 1000277000,
823 VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV = 1000277001,
824 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV = 1000277002,
825 VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV = 1000277003,
826 VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV = 1000277004,
827 VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV = 1000277005,
828 VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV = 1000277006,
829 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV = 1000277007,
830 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV = 1000278000,
831 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV = 1000278001,
832 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = 1000281000,
833 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM = 1000282000,
834 VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM = 1000282001,
835 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT = 1000283000,
836 VK_STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT = 1000283001,
837 VK_STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT = 1000283002,
838 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT = 1000284000,
839 VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT = 1000284001,
840 VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT = 1000284002,
841 VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT = 1000287000,
842 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT = 1000287001,
843 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT = 1000287002,
844 VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR = 1000290000,
845 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV = 1000292000,
846 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV = 1000292001,
847 VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV = 1000292002,
848 VK_STRUCTURE_TYPE_PRESENT_ID_KHR = 1000294000,
849 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR = 1000294001,
850 VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR = 1000299000,
851 VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR = 1000299001,
852 VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR = 1000299002,
853 VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR = 1000299003,
854 VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR = 1000299004,
855 VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR = 1000299005,
856 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR = 1000299006,
857 VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHR = 1000299007,
858 VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR = 1000299008,
859 VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHR = 1000299009,
860 VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR = 1000299010,
861 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = 1000300000,
862 VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = 1000300001,
863#ifdef VK_ENABLE_BETA_EXTENSIONS
864 VK_STRUCTURE_TYPE_CUDA_MODULE_CREATE_INFO_NV = 1000307000,
865#endif
866#ifdef VK_ENABLE_BETA_EXTENSIONS
867 VK_STRUCTURE_TYPE_CUDA_FUNCTION_CREATE_INFO_NV = 1000307001,
868#endif
869#ifdef VK_ENABLE_BETA_EXTENSIONS
870 VK_STRUCTURE_TYPE_CUDA_LAUNCH_INFO_NV = 1000307002,
871#endif
872#ifdef VK_ENABLE_BETA_EXTENSIONS
873 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV = 1000307003,
874#endif
875#ifdef VK_ENABLE_BETA_EXTENSIONS
876 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV = 1000307004,
877#endif
878 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_SHADING_FEATURES_QCOM = 1000309000,
879 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_SHADING_PROPERTIES_QCOM = 1000309001,
880 VK_STRUCTURE_TYPE_RENDER_PASS_TILE_SHADING_CREATE_INFO_QCOM = 1000309002,
881 VK_STRUCTURE_TYPE_PER_TILE_BEGIN_INFO_QCOM = 1000309003,
882 VK_STRUCTURE_TYPE_PER_TILE_END_INFO_QCOM = 1000309004,
883 VK_STRUCTURE_TYPE_DISPATCH_TILE_INFO_QCOM = 1000309005,
884 VK_STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV = 1000310000,
885 VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT = 1000311000,
886 VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT = 1000311001,
887 VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT = 1000311002,
888 VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT = 1000311003,
889 VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT = 1000311004,
890 VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT = 1000311005,
891 VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT = 1000311006,
892 VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT = 1000311007,
893 VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT = 1000311008,
894 VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT = 1000311009,
895 VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311010,
896 VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311011,
897 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT = 1000316000,
898 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT = 1000316001,
899 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT = 1000316002,
900 VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT = 1000316003,
901 VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT = 1000316004,
902 VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316005,
903 VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316006,
904 VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316007,
905 VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316008,
906 VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT = 1000316010,
907 VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT = 1000316011,
908 VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT = 1000316012,
909 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316009,
910 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT = 1000320000,
911 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT = 1000320001,
912 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT = 1000320002,
913 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD = 1000321000,
914 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR = 1000203000,
915 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR = 1000322000,
916 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR = 1000323000,
917 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV = 1000326000,
918 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV = 1000326001,
919 VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV = 1000326002,
920 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV = 1000327000,
921 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV = 1000327001,
922 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV = 1000327002,
923 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT = 1000328000,
924 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT = 1000328001,
925 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT = 1000330000,
926 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = 1000332000,
927 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = 1000332001,
928 VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM = 1000333000,
929 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR = 1000336000,
930 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT = 1000338000,
931 VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT = 1000338001,
932 VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT = 1000338004,
933 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT = 1000339000,
934 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT = 1000340000,
935 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT = 1000341000,
936 VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT = 1000341001,
937 VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT = 1000341002,
938 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT = 1000344000,
939 VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT = 1000346000,
940 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT = 1000352000,
941 VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT = 1000352001,
942 VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT = 1000352002,
943 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT = 1000353000,
944 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT = 1000354000,
945 VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT = 1000354001,
946 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT = 1000355000,
947 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT = 1000355001,
948 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT = 1000356000,
949 VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364000,
950 VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA = 1000364001,
951 VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364002,
952 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA = 1000365000,
953 VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000365001,
954 VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA = 1000366000,
955 VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA = 1000366001,
956 VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA = 1000366002,
957 VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA = 1000366003,
958 VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA = 1000366004,
959 VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA = 1000366005,
960 VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA = 1000366006,
961 VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA = 1000366007,
962 VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA = 1000366008,
963 VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA = 1000366009,
964 VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI = 1000369000,
965 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI = 1000369001,
966 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI = 1000369002,
967 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI = 1000370000,
968 VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV = 1000371000,
969 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV = 1000371001,
970 VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT = 1000372000,
971 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT = 1000372001,
972 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT = 1000375000,
973 VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT = 1000375001,
974 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT = 1000376000,
975 VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT = 1000376001,
976 VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT = 1000376002,
977 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = 1000377000,
978 VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX = 1000378000,
979 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = 1000381000,
980 VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT = 1000381001,
981 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT = 1000382000,
982 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR = 1000386000,
983 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_UNTYPED_POINTERS_FEATURES_KHR = 1000387000,
984 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_RGB_CONVERSION_FEATURES_VALVE = 1000390000,
985 VK_STRUCTURE_TYPE_VIDEO_ENCODE_RGB_CONVERSION_CAPABILITIES_VALVE = 1000390001,
986 VK_STRUCTURE_TYPE_VIDEO_ENCODE_PROFILE_RGB_CONVERSION_INFO_VALVE = 1000390002,
987 VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_RGB_CONVERSION_CREATE_INFO_VALVE = 1000390003,
988 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT = 1000391000,
989 VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT = 1000391001,
990 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT = 1000392000,
991 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT = 1000392001,
992 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT = 1000393000,
993 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT = 1000395000,
994 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT = 1000395001,
995 VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT = 1000396000,
996 VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT = 1000396001,
997 VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT = 1000396002,
998 VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT = 1000396003,
999 VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT = 1000396004,
1000 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT = 1000396005,
1001 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT = 1000396006,
1002 VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT = 1000396007,
1003 VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT = 1000396008,
1004 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT = 1000396009,
1005#ifdef VK_ENABLE_BETA_EXTENSIONS
1006 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV = 1000397000,
1007#endif
1008#ifdef VK_ENABLE_BETA_EXTENSIONS
1009 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV = 1000397001,
1010#endif
1011#ifdef VK_ENABLE_BETA_EXTENSIONS
1012 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV = 1000397002,
1013#endif
1014 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI = 1000404000,
1015 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI = 1000404001,
1016 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI = 1000404002,
1017 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT = 1000411000,
1018 VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT = 1000411001,
1019 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT = 1000412000,
1020 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM = 1000415000,
1021 VK_STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM = 1000417000,
1022 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM = 1000417001,
1023 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM = 1000417002,
1024 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT = 1000418000,
1025 VK_STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT = 1000418001,
1026 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE = 1000420000,
1027 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE = 1000420001,
1028 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE = 1000420002,
1029 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT = 1000422000,
1030 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM = 1000424000,
1031 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM = 1000424001,
1032 VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM = 1000424002,
1033 VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM = 1000424003,
1034 VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM = 1000424004,
1035 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV = 1000426000,
1036 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV = 1000428000,
1037 VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV = 1000428001,
1038 VK_STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV = 1000428002,
1039 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_LINEAR_SWEPT_SPHERES_FEATURES_NV = 1000429008,
1040 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_LINEAR_SWEPT_SPHERES_DATA_NV = 1000429009,
1041 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_SPHERES_DATA_NV = 1000429010,
1042 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV = 1000430000,
1043 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR = 1000434000,
1044 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT = 1000437000,
1045 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM = 1000440000,
1046 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM = 1000440001,
1047 VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM = 1000440002,
1048 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT = 1000451000,
1049 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT = 1000451001,
1050 VK_STRUCTURE_TYPE_NATIVE_BUFFER_USAGE_OHOS = 1000452000,
1051 VK_STRUCTURE_TYPE_NATIVE_BUFFER_PROPERTIES_OHOS = 1000452001,
1052 VK_STRUCTURE_TYPE_NATIVE_BUFFER_FORMAT_PROPERTIES_OHOS = 1000452002,
1053 VK_STRUCTURE_TYPE_IMPORT_NATIVE_BUFFER_INFO_OHOS = 1000452003,
1054 VK_STRUCTURE_TYPE_MEMORY_GET_NATIVE_BUFFER_INFO_OHOS = 1000452004,
1055 VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_OHOS = 1000452005,
1056 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT = 1000453000,
1057 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT = 1000455000,
1058 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT = 1000455001,
1059 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT = 1000458000,
1060 VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT = 1000458001,
1061 VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT = 1000458002,
1062 VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT = 1000458003,
1063 VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG = 1000459000,
1064 VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG = 1000459001,
1065 VK_STRUCTURE_TYPE_TENSOR_CREATE_INFO_ARM = 1000460000,
1066 VK_STRUCTURE_TYPE_TENSOR_VIEW_CREATE_INFO_ARM = 1000460001,
1067 VK_STRUCTURE_TYPE_BIND_TENSOR_MEMORY_INFO_ARM = 1000460002,
1068 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_TENSOR_ARM = 1000460003,
1069 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TENSOR_PROPERTIES_ARM = 1000460004,
1070 VK_STRUCTURE_TYPE_TENSOR_FORMAT_PROPERTIES_ARM = 1000460005,
1071 VK_STRUCTURE_TYPE_TENSOR_DESCRIPTION_ARM = 1000460006,
1072 VK_STRUCTURE_TYPE_TENSOR_MEMORY_REQUIREMENTS_INFO_ARM = 1000460007,
1073 VK_STRUCTURE_TYPE_TENSOR_MEMORY_BARRIER_ARM = 1000460008,
1074 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TENSOR_FEATURES_ARM = 1000460009,
1075 VK_STRUCTURE_TYPE_DEVICE_TENSOR_MEMORY_REQUIREMENTS_ARM = 1000460010,
1076 VK_STRUCTURE_TYPE_COPY_TENSOR_INFO_ARM = 1000460011,
1077 VK_STRUCTURE_TYPE_TENSOR_COPY_ARM = 1000460012,
1078 VK_STRUCTURE_TYPE_TENSOR_DEPENDENCY_INFO_ARM = 1000460013,
1079 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_TENSOR_ARM = 1000460014,
1080 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_TENSOR_INFO_ARM = 1000460015,
1081 VK_STRUCTURE_TYPE_EXTERNAL_TENSOR_PROPERTIES_ARM = 1000460016,
1082 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_TENSOR_CREATE_INFO_ARM = 1000460017,
1083 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_TENSOR_FEATURES_ARM = 1000460018,
1084 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_TENSOR_PROPERTIES_ARM = 1000460019,
1085 VK_STRUCTURE_TYPE_DESCRIPTOR_GET_TENSOR_INFO_ARM = 1000460020,
1086 VK_STRUCTURE_TYPE_TENSOR_CAPTURE_DESCRIPTOR_DATA_INFO_ARM = 1000460021,
1087 VK_STRUCTURE_TYPE_TENSOR_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_ARM = 1000460022,
1088 VK_STRUCTURE_TYPE_FRAME_BOUNDARY_TENSORS_ARM = 1000460023,
1089 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT = 1000462000,
1090 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT = 1000462001,
1091 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT = 1000462002,
1092 VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT = 1000462003,
1093 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT = 1000342000,
1094 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV = 1000464000,
1095 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV = 1000464001,
1096 VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV = 1000464002,
1097 VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV = 1000464003,
1098 VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV = 1000464004,
1099 VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV = 1000464005,
1100 VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV = 1000464010,
1101 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT = 1000465000,
1102 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID = 1000468000,
1103 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID = 1000468001,
1104 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID = 1000468002,
1105 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD = 1000476000,
1106 VK_STRUCTURE_TYPE_ANTI_LAG_DATA_AMD = 1000476001,
1107 VK_STRUCTURE_TYPE_ANTI_LAG_PRESENTATION_INFO_AMD = 1000476002,
1108#ifdef VK_ENABLE_BETA_EXTENSIONS
1109 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DENSE_GEOMETRY_FORMAT_FEATURES_AMDX = 1000478000,
1110#endif
1111#ifdef VK_ENABLE_BETA_EXTENSIONS
1112 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DENSE_GEOMETRY_FORMAT_TRIANGLES_DATA_AMDX = 1000478001,
1113#endif
1114 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_ID_2_KHR = 1000479000,
1115 VK_STRUCTURE_TYPE_PRESENT_ID_2_KHR = 1000479001,
1116 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_2_FEATURES_KHR = 1000479002,
1117 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_WAIT_2_KHR = 1000480000,
1118 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_2_FEATURES_KHR = 1000480001,
1119 VK_STRUCTURE_TYPE_PRESENT_WAIT_2_INFO_KHR = 1000480002,
1120 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR = 1000481000,
1121 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT = 1000482000,
1122 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT = 1000482001,
1123 VK_STRUCTURE_TYPE_SHADER_CREATE_INFO_EXT = 1000482002,
1124 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR = 1000483000,
1125 VK_STRUCTURE_TYPE_PIPELINE_BINARY_CREATE_INFO_KHR = 1000483001,
1126 VK_STRUCTURE_TYPE_PIPELINE_BINARY_INFO_KHR = 1000483002,
1127 VK_STRUCTURE_TYPE_PIPELINE_BINARY_KEY_KHR = 1000483003,
1128 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR = 1000483004,
1129 VK_STRUCTURE_TYPE_RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR = 1000483005,
1130 VK_STRUCTURE_TYPE_PIPELINE_BINARY_DATA_INFO_KHR = 1000483006,
1131 VK_STRUCTURE_TYPE_PIPELINE_CREATE_INFO_KHR = 1000483007,
1132 VK_STRUCTURE_TYPE_DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR = 1000483008,
1133 VK_STRUCTURE_TYPE_PIPELINE_BINARY_HANDLES_INFO_KHR = 1000483009,
1134 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM = 1000484000,
1135 VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM = 1000484001,
1136 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC = 1000485000,
1137 VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC = 1000485001,
1138 VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_KHR = 1000274000,
1139 VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_KHR = 1000274001,
1140 VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_KHR = 1000274002,
1141 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_KHR = 1000275000,
1142 VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_KHR = 1000275001,
1143 VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_KHR = 1000275002,
1144 VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_KHR = 1000275003,
1145 VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_KHR = 1000275004,
1146 VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_KHR = 1000275005,
1147 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM = 1000488000,
1148 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV = 1000490000,
1149 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV = 1000490001,
1150 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_VECTOR_FEATURES_NV = 1000491000,
1151 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_VECTOR_PROPERTIES_NV = 1000491001,
1152 VK_STRUCTURE_TYPE_COOPERATIVE_VECTOR_PROPERTIES_NV = 1000491002,
1153 VK_STRUCTURE_TYPE_CONVERT_COOPERATIVE_VECTOR_MATRIX_INFO_NV = 1000491004,
1154 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV = 1000492000,
1155 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV = 1000492001,
1156 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT = 1000351000,
1157 VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT = 1000351002,
1158 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT = 1000495000,
1159 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT = 1000495001,
1160 VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT = 1000496000,
1161 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM = 1000497000,
1162 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM = 1000497001,
1163 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT = 1000498000,
1164 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT = 1000499000,
1165 VK_STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV = 1000505000,
1166 VK_STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV = 1000505001,
1167 VK_STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV = 1000505002,
1168 VK_STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV = 1000505003,
1169 VK_STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV = 1000505004,
1170 VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV = 1000505005,
1171 VK_STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV = 1000505006,
1172 VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV = 1000505007,
1173 VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV = 1000505008,
1174 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR = 1000506000,
1175 VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR = 1000506001,
1176 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR = 1000506002,
1177 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_CREATE_INFO_ARM = 1000507000,
1178 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_CREATE_INFO_ARM = 1000507001,
1179 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_RESOURCE_INFO_ARM = 1000507002,
1180 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_CONSTANT_ARM = 1000507003,
1181 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_MEMORY_REQUIREMENTS_INFO_ARM = 1000507004,
1182 VK_STRUCTURE_TYPE_BIND_DATA_GRAPH_PIPELINE_SESSION_MEMORY_INFO_ARM = 1000507005,
1183 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DATA_GRAPH_FEATURES_ARM = 1000507006,
1184 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SHADER_MODULE_CREATE_INFO_ARM = 1000507007,
1185 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_PROPERTY_QUERY_RESULT_ARM = 1000507008,
1186 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_INFO_ARM = 1000507009,
1187 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_COMPILER_CONTROL_CREATE_INFO_ARM = 1000507010,
1188 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_REQUIREMENTS_INFO_ARM = 1000507011,
1189 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_REQUIREMENT_ARM = 1000507012,
1190 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_IDENTIFIER_CREATE_INFO_ARM = 1000507013,
1191 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_DISPATCH_INFO_ARM = 1000507014,
1192 VK_STRUCTURE_TYPE_DATA_GRAPH_PROCESSING_ENGINE_CREATE_INFO_ARM = 1000507016,
1193 VK_STRUCTURE_TYPE_QUEUE_FAMILY_DATA_GRAPH_PROCESSING_ENGINE_PROPERTIES_ARM = 1000507017,
1194 VK_STRUCTURE_TYPE_QUEUE_FAMILY_DATA_GRAPH_PROPERTIES_ARM = 1000507018,
1195 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_QUEUE_FAMILY_DATA_GRAPH_PROCESSING_ENGINE_INFO_ARM = 1000507019,
1196 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_CONSTANT_TENSOR_SEMI_STRUCTURED_SPARSITY_INFO_ARM = 1000507015,
1197 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM = 1000510000,
1198 VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM = 1000510001,
1199 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR = 1000201000,
1200 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR = 1000511000,
1201 VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_CAPABILITIES_KHR = 1000512000,
1202 VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PICTURE_INFO_KHR = 1000512001,
1203 VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PROFILE_INFO_KHR = 1000512003,
1204 VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000512004,
1205 VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_DPB_SLOT_INFO_KHR = 1000512005,
1206 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_CAPABILITIES_KHR = 1000513000,
1207 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000513001,
1208 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_PICTURE_INFO_KHR = 1000513002,
1209 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_DPB_SLOT_INFO_KHR = 1000513003,
1210 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_AV1_FEATURES_KHR = 1000513004,
1211 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_PROFILE_INFO_KHR = 1000513005,
1212 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_RATE_CONTROL_INFO_KHR = 1000513006,
1213 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_RATE_CONTROL_LAYER_INFO_KHR = 1000513007,
1214 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_QUALITY_LEVEL_PROPERTIES_KHR = 1000513008,
1215 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_SESSION_CREATE_INFO_KHR = 1000513009,
1216 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_GOP_REMAINING_FRAME_INFO_KHR = 1000513010,
1217 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_DECODE_VP9_FEATURES_KHR = 1000514000,
1218 VK_STRUCTURE_TYPE_VIDEO_DECODE_VP9_CAPABILITIES_KHR = 1000514001,
1219 VK_STRUCTURE_TYPE_VIDEO_DECODE_VP9_PICTURE_INFO_KHR = 1000514002,
1220 VK_STRUCTURE_TYPE_VIDEO_DECODE_VP9_PROFILE_INFO_KHR = 1000514003,
1221 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR = 1000515000,
1222 VK_STRUCTURE_TYPE_VIDEO_INLINE_QUERY_INFO_KHR = 1000515001,
1223 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV = 1000516000,
1224 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM = 1000518000,
1225 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM = 1000518001,
1226 VK_STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM = 1000518002,
1227 VK_STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM = 1000519000,
1228 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM = 1000519001,
1229 VK_STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM = 1000519002,
1230 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM = 1000520000,
1231 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM = 1000520001,
1232 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM = 1000521000,
1233 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT = 1000524000,
1234 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFIED_IMAGE_LAYOUTS_FEATURES_KHR = 1000527000,
1235 VK_STRUCTURE_TYPE_ATTACHMENT_FEEDBACK_LOOP_INFO_EXT = 1000527001,
1236 VK_STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX = 1000529000,
1237 VK_STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX = 1000529001,
1238 VK_STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX = 1000529002,
1239 VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX = 1000529003,
1240 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX = 1000529004,
1241 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT = 1000530000,
1242 VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR = 1000184000,
1243 VK_STRUCTURE_TYPE_SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT = 1000545007,
1244 VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT = 1000545008,
1245 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV = 1000546000,
1246 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_MEMORY_HEAP_FEATURES_QCOM = 1000547000,
1247 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_MEMORY_HEAP_PROPERTIES_QCOM = 1000547001,
1248 VK_STRUCTURE_TYPE_TILE_MEMORY_REQUIREMENTS_QCOM = 1000547002,
1249 VK_STRUCTURE_TYPE_TILE_MEMORY_BIND_INFO_QCOM = 1000547003,
1250 VK_STRUCTURE_TYPE_TILE_MEMORY_SIZE_INFO_QCOM = 1000547004,
1251 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_KHR = 1000549000,
1252 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_KHR = 1000426001,
1253 VK_STRUCTURE_TYPE_COPY_MEMORY_INDIRECT_INFO_KHR = 1000549002,
1254 VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INDIRECT_INFO_KHR = 1000549003,
1255 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_EXT = 1000427000,
1256 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_EXT = 1000427001,
1257 VK_STRUCTURE_TYPE_DECOMPRESS_MEMORY_INFO_EXT = 1000550002,
1258 VK_STRUCTURE_TYPE_DISPLAY_SURFACE_STEREO_CREATE_INFO_NV = 1000551000,
1259 VK_STRUCTURE_TYPE_DISPLAY_MODE_STEREO_PROPERTIES_NV = 1000551001,
1260 VK_STRUCTURE_TYPE_VIDEO_ENCODE_INTRA_REFRESH_CAPABILITIES_KHR = 1000552000,
1261 VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_INTRA_REFRESH_CREATE_INFO_KHR = 1000552001,
1262 VK_STRUCTURE_TYPE_VIDEO_ENCODE_INTRA_REFRESH_INFO_KHR = 1000552002,
1263 VK_STRUCTURE_TYPE_VIDEO_REFERENCE_INTRA_REFRESH_INFO_KHR = 1000552003,
1264 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_INTRA_REFRESH_FEATURES_KHR = 1000552004,
1265 VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_CAPABILITIES_KHR = 1000553000,
1266 VK_STRUCTURE_TYPE_VIDEO_FORMAT_QUANTIZATION_MAP_PROPERTIES_KHR = 1000553001,
1267 VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_INFO_KHR = 1000553002,
1268 VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000553005,
1269 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUANTIZATION_MAP_FEATURES_KHR = 1000553009,
1270 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUANTIZATION_MAP_CAPABILITIES_KHR = 1000553003,
1271 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUANTIZATION_MAP_CAPABILITIES_KHR = 1000553004,
1272 VK_STRUCTURE_TYPE_VIDEO_FORMAT_H265_QUANTIZATION_MAP_PROPERTIES_KHR = 1000553006,
1273 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_QUANTIZATION_MAP_CAPABILITIES_KHR = 1000553007,
1274 VK_STRUCTURE_TYPE_VIDEO_FORMAT_AV1_QUANTIZATION_MAP_PROPERTIES_KHR = 1000553008,
1275 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV = 1000555000,
1276 VK_STRUCTURE_TYPE_EXTERNAL_COMPUTE_QUEUE_DEVICE_CREATE_INFO_NV = 1000556000,
1277 VK_STRUCTURE_TYPE_EXTERNAL_COMPUTE_QUEUE_CREATE_INFO_NV = 1000556001,
1278 VK_STRUCTURE_TYPE_EXTERNAL_COMPUTE_QUEUE_DATA_PARAMS_NV = 1000556002,
1279 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_COMPUTE_QUEUE_PROPERTIES_NV = 1000556003,
1280 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR = 1000558000,
1281 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV = 1000559000,
1282 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR = 1000562000,
1283 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR = 1000562001,
1284 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR = 1000562002,
1285 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR = 1000562003,
1286 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR = 1000562004,
1287 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV = 1000563000,
1288 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT = 1000564000,
1289 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT8_FEATURES_EXT = 1000567000,
1290 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV = 1000568000,
1291 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_FEATURES_NV = 1000569000,
1292 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_PROPERTIES_NV = 1000569001,
1293 VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_CLUSTERS_BOTTOM_LEVEL_INPUT_NV = 1000569002,
1294 VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_TRIANGLE_CLUSTER_INPUT_NV = 1000569003,
1295 VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_MOVE_OBJECTS_INPUT_NV = 1000569004,
1296 VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_INPUT_INFO_NV = 1000569005,
1297 VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_COMMANDS_INFO_NV = 1000569006,
1298 VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CLUSTER_ACCELERATION_STRUCTURE_CREATE_INFO_NV = 1000569007,
1299 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_FEATURES_NV = 1000570000,
1300 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_PROPERTIES_NV = 1000570001,
1301 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_PARTITIONED_ACCELERATION_STRUCTURE_NV = 1000570002,
1302 VK_STRUCTURE_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCES_INPUT_NV = 1000570003,
1303 VK_STRUCTURE_TYPE_BUILD_PARTITIONED_ACCELERATION_STRUCTURE_INFO_NV = 1000570004,
1304 VK_STRUCTURE_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_FLAGS_NV = 1000570005,
1305 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT = 1000572000,
1306 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT = 1000572001,
1307 VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT = 1000572002,
1308 VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_CREATE_INFO_EXT = 1000572003,
1309 VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_EXT = 1000572004,
1310 VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT = 1000572006,
1311 VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT = 1000572007,
1312 VK_STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_PIPELINE_EXT = 1000572008,
1313 VK_STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_SHADER_EXT = 1000572009,
1314 VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_PIPELINE_INFO_EXT = 1000572010,
1315 VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_INFO_EXT = 1000572011,
1316 VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT = 1000572012,
1317 VK_STRUCTURE_TYPE_GENERATED_COMMANDS_PIPELINE_INFO_EXT = 1000572013,
1318 VK_STRUCTURE_TYPE_GENERATED_COMMANDS_SHADER_INFO_EXT = 1000572014,
1319 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_8_FEATURES_KHR = 1000574000,
1320 VK_STRUCTURE_TYPE_MEMORY_BARRIER_ACCESS_FLAGS_3_KHR = 1000574002,
1321 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA = 1000575000,
1322 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA = 1000575001,
1323 VK_STRUCTURE_TYPE_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA = 1000575002,
1324 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FMA_FEATURES_KHR = 1000579000,
1325 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_EXT = 1000581000,
1326 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_EXT = 1000581001,
1327 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT = 1000582000,
1328 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT = 1000582001,
1329 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_9_FEATURES_KHR = 1000584000,
1330 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_9_PROPERTIES_KHR = 1000584001,
1331 VK_STRUCTURE_TYPE_QUEUE_FAMILY_OWNERSHIP_TRANSFER_PROPERTIES_KHR = 1000584002,
1332 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_2_FEATURES_KHR = 1000586000,
1333 VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_INLINE_SESSION_PARAMETERS_INFO_KHR = 1000586001,
1334 VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_INLINE_SESSION_PARAMETERS_INFO_KHR = 1000586002,
1335 VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_INLINE_SESSION_PARAMETERS_INFO_KHR = 1000586003,
1336 VK_STRUCTURE_TYPE_SURFACE_CREATE_INFO_OHOS = 1000685000,
1337 VK_STRUCTURE_TYPE_NATIVE_BUFFER_OHOS = 1000453001,
1338 VK_STRUCTURE_TYPE_SWAPCHAIN_IMAGE_CREATE_INFO_OHOS = 1000453002,
1339 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENTATION_PROPERTIES_OHOS = 1000453003,
1340 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI = 1000590000,
1341 VK_STRUCTURE_TYPE_HDR_VIVID_DYNAMIC_METADATA_HUAWEI = 1000590001,
1342 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV = 1000593000,
1343 VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV = 1000593001,
1344 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV = 1000593002,
1345 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_OPACITY_MICROMAP_FEATURES_ARM = 1000596000,
1346 VK_STRUCTURE_TYPE_IMPORT_MEMORY_METAL_HANDLE_INFO_EXT = 1000602000,
1347 VK_STRUCTURE_TYPE_MEMORY_METAL_HANDLE_PROPERTIES_EXT = 1000602001,
1348 VK_STRUCTURE_TYPE_MEMORY_GET_METAL_HANDLE_INFO_EXT = 1000602002,
1349 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_KHR = 1000421000,
1350 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_COUNTERS_BY_REGION_FEATURES_ARM = 1000605000,
1351 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_COUNTERS_BY_REGION_PROPERTIES_ARM = 1000605001,
1352 VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_ARM = 1000605002,
1353 VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_ARM = 1000605003,
1354 VK_STRUCTURE_TYPE_RENDER_PASS_PERFORMANCE_COUNTERS_BY_REGION_BEGIN_INFO_ARM = 1000605004,
1355 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_ROBUSTNESS_FEATURES_EXT = 1000608000,
1356 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FORMAT_PACK_FEATURES_ARM = 1000609000,
1357 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_LAYERED_FEATURES_VALVE = 1000611000,
1358 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_LAYERED_PROPERTIES_VALVE = 1000611001,
1359 VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_DENSITY_MAP_LAYERED_CREATE_INFO_VALVE = 1000611002,
1360 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_KHR = 1000286000,
1361 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_KHR = 1000286001,
1362#ifdef VK_ENABLE_BETA_EXTENSIONS
1363 VK_STRUCTURE_TYPE_SET_PRESENT_CONFIG_NV = 1000613000,
1364#endif
1365#ifdef VK_ENABLE_BETA_EXTENSIONS
1366 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_METERING_FEATURES_NV = 1000613001,
1367#endif
1368 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_EXT = 1000425000,
1369 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_EXT = 1000425001,
1370 VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_EXT = 1000425002,
1371 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_DEVICE_MEMORY_FEATURES_EXT = 1000620000,
1372 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_KHR = 1000361000,
1373 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_64_BIT_INDEXING_FEATURES_EXT = 1000627000,
1374 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_RESOLVE_FEATURES_EXT = 1000628000,
1375 VK_STRUCTURE_TYPE_BEGIN_CUSTOM_RESOLVE_INFO_EXT = 1000628001,
1376 VK_STRUCTURE_TYPE_CUSTOM_RESOLVE_CREATE_INFO_EXT = 1000628002,
1377 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DATA_GRAPH_MODEL_FEATURES_QCOM = 1000629000,
1378 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_BUILTIN_MODEL_CREATE_INFO_QCOM = 1000629001,
1379 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_10_FEATURES_KHR = 1000630000,
1380 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_10_PROPERTIES_KHR = 1000630001,
1381 VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_FLAGS_INFO_KHR = 1000630002,
1382 VK_STRUCTURE_TYPE_RENDERING_END_INFO_KHR = 1000619003,
1383 VK_STRUCTURE_TYPE_RESOLVE_IMAGE_MODE_INFO_KHR = 1000630004,
1384 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CACHE_INCREMENTAL_MODE_FEATURES_SEC = 1000637000,
1385 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_UNIFORM_BUFFER_UNSIZED_ARRAY_FEATURES_EXT = 1000642000,
1386 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
1387 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
1388 // VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT is a legacy alias
1389 VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
1390 VK_STRUCTURE_TYPE_RENDERING_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_INFO,
1391 VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO,
1392 VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO,
1393 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES,
1394 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO,
1395 VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO,
1396 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
1397 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,
1398 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2,
1399 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2,
1400 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2,
1401 VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2,
1402 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2,
1403 VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2,
1404 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2,
1405 VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2,
1406 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2,
1407 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO,
1408 VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO,
1409 VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO,
1410 VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO,
1411 VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO,
1412 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO,
1413 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO,
1414 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES,
1415 VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO,
1416 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES,
1417 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES,
1418 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES,
1419 VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO,
1420 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO,
1421 VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES,
1422 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO,
1423 VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES,
1424 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES,
1425 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO,
1426 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO,
1427 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO,
1428 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO,
1429 VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES,
1430 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO,
1431 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES,
1432 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
1433 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
1434 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES,
1435 VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO,
1436 // VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT is a legacy alias
1437 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT,
1438 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES,
1439 VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO,
1440 VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO,
1441 VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO,
1442 VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2,
1443 VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
1444 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2,
1445 VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
1446 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2,
1447 VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO,
1448 VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR = VK_STRUCTURE_TYPE_SUBPASS_END_INFO,
1449 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO,
1450 VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES,
1451 VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO,
1452 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES,
1453 VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO,
1454 VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO,
1455 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO,
1456 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
1457 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR,
1458 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS,
1459 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO,
1460 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES,
1461 VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO,
1462 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES,
1463 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES,
1464 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK,
1465 VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO,
1466 VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2,
1467 VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2,
1468 VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2,
1469 VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2,
1470 VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2,
1471 VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO,
1472 VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV = VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD,
1473 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO,
1474 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO,
1475 VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO,
1476 VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO,
1477 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES,
1478 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES,
1479 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO,
1480 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO,
1481 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO,
1482 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES,
1483 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES,
1484 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO,
1485 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT,
1486 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES,
1487 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT,
1488 VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO,
1489 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES,
1490 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES,
1491 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES,
1492 VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR,
1493 VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO,
1494 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES,
1495 VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR = VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES,
1496 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO,
1497 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES,
1498 VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO,
1499 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES,
1500 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES,
1501 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES,
1502 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE,
1503 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR,
1504 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR,
1505 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES,
1506 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES,
1507 VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO,
1508 VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO,
1509 VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO,
1510 VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO,
1511 // VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL is a legacy alias
1512 VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL,
1513 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES,
1514 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES,
1515 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES,
1516 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES,
1517 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO,
1518 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES,
1519 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES,
1520 VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO,
1521 VK_STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO,
1522 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES,
1523 VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT,
1524 VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT,
1525 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT,
1526 VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
1527 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES,
1528 VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO,
1529 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES,
1530 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES,
1531 VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
1532 VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO,
1533 VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO,
1534 VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO,
1535 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES,
1536 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO,
1537 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES,
1538 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES,
1539 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES,
1540 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES,
1541 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES,
1542 VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT = VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY,
1543 VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT = VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY,
1544 VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO,
1545 VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT = VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO,
1546 VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT = VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO,
1547 VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO,
1548 VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT = VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE,
1549 VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT = VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY,
1550 VK_STRUCTURE_TYPE_MEMORY_MAP_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_MAP_INFO,
1551 VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO,
1552 VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT = VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_KHR,
1553 VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT = VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_KHR,
1554 VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT = VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_KHR,
1555 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_KHR,
1556 VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT = VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_KHR,
1557 VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_KHR,
1558 VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT = VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_KHR,
1559 VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_KHR,
1560 VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT = VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_KHR,
1561 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES,
1562 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES,
1563 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES,
1564 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES,
1565 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_KHR,
1566 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_KHR,
1567 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES,
1568 VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO,
1569 VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO,
1570 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES,
1571 VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_MEMORY_BARRIER_2,
1572 VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2,
1573 VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2,
1574 VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR = VK_STRUCTURE_TYPE_DEPENDENCY_INFO,
1575 VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR = VK_STRUCTURE_TYPE_SUBMIT_INFO_2,
1576 VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO,
1577 VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO,
1578 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES,
1579 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES,
1580 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES,
1581 VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2,
1582 VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2,
1583 VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2,
1584 VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2,
1585 VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2,
1586 VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2,
1587 VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR = VK_STRUCTURE_TYPE_BUFFER_COPY_2,
1588 VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR = VK_STRUCTURE_TYPE_IMAGE_COPY_2,
1589 VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR = VK_STRUCTURE_TYPE_IMAGE_BLIT_2,
1590 VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR = VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2,
1591 VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR = VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2,
1592 VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT = VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2,
1593 VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT = VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2,
1594 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT,
1595 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT,
1596 VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT,
1597 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3,
1598 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_KHR,
1599 VK_STRUCTURE_TYPE_PIPELINE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR,
1600 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES,
1601 VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT = VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES,
1602 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES,
1603 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES,
1604 VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS,
1605 VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS,
1606 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES,
1607 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_KHR,
1608 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_EXT,
1609 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_EXT,
1610 VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM = VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_EXT,
1611 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_KHR,
1612 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_EXT,
1613 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_EXT,
1614 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES,
1615 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES,
1616 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES,
1617 VK_STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_AREA_INFO,
1618 VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO,
1619 VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR = VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2,
1620 VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR = VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2,
1621 VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO,
1622 VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO,
1623 VK_STRUCTURE_TYPE_SHADER_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO,
1624 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES,
1625 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO,
1626 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES,
1627 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES,
1628 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES,
1629 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES,
1630 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO,
1631 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES,
1632 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES,
1633 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES,
1634 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES,
1635 VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS_KHR = VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS,
1636 VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO_KHR = VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO,
1637 VK_STRUCTURE_TYPE_PUSH_CONSTANTS_INFO_KHR = VK_STRUCTURE_TYPE_PUSH_CONSTANTS_INFO,
1638 VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO_KHR = VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO,
1639 VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO_KHR = VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO,
1640 VK_STRUCTURE_TYPE_RENDERING_END_INFO_EXT = VK_STRUCTURE_TYPE_RENDERING_END_INFO_KHR,
1641 VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
1642} VkStructureType;
1643
1644typedef enum VkImageLayout {
1645 VK_IMAGE_LAYOUT_UNDEFINED = 0,
1646 VK_IMAGE_LAYOUT_GENERAL = 1,
1647 VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2,
1648 VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3,
1649 VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4,
1650 VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5,
1651 VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6,
1652 VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7,
1653 VK_IMAGE_LAYOUT_PREINITIALIZED = 8,
1654 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000,
1655 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001,
1656 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL = 1000241000,
1657 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL = 1000241001,
1658 VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL = 1000241002,
1659 VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL = 1000241003,
1660 VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL = 1000314000,
1661 VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL = 1000314001,
1662 VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ = 1000232000,
1663 VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
1664 VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR = 1000024000,
1665 VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR = 1000024001,
1666 VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR = 1000024002,
1667 VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000,
1668 VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000,
1669 VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR = 1000164003,
1670 VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR = 1000299000,
1671 VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR = 1000299001,
1672 VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR = 1000299002,
1673 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT = 1000339000,
1674 VK_IMAGE_LAYOUT_TENSOR_ALIASING_ARM = 1000460000,
1675 VK_IMAGE_LAYOUT_VIDEO_ENCODE_QUANTIZATION_MAP_KHR = 1000553000,
1676 VK_IMAGE_LAYOUT_ZERO_INITIALIZED_EXT = 1000620000,
1677 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
1678 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
1679 VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR,
1680 VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ_KHR = VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ,
1681 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL,
1682 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,
1683 VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL,
1684 VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,
1685 VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL,
1686 VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL,
1687 VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF
1688} VkImageLayout;
1689
1690typedef enum VkObjectType {
1691 VK_OBJECT_TYPE_UNKNOWN = 0,
1692 VK_OBJECT_TYPE_INSTANCE = 1,
1693 VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2,
1694 VK_OBJECT_TYPE_DEVICE = 3,
1695 VK_OBJECT_TYPE_QUEUE = 4,
1696 VK_OBJECT_TYPE_SEMAPHORE = 5,
1697 VK_OBJECT_TYPE_COMMAND_BUFFER = 6,
1698 VK_OBJECT_TYPE_FENCE = 7,
1699 VK_OBJECT_TYPE_DEVICE_MEMORY = 8,
1700 VK_OBJECT_TYPE_BUFFER = 9,
1701 VK_OBJECT_TYPE_IMAGE = 10,
1702 VK_OBJECT_TYPE_EVENT = 11,
1703 VK_OBJECT_TYPE_QUERY_POOL = 12,
1704 VK_OBJECT_TYPE_BUFFER_VIEW = 13,
1705 VK_OBJECT_TYPE_IMAGE_VIEW = 14,
1706 VK_OBJECT_TYPE_SHADER_MODULE = 15,
1707 VK_OBJECT_TYPE_PIPELINE_CACHE = 16,
1708 VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17,
1709 VK_OBJECT_TYPE_RENDER_PASS = 18,
1710 VK_OBJECT_TYPE_PIPELINE = 19,
1711 VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20,
1712 VK_OBJECT_TYPE_SAMPLER = 21,
1713 VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22,
1714 VK_OBJECT_TYPE_DESCRIPTOR_SET = 23,
1715 VK_OBJECT_TYPE_FRAMEBUFFER = 24,
1716 VK_OBJECT_TYPE_COMMAND_POOL = 25,
1717 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000,
1718 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000,
1719 VK_OBJECT_TYPE_PRIVATE_DATA_SLOT = 1000295000,
1720 VK_OBJECT_TYPE_SURFACE_KHR = 1000000000,
1721 VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000,
1722 VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000,
1723 VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001,
1724 VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000,
1725 VK_OBJECT_TYPE_VIDEO_SESSION_KHR = 1000023000,
1726 VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR = 1000023001,
1727 VK_OBJECT_TYPE_CU_MODULE_NVX = 1000029000,
1728 VK_OBJECT_TYPE_CU_FUNCTION_NVX = 1000029001,
1729 VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000,
1730 VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000,
1731 VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000,
1732 VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000,
1733 VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL = 1000210000,
1734 VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR = 1000268000,
1735 VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV = 1000277000,
1736#ifdef VK_ENABLE_BETA_EXTENSIONS
1737 VK_OBJECT_TYPE_CUDA_MODULE_NV = 1000307000,
1738#endif
1739#ifdef VK_ENABLE_BETA_EXTENSIONS
1740 VK_OBJECT_TYPE_CUDA_FUNCTION_NV = 1000307001,
1741#endif
1742 VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA = 1000366000,
1743 VK_OBJECT_TYPE_MICROMAP_EXT = 1000396000,
1744 VK_OBJECT_TYPE_TENSOR_ARM = 1000460000,
1745 VK_OBJECT_TYPE_TENSOR_VIEW_ARM = 1000460001,
1746 VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV = 1000464000,
1747 VK_OBJECT_TYPE_SHADER_EXT = 1000482000,
1748 VK_OBJECT_TYPE_PIPELINE_BINARY_KHR = 1000483000,
1749 VK_OBJECT_TYPE_DATA_GRAPH_PIPELINE_SESSION_ARM = 1000507000,
1750 VK_OBJECT_TYPE_EXTERNAL_COMPUTE_QUEUE_NV = 1000556000,
1751 VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_EXT = 1000572000,
1752 VK_OBJECT_TYPE_INDIRECT_EXECUTION_SET_EXT = 1000572001,
1753 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
1754 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,
1755 VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT = VK_OBJECT_TYPE_PRIVATE_DATA_SLOT,
1756 VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF
1757} VkObjectType;
1758
1759typedef enum VkVendorId {
1760 VK_VENDOR_ID_KHRONOS = 0x10000,
1761 VK_VENDOR_ID_VIV = 0x10001,
1762 VK_VENDOR_ID_VSI = 0x10002,
1763 VK_VENDOR_ID_KAZAN = 0x10003,
1764 VK_VENDOR_ID_CODEPLAY = 0x10004,
1765 VK_VENDOR_ID_MESA = 0x10005,
1766 VK_VENDOR_ID_POCL = 0x10006,
1767 VK_VENDOR_ID_MOBILEYE = 0x10007,
1768 VK_VENDOR_ID_MAX_ENUM = 0x7FFFFFFF
1769} VkVendorId;
1770
1771typedef enum VkSystemAllocationScope {
1772 VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0,
1773 VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1,
1774 VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2,
1775 VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3,
1776 VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4,
1777 VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 0x7FFFFFFF
1778} VkSystemAllocationScope;
1779
1780typedef enum VkInternalAllocationType {
1781 VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0,
1782 VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF
1783} VkInternalAllocationType;
1784
1785typedef enum VkFormat {
1786 VK_FORMAT_UNDEFINED = 0,
1787 VK_FORMAT_R4G4_UNORM_PACK8 = 1,
1788 VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,
1789 VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,
1790 VK_FORMAT_R5G6B5_UNORM_PACK16 = 4,
1791 VK_FORMAT_B5G6R5_UNORM_PACK16 = 5,
1792 VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,
1793 VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,
1794 VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,
1795 VK_FORMAT_R8_UNORM = 9,
1796 VK_FORMAT_R8_SNORM = 10,
1797 VK_FORMAT_R8_USCALED = 11,
1798 VK_FORMAT_R8_SSCALED = 12,
1799 VK_FORMAT_R8_UINT = 13,
1800 VK_FORMAT_R8_SINT = 14,
1801 VK_FORMAT_R8_SRGB = 15,
1802 VK_FORMAT_R8G8_UNORM = 16,
1803 VK_FORMAT_R8G8_SNORM = 17,
1804 VK_FORMAT_R8G8_USCALED = 18,
1805 VK_FORMAT_R8G8_SSCALED = 19,
1806 VK_FORMAT_R8G8_UINT = 20,
1807 VK_FORMAT_R8G8_SINT = 21,
1808 VK_FORMAT_R8G8_SRGB = 22,
1809 VK_FORMAT_R8G8B8_UNORM = 23,
1810 VK_FORMAT_R8G8B8_SNORM = 24,
1811 VK_FORMAT_R8G8B8_USCALED = 25,
1812 VK_FORMAT_R8G8B8_SSCALED = 26,
1813 VK_FORMAT_R8G8B8_UINT = 27,
1814 VK_FORMAT_R8G8B8_SINT = 28,
1815 VK_FORMAT_R8G8B8_SRGB = 29,
1816 VK_FORMAT_B8G8R8_UNORM = 30,
1817 VK_FORMAT_B8G8R8_SNORM = 31,
1818 VK_FORMAT_B8G8R8_USCALED = 32,
1819 VK_FORMAT_B8G8R8_SSCALED = 33,
1820 VK_FORMAT_B8G8R8_UINT = 34,
1821 VK_FORMAT_B8G8R8_SINT = 35,
1822 VK_FORMAT_B8G8R8_SRGB = 36,
1823 VK_FORMAT_R8G8B8A8_UNORM = 37,
1824 VK_FORMAT_R8G8B8A8_SNORM = 38,
1825 VK_FORMAT_R8G8B8A8_USCALED = 39,
1826 VK_FORMAT_R8G8B8A8_SSCALED = 40,
1827 VK_FORMAT_R8G8B8A8_UINT = 41,
1828 VK_FORMAT_R8G8B8A8_SINT = 42,
1829 VK_FORMAT_R8G8B8A8_SRGB = 43,
1830 VK_FORMAT_B8G8R8A8_UNORM = 44,
1831 VK_FORMAT_B8G8R8A8_SNORM = 45,
1832 VK_FORMAT_B8G8R8A8_USCALED = 46,
1833 VK_FORMAT_B8G8R8A8_SSCALED = 47,
1834 VK_FORMAT_B8G8R8A8_UINT = 48,
1835 VK_FORMAT_B8G8R8A8_SINT = 49,
1836 VK_FORMAT_B8G8R8A8_SRGB = 50,
1837 VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51,
1838 VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52,
1839 VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53,
1840 VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54,
1841 VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55,
1842 VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56,
1843 VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57,
1844 VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,
1845 VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,
1846 VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60,
1847 VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61,
1848 VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62,
1849 VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63,
1850 VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,
1851 VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,
1852 VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66,
1853 VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67,
1854 VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68,
1855 VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69,
1856 VK_FORMAT_R16_UNORM = 70,
1857 VK_FORMAT_R16_SNORM = 71,
1858 VK_FORMAT_R16_USCALED = 72,
1859 VK_FORMAT_R16_SSCALED = 73,
1860 VK_FORMAT_R16_UINT = 74,
1861 VK_FORMAT_R16_SINT = 75,
1862 VK_FORMAT_R16_SFLOAT = 76,
1863 VK_FORMAT_R16G16_UNORM = 77,
1864 VK_FORMAT_R16G16_SNORM = 78,
1865 VK_FORMAT_R16G16_USCALED = 79,
1866 VK_FORMAT_R16G16_SSCALED = 80,
1867 VK_FORMAT_R16G16_UINT = 81,
1868 VK_FORMAT_R16G16_SINT = 82,
1869 VK_FORMAT_R16G16_SFLOAT = 83,
1870 VK_FORMAT_R16G16B16_UNORM = 84,
1871 VK_FORMAT_R16G16B16_SNORM = 85,
1872 VK_FORMAT_R16G16B16_USCALED = 86,
1873 VK_FORMAT_R16G16B16_SSCALED = 87,
1874 VK_FORMAT_R16G16B16_UINT = 88,
1875 VK_FORMAT_R16G16B16_SINT = 89,
1876 VK_FORMAT_R16G16B16_SFLOAT = 90,
1877 VK_FORMAT_R16G16B16A16_UNORM = 91,
1878 VK_FORMAT_R16G16B16A16_SNORM = 92,
1879 VK_FORMAT_R16G16B16A16_USCALED = 93,
1880 VK_FORMAT_R16G16B16A16_SSCALED = 94,
1881 VK_FORMAT_R16G16B16A16_UINT = 95,
1882 VK_FORMAT_R16G16B16A16_SINT = 96,
1883 VK_FORMAT_R16G16B16A16_SFLOAT = 97,
1884 VK_FORMAT_R32_UINT = 98,
1885 VK_FORMAT_R32_SINT = 99,
1886 VK_FORMAT_R32_SFLOAT = 100,
1887 VK_FORMAT_R32G32_UINT = 101,
1888 VK_FORMAT_R32G32_SINT = 102,
1889 VK_FORMAT_R32G32_SFLOAT = 103,
1890 VK_FORMAT_R32G32B32_UINT = 104,
1891 VK_FORMAT_R32G32B32_SINT = 105,
1892 VK_FORMAT_R32G32B32_SFLOAT = 106,
1893 VK_FORMAT_R32G32B32A32_UINT = 107,
1894 VK_FORMAT_R32G32B32A32_SINT = 108,
1895 VK_FORMAT_R32G32B32A32_SFLOAT = 109,
1896 VK_FORMAT_R64_UINT = 110,
1897 VK_FORMAT_R64_SINT = 111,
1898 VK_FORMAT_R64_SFLOAT = 112,
1899 VK_FORMAT_R64G64_UINT = 113,
1900 VK_FORMAT_R64G64_SINT = 114,
1901 VK_FORMAT_R64G64_SFLOAT = 115,
1902 VK_FORMAT_R64G64B64_UINT = 116,
1903 VK_FORMAT_R64G64B64_SINT = 117,
1904 VK_FORMAT_R64G64B64_SFLOAT = 118,
1905 VK_FORMAT_R64G64B64A64_UINT = 119,
1906 VK_FORMAT_R64G64B64A64_SINT = 120,
1907 VK_FORMAT_R64G64B64A64_SFLOAT = 121,
1908 VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,
1909 VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,
1910 VK_FORMAT_D16_UNORM = 124,
1911 VK_FORMAT_X8_D24_UNORM_PACK32 = 125,
1912 VK_FORMAT_D32_SFLOAT = 126,
1913 VK_FORMAT_S8_UINT = 127,
1914 VK_FORMAT_D16_UNORM_S8_UINT = 128,
1915 VK_FORMAT_D24_UNORM_S8_UINT = 129,
1916 VK_FORMAT_D32_SFLOAT_S8_UINT = 130,
1917 VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131,
1918 VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132,
1919 VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,
1920 VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,
1921 VK_FORMAT_BC2_UNORM_BLOCK = 135,
1922 VK_FORMAT_BC2_SRGB_BLOCK = 136,
1923 VK_FORMAT_BC3_UNORM_BLOCK = 137,
1924 VK_FORMAT_BC3_SRGB_BLOCK = 138,
1925 VK_FORMAT_BC4_UNORM_BLOCK = 139,
1926 VK_FORMAT_BC4_SNORM_BLOCK = 140,
1927 VK_FORMAT_BC5_UNORM_BLOCK = 141,
1928 VK_FORMAT_BC5_SNORM_BLOCK = 142,
1929 VK_FORMAT_BC6H_UFLOAT_BLOCK = 143,
1930 VK_FORMAT_BC6H_SFLOAT_BLOCK = 144,
1931 VK_FORMAT_BC7_UNORM_BLOCK = 145,
1932 VK_FORMAT_BC7_SRGB_BLOCK = 146,
1933 VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,
1934 VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,
1935 VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,
1936 VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,
1937 VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,
1938 VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,
1939 VK_FORMAT_EAC_R11_UNORM_BLOCK = 153,
1940 VK_FORMAT_EAC_R11_SNORM_BLOCK = 154,
1941 VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,
1942 VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,
1943 VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,
1944 VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,
1945 VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,
1946 VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,
1947 VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,
1948 VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,
1949 VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,
1950 VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,
1951 VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,
1952 VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,
1953 VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,
1954 VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,
1955 VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,
1956 VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,
1957 VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,
1958 VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,
1959 VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,
1960 VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,
1961 VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,
1962 VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,
1963 VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,
1964 VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,
1965 VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,
1966 VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,
1967 VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,
1968 VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
1969 VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
1970 VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
1971 VK_FORMAT_G8B8G8R8_422_UNORM = 1000156000,
1972 VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001,
1973 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002,
1974 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003,
1975 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004,
1976 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005,
1977 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006,
1978 VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007,
1979 VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008,
1980 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009,
1981 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010,
1982 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011,
1983 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012,
1984 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013,
1985 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014,
1986 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015,
1987 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016,
1988 VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017,
1989 VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018,
1990 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019,
1991 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020,
1992 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021,
1993 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022,
1994 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023,
1995 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024,
1996 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025,
1997 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026,
1998 VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027,
1999 VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028,
2000 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029,
2001 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030,
2002 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031,
2003 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032,
2004 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033,
2005 VK_FORMAT_G8_B8R8_2PLANE_444_UNORM = 1000330000,
2006 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16 = 1000330001,
2007 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16 = 1000330002,
2008 VK_FORMAT_G16_B16R16_2PLANE_444_UNORM = 1000330003,
2009 VK_FORMAT_A4R4G4B4_UNORM_PACK16 = 1000340000,
2010 VK_FORMAT_A4B4G4R4_UNORM_PACK16 = 1000340001,
2011 VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK = 1000066000,
2012 VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK = 1000066001,
2013 VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK = 1000066002,
2014 VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK = 1000066003,
2015 VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK = 1000066004,
2016 VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK = 1000066005,
2017 VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK = 1000066006,
2018 VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK = 1000066007,
2019 VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK = 1000066008,
2020 VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK = 1000066009,
2021 VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK = 1000066010,
2022 VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK = 1000066011,
2023 VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK = 1000066012,
2024 VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK = 1000066013,
2025 VK_FORMAT_A1B5G5R5_UNORM_PACK16 = 1000470000,
2026 VK_FORMAT_A8_UNORM = 1000470001,
2027 VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000,
2028 VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001,
2029 VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002,
2030 VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003,
2031 VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004,
2032 VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005,
2033 VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006,
2034 VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007,
2035 VK_FORMAT_R8_BOOL_ARM = 1000460000,
2036 VK_FORMAT_R16G16_SFIXED5_NV = 1000464000,
2037 VK_FORMAT_R10X6_UINT_PACK16_ARM = 1000609000,
2038 VK_FORMAT_R10X6G10X6_UINT_2PACK16_ARM = 1000609001,
2039 VK_FORMAT_R10X6G10X6B10X6A10X6_UINT_4PACK16_ARM = 1000609002,
2040 VK_FORMAT_R12X4_UINT_PACK16_ARM = 1000609003,
2041 VK_FORMAT_R12X4G12X4_UINT_2PACK16_ARM = 1000609004,
2042 VK_FORMAT_R12X4G12X4B12X4A12X4_UINT_4PACK16_ARM = 1000609005,
2043 VK_FORMAT_R14X2_UINT_PACK16_ARM = 1000609006,
2044 VK_FORMAT_R14X2G14X2_UINT_2PACK16_ARM = 1000609007,
2045 VK_FORMAT_R14X2G14X2B14X2A14X2_UINT_4PACK16_ARM = 1000609008,
2046 VK_FORMAT_R14X2_UNORM_PACK16_ARM = 1000609009,
2047 VK_FORMAT_R14X2G14X2_UNORM_2PACK16_ARM = 1000609010,
2048 VK_FORMAT_R14X2G14X2B14X2A14X2_UNORM_4PACK16_ARM = 1000609011,
2049 VK_FORMAT_G14X2_B14X2R14X2_2PLANE_420_UNORM_3PACK16_ARM = 1000609012,
2050 VK_FORMAT_G14X2_B14X2R14X2_2PLANE_422_UNORM_3PACK16_ARM = 1000609013,
2051 VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK,
2052 VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK,
2053 VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK,
2054 VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK,
2055 VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK,
2056 VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK,
2057 VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK,
2058 VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK,
2059 VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK,
2060 VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK,
2061 VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK,
2062 VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK,
2063 VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK,
2064 VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK,
2065 VK_FORMAT_G8B8G8R8_422_UNORM_KHR = VK_FORMAT_G8B8G8R8_422_UNORM,
2066 VK_FORMAT_B8G8R8G8_422_UNORM_KHR = VK_FORMAT_B8G8R8G8_422_UNORM,
2067 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM,
2068 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM,
2069 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM,
2070 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM,
2071 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM,
2072 VK_FORMAT_R10X6_UNORM_PACK16_KHR = VK_FORMAT_R10X6_UNORM_PACK16,
2073 VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR = VK_FORMAT_R10X6G10X6_UNORM_2PACK16,
2074 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16,
2075 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16,
2076 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16,
2077 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16,
2078 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16,
2079 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16,
2080 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16,
2081 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16,
2082 VK_FORMAT_R12X4_UNORM_PACK16_KHR = VK_FORMAT_R12X4_UNORM_PACK16,
2083 VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR = VK_FORMAT_R12X4G12X4_UNORM_2PACK16,
2084 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16,
2085 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16,
2086 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16,
2087 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16,
2088 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16,
2089 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16,
2090 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16,
2091 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16,
2092 VK_FORMAT_G16B16G16R16_422_UNORM_KHR = VK_FORMAT_G16B16G16R16_422_UNORM,
2093 VK_FORMAT_B16G16R16G16_422_UNORM_KHR = VK_FORMAT_B16G16R16G16_422_UNORM,
2094 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM,
2095 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM,
2096 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM,
2097 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM,
2098 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM,
2099 VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT = VK_FORMAT_G8_B8R8_2PLANE_444_UNORM,
2100 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16,
2101 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16,
2102 VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT = VK_FORMAT_G16_B16R16_2PLANE_444_UNORM,
2103 VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT = VK_FORMAT_A4R4G4B4_UNORM_PACK16,
2104 VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT = VK_FORMAT_A4B4G4R4_UNORM_PACK16,
2105 // VK_FORMAT_R16G16_S10_5_NV is a legacy alias
2106 VK_FORMAT_R16G16_S10_5_NV = VK_FORMAT_R16G16_SFIXED5_NV,
2107 VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR = VK_FORMAT_A1B5G5R5_UNORM_PACK16,
2108 VK_FORMAT_A8_UNORM_KHR = VK_FORMAT_A8_UNORM,
2109 VK_FORMAT_MAX_ENUM = 0x7FFFFFFF
2110} VkFormat;
2111
2112typedef enum VkImageTiling {
2113 VK_IMAGE_TILING_OPTIMAL = 0,
2114 VK_IMAGE_TILING_LINEAR = 1,
2115 VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT = 1000158000,
2116 VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF
2117} VkImageTiling;
2118
2119typedef enum VkImageType {
2120 VK_IMAGE_TYPE_1D = 0,
2121 VK_IMAGE_TYPE_2D = 1,
2122 VK_IMAGE_TYPE_3D = 2,
2123 VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF
2124} VkImageType;
2125
2126typedef enum VkPhysicalDeviceType {
2127 VK_PHYSICAL_DEVICE_TYPE_OTHER = 0,
2128 VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1,
2129 VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2,
2130 VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3,
2131 VK_PHYSICAL_DEVICE_TYPE_CPU = 4,
2132 VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF
2133} VkPhysicalDeviceType;
2134
2135typedef enum VkQueryType {
2136 VK_QUERY_TYPE_OCCLUSION = 0,
2137 VK_QUERY_TYPE_PIPELINE_STATISTICS = 1,
2138 VK_QUERY_TYPE_TIMESTAMP = 2,
2139 VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR = 1000023000,
2140 VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004,
2141 VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR = 1000116000,
2142 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR = 1000150000,
2143 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR = 1000150001,
2144 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000,
2145 VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL = 1000210000,
2146 VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR = 1000299000,
2147 VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT = 1000328000,
2148 VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT = 1000382000,
2149 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR = 1000386000,
2150 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR = 1000386001,
2151 VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT = 1000396000,
2152 VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT = 1000396001,
2153 VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF
2154} VkQueryType;
2155
2156typedef enum VkSharingMode {
2157 VK_SHARING_MODE_EXCLUSIVE = 0,
2158 VK_SHARING_MODE_CONCURRENT = 1,
2159 VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF
2160} VkSharingMode;
2161
2162typedef enum VkComponentSwizzle {
2163 VK_COMPONENT_SWIZZLE_IDENTITY = 0,
2164 VK_COMPONENT_SWIZZLE_ZERO = 1,
2165 VK_COMPONENT_SWIZZLE_ONE = 2,
2166 VK_COMPONENT_SWIZZLE_R = 3,
2167 VK_COMPONENT_SWIZZLE_G = 4,
2168 VK_COMPONENT_SWIZZLE_B = 5,
2169 VK_COMPONENT_SWIZZLE_A = 6,
2170 VK_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF
2171} VkComponentSwizzle;
2172
2173typedef enum VkImageViewType {
2174 VK_IMAGE_VIEW_TYPE_1D = 0,
2175 VK_IMAGE_VIEW_TYPE_2D = 1,
2176 VK_IMAGE_VIEW_TYPE_3D = 2,
2177 VK_IMAGE_VIEW_TYPE_CUBE = 3,
2178 VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4,
2179 VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5,
2180 VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6,
2181 VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF
2182} VkImageViewType;
2183
2184typedef enum VkCommandBufferLevel {
2185 VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0,
2186 VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1,
2187 VK_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF
2188} VkCommandBufferLevel;
2189
2190typedef enum VkIndexType {
2191 VK_INDEX_TYPE_UINT16 = 0,
2192 VK_INDEX_TYPE_UINT32 = 1,
2193 VK_INDEX_TYPE_UINT8 = 1000265000,
2194 VK_INDEX_TYPE_NONE_KHR = 1000165000,
2195 VK_INDEX_TYPE_NONE_NV = VK_INDEX_TYPE_NONE_KHR,
2196 VK_INDEX_TYPE_UINT8_EXT = VK_INDEX_TYPE_UINT8,
2197 VK_INDEX_TYPE_UINT8_KHR = VK_INDEX_TYPE_UINT8,
2198 VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF
2199} VkIndexType;
2200
2201typedef enum VkPipelineCacheHeaderVersion {
2202 VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
2203 VK_PIPELINE_CACHE_HEADER_VERSION_DATA_GRAPH_QCOM = 1000629000,
2204 VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF
2205} VkPipelineCacheHeaderVersion;
2206
2207typedef enum VkBorderColor {
2208 VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
2209 VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1,
2210 VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2,
2211 VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3,
2212 VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4,
2213 VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5,
2214 VK_BORDER_COLOR_FLOAT_CUSTOM_EXT = 1000287003,
2215 VK_BORDER_COLOR_INT_CUSTOM_EXT = 1000287004,
2216 VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF
2217} VkBorderColor;
2218
2219typedef enum VkFilter {
2220 VK_FILTER_NEAREST = 0,
2221 VK_FILTER_LINEAR = 1,
2222 VK_FILTER_CUBIC_EXT = 1000015000,
2223 VK_FILTER_CUBIC_IMG = VK_FILTER_CUBIC_EXT,
2224 VK_FILTER_MAX_ENUM = 0x7FFFFFFF
2225} VkFilter;
2226
2227typedef enum VkSamplerAddressMode {
2228 VK_SAMPLER_ADDRESS_MODE_REPEAT = 0,
2229 VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1,
2230 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2,
2231 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3,
2232 VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4,
2233 // VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR is a legacy alias
2234 VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE,
2235 VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF
2236} VkSamplerAddressMode;
2237
2238typedef enum VkSamplerMipmapMode {
2239 VK_SAMPLER_MIPMAP_MODE_NEAREST = 0,
2240 VK_SAMPLER_MIPMAP_MODE_LINEAR = 1,
2241 VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF
2242} VkSamplerMipmapMode;
2243
2244typedef enum VkCompareOp {
2245 VK_COMPARE_OP_NEVER = 0,
2246 VK_COMPARE_OP_LESS = 1,
2247 VK_COMPARE_OP_EQUAL = 2,
2248 VK_COMPARE_OP_LESS_OR_EQUAL = 3,
2249 VK_COMPARE_OP_GREATER = 4,
2250 VK_COMPARE_OP_NOT_EQUAL = 5,
2251 VK_COMPARE_OP_GREATER_OR_EQUAL = 6,
2252 VK_COMPARE_OP_ALWAYS = 7,
2253 VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF
2254} VkCompareOp;
2255
2256typedef enum VkDescriptorType {
2257 VK_DESCRIPTOR_TYPE_SAMPLER = 0,
2258 VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1,
2259 VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2,
2260 VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3,
2261 VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4,
2262 VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5,
2263 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6,
2264 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7,
2265 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8,
2266 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9,
2267 VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10,
2268 VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK = 1000138000,
2269 VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000,
2270 VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000,
2271 VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM = 1000440000,
2272 VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM = 1000440001,
2273 VK_DESCRIPTOR_TYPE_TENSOR_ARM = 1000460000,
2274 VK_DESCRIPTOR_TYPE_MUTABLE_EXT = 1000351000,
2275 VK_DESCRIPTOR_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_NV = 1000570000,
2276 VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK,
2277 VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = VK_DESCRIPTOR_TYPE_MUTABLE_EXT,
2278 VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF
2279} VkDescriptorType;
2280
2281typedef enum VkPipelineBindPoint {
2282 VK_PIPELINE_BIND_POINT_GRAPHICS = 0,
2283 VK_PIPELINE_BIND_POINT_COMPUTE = 1,
2284#ifdef VK_ENABLE_BETA_EXTENSIONS
2285 VK_PIPELINE_BIND_POINT_EXECUTION_GRAPH_AMDX = 1000134000,
2286#endif
2287 VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR = 1000165000,
2288 VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI = 1000369003,
2289 VK_PIPELINE_BIND_POINT_DATA_GRAPH_ARM = 1000507000,
2290 VK_PIPELINE_BIND_POINT_RAY_TRACING_NV = VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR,
2291 VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF
2292} VkPipelineBindPoint;
2293
2294typedef enum VkBlendFactor {
2295 VK_BLEND_FACTOR_ZERO = 0,
2296 VK_BLEND_FACTOR_ONE = 1,
2297 VK_BLEND_FACTOR_SRC_COLOR = 2,
2298 VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3,
2299 VK_BLEND_FACTOR_DST_COLOR = 4,
2300 VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5,
2301 VK_BLEND_FACTOR_SRC_ALPHA = 6,
2302 VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7,
2303 VK_BLEND_FACTOR_DST_ALPHA = 8,
2304 VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9,
2305 VK_BLEND_FACTOR_CONSTANT_COLOR = 10,
2306 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11,
2307 VK_BLEND_FACTOR_CONSTANT_ALPHA = 12,
2308 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13,
2309 VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14,
2310 VK_BLEND_FACTOR_SRC1_COLOR = 15,
2311 VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16,
2312 VK_BLEND_FACTOR_SRC1_ALPHA = 17,
2313 VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18,
2314 VK_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF
2315} VkBlendFactor;
2316
2317typedef enum VkBlendOp {
2318 VK_BLEND_OP_ADD = 0,
2319 VK_BLEND_OP_SUBTRACT = 1,
2320 VK_BLEND_OP_REVERSE_SUBTRACT = 2,
2321 VK_BLEND_OP_MIN = 3,
2322 VK_BLEND_OP_MAX = 4,
2323 VK_BLEND_OP_ZERO_EXT = 1000148000,
2324 VK_BLEND_OP_SRC_EXT = 1000148001,
2325 VK_BLEND_OP_DST_EXT = 1000148002,
2326 VK_BLEND_OP_SRC_OVER_EXT = 1000148003,
2327 VK_BLEND_OP_DST_OVER_EXT = 1000148004,
2328 VK_BLEND_OP_SRC_IN_EXT = 1000148005,
2329 VK_BLEND_OP_DST_IN_EXT = 1000148006,
2330 VK_BLEND_OP_SRC_OUT_EXT = 1000148007,
2331 VK_BLEND_OP_DST_OUT_EXT = 1000148008,
2332 VK_BLEND_OP_SRC_ATOP_EXT = 1000148009,
2333 VK_BLEND_OP_DST_ATOP_EXT = 1000148010,
2334 VK_BLEND_OP_XOR_EXT = 1000148011,
2335 VK_BLEND_OP_MULTIPLY_EXT = 1000148012,
2336 VK_BLEND_OP_SCREEN_EXT = 1000148013,
2337 VK_BLEND_OP_OVERLAY_EXT = 1000148014,
2338 VK_BLEND_OP_DARKEN_EXT = 1000148015,
2339 VK_BLEND_OP_LIGHTEN_EXT = 1000148016,
2340 VK_BLEND_OP_COLORDODGE_EXT = 1000148017,
2341 VK_BLEND_OP_COLORBURN_EXT = 1000148018,
2342 VK_BLEND_OP_HARDLIGHT_EXT = 1000148019,
2343 VK_BLEND_OP_SOFTLIGHT_EXT = 1000148020,
2344 VK_BLEND_OP_DIFFERENCE_EXT = 1000148021,
2345 VK_BLEND_OP_EXCLUSION_EXT = 1000148022,
2346 VK_BLEND_OP_INVERT_EXT = 1000148023,
2347 VK_BLEND_OP_INVERT_RGB_EXT = 1000148024,
2348 VK_BLEND_OP_LINEARDODGE_EXT = 1000148025,
2349 VK_BLEND_OP_LINEARBURN_EXT = 1000148026,
2350 VK_BLEND_OP_VIVIDLIGHT_EXT = 1000148027,
2351 VK_BLEND_OP_LINEARLIGHT_EXT = 1000148028,
2352 VK_BLEND_OP_PINLIGHT_EXT = 1000148029,
2353 VK_BLEND_OP_HARDMIX_EXT = 1000148030,
2354 VK_BLEND_OP_HSL_HUE_EXT = 1000148031,
2355 VK_BLEND_OP_HSL_SATURATION_EXT = 1000148032,
2356 VK_BLEND_OP_HSL_COLOR_EXT = 1000148033,
2357 VK_BLEND_OP_HSL_LUMINOSITY_EXT = 1000148034,
2358 VK_BLEND_OP_PLUS_EXT = 1000148035,
2359 VK_BLEND_OP_PLUS_CLAMPED_EXT = 1000148036,
2360 VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037,
2361 VK_BLEND_OP_PLUS_DARKER_EXT = 1000148038,
2362 VK_BLEND_OP_MINUS_EXT = 1000148039,
2363 VK_BLEND_OP_MINUS_CLAMPED_EXT = 1000148040,
2364 VK_BLEND_OP_CONTRAST_EXT = 1000148041,
2365 VK_BLEND_OP_INVERT_OVG_EXT = 1000148042,
2366 VK_BLEND_OP_RED_EXT = 1000148043,
2367 VK_BLEND_OP_GREEN_EXT = 1000148044,
2368 VK_BLEND_OP_BLUE_EXT = 1000148045,
2369 VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF
2370} VkBlendOp;
2371
2372typedef enum VkDynamicState {
2373 VK_DYNAMIC_STATE_VIEWPORT = 0,
2374 VK_DYNAMIC_STATE_SCISSOR = 1,
2375 VK_DYNAMIC_STATE_LINE_WIDTH = 2,
2376 VK_DYNAMIC_STATE_DEPTH_BIAS = 3,
2377 VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4,
2378 VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5,
2379 VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6,
2380 VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7,
2381 VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8,
2382 VK_DYNAMIC_STATE_CULL_MODE = 1000267000,
2383 VK_DYNAMIC_STATE_FRONT_FACE = 1000267001,
2384 VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY = 1000267002,
2385 VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT = 1000267003,
2386 VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT = 1000267004,
2387 VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE = 1000267005,
2388 VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE = 1000267006,
2389 VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE = 1000267007,
2390 VK_DYNAMIC_STATE_DEPTH_COMPARE_OP = 1000267008,
2391 VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE = 1000267009,
2392 VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE = 1000267010,
2393 VK_DYNAMIC_STATE_STENCIL_OP = 1000267011,
2394 VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE = 1000377001,
2395 VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE = 1000377002,
2396 VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE = 1000377004,
2397 VK_DYNAMIC_STATE_LINE_STIPPLE = 1000259000,
2398 VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000,
2399 VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000,
2400 VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT = 1000099001,
2401 VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT = 1000099002,
2402 VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000,
2403 VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR = 1000347000,
2404 VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV = 1000164004,
2405 VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = 1000164006,
2406 VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV = 1000205000,
2407 VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = 1000205001,
2408 VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR = 1000226000,
2409 VK_DYNAMIC_STATE_VERTEX_INPUT_EXT = 1000352000,
2410 VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT = 1000377000,
2411 VK_DYNAMIC_STATE_LOGIC_OP_EXT = 1000377003,
2412 VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT = 1000381000,
2413 VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT = 1000455003,
2414 VK_DYNAMIC_STATE_POLYGON_MODE_EXT = 1000455004,
2415 VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT = 1000455005,
2416 VK_DYNAMIC_STATE_SAMPLE_MASK_EXT = 1000455006,
2417 VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT = 1000455007,
2418 VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT = 1000455008,
2419 VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT = 1000455009,
2420 VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT = 1000455010,
2421 VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT = 1000455011,
2422 VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT = 1000455012,
2423 VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT = 1000455002,
2424 VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT = 1000455013,
2425 VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT = 1000455014,
2426 VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT = 1000455015,
2427 VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT = 1000455016,
2428 VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT = 1000455017,
2429 VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT = 1000455018,
2430 VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT = 1000455019,
2431 VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT = 1000455020,
2432 VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT = 1000455021,
2433 VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT = 1000455022,
2434 VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV = 1000455023,
2435 VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV = 1000455024,
2436 VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV = 1000455025,
2437 VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV = 1000455026,
2438 VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV = 1000455027,
2439 VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV = 1000455028,
2440 VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV = 1000455029,
2441 VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV = 1000455030,
2442 VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV = 1000455031,
2443 VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV = 1000455032,
2444 VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT = 1000524000,
2445 VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT = 1000582000,
2446 VK_DYNAMIC_STATE_LINE_STIPPLE_EXT = VK_DYNAMIC_STATE_LINE_STIPPLE,
2447 VK_DYNAMIC_STATE_CULL_MODE_EXT = VK_DYNAMIC_STATE_CULL_MODE,
2448 VK_DYNAMIC_STATE_FRONT_FACE_EXT = VK_DYNAMIC_STATE_FRONT_FACE,
2449 VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT = VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY,
2450 VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT = VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT,
2451 VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT = VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT,
2452 VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT = VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE,
2453 VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE,
2454 VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE,
2455 VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT = VK_DYNAMIC_STATE_DEPTH_COMPARE_OP,
2456 VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE,
2457 VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE,
2458 VK_DYNAMIC_STATE_STENCIL_OP_EXT = VK_DYNAMIC_STATE_STENCIL_OP,
2459 VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT = VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE,
2460 VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE,
2461 VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT = VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE,
2462 VK_DYNAMIC_STATE_LINE_STIPPLE_KHR = VK_DYNAMIC_STATE_LINE_STIPPLE,
2463 VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF
2464} VkDynamicState;
2465
2466typedef enum VkFrontFace {
2467 VK_FRONT_FACE_COUNTER_CLOCKWISE = 0,
2468 VK_FRONT_FACE_CLOCKWISE = 1,
2469 VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF
2470} VkFrontFace;
2471
2472typedef enum VkVertexInputRate {
2473 VK_VERTEX_INPUT_RATE_VERTEX = 0,
2474 VK_VERTEX_INPUT_RATE_INSTANCE = 1,
2475 VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF
2476} VkVertexInputRate;
2477
2478typedef enum VkPrimitiveTopology {
2479 VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0,
2480 VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1,
2481 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2,
2482 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3,
2483 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4,
2484 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5,
2485 VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6,
2486 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7,
2487 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8,
2488 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9,
2489 VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10,
2490 VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF
2491} VkPrimitiveTopology;
2492
2493typedef enum VkPolygonMode {
2494 VK_POLYGON_MODE_FILL = 0,
2495 VK_POLYGON_MODE_LINE = 1,
2496 VK_POLYGON_MODE_POINT = 2,
2497 VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000,
2498 VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF
2499} VkPolygonMode;
2500
2501typedef enum VkStencilOp {
2502 VK_STENCIL_OP_KEEP = 0,
2503 VK_STENCIL_OP_ZERO = 1,
2504 VK_STENCIL_OP_REPLACE = 2,
2505 VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3,
2506 VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4,
2507 VK_STENCIL_OP_INVERT = 5,
2508 VK_STENCIL_OP_INCREMENT_AND_WRAP = 6,
2509 VK_STENCIL_OP_DECREMENT_AND_WRAP = 7,
2510 VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF
2511} VkStencilOp;
2512
2513typedef enum VkLogicOp {
2514 VK_LOGIC_OP_CLEAR = 0,
2515 VK_LOGIC_OP_AND = 1,
2516 VK_LOGIC_OP_AND_REVERSE = 2,
2517 VK_LOGIC_OP_COPY = 3,
2518 VK_LOGIC_OP_AND_INVERTED = 4,
2519 VK_LOGIC_OP_NO_OP = 5,
2520 VK_LOGIC_OP_XOR = 6,
2521 VK_LOGIC_OP_OR = 7,
2522 VK_LOGIC_OP_NOR = 8,
2523 VK_LOGIC_OP_EQUIVALENT = 9,
2524 VK_LOGIC_OP_INVERT = 10,
2525 VK_LOGIC_OP_OR_REVERSE = 11,
2526 VK_LOGIC_OP_COPY_INVERTED = 12,
2527 VK_LOGIC_OP_OR_INVERTED = 13,
2528 VK_LOGIC_OP_NAND = 14,
2529 VK_LOGIC_OP_SET = 15,
2530 VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF
2531} VkLogicOp;
2532
2533typedef enum VkAttachmentLoadOp {
2534 VK_ATTACHMENT_LOAD_OP_LOAD = 0,
2535 VK_ATTACHMENT_LOAD_OP_CLEAR = 1,
2536 VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2,
2537 VK_ATTACHMENT_LOAD_OP_NONE = 1000400000,
2538 VK_ATTACHMENT_LOAD_OP_NONE_EXT = VK_ATTACHMENT_LOAD_OP_NONE,
2539 VK_ATTACHMENT_LOAD_OP_NONE_KHR = VK_ATTACHMENT_LOAD_OP_NONE,
2540 VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF
2541} VkAttachmentLoadOp;
2542
2543typedef enum VkAttachmentStoreOp {
2544 VK_ATTACHMENT_STORE_OP_STORE = 0,
2545 VK_ATTACHMENT_STORE_OP_DONT_CARE = 1,
2546 VK_ATTACHMENT_STORE_OP_NONE = 1000301000,
2547 VK_ATTACHMENT_STORE_OP_NONE_KHR = VK_ATTACHMENT_STORE_OP_NONE,
2548 VK_ATTACHMENT_STORE_OP_NONE_QCOM = VK_ATTACHMENT_STORE_OP_NONE,
2549 VK_ATTACHMENT_STORE_OP_NONE_EXT = VK_ATTACHMENT_STORE_OP_NONE,
2550 VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF
2551} VkAttachmentStoreOp;
2552
2553typedef enum VkSubpassContents {
2554 VK_SUBPASS_CONTENTS_INLINE = 0,
2555 VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1,
2556 VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR = 1000451000,
2557 VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT = VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR,
2558 VK_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF
2559} VkSubpassContents;
2560
2561typedef enum VkAccessFlagBits {
2562 VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
2563 VK_ACCESS_INDEX_READ_BIT = 0x00000002,
2564 VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
2565 VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
2566 VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
2567 VK_ACCESS_SHADER_READ_BIT = 0x00000020,
2568 VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
2569 VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
2570 VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
2571 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
2572 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
2573 VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
2574 VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
2575 VK_ACCESS_HOST_READ_BIT = 0x00002000,
2576 VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
2577 VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
2578 VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
2579 VK_ACCESS_NONE = 0,
2580 VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000,
2581 VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000,
2582 VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000,
2583 VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000,
2584 VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000,
2585 VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000,
2586 VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000,
2587 VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000,
2588 VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000,
2589 VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_EXT = 0x00020000,
2590 VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_EXT = 0x00040000,
2591 VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR,
2592 VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR,
2593 VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,
2594 VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV = VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_EXT,
2595 VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV = VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_EXT,
2596 VK_ACCESS_NONE_KHR = VK_ACCESS_NONE,
2597 VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2598} VkAccessFlagBits;
2599typedef VkFlags VkAccessFlags;
2600
2601typedef enum VkImageAspectFlagBits {
2602 VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
2603 VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
2604 VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
2605 VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
2606 VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010,
2607 VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020,
2608 VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040,
2609 VK_IMAGE_ASPECT_NONE = 0,
2610 VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0x00000080,
2611 VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0x00000100,
2612 VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0x00000200,
2613 VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0x00000400,
2614 VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = VK_IMAGE_ASPECT_PLANE_0_BIT,
2615 VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = VK_IMAGE_ASPECT_PLANE_1_BIT,
2616 VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = VK_IMAGE_ASPECT_PLANE_2_BIT,
2617 VK_IMAGE_ASPECT_NONE_KHR = VK_IMAGE_ASPECT_NONE,
2618 VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2619} VkImageAspectFlagBits;
2620typedef VkFlags VkImageAspectFlags;
2621
2622typedef enum VkFormatFeatureFlagBits {
2623 VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001,
2624 VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002,
2625 VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004,
2626 VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008,
2627 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010,
2628 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020,
2629 VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040,
2630 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080,
2631 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100,
2632 VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200,
2633 VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400,
2634 VK_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800,
2635 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000,
2636 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 0x00004000,
2637 VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 0x00008000,
2638 VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000,
2639 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000,
2640 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000,
2641 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000,
2642 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000,
2643 VK_FORMAT_FEATURE_DISJOINT_BIT = 0x00400000,
2644 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000,
2645 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0x00010000,
2646 VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR = 0x02000000,
2647 VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR = 0x04000000,
2648 VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0x20000000,
2649 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 0x00002000,
2650 VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000,
2651 VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x40000000,
2652 VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR = 0x08000000,
2653 VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR = 0x10000000,
2654 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT,
2655 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,
2656 VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_DST_BIT,
2657 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT,
2658 VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,
2659 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,
2660 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,
2661 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,
2662 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT,
2663 VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = VK_FORMAT_FEATURE_DISJOINT_BIT,
2664 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,
2665 VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2666} VkFormatFeatureFlagBits;
2667typedef VkFlags VkFormatFeatureFlags;
2668
2669typedef enum VkImageCreateFlagBits {
2670 VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001,
2671 VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
2672 VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
2673 VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008,
2674 VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010,
2675 VK_IMAGE_CREATE_ALIAS_BIT = 0x00000400,
2676 VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 0x00000040,
2677 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 0x00000020,
2678 VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 0x00000080,
2679 VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0x00000100,
2680 VK_IMAGE_CREATE_PROTECTED_BIT = 0x00000800,
2681 VK_IMAGE_CREATE_DISJOINT_BIT = 0x00000200,
2682 VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 0x00002000,
2683 VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000,
2684 VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 0x00004000,
2685 VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00010000,
2686 VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT = 0x00040000,
2687 VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT = 0x00020000,
2688 VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR = 0x00100000,
2689 VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_EXT = 0x00008000,
2690 VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,
2691 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,
2692 VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,
2693 VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,
2694 VK_IMAGE_CREATE_DISJOINT_BIT_KHR = VK_IMAGE_CREATE_DISJOINT_BIT,
2695 VK_IMAGE_CREATE_ALIAS_BIT_KHR = VK_IMAGE_CREATE_ALIAS_BIT,
2696 VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM = VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_EXT,
2697 VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2698} VkImageCreateFlagBits;
2699typedef VkFlags VkImageCreateFlags;
2700
2701typedef enum VkSampleCountFlagBits {
2702 VK_SAMPLE_COUNT_1_BIT = 0x00000001,
2703 VK_SAMPLE_COUNT_2_BIT = 0x00000002,
2704 VK_SAMPLE_COUNT_4_BIT = 0x00000004,
2705 VK_SAMPLE_COUNT_8_BIT = 0x00000008,
2706 VK_SAMPLE_COUNT_16_BIT = 0x00000010,
2707 VK_SAMPLE_COUNT_32_BIT = 0x00000020,
2708 VK_SAMPLE_COUNT_64_BIT = 0x00000040,
2709 VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2710} VkSampleCountFlagBits;
2711typedef VkFlags VkSampleCountFlags;
2712
2713typedef enum VkImageUsageFlagBits {
2714 VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001,
2715 VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002,
2716 VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004,
2717 VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008,
2718 VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010,
2719 VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020,
2720 VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040,
2721 VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080,
2722 VK_IMAGE_USAGE_HOST_TRANSFER_BIT = 0x00400000,
2723 VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0x00000400,
2724 VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0x00000800,
2725 VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR = 0x00001000,
2726 VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x00000200,
2727 VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00000100,
2728 VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0x00002000,
2729 VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0x00004000,
2730 VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR = 0x00008000,
2731 VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x00080000,
2732 VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI = 0x00040000,
2733 VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM = 0x00100000,
2734 VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM = 0x00200000,
2735 VK_IMAGE_USAGE_TENSOR_ALIASING_BIT_ARM = 0x00800000,
2736 VK_IMAGE_USAGE_TILE_MEMORY_BIT_QCOM = 0x08000000,
2737 VK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x02000000,
2738 VK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR = 0x04000000,
2739 VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
2740 VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT = VK_IMAGE_USAGE_HOST_TRANSFER_BIT,
2741 VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2742} VkImageUsageFlagBits;
2743typedef VkFlags VkImageUsageFlags;
2744
2745typedef enum VkInstanceCreateFlagBits {
2746 VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR = 0x00000001,
2747 VK_INSTANCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2748} VkInstanceCreateFlagBits;
2749typedef VkFlags VkInstanceCreateFlags;
2750
2751typedef enum VkMemoryHeapFlagBits {
2752 VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
2753 VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002,
2754 VK_MEMORY_HEAP_TILE_MEMORY_BIT_QCOM = 0x00000008,
2755 VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,
2756 VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2757} VkMemoryHeapFlagBits;
2758typedef VkFlags VkMemoryHeapFlags;
2759
2760typedef enum VkMemoryPropertyFlagBits {
2761 VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
2762 VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002,
2763 VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
2764 VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
2765 VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
2766 VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020,
2767 VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD = 0x00000040,
2768 VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD = 0x00000080,
2769 VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV = 0x00000100,
2770 VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2771} VkMemoryPropertyFlagBits;
2772typedef VkFlags VkMemoryPropertyFlags;
2773
2774typedef enum VkQueueFlagBits {
2775 VK_QUEUE_GRAPHICS_BIT = 0x00000001,
2776 VK_QUEUE_COMPUTE_BIT = 0x00000002,
2777 VK_QUEUE_TRANSFER_BIT = 0x00000004,
2778 VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008,
2779 VK_QUEUE_PROTECTED_BIT = 0x00000010,
2780 VK_QUEUE_VIDEO_DECODE_BIT_KHR = 0x00000020,
2781 VK_QUEUE_VIDEO_ENCODE_BIT_KHR = 0x00000040,
2782 VK_QUEUE_OPTICAL_FLOW_BIT_NV = 0x00000100,
2783 VK_QUEUE_DATA_GRAPH_BIT_ARM = 0x00000400,
2784 VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2785} VkQueueFlagBits;
2786typedef VkFlags VkQueueFlags;
2787typedef VkFlags VkDeviceCreateFlags;
2788
2789typedef enum VkDeviceQueueCreateFlagBits {
2790 VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0x00000001,
2791 VK_DEVICE_QUEUE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2792} VkDeviceQueueCreateFlagBits;
2793typedef VkFlags VkDeviceQueueCreateFlags;
2794
2795typedef enum VkPipelineStageFlagBits {
2796 VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001,
2797 VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002,
2798 VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004,
2799 VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008,
2800 VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010,
2801 VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020,
2802 VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040,
2803 VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080,
2804 VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100,
2805 VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200,
2806 VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400,
2807 VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800,
2808 VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000,
2809 VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000,
2810 VK_PIPELINE_STAGE_HOST_BIT = 0x00004000,
2811 VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000,
2812 VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000,
2813 VK_PIPELINE_STAGE_NONE = 0,
2814 VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000,
2815 VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000,
2816 VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000,
2817 VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR = 0x00200000,
2818 VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000,
2819 VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00400000,
2820 VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT = 0x00080000,
2821 VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT = 0x00100000,
2822 VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_EXT = 0x00020000,
2823 VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
2824 VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,
2825 VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,
2826 VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT,
2827 VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT,
2828 VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV = VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_EXT,
2829 VK_PIPELINE_STAGE_NONE_KHR = VK_PIPELINE_STAGE_NONE,
2830 VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2831} VkPipelineStageFlagBits;
2832typedef VkFlags VkPipelineStageFlags;
2833
2834typedef enum VkMemoryMapFlagBits {
2835 VK_MEMORY_MAP_PLACED_BIT_EXT = 0x00000001,
2836 VK_MEMORY_MAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2837} VkMemoryMapFlagBits;
2838typedef VkFlags VkMemoryMapFlags;
2839
2840typedef enum VkSparseMemoryBindFlagBits {
2841 VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
2842 VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2843} VkSparseMemoryBindFlagBits;
2844typedef VkFlags VkSparseMemoryBindFlags;
2845
2846typedef enum VkSparseImageFormatFlagBits {
2847 VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001,
2848 VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 0x00000002,
2849 VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004,
2850 VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2851} VkSparseImageFormatFlagBits;
2852typedef VkFlags VkSparseImageFormatFlags;
2853
2854typedef enum VkFenceCreateFlagBits {
2855 VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
2856 VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2857} VkFenceCreateFlagBits;
2858typedef VkFlags VkFenceCreateFlags;
2859typedef VkFlags VkSemaphoreCreateFlags;
2860
2861typedef enum VkQueryPoolCreateFlagBits {
2862 VK_QUERY_POOL_CREATE_RESET_BIT_KHR = 0x00000001,
2863 VK_QUERY_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2864} VkQueryPoolCreateFlagBits;
2865typedef VkFlags VkQueryPoolCreateFlags;
2866
2867typedef enum VkQueryPipelineStatisticFlagBits {
2868 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001,
2869 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002,
2870 VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004,
2871 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008,
2872 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010,
2873 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020,
2874 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040,
2875 VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080,
2876 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100,
2877 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200,
2878 VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400,
2879 VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT = 0x00000800,
2880 VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT = 0x00001000,
2881 VK_QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI = 0x00002000,
2882 VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2883} VkQueryPipelineStatisticFlagBits;
2884typedef VkFlags VkQueryPipelineStatisticFlags;
2885
2886typedef enum VkQueryResultFlagBits {
2887 VK_QUERY_RESULT_64_BIT = 0x00000001,
2888 VK_QUERY_RESULT_WAIT_BIT = 0x00000002,
2889 VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004,
2890 VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008,
2891 VK_QUERY_RESULT_WITH_STATUS_BIT_KHR = 0x00000010,
2892 VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2893} VkQueryResultFlagBits;
2894typedef VkFlags VkQueryResultFlags;
2895
2896typedef enum VkBufferCreateFlagBits {
2897 VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001,
2898 VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
2899 VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
2900 VK_BUFFER_CREATE_PROTECTED_BIT = 0x00000008,
2901 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0x00000010,
2902 VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000020,
2903 VK_BUFFER_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR = 0x00000040,
2904 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
2905 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
2906 VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2907} VkBufferCreateFlagBits;
2908typedef VkFlags VkBufferCreateFlags;
2909
2910typedef enum VkBufferUsageFlagBits {
2911 VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001,
2912 VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002,
2913 VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004,
2914 VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008,
2915 VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010,
2916 VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020,
2917 VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040,
2918 VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080,
2919 VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100,
2920 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = 0x00020000,
2921 VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0x00002000,
2922 VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0x00004000,
2923 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800,
2924 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000,
2925 VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200,
2926#ifdef VK_ENABLE_BETA_EXTENSIONS
2927 VK_BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX = 0x02000000,
2928#endif
2929 VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 0x00080000,
2930 VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 0x00100000,
2931 VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR = 0x00000400,
2932 VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0x00008000,
2933 VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0x00010000,
2934 VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 0x00200000,
2935 VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00400000,
2936 VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 0x04000000,
2937 VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 0x00800000,
2938 VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT = 0x01000000,
2939 VK_BUFFER_USAGE_TILE_MEMORY_BIT_QCOM = 0x08000000,
2940 VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR,
2941 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
2942 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
2943 VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2944} VkBufferUsageFlagBits;
2945typedef VkFlags VkBufferUsageFlags;
2946
2947typedef enum VkImageViewCreateFlagBits {
2948 VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 0x00000001,
2949 VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000004,
2950 VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = 0x00000002,
2951 VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2952} VkImageViewCreateFlagBits;
2953typedef VkFlags VkImageViewCreateFlags;
2954
2955typedef enum VkDependencyFlagBits {
2956 VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
2957 VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004,
2958 VK_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002,
2959 VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT = 0x00000008,
2960 VK_DEPENDENCY_QUEUE_FAMILY_OWNERSHIP_TRANSFER_USE_ALL_STAGES_BIT_KHR = 0x00000020,
2961 VK_DEPENDENCY_ASYMMETRIC_EVENT_BIT_KHR = 0x00000040,
2962 VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = VK_DEPENDENCY_VIEW_LOCAL_BIT,
2963 VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = VK_DEPENDENCY_DEVICE_GROUP_BIT,
2964 VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2965} VkDependencyFlagBits;
2966typedef VkFlags VkDependencyFlags;
2967
2968typedef enum VkCommandPoolCreateFlagBits {
2969 VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001,
2970 VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002,
2971 VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 0x00000004,
2972 VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2973} VkCommandPoolCreateFlagBits;
2974typedef VkFlags VkCommandPoolCreateFlags;
2975
2976typedef enum VkCommandPoolResetFlagBits {
2977 VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
2978 VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2979} VkCommandPoolResetFlagBits;
2980typedef VkFlags VkCommandPoolResetFlags;
2981
2982typedef enum VkCommandBufferUsageFlagBits {
2983 VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
2984 VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
2985 VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
2986 VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2987} VkCommandBufferUsageFlagBits;
2988typedef VkFlags VkCommandBufferUsageFlags;
2989
2990typedef enum VkQueryControlFlagBits {
2991 VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
2992 VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2993} VkQueryControlFlagBits;
2994typedef VkFlags VkQueryControlFlags;
2995
2996typedef enum VkCommandBufferResetFlagBits {
2997 VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
2998 VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2999} VkCommandBufferResetFlagBits;
3000typedef VkFlags VkCommandBufferResetFlags;
3001
3002typedef enum VkEventCreateFlagBits {
3003 VK_EVENT_CREATE_DEVICE_ONLY_BIT = 0x00000001,
3004 VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR = VK_EVENT_CREATE_DEVICE_ONLY_BIT,
3005 VK_EVENT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3006} VkEventCreateFlagBits;
3007typedef VkFlags VkEventCreateFlags;
3008typedef VkFlags VkBufferViewCreateFlags;
3009typedef VkFlags VkShaderModuleCreateFlags;
3010
3011typedef enum VkPipelineCacheCreateFlagBits {
3012 VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT = 0x00000001,
3013 VK_PIPELINE_CACHE_CREATE_INTERNALLY_SYNCHRONIZED_MERGE_BIT_KHR = 0x00000008,
3014 VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT = VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT,
3015 VK_PIPELINE_CACHE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3016} VkPipelineCacheCreateFlagBits;
3017typedef VkFlags VkPipelineCacheCreateFlags;
3018
3019typedef enum VkPipelineCreateFlagBits {
3020 VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
3021 VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
3022 VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
3023 VK_PIPELINE_CREATE_DISPATCH_BASE_BIT = 0x00000010,
3024 VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008,
3025 VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT = 0x00000100,
3026 VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT = 0x00000200,
3027 VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT = 0x08000000,
3028 VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT = 0x40000000,
3029 VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = 0x00004000,
3030 VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = 0x00008000,
3031 VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = 0x00010000,
3032 VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = 0x00020000,
3033 VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = 0x00001000,
3034 VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR = 0x00002000,
3035 VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR = 0x00080000,
3036 VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV = 0x00000020,
3037 VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00400000,
3038 VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00200000,
3039 VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR = 0x00000040,
3040 VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x00000080,
3041 VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV = 0x00040000,
3042 VK_PIPELINE_CREATE_LIBRARY_BIT_KHR = 0x00000800,
3043 VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 0x20000000,
3044 VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 0x00800000,
3045 VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT = 0x00000400,
3046 VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV = 0x00100000,
3047 VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x02000000,
3048 VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x04000000,
3049 VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 0x01000000,
3050#ifdef VK_ENABLE_BETA_EXTENSIONS
3051 VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV = 0x10000000,
3052#endif
3053 // VK_PIPELINE_CREATE_DISPATCH_BASE is a legacy alias
3054 VK_PIPELINE_CREATE_DISPATCH_BASE = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,
3055 VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,
3056 VK_PIPELINE_CREATE_DISPATCH_BASE_BIT_KHR = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,
3057 // VK_PIPELINE_CREATE_DISPATCH_BASE_KHR is a legacy alias
3058 VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,
3059 // VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT is a legacy alias
3060 VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT,
3061 // VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR is a legacy alias
3062 VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
3063 VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT = VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT,
3064 VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT = VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT,
3065 VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT = VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT,
3066 VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT = VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT,
3067 VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3068} VkPipelineCreateFlagBits;
3069typedef VkFlags VkPipelineCreateFlags;
3070
3071typedef enum VkPipelineShaderStageCreateFlagBits {
3072 VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT = 0x00000001,
3073 VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT = 0x00000002,
3074 VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT,
3075 VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT,
3076 VK_PIPELINE_SHADER_STAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3077} VkPipelineShaderStageCreateFlagBits;
3078typedef VkFlags VkPipelineShaderStageCreateFlags;
3079
3080typedef enum VkShaderStageFlagBits {
3081 VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
3082 VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
3083 VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
3084 VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
3085 VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
3086 VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
3087 VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
3088 VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
3089 VK_SHADER_STAGE_RAYGEN_BIT_KHR = 0x00000100,
3090 VK_SHADER_STAGE_ANY_HIT_BIT_KHR = 0x00000200,
3091 VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR = 0x00000400,
3092 VK_SHADER_STAGE_MISS_BIT_KHR = 0x00000800,
3093 VK_SHADER_STAGE_INTERSECTION_BIT_KHR = 0x00001000,
3094 VK_SHADER_STAGE_CALLABLE_BIT_KHR = 0x00002000,
3095 VK_SHADER_STAGE_TASK_BIT_EXT = 0x00000040,
3096 VK_SHADER_STAGE_MESH_BIT_EXT = 0x00000080,
3097 VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI = 0x00004000,
3098 VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI = 0x00080000,
3099 VK_SHADER_STAGE_RAYGEN_BIT_NV = VK_SHADER_STAGE_RAYGEN_BIT_KHR,
3100 VK_SHADER_STAGE_ANY_HIT_BIT_NV = VK_SHADER_STAGE_ANY_HIT_BIT_KHR,
3101 VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR,
3102 VK_SHADER_STAGE_MISS_BIT_NV = VK_SHADER_STAGE_MISS_BIT_KHR,
3103 VK_SHADER_STAGE_INTERSECTION_BIT_NV = VK_SHADER_STAGE_INTERSECTION_BIT_KHR,
3104 VK_SHADER_STAGE_CALLABLE_BIT_NV = VK_SHADER_STAGE_CALLABLE_BIT_KHR,
3105 VK_SHADER_STAGE_TASK_BIT_NV = VK_SHADER_STAGE_TASK_BIT_EXT,
3106 VK_SHADER_STAGE_MESH_BIT_NV = VK_SHADER_STAGE_MESH_BIT_EXT,
3107 VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3108} VkShaderStageFlagBits;
3109
3110typedef enum VkPipelineLayoutCreateFlagBits {
3111 VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT = 0x00000002,
3112 VK_PIPELINE_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3113} VkPipelineLayoutCreateFlagBits;
3114typedef VkFlags VkPipelineLayoutCreateFlags;
3115typedef VkFlags VkShaderStageFlags;
3116
3117typedef enum VkSamplerCreateFlagBits {
3118 VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT = 0x00000001,
3119 VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT = 0x00000002,
3120 VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000008,
3121 VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT = 0x00000004,
3122 VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM = 0x00000010,
3123 VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3124} VkSamplerCreateFlagBits;
3125typedef VkFlags VkSamplerCreateFlags;
3126
3127typedef enum VkDescriptorPoolCreateFlagBits {
3128 VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
3129 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 0x00000002,
3130 VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT = 0x00000004,
3131 VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV = 0x00000008,
3132 VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV = 0x00000010,
3133 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT,
3134 VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT,
3135 VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3136} VkDescriptorPoolCreateFlagBits;
3137typedef VkFlags VkDescriptorPoolCreateFlags;
3138typedef VkFlags VkDescriptorPoolResetFlags;
3139
3140typedef enum VkDescriptorSetLayoutCreateFlagBits {
3141 VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = 0x00000002,
3142 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT = 0x00000001,
3143 VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00000010,
3144 VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT = 0x00000020,
3145 VK_DESCRIPTOR_SET_LAYOUT_CREATE_INDIRECT_BINDABLE_BIT_NV = 0x00000080,
3146 VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT = 0x00000004,
3147 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PER_STAGE_BIT_NV = 0x00000040,
3148 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT,
3149 VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,
3150 VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE = VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT,
3151 VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3152} VkDescriptorSetLayoutCreateFlagBits;
3153typedef VkFlags VkDescriptorSetLayoutCreateFlags;
3154
3155typedef enum VkColorComponentFlagBits {
3156 VK_COLOR_COMPONENT_R_BIT = 0x00000001,
3157 VK_COLOR_COMPONENT_G_BIT = 0x00000002,
3158 VK_COLOR_COMPONENT_B_BIT = 0x00000004,
3159 VK_COLOR_COMPONENT_A_BIT = 0x00000008,
3160 VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3161} VkColorComponentFlagBits;
3162typedef VkFlags VkColorComponentFlags;
3163
3164typedef enum VkCullModeFlagBits {
3165 VK_CULL_MODE_NONE = 0,
3166 VK_CULL_MODE_FRONT_BIT = 0x00000001,
3167 VK_CULL_MODE_BACK_BIT = 0x00000002,
3168 VK_CULL_MODE_FRONT_AND_BACK = 0x00000003,
3169 VK_CULL_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3170} VkCullModeFlagBits;
3171typedef VkFlags VkCullModeFlags;
3172typedef VkFlags VkPipelineVertexInputStateCreateFlags;
3173typedef VkFlags VkPipelineInputAssemblyStateCreateFlags;
3174typedef VkFlags VkPipelineTessellationStateCreateFlags;
3175typedef VkFlags VkPipelineViewportStateCreateFlags;
3176typedef VkFlags VkPipelineRasterizationStateCreateFlags;
3177typedef VkFlags VkPipelineMultisampleStateCreateFlags;
3178
3179typedef enum VkPipelineDepthStencilStateCreateFlagBits {
3180 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 0x00000001,
3181 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 0x00000002,
3182 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT,
3183 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT,
3184 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3185} VkPipelineDepthStencilStateCreateFlagBits;
3186typedef VkFlags VkPipelineDepthStencilStateCreateFlags;
3187
3188typedef enum VkPipelineColorBlendStateCreateFlagBits {
3189 VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT = 0x00000001,
3190 VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM = VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT,
3191 VK_PIPELINE_COLOR_BLEND_STATE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3192} VkPipelineColorBlendStateCreateFlagBits;
3193typedef VkFlags VkPipelineColorBlendStateCreateFlags;
3194typedef VkFlags VkPipelineDynamicStateCreateFlags;
3195
3196typedef enum VkAttachmentDescriptionFlagBits {
3197 VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001,
3198 VK_ATTACHMENT_DESCRIPTION_RESOLVE_SKIP_TRANSFER_FUNCTION_BIT_KHR = 0x00000002,
3199 VK_ATTACHMENT_DESCRIPTION_RESOLVE_ENABLE_TRANSFER_FUNCTION_BIT_KHR = 0x00000004,
3200 VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3201} VkAttachmentDescriptionFlagBits;
3202typedef VkFlags VkAttachmentDescriptionFlags;
3203
3204typedef enum VkFramebufferCreateFlagBits {
3205 VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT = 0x00000001,
3206 VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT,
3207 VK_FRAMEBUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3208} VkFramebufferCreateFlagBits;
3209typedef VkFlags VkFramebufferCreateFlags;
3210
3211typedef enum VkRenderPassCreateFlagBits {
3212 VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM = 0x00000002,
3213 VK_RENDER_PASS_CREATE_PER_LAYER_FRAGMENT_DENSITY_BIT_VALVE = 0x00000004,
3214 VK_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3215} VkRenderPassCreateFlagBits;
3216typedef VkFlags VkRenderPassCreateFlags;
3217
3218typedef enum VkSubpassDescriptionFlagBits {
3219 VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001,
3220 VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002,
3221 VK_SUBPASS_DESCRIPTION_TILE_SHADING_APRON_BIT_QCOM = 0x00000100,
3222 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT = 0x00000010,
3223 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 0x00000020,
3224 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 0x00000040,
3225 VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x00000080,
3226 VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_EXT = 0x00000004,
3227 VK_SUBPASS_DESCRIPTION_CUSTOM_RESOLVE_BIT_EXT = 0x00000008,
3228 VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM = VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_EXT,
3229 VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM = VK_SUBPASS_DESCRIPTION_CUSTOM_RESOLVE_BIT_EXT,
3230 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT,
3231 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT,
3232 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT,
3233 VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3234} VkSubpassDescriptionFlagBits;
3235typedef VkFlags VkSubpassDescriptionFlags;
3236
3237typedef enum VkStencilFaceFlagBits {
3238 VK_STENCIL_FACE_FRONT_BIT = 0x00000001,
3239 VK_STENCIL_FACE_BACK_BIT = 0x00000002,
3240 VK_STENCIL_FACE_FRONT_AND_BACK = 0x00000003,
3241 // VK_STENCIL_FRONT_AND_BACK is a legacy alias
3242 VK_STENCIL_FRONT_AND_BACK = VK_STENCIL_FACE_FRONT_AND_BACK,
3243 VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3244} VkStencilFaceFlagBits;
3245typedef VkFlags VkStencilFaceFlags;
3246typedef struct VkExtent2D {
3247 uint32_t width;
3248 uint32_t height;
3249} VkExtent2D;
3250
3251typedef struct VkExtent3D {
3252 uint32_t width;
3253 uint32_t height;
3254 uint32_t depth;
3255} VkExtent3D;
3256
3257typedef struct VkOffset2D {
3258 int32_t x;
3259 int32_t y;
3260} VkOffset2D;
3261
3262typedef struct VkOffset3D {
3263 int32_t x;
3264 int32_t y;
3265 int32_t z;
3266} VkOffset3D;
3267
3268typedef struct VkRect2D {
3269 VkOffset2D offset;
3270 VkExtent2D extent;
3271} VkRect2D;
3272
3273typedef struct VkBaseInStructure {
3274 VkStructureType sType;
3275 const struct VkBaseInStructure* pNext;
3276} VkBaseInStructure;
3277
3278typedef struct VkBaseOutStructure {
3279 VkStructureType sType;
3280 struct VkBaseOutStructure* pNext;
3281} VkBaseOutStructure;
3282
3283typedef struct VkBufferMemoryBarrier {
3284 VkStructureType sType;
3285 const void* pNext;
3286 VkAccessFlags srcAccessMask;
3287 VkAccessFlags dstAccessMask;
3288 uint32_t srcQueueFamilyIndex;
3289 uint32_t dstQueueFamilyIndex;
3290 VkBuffer buffer;
3291 VkDeviceSize offset;
3292 VkDeviceSize size;
3293} VkBufferMemoryBarrier;
3294
3295typedef struct VkImageSubresourceRange {
3296 VkImageAspectFlags aspectMask;
3297 uint32_t baseMipLevel;
3298 uint32_t levelCount;
3299 uint32_t baseArrayLayer;
3300 uint32_t layerCount;
3301} VkImageSubresourceRange;
3302
3303typedef struct VkImageMemoryBarrier {
3304 VkStructureType sType;
3305 const void* pNext;
3306 VkAccessFlags srcAccessMask;
3307 VkAccessFlags dstAccessMask;
3308 VkImageLayout oldLayout;
3309 VkImageLayout newLayout;
3310 uint32_t srcQueueFamilyIndex;
3311 uint32_t dstQueueFamilyIndex;
3312 VkImage image;
3313 VkImageSubresourceRange subresourceRange;
3314} VkImageMemoryBarrier;
3315
3316typedef struct VkMemoryBarrier {
3317 VkStructureType sType;
3318 const void* pNext;
3319 VkAccessFlags srcAccessMask;
3320 VkAccessFlags dstAccessMask;
3321} VkMemoryBarrier;
3322
3323typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)(
3324 void* pUserData,
3325 size_t size,
3326 size_t alignment,
3327 VkSystemAllocationScope allocationScope);
3328
3329typedef void (VKAPI_PTR *PFN_vkFreeFunction)(
3330 void* pUserData,
3331 void* pMemory);
3332
3333typedef void (VKAPI_PTR *PFN_vkInternalAllocationNotification)(
3334 void* pUserData,
3335 size_t size,
3336 VkInternalAllocationType allocationType,
3337 VkSystemAllocationScope allocationScope);
3338
3339typedef void (VKAPI_PTR *PFN_vkInternalFreeNotification)(
3340 void* pUserData,
3341 size_t size,
3342 VkInternalAllocationType allocationType,
3343 VkSystemAllocationScope allocationScope);
3344
3345typedef void* (VKAPI_PTR *PFN_vkReallocationFunction)(
3346 void* pUserData,
3347 void* pOriginal,
3348 size_t size,
3349 size_t alignment,
3350 VkSystemAllocationScope allocationScope);
3351
3352typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void);
3353typedef struct VkAllocationCallbacks {
3354 void* pUserData;
3355 PFN_vkAllocationFunction pfnAllocation;
3356 PFN_vkReallocationFunction pfnReallocation;
3357 PFN_vkFreeFunction pfnFree;
3358 PFN_vkInternalAllocationNotification pfnInternalAllocation;
3359 PFN_vkInternalFreeNotification pfnInternalFree;
3360} VkAllocationCallbacks;
3361
3362typedef struct VkApplicationInfo {
3363 VkStructureType sType;
3364 const void* pNext;
3365 const char* pApplicationName;
3366 uint32_t applicationVersion;
3367 const char* pEngineName;
3368 uint32_t engineVersion;
3369 uint32_t apiVersion;
3370} VkApplicationInfo;
3371
3372typedef struct VkFormatProperties {
3373 VkFormatFeatureFlags linearTilingFeatures;
3374 VkFormatFeatureFlags optimalTilingFeatures;
3375 VkFormatFeatureFlags bufferFeatures;
3376} VkFormatProperties;
3377
3378typedef struct VkImageFormatProperties {
3379 VkExtent3D maxExtent;
3380 uint32_t maxMipLevels;
3381 uint32_t maxArrayLayers;
3382 VkSampleCountFlags sampleCounts;
3383 VkDeviceSize maxResourceSize;
3384} VkImageFormatProperties;
3385
3386typedef struct VkInstanceCreateInfo {
3387 VkStructureType sType;
3388 const void* pNext;
3389 VkInstanceCreateFlags flags;
3390 const VkApplicationInfo* pApplicationInfo;
3391 uint32_t enabledLayerCount;
3392 const char* const* ppEnabledLayerNames;
3393 uint32_t enabledExtensionCount;
3394 const char* const* ppEnabledExtensionNames;
3395} VkInstanceCreateInfo;
3396
3397typedef struct VkMemoryHeap {
3398 VkDeviceSize size;
3399 VkMemoryHeapFlags flags;
3400} VkMemoryHeap;
3401
3402typedef struct VkMemoryType {
3403 VkMemoryPropertyFlags propertyFlags;
3404 uint32_t heapIndex;
3405} VkMemoryType;
3406
3407typedef struct VkPhysicalDeviceFeatures {
3408 VkBool32 robustBufferAccess;
3409 VkBool32 fullDrawIndexUint32;
3410 VkBool32 imageCubeArray;
3411 VkBool32 independentBlend;
3412 VkBool32 geometryShader;
3413 VkBool32 tessellationShader;
3414 VkBool32 sampleRateShading;
3415 VkBool32 dualSrcBlend;
3416 VkBool32 logicOp;
3417 VkBool32 multiDrawIndirect;
3418 VkBool32 drawIndirectFirstInstance;
3419 VkBool32 depthClamp;
3420 VkBool32 depthBiasClamp;
3421 VkBool32 fillModeNonSolid;
3422 VkBool32 depthBounds;
3423 VkBool32 wideLines;
3424 VkBool32 largePoints;
3425 VkBool32 alphaToOne;
3426 VkBool32 multiViewport;
3427 VkBool32 samplerAnisotropy;
3428 VkBool32 textureCompressionETC2;
3429 VkBool32 textureCompressionASTC_LDR;
3430 VkBool32 textureCompressionBC;
3431 VkBool32 occlusionQueryPrecise;
3432 VkBool32 pipelineStatisticsQuery;
3433 VkBool32 vertexPipelineStoresAndAtomics;
3434 VkBool32 fragmentStoresAndAtomics;
3435 VkBool32 shaderTessellationAndGeometryPointSize;
3436 VkBool32 shaderImageGatherExtended;
3437 VkBool32 shaderStorageImageExtendedFormats;
3438 VkBool32 shaderStorageImageMultisample;
3439 VkBool32 shaderStorageImageReadWithoutFormat;
3440 VkBool32 shaderStorageImageWriteWithoutFormat;
3441 VkBool32 shaderUniformBufferArrayDynamicIndexing;
3442 VkBool32 shaderSampledImageArrayDynamicIndexing;
3443 VkBool32 shaderStorageBufferArrayDynamicIndexing;
3444 VkBool32 shaderStorageImageArrayDynamicIndexing;
3445 VkBool32 shaderClipDistance;
3446 VkBool32 shaderCullDistance;
3447 VkBool32 shaderFloat64;
3448 VkBool32 shaderInt64;
3449 VkBool32 shaderInt16;
3450 VkBool32 shaderResourceResidency;
3451 VkBool32 shaderResourceMinLod;
3452 VkBool32 sparseBinding;
3453 VkBool32 sparseResidencyBuffer;
3454 VkBool32 sparseResidencyImage2D;
3455 VkBool32 sparseResidencyImage3D;
3456 VkBool32 sparseResidency2Samples;
3457 VkBool32 sparseResidency4Samples;
3458 VkBool32 sparseResidency8Samples;
3459 VkBool32 sparseResidency16Samples;
3460 VkBool32 sparseResidencyAliased;
3461 VkBool32 variableMultisampleRate;
3462 VkBool32 inheritedQueries;
3463} VkPhysicalDeviceFeatures;
3464
3465typedef struct VkPhysicalDeviceLimits {
3466 uint32_t maxImageDimension1D;
3467 uint32_t maxImageDimension2D;
3468 uint32_t maxImageDimension3D;
3469 uint32_t maxImageDimensionCube;
3470 uint32_t maxImageArrayLayers;
3471 uint32_t maxTexelBufferElements;
3472 uint32_t maxUniformBufferRange;
3473 uint32_t maxStorageBufferRange;
3474 uint32_t maxPushConstantsSize;
3475 uint32_t maxMemoryAllocationCount;
3476 uint32_t maxSamplerAllocationCount;
3477 VkDeviceSize bufferImageGranularity;
3478 VkDeviceSize sparseAddressSpaceSize;
3479 uint32_t maxBoundDescriptorSets;
3480 uint32_t maxPerStageDescriptorSamplers;
3481 uint32_t maxPerStageDescriptorUniformBuffers;
3482 uint32_t maxPerStageDescriptorStorageBuffers;
3483 uint32_t maxPerStageDescriptorSampledImages;
3484 uint32_t maxPerStageDescriptorStorageImages;
3485 uint32_t maxPerStageDescriptorInputAttachments;
3486 uint32_t maxPerStageResources;
3487 uint32_t maxDescriptorSetSamplers;
3488 uint32_t maxDescriptorSetUniformBuffers;
3489 uint32_t maxDescriptorSetUniformBuffersDynamic;
3490 uint32_t maxDescriptorSetStorageBuffers;
3491 uint32_t maxDescriptorSetStorageBuffersDynamic;
3492 uint32_t maxDescriptorSetSampledImages;
3493 uint32_t maxDescriptorSetStorageImages;
3494 uint32_t maxDescriptorSetInputAttachments;
3495 uint32_t maxVertexInputAttributes;
3496 uint32_t maxVertexInputBindings;
3497 uint32_t maxVertexInputAttributeOffset;
3498 uint32_t maxVertexInputBindingStride;
3499 uint32_t maxVertexOutputComponents;
3500 uint32_t maxTessellationGenerationLevel;
3501 uint32_t maxTessellationPatchSize;
3502 uint32_t maxTessellationControlPerVertexInputComponents;
3503 uint32_t maxTessellationControlPerVertexOutputComponents;
3504 uint32_t maxTessellationControlPerPatchOutputComponents;
3505 uint32_t maxTessellationControlTotalOutputComponents;
3506 uint32_t maxTessellationEvaluationInputComponents;
3507 uint32_t maxTessellationEvaluationOutputComponents;
3508 uint32_t maxGeometryShaderInvocations;
3509 uint32_t maxGeometryInputComponents;
3510 uint32_t maxGeometryOutputComponents;
3511 uint32_t maxGeometryOutputVertices;
3512 uint32_t maxGeometryTotalOutputComponents;
3513 uint32_t maxFragmentInputComponents;
3514 uint32_t maxFragmentOutputAttachments;
3515 uint32_t maxFragmentDualSrcAttachments;
3516 uint32_t maxFragmentCombinedOutputResources;
3517 uint32_t maxComputeSharedMemorySize;
3518 uint32_t maxComputeWorkGroupCount[3];
3519 uint32_t maxComputeWorkGroupInvocations;
3520 uint32_t maxComputeWorkGroupSize[3];
3521 uint32_t subPixelPrecisionBits;
3522 uint32_t subTexelPrecisionBits;
3523 uint32_t mipmapPrecisionBits;
3524 uint32_t maxDrawIndexedIndexValue;
3525 uint32_t maxDrawIndirectCount;
3526 float maxSamplerLodBias;
3527 float maxSamplerAnisotropy;
3528 uint32_t maxViewports;
3529 uint32_t maxViewportDimensions[2];
3530 float viewportBoundsRange[2];
3531 uint32_t viewportSubPixelBits;
3532 size_t minMemoryMapAlignment;
3533 VkDeviceSize minTexelBufferOffsetAlignment;
3534 VkDeviceSize minUniformBufferOffsetAlignment;
3535 VkDeviceSize minStorageBufferOffsetAlignment;
3536 int32_t minTexelOffset;
3537 uint32_t maxTexelOffset;
3538 int32_t minTexelGatherOffset;
3539 uint32_t maxTexelGatherOffset;
3540 float minInterpolationOffset;
3541 float maxInterpolationOffset;
3542 uint32_t subPixelInterpolationOffsetBits;
3543 uint32_t maxFramebufferWidth;
3544 uint32_t maxFramebufferHeight;
3545 uint32_t maxFramebufferLayers;
3546 VkSampleCountFlags framebufferColorSampleCounts;
3547 VkSampleCountFlags framebufferDepthSampleCounts;
3548 VkSampleCountFlags framebufferStencilSampleCounts;
3549 VkSampleCountFlags framebufferNoAttachmentsSampleCounts;
3550 uint32_t maxColorAttachments;
3551 VkSampleCountFlags sampledImageColorSampleCounts;
3552 VkSampleCountFlags sampledImageIntegerSampleCounts;
3553 VkSampleCountFlags sampledImageDepthSampleCounts;
3554 VkSampleCountFlags sampledImageStencilSampleCounts;
3555 VkSampleCountFlags storageImageSampleCounts;
3556 uint32_t maxSampleMaskWords;
3557 VkBool32 timestampComputeAndGraphics;
3558 float timestampPeriod;
3559 uint32_t maxClipDistances;
3560 uint32_t maxCullDistances;
3561 uint32_t maxCombinedClipAndCullDistances;
3562 uint32_t discreteQueuePriorities;
3563 float pointSizeRange[2];
3564 float lineWidthRange[2];
3565 float pointSizeGranularity;
3566 float lineWidthGranularity;
3567 VkBool32 strictLines;
3568 VkBool32 standardSampleLocations;
3569 VkDeviceSize optimalBufferCopyOffsetAlignment;
3570 VkDeviceSize optimalBufferCopyRowPitchAlignment;
3571 VkDeviceSize nonCoherentAtomSize;
3572} VkPhysicalDeviceLimits;
3573
3574typedef struct VkPhysicalDeviceMemoryProperties {
3575 uint32_t memoryTypeCount;
3576 VkMemoryType memoryTypes[VK_MAX_MEMORY_TYPES];
3577 uint32_t memoryHeapCount;
3578 VkMemoryHeap memoryHeaps[VK_MAX_MEMORY_HEAPS];
3579} VkPhysicalDeviceMemoryProperties;
3580
3581typedef struct VkPhysicalDeviceSparseProperties {
3582 VkBool32 residencyStandard2DBlockShape;
3583 VkBool32 residencyStandard2DMultisampleBlockShape;
3584 VkBool32 residencyStandard3DBlockShape;
3585 VkBool32 residencyAlignedMipSize;
3586 VkBool32 residencyNonResidentStrict;
3587} VkPhysicalDeviceSparseProperties;
3588
3589typedef struct VkPhysicalDeviceProperties {
3590 uint32_t apiVersion;
3591 uint32_t driverVersion;
3592 uint32_t vendorID;
3593 uint32_t deviceID;
3594 VkPhysicalDeviceType deviceType;
3595 char deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
3596 uint8_t pipelineCacheUUID[VK_UUID_SIZE];
3597 VkPhysicalDeviceLimits limits;
3598 VkPhysicalDeviceSparseProperties sparseProperties;
3599} VkPhysicalDeviceProperties;
3600
3601typedef struct VkQueueFamilyProperties {
3602 VkQueueFlags queueFlags;
3603 uint32_t queueCount;
3604 uint32_t timestampValidBits;
3605 VkExtent3D minImageTransferGranularity;
3606} VkQueueFamilyProperties;
3607
3608typedef struct VkDeviceQueueCreateInfo {
3609 VkStructureType sType;
3610 const void* pNext;
3611 VkDeviceQueueCreateFlags flags;
3612 uint32_t queueFamilyIndex;
3613 uint32_t queueCount;
3614 const float* pQueuePriorities;
3615} VkDeviceQueueCreateInfo;
3616
3617typedef struct VkDeviceCreateInfo {
3618 VkStructureType sType;
3619 const void* pNext;
3620 VkDeviceCreateFlags flags;
3621 uint32_t queueCreateInfoCount;
3622 const VkDeviceQueueCreateInfo* pQueueCreateInfos;
3623 // enabledLayerCount is legacy and should not be used
3624 uint32_t enabledLayerCount;
3625 // ppEnabledLayerNames is legacy and should not be used
3626 const char* const* ppEnabledLayerNames;
3627 uint32_t enabledExtensionCount;
3628 const char* const* ppEnabledExtensionNames;
3629 const VkPhysicalDeviceFeatures* pEnabledFeatures;
3630} VkDeviceCreateInfo;
3631
3632typedef struct VkExtensionProperties {
3633 char extensionName[VK_MAX_EXTENSION_NAME_SIZE];
3634 uint32_t specVersion;
3635} VkExtensionProperties;
3636
3637typedef struct VkLayerProperties {
3638 char layerName[VK_MAX_EXTENSION_NAME_SIZE];
3639 uint32_t specVersion;
3640 uint32_t implementationVersion;
3641 char description[VK_MAX_DESCRIPTION_SIZE];
3642} VkLayerProperties;
3643
3644typedef struct VkSubmitInfo {
3645 VkStructureType sType;
3646 const void* pNext;
3647 uint32_t waitSemaphoreCount;
3648 const VkSemaphore* pWaitSemaphores;
3649 const VkPipelineStageFlags* pWaitDstStageMask;
3650 uint32_t commandBufferCount;
3651 const VkCommandBuffer* pCommandBuffers;
3652 uint32_t signalSemaphoreCount;
3653 const VkSemaphore* pSignalSemaphores;
3654} VkSubmitInfo;
3655
3656typedef struct VkMappedMemoryRange {
3657 VkStructureType sType;
3658 const void* pNext;
3659 VkDeviceMemory memory;
3660 VkDeviceSize offset;
3661 VkDeviceSize size;
3662} VkMappedMemoryRange;
3663
3664typedef struct VkMemoryAllocateInfo {
3665 VkStructureType sType;
3666 const void* pNext;
3667 VkDeviceSize allocationSize;
3668 uint32_t memoryTypeIndex;
3669} VkMemoryAllocateInfo;
3670
3671typedef struct VkMemoryRequirements {
3672 VkDeviceSize size;
3673 VkDeviceSize alignment;
3674 uint32_t memoryTypeBits;
3675} VkMemoryRequirements;
3676
3677typedef struct VkSparseMemoryBind {
3678 VkDeviceSize resourceOffset;
3679 VkDeviceSize size;
3680 VkDeviceMemory memory;
3681 VkDeviceSize memoryOffset;
3682 VkSparseMemoryBindFlags flags;
3683} VkSparseMemoryBind;
3684
3685typedef struct VkSparseBufferMemoryBindInfo {
3686 VkBuffer buffer;
3687 uint32_t bindCount;
3688 const VkSparseMemoryBind* pBinds;
3689} VkSparseBufferMemoryBindInfo;
3690
3691typedef struct VkSparseImageOpaqueMemoryBindInfo {
3692 VkImage image;
3693 uint32_t bindCount;
3694 const VkSparseMemoryBind* pBinds;
3695} VkSparseImageOpaqueMemoryBindInfo;
3696
3697typedef struct VkImageSubresource {
3698 VkImageAspectFlags aspectMask;
3699 uint32_t mipLevel;
3700 uint32_t arrayLayer;
3701} VkImageSubresource;
3702
3703typedef struct VkSparseImageMemoryBind {
3704 VkImageSubresource subresource;
3705 VkOffset3D offset;
3706 VkExtent3D extent;
3707 VkDeviceMemory memory;
3708 VkDeviceSize memoryOffset;
3709 VkSparseMemoryBindFlags flags;
3710} VkSparseImageMemoryBind;
3711
3712typedef struct VkSparseImageMemoryBindInfo {
3713 VkImage image;
3714 uint32_t bindCount;
3715 const VkSparseImageMemoryBind* pBinds;
3716} VkSparseImageMemoryBindInfo;
3717
3718typedef struct VkBindSparseInfo {
3719 VkStructureType sType;
3720 const void* pNext;
3721 uint32_t waitSemaphoreCount;
3722 const VkSemaphore* pWaitSemaphores;
3723 uint32_t bufferBindCount;
3724 const VkSparseBufferMemoryBindInfo* pBufferBinds;
3725 uint32_t imageOpaqueBindCount;
3726 const VkSparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds;
3727 uint32_t imageBindCount;
3728 const VkSparseImageMemoryBindInfo* pImageBinds;
3729 uint32_t signalSemaphoreCount;
3730 const VkSemaphore* pSignalSemaphores;
3731} VkBindSparseInfo;
3732
3733typedef struct VkSparseImageFormatProperties {
3734 VkImageAspectFlags aspectMask;
3735 VkExtent3D imageGranularity;
3736 VkSparseImageFormatFlags flags;
3737} VkSparseImageFormatProperties;
3738
3739typedef struct VkSparseImageMemoryRequirements {
3740 VkSparseImageFormatProperties formatProperties;
3741 uint32_t imageMipTailFirstLod;
3742 VkDeviceSize imageMipTailSize;
3743 VkDeviceSize imageMipTailOffset;
3744 VkDeviceSize imageMipTailStride;
3745} VkSparseImageMemoryRequirements;
3746
3747typedef struct VkFenceCreateInfo {
3748 VkStructureType sType;
3749 const void* pNext;
3750 VkFenceCreateFlags flags;
3751} VkFenceCreateInfo;
3752
3753typedef struct VkSemaphoreCreateInfo {
3754 VkStructureType sType;
3755 const void* pNext;
3756 VkSemaphoreCreateFlags flags;
3757} VkSemaphoreCreateInfo;
3758
3759typedef struct VkQueryPoolCreateInfo {
3760 VkStructureType sType;
3761 const void* pNext;
3762 VkQueryPoolCreateFlags flags;
3763 VkQueryType queryType;
3764 uint32_t queryCount;
3765 VkQueryPipelineStatisticFlags pipelineStatistics;
3766} VkQueryPoolCreateInfo;
3767
3768typedef struct VkBufferCreateInfo {
3769 VkStructureType sType;
3770 const void* pNext;
3771 VkBufferCreateFlags flags;
3772 VkDeviceSize size;
3773 VkBufferUsageFlags usage;
3774 VkSharingMode sharingMode;
3775 uint32_t queueFamilyIndexCount;
3776 const uint32_t* pQueueFamilyIndices;
3777} VkBufferCreateInfo;
3778
3779typedef struct VkImageCreateInfo {
3780 VkStructureType sType;
3781 const void* pNext;
3782 VkImageCreateFlags flags;
3783 VkImageType imageType;
3784 VkFormat format;
3785 VkExtent3D extent;
3786 uint32_t mipLevels;
3787 uint32_t arrayLayers;
3788 VkSampleCountFlagBits samples;
3789 VkImageTiling tiling;
3790 VkImageUsageFlags usage;
3791 VkSharingMode sharingMode;
3792 uint32_t queueFamilyIndexCount;
3793 const uint32_t* pQueueFamilyIndices;
3794 VkImageLayout initialLayout;
3795} VkImageCreateInfo;
3796
3797typedef struct VkSubresourceLayout {
3798 VkDeviceSize offset;
3799 VkDeviceSize size;
3800 VkDeviceSize rowPitch;
3801 VkDeviceSize arrayPitch;
3802 VkDeviceSize depthPitch;
3803} VkSubresourceLayout;
3804
3805typedef struct VkComponentMapping {
3806 VkComponentSwizzle r;
3807 VkComponentSwizzle g;
3808 VkComponentSwizzle b;
3809 VkComponentSwizzle a;
3810} VkComponentMapping;
3811
3812typedef struct VkImageViewCreateInfo {
3813 VkStructureType sType;
3814 const void* pNext;
3815 VkImageViewCreateFlags flags;
3816 VkImage image;
3817 VkImageViewType viewType;
3818 VkFormat format;
3819 VkComponentMapping components;
3820 VkImageSubresourceRange subresourceRange;
3821} VkImageViewCreateInfo;
3822
3823typedef struct VkCommandPoolCreateInfo {
3824 VkStructureType sType;
3825 const void* pNext;
3826 VkCommandPoolCreateFlags flags;
3827 uint32_t queueFamilyIndex;
3828} VkCommandPoolCreateInfo;
3829
3830typedef struct VkCommandBufferAllocateInfo {
3831 VkStructureType sType;
3832 const void* pNext;
3833 VkCommandPool commandPool;
3834 VkCommandBufferLevel level;
3835 uint32_t commandBufferCount;
3836} VkCommandBufferAllocateInfo;
3837
3838typedef struct VkCommandBufferInheritanceInfo {
3839 VkStructureType sType;
3840 const void* pNext;
3841 VkRenderPass renderPass;
3842 uint32_t subpass;
3843 VkFramebuffer framebuffer;
3844 VkBool32 occlusionQueryEnable;
3845 VkQueryControlFlags queryFlags;
3846 VkQueryPipelineStatisticFlags pipelineStatistics;
3847} VkCommandBufferInheritanceInfo;
3848
3849typedef struct VkCommandBufferBeginInfo {
3850 VkStructureType sType;
3851 const void* pNext;
3852 VkCommandBufferUsageFlags flags;
3853 const VkCommandBufferInheritanceInfo* pInheritanceInfo;
3854} VkCommandBufferBeginInfo;
3855
3856typedef struct VkBufferCopy {
3857 VkDeviceSize srcOffset;
3858 VkDeviceSize dstOffset;
3859 VkDeviceSize size;
3860} VkBufferCopy;
3861
3862typedef struct VkImageSubresourceLayers {
3863 VkImageAspectFlags aspectMask;
3864 uint32_t mipLevel;
3865 uint32_t baseArrayLayer;
3866 uint32_t layerCount;
3867} VkImageSubresourceLayers;
3868
3869typedef struct VkBufferImageCopy {
3870 VkDeviceSize bufferOffset;
3871 uint32_t bufferRowLength;
3872 uint32_t bufferImageHeight;
3873 VkImageSubresourceLayers imageSubresource;
3874 VkOffset3D imageOffset;
3875 VkExtent3D imageExtent;
3876} VkBufferImageCopy;
3877
3878typedef struct VkImageCopy {
3879 VkImageSubresourceLayers srcSubresource;
3880 VkOffset3D srcOffset;
3881 VkImageSubresourceLayers dstSubresource;
3882 VkOffset3D dstOffset;
3883 VkExtent3D extent;
3884} VkImageCopy;
3885
3886typedef struct VkDispatchIndirectCommand {
3887 uint32_t x;
3888 uint32_t y;
3889 uint32_t z;
3890} VkDispatchIndirectCommand;
3891
3892typedef struct VkPipelineCacheHeaderVersionOne {
3893 uint32_t headerSize;
3894 VkPipelineCacheHeaderVersion headerVersion;
3895 uint32_t vendorID;
3896 uint32_t deviceID;
3897 uint8_t pipelineCacheUUID[VK_UUID_SIZE];
3898} VkPipelineCacheHeaderVersionOne;
3899
3900typedef struct VkEventCreateInfo {
3901 VkStructureType sType;
3902 const void* pNext;
3903 VkEventCreateFlags flags;
3904} VkEventCreateInfo;
3905
3906typedef struct VkBufferViewCreateInfo {
3907 VkStructureType sType;
3908 const void* pNext;
3909 VkBufferViewCreateFlags flags;
3910 VkBuffer buffer;
3911 VkFormat format;
3912 VkDeviceSize offset;
3913 VkDeviceSize range;
3914} VkBufferViewCreateInfo;
3915
3916typedef struct VkShaderModuleCreateInfo {
3917 VkStructureType sType;
3918 const void* pNext;
3919 VkShaderModuleCreateFlags flags;
3920 size_t codeSize;
3921 const uint32_t* pCode;
3922} VkShaderModuleCreateInfo;
3923
3924typedef struct VkPipelineCacheCreateInfo {
3925 VkStructureType sType;
3926 const void* pNext;
3927 VkPipelineCacheCreateFlags flags;
3928 size_t initialDataSize;
3929 const void* pInitialData;
3930} VkPipelineCacheCreateInfo;
3931
3932typedef struct VkSpecializationMapEntry {
3933 uint32_t constantID;
3934 uint32_t offset;
3935 size_t size;
3936} VkSpecializationMapEntry;
3937
3938typedef struct VkSpecializationInfo {
3939 uint32_t mapEntryCount;
3940 const VkSpecializationMapEntry* pMapEntries;
3941 size_t dataSize;
3942 const void* pData;
3943} VkSpecializationInfo;
3944
3945typedef struct VkPipelineShaderStageCreateInfo {
3946 VkStructureType sType;
3947 const void* pNext;
3948 VkPipelineShaderStageCreateFlags flags;
3949 VkShaderStageFlagBits stage;
3950 VkShaderModule module;
3951 const char* pName;
3952 const VkSpecializationInfo* pSpecializationInfo;
3953} VkPipelineShaderStageCreateInfo;
3954
3955typedef struct VkComputePipelineCreateInfo {
3956 VkStructureType sType;
3957 const void* pNext;
3958 VkPipelineCreateFlags flags;
3959 VkPipelineShaderStageCreateInfo stage;
3960 VkPipelineLayout layout;
3961 VkPipeline basePipelineHandle;
3962 int32_t basePipelineIndex;
3963} VkComputePipelineCreateInfo;
3964
3965typedef struct VkPushConstantRange {
3966 VkShaderStageFlags stageFlags;
3967 uint32_t offset;
3968 uint32_t size;
3969} VkPushConstantRange;
3970
3971typedef struct VkPipelineLayoutCreateInfo {
3972 VkStructureType sType;
3973 const void* pNext;
3974 VkPipelineLayoutCreateFlags flags;
3975 uint32_t setLayoutCount;
3976 const VkDescriptorSetLayout* pSetLayouts;
3977 uint32_t pushConstantRangeCount;
3978 const VkPushConstantRange* pPushConstantRanges;
3979} VkPipelineLayoutCreateInfo;
3980
3981typedef struct VkSamplerCreateInfo {
3982 VkStructureType sType;
3983 const void* pNext;
3984 VkSamplerCreateFlags flags;
3985 VkFilter magFilter;
3986 VkFilter minFilter;
3987 VkSamplerMipmapMode mipmapMode;
3988 VkSamplerAddressMode addressModeU;
3989 VkSamplerAddressMode addressModeV;
3990 VkSamplerAddressMode addressModeW;
3991 float mipLodBias;
3992 VkBool32 anisotropyEnable;
3993 float maxAnisotropy;
3994 VkBool32 compareEnable;
3995 VkCompareOp compareOp;
3996 float minLod;
3997 float maxLod;
3998 VkBorderColor borderColor;
3999 VkBool32 unnormalizedCoordinates;
4000} VkSamplerCreateInfo;
4001
4002typedef struct VkCopyDescriptorSet {
4003 VkStructureType sType;
4004 const void* pNext;
4005 VkDescriptorSet srcSet;
4006 uint32_t srcBinding;
4007 uint32_t srcArrayElement;
4008 VkDescriptorSet dstSet;
4009 uint32_t dstBinding;
4010 uint32_t dstArrayElement;
4011 uint32_t descriptorCount;
4012} VkCopyDescriptorSet;
4013
4014typedef struct VkDescriptorBufferInfo {
4015 VkBuffer buffer;
4016 VkDeviceSize offset;
4017 VkDeviceSize range;
4018} VkDescriptorBufferInfo;
4019
4020typedef struct VkDescriptorImageInfo {
4021 VkSampler sampler;
4022 VkImageView imageView;
4023 VkImageLayout imageLayout;
4024} VkDescriptorImageInfo;
4025
4026typedef struct VkDescriptorPoolSize {
4027 VkDescriptorType type;
4028 uint32_t descriptorCount;
4029} VkDescriptorPoolSize;
4030
4031typedef struct VkDescriptorPoolCreateInfo {
4032 VkStructureType sType;
4033 const void* pNext;
4034 VkDescriptorPoolCreateFlags flags;
4035 uint32_t maxSets;
4036 uint32_t poolSizeCount;
4037 const VkDescriptorPoolSize* pPoolSizes;
4038} VkDescriptorPoolCreateInfo;
4039
4040typedef struct VkDescriptorSetAllocateInfo {
4041 VkStructureType sType;
4042 const void* pNext;
4043 VkDescriptorPool descriptorPool;
4044 uint32_t descriptorSetCount;
4045 const VkDescriptorSetLayout* pSetLayouts;
4046} VkDescriptorSetAllocateInfo;
4047
4048typedef struct VkDescriptorSetLayoutBinding {
4049 uint32_t binding;
4050 VkDescriptorType descriptorType;
4051 uint32_t descriptorCount;
4052 VkShaderStageFlags stageFlags;
4053 const VkSampler* pImmutableSamplers;
4054} VkDescriptorSetLayoutBinding;
4055
4056typedef struct VkDescriptorSetLayoutCreateInfo {
4057 VkStructureType sType;
4058 const void* pNext;
4059 VkDescriptorSetLayoutCreateFlags flags;
4060 uint32_t bindingCount;
4061 const VkDescriptorSetLayoutBinding* pBindings;
4062} VkDescriptorSetLayoutCreateInfo;
4063
4064typedef struct VkWriteDescriptorSet {
4065 VkStructureType sType;
4066 const void* pNext;
4067 VkDescriptorSet dstSet;
4068 uint32_t dstBinding;
4069 uint32_t dstArrayElement;
4070 uint32_t descriptorCount;
4071 VkDescriptorType descriptorType;
4072 const VkDescriptorImageInfo* pImageInfo;
4073 const VkDescriptorBufferInfo* pBufferInfo;
4074 const VkBufferView* pTexelBufferView;
4075} VkWriteDescriptorSet;
4076
4077typedef union VkClearColorValue {
4078 float float32[4];
4079 int32_t int32[4];
4080 uint32_t uint32[4];
4081} VkClearColorValue;
4082
4083typedef struct VkDrawIndexedIndirectCommand {
4084 uint32_t indexCount;
4085 uint32_t instanceCount;
4086 uint32_t firstIndex;
4087 int32_t vertexOffset;
4088 uint32_t firstInstance;
4089} VkDrawIndexedIndirectCommand;
4090
4091typedef struct VkDrawIndirectCommand {
4092 uint32_t vertexCount;
4093 uint32_t instanceCount;
4094 uint32_t firstVertex;
4095 uint32_t firstInstance;
4096} VkDrawIndirectCommand;
4097
4098typedef struct VkVertexInputBindingDescription {
4099 uint32_t binding;
4100 uint32_t stride;
4101 VkVertexInputRate inputRate;
4102} VkVertexInputBindingDescription;
4103
4104typedef struct VkVertexInputAttributeDescription {
4105 uint32_t location;
4106 uint32_t binding;
4107 VkFormat format;
4108 uint32_t offset;
4109} VkVertexInputAttributeDescription;
4110
4111typedef struct VkPipelineVertexInputStateCreateInfo {
4112 VkStructureType sType;
4113 const void* pNext;
4114 VkPipelineVertexInputStateCreateFlags flags;
4115 uint32_t vertexBindingDescriptionCount;
4116 const VkVertexInputBindingDescription* pVertexBindingDescriptions;
4117 uint32_t vertexAttributeDescriptionCount;
4118 const VkVertexInputAttributeDescription* pVertexAttributeDescriptions;
4119} VkPipelineVertexInputStateCreateInfo;
4120
4121typedef struct VkPipelineInputAssemblyStateCreateInfo {
4122 VkStructureType sType;
4123 const void* pNext;
4124 VkPipelineInputAssemblyStateCreateFlags flags;
4125 VkPrimitiveTopology topology;
4126 VkBool32 primitiveRestartEnable;
4127} VkPipelineInputAssemblyStateCreateInfo;
4128
4129typedef struct VkPipelineTessellationStateCreateInfo {
4130 VkStructureType sType;
4131 const void* pNext;
4132 VkPipelineTessellationStateCreateFlags flags;
4133 uint32_t patchControlPoints;
4134} VkPipelineTessellationStateCreateInfo;
4135
4136typedef struct VkViewport {
4137 float x;
4138 float y;
4139 float width;
4140 float height;
4141 float minDepth;
4142 float maxDepth;
4143} VkViewport;
4144
4145typedef struct VkPipelineViewportStateCreateInfo {
4146 VkStructureType sType;
4147 const void* pNext;
4148 VkPipelineViewportStateCreateFlags flags;
4149 uint32_t viewportCount;
4150 const VkViewport* pViewports;
4151 uint32_t scissorCount;
4152 const VkRect2D* pScissors;
4153} VkPipelineViewportStateCreateInfo;
4154
4155typedef struct VkPipelineRasterizationStateCreateInfo {
4156 VkStructureType sType;
4157 const void* pNext;
4158 VkPipelineRasterizationStateCreateFlags flags;
4159 VkBool32 depthClampEnable;
4160 VkBool32 rasterizerDiscardEnable;
4161 VkPolygonMode polygonMode;
4162 VkCullModeFlags cullMode;
4163 VkFrontFace frontFace;
4164 VkBool32 depthBiasEnable;
4165 float depthBiasConstantFactor;
4166 float depthBiasClamp;
4167 float depthBiasSlopeFactor;
4168 float lineWidth;
4169} VkPipelineRasterizationStateCreateInfo;
4170
4171typedef struct VkPipelineMultisampleStateCreateInfo {
4172 VkStructureType sType;
4173 const void* pNext;
4174 VkPipelineMultisampleStateCreateFlags flags;
4175 VkSampleCountFlagBits rasterizationSamples;
4176 VkBool32 sampleShadingEnable;
4177 float minSampleShading;
4178 const VkSampleMask* pSampleMask;
4179 VkBool32 alphaToCoverageEnable;
4180 VkBool32 alphaToOneEnable;
4181} VkPipelineMultisampleStateCreateInfo;
4182
4183typedef struct VkStencilOpState {
4184 VkStencilOp failOp;
4185 VkStencilOp passOp;
4186 VkStencilOp depthFailOp;
4187 VkCompareOp compareOp;
4188 uint32_t compareMask;
4189 uint32_t writeMask;
4190 uint32_t reference;
4191} VkStencilOpState;
4192
4193typedef struct VkPipelineDepthStencilStateCreateInfo {
4194 VkStructureType sType;
4195 const void* pNext;
4196 VkPipelineDepthStencilStateCreateFlags flags;
4197 VkBool32 depthTestEnable;
4198 VkBool32 depthWriteEnable;
4199 VkCompareOp depthCompareOp;
4200 VkBool32 depthBoundsTestEnable;
4201 VkBool32 stencilTestEnable;
4202 VkStencilOpState front;
4203 VkStencilOpState back;
4204 float minDepthBounds;
4205 float maxDepthBounds;
4206} VkPipelineDepthStencilStateCreateInfo;
4207
4208typedef struct VkPipelineColorBlendAttachmentState {
4209 VkBool32 blendEnable;
4210 VkBlendFactor srcColorBlendFactor;
4211 VkBlendFactor dstColorBlendFactor;
4212 VkBlendOp colorBlendOp;
4213 VkBlendFactor srcAlphaBlendFactor;
4214 VkBlendFactor dstAlphaBlendFactor;
4215 VkBlendOp alphaBlendOp;
4216 VkColorComponentFlags colorWriteMask;
4217} VkPipelineColorBlendAttachmentState;
4218
4219typedef struct VkPipelineColorBlendStateCreateInfo {
4220 VkStructureType sType;
4221 const void* pNext;
4222 VkPipelineColorBlendStateCreateFlags flags;
4223 VkBool32 logicOpEnable;
4224 VkLogicOp logicOp;
4225 uint32_t attachmentCount;
4226 const VkPipelineColorBlendAttachmentState* pAttachments;
4227 float blendConstants[4];
4228} VkPipelineColorBlendStateCreateInfo;
4229
4230typedef struct VkPipelineDynamicStateCreateInfo {
4231 VkStructureType sType;
4232 const void* pNext;
4233 VkPipelineDynamicStateCreateFlags flags;
4234 uint32_t dynamicStateCount;
4235 const VkDynamicState* pDynamicStates;
4236} VkPipelineDynamicStateCreateInfo;
4237
4238typedef struct VkGraphicsPipelineCreateInfo {
4239 VkStructureType sType;
4240 const void* pNext;
4241 VkPipelineCreateFlags flags;
4242 uint32_t stageCount;
4243 const VkPipelineShaderStageCreateInfo* pStages;
4244 const VkPipelineVertexInputStateCreateInfo* pVertexInputState;
4245 const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState;
4246 const VkPipelineTessellationStateCreateInfo* pTessellationState;
4247 const VkPipelineViewportStateCreateInfo* pViewportState;
4248 const VkPipelineRasterizationStateCreateInfo* pRasterizationState;
4249 const VkPipelineMultisampleStateCreateInfo* pMultisampleState;
4250 const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState;
4251 const VkPipelineColorBlendStateCreateInfo* pColorBlendState;
4252 const VkPipelineDynamicStateCreateInfo* pDynamicState;
4253 VkPipelineLayout layout;
4254 VkRenderPass renderPass;
4255 uint32_t subpass;
4256 VkPipeline basePipelineHandle;
4257 int32_t basePipelineIndex;
4258} VkGraphicsPipelineCreateInfo;
4259
4260typedef struct VkAttachmentDescription {
4261 VkAttachmentDescriptionFlags flags;
4262 VkFormat format;
4263 VkSampleCountFlagBits samples;
4264 VkAttachmentLoadOp loadOp;
4265 VkAttachmentStoreOp storeOp;
4266 VkAttachmentLoadOp stencilLoadOp;
4267 VkAttachmentStoreOp stencilStoreOp;
4268 VkImageLayout initialLayout;
4269 VkImageLayout finalLayout;
4270} VkAttachmentDescription;
4271
4272typedef struct VkAttachmentReference {
4273 uint32_t attachment;
4274 VkImageLayout layout;
4275} VkAttachmentReference;
4276
4277typedef struct VkFramebufferCreateInfo {
4278 VkStructureType sType;
4279 const void* pNext;
4280 VkFramebufferCreateFlags flags;
4281 VkRenderPass renderPass;
4282 uint32_t attachmentCount;
4283 const VkImageView* pAttachments;
4284 uint32_t width;
4285 uint32_t height;
4286 uint32_t layers;
4287} VkFramebufferCreateInfo;
4288
4289typedef struct VkSubpassDescription {
4290 VkSubpassDescriptionFlags flags;
4291 VkPipelineBindPoint pipelineBindPoint;
4292 uint32_t inputAttachmentCount;
4293 const VkAttachmentReference* pInputAttachments;
4294 uint32_t colorAttachmentCount;
4295 const VkAttachmentReference* pColorAttachments;
4296 const VkAttachmentReference* pResolveAttachments;
4297 const VkAttachmentReference* pDepthStencilAttachment;
4298 uint32_t preserveAttachmentCount;
4299 const uint32_t* pPreserveAttachments;
4300} VkSubpassDescription;
4301
4302typedef struct VkSubpassDependency {
4303 uint32_t srcSubpass;
4304 uint32_t dstSubpass;
4305 VkPipelineStageFlags srcStageMask;
4306 VkPipelineStageFlags dstStageMask;
4307 VkAccessFlags srcAccessMask;
4308 VkAccessFlags dstAccessMask;
4309 VkDependencyFlags dependencyFlags;
4310} VkSubpassDependency;
4311
4312typedef struct VkRenderPassCreateInfo {
4313 VkStructureType sType;
4314 const void* pNext;
4315 VkRenderPassCreateFlags flags;
4316 uint32_t attachmentCount;
4317 const VkAttachmentDescription* pAttachments;
4318 uint32_t subpassCount;
4319 const VkSubpassDescription* pSubpasses;
4320 uint32_t dependencyCount;
4321 const VkSubpassDependency* pDependencies;
4322} VkRenderPassCreateInfo;
4323
4324typedef struct VkClearDepthStencilValue {
4325 float depth;
4326 uint32_t stencil;
4327} VkClearDepthStencilValue;
4328
4329typedef union VkClearValue {
4330 VkClearColorValue color;
4331 VkClearDepthStencilValue depthStencil;
4332} VkClearValue;
4333
4334typedef struct VkClearAttachment {
4335 VkImageAspectFlags aspectMask;
4336 uint32_t colorAttachment;
4337 VkClearValue clearValue;
4338} VkClearAttachment;
4339
4340typedef struct VkClearRect {
4341 VkRect2D rect;
4342 uint32_t baseArrayLayer;
4343 uint32_t layerCount;
4344} VkClearRect;
4345
4346typedef struct VkImageBlit {
4347 VkImageSubresourceLayers srcSubresource;
4348 VkOffset3D srcOffsets[2];
4349 VkImageSubresourceLayers dstSubresource;
4350 VkOffset3D dstOffsets[2];
4351} VkImageBlit;
4352
4353typedef struct VkImageResolve {
4354 VkImageSubresourceLayers srcSubresource;
4355 VkOffset3D srcOffset;
4356 VkImageSubresourceLayers dstSubresource;
4357 VkOffset3D dstOffset;
4358 VkExtent3D extent;
4359} VkImageResolve;
4360
4361typedef struct VkRenderPassBeginInfo {
4362 VkStructureType sType;
4363 const void* pNext;
4364 VkRenderPass renderPass;
4365 VkFramebuffer framebuffer;
4366 VkRect2D renderArea;
4367 uint32_t clearValueCount;
4368 const VkClearValue* pClearValues;
4369} VkRenderPassBeginInfo;
4370
4371typedef VkResult (VKAPI_PTR *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance);
4372typedef void (VKAPI_PTR *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks* pAllocator);
4373typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
4374typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
4375typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties);
4376typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
4377typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties);
4378typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties);
4379typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties);
4380typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char* pName);
4381typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetDeviceProcAddr)(VkDevice device, const char* pName);
4382typedef VkResult (VKAPI_PTR *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice);
4383typedef void (VKAPI_PTR *PFN_vkDestroyDevice)(VkDevice device, const VkAllocationCallbacks* pAllocator);
4384typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceExtensionProperties)(const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
4385typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
4386typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceLayerProperties)(uint32_t* pPropertyCount, VkLayerProperties* pProperties);
4387typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties);
4388typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue);
4389typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence);
4390typedef VkResult (VKAPI_PTR *PFN_vkQueueWaitIdle)(VkQueue queue);
4391typedef VkResult (VKAPI_PTR *PFN_vkDeviceWaitIdle)(VkDevice device);
4392typedef VkResult (VKAPI_PTR *PFN_vkAllocateMemory)(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory);
4393typedef void (VKAPI_PTR *PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator);
4394typedef VkResult (VKAPI_PTR *PFN_vkMapMemory)(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData);
4395typedef void (VKAPI_PTR *PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory memory);
4396typedef VkResult (VKAPI_PTR *PFN_vkFlushMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
4397typedef VkResult (VKAPI_PTR *PFN_vkInvalidateMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
4398typedef void (VKAPI_PTR *PFN_vkGetDeviceMemoryCommitment)(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes);
4399typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory)(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset);
4400typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory)(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset);
4401typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements)(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements);
4402typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
4403typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
4404typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties);
4405typedef VkResult (VKAPI_PTR *PFN_vkQueueBindSparse)(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence);
4406typedef VkResult (VKAPI_PTR *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
4407typedef void (VKAPI_PTR *PFN_vkDestroyFence)(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator);
4408typedef VkResult (VKAPI_PTR *PFN_vkResetFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences);
4409typedef VkResult (VKAPI_PTR *PFN_vkGetFenceStatus)(VkDevice device, VkFence fence);
4410typedef VkResult (VKAPI_PTR *PFN_vkWaitForFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout);
4411typedef VkResult (VKAPI_PTR *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore);
4412typedef void (VKAPI_PTR *PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator);
4413typedef VkResult (VKAPI_PTR *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool);
4414typedef void (VKAPI_PTR *PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator);
4415typedef VkResult (VKAPI_PTR *PFN_vkGetQueryPoolResults)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags);
4416typedef VkResult (VKAPI_PTR *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer);
4417typedef void (VKAPI_PTR *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator);
4418typedef VkResult (VKAPI_PTR *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage);
4419typedef void (VKAPI_PTR *PFN_vkDestroyImage)(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator);
4420typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout);
4421typedef VkResult (VKAPI_PTR *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView);
4422typedef void (VKAPI_PTR *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator);
4423typedef VkResult (VKAPI_PTR *PFN_vkCreateCommandPool)(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool);
4424typedef void (VKAPI_PTR *PFN_vkDestroyCommandPool)(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator);
4425typedef VkResult (VKAPI_PTR *PFN_vkResetCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags);
4426typedef VkResult (VKAPI_PTR *PFN_vkAllocateCommandBuffers)(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers);
4427typedef void (VKAPI_PTR *PFN_vkFreeCommandBuffers)(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
4428typedef VkResult (VKAPI_PTR *PFN_vkBeginCommandBuffer)(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo);
4429typedef VkResult (VKAPI_PTR *PFN_vkEndCommandBuffer)(VkCommandBuffer commandBuffer);
4430typedef VkResult (VKAPI_PTR *PFN_vkResetCommandBuffer)(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags);
4431typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions);
4432typedef void (VKAPI_PTR *PFN_vkCmdCopyImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions);
4433typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions);
4434typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions);
4435typedef void (VKAPI_PTR *PFN_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData);
4436typedef void (VKAPI_PTR *PFN_vkCmdFillBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data);
4437typedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier)(VkCommandBuffer commandBuffer, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, VkDependencyFlags dependencyFlags, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers);
4438typedef void (VKAPI_PTR *PFN_vkCmdBeginQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags);
4439typedef void (VKAPI_PTR *PFN_vkCmdEndQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query);
4440typedef void (VKAPI_PTR *PFN_vkCmdResetQueryPool)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
4441typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query);
4442typedef void (VKAPI_PTR *PFN_vkCmdCopyQueryPoolResults)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags);
4443typedef void (VKAPI_PTR *PFN_vkCmdExecuteCommands)(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
4444typedef VkResult (VKAPI_PTR *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent);
4445typedef void (VKAPI_PTR *PFN_vkDestroyEvent)(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator);
4446typedef VkResult (VKAPI_PTR *PFN_vkGetEventStatus)(VkDevice device, VkEvent event);
4447typedef VkResult (VKAPI_PTR *PFN_vkSetEvent)(VkDevice device, VkEvent event);
4448typedef VkResult (VKAPI_PTR *PFN_vkResetEvent)(VkDevice device, VkEvent event);
4449typedef VkResult (VKAPI_PTR *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView);
4450typedef void (VKAPI_PTR *PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator);
4451typedef VkResult (VKAPI_PTR *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule);
4452typedef void (VKAPI_PTR *PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator);
4453typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache);
4454typedef void (VKAPI_PTR *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator);
4455typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData);
4456typedef VkResult (VKAPI_PTR *PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches);
4457typedef VkResult (VKAPI_PTR *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
4458typedef void (VKAPI_PTR *PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator);
4459typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout);
4460typedef void (VKAPI_PTR *PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator);
4461typedef VkResult (VKAPI_PTR *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler);
4462typedef void (VKAPI_PTR *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator);
4463typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout);
4464typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator);
4465typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool);
4466typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator);
4467typedef VkResult (VKAPI_PTR *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
4468typedef VkResult (VKAPI_PTR *PFN_vkAllocateDescriptorSets)(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets);
4469typedef VkResult (VKAPI_PTR *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets);
4470typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies);
4471typedef void (VKAPI_PTR *PFN_vkCmdBindPipeline)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
4472typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorSets)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets, uint32_t dynamicOffsetCount, const uint32_t* pDynamicOffsets);
4473typedef void (VKAPI_PTR *PFN_vkCmdClearColorImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
4474typedef void (VKAPI_PTR *PFN_vkCmdDispatch)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
4475typedef void (VKAPI_PTR *PFN_vkCmdDispatchIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
4476typedef void (VKAPI_PTR *PFN_vkCmdSetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
4477typedef void (VKAPI_PTR *PFN_vkCmdResetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
4478typedef void (VKAPI_PTR *PFN_vkCmdWaitEvents)(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, VkPipelineStageFlags srcStageMask, VkPipelineStageFlags dstStageMask, uint32_t memoryBarrierCount, const VkMemoryBarrier* pMemoryBarriers, uint32_t bufferMemoryBarrierCount, const VkBufferMemoryBarrier* pBufferMemoryBarriers, uint32_t imageMemoryBarrierCount, const VkImageMemoryBarrier* pImageMemoryBarriers);
4479typedef void (VKAPI_PTR *PFN_vkCmdPushConstants)(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues);
4480typedef VkResult (VKAPI_PTR *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
4481typedef VkResult (VKAPI_PTR *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer);
4482typedef void (VKAPI_PTR *PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator);
4483typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
4484typedef void (VKAPI_PTR *PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator);
4485typedef void (VKAPI_PTR *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity);
4486typedef void (VKAPI_PTR *PFN_vkCmdSetViewport)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports);
4487typedef void (VKAPI_PTR *PFN_vkCmdSetScissor)(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors);
4488typedef void (VKAPI_PTR *PFN_vkCmdSetLineWidth)(VkCommandBuffer commandBuffer, float lineWidth);
4489typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias)(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
4490typedef void (VKAPI_PTR *PFN_vkCmdSetBlendConstants)(VkCommandBuffer commandBuffer, const float blendConstants[4]);
4491typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBounds)(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds);
4492typedef void (VKAPI_PTR *PFN_vkCmdSetStencilCompareMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask);
4493typedef void (VKAPI_PTR *PFN_vkCmdSetStencilWriteMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask);
4494typedef void (VKAPI_PTR *PFN_vkCmdSetStencilReference)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference);
4495typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
4496typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets);
4497typedef void (VKAPI_PTR *PFN_vkCmdDraw)(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
4498typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexed)(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance);
4499typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
4500typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
4501typedef void (VKAPI_PTR *PFN_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter);
4502typedef void (VKAPI_PTR *PFN_vkCmdClearDepthStencilImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
4503typedef void (VKAPI_PTR *PFN_vkCmdClearAttachments)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects);
4504typedef void (VKAPI_PTR *PFN_vkCmdResolveImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions);
4505typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents);
4506typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass)(VkCommandBuffer commandBuffer, VkSubpassContents contents);
4507typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass)(VkCommandBuffer commandBuffer);
4508
4509#ifndef VK_NO_PROTOTYPES
4510VKAPI_ATTR VkResult VKAPI_CALL vkCreateInstance(
4511 const VkInstanceCreateInfo* pCreateInfo,
4512 const VkAllocationCallbacks* pAllocator,
4513 VkInstance* pInstance);
4514
4515VKAPI_ATTR void VKAPI_CALL vkDestroyInstance(
4516 VkInstance instance,
4517 const VkAllocationCallbacks* pAllocator);
4518
4519VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDevices(
4520 VkInstance instance,
4521 uint32_t* pPhysicalDeviceCount,
4522 VkPhysicalDevice* pPhysicalDevices);
4523
4524VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures(
4525 VkPhysicalDevice physicalDevice,
4526 VkPhysicalDeviceFeatures* pFeatures);
4527
4528VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties(
4529 VkPhysicalDevice physicalDevice,
4530 VkFormat format,
4531 VkFormatProperties* pFormatProperties);
4532
4533VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties(
4534 VkPhysicalDevice physicalDevice,
4535 VkFormat format,
4536 VkImageType type,
4537 VkImageTiling tiling,
4538 VkImageUsageFlags usage,
4539 VkImageCreateFlags flags,
4540 VkImageFormatProperties* pImageFormatProperties);
4541
4542VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties(
4543 VkPhysicalDevice physicalDevice,
4544 VkPhysicalDeviceProperties* pProperties);
4545
4546VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties(
4547 VkPhysicalDevice physicalDevice,
4548 uint32_t* pQueueFamilyPropertyCount,
4549 VkQueueFamilyProperties* pQueueFamilyProperties);
4550
4551VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties(
4552 VkPhysicalDevice physicalDevice,
4553 VkPhysicalDeviceMemoryProperties* pMemoryProperties);
4554
4555VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(
4556 VkInstance instance,
4557 const char* pName);
4558
4559VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr(
4560 VkDevice device,
4561 const char* pName);
4562
4563VKAPI_ATTR VkResult VKAPI_CALL vkCreateDevice(
4564 VkPhysicalDevice physicalDevice,
4565 const VkDeviceCreateInfo* pCreateInfo,
4566 const VkAllocationCallbacks* pAllocator,
4567 VkDevice* pDevice);
4568
4569VKAPI_ATTR void VKAPI_CALL vkDestroyDevice(
4570 VkDevice device,
4571 const VkAllocationCallbacks* pAllocator);
4572
4573VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceExtensionProperties(
4574 const char* pLayerName,
4575 uint32_t* pPropertyCount,
4576 VkExtensionProperties* pProperties);
4577
4578VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceExtensionProperties(
4579 VkPhysicalDevice physicalDevice,
4580 const char* pLayerName,
4581 uint32_t* pPropertyCount,
4582 VkExtensionProperties* pProperties);
4583
4584VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceLayerProperties(
4585 uint32_t* pPropertyCount,
4586 VkLayerProperties* pProperties);
4587
4588VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceLayerProperties(
4589 VkPhysicalDevice physicalDevice,
4590 uint32_t* pPropertyCount,
4591 VkLayerProperties* pProperties);
4592
4593VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue(
4594 VkDevice device,
4595 uint32_t queueFamilyIndex,
4596 uint32_t queueIndex,
4597 VkQueue* pQueue);
4598
4599VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit(
4600 VkQueue queue,
4601 uint32_t submitCount,
4602 const VkSubmitInfo* pSubmits,
4603 VkFence fence);
4604
4605VKAPI_ATTR VkResult VKAPI_CALL vkQueueWaitIdle(
4606 VkQueue queue);
4607
4608VKAPI_ATTR VkResult VKAPI_CALL vkDeviceWaitIdle(
4609 VkDevice device);
4610
4611VKAPI_ATTR VkResult VKAPI_CALL vkAllocateMemory(
4612 VkDevice device,
4613 const VkMemoryAllocateInfo* pAllocateInfo,
4614 const VkAllocationCallbacks* pAllocator,
4615 VkDeviceMemory* pMemory);
4616
4617VKAPI_ATTR void VKAPI_CALL vkFreeMemory(
4618 VkDevice device,
4619 VkDeviceMemory memory,
4620 const VkAllocationCallbacks* pAllocator);
4621
4622VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory(
4623 VkDevice device,
4624 VkDeviceMemory memory,
4625 VkDeviceSize offset,
4626 VkDeviceSize size,
4627 VkMemoryMapFlags flags,
4628 void** ppData);
4629
4630VKAPI_ATTR void VKAPI_CALL vkUnmapMemory(
4631 VkDevice device,
4632 VkDeviceMemory memory);
4633
4634VKAPI_ATTR VkResult VKAPI_CALL vkFlushMappedMemoryRanges(
4635 VkDevice device,
4636 uint32_t memoryRangeCount,
4637 const VkMappedMemoryRange* pMemoryRanges);
4638
4639VKAPI_ATTR VkResult VKAPI_CALL vkInvalidateMappedMemoryRanges(
4640 VkDevice device,
4641 uint32_t memoryRangeCount,
4642 const VkMappedMemoryRange* pMemoryRanges);
4643
4644VKAPI_ATTR void VKAPI_CALL vkGetDeviceMemoryCommitment(
4645 VkDevice device,
4646 VkDeviceMemory memory,
4647 VkDeviceSize* pCommittedMemoryInBytes);
4648
4649VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory(
4650 VkDevice device,
4651 VkBuffer buffer,
4652 VkDeviceMemory memory,
4653 VkDeviceSize memoryOffset);
4654
4655VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory(
4656 VkDevice device,
4657 VkImage image,
4658 VkDeviceMemory memory,
4659 VkDeviceSize memoryOffset);
4660
4661VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements(
4662 VkDevice device,
4663 VkBuffer buffer,
4664 VkMemoryRequirements* pMemoryRequirements);
4665
4666VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements(
4667 VkDevice device,
4668 VkImage image,
4669 VkMemoryRequirements* pMemoryRequirements);
4670
4671VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements(
4672 VkDevice device,
4673 VkImage image,
4674 uint32_t* pSparseMemoryRequirementCount,
4675 VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
4676
4677VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties(
4678 VkPhysicalDevice physicalDevice,
4679 VkFormat format,
4680 VkImageType type,
4681 VkSampleCountFlagBits samples,
4682 VkImageUsageFlags usage,
4683 VkImageTiling tiling,
4684 uint32_t* pPropertyCount,
4685 VkSparseImageFormatProperties* pProperties);
4686
4687VKAPI_ATTR VkResult VKAPI_CALL vkQueueBindSparse(
4688 VkQueue queue,
4689 uint32_t bindInfoCount,
4690 const VkBindSparseInfo* pBindInfo,
4691 VkFence fence);
4692
4693VKAPI_ATTR VkResult VKAPI_CALL vkCreateFence(
4694 VkDevice device,
4695 const VkFenceCreateInfo* pCreateInfo,
4696 const VkAllocationCallbacks* pAllocator,
4697 VkFence* pFence);
4698
4699VKAPI_ATTR void VKAPI_CALL vkDestroyFence(
4700 VkDevice device,
4701 VkFence fence,
4702 const VkAllocationCallbacks* pAllocator);
4703
4704VKAPI_ATTR VkResult VKAPI_CALL vkResetFences(
4705 VkDevice device,
4706 uint32_t fenceCount,
4707 const VkFence* pFences);
4708
4709VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceStatus(
4710 VkDevice device,
4711 VkFence fence);
4712
4713VKAPI_ATTR VkResult VKAPI_CALL vkWaitForFences(
4714 VkDevice device,
4715 uint32_t fenceCount,
4716 const VkFence* pFences,
4717 VkBool32 waitAll,
4718 uint64_t timeout);
4719
4720VKAPI_ATTR VkResult VKAPI_CALL vkCreateSemaphore(
4721 VkDevice device,
4722 const VkSemaphoreCreateInfo* pCreateInfo,
4723 const VkAllocationCallbacks* pAllocator,
4724 VkSemaphore* pSemaphore);
4725
4726VKAPI_ATTR void VKAPI_CALL vkDestroySemaphore(
4727 VkDevice device,
4728 VkSemaphore semaphore,
4729 const VkAllocationCallbacks* pAllocator);
4730
4731VKAPI_ATTR VkResult VKAPI_CALL vkCreateQueryPool(
4732 VkDevice device,
4733 const VkQueryPoolCreateInfo* pCreateInfo,
4734 const VkAllocationCallbacks* pAllocator,
4735 VkQueryPool* pQueryPool);
4736
4737VKAPI_ATTR void VKAPI_CALL vkDestroyQueryPool(
4738 VkDevice device,
4739 VkQueryPool queryPool,
4740 const VkAllocationCallbacks* pAllocator);
4741
4742VKAPI_ATTR VkResult VKAPI_CALL vkGetQueryPoolResults(
4743 VkDevice device,
4744 VkQueryPool queryPool,
4745 uint32_t firstQuery,
4746 uint32_t queryCount,
4747 size_t dataSize,
4748 void* pData,
4749 VkDeviceSize stride,
4750 VkQueryResultFlags flags);
4751
4752VKAPI_ATTR VkResult VKAPI_CALL vkCreateBuffer(
4753 VkDevice device,
4754 const VkBufferCreateInfo* pCreateInfo,
4755 const VkAllocationCallbacks* pAllocator,
4756 VkBuffer* pBuffer);
4757
4758VKAPI_ATTR void VKAPI_CALL vkDestroyBuffer(
4759 VkDevice device,
4760 VkBuffer buffer,
4761 const VkAllocationCallbacks* pAllocator);
4762
4763VKAPI_ATTR VkResult VKAPI_CALL vkCreateImage(
4764 VkDevice device,
4765 const VkImageCreateInfo* pCreateInfo,
4766 const VkAllocationCallbacks* pAllocator,
4767 VkImage* pImage);
4768
4769VKAPI_ATTR void VKAPI_CALL vkDestroyImage(
4770 VkDevice device,
4771 VkImage image,
4772 const VkAllocationCallbacks* pAllocator);
4773
4774VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout(
4775 VkDevice device,
4776 VkImage image,
4777 const VkImageSubresource* pSubresource,
4778 VkSubresourceLayout* pLayout);
4779
4780VKAPI_ATTR VkResult VKAPI_CALL vkCreateImageView(
4781 VkDevice device,
4782 const VkImageViewCreateInfo* pCreateInfo,
4783 const VkAllocationCallbacks* pAllocator,
4784 VkImageView* pView);
4785
4786VKAPI_ATTR void VKAPI_CALL vkDestroyImageView(
4787 VkDevice device,
4788 VkImageView imageView,
4789 const VkAllocationCallbacks* pAllocator);
4790
4791VKAPI_ATTR VkResult VKAPI_CALL vkCreateCommandPool(
4792 VkDevice device,
4793 const VkCommandPoolCreateInfo* pCreateInfo,
4794 const VkAllocationCallbacks* pAllocator,
4795 VkCommandPool* pCommandPool);
4796
4797VKAPI_ATTR void VKAPI_CALL vkDestroyCommandPool(
4798 VkDevice device,
4799 VkCommandPool commandPool,
4800 const VkAllocationCallbacks* pAllocator);
4801
4802VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandPool(
4803 VkDevice device,
4804 VkCommandPool commandPool,
4805 VkCommandPoolResetFlags flags);
4806
4807VKAPI_ATTR VkResult VKAPI_CALL vkAllocateCommandBuffers(
4808 VkDevice device,
4809 const VkCommandBufferAllocateInfo* pAllocateInfo,
4810 VkCommandBuffer* pCommandBuffers);
4811
4812VKAPI_ATTR void VKAPI_CALL vkFreeCommandBuffers(
4813 VkDevice device,
4814 VkCommandPool commandPool,
4815 uint32_t commandBufferCount,
4816 const VkCommandBuffer* pCommandBuffers);
4817
4818VKAPI_ATTR VkResult VKAPI_CALL vkBeginCommandBuffer(
4819 VkCommandBuffer commandBuffer,
4820 const VkCommandBufferBeginInfo* pBeginInfo);
4821
4822VKAPI_ATTR VkResult VKAPI_CALL vkEndCommandBuffer(
4823 VkCommandBuffer commandBuffer);
4824
4825VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandBuffer(
4826 VkCommandBuffer commandBuffer,
4827 VkCommandBufferResetFlags flags);
4828
4829VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer(
4830 VkCommandBuffer commandBuffer,
4831 VkBuffer srcBuffer,
4832 VkBuffer dstBuffer,
4833 uint32_t regionCount,
4834 const VkBufferCopy* pRegions);
4835
4836VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage(
4837 VkCommandBuffer commandBuffer,
4838 VkImage srcImage,
4839 VkImageLayout srcImageLayout,
4840 VkImage dstImage,
4841 VkImageLayout dstImageLayout,
4842 uint32_t regionCount,
4843 const VkImageCopy* pRegions);
4844
4845VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage(
4846 VkCommandBuffer commandBuffer,
4847 VkBuffer srcBuffer,
4848 VkImage dstImage,
4849 VkImageLayout dstImageLayout,
4850 uint32_t regionCount,
4851 const VkBufferImageCopy* pRegions);
4852
4853VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer(
4854 VkCommandBuffer commandBuffer,
4855 VkImage srcImage,
4856 VkImageLayout srcImageLayout,
4857 VkBuffer dstBuffer,
4858 uint32_t regionCount,
4859 const VkBufferImageCopy* pRegions);
4860
4861VKAPI_ATTR void VKAPI_CALL vkCmdUpdateBuffer(
4862 VkCommandBuffer commandBuffer,
4863 VkBuffer dstBuffer,
4864 VkDeviceSize dstOffset,
4865 VkDeviceSize dataSize,
4866 const void* pData);
4867
4868VKAPI_ATTR void VKAPI_CALL vkCmdFillBuffer(
4869 VkCommandBuffer commandBuffer,
4870 VkBuffer dstBuffer,
4871 VkDeviceSize dstOffset,
4872 VkDeviceSize size,
4873 uint32_t data);
4874
4875VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier(
4876 VkCommandBuffer commandBuffer,
4877 VkPipelineStageFlags srcStageMask,
4878 VkPipelineStageFlags dstStageMask,
4879 VkDependencyFlags dependencyFlags,
4880 uint32_t memoryBarrierCount,
4881 const VkMemoryBarrier* pMemoryBarriers,
4882 uint32_t bufferMemoryBarrierCount,
4883 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
4884 uint32_t imageMemoryBarrierCount,
4885 const VkImageMemoryBarrier* pImageMemoryBarriers);
4886
4887VKAPI_ATTR void VKAPI_CALL vkCmdBeginQuery(
4888 VkCommandBuffer commandBuffer,
4889 VkQueryPool queryPool,
4890 uint32_t query,
4891 VkQueryControlFlags flags);
4892
4893VKAPI_ATTR void VKAPI_CALL vkCmdEndQuery(
4894 VkCommandBuffer commandBuffer,
4895 VkQueryPool queryPool,
4896 uint32_t query);
4897
4898VKAPI_ATTR void VKAPI_CALL vkCmdResetQueryPool(
4899 VkCommandBuffer commandBuffer,
4900 VkQueryPool queryPool,
4901 uint32_t firstQuery,
4902 uint32_t queryCount);
4903
4904VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp(
4905 VkCommandBuffer commandBuffer,
4906 VkPipelineStageFlagBits pipelineStage,
4907 VkQueryPool queryPool,
4908 uint32_t query);
4909
4910VKAPI_ATTR void VKAPI_CALL vkCmdCopyQueryPoolResults(
4911 VkCommandBuffer commandBuffer,
4912 VkQueryPool queryPool,
4913 uint32_t firstQuery,
4914 uint32_t queryCount,
4915 VkBuffer dstBuffer,
4916 VkDeviceSize dstOffset,
4917 VkDeviceSize stride,
4918 VkQueryResultFlags flags);
4919
4920VKAPI_ATTR void VKAPI_CALL vkCmdExecuteCommands(
4921 VkCommandBuffer commandBuffer,
4922 uint32_t commandBufferCount,
4923 const VkCommandBuffer* pCommandBuffers);
4924
4925VKAPI_ATTR VkResult VKAPI_CALL vkCreateEvent(
4926 VkDevice device,
4927 const VkEventCreateInfo* pCreateInfo,
4928 const VkAllocationCallbacks* pAllocator,
4929 VkEvent* pEvent);
4930
4931VKAPI_ATTR void VKAPI_CALL vkDestroyEvent(
4932 VkDevice device,
4933 VkEvent event,
4934 const VkAllocationCallbacks* pAllocator);
4935
4936VKAPI_ATTR VkResult VKAPI_CALL vkGetEventStatus(
4937 VkDevice device,
4938 VkEvent event);
4939
4940VKAPI_ATTR VkResult VKAPI_CALL vkSetEvent(
4941 VkDevice device,
4942 VkEvent event);
4943
4944VKAPI_ATTR VkResult VKAPI_CALL vkResetEvent(
4945 VkDevice device,
4946 VkEvent event);
4947
4948VKAPI_ATTR VkResult VKAPI_CALL vkCreateBufferView(
4949 VkDevice device,
4950 const VkBufferViewCreateInfo* pCreateInfo,
4951 const VkAllocationCallbacks* pAllocator,
4952 VkBufferView* pView);
4953
4954VKAPI_ATTR void VKAPI_CALL vkDestroyBufferView(
4955 VkDevice device,
4956 VkBufferView bufferView,
4957 const VkAllocationCallbacks* pAllocator);
4958
4959VKAPI_ATTR VkResult VKAPI_CALL vkCreateShaderModule(
4960 VkDevice device,
4961 const VkShaderModuleCreateInfo* pCreateInfo,
4962 const VkAllocationCallbacks* pAllocator,
4963 VkShaderModule* pShaderModule);
4964
4965VKAPI_ATTR void VKAPI_CALL vkDestroyShaderModule(
4966 VkDevice device,
4967 VkShaderModule shaderModule,
4968 const VkAllocationCallbacks* pAllocator);
4969
4970VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineCache(
4971 VkDevice device,
4972 const VkPipelineCacheCreateInfo* pCreateInfo,
4973 const VkAllocationCallbacks* pAllocator,
4974 VkPipelineCache* pPipelineCache);
4975
4976VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineCache(
4977 VkDevice device,
4978 VkPipelineCache pipelineCache,
4979 const VkAllocationCallbacks* pAllocator);
4980
4981VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineCacheData(
4982 VkDevice device,
4983 VkPipelineCache pipelineCache,
4984 size_t* pDataSize,
4985 void* pData);
4986
4987VKAPI_ATTR VkResult VKAPI_CALL vkMergePipelineCaches(
4988 VkDevice device,
4989 VkPipelineCache dstCache,
4990 uint32_t srcCacheCount,
4991 const VkPipelineCache* pSrcCaches);
4992
4993VKAPI_ATTR VkResult VKAPI_CALL vkCreateComputePipelines(
4994 VkDevice device,
4995 VkPipelineCache pipelineCache,
4996 uint32_t createInfoCount,
4997 const VkComputePipelineCreateInfo* pCreateInfos,
4998 const VkAllocationCallbacks* pAllocator,
4999 VkPipeline* pPipelines);
5000
5001VKAPI_ATTR void VKAPI_CALL vkDestroyPipeline(
5002 VkDevice device,
5003 VkPipeline pipeline,
5004 const VkAllocationCallbacks* pAllocator);
5005
5006VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineLayout(
5007 VkDevice device,
5008 const VkPipelineLayoutCreateInfo* pCreateInfo,
5009 const VkAllocationCallbacks* pAllocator,
5010 VkPipelineLayout* pPipelineLayout);
5011
5012VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineLayout(
5013 VkDevice device,
5014 VkPipelineLayout pipelineLayout,
5015 const VkAllocationCallbacks* pAllocator);
5016
5017VKAPI_ATTR VkResult VKAPI_CALL vkCreateSampler(
5018 VkDevice device,
5019 const VkSamplerCreateInfo* pCreateInfo,
5020 const VkAllocationCallbacks* pAllocator,
5021 VkSampler* pSampler);
5022
5023VKAPI_ATTR void VKAPI_CALL vkDestroySampler(
5024 VkDevice device,
5025 VkSampler sampler,
5026 const VkAllocationCallbacks* pAllocator);
5027
5028VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorSetLayout(
5029 VkDevice device,
5030 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
5031 const VkAllocationCallbacks* pAllocator,
5032 VkDescriptorSetLayout* pSetLayout);
5033
5034VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorSetLayout(
5035 VkDevice device,
5036 VkDescriptorSetLayout descriptorSetLayout,
5037 const VkAllocationCallbacks* pAllocator);
5038
5039VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorPool(
5040 VkDevice device,
5041 const VkDescriptorPoolCreateInfo* pCreateInfo,
5042 const VkAllocationCallbacks* pAllocator,
5043 VkDescriptorPool* pDescriptorPool);
5044
5045VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorPool(
5046 VkDevice device,
5047 VkDescriptorPool descriptorPool,
5048 const VkAllocationCallbacks* pAllocator);
5049
5050VKAPI_ATTR VkResult VKAPI_CALL vkResetDescriptorPool(
5051 VkDevice device,
5052 VkDescriptorPool descriptorPool,
5053 VkDescriptorPoolResetFlags flags);
5054
5055VKAPI_ATTR VkResult VKAPI_CALL vkAllocateDescriptorSets(
5056 VkDevice device,
5057 const VkDescriptorSetAllocateInfo* pAllocateInfo,
5058 VkDescriptorSet* pDescriptorSets);
5059
5060VKAPI_ATTR VkResult VKAPI_CALL vkFreeDescriptorSets(
5061 VkDevice device,
5062 VkDescriptorPool descriptorPool,
5063 uint32_t descriptorSetCount,
5064 const VkDescriptorSet* pDescriptorSets);
5065
5066VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSets(
5067 VkDevice device,
5068 uint32_t descriptorWriteCount,
5069 const VkWriteDescriptorSet* pDescriptorWrites,
5070 uint32_t descriptorCopyCount,
5071 const VkCopyDescriptorSet* pDescriptorCopies);
5072
5073VKAPI_ATTR void VKAPI_CALL vkCmdBindPipeline(
5074 VkCommandBuffer commandBuffer,
5075 VkPipelineBindPoint pipelineBindPoint,
5076 VkPipeline pipeline);
5077
5078VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets(
5079 VkCommandBuffer commandBuffer,
5080 VkPipelineBindPoint pipelineBindPoint,
5081 VkPipelineLayout layout,
5082 uint32_t firstSet,
5083 uint32_t descriptorSetCount,
5084 const VkDescriptorSet* pDescriptorSets,
5085 uint32_t dynamicOffsetCount,
5086 const uint32_t* pDynamicOffsets);
5087
5088VKAPI_ATTR void VKAPI_CALL vkCmdClearColorImage(
5089 VkCommandBuffer commandBuffer,
5090 VkImage image,
5091 VkImageLayout imageLayout,
5092 const VkClearColorValue* pColor,
5093 uint32_t rangeCount,
5094 const VkImageSubresourceRange* pRanges);
5095
5096VKAPI_ATTR void VKAPI_CALL vkCmdDispatch(
5097 VkCommandBuffer commandBuffer,
5098 uint32_t groupCountX,
5099 uint32_t groupCountY,
5100 uint32_t groupCountZ);
5101
5102VKAPI_ATTR void VKAPI_CALL vkCmdDispatchIndirect(
5103 VkCommandBuffer commandBuffer,
5104 VkBuffer buffer,
5105 VkDeviceSize offset);
5106
5107VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent(
5108 VkCommandBuffer commandBuffer,
5109 VkEvent event,
5110 VkPipelineStageFlags stageMask);
5111
5112VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent(
5113 VkCommandBuffer commandBuffer,
5114 VkEvent event,
5115 VkPipelineStageFlags stageMask);
5116
5117VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents(
5118 VkCommandBuffer commandBuffer,
5119 uint32_t eventCount,
5120 const VkEvent* pEvents,
5121 VkPipelineStageFlags srcStageMask,
5122 VkPipelineStageFlags dstStageMask,
5123 uint32_t memoryBarrierCount,
5124 const VkMemoryBarrier* pMemoryBarriers,
5125 uint32_t bufferMemoryBarrierCount,
5126 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
5127 uint32_t imageMemoryBarrierCount,
5128 const VkImageMemoryBarrier* pImageMemoryBarriers);
5129
5130VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants(
5131 VkCommandBuffer commandBuffer,
5132 VkPipelineLayout layout,
5133 VkShaderStageFlags stageFlags,
5134 uint32_t offset,
5135 uint32_t size,
5136 const void* pValues);
5137
5138VKAPI_ATTR VkResult VKAPI_CALL vkCreateGraphicsPipelines(
5139 VkDevice device,
5140 VkPipelineCache pipelineCache,
5141 uint32_t createInfoCount,
5142 const VkGraphicsPipelineCreateInfo* pCreateInfos,
5143 const VkAllocationCallbacks* pAllocator,
5144 VkPipeline* pPipelines);
5145
5146VKAPI_ATTR VkResult VKAPI_CALL vkCreateFramebuffer(
5147 VkDevice device,
5148 const VkFramebufferCreateInfo* pCreateInfo,
5149 const VkAllocationCallbacks* pAllocator,
5150 VkFramebuffer* pFramebuffer);
5151
5152VKAPI_ATTR void VKAPI_CALL vkDestroyFramebuffer(
5153 VkDevice device,
5154 VkFramebuffer framebuffer,
5155 const VkAllocationCallbacks* pAllocator);
5156
5157VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass(
5158 VkDevice device,
5159 const VkRenderPassCreateInfo* pCreateInfo,
5160 const VkAllocationCallbacks* pAllocator,
5161 VkRenderPass* pRenderPass);
5162
5163VKAPI_ATTR void VKAPI_CALL vkDestroyRenderPass(
5164 VkDevice device,
5165 VkRenderPass renderPass,
5166 const VkAllocationCallbacks* pAllocator);
5167
5168VKAPI_ATTR void VKAPI_CALL vkGetRenderAreaGranularity(
5169 VkDevice device,
5170 VkRenderPass renderPass,
5171 VkExtent2D* pGranularity);
5172
5173VKAPI_ATTR void VKAPI_CALL vkCmdSetViewport(
5174 VkCommandBuffer commandBuffer,
5175 uint32_t firstViewport,
5176 uint32_t viewportCount,
5177 const VkViewport* pViewports);
5178
5179VKAPI_ATTR void VKAPI_CALL vkCmdSetScissor(
5180 VkCommandBuffer commandBuffer,
5181 uint32_t firstScissor,
5182 uint32_t scissorCount,
5183 const VkRect2D* pScissors);
5184
5185VKAPI_ATTR void VKAPI_CALL vkCmdSetLineWidth(
5186 VkCommandBuffer commandBuffer,
5187 float lineWidth);
5188
5189VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias(
5190 VkCommandBuffer commandBuffer,
5191 float depthBiasConstantFactor,
5192 float depthBiasClamp,
5193 float depthBiasSlopeFactor);
5194
5195VKAPI_ATTR void VKAPI_CALL vkCmdSetBlendConstants(
5196 VkCommandBuffer commandBuffer,
5197 const float blendConstants[4]);
5198
5199VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBounds(
5200 VkCommandBuffer commandBuffer,
5201 float minDepthBounds,
5202 float maxDepthBounds);
5203
5204VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilCompareMask(
5205 VkCommandBuffer commandBuffer,
5206 VkStencilFaceFlags faceMask,
5207 uint32_t compareMask);
5208
5209VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilWriteMask(
5210 VkCommandBuffer commandBuffer,
5211 VkStencilFaceFlags faceMask,
5212 uint32_t writeMask);
5213
5214VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilReference(
5215 VkCommandBuffer commandBuffer,
5216 VkStencilFaceFlags faceMask,
5217 uint32_t reference);
5218
5219VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer(
5220 VkCommandBuffer commandBuffer,
5221 VkBuffer buffer,
5222 VkDeviceSize offset,
5223 VkIndexType indexType);
5224
5225VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers(
5226 VkCommandBuffer commandBuffer,
5227 uint32_t firstBinding,
5228 uint32_t bindingCount,
5229 const VkBuffer* pBuffers,
5230 const VkDeviceSize* pOffsets);
5231
5232VKAPI_ATTR void VKAPI_CALL vkCmdDraw(
5233 VkCommandBuffer commandBuffer,
5234 uint32_t vertexCount,
5235 uint32_t instanceCount,
5236 uint32_t firstVertex,
5237 uint32_t firstInstance);
5238
5239VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexed(
5240 VkCommandBuffer commandBuffer,
5241 uint32_t indexCount,
5242 uint32_t instanceCount,
5243 uint32_t firstIndex,
5244 int32_t vertexOffset,
5245 uint32_t firstInstance);
5246
5247VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirect(
5248 VkCommandBuffer commandBuffer,
5249 VkBuffer buffer,
5250 VkDeviceSize offset,
5251 uint32_t drawCount,
5252 uint32_t stride);
5253
5254VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirect(
5255 VkCommandBuffer commandBuffer,
5256 VkBuffer buffer,
5257 VkDeviceSize offset,
5258 uint32_t drawCount,
5259 uint32_t stride);
5260
5261VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage(
5262 VkCommandBuffer commandBuffer,
5263 VkImage srcImage,
5264 VkImageLayout srcImageLayout,
5265 VkImage dstImage,
5266 VkImageLayout dstImageLayout,
5267 uint32_t regionCount,
5268 const VkImageBlit* pRegions,
5269 VkFilter filter);
5270
5271VKAPI_ATTR void VKAPI_CALL vkCmdClearDepthStencilImage(
5272 VkCommandBuffer commandBuffer,
5273 VkImage image,
5274 VkImageLayout imageLayout,
5275 const VkClearDepthStencilValue* pDepthStencil,
5276 uint32_t rangeCount,
5277 const VkImageSubresourceRange* pRanges);
5278
5279VKAPI_ATTR void VKAPI_CALL vkCmdClearAttachments(
5280 VkCommandBuffer commandBuffer,
5281 uint32_t attachmentCount,
5282 const VkClearAttachment* pAttachments,
5283 uint32_t rectCount,
5284 const VkClearRect* pRects);
5285
5286VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage(
5287 VkCommandBuffer commandBuffer,
5288 VkImage srcImage,
5289 VkImageLayout srcImageLayout,
5290 VkImage dstImage,
5291 VkImageLayout dstImageLayout,
5292 uint32_t regionCount,
5293 const VkImageResolve* pRegions);
5294
5295VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass(
5296 VkCommandBuffer commandBuffer,
5297 const VkRenderPassBeginInfo* pRenderPassBegin,
5298 VkSubpassContents contents);
5299
5300VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass(
5301 VkCommandBuffer commandBuffer,
5302 VkSubpassContents contents);
5303
5304VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass(
5305 VkCommandBuffer commandBuffer);
5306#endif
5307
5308
5309// VK_VERSION_1_1 is a preprocessor guard. Do not pass it to API calls.
5310#define VK_VERSION_1_1 1
5311// Vulkan 1.1 version number
5312#define VK_API_VERSION_1_1 VK_MAKE_API_VERSION(0, 1, 1, 0)// Patch version should always be set to 0
5313
5314VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorUpdateTemplate)
5315VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSamplerYcbcrConversion)
5316#define VK_MAX_DEVICE_GROUP_SIZE 32U
5317#define VK_LUID_SIZE 8U
5318#define VK_QUEUE_FAMILY_EXTERNAL (~1U)
5319
5320typedef enum VkDescriptorUpdateTemplateType {
5321 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0,
5322 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS = 1,
5323 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS,
5324 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,
5325 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM = 0x7FFFFFFF
5326} VkDescriptorUpdateTemplateType;
5327
5328typedef enum VkSamplerYcbcrModelConversion {
5329 VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = 0,
5330 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = 1,
5331 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = 2,
5332 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = 3,
5333 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4,
5334 VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY,
5335 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY,
5336 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709,
5337 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601,
5338 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020,
5339 VK_SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM = 0x7FFFFFFF
5340} VkSamplerYcbcrModelConversion;
5341
5342typedef enum VkSamplerYcbcrRange {
5343 VK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0,
5344 VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1,
5345 VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_FULL,
5346 VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW,
5347 VK_SAMPLER_YCBCR_RANGE_MAX_ENUM = 0x7FFFFFFF
5348} VkSamplerYcbcrRange;
5349
5350typedef enum VkChromaLocation {
5351 VK_CHROMA_LOCATION_COSITED_EVEN = 0,
5352 VK_CHROMA_LOCATION_MIDPOINT = 1,
5353 VK_CHROMA_LOCATION_COSITED_EVEN_KHR = VK_CHROMA_LOCATION_COSITED_EVEN,
5354 VK_CHROMA_LOCATION_MIDPOINT_KHR = VK_CHROMA_LOCATION_MIDPOINT,
5355 VK_CHROMA_LOCATION_MAX_ENUM = 0x7FFFFFFF
5356} VkChromaLocation;
5357
5358typedef enum VkPointClippingBehavior {
5359 VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0,
5360 VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1,
5361 VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES,
5362 VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY,
5363 VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM = 0x7FFFFFFF
5364} VkPointClippingBehavior;
5365
5366typedef enum VkTessellationDomainOrigin {
5367 VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0,
5368 VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1,
5369 VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT,
5370 VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT,
5371 VK_TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM = 0x7FFFFFFF
5372} VkTessellationDomainOrigin;
5373
5374typedef enum VkPeerMemoryFeatureFlagBits {
5375 VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 0x00000001,
5376 VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 0x00000002,
5377 VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 0x00000004,
5378 VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 0x00000008,
5379 VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT,
5380 VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_DST_BIT,
5381 VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT,
5382 VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT,
5383 VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5384} VkPeerMemoryFeatureFlagBits;
5385typedef VkFlags VkPeerMemoryFeatureFlags;
5386
5387typedef enum VkMemoryAllocateFlagBits {
5388 VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 0x00000001,
5389 VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT = 0x00000002,
5390 VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0x00000004,
5391 VK_MEMORY_ALLOCATE_ZERO_INITIALIZE_BIT_EXT = 0x00000008,
5392 VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT,
5393 VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT,
5394 VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
5395 VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5396} VkMemoryAllocateFlagBits;
5397typedef VkFlags VkMemoryAllocateFlags;
5398typedef VkFlags VkCommandPoolTrimFlags;
5399
5400typedef enum VkExternalMemoryHandleTypeFlagBits {
5401 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
5402 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
5403 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
5404 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 0x00000008,
5405 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 0x00000010,
5406 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 0x00000020,
5407 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0x00000040,
5408 VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 0x00000200,
5409 VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0x00000400,
5410 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080,
5411 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100,
5412 VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA = 0x00000800,
5413 VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV = 0x00001000,
5414 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OH_NATIVE_BUFFER_BIT_OHOS = 0x00008000,
5415 VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX = 0x00004000,
5416 VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLBUFFER_BIT_EXT = 0x00010000,
5417 VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLTEXTURE_BIT_EXT = 0x00020000,
5418 VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLHEAP_BIT_EXT = 0x00040000,
5419 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,
5420 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,
5421 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
5422 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT,
5423 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT,
5424 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT,
5425 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT,
5426 VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5427} VkExternalMemoryHandleTypeFlagBits;
5428typedef VkFlags VkExternalMemoryHandleTypeFlags;
5429
5430typedef enum VkExternalMemoryFeatureFlagBits {
5431 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 0x00000001,
5432 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 0x00000002,
5433 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 0x00000004,
5434 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT,
5435 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT,
5436 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT,
5437 VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5438} VkExternalMemoryFeatureFlagBits;
5439typedef VkFlags VkExternalMemoryFeatureFlags;
5440
5441typedef enum VkExternalFenceHandleTypeFlagBits {
5442 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
5443 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
5444 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
5445 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000008,
5446 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT,
5447 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
5448 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
5449 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT,
5450 VK_EXTERNAL_FENCE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5451} VkExternalFenceHandleTypeFlagBits;
5452typedef VkFlags VkExternalFenceHandleTypeFlags;
5453
5454typedef enum VkExternalFenceFeatureFlagBits {
5455 VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 0x00000001,
5456 VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 0x00000002,
5457 VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT,
5458 VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT,
5459 VK_EXTERNAL_FENCE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5460} VkExternalFenceFeatureFlagBits;
5461typedef VkFlags VkExternalFenceFeatureFlags;
5462
5463typedef enum VkFenceImportFlagBits {
5464 VK_FENCE_IMPORT_TEMPORARY_BIT = 0x00000001,
5465 VK_FENCE_IMPORT_TEMPORARY_BIT_KHR = VK_FENCE_IMPORT_TEMPORARY_BIT,
5466 VK_FENCE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5467} VkFenceImportFlagBits;
5468typedef VkFlags VkFenceImportFlags;
5469
5470typedef enum VkSemaphoreImportFlagBits {
5471 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 0x00000001,
5472 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR = VK_SEMAPHORE_IMPORT_TEMPORARY_BIT,
5473 VK_SEMAPHORE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5474} VkSemaphoreImportFlagBits;
5475typedef VkFlags VkSemaphoreImportFlags;
5476
5477typedef enum VkExternalSemaphoreHandleTypeFlagBits {
5478 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
5479 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
5480 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
5481 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0x00000008,
5482 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000010,
5483 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA = 0x00000080,
5484 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
5485 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,
5486 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
5487 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
5488 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
5489 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT,
5490 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5491} VkExternalSemaphoreHandleTypeFlagBits;
5492typedef VkFlags VkExternalSemaphoreHandleTypeFlags;
5493
5494typedef enum VkExternalSemaphoreFeatureFlagBits {
5495 VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 0x00000001,
5496 VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 0x00000002,
5497 VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT,
5498 VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT,
5499 VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5500} VkExternalSemaphoreFeatureFlagBits;
5501typedef VkFlags VkExternalSemaphoreFeatureFlags;
5502
5503typedef enum VkSubgroupFeatureFlagBits {
5504 VK_SUBGROUP_FEATURE_BASIC_BIT = 0x00000001,
5505 VK_SUBGROUP_FEATURE_VOTE_BIT = 0x00000002,
5506 VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 0x00000004,
5507 VK_SUBGROUP_FEATURE_BALLOT_BIT = 0x00000008,
5508 VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 0x00000010,
5509 VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 0x00000020,
5510 VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0x00000040,
5511 VK_SUBGROUP_FEATURE_QUAD_BIT = 0x00000080,
5512 VK_SUBGROUP_FEATURE_ROTATE_BIT = 0x00000200,
5513 VK_SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT = 0x00000400,
5514 VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = 0x00000100,
5515 VK_SUBGROUP_FEATURE_ROTATE_BIT_KHR = VK_SUBGROUP_FEATURE_ROTATE_BIT,
5516 VK_SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT_KHR = VK_SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT,
5517 VK_SUBGROUP_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5518} VkSubgroupFeatureFlagBits;
5519typedef VkFlags VkSubgroupFeatureFlags;
5520typedef VkFlags VkDescriptorUpdateTemplateCreateFlags;
5521typedef struct VkBindBufferMemoryInfo {
5522 VkStructureType sType;
5523 const void* pNext;
5524 VkBuffer buffer;
5525 VkDeviceMemory memory;
5526 VkDeviceSize memoryOffset;
5527} VkBindBufferMemoryInfo;
5528
5529typedef struct VkBindImageMemoryInfo {
5530 VkStructureType sType;
5531 const void* pNext;
5532 VkImage image;
5533 VkDeviceMemory memory;
5534 VkDeviceSize memoryOffset;
5535} VkBindImageMemoryInfo;
5536
5537typedef struct VkMemoryDedicatedRequirements {
5538 VkStructureType sType;
5539 void* pNext;
5540 VkBool32 prefersDedicatedAllocation;
5541 VkBool32 requiresDedicatedAllocation;
5542} VkMemoryDedicatedRequirements;
5543
5544typedef struct VkMemoryDedicatedAllocateInfo {
5545 VkStructureType sType;
5546 const void* pNext;
5547 VkImage image;
5548 VkBuffer buffer;
5549} VkMemoryDedicatedAllocateInfo;
5550
5551typedef struct VkMemoryAllocateFlagsInfo {
5552 VkStructureType sType;
5553 const void* pNext;
5554 VkMemoryAllocateFlags flags;
5555 uint32_t deviceMask;
5556} VkMemoryAllocateFlagsInfo;
5557
5558typedef struct VkDeviceGroupCommandBufferBeginInfo {
5559 VkStructureType sType;
5560 const void* pNext;
5561 uint32_t deviceMask;
5562} VkDeviceGroupCommandBufferBeginInfo;
5563
5564typedef struct VkDeviceGroupSubmitInfo {
5565 VkStructureType sType;
5566 const void* pNext;
5567 uint32_t waitSemaphoreCount;
5568 const uint32_t* pWaitSemaphoreDeviceIndices;
5569 uint32_t commandBufferCount;
5570 const uint32_t* pCommandBufferDeviceMasks;
5571 uint32_t signalSemaphoreCount;
5572 const uint32_t* pSignalSemaphoreDeviceIndices;
5573} VkDeviceGroupSubmitInfo;
5574
5575typedef struct VkDeviceGroupBindSparseInfo {
5576 VkStructureType sType;
5577 const void* pNext;
5578 uint32_t resourceDeviceIndex;
5579 uint32_t memoryDeviceIndex;
5580} VkDeviceGroupBindSparseInfo;
5581
5582typedef struct VkBindBufferMemoryDeviceGroupInfo {
5583 VkStructureType sType;
5584 const void* pNext;
5585 uint32_t deviceIndexCount;
5586 const uint32_t* pDeviceIndices;
5587} VkBindBufferMemoryDeviceGroupInfo;
5588
5589typedef struct VkBindImageMemoryDeviceGroupInfo {
5590 VkStructureType sType;
5591 const void* pNext;
5592 uint32_t deviceIndexCount;
5593 const uint32_t* pDeviceIndices;
5594 uint32_t splitInstanceBindRegionCount;
5595 const VkRect2D* pSplitInstanceBindRegions;
5596} VkBindImageMemoryDeviceGroupInfo;
5597
5598typedef struct VkPhysicalDeviceGroupProperties {
5599 VkStructureType sType;
5600 void* pNext;
5601 uint32_t physicalDeviceCount;
5602 VkPhysicalDevice physicalDevices[VK_MAX_DEVICE_GROUP_SIZE];
5603 VkBool32 subsetAllocation;
5604} VkPhysicalDeviceGroupProperties;
5605
5606typedef struct VkDeviceGroupDeviceCreateInfo {
5607 VkStructureType sType;
5608 const void* pNext;
5609 uint32_t physicalDeviceCount;
5610 const VkPhysicalDevice* pPhysicalDevices;
5611} VkDeviceGroupDeviceCreateInfo;
5612
5613typedef struct VkBufferMemoryRequirementsInfo2 {
5614 VkStructureType sType;
5615 const void* pNext;
5616 VkBuffer buffer;
5617} VkBufferMemoryRequirementsInfo2;
5618
5619typedef struct VkImageMemoryRequirementsInfo2 {
5620 VkStructureType sType;
5621 const void* pNext;
5622 VkImage image;
5623} VkImageMemoryRequirementsInfo2;
5624
5625typedef struct VkImageSparseMemoryRequirementsInfo2 {
5626 VkStructureType sType;
5627 const void* pNext;
5628 VkImage image;
5629} VkImageSparseMemoryRequirementsInfo2;
5630
5631typedef struct VkMemoryRequirements2 {
5632 VkStructureType sType;
5633 void* pNext;
5634 VkMemoryRequirements memoryRequirements;
5635} VkMemoryRequirements2;
5636
5637typedef struct VkSparseImageMemoryRequirements2 {
5638 VkStructureType sType;
5639 void* pNext;
5640 VkSparseImageMemoryRequirements memoryRequirements;
5641} VkSparseImageMemoryRequirements2;
5642
5643typedef struct VkPhysicalDeviceFeatures2 {
5644 VkStructureType sType;
5645 void* pNext;
5646 VkPhysicalDeviceFeatures features;
5647} VkPhysicalDeviceFeatures2;
5648
5649typedef struct VkPhysicalDeviceProperties2 {
5650 VkStructureType sType;
5651 void* pNext;
5652 VkPhysicalDeviceProperties properties;
5653} VkPhysicalDeviceProperties2;
5654
5655typedef struct VkFormatProperties2 {
5656 VkStructureType sType;
5657 void* pNext;
5658 VkFormatProperties formatProperties;
5659} VkFormatProperties2;
5660
5661typedef struct VkImageFormatProperties2 {
5662 VkStructureType sType;
5663 void* pNext;
5664 VkImageFormatProperties imageFormatProperties;
5665} VkImageFormatProperties2;
5666
5667typedef struct VkPhysicalDeviceImageFormatInfo2 {
5668 VkStructureType sType;
5669 const void* pNext;
5670 VkFormat format;
5671 VkImageType type;
5672 VkImageTiling tiling;
5673 VkImageUsageFlags usage;
5674 VkImageCreateFlags flags;
5675} VkPhysicalDeviceImageFormatInfo2;
5676
5677typedef struct VkQueueFamilyProperties2 {
5678 VkStructureType sType;
5679 void* pNext;
5680 VkQueueFamilyProperties queueFamilyProperties;
5681} VkQueueFamilyProperties2;
5682
5683typedef struct VkPhysicalDeviceMemoryProperties2 {
5684 VkStructureType sType;
5685 void* pNext;
5686 VkPhysicalDeviceMemoryProperties memoryProperties;
5687} VkPhysicalDeviceMemoryProperties2;
5688
5689typedef struct VkSparseImageFormatProperties2 {
5690 VkStructureType sType;
5691 void* pNext;
5692 VkSparseImageFormatProperties properties;
5693} VkSparseImageFormatProperties2;
5694
5695typedef struct VkPhysicalDeviceSparseImageFormatInfo2 {
5696 VkStructureType sType;
5697 const void* pNext;
5698 VkFormat format;
5699 VkImageType type;
5700 VkSampleCountFlagBits samples;
5701 VkImageUsageFlags usage;
5702 VkImageTiling tiling;
5703} VkPhysicalDeviceSparseImageFormatInfo2;
5704
5705typedef struct VkImageViewUsageCreateInfo {
5706 VkStructureType sType;
5707 const void* pNext;
5708 VkImageUsageFlags usage;
5709} VkImageViewUsageCreateInfo;
5710
5711typedef struct VkPhysicalDeviceProtectedMemoryFeatures {
5712 VkStructureType sType;
5713 void* pNext;
5714 VkBool32 protectedMemory;
5715} VkPhysicalDeviceProtectedMemoryFeatures;
5716
5717typedef struct VkPhysicalDeviceProtectedMemoryProperties {
5718 VkStructureType sType;
5719 void* pNext;
5720 VkBool32 protectedNoFault;
5721} VkPhysicalDeviceProtectedMemoryProperties;
5722
5723typedef struct VkDeviceQueueInfo2 {
5724 VkStructureType sType;
5725 const void* pNext;
5726 VkDeviceQueueCreateFlags flags;
5727 uint32_t queueFamilyIndex;
5728 uint32_t queueIndex;
5729} VkDeviceQueueInfo2;
5730
5731typedef struct VkProtectedSubmitInfo {
5732 VkStructureType sType;
5733 const void* pNext;
5734 VkBool32 protectedSubmit;
5735} VkProtectedSubmitInfo;
5736
5737typedef struct VkBindImagePlaneMemoryInfo {
5738 VkStructureType sType;
5739 const void* pNext;
5740 VkImageAspectFlagBits planeAspect;
5741} VkBindImagePlaneMemoryInfo;
5742
5743typedef struct VkImagePlaneMemoryRequirementsInfo {
5744 VkStructureType sType;
5745 const void* pNext;
5746 VkImageAspectFlagBits planeAspect;
5747} VkImagePlaneMemoryRequirementsInfo;
5748
5749typedef struct VkExternalMemoryProperties {
5750 VkExternalMemoryFeatureFlags externalMemoryFeatures;
5751 VkExternalMemoryHandleTypeFlags exportFromImportedHandleTypes;
5752 VkExternalMemoryHandleTypeFlags compatibleHandleTypes;
5753} VkExternalMemoryProperties;
5754
5755typedef struct VkPhysicalDeviceExternalImageFormatInfo {
5756 VkStructureType sType;
5757 const void* pNext;
5758 VkExternalMemoryHandleTypeFlagBits handleType;
5759} VkPhysicalDeviceExternalImageFormatInfo;
5760
5761typedef struct VkExternalImageFormatProperties {
5762 VkStructureType sType;
5763 void* pNext;
5764 VkExternalMemoryProperties externalMemoryProperties;
5765} VkExternalImageFormatProperties;
5766
5767typedef struct VkPhysicalDeviceExternalBufferInfo {
5768 VkStructureType sType;
5769 const void* pNext;
5770 VkBufferCreateFlags flags;
5771 VkBufferUsageFlags usage;
5772 VkExternalMemoryHandleTypeFlagBits handleType;
5773} VkPhysicalDeviceExternalBufferInfo;
5774
5775typedef struct VkExternalBufferProperties {
5776 VkStructureType sType;
5777 void* pNext;
5778 VkExternalMemoryProperties externalMemoryProperties;
5779} VkExternalBufferProperties;
5780
5781typedef struct VkPhysicalDeviceIDProperties {
5782 VkStructureType sType;
5783 void* pNext;
5784 uint8_t deviceUUID[VK_UUID_SIZE];
5785 uint8_t driverUUID[VK_UUID_SIZE];
5786 uint8_t deviceLUID[VK_LUID_SIZE];
5787 uint32_t deviceNodeMask;
5788 VkBool32 deviceLUIDValid;
5789} VkPhysicalDeviceIDProperties;
5790
5791typedef struct VkExternalMemoryImageCreateInfo {
5792 VkStructureType sType;
5793 const void* pNext;
5794 VkExternalMemoryHandleTypeFlags handleTypes;
5795} VkExternalMemoryImageCreateInfo;
5796
5797typedef struct VkExternalMemoryBufferCreateInfo {
5798 VkStructureType sType;
5799 const void* pNext;
5800 VkExternalMemoryHandleTypeFlags handleTypes;
5801} VkExternalMemoryBufferCreateInfo;
5802
5803typedef struct VkExportMemoryAllocateInfo {
5804 VkStructureType sType;
5805 const void* pNext;
5806 VkExternalMemoryHandleTypeFlags handleTypes;
5807} VkExportMemoryAllocateInfo;
5808
5809typedef struct VkPhysicalDeviceExternalFenceInfo {
5810 VkStructureType sType;
5811 const void* pNext;
5812 VkExternalFenceHandleTypeFlagBits handleType;
5813} VkPhysicalDeviceExternalFenceInfo;
5814
5815typedef struct VkExternalFenceProperties {
5816 VkStructureType sType;
5817 void* pNext;
5818 VkExternalFenceHandleTypeFlags exportFromImportedHandleTypes;
5819 VkExternalFenceHandleTypeFlags compatibleHandleTypes;
5820 VkExternalFenceFeatureFlags externalFenceFeatures;
5821} VkExternalFenceProperties;
5822
5823typedef struct VkExportFenceCreateInfo {
5824 VkStructureType sType;
5825 const void* pNext;
5826 VkExternalFenceHandleTypeFlags handleTypes;
5827} VkExportFenceCreateInfo;
5828
5829typedef struct VkExportSemaphoreCreateInfo {
5830 VkStructureType sType;
5831 const void* pNext;
5832 VkExternalSemaphoreHandleTypeFlags handleTypes;
5833} VkExportSemaphoreCreateInfo;
5834
5835typedef struct VkPhysicalDeviceExternalSemaphoreInfo {
5836 VkStructureType sType;
5837 const void* pNext;
5838 VkExternalSemaphoreHandleTypeFlagBits handleType;
5839} VkPhysicalDeviceExternalSemaphoreInfo;
5840
5841typedef struct VkExternalSemaphoreProperties {
5842 VkStructureType sType;
5843 void* pNext;
5844 VkExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes;
5845 VkExternalSemaphoreHandleTypeFlags compatibleHandleTypes;
5846 VkExternalSemaphoreFeatureFlags externalSemaphoreFeatures;
5847} VkExternalSemaphoreProperties;
5848
5849typedef struct VkPhysicalDeviceSubgroupProperties {
5850 VkStructureType sType;
5851 void* pNext;
5852 uint32_t subgroupSize;
5853 VkShaderStageFlags supportedStages;
5854 VkSubgroupFeatureFlags supportedOperations;
5855 VkBool32 quadOperationsInAllStages;
5856} VkPhysicalDeviceSubgroupProperties;
5857
5858typedef struct VkPhysicalDevice16BitStorageFeatures {
5859 VkStructureType sType;
5860 void* pNext;
5861 VkBool32 storageBuffer16BitAccess;
5862 VkBool32 uniformAndStorageBuffer16BitAccess;
5863 VkBool32 storagePushConstant16;
5864 VkBool32 storageInputOutput16;
5865} VkPhysicalDevice16BitStorageFeatures;
5866
5867typedef struct VkPhysicalDeviceVariablePointersFeatures {
5868 VkStructureType sType;
5869 void* pNext;
5870 VkBool32 variablePointersStorageBuffer;
5871 VkBool32 variablePointers;
5872} VkPhysicalDeviceVariablePointersFeatures;
5873
5874typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeatures;
5875
5876typedef struct VkDescriptorUpdateTemplateEntry {
5877 uint32_t dstBinding;
5878 uint32_t dstArrayElement;
5879 uint32_t descriptorCount;
5880 VkDescriptorType descriptorType;
5881 size_t offset;
5882 size_t stride;
5883} VkDescriptorUpdateTemplateEntry;
5884
5885typedef struct VkDescriptorUpdateTemplateCreateInfo {
5886 VkStructureType sType;
5887 const void* pNext;
5888 VkDescriptorUpdateTemplateCreateFlags flags;
5889 uint32_t descriptorUpdateEntryCount;
5890 const VkDescriptorUpdateTemplateEntry* pDescriptorUpdateEntries;
5891 VkDescriptorUpdateTemplateType templateType;
5892 VkDescriptorSetLayout descriptorSetLayout;
5893 VkPipelineBindPoint pipelineBindPoint;
5894 VkPipelineLayout pipelineLayout;
5895 uint32_t set;
5896} VkDescriptorUpdateTemplateCreateInfo;
5897
5898typedef struct VkPhysicalDeviceMaintenance3Properties {
5899 VkStructureType sType;
5900 void* pNext;
5901 uint32_t maxPerSetDescriptors;
5902 VkDeviceSize maxMemoryAllocationSize;
5903} VkPhysicalDeviceMaintenance3Properties;
5904
5905typedef struct VkDescriptorSetLayoutSupport {
5906 VkStructureType sType;
5907 void* pNext;
5908 VkBool32 supported;
5909} VkDescriptorSetLayoutSupport;
5910
5911typedef struct VkSamplerYcbcrConversionCreateInfo {
5912 VkStructureType sType;
5913 const void* pNext;
5914 VkFormat format;
5915 VkSamplerYcbcrModelConversion ycbcrModel;
5916 VkSamplerYcbcrRange ycbcrRange;
5917 VkComponentMapping components;
5918 VkChromaLocation xChromaOffset;
5919 VkChromaLocation yChromaOffset;
5920 VkFilter chromaFilter;
5921 VkBool32 forceExplicitReconstruction;
5922} VkSamplerYcbcrConversionCreateInfo;
5923
5924typedef struct VkSamplerYcbcrConversionInfo {
5925 VkStructureType sType;
5926 const void* pNext;
5927 VkSamplerYcbcrConversion conversion;
5928} VkSamplerYcbcrConversionInfo;
5929
5930typedef struct VkPhysicalDeviceSamplerYcbcrConversionFeatures {
5931 VkStructureType sType;
5932 void* pNext;
5933 VkBool32 samplerYcbcrConversion;
5934} VkPhysicalDeviceSamplerYcbcrConversionFeatures;
5935
5936typedef struct VkSamplerYcbcrConversionImageFormatProperties {
5937 VkStructureType sType;
5938 void* pNext;
5939 uint32_t combinedImageSamplerDescriptorCount;
5940} VkSamplerYcbcrConversionImageFormatProperties;
5941
5942typedef struct VkDeviceGroupRenderPassBeginInfo {
5943 VkStructureType sType;
5944 const void* pNext;
5945 uint32_t deviceMask;
5946 uint32_t deviceRenderAreaCount;
5947 const VkRect2D* pDeviceRenderAreas;
5948} VkDeviceGroupRenderPassBeginInfo;
5949
5950typedef struct VkPhysicalDevicePointClippingProperties {
5951 VkStructureType sType;
5952 void* pNext;
5953 VkPointClippingBehavior pointClippingBehavior;
5954} VkPhysicalDevicePointClippingProperties;
5955
5956typedef struct VkInputAttachmentAspectReference {
5957 uint32_t subpass;
5958 uint32_t inputAttachmentIndex;
5959 VkImageAspectFlags aspectMask;
5960} VkInputAttachmentAspectReference;
5961
5962typedef struct VkRenderPassInputAttachmentAspectCreateInfo {
5963 VkStructureType sType;
5964 const void* pNext;
5965 uint32_t aspectReferenceCount;
5966 const VkInputAttachmentAspectReference* pAspectReferences;
5967} VkRenderPassInputAttachmentAspectCreateInfo;
5968
5969typedef struct VkPipelineTessellationDomainOriginStateCreateInfo {
5970 VkStructureType sType;
5971 const void* pNext;
5972 VkTessellationDomainOrigin domainOrigin;
5973} VkPipelineTessellationDomainOriginStateCreateInfo;
5974
5975typedef struct VkRenderPassMultiviewCreateInfo {
5976 VkStructureType sType;
5977 const void* pNext;
5978 uint32_t subpassCount;
5979 const uint32_t* pViewMasks;
5980 uint32_t dependencyCount;
5981 const int32_t* pViewOffsets;
5982 uint32_t correlationMaskCount;
5983 const uint32_t* pCorrelationMasks;
5984} VkRenderPassMultiviewCreateInfo;
5985
5986typedef struct VkPhysicalDeviceMultiviewFeatures {
5987 VkStructureType sType;
5988 void* pNext;
5989 VkBool32 multiview;
5990 VkBool32 multiviewGeometryShader;
5991 VkBool32 multiviewTessellationShader;
5992} VkPhysicalDeviceMultiviewFeatures;
5993
5994typedef struct VkPhysicalDeviceMultiviewProperties {
5995 VkStructureType sType;
5996 void* pNext;
5997 uint32_t maxMultiviewViewCount;
5998 uint32_t maxMultiviewInstanceIndex;
5999} VkPhysicalDeviceMultiviewProperties;
6000
6001typedef struct VkPhysicalDeviceShaderDrawParametersFeatures {
6002 VkStructureType sType;
6003 void* pNext;
6004 VkBool32 shaderDrawParameters;
6005} VkPhysicalDeviceShaderDrawParametersFeatures;
6006
6007typedef VkPhysicalDeviceShaderDrawParametersFeatures VkPhysicalDeviceShaderDrawParameterFeatures;
6008
6009typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceVersion)(uint32_t* pApiVersion);
6010typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos);
6011typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos);
6012typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeatures)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
6013typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMask)(VkCommandBuffer commandBuffer, uint32_t deviceMask);
6014typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroups)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
6015typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
6016typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
6017typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
6018typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures);
6019typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties);
6020typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties);
6021typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties);
6022typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties);
6023typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
6024typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties);
6025typedef void (VKAPI_PTR *PFN_vkTrimCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
6026typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue2)(VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue);
6027typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties);
6028typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFenceProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties);
6029typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphoreProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
6030typedef void (VKAPI_PTR *PFN_vkCmdDispatchBase)(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
6031typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplate)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
6032typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplate)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
6033typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplate)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData);
6034typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupport)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport);
6035typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversion)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion);
6036typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversion)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator);
6037
6038#ifndef VK_NO_PROTOTYPES
6039VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceVersion(
6040 uint32_t* pApiVersion);
6041
6042VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2(
6043 VkDevice device,
6044 uint32_t bindInfoCount,
6045 const VkBindBufferMemoryInfo* pBindInfos);
6046
6047VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2(
6048 VkDevice device,
6049 uint32_t bindInfoCount,
6050 const VkBindImageMemoryInfo* pBindInfos);
6051
6052VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeatures(
6053 VkDevice device,
6054 uint32_t heapIndex,
6055 uint32_t localDeviceIndex,
6056 uint32_t remoteDeviceIndex,
6057 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
6058
6059VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMask(
6060 VkCommandBuffer commandBuffer,
6061 uint32_t deviceMask);
6062
6063VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroups(
6064 VkInstance instance,
6065 uint32_t* pPhysicalDeviceGroupCount,
6066 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
6067
6068VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2(
6069 VkDevice device,
6070 const VkImageMemoryRequirementsInfo2* pInfo,
6071 VkMemoryRequirements2* pMemoryRequirements);
6072
6073VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2(
6074 VkDevice device,
6075 const VkBufferMemoryRequirementsInfo2* pInfo,
6076 VkMemoryRequirements2* pMemoryRequirements);
6077
6078VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2(
6079 VkDevice device,
6080 const VkImageSparseMemoryRequirementsInfo2* pInfo,
6081 uint32_t* pSparseMemoryRequirementCount,
6082 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
6083
6084VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2(
6085 VkPhysicalDevice physicalDevice,
6086 VkPhysicalDeviceFeatures2* pFeatures);
6087
6088VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2(
6089 VkPhysicalDevice physicalDevice,
6090 VkPhysicalDeviceProperties2* pProperties);
6091
6092VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2(
6093 VkPhysicalDevice physicalDevice,
6094 VkFormat format,
6095 VkFormatProperties2* pFormatProperties);
6096
6097VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2(
6098 VkPhysicalDevice physicalDevice,
6099 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
6100 VkImageFormatProperties2* pImageFormatProperties);
6101
6102VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2(
6103 VkPhysicalDevice physicalDevice,
6104 uint32_t* pQueueFamilyPropertyCount,
6105 VkQueueFamilyProperties2* pQueueFamilyProperties);
6106
6107VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2(
6108 VkPhysicalDevice physicalDevice,
6109 VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
6110
6111VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2(
6112 VkPhysicalDevice physicalDevice,
6113 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
6114 uint32_t* pPropertyCount,
6115 VkSparseImageFormatProperties2* pProperties);
6116
6117VKAPI_ATTR void VKAPI_CALL vkTrimCommandPool(
6118 VkDevice device,
6119 VkCommandPool commandPool,
6120 VkCommandPoolTrimFlags flags);
6121
6122VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue2(
6123 VkDevice device,
6124 const VkDeviceQueueInfo2* pQueueInfo,
6125 VkQueue* pQueue);
6126
6127VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferProperties(
6128 VkPhysicalDevice physicalDevice,
6129 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
6130 VkExternalBufferProperties* pExternalBufferProperties);
6131
6132VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFenceProperties(
6133 VkPhysicalDevice physicalDevice,
6134 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
6135 VkExternalFenceProperties* pExternalFenceProperties);
6136
6137VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphoreProperties(
6138 VkPhysicalDevice physicalDevice,
6139 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
6140 VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
6141
6142VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBase(
6143 VkCommandBuffer commandBuffer,
6144 uint32_t baseGroupX,
6145 uint32_t baseGroupY,
6146 uint32_t baseGroupZ,
6147 uint32_t groupCountX,
6148 uint32_t groupCountY,
6149 uint32_t groupCountZ);
6150
6151VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplate(
6152 VkDevice device,
6153 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
6154 const VkAllocationCallbacks* pAllocator,
6155 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
6156
6157VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplate(
6158 VkDevice device,
6159 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
6160 const VkAllocationCallbacks* pAllocator);
6161
6162VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplate(
6163 VkDevice device,
6164 VkDescriptorSet descriptorSet,
6165 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
6166 const void* pData);
6167
6168VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupport(
6169 VkDevice device,
6170 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
6171 VkDescriptorSetLayoutSupport* pSupport);
6172
6173VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversion(
6174 VkDevice device,
6175 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
6176 const VkAllocationCallbacks* pAllocator,
6177 VkSamplerYcbcrConversion* pYcbcrConversion);
6178
6179VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversion(
6180 VkDevice device,
6181 VkSamplerYcbcrConversion ycbcrConversion,
6182 const VkAllocationCallbacks* pAllocator);
6183#endif
6184
6185
6186// VK_VERSION_1_2 is a preprocessor guard. Do not pass it to API calls.
6187#define VK_VERSION_1_2 1
6188// Vulkan 1.2 version number
6189#define VK_API_VERSION_1_2 VK_MAKE_API_VERSION(0, 1, 2, 0)// Patch version should always be set to 0
6190
6191#define VK_MAX_DRIVER_NAME_SIZE 256U
6192#define VK_MAX_DRIVER_INFO_SIZE 256U
6193
6194typedef enum VkDriverId {
6195 VK_DRIVER_ID_AMD_PROPRIETARY = 1,
6196 VK_DRIVER_ID_AMD_OPEN_SOURCE = 2,
6197 VK_DRIVER_ID_MESA_RADV = 3,
6198 VK_DRIVER_ID_NVIDIA_PROPRIETARY = 4,
6199 VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS = 5,
6200 VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA = 6,
6201 VK_DRIVER_ID_IMAGINATION_PROPRIETARY = 7,
6202 VK_DRIVER_ID_QUALCOMM_PROPRIETARY = 8,
6203 VK_DRIVER_ID_ARM_PROPRIETARY = 9,
6204 VK_DRIVER_ID_GOOGLE_SWIFTSHADER = 10,
6205 VK_DRIVER_ID_GGP_PROPRIETARY = 11,
6206 VK_DRIVER_ID_BROADCOM_PROPRIETARY = 12,
6207 VK_DRIVER_ID_MESA_LLVMPIPE = 13,
6208 VK_DRIVER_ID_MOLTENVK = 14,
6209 VK_DRIVER_ID_COREAVI_PROPRIETARY = 15,
6210 VK_DRIVER_ID_JUICE_PROPRIETARY = 16,
6211 VK_DRIVER_ID_VERISILICON_PROPRIETARY = 17,
6212 VK_DRIVER_ID_MESA_TURNIP = 18,
6213 VK_DRIVER_ID_MESA_V3DV = 19,
6214 VK_DRIVER_ID_MESA_PANVK = 20,
6215 VK_DRIVER_ID_SAMSUNG_PROPRIETARY = 21,
6216 VK_DRIVER_ID_MESA_VENUS = 22,
6217 VK_DRIVER_ID_MESA_DOZEN = 23,
6218 VK_DRIVER_ID_MESA_NVK = 24,
6219 VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA = 25,
6220 VK_DRIVER_ID_MESA_HONEYKRISP = 26,
6221 VK_DRIVER_ID_VULKAN_SC_EMULATION_ON_VULKAN = 27,
6222 VK_DRIVER_ID_MESA_KOSMICKRISP = 28,
6223 VK_DRIVER_ID_AMD_PROPRIETARY_KHR = VK_DRIVER_ID_AMD_PROPRIETARY,
6224 VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = VK_DRIVER_ID_AMD_OPEN_SOURCE,
6225 VK_DRIVER_ID_MESA_RADV_KHR = VK_DRIVER_ID_MESA_RADV,
6226 VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR = VK_DRIVER_ID_NVIDIA_PROPRIETARY,
6227 VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR = VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS,
6228 VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA,
6229 VK_DRIVER_ID_IMAGINATION_PROPRIETARY_KHR = VK_DRIVER_ID_IMAGINATION_PROPRIETARY,
6230 VK_DRIVER_ID_QUALCOMM_PROPRIETARY_KHR = VK_DRIVER_ID_QUALCOMM_PROPRIETARY,
6231 VK_DRIVER_ID_ARM_PROPRIETARY_KHR = VK_DRIVER_ID_ARM_PROPRIETARY,
6232 VK_DRIVER_ID_GOOGLE_SWIFTSHADER_KHR = VK_DRIVER_ID_GOOGLE_SWIFTSHADER,
6233 VK_DRIVER_ID_GGP_PROPRIETARY_KHR = VK_DRIVER_ID_GGP_PROPRIETARY,
6234 VK_DRIVER_ID_BROADCOM_PROPRIETARY_KHR = VK_DRIVER_ID_BROADCOM_PROPRIETARY,
6235 VK_DRIVER_ID_MAX_ENUM = 0x7FFFFFFF
6236} VkDriverId;
6237
6238typedef enum VkShaderFloatControlsIndependence {
6239 VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY = 0,
6240 VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL = 1,
6241 VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE = 2,
6242 VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY,
6243 VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL,
6244 VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE,
6245 VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_MAX_ENUM = 0x7FFFFFFF
6246} VkShaderFloatControlsIndependence;
6247
6248typedef enum VkSemaphoreType {
6249 VK_SEMAPHORE_TYPE_BINARY = 0,
6250 VK_SEMAPHORE_TYPE_TIMELINE = 1,
6251 VK_SEMAPHORE_TYPE_BINARY_KHR = VK_SEMAPHORE_TYPE_BINARY,
6252 VK_SEMAPHORE_TYPE_TIMELINE_KHR = VK_SEMAPHORE_TYPE_TIMELINE,
6253 VK_SEMAPHORE_TYPE_MAX_ENUM = 0x7FFFFFFF
6254} VkSemaphoreType;
6255
6256typedef enum VkSamplerReductionMode {
6257 VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE = 0,
6258 VK_SAMPLER_REDUCTION_MODE_MIN = 1,
6259 VK_SAMPLER_REDUCTION_MODE_MAX = 2,
6260 VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM = 1000521000,
6261 VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE,
6262 VK_SAMPLER_REDUCTION_MODE_MIN_EXT = VK_SAMPLER_REDUCTION_MODE_MIN,
6263 VK_SAMPLER_REDUCTION_MODE_MAX_EXT = VK_SAMPLER_REDUCTION_MODE_MAX,
6264 VK_SAMPLER_REDUCTION_MODE_MAX_ENUM = 0x7FFFFFFF
6265} VkSamplerReductionMode;
6266
6267typedef enum VkResolveModeFlagBits {
6268 VK_RESOLVE_MODE_NONE = 0,
6269 VK_RESOLVE_MODE_SAMPLE_ZERO_BIT = 0x00000001,
6270 VK_RESOLVE_MODE_AVERAGE_BIT = 0x00000002,
6271 VK_RESOLVE_MODE_MIN_BIT = 0x00000004,
6272 VK_RESOLVE_MODE_MAX_BIT = 0x00000008,
6273 VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID = 0x00000010,
6274 VK_RESOLVE_MODE_CUSTOM_BIT_EXT = 0x00000020,
6275 VK_RESOLVE_MODE_NONE_KHR = VK_RESOLVE_MODE_NONE,
6276 VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR = VK_RESOLVE_MODE_SAMPLE_ZERO_BIT,
6277 VK_RESOLVE_MODE_AVERAGE_BIT_KHR = VK_RESOLVE_MODE_AVERAGE_BIT,
6278 VK_RESOLVE_MODE_MIN_BIT_KHR = VK_RESOLVE_MODE_MIN_BIT,
6279 VK_RESOLVE_MODE_MAX_BIT_KHR = VK_RESOLVE_MODE_MAX_BIT,
6280 // VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID is a legacy alias
6281 VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID = VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID,
6282 VK_RESOLVE_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6283} VkResolveModeFlagBits;
6284typedef VkFlags VkResolveModeFlags;
6285
6286typedef enum VkSemaphoreWaitFlagBits {
6287 VK_SEMAPHORE_WAIT_ANY_BIT = 0x00000001,
6288 VK_SEMAPHORE_WAIT_ANY_BIT_KHR = VK_SEMAPHORE_WAIT_ANY_BIT,
6289 VK_SEMAPHORE_WAIT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6290} VkSemaphoreWaitFlagBits;
6291typedef VkFlags VkSemaphoreWaitFlags;
6292
6293typedef enum VkDescriptorBindingFlagBits {
6294 VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT = 0x00000001,
6295 VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT = 0x00000002,
6296 VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT = 0x00000004,
6297 VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT = 0x00000008,
6298 VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT = VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT,
6299 VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT = VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT,
6300 VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT = VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT,
6301 VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT = VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT,
6302 VK_DESCRIPTOR_BINDING_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6303} VkDescriptorBindingFlagBits;
6304typedef VkFlags VkDescriptorBindingFlags;
6305typedef struct VkPhysicalDeviceVulkan11Features {
6306 VkStructureType sType;
6307 void* pNext;
6308 VkBool32 storageBuffer16BitAccess;
6309 VkBool32 uniformAndStorageBuffer16BitAccess;
6310 VkBool32 storagePushConstant16;
6311 VkBool32 storageInputOutput16;
6312 VkBool32 multiview;
6313 VkBool32 multiviewGeometryShader;
6314 VkBool32 multiviewTessellationShader;
6315 VkBool32 variablePointersStorageBuffer;
6316 VkBool32 variablePointers;
6317 VkBool32 protectedMemory;
6318 VkBool32 samplerYcbcrConversion;
6319 VkBool32 shaderDrawParameters;
6320} VkPhysicalDeviceVulkan11Features;
6321
6322typedef struct VkPhysicalDeviceVulkan11Properties {
6323 VkStructureType sType;
6324 void* pNext;
6325 uint8_t deviceUUID[VK_UUID_SIZE];
6326 uint8_t driverUUID[VK_UUID_SIZE];
6327 uint8_t deviceLUID[VK_LUID_SIZE];
6328 uint32_t deviceNodeMask;
6329 VkBool32 deviceLUIDValid;
6330 uint32_t subgroupSize;
6331 VkShaderStageFlags subgroupSupportedStages;
6332 VkSubgroupFeatureFlags subgroupSupportedOperations;
6333 VkBool32 subgroupQuadOperationsInAllStages;
6334 VkPointClippingBehavior pointClippingBehavior;
6335 uint32_t maxMultiviewViewCount;
6336 uint32_t maxMultiviewInstanceIndex;
6337 VkBool32 protectedNoFault;
6338 uint32_t maxPerSetDescriptors;
6339 VkDeviceSize maxMemoryAllocationSize;
6340} VkPhysicalDeviceVulkan11Properties;
6341
6342typedef struct VkPhysicalDeviceVulkan12Features {
6343 VkStructureType sType;
6344 void* pNext;
6345 VkBool32 samplerMirrorClampToEdge;
6346 VkBool32 drawIndirectCount;
6347 VkBool32 storageBuffer8BitAccess;
6348 VkBool32 uniformAndStorageBuffer8BitAccess;
6349 VkBool32 storagePushConstant8;
6350 VkBool32 shaderBufferInt64Atomics;
6351 VkBool32 shaderSharedInt64Atomics;
6352 VkBool32 shaderFloat16;
6353 VkBool32 shaderInt8;
6354 VkBool32 descriptorIndexing;
6355 VkBool32 shaderInputAttachmentArrayDynamicIndexing;
6356 VkBool32 shaderUniformTexelBufferArrayDynamicIndexing;
6357 VkBool32 shaderStorageTexelBufferArrayDynamicIndexing;
6358 VkBool32 shaderUniformBufferArrayNonUniformIndexing;
6359 VkBool32 shaderSampledImageArrayNonUniformIndexing;
6360 VkBool32 shaderStorageBufferArrayNonUniformIndexing;
6361 VkBool32 shaderStorageImageArrayNonUniformIndexing;
6362 VkBool32 shaderInputAttachmentArrayNonUniformIndexing;
6363 VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing;
6364 VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing;
6365 VkBool32 descriptorBindingUniformBufferUpdateAfterBind;
6366 VkBool32 descriptorBindingSampledImageUpdateAfterBind;
6367 VkBool32 descriptorBindingStorageImageUpdateAfterBind;
6368 VkBool32 descriptorBindingStorageBufferUpdateAfterBind;
6369 VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind;
6370 VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind;
6371 VkBool32 descriptorBindingUpdateUnusedWhilePending;
6372 VkBool32 descriptorBindingPartiallyBound;
6373 VkBool32 descriptorBindingVariableDescriptorCount;
6374 VkBool32 runtimeDescriptorArray;
6375 VkBool32 samplerFilterMinmax;
6376 VkBool32 scalarBlockLayout;
6377 VkBool32 imagelessFramebuffer;
6378 VkBool32 uniformBufferStandardLayout;
6379 VkBool32 shaderSubgroupExtendedTypes;
6380 VkBool32 separateDepthStencilLayouts;
6381 VkBool32 hostQueryReset;
6382 VkBool32 timelineSemaphore;
6383 VkBool32 bufferDeviceAddress;
6384 VkBool32 bufferDeviceAddressCaptureReplay;
6385 VkBool32 bufferDeviceAddressMultiDevice;
6386 VkBool32 vulkanMemoryModel;
6387 VkBool32 vulkanMemoryModelDeviceScope;
6388 VkBool32 vulkanMemoryModelAvailabilityVisibilityChains;
6389 VkBool32 shaderOutputViewportIndex;
6390 VkBool32 shaderOutputLayer;
6391 VkBool32 subgroupBroadcastDynamicId;
6392} VkPhysicalDeviceVulkan12Features;
6393
6394typedef struct VkConformanceVersion {
6395 uint8_t major;
6396 uint8_t minor;
6397 uint8_t subminor;
6398 uint8_t patch;
6399} VkConformanceVersion;
6400
6401typedef struct VkPhysicalDeviceVulkan12Properties {
6402 VkStructureType sType;
6403 void* pNext;
6404 VkDriverId driverID;
6405 char driverName[VK_MAX_DRIVER_NAME_SIZE];
6406 char driverInfo[VK_MAX_DRIVER_INFO_SIZE];
6407 VkConformanceVersion conformanceVersion;
6408 VkShaderFloatControlsIndependence denormBehaviorIndependence;
6409 VkShaderFloatControlsIndependence roundingModeIndependence;
6410 VkBool32 shaderSignedZeroInfNanPreserveFloat16;
6411 VkBool32 shaderSignedZeroInfNanPreserveFloat32;
6412 VkBool32 shaderSignedZeroInfNanPreserveFloat64;
6413 VkBool32 shaderDenormPreserveFloat16;
6414 VkBool32 shaderDenormPreserveFloat32;
6415 VkBool32 shaderDenormPreserveFloat64;
6416 VkBool32 shaderDenormFlushToZeroFloat16;
6417 VkBool32 shaderDenormFlushToZeroFloat32;
6418 VkBool32 shaderDenormFlushToZeroFloat64;
6419 VkBool32 shaderRoundingModeRTEFloat16;
6420 VkBool32 shaderRoundingModeRTEFloat32;
6421 VkBool32 shaderRoundingModeRTEFloat64;
6422 VkBool32 shaderRoundingModeRTZFloat16;
6423 VkBool32 shaderRoundingModeRTZFloat32;
6424 VkBool32 shaderRoundingModeRTZFloat64;
6425 uint32_t maxUpdateAfterBindDescriptorsInAllPools;
6426 VkBool32 shaderUniformBufferArrayNonUniformIndexingNative;
6427 VkBool32 shaderSampledImageArrayNonUniformIndexingNative;
6428 VkBool32 shaderStorageBufferArrayNonUniformIndexingNative;
6429 VkBool32 shaderStorageImageArrayNonUniformIndexingNative;
6430 VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative;
6431 VkBool32 robustBufferAccessUpdateAfterBind;
6432 VkBool32 quadDivergentImplicitLod;
6433 uint32_t maxPerStageDescriptorUpdateAfterBindSamplers;
6434 uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers;
6435 uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers;
6436 uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages;
6437 uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages;
6438 uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments;
6439 uint32_t maxPerStageUpdateAfterBindResources;
6440 uint32_t maxDescriptorSetUpdateAfterBindSamplers;
6441 uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers;
6442 uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
6443 uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers;
6444 uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
6445 uint32_t maxDescriptorSetUpdateAfterBindSampledImages;
6446 uint32_t maxDescriptorSetUpdateAfterBindStorageImages;
6447 uint32_t maxDescriptorSetUpdateAfterBindInputAttachments;
6448 VkResolveModeFlags supportedDepthResolveModes;
6449 VkResolveModeFlags supportedStencilResolveModes;
6450 VkBool32 independentResolveNone;
6451 VkBool32 independentResolve;
6452 VkBool32 filterMinmaxSingleComponentFormats;
6453 VkBool32 filterMinmaxImageComponentMapping;
6454 uint64_t maxTimelineSemaphoreValueDifference;
6455 VkSampleCountFlags framebufferIntegerColorSampleCounts;
6456} VkPhysicalDeviceVulkan12Properties;
6457
6458typedef struct VkImageFormatListCreateInfo {
6459 VkStructureType sType;
6460 const void* pNext;
6461 uint32_t viewFormatCount;
6462 const VkFormat* pViewFormats;
6463} VkImageFormatListCreateInfo;
6464
6465typedef struct VkPhysicalDeviceDriverProperties {
6466 VkStructureType sType;
6467 void* pNext;
6468 VkDriverId driverID;
6469 char driverName[VK_MAX_DRIVER_NAME_SIZE];
6470 char driverInfo[VK_MAX_DRIVER_INFO_SIZE];
6471 VkConformanceVersion conformanceVersion;
6472} VkPhysicalDeviceDriverProperties;
6473
6474typedef struct VkPhysicalDeviceVulkanMemoryModelFeatures {
6475 VkStructureType sType;
6476 void* pNext;
6477 VkBool32 vulkanMemoryModel;
6478 VkBool32 vulkanMemoryModelDeviceScope;
6479 VkBool32 vulkanMemoryModelAvailabilityVisibilityChains;
6480} VkPhysicalDeviceVulkanMemoryModelFeatures;
6481
6482typedef struct VkPhysicalDeviceHostQueryResetFeatures {
6483 VkStructureType sType;
6484 void* pNext;
6485 VkBool32 hostQueryReset;
6486} VkPhysicalDeviceHostQueryResetFeatures;
6487
6488typedef struct VkPhysicalDeviceTimelineSemaphoreFeatures {
6489 VkStructureType sType;
6490 void* pNext;
6491 VkBool32 timelineSemaphore;
6492} VkPhysicalDeviceTimelineSemaphoreFeatures;
6493
6494typedef struct VkPhysicalDeviceTimelineSemaphoreProperties {
6495 VkStructureType sType;
6496 void* pNext;
6497 uint64_t maxTimelineSemaphoreValueDifference;
6498} VkPhysicalDeviceTimelineSemaphoreProperties;
6499
6500typedef struct VkSemaphoreTypeCreateInfo {
6501 VkStructureType sType;
6502 const void* pNext;
6503 VkSemaphoreType semaphoreType;
6504 uint64_t initialValue;
6505} VkSemaphoreTypeCreateInfo;
6506
6507typedef struct VkTimelineSemaphoreSubmitInfo {
6508 VkStructureType sType;
6509 const void* pNext;
6510 uint32_t waitSemaphoreValueCount;
6511 const uint64_t* pWaitSemaphoreValues;
6512 uint32_t signalSemaphoreValueCount;
6513 const uint64_t* pSignalSemaphoreValues;
6514} VkTimelineSemaphoreSubmitInfo;
6515
6516typedef struct VkSemaphoreWaitInfo {
6517 VkStructureType sType;
6518 const void* pNext;
6519 VkSemaphoreWaitFlags flags;
6520 uint32_t semaphoreCount;
6521 const VkSemaphore* pSemaphores;
6522 const uint64_t* pValues;
6523} VkSemaphoreWaitInfo;
6524
6525typedef struct VkSemaphoreSignalInfo {
6526 VkStructureType sType;
6527 const void* pNext;
6528 VkSemaphore semaphore;
6529 uint64_t value;
6530} VkSemaphoreSignalInfo;
6531
6532typedef struct VkPhysicalDeviceBufferDeviceAddressFeatures {
6533 VkStructureType sType;
6534 void* pNext;
6535 VkBool32 bufferDeviceAddress;
6536 VkBool32 bufferDeviceAddressCaptureReplay;
6537 VkBool32 bufferDeviceAddressMultiDevice;
6538} VkPhysicalDeviceBufferDeviceAddressFeatures;
6539
6540typedef struct VkBufferDeviceAddressInfo {
6541 VkStructureType sType;
6542 const void* pNext;
6543 VkBuffer buffer;
6544} VkBufferDeviceAddressInfo;
6545
6546typedef struct VkBufferOpaqueCaptureAddressCreateInfo {
6547 VkStructureType sType;
6548 const void* pNext;
6549 uint64_t opaqueCaptureAddress;
6550} VkBufferOpaqueCaptureAddressCreateInfo;
6551
6552typedef struct VkMemoryOpaqueCaptureAddressAllocateInfo {
6553 VkStructureType sType;
6554 const void* pNext;
6555 uint64_t opaqueCaptureAddress;
6556} VkMemoryOpaqueCaptureAddressAllocateInfo;
6557
6558typedef struct VkDeviceMemoryOpaqueCaptureAddressInfo {
6559 VkStructureType sType;
6560 const void* pNext;
6561 VkDeviceMemory memory;
6562} VkDeviceMemoryOpaqueCaptureAddressInfo;
6563
6564typedef struct VkPhysicalDevice8BitStorageFeatures {
6565 VkStructureType sType;
6566 void* pNext;
6567 VkBool32 storageBuffer8BitAccess;
6568 VkBool32 uniformAndStorageBuffer8BitAccess;
6569 VkBool32 storagePushConstant8;
6570} VkPhysicalDevice8BitStorageFeatures;
6571
6572typedef struct VkPhysicalDeviceShaderAtomicInt64Features {
6573 VkStructureType sType;
6574 void* pNext;
6575 VkBool32 shaderBufferInt64Atomics;
6576 VkBool32 shaderSharedInt64Atomics;
6577} VkPhysicalDeviceShaderAtomicInt64Features;
6578
6579typedef struct VkPhysicalDeviceShaderFloat16Int8Features {
6580 VkStructureType sType;
6581 void* pNext;
6582 VkBool32 shaderFloat16;
6583 VkBool32 shaderInt8;
6584} VkPhysicalDeviceShaderFloat16Int8Features;
6585
6586typedef struct VkPhysicalDeviceFloatControlsProperties {
6587 VkStructureType sType;
6588 void* pNext;
6589 VkShaderFloatControlsIndependence denormBehaviorIndependence;
6590 VkShaderFloatControlsIndependence roundingModeIndependence;
6591 VkBool32 shaderSignedZeroInfNanPreserveFloat16;
6592 VkBool32 shaderSignedZeroInfNanPreserveFloat32;
6593 VkBool32 shaderSignedZeroInfNanPreserveFloat64;
6594 VkBool32 shaderDenormPreserveFloat16;
6595 VkBool32 shaderDenormPreserveFloat32;
6596 VkBool32 shaderDenormPreserveFloat64;
6597 VkBool32 shaderDenormFlushToZeroFloat16;
6598 VkBool32 shaderDenormFlushToZeroFloat32;
6599 VkBool32 shaderDenormFlushToZeroFloat64;
6600 VkBool32 shaderRoundingModeRTEFloat16;
6601 VkBool32 shaderRoundingModeRTEFloat32;
6602 VkBool32 shaderRoundingModeRTEFloat64;
6603 VkBool32 shaderRoundingModeRTZFloat16;
6604 VkBool32 shaderRoundingModeRTZFloat32;
6605 VkBool32 shaderRoundingModeRTZFloat64;
6606} VkPhysicalDeviceFloatControlsProperties;
6607
6608typedef struct VkDescriptorSetLayoutBindingFlagsCreateInfo {
6609 VkStructureType sType;
6610 const void* pNext;
6611 uint32_t bindingCount;
6612 const VkDescriptorBindingFlags* pBindingFlags;
6613} VkDescriptorSetLayoutBindingFlagsCreateInfo;
6614
6615typedef struct VkPhysicalDeviceDescriptorIndexingFeatures {
6616 VkStructureType sType;
6617 void* pNext;
6618 VkBool32 shaderInputAttachmentArrayDynamicIndexing;
6619 VkBool32 shaderUniformTexelBufferArrayDynamicIndexing;
6620 VkBool32 shaderStorageTexelBufferArrayDynamicIndexing;
6621 VkBool32 shaderUniformBufferArrayNonUniformIndexing;
6622 VkBool32 shaderSampledImageArrayNonUniformIndexing;
6623 VkBool32 shaderStorageBufferArrayNonUniformIndexing;
6624 VkBool32 shaderStorageImageArrayNonUniformIndexing;
6625 VkBool32 shaderInputAttachmentArrayNonUniformIndexing;
6626 VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing;
6627 VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing;
6628 VkBool32 descriptorBindingUniformBufferUpdateAfterBind;
6629 VkBool32 descriptorBindingSampledImageUpdateAfterBind;
6630 VkBool32 descriptorBindingStorageImageUpdateAfterBind;
6631 VkBool32 descriptorBindingStorageBufferUpdateAfterBind;
6632 VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind;
6633 VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind;
6634 VkBool32 descriptorBindingUpdateUnusedWhilePending;
6635 VkBool32 descriptorBindingPartiallyBound;
6636 VkBool32 descriptorBindingVariableDescriptorCount;
6637 VkBool32 runtimeDescriptorArray;
6638} VkPhysicalDeviceDescriptorIndexingFeatures;
6639
6640typedef struct VkPhysicalDeviceDescriptorIndexingProperties {
6641 VkStructureType sType;
6642 void* pNext;
6643 uint32_t maxUpdateAfterBindDescriptorsInAllPools;
6644 VkBool32 shaderUniformBufferArrayNonUniformIndexingNative;
6645 VkBool32 shaderSampledImageArrayNonUniformIndexingNative;
6646 VkBool32 shaderStorageBufferArrayNonUniformIndexingNative;
6647 VkBool32 shaderStorageImageArrayNonUniformIndexingNative;
6648 VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative;
6649 VkBool32 robustBufferAccessUpdateAfterBind;
6650 VkBool32 quadDivergentImplicitLod;
6651 uint32_t maxPerStageDescriptorUpdateAfterBindSamplers;
6652 uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers;
6653 uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers;
6654 uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages;
6655 uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages;
6656 uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments;
6657 uint32_t maxPerStageUpdateAfterBindResources;
6658 uint32_t maxDescriptorSetUpdateAfterBindSamplers;
6659 uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers;
6660 uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
6661 uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers;
6662 uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
6663 uint32_t maxDescriptorSetUpdateAfterBindSampledImages;
6664 uint32_t maxDescriptorSetUpdateAfterBindStorageImages;
6665 uint32_t maxDescriptorSetUpdateAfterBindInputAttachments;
6666} VkPhysicalDeviceDescriptorIndexingProperties;
6667
6668typedef struct VkDescriptorSetVariableDescriptorCountAllocateInfo {
6669 VkStructureType sType;
6670 const void* pNext;
6671 uint32_t descriptorSetCount;
6672 const uint32_t* pDescriptorCounts;
6673} VkDescriptorSetVariableDescriptorCountAllocateInfo;
6674
6675typedef struct VkDescriptorSetVariableDescriptorCountLayoutSupport {
6676 VkStructureType sType;
6677 void* pNext;
6678 uint32_t maxVariableDescriptorCount;
6679} VkDescriptorSetVariableDescriptorCountLayoutSupport;
6680
6681typedef struct VkPhysicalDeviceScalarBlockLayoutFeatures {
6682 VkStructureType sType;
6683 void* pNext;
6684 VkBool32 scalarBlockLayout;
6685} VkPhysicalDeviceScalarBlockLayoutFeatures;
6686
6687typedef struct VkSamplerReductionModeCreateInfo {
6688 VkStructureType sType;
6689 const void* pNext;
6690 VkSamplerReductionMode reductionMode;
6691} VkSamplerReductionModeCreateInfo;
6692
6693typedef struct VkPhysicalDeviceSamplerFilterMinmaxProperties {
6694 VkStructureType sType;
6695 void* pNext;
6696 VkBool32 filterMinmaxSingleComponentFormats;
6697 VkBool32 filterMinmaxImageComponentMapping;
6698} VkPhysicalDeviceSamplerFilterMinmaxProperties;
6699
6700typedef struct VkPhysicalDeviceUniformBufferStandardLayoutFeatures {
6701 VkStructureType sType;
6702 void* pNext;
6703 VkBool32 uniformBufferStandardLayout;
6704} VkPhysicalDeviceUniformBufferStandardLayoutFeatures;
6705
6706typedef struct VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures {
6707 VkStructureType sType;
6708 void* pNext;
6709 VkBool32 shaderSubgroupExtendedTypes;
6710} VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures;
6711
6712typedef struct VkAttachmentDescription2 {
6713 VkStructureType sType;
6714 const void* pNext;
6715 VkAttachmentDescriptionFlags flags;
6716 VkFormat format;
6717 VkSampleCountFlagBits samples;
6718 VkAttachmentLoadOp loadOp;
6719 VkAttachmentStoreOp storeOp;
6720 VkAttachmentLoadOp stencilLoadOp;
6721 VkAttachmentStoreOp stencilStoreOp;
6722 VkImageLayout initialLayout;
6723 VkImageLayout finalLayout;
6724} VkAttachmentDescription2;
6725
6726typedef struct VkAttachmentReference2 {
6727 VkStructureType sType;
6728 const void* pNext;
6729 uint32_t attachment;
6730 VkImageLayout layout;
6731 VkImageAspectFlags aspectMask;
6732} VkAttachmentReference2;
6733
6734typedef struct VkSubpassDescription2 {
6735 VkStructureType sType;
6736 const void* pNext;
6737 VkSubpassDescriptionFlags flags;
6738 VkPipelineBindPoint pipelineBindPoint;
6739 uint32_t viewMask;
6740 uint32_t inputAttachmentCount;
6741 const VkAttachmentReference2* pInputAttachments;
6742 uint32_t colorAttachmentCount;
6743 const VkAttachmentReference2* pColorAttachments;
6744 const VkAttachmentReference2* pResolveAttachments;
6745 const VkAttachmentReference2* pDepthStencilAttachment;
6746 uint32_t preserveAttachmentCount;
6747 const uint32_t* pPreserveAttachments;
6748} VkSubpassDescription2;
6749
6750typedef struct VkSubpassDependency2 {
6751 VkStructureType sType;
6752 const void* pNext;
6753 uint32_t srcSubpass;
6754 uint32_t dstSubpass;
6755 VkPipelineStageFlags srcStageMask;
6756 VkPipelineStageFlags dstStageMask;
6757 VkAccessFlags srcAccessMask;
6758 VkAccessFlags dstAccessMask;
6759 VkDependencyFlags dependencyFlags;
6760 int32_t viewOffset;
6761} VkSubpassDependency2;
6762
6763typedef struct VkRenderPassCreateInfo2 {
6764 VkStructureType sType;
6765 const void* pNext;
6766 VkRenderPassCreateFlags flags;
6767 uint32_t attachmentCount;
6768 const VkAttachmentDescription2* pAttachments;
6769 uint32_t subpassCount;
6770 const VkSubpassDescription2* pSubpasses;
6771 uint32_t dependencyCount;
6772 const VkSubpassDependency2* pDependencies;
6773 uint32_t correlatedViewMaskCount;
6774 const uint32_t* pCorrelatedViewMasks;
6775} VkRenderPassCreateInfo2;
6776
6777typedef struct VkSubpassBeginInfo {
6778 VkStructureType sType;
6779 const void* pNext;
6780 VkSubpassContents contents;
6781} VkSubpassBeginInfo;
6782
6783typedef struct VkSubpassEndInfo {
6784 VkStructureType sType;
6785 const void* pNext;
6786} VkSubpassEndInfo;
6787
6788typedef struct VkSubpassDescriptionDepthStencilResolve {
6789 VkStructureType sType;
6790 const void* pNext;
6791 VkResolveModeFlagBits depthResolveMode;
6792 VkResolveModeFlagBits stencilResolveMode;
6793 const VkAttachmentReference2* pDepthStencilResolveAttachment;
6794} VkSubpassDescriptionDepthStencilResolve;
6795
6796typedef struct VkPhysicalDeviceDepthStencilResolveProperties {
6797 VkStructureType sType;
6798 void* pNext;
6799 VkResolveModeFlags supportedDepthResolveModes;
6800 VkResolveModeFlags supportedStencilResolveModes;
6801 VkBool32 independentResolveNone;
6802 VkBool32 independentResolve;
6803} VkPhysicalDeviceDepthStencilResolveProperties;
6804
6805typedef struct VkImageStencilUsageCreateInfo {
6806 VkStructureType sType;
6807 const void* pNext;
6808 VkImageUsageFlags stencilUsage;
6809} VkImageStencilUsageCreateInfo;
6810
6811typedef struct VkPhysicalDeviceImagelessFramebufferFeatures {
6812 VkStructureType sType;
6813 void* pNext;
6814 VkBool32 imagelessFramebuffer;
6815} VkPhysicalDeviceImagelessFramebufferFeatures;
6816
6817typedef struct VkFramebufferAttachmentImageInfo {
6818 VkStructureType sType;
6819 const void* pNext;
6820 VkImageCreateFlags flags;
6821 VkImageUsageFlags usage;
6822 uint32_t width;
6823 uint32_t height;
6824 uint32_t layerCount;
6825 uint32_t viewFormatCount;
6826 const VkFormat* pViewFormats;
6827} VkFramebufferAttachmentImageInfo;
6828
6829typedef struct VkFramebufferAttachmentsCreateInfo {
6830 VkStructureType sType;
6831 const void* pNext;
6832 uint32_t attachmentImageInfoCount;
6833 const VkFramebufferAttachmentImageInfo* pAttachmentImageInfos;
6834} VkFramebufferAttachmentsCreateInfo;
6835
6836typedef struct VkRenderPassAttachmentBeginInfo {
6837 VkStructureType sType;
6838 const void* pNext;
6839 uint32_t attachmentCount;
6840 const VkImageView* pAttachments;
6841} VkRenderPassAttachmentBeginInfo;
6842
6843typedef struct VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures {
6844 VkStructureType sType;
6845 void* pNext;
6846 VkBool32 separateDepthStencilLayouts;
6847} VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures;
6848
6849typedef struct VkAttachmentReferenceStencilLayout {
6850 VkStructureType sType;
6851 void* pNext;
6852 VkImageLayout stencilLayout;
6853} VkAttachmentReferenceStencilLayout;
6854
6855typedef struct VkAttachmentDescriptionStencilLayout {
6856 VkStructureType sType;
6857 void* pNext;
6858 VkImageLayout stencilInitialLayout;
6859 VkImageLayout stencilFinalLayout;
6860} VkAttachmentDescriptionStencilLayout;
6861
6862typedef void (VKAPI_PTR *PFN_vkResetQueryPool)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
6863typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreCounterValue)(VkDevice device, VkSemaphore semaphore, uint64_t* pValue);
6864typedef VkResult (VKAPI_PTR *PFN_vkWaitSemaphores)(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout);
6865typedef VkResult (VKAPI_PTR *PFN_vkSignalSemaphore)(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo);
6866typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddress)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
6867typedef uint64_t (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureAddress)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
6868typedef uint64_t (VKAPI_PTR *PFN_vkGetDeviceMemoryOpaqueCaptureAddress)(VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
6869typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCount)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
6870typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCount)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
6871typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2)(VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
6872typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo);
6873typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo);
6874typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2)(VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo);
6875
6876#ifndef VK_NO_PROTOTYPES
6877VKAPI_ATTR void VKAPI_CALL vkResetQueryPool(
6878 VkDevice device,
6879 VkQueryPool queryPool,
6880 uint32_t firstQuery,
6881 uint32_t queryCount);
6882
6883VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreCounterValue(
6884 VkDevice device,
6885 VkSemaphore semaphore,
6886 uint64_t* pValue);
6887
6888VKAPI_ATTR VkResult VKAPI_CALL vkWaitSemaphores(
6889 VkDevice device,
6890 const VkSemaphoreWaitInfo* pWaitInfo,
6891 uint64_t timeout);
6892
6893VKAPI_ATTR VkResult VKAPI_CALL vkSignalSemaphore(
6894 VkDevice device,
6895 const VkSemaphoreSignalInfo* pSignalInfo);
6896
6897VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddress(
6898 VkDevice device,
6899 const VkBufferDeviceAddressInfo* pInfo);
6900
6901VKAPI_ATTR uint64_t VKAPI_CALL vkGetBufferOpaqueCaptureAddress(
6902 VkDevice device,
6903 const VkBufferDeviceAddressInfo* pInfo);
6904
6905VKAPI_ATTR uint64_t VKAPI_CALL vkGetDeviceMemoryOpaqueCaptureAddress(
6906 VkDevice device,
6907 const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
6908
6909VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCount(
6910 VkCommandBuffer commandBuffer,
6911 VkBuffer buffer,
6912 VkDeviceSize offset,
6913 VkBuffer countBuffer,
6914 VkDeviceSize countBufferOffset,
6915 uint32_t maxDrawCount,
6916 uint32_t stride);
6917
6918VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCount(
6919 VkCommandBuffer commandBuffer,
6920 VkBuffer buffer,
6921 VkDeviceSize offset,
6922 VkBuffer countBuffer,
6923 VkDeviceSize countBufferOffset,
6924 uint32_t maxDrawCount,
6925 uint32_t stride);
6926
6927VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2(
6928 VkDevice device,
6929 const VkRenderPassCreateInfo2* pCreateInfo,
6930 const VkAllocationCallbacks* pAllocator,
6931 VkRenderPass* pRenderPass);
6932
6933VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2(
6934 VkCommandBuffer commandBuffer,
6935 const VkRenderPassBeginInfo* pRenderPassBegin,
6936 const VkSubpassBeginInfo* pSubpassBeginInfo);
6937
6938VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2(
6939 VkCommandBuffer commandBuffer,
6940 const VkSubpassBeginInfo* pSubpassBeginInfo,
6941 const VkSubpassEndInfo* pSubpassEndInfo);
6942
6943VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2(
6944 VkCommandBuffer commandBuffer,
6945 const VkSubpassEndInfo* pSubpassEndInfo);
6946#endif
6947
6948
6949// VK_VERSION_1_3 is a preprocessor guard. Do not pass it to API calls.
6950#define VK_VERSION_1_3 1
6951// Vulkan 1.3 version number
6952#define VK_API_VERSION_1_3 VK_MAKE_API_VERSION(0, 1, 3, 0)// Patch version should always be set to 0
6953
6954typedef uint64_t VkFlags64;
6955VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPrivateDataSlot)
6956
6957typedef enum VkToolPurposeFlagBits {
6958 VK_TOOL_PURPOSE_VALIDATION_BIT = 0x00000001,
6959 VK_TOOL_PURPOSE_PROFILING_BIT = 0x00000002,
6960 VK_TOOL_PURPOSE_TRACING_BIT = 0x00000004,
6961 VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT = 0x00000008,
6962 VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT = 0x00000010,
6963 VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT = 0x00000020,
6964 VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT = 0x00000040,
6965 VK_TOOL_PURPOSE_VALIDATION_BIT_EXT = VK_TOOL_PURPOSE_VALIDATION_BIT,
6966 VK_TOOL_PURPOSE_PROFILING_BIT_EXT = VK_TOOL_PURPOSE_PROFILING_BIT,
6967 VK_TOOL_PURPOSE_TRACING_BIT_EXT = VK_TOOL_PURPOSE_TRACING_BIT,
6968 VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT = VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT,
6969 VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT = VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT,
6970 VK_TOOL_PURPOSE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6971} VkToolPurposeFlagBits;
6972typedef VkFlags VkToolPurposeFlags;
6973typedef VkFlags VkPrivateDataSlotCreateFlags;
6974typedef VkFlags64 VkPipelineStageFlags2;
6975
6976// Flag bits for VkPipelineStageFlagBits2
6977typedef VkFlags64 VkPipelineStageFlagBits2;
6978static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_NONE = 0ULL;
6979static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT = 0x00000001ULL;
6980static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT = 0x00000002ULL;
6981static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT = 0x00000004ULL;
6982static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT = 0x00000008ULL;
6983static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010ULL;
6984static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020ULL;
6985static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT = 0x00000040ULL;
6986static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT = 0x00000080ULL;
6987static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT = 0x00000100ULL;
6988static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT = 0x00000200ULL;
6989static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400ULL;
6990static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT = 0x00000800ULL;
6991static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT = 0x00001000ULL;
6992static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFER_BIT = 0x00001000ULL;
6993static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT = 0x00002000ULL;
6994static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_HOST_BIT = 0x00004000ULL;
6995static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT = 0x00008000ULL;
6996static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT = 0x00010000ULL;
6997static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COPY_BIT = 0x100000000ULL;
6998static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RESOLVE_BIT = 0x200000000ULL;
6999static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BLIT_BIT = 0x400000000ULL;
7000static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLEAR_BIT = 0x800000000ULL;
7001static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT = 0x1000000000ULL;
7002static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT = 0x2000000000ULL;
7003static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT = 0x4000000000ULL;
7004static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR = 0x04000000ULL;
7005static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR = 0x08000000ULL;
7006static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_NONE_KHR = 0ULL;
7007static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR = 0x00000001ULL;
7008static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR = 0x00000002ULL;
7009static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR = 0x00000004ULL;
7010static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR = 0x00000008ULL;
7011static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR = 0x00000010ULL;
7012static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR = 0x00000020ULL;
7013static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR = 0x00000040ULL;
7014static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR = 0x00000080ULL;
7015static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR = 0x00000100ULL;
7016static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR = 0x00000200ULL;
7017static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR = 0x00000400ULL;
7018static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR = 0x00000800ULL;
7019static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR = 0x00001000ULL;
7020static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR = 0x00001000ULL;
7021static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR = 0x00002000ULL;
7022static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_HOST_BIT_KHR = 0x00004000ULL;
7023static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR = 0x00008000ULL;
7024static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR = 0x00010000ULL;
7025static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COPY_BIT_KHR = 0x100000000ULL;
7026static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR = 0x200000000ULL;
7027static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BLIT_BIT_KHR = 0x400000000ULL;
7028static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR = 0x800000000ULL;
7029static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR = 0x1000000000ULL;
7030static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR = 0x2000000000ULL;
7031static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR = 0x4000000000ULL;
7032static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000ULL;
7033static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000ULL;
7034static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV = 0x00020000ULL;
7035static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_EXT = 0x00020000ULL;
7036static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00400000ULL;
7037static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV = 0x00400000ULL;
7038static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000ULL;
7039static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR = 0x00200000ULL;
7040static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV = 0x00200000ULL;
7041static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 0x02000000ULL;
7042static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000ULL;
7043static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV = 0x00080000ULL;
7044static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV = 0x00100000ULL;
7045static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT = 0x00080000ULL;
7046static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT = 0x00100000ULL;
7047static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI = 0x8000000000ULL;
7048// VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI is a legacy alias
7049static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI = 0x8000000000ULL;
7050static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI = 0x10000000000ULL;
7051static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR = 0x10000000ULL;
7052static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT = 0x40000000ULL;
7053static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI = 0x20000000000ULL;
7054static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV = 0x20000000ULL;
7055static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CONVERT_COOPERATIVE_VECTOR_MATRIX_BIT_NV = 0x100000000000ULL;
7056static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_DATA_GRAPH_BIT_ARM = 0x40000000000ULL;
7057static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COPY_INDIRECT_BIT_KHR = 0x400000000000ULL;
7058static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MEMORY_DECOMPRESSION_BIT_EXT = 0x200000000000ULL;
7059
7060typedef VkFlags64 VkAccessFlags2;
7061
7062// Flag bits for VkAccessFlagBits2
7063typedef VkFlags64 VkAccessFlagBits2;
7064static const VkAccessFlagBits2 VK_ACCESS_2_NONE = 0ULL;
7065static const VkAccessFlagBits2 VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT = 0x00000001ULL;
7066static const VkAccessFlagBits2 VK_ACCESS_2_INDEX_READ_BIT = 0x00000002ULL;
7067static const VkAccessFlagBits2 VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004ULL;
7068static const VkAccessFlagBits2 VK_ACCESS_2_UNIFORM_READ_BIT = 0x00000008ULL;
7069static const VkAccessFlagBits2 VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT = 0x00000010ULL;
7070static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_READ_BIT = 0x00000020ULL;
7071static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_WRITE_BIT = 0x00000040ULL;
7072static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT = 0x00000080ULL;
7073static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100ULL;
7074static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200ULL;
7075static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400ULL;
7076static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_READ_BIT = 0x00000800ULL;
7077static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_WRITE_BIT = 0x00001000ULL;
7078static const VkAccessFlagBits2 VK_ACCESS_2_HOST_READ_BIT = 0x00002000ULL;
7079static const VkAccessFlagBits2 VK_ACCESS_2_HOST_WRITE_BIT = 0x00004000ULL;
7080static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_READ_BIT = 0x00008000ULL;
7081static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_WRITE_BIT = 0x00010000ULL;
7082static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT = 0x100000000ULL;
7083static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_READ_BIT = 0x200000000ULL;
7084static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT = 0x400000000ULL;
7085static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR = 0x800000000ULL;
7086static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR = 0x1000000000ULL;
7087static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR = 0x2000000000ULL;
7088static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR = 0x4000000000ULL;
7089static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_TILE_ATTACHMENT_READ_BIT_QCOM = 0x8000000000000ULL;
7090static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_TILE_ATTACHMENT_WRITE_BIT_QCOM = 0x10000000000000ULL;
7091static const VkAccessFlagBits2 VK_ACCESS_2_NONE_KHR = 0ULL;
7092static const VkAccessFlagBits2 VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR = 0x00000001ULL;
7093static const VkAccessFlagBits2 VK_ACCESS_2_INDEX_READ_BIT_KHR = 0x00000002ULL;
7094static const VkAccessFlagBits2 VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR = 0x00000004ULL;
7095static const VkAccessFlagBits2 VK_ACCESS_2_UNIFORM_READ_BIT_KHR = 0x00000008ULL;
7096static const VkAccessFlagBits2 VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR = 0x00000010ULL;
7097static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_READ_BIT_KHR = 0x00000020ULL;
7098static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_WRITE_BIT_KHR = 0x00000040ULL;
7099static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR = 0x00000080ULL;
7100static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR = 0x00000100ULL;
7101static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR = 0x00000200ULL;
7102static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR = 0x00000400ULL;
7103static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_READ_BIT_KHR = 0x00000800ULL;
7104static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR = 0x00001000ULL;
7105static const VkAccessFlagBits2 VK_ACCESS_2_HOST_READ_BIT_KHR = 0x00002000ULL;
7106static const VkAccessFlagBits2 VK_ACCESS_2_HOST_WRITE_BIT_KHR = 0x00004000ULL;
7107static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_READ_BIT_KHR = 0x00008000ULL;
7108static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_WRITE_BIT_KHR = 0x00010000ULL;
7109static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR = 0x100000000ULL;
7110static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR = 0x200000000ULL;
7111static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR = 0x400000000ULL;
7112static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000ULL;
7113static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000ULL;
7114static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000ULL;
7115static const VkAccessFlagBits2 VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000ULL;
7116static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV = 0x00020000ULL;
7117static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV = 0x00040000ULL;
7118static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_EXT = 0x00020000ULL;
7119static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_EXT = 0x00040000ULL;
7120static const VkAccessFlagBits2 VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000ULL;
7121static const VkAccessFlagBits2 VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000ULL;
7122static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000ULL;
7123static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000ULL;
7124static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV = 0x00200000ULL;
7125static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV = 0x00400000ULL;
7126static const VkAccessFlagBits2 VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000ULL;
7127static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000ULL;
7128static const VkAccessFlagBits2 VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT = 0x20000000000ULL;
7129static const VkAccessFlagBits2 VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI = 0x8000000000ULL;
7130static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR = 0x10000000000ULL;
7131static const VkAccessFlagBits2 VK_ACCESS_2_MICROMAP_READ_BIT_EXT = 0x100000000000ULL;
7132static const VkAccessFlagBits2 VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT = 0x200000000000ULL;
7133static const VkAccessFlagBits2 VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV = 0x40000000000ULL;
7134static const VkAccessFlagBits2 VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV = 0x80000000000ULL;
7135static const VkAccessFlagBits2 VK_ACCESS_2_DATA_GRAPH_READ_BIT_ARM = 0x800000000000ULL;
7136static const VkAccessFlagBits2 VK_ACCESS_2_DATA_GRAPH_WRITE_BIT_ARM = 0x1000000000000ULL;
7137static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_DECOMPRESSION_READ_BIT_EXT = 0x80000000000000ULL;
7138static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_DECOMPRESSION_WRITE_BIT_EXT = 0x100000000000000ULL;
7139
7140
7141typedef enum VkSubmitFlagBits {
7142 VK_SUBMIT_PROTECTED_BIT = 0x00000001,
7143 VK_SUBMIT_PROTECTED_BIT_KHR = VK_SUBMIT_PROTECTED_BIT,
7144 VK_SUBMIT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
7145} VkSubmitFlagBits;
7146typedef VkFlags VkSubmitFlags;
7147typedef VkFlags64 VkFormatFeatureFlags2;
7148
7149// Flag bits for VkFormatFeatureFlagBits2
7150typedef VkFlags64 VkFormatFeatureFlagBits2;
7151static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT = 0x00000001ULL;
7152static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT = 0x00000002ULL;
7153static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004ULL;
7154static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008ULL;
7155static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT = 0x00000010ULL;
7156static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020ULL;
7157static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT = 0x00000040ULL;
7158static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT = 0x00000080ULL;
7159static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100ULL;
7160static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200ULL;
7161static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_SRC_BIT = 0x00000400ULL;
7162static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_DST_BIT = 0x00000800ULL;
7163static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000ULL;
7164static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT = 0x00004000ULL;
7165static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT = 0x00008000ULL;
7166static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0x00010000ULL;
7167static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000ULL;
7168static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000ULL;
7169static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000ULL;
7170static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000ULL;
7171static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000ULL;
7172static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DISJOINT_BIT = 0x00400000ULL;
7173static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT = 0x00800000ULL;
7174static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT = 0x80000000ULL;
7175static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT = 0x100000000ULL;
7176static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT = 0x200000000ULL;
7177static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT = 0x00002000ULL;
7178static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT = 0x400000000000ULL;
7179static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR = 0x02000000ULL;
7180static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR = 0x04000000ULL;
7181static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0x20000000ULL;
7182static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000ULL;
7183static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x40000000ULL;
7184static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT = 0x400000000000ULL;
7185static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR = 0x08000000ULL;
7186static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR = 0x10000000ULL;
7187static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR = 0x00000001ULL;
7188static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT_KHR = 0x00000002ULL;
7189static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT_KHR = 0x00000004ULL;
7190static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR = 0x00000008ULL;
7191static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT_KHR = 0x00000010ULL;
7192static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT_KHR = 0x00000020ULL;
7193static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT_KHR = 0x00000040ULL;
7194static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT_KHR = 0x00000080ULL;
7195static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT_KHR = 0x00000100ULL;
7196static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT_KHR = 0x00000200ULL;
7197static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR = 0x00000400ULL;
7198static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_DST_BIT_KHR = 0x00000800ULL;
7199static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT_KHR = 0x00001000ULL;
7200static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT_KHR = 0x00004000ULL;
7201static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT_KHR = 0x00008000ULL;
7202static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = 0x00020000ULL;
7203static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = 0x00040000ULL;
7204static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = 0x00080000ULL;
7205static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = 0x00100000ULL;
7206static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 0x00200000ULL;
7207static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DISJOINT_BIT_KHR = 0x00400000ULL;
7208static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT_KHR = 0x00800000ULL;
7209static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR = 0x80000000ULL;
7210static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR = 0x100000000ULL;
7211static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR = 0x200000000ULL;
7212static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR = 0x00010000ULL;
7213static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 0x00002000ULL;
7214static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_RADIUS_BUFFER_BIT_NV = 0x8000000000000ULL;
7215static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV = 0x4000000000ULL;
7216static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM = 0x400000000ULL;
7217static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM = 0x800000000ULL;
7218static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM = 0x1000000000ULL;
7219static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM = 0x2000000000ULL;
7220static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TENSOR_SHADER_BIT_ARM = 0x8000000000ULL;
7221static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TENSOR_IMAGE_ALIASING_BIT_ARM = 0x80000000000ULL;
7222static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV = 0x10000000000ULL;
7223static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV = 0x20000000000ULL;
7224static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV = 0x40000000000ULL;
7225static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TENSOR_DATA_GRAPH_BIT_ARM = 0x1000000000000ULL;
7226static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COPY_IMAGE_INDIRECT_DST_BIT_KHR = 0x800000000000000ULL;
7227static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x2000000000000ULL;
7228static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR = 0x4000000000000ULL;
7229static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_COPY_ON_COMPUTE_QUEUE_BIT_KHR = 0x10000000000000ULL;
7230static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_COPY_ON_TRANSFER_QUEUE_BIT_KHR = 0x20000000000000ULL;
7231static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STENCIL_COPY_ON_COMPUTE_QUEUE_BIT_KHR = 0x40000000000000ULL;
7232static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STENCIL_COPY_ON_TRANSFER_QUEUE_BIT_KHR = 0x80000000000000ULL;
7233
7234
7235typedef enum VkPipelineCreationFeedbackFlagBits {
7236 VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT = 0x00000001,
7237 VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT = 0x00000002,
7238 VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT = 0x00000004,
7239 VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT,
7240 VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT,
7241 VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT,
7242 VK_PIPELINE_CREATION_FEEDBACK_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
7243} VkPipelineCreationFeedbackFlagBits;
7244typedef VkFlags VkPipelineCreationFeedbackFlags;
7245
7246typedef enum VkRenderingFlagBits {
7247 VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT = 0x00000001,
7248 VK_RENDERING_SUSPENDING_BIT = 0x00000002,
7249 VK_RENDERING_RESUMING_BIT = 0x00000004,
7250 VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x00000008,
7251 VK_RENDERING_CONTENTS_INLINE_BIT_KHR = 0x00000010,
7252 VK_RENDERING_PER_LAYER_FRAGMENT_DENSITY_BIT_VALVE = 0x00000020,
7253 VK_RENDERING_FRAGMENT_REGION_BIT_EXT = 0x00000040,
7254 VK_RENDERING_CUSTOM_RESOLVE_BIT_EXT = 0x00000080,
7255 VK_RENDERING_LOCAL_READ_CONCURRENT_ACCESS_CONTROL_BIT_KHR = 0x00000100,
7256 VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR = VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT,
7257 VK_RENDERING_SUSPENDING_BIT_KHR = VK_RENDERING_SUSPENDING_BIT,
7258 VK_RENDERING_RESUMING_BIT_KHR = VK_RENDERING_RESUMING_BIT,
7259 VK_RENDERING_CONTENTS_INLINE_BIT_EXT = VK_RENDERING_CONTENTS_INLINE_BIT_KHR,
7260 VK_RENDERING_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
7261} VkRenderingFlagBits;
7262typedef VkFlags VkRenderingFlags;
7263typedef struct VkPhysicalDeviceVulkan13Features {
7264 VkStructureType sType;
7265 void* pNext;
7266 VkBool32 robustImageAccess;
7267 VkBool32 inlineUniformBlock;
7268 VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind;
7269 VkBool32 pipelineCreationCacheControl;
7270 VkBool32 privateData;
7271 VkBool32 shaderDemoteToHelperInvocation;
7272 VkBool32 shaderTerminateInvocation;
7273 VkBool32 subgroupSizeControl;
7274 VkBool32 computeFullSubgroups;
7275 VkBool32 synchronization2;
7276 VkBool32 textureCompressionASTC_HDR;
7277 VkBool32 shaderZeroInitializeWorkgroupMemory;
7278 VkBool32 dynamicRendering;
7279 VkBool32 shaderIntegerDotProduct;
7280 VkBool32 maintenance4;
7281} VkPhysicalDeviceVulkan13Features;
7282
7283typedef struct VkPhysicalDeviceVulkan13Properties {
7284 VkStructureType sType;
7285 void* pNext;
7286 uint32_t minSubgroupSize;
7287 uint32_t maxSubgroupSize;
7288 uint32_t maxComputeWorkgroupSubgroups;
7289 VkShaderStageFlags requiredSubgroupSizeStages;
7290 uint32_t maxInlineUniformBlockSize;
7291 uint32_t maxPerStageDescriptorInlineUniformBlocks;
7292 uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
7293 uint32_t maxDescriptorSetInlineUniformBlocks;
7294 uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
7295 uint32_t maxInlineUniformTotalSize;
7296 VkBool32 integerDotProduct8BitUnsignedAccelerated;
7297 VkBool32 integerDotProduct8BitSignedAccelerated;
7298 VkBool32 integerDotProduct8BitMixedSignednessAccelerated;
7299 VkBool32 integerDotProduct4x8BitPackedUnsignedAccelerated;
7300 VkBool32 integerDotProduct4x8BitPackedSignedAccelerated;
7301 VkBool32 integerDotProduct4x8BitPackedMixedSignednessAccelerated;
7302 VkBool32 integerDotProduct16BitUnsignedAccelerated;
7303 VkBool32 integerDotProduct16BitSignedAccelerated;
7304 VkBool32 integerDotProduct16BitMixedSignednessAccelerated;
7305 VkBool32 integerDotProduct32BitUnsignedAccelerated;
7306 VkBool32 integerDotProduct32BitSignedAccelerated;
7307 VkBool32 integerDotProduct32BitMixedSignednessAccelerated;
7308 VkBool32 integerDotProduct64BitUnsignedAccelerated;
7309 VkBool32 integerDotProduct64BitSignedAccelerated;
7310 VkBool32 integerDotProduct64BitMixedSignednessAccelerated;
7311 VkBool32 integerDotProductAccumulatingSaturating8BitUnsignedAccelerated;
7312 VkBool32 integerDotProductAccumulatingSaturating8BitSignedAccelerated;
7313 VkBool32 integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated;
7314 VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated;
7315 VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated;
7316 VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated;
7317 VkBool32 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated;
7318 VkBool32 integerDotProductAccumulatingSaturating16BitSignedAccelerated;
7319 VkBool32 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated;
7320 VkBool32 integerDotProductAccumulatingSaturating32BitUnsignedAccelerated;
7321 VkBool32 integerDotProductAccumulatingSaturating32BitSignedAccelerated;
7322 VkBool32 integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated;
7323 VkBool32 integerDotProductAccumulatingSaturating64BitUnsignedAccelerated;
7324 VkBool32 integerDotProductAccumulatingSaturating64BitSignedAccelerated;
7325 VkBool32 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated;
7326 VkDeviceSize storageTexelBufferOffsetAlignmentBytes;
7327 VkBool32 storageTexelBufferOffsetSingleTexelAlignment;
7328 VkDeviceSize uniformTexelBufferOffsetAlignmentBytes;
7329 VkBool32 uniformTexelBufferOffsetSingleTexelAlignment;
7330 VkDeviceSize maxBufferSize;
7331} VkPhysicalDeviceVulkan13Properties;
7332
7333typedef struct VkPhysicalDeviceToolProperties {
7334 VkStructureType sType;
7335 void* pNext;
7336 char name[VK_MAX_EXTENSION_NAME_SIZE];
7337 char version[VK_MAX_EXTENSION_NAME_SIZE];
7338 VkToolPurposeFlags purposes;
7339 char description[VK_MAX_DESCRIPTION_SIZE];
7340 char layer[VK_MAX_EXTENSION_NAME_SIZE];
7341} VkPhysicalDeviceToolProperties;
7342
7343typedef struct VkPhysicalDevicePrivateDataFeatures {
7344 VkStructureType sType;
7345 void* pNext;
7346 VkBool32 privateData;
7347} VkPhysicalDevicePrivateDataFeatures;
7348
7349typedef struct VkDevicePrivateDataCreateInfo {
7350 VkStructureType sType;
7351 const void* pNext;
7352 uint32_t privateDataSlotRequestCount;
7353} VkDevicePrivateDataCreateInfo;
7354
7355typedef struct VkPrivateDataSlotCreateInfo {
7356 VkStructureType sType;
7357 const void* pNext;
7358 VkPrivateDataSlotCreateFlags flags;
7359} VkPrivateDataSlotCreateInfo;
7360
7361typedef struct VkMemoryBarrier2 {
7362 VkStructureType sType;
7363 const void* pNext;
7364 VkPipelineStageFlags2 srcStageMask;
7365 VkAccessFlags2 srcAccessMask;
7366 VkPipelineStageFlags2 dstStageMask;
7367 VkAccessFlags2 dstAccessMask;
7368} VkMemoryBarrier2;
7369
7370typedef struct VkBufferMemoryBarrier2 {
7371 VkStructureType sType;
7372 const void* pNext;
7373 VkPipelineStageFlags2 srcStageMask;
7374 VkAccessFlags2 srcAccessMask;
7375 VkPipelineStageFlags2 dstStageMask;
7376 VkAccessFlags2 dstAccessMask;
7377 uint32_t srcQueueFamilyIndex;
7378 uint32_t dstQueueFamilyIndex;
7379 VkBuffer buffer;
7380 VkDeviceSize offset;
7381 VkDeviceSize size;
7382} VkBufferMemoryBarrier2;
7383
7384typedef struct VkImageMemoryBarrier2 {
7385 VkStructureType sType;
7386 const void* pNext;
7387 VkPipelineStageFlags2 srcStageMask;
7388 VkAccessFlags2 srcAccessMask;
7389 VkPipelineStageFlags2 dstStageMask;
7390 VkAccessFlags2 dstAccessMask;
7391 VkImageLayout oldLayout;
7392 VkImageLayout newLayout;
7393 uint32_t srcQueueFamilyIndex;
7394 uint32_t dstQueueFamilyIndex;
7395 VkImage image;
7396 VkImageSubresourceRange subresourceRange;
7397} VkImageMemoryBarrier2;
7398
7399typedef struct VkDependencyInfo {
7400 VkStructureType sType;
7401 const void* pNext;
7402 VkDependencyFlags dependencyFlags;
7403 uint32_t memoryBarrierCount;
7404 const VkMemoryBarrier2* pMemoryBarriers;
7405 uint32_t bufferMemoryBarrierCount;
7406 const VkBufferMemoryBarrier2* pBufferMemoryBarriers;
7407 uint32_t imageMemoryBarrierCount;
7408 const VkImageMemoryBarrier2* pImageMemoryBarriers;
7409} VkDependencyInfo;
7410
7411typedef struct VkSemaphoreSubmitInfo {
7412 VkStructureType sType;
7413 const void* pNext;
7414 VkSemaphore semaphore;
7415 uint64_t value;
7416 VkPipelineStageFlags2 stageMask;
7417 uint32_t deviceIndex;
7418} VkSemaphoreSubmitInfo;
7419
7420typedef struct VkCommandBufferSubmitInfo {
7421 VkStructureType sType;
7422 const void* pNext;
7423 VkCommandBuffer commandBuffer;
7424 uint32_t deviceMask;
7425} VkCommandBufferSubmitInfo;
7426
7427typedef struct VkSubmitInfo2 {
7428 VkStructureType sType;
7429 const void* pNext;
7430 VkSubmitFlags flags;
7431 uint32_t waitSemaphoreInfoCount;
7432 const VkSemaphoreSubmitInfo* pWaitSemaphoreInfos;
7433 uint32_t commandBufferInfoCount;
7434 const VkCommandBufferSubmitInfo* pCommandBufferInfos;
7435 uint32_t signalSemaphoreInfoCount;
7436 const VkSemaphoreSubmitInfo* pSignalSemaphoreInfos;
7437} VkSubmitInfo2;
7438
7439typedef struct VkPhysicalDeviceSynchronization2Features {
7440 VkStructureType sType;
7441 void* pNext;
7442 VkBool32 synchronization2;
7443} VkPhysicalDeviceSynchronization2Features;
7444
7445typedef struct VkBufferCopy2 {
7446 VkStructureType sType;
7447 const void* pNext;
7448 VkDeviceSize srcOffset;
7449 VkDeviceSize dstOffset;
7450 VkDeviceSize size;
7451} VkBufferCopy2;
7452
7453typedef struct VkCopyBufferInfo2 {
7454 VkStructureType sType;
7455 const void* pNext;
7456 VkBuffer srcBuffer;
7457 VkBuffer dstBuffer;
7458 uint32_t regionCount;
7459 const VkBufferCopy2* pRegions;
7460} VkCopyBufferInfo2;
7461
7462typedef struct VkImageCopy2 {
7463 VkStructureType sType;
7464 const void* pNext;
7465 VkImageSubresourceLayers srcSubresource;
7466 VkOffset3D srcOffset;
7467 VkImageSubresourceLayers dstSubresource;
7468 VkOffset3D dstOffset;
7469 VkExtent3D extent;
7470} VkImageCopy2;
7471
7472typedef struct VkCopyImageInfo2 {
7473 VkStructureType sType;
7474 const void* pNext;
7475 VkImage srcImage;
7476 VkImageLayout srcImageLayout;
7477 VkImage dstImage;
7478 VkImageLayout dstImageLayout;
7479 uint32_t regionCount;
7480 const VkImageCopy2* pRegions;
7481} VkCopyImageInfo2;
7482
7483typedef struct VkBufferImageCopy2 {
7484 VkStructureType sType;
7485 const void* pNext;
7486 VkDeviceSize bufferOffset;
7487 uint32_t bufferRowLength;
7488 uint32_t bufferImageHeight;
7489 VkImageSubresourceLayers imageSubresource;
7490 VkOffset3D imageOffset;
7491 VkExtent3D imageExtent;
7492} VkBufferImageCopy2;
7493
7494typedef struct VkCopyBufferToImageInfo2 {
7495 VkStructureType sType;
7496 const void* pNext;
7497 VkBuffer srcBuffer;
7498 VkImage dstImage;
7499 VkImageLayout dstImageLayout;
7500 uint32_t regionCount;
7501 const VkBufferImageCopy2* pRegions;
7502} VkCopyBufferToImageInfo2;
7503
7504typedef struct VkCopyImageToBufferInfo2 {
7505 VkStructureType sType;
7506 const void* pNext;
7507 VkImage srcImage;
7508 VkImageLayout srcImageLayout;
7509 VkBuffer dstBuffer;
7510 uint32_t regionCount;
7511 const VkBufferImageCopy2* pRegions;
7512} VkCopyImageToBufferInfo2;
7513
7514typedef struct VkPhysicalDeviceTextureCompressionASTCHDRFeatures {
7515 VkStructureType sType;
7516 void* pNext;
7517 VkBool32 textureCompressionASTC_HDR;
7518} VkPhysicalDeviceTextureCompressionASTCHDRFeatures;
7519
7520typedef struct VkFormatProperties3 {
7521 VkStructureType sType;
7522 void* pNext;
7523 VkFormatFeatureFlags2 linearTilingFeatures;
7524 VkFormatFeatureFlags2 optimalTilingFeatures;
7525 VkFormatFeatureFlags2 bufferFeatures;
7526} VkFormatProperties3;
7527
7528typedef struct VkPhysicalDeviceMaintenance4Features {
7529 VkStructureType sType;
7530 void* pNext;
7531 VkBool32 maintenance4;
7532} VkPhysicalDeviceMaintenance4Features;
7533
7534typedef struct VkPhysicalDeviceMaintenance4Properties {
7535 VkStructureType sType;
7536 void* pNext;
7537 VkDeviceSize maxBufferSize;
7538} VkPhysicalDeviceMaintenance4Properties;
7539
7540typedef struct VkDeviceBufferMemoryRequirements {
7541 VkStructureType sType;
7542 const void* pNext;
7543 const VkBufferCreateInfo* pCreateInfo;
7544} VkDeviceBufferMemoryRequirements;
7545
7546typedef struct VkDeviceImageMemoryRequirements {
7547 VkStructureType sType;
7548 const void* pNext;
7549 const VkImageCreateInfo* pCreateInfo;
7550 VkImageAspectFlagBits planeAspect;
7551} VkDeviceImageMemoryRequirements;
7552
7553typedef struct VkPipelineCreationFeedback {
7554 VkPipelineCreationFeedbackFlags flags;
7555 uint64_t duration;
7556} VkPipelineCreationFeedback;
7557
7558typedef struct VkPipelineCreationFeedbackCreateInfo {
7559 VkStructureType sType;
7560 const void* pNext;
7561 VkPipelineCreationFeedback* pPipelineCreationFeedback;
7562 uint32_t pipelineStageCreationFeedbackCount;
7563 VkPipelineCreationFeedback* pPipelineStageCreationFeedbacks;
7564} VkPipelineCreationFeedbackCreateInfo;
7565
7566typedef struct VkPhysicalDeviceShaderTerminateInvocationFeatures {
7567 VkStructureType sType;
7568 void* pNext;
7569 VkBool32 shaderTerminateInvocation;
7570} VkPhysicalDeviceShaderTerminateInvocationFeatures;
7571
7572typedef struct VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures {
7573 VkStructureType sType;
7574 void* pNext;
7575 VkBool32 shaderDemoteToHelperInvocation;
7576} VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures;
7577
7578typedef struct VkPhysicalDevicePipelineCreationCacheControlFeatures {
7579 VkStructureType sType;
7580 void* pNext;
7581 VkBool32 pipelineCreationCacheControl;
7582} VkPhysicalDevicePipelineCreationCacheControlFeatures;
7583
7584typedef struct VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures {
7585 VkStructureType sType;
7586 void* pNext;
7587 VkBool32 shaderZeroInitializeWorkgroupMemory;
7588} VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures;
7589
7590typedef struct VkPhysicalDeviceImageRobustnessFeatures {
7591 VkStructureType sType;
7592 void* pNext;
7593 VkBool32 robustImageAccess;
7594} VkPhysicalDeviceImageRobustnessFeatures;
7595
7596typedef struct VkPhysicalDeviceSubgroupSizeControlFeatures {
7597 VkStructureType sType;
7598 void* pNext;
7599 VkBool32 subgroupSizeControl;
7600 VkBool32 computeFullSubgroups;
7601} VkPhysicalDeviceSubgroupSizeControlFeatures;
7602
7603typedef struct VkPhysicalDeviceSubgroupSizeControlProperties {
7604 VkStructureType sType;
7605 void* pNext;
7606 uint32_t minSubgroupSize;
7607 uint32_t maxSubgroupSize;
7608 uint32_t maxComputeWorkgroupSubgroups;
7609 VkShaderStageFlags requiredSubgroupSizeStages;
7610} VkPhysicalDeviceSubgroupSizeControlProperties;
7611
7612typedef struct VkPipelineShaderStageRequiredSubgroupSizeCreateInfo {
7613 VkStructureType sType;
7614 const void* pNext;
7615 uint32_t requiredSubgroupSize;
7616} VkPipelineShaderStageRequiredSubgroupSizeCreateInfo;
7617
7618typedef struct VkPhysicalDeviceInlineUniformBlockFeatures {
7619 VkStructureType sType;
7620 void* pNext;
7621 VkBool32 inlineUniformBlock;
7622 VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind;
7623} VkPhysicalDeviceInlineUniformBlockFeatures;
7624
7625typedef struct VkPhysicalDeviceInlineUniformBlockProperties {
7626 VkStructureType sType;
7627 void* pNext;
7628 uint32_t maxInlineUniformBlockSize;
7629 uint32_t maxPerStageDescriptorInlineUniformBlocks;
7630 uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
7631 uint32_t maxDescriptorSetInlineUniformBlocks;
7632 uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
7633} VkPhysicalDeviceInlineUniformBlockProperties;
7634
7635typedef struct VkWriteDescriptorSetInlineUniformBlock {
7636 VkStructureType sType;
7637 const void* pNext;
7638 uint32_t dataSize;
7639 const void* pData;
7640} VkWriteDescriptorSetInlineUniformBlock;
7641
7642typedef struct VkDescriptorPoolInlineUniformBlockCreateInfo {
7643 VkStructureType sType;
7644 const void* pNext;
7645 uint32_t maxInlineUniformBlockBindings;
7646} VkDescriptorPoolInlineUniformBlockCreateInfo;
7647
7648typedef struct VkPhysicalDeviceShaderIntegerDotProductFeatures {
7649 VkStructureType sType;
7650 void* pNext;
7651 VkBool32 shaderIntegerDotProduct;
7652} VkPhysicalDeviceShaderIntegerDotProductFeatures;
7653
7654typedef struct VkPhysicalDeviceShaderIntegerDotProductProperties {
7655 VkStructureType sType;
7656 void* pNext;
7657 VkBool32 integerDotProduct8BitUnsignedAccelerated;
7658 VkBool32 integerDotProduct8BitSignedAccelerated;
7659 VkBool32 integerDotProduct8BitMixedSignednessAccelerated;
7660 VkBool32 integerDotProduct4x8BitPackedUnsignedAccelerated;
7661 VkBool32 integerDotProduct4x8BitPackedSignedAccelerated;
7662 VkBool32 integerDotProduct4x8BitPackedMixedSignednessAccelerated;
7663 VkBool32 integerDotProduct16BitUnsignedAccelerated;
7664 VkBool32 integerDotProduct16BitSignedAccelerated;
7665 VkBool32 integerDotProduct16BitMixedSignednessAccelerated;
7666 VkBool32 integerDotProduct32BitUnsignedAccelerated;
7667 VkBool32 integerDotProduct32BitSignedAccelerated;
7668 VkBool32 integerDotProduct32BitMixedSignednessAccelerated;
7669 VkBool32 integerDotProduct64BitUnsignedAccelerated;
7670 VkBool32 integerDotProduct64BitSignedAccelerated;
7671 VkBool32 integerDotProduct64BitMixedSignednessAccelerated;
7672 VkBool32 integerDotProductAccumulatingSaturating8BitUnsignedAccelerated;
7673 VkBool32 integerDotProductAccumulatingSaturating8BitSignedAccelerated;
7674 VkBool32 integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated;
7675 VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated;
7676 VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated;
7677 VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated;
7678 VkBool32 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated;
7679 VkBool32 integerDotProductAccumulatingSaturating16BitSignedAccelerated;
7680 VkBool32 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated;
7681 VkBool32 integerDotProductAccumulatingSaturating32BitUnsignedAccelerated;
7682 VkBool32 integerDotProductAccumulatingSaturating32BitSignedAccelerated;
7683 VkBool32 integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated;
7684 VkBool32 integerDotProductAccumulatingSaturating64BitUnsignedAccelerated;
7685 VkBool32 integerDotProductAccumulatingSaturating64BitSignedAccelerated;
7686 VkBool32 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated;
7687} VkPhysicalDeviceShaderIntegerDotProductProperties;
7688
7689typedef struct VkPhysicalDeviceTexelBufferAlignmentProperties {
7690 VkStructureType sType;
7691 void* pNext;
7692 VkDeviceSize storageTexelBufferOffsetAlignmentBytes;
7693 VkBool32 storageTexelBufferOffsetSingleTexelAlignment;
7694 VkDeviceSize uniformTexelBufferOffsetAlignmentBytes;
7695 VkBool32 uniformTexelBufferOffsetSingleTexelAlignment;
7696} VkPhysicalDeviceTexelBufferAlignmentProperties;
7697
7698typedef struct VkImageBlit2 {
7699 VkStructureType sType;
7700 const void* pNext;
7701 VkImageSubresourceLayers srcSubresource;
7702 VkOffset3D srcOffsets[2];
7703 VkImageSubresourceLayers dstSubresource;
7704 VkOffset3D dstOffsets[2];
7705} VkImageBlit2;
7706
7707typedef struct VkBlitImageInfo2 {
7708 VkStructureType sType;
7709 const void* pNext;
7710 VkImage srcImage;
7711 VkImageLayout srcImageLayout;
7712 VkImage dstImage;
7713 VkImageLayout dstImageLayout;
7714 uint32_t regionCount;
7715 const VkImageBlit2* pRegions;
7716 VkFilter filter;
7717} VkBlitImageInfo2;
7718
7719typedef struct VkImageResolve2 {
7720 VkStructureType sType;
7721 const void* pNext;
7722 VkImageSubresourceLayers srcSubresource;
7723 VkOffset3D srcOffset;
7724 VkImageSubresourceLayers dstSubresource;
7725 VkOffset3D dstOffset;
7726 VkExtent3D extent;
7727} VkImageResolve2;
7728
7729typedef struct VkResolveImageInfo2 {
7730 VkStructureType sType;
7731 const void* pNext;
7732 VkImage srcImage;
7733 VkImageLayout srcImageLayout;
7734 VkImage dstImage;
7735 VkImageLayout dstImageLayout;
7736 uint32_t regionCount;
7737 const VkImageResolve2* pRegions;
7738} VkResolveImageInfo2;
7739
7740typedef struct VkRenderingAttachmentInfo {
7741 VkStructureType sType;
7742 const void* pNext;
7743 VkImageView imageView;
7744 VkImageLayout imageLayout;
7745 VkResolveModeFlagBits resolveMode;
7746 VkImageView resolveImageView;
7747 VkImageLayout resolveImageLayout;
7748 VkAttachmentLoadOp loadOp;
7749 VkAttachmentStoreOp storeOp;
7750 VkClearValue clearValue;
7751} VkRenderingAttachmentInfo;
7752
7753typedef struct VkRenderingInfo {
7754 VkStructureType sType;
7755 const void* pNext;
7756 VkRenderingFlags flags;
7757 VkRect2D renderArea;
7758 uint32_t layerCount;
7759 uint32_t viewMask;
7760 uint32_t colorAttachmentCount;
7761 const VkRenderingAttachmentInfo* pColorAttachments;
7762 const VkRenderingAttachmentInfo* pDepthAttachment;
7763 const VkRenderingAttachmentInfo* pStencilAttachment;
7764} VkRenderingInfo;
7765
7766typedef struct VkPipelineRenderingCreateInfo {
7767 VkStructureType sType;
7768 const void* pNext;
7769 uint32_t viewMask;
7770 uint32_t colorAttachmentCount;
7771 const VkFormat* pColorAttachmentFormats;
7772 VkFormat depthAttachmentFormat;
7773 VkFormat stencilAttachmentFormat;
7774} VkPipelineRenderingCreateInfo;
7775
7776typedef struct VkPhysicalDeviceDynamicRenderingFeatures {
7777 VkStructureType sType;
7778 void* pNext;
7779 VkBool32 dynamicRendering;
7780} VkPhysicalDeviceDynamicRenderingFeatures;
7781
7782typedef struct VkCommandBufferInheritanceRenderingInfo {
7783 VkStructureType sType;
7784 const void* pNext;
7785 VkRenderingFlags flags;
7786 uint32_t viewMask;
7787 uint32_t colorAttachmentCount;
7788 const VkFormat* pColorAttachmentFormats;
7789 VkFormat depthAttachmentFormat;
7790 VkFormat stencilAttachmentFormat;
7791 VkSampleCountFlagBits rasterizationSamples;
7792} VkCommandBufferInheritanceRenderingInfo;
7793
7794typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceToolProperties)(VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties);
7795typedef VkResult (VKAPI_PTR *PFN_vkCreatePrivateDataSlot)(VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot);
7796typedef void (VKAPI_PTR *PFN_vkDestroyPrivateDataSlot)(VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks* pAllocator);
7797typedef VkResult (VKAPI_PTR *PFN_vkSetPrivateData)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data);
7798typedef void (VKAPI_PTR *PFN_vkGetPrivateData)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t* pData);
7799typedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier2)(VkCommandBuffer commandBuffer, const VkDependencyInfo* pDependencyInfo);
7800typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp2)(VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkQueryPool queryPool, uint32_t query);
7801typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit2)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo2* pSubmits, VkFence fence);
7802typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer2)(VkCommandBuffer commandBuffer, const VkCopyBufferInfo2* pCopyBufferInfo);
7803typedef void (VKAPI_PTR *PFN_vkCmdCopyImage2)(VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo);
7804typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage2)(VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo);
7805typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer2)(VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo);
7806typedef void (VKAPI_PTR *PFN_vkGetDeviceBufferMemoryRequirements)(VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
7807typedef void (VKAPI_PTR *PFN_vkGetDeviceImageMemoryRequirements)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
7808typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSparseMemoryRequirements)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
7809typedef void (VKAPI_PTR *PFN_vkCmdSetEvent2)(VkCommandBuffer commandBuffer, VkEvent event, const VkDependencyInfo* pDependencyInfo);
7810typedef void (VKAPI_PTR *PFN_vkCmdResetEvent2)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags2 stageMask);
7811typedef void (VKAPI_PTR *PFN_vkCmdWaitEvents2)(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, const VkDependencyInfo* pDependencyInfos);
7812typedef void (VKAPI_PTR *PFN_vkCmdBlitImage2)(VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo);
7813typedef void (VKAPI_PTR *PFN_vkCmdResolveImage2)(VkCommandBuffer commandBuffer, const VkResolveImageInfo2* pResolveImageInfo);
7814typedef void (VKAPI_PTR *PFN_vkCmdBeginRendering)(VkCommandBuffer commandBuffer, const VkRenderingInfo* pRenderingInfo);
7815typedef void (VKAPI_PTR *PFN_vkCmdEndRendering)(VkCommandBuffer commandBuffer);
7816typedef void (VKAPI_PTR *PFN_vkCmdSetCullMode)(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode);
7817typedef void (VKAPI_PTR *PFN_vkCmdSetFrontFace)(VkCommandBuffer commandBuffer, VkFrontFace frontFace);
7818typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveTopology)(VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology);
7819typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWithCount)(VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports);
7820typedef void (VKAPI_PTR *PFN_vkCmdSetScissorWithCount)(VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors);
7821typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers2)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes, const VkDeviceSize* pStrides);
7822typedef void (VKAPI_PTR *PFN_vkCmdSetDepthTestEnable)(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable);
7823typedef void (VKAPI_PTR *PFN_vkCmdSetDepthWriteEnable)(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable);
7824typedef void (VKAPI_PTR *PFN_vkCmdSetDepthCompareOp)(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp);
7825typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBoundsTestEnable)(VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable);
7826typedef void (VKAPI_PTR *PFN_vkCmdSetStencilTestEnable)(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable);
7827typedef void (VKAPI_PTR *PFN_vkCmdSetStencilOp)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp);
7828typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizerDiscardEnable)(VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable);
7829typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBiasEnable)(VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable);
7830typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveRestartEnable)(VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable);
7831
7832#ifndef VK_NO_PROTOTYPES
7833VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceToolProperties(
7834 VkPhysicalDevice physicalDevice,
7835 uint32_t* pToolCount,
7836 VkPhysicalDeviceToolProperties* pToolProperties);
7837
7838VKAPI_ATTR VkResult VKAPI_CALL vkCreatePrivateDataSlot(
7839 VkDevice device,
7840 const VkPrivateDataSlotCreateInfo* pCreateInfo,
7841 const VkAllocationCallbacks* pAllocator,
7842 VkPrivateDataSlot* pPrivateDataSlot);
7843
7844VKAPI_ATTR void VKAPI_CALL vkDestroyPrivateDataSlot(
7845 VkDevice device,
7846 VkPrivateDataSlot privateDataSlot,
7847 const VkAllocationCallbacks* pAllocator);
7848
7849VKAPI_ATTR VkResult VKAPI_CALL vkSetPrivateData(
7850 VkDevice device,
7851 VkObjectType objectType,
7852 uint64_t objectHandle,
7853 VkPrivateDataSlot privateDataSlot,
7854 uint64_t data);
7855
7856VKAPI_ATTR void VKAPI_CALL vkGetPrivateData(
7857 VkDevice device,
7858 VkObjectType objectType,
7859 uint64_t objectHandle,
7860 VkPrivateDataSlot privateDataSlot,
7861 uint64_t* pData);
7862
7863VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier2(
7864 VkCommandBuffer commandBuffer,
7865 const VkDependencyInfo* pDependencyInfo);
7866
7867VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp2(
7868 VkCommandBuffer commandBuffer,
7869 VkPipelineStageFlags2 stage,
7870 VkQueryPool queryPool,
7871 uint32_t query);
7872
7873VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit2(
7874 VkQueue queue,
7875 uint32_t submitCount,
7876 const VkSubmitInfo2* pSubmits,
7877 VkFence fence);
7878
7879VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer2(
7880 VkCommandBuffer commandBuffer,
7881 const VkCopyBufferInfo2* pCopyBufferInfo);
7882
7883VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage2(
7884 VkCommandBuffer commandBuffer,
7885 const VkCopyImageInfo2* pCopyImageInfo);
7886
7887VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage2(
7888 VkCommandBuffer commandBuffer,
7889 const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo);
7890
7891VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer2(
7892 VkCommandBuffer commandBuffer,
7893 const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo);
7894
7895VKAPI_ATTR void VKAPI_CALL vkGetDeviceBufferMemoryRequirements(
7896 VkDevice device,
7897 const VkDeviceBufferMemoryRequirements* pInfo,
7898 VkMemoryRequirements2* pMemoryRequirements);
7899
7900VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageMemoryRequirements(
7901 VkDevice device,
7902 const VkDeviceImageMemoryRequirements* pInfo,
7903 VkMemoryRequirements2* pMemoryRequirements);
7904
7905VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSparseMemoryRequirements(
7906 VkDevice device,
7907 const VkDeviceImageMemoryRequirements* pInfo,
7908 uint32_t* pSparseMemoryRequirementCount,
7909 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
7910
7911VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent2(
7912 VkCommandBuffer commandBuffer,
7913 VkEvent event,
7914 const VkDependencyInfo* pDependencyInfo);
7915
7916VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent2(
7917 VkCommandBuffer commandBuffer,
7918 VkEvent event,
7919 VkPipelineStageFlags2 stageMask);
7920
7921VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents2(
7922 VkCommandBuffer commandBuffer,
7923 uint32_t eventCount,
7924 const VkEvent* pEvents,
7925 const VkDependencyInfo* pDependencyInfos);
7926
7927VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage2(
7928 VkCommandBuffer commandBuffer,
7929 const VkBlitImageInfo2* pBlitImageInfo);
7930
7931VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage2(
7932 VkCommandBuffer commandBuffer,
7933 const VkResolveImageInfo2* pResolveImageInfo);
7934
7935VKAPI_ATTR void VKAPI_CALL vkCmdBeginRendering(
7936 VkCommandBuffer commandBuffer,
7937 const VkRenderingInfo* pRenderingInfo);
7938
7939VKAPI_ATTR void VKAPI_CALL vkCmdEndRendering(
7940 VkCommandBuffer commandBuffer);
7941
7942VKAPI_ATTR void VKAPI_CALL vkCmdSetCullMode(
7943 VkCommandBuffer commandBuffer,
7944 VkCullModeFlags cullMode);
7945
7946VKAPI_ATTR void VKAPI_CALL vkCmdSetFrontFace(
7947 VkCommandBuffer commandBuffer,
7948 VkFrontFace frontFace);
7949
7950VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveTopology(
7951 VkCommandBuffer commandBuffer,
7952 VkPrimitiveTopology primitiveTopology);
7953
7954VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWithCount(
7955 VkCommandBuffer commandBuffer,
7956 uint32_t viewportCount,
7957 const VkViewport* pViewports);
7958
7959VKAPI_ATTR void VKAPI_CALL vkCmdSetScissorWithCount(
7960 VkCommandBuffer commandBuffer,
7961 uint32_t scissorCount,
7962 const VkRect2D* pScissors);
7963
7964VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers2(
7965 VkCommandBuffer commandBuffer,
7966 uint32_t firstBinding,
7967 uint32_t bindingCount,
7968 const VkBuffer* pBuffers,
7969 const VkDeviceSize* pOffsets,
7970 const VkDeviceSize* pSizes,
7971 const VkDeviceSize* pStrides);
7972
7973VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthTestEnable(
7974 VkCommandBuffer commandBuffer,
7975 VkBool32 depthTestEnable);
7976
7977VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthWriteEnable(
7978 VkCommandBuffer commandBuffer,
7979 VkBool32 depthWriteEnable);
7980
7981VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthCompareOp(
7982 VkCommandBuffer commandBuffer,
7983 VkCompareOp depthCompareOp);
7984
7985VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBoundsTestEnable(
7986 VkCommandBuffer commandBuffer,
7987 VkBool32 depthBoundsTestEnable);
7988
7989VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilTestEnable(
7990 VkCommandBuffer commandBuffer,
7991 VkBool32 stencilTestEnable);
7992
7993VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilOp(
7994 VkCommandBuffer commandBuffer,
7995 VkStencilFaceFlags faceMask,
7996 VkStencilOp failOp,
7997 VkStencilOp passOp,
7998 VkStencilOp depthFailOp,
7999 VkCompareOp compareOp);
8000
8001VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizerDiscardEnable(
8002 VkCommandBuffer commandBuffer,
8003 VkBool32 rasterizerDiscardEnable);
8004
8005VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBiasEnable(
8006 VkCommandBuffer commandBuffer,
8007 VkBool32 depthBiasEnable);
8008
8009VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveRestartEnable(
8010 VkCommandBuffer commandBuffer,
8011 VkBool32 primitiveRestartEnable);
8012#endif
8013
8014
8015// VK_VERSION_1_4 is a preprocessor guard. Do not pass it to API calls.
8016#define VK_VERSION_1_4 1
8017// Vulkan 1.4 version number
8018#define VK_API_VERSION_1_4 VK_MAKE_API_VERSION(0, 1, 4, 0)// Patch version should always be set to 0
8019
8020#define VK_MAX_GLOBAL_PRIORITY_SIZE 16U
8021
8022typedef enum VkPipelineRobustnessBufferBehavior {
8023 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT = 0,
8024 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED = 1,
8025 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS = 2,
8026 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2 = 3,
8027 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT,
8028 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED,
8029 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS,
8030 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2,
8031 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_MAX_ENUM = 0x7FFFFFFF
8032} VkPipelineRobustnessBufferBehavior;
8033
8034typedef enum VkPipelineRobustnessImageBehavior {
8035 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT = 0,
8036 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED = 1,
8037 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS = 2,
8038 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2 = 3,
8039 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT,
8040 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED,
8041 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS,
8042 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2,
8043 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_MAX_ENUM = 0x7FFFFFFF
8044} VkPipelineRobustnessImageBehavior;
8045
8046typedef enum VkQueueGlobalPriority {
8047 VK_QUEUE_GLOBAL_PRIORITY_LOW = 128,
8048 VK_QUEUE_GLOBAL_PRIORITY_MEDIUM = 256,
8049 VK_QUEUE_GLOBAL_PRIORITY_HIGH = 512,
8050 VK_QUEUE_GLOBAL_PRIORITY_REALTIME = 1024,
8051 VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = VK_QUEUE_GLOBAL_PRIORITY_LOW,
8052 VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = VK_QUEUE_GLOBAL_PRIORITY_MEDIUM,
8053 VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = VK_QUEUE_GLOBAL_PRIORITY_HIGH,
8054 VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = VK_QUEUE_GLOBAL_PRIORITY_REALTIME,
8055 VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR = VK_QUEUE_GLOBAL_PRIORITY_LOW,
8056 VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR = VK_QUEUE_GLOBAL_PRIORITY_MEDIUM,
8057 VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR = VK_QUEUE_GLOBAL_PRIORITY_HIGH,
8058 VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR = VK_QUEUE_GLOBAL_PRIORITY_REALTIME,
8059 VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM = 0x7FFFFFFF
8060} VkQueueGlobalPriority;
8061
8062typedef enum VkLineRasterizationMode {
8063 VK_LINE_RASTERIZATION_MODE_DEFAULT = 0,
8064 VK_LINE_RASTERIZATION_MODE_RECTANGULAR = 1,
8065 VK_LINE_RASTERIZATION_MODE_BRESENHAM = 2,
8066 VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH = 3,
8067 VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = VK_LINE_RASTERIZATION_MODE_DEFAULT,
8068 VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = VK_LINE_RASTERIZATION_MODE_RECTANGULAR,
8069 VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = VK_LINE_RASTERIZATION_MODE_BRESENHAM,
8070 VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH,
8071 VK_LINE_RASTERIZATION_MODE_DEFAULT_KHR = VK_LINE_RASTERIZATION_MODE_DEFAULT,
8072 VK_LINE_RASTERIZATION_MODE_RECTANGULAR_KHR = VK_LINE_RASTERIZATION_MODE_RECTANGULAR,
8073 VK_LINE_RASTERIZATION_MODE_BRESENHAM_KHR = VK_LINE_RASTERIZATION_MODE_BRESENHAM,
8074 VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH,
8075 VK_LINE_RASTERIZATION_MODE_MAX_ENUM = 0x7FFFFFFF
8076} VkLineRasterizationMode;
8077
8078typedef enum VkMemoryUnmapFlagBits {
8079 VK_MEMORY_UNMAP_RESERVE_BIT_EXT = 0x00000001,
8080 VK_MEMORY_UNMAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
8081} VkMemoryUnmapFlagBits;
8082typedef VkFlags VkMemoryUnmapFlags;
8083typedef VkFlags64 VkBufferUsageFlags2;
8084
8085// Flag bits for VkBufferUsageFlagBits2
8086typedef VkFlags64 VkBufferUsageFlagBits2;
8087static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFER_SRC_BIT = 0x00000001ULL;
8088static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFER_DST_BIT = 0x00000002ULL;
8089static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004ULL;
8090static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT = 0x00000008ULL;
8091static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_UNIFORM_BUFFER_BIT = 0x00000010ULL;
8092static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT = 0x00000020ULL;
8093static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_INDEX_BUFFER_BIT = 0x00000040ULL;
8094static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VERTEX_BUFFER_BIT = 0x00000080ULL;
8095static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_INDIRECT_BUFFER_BIT = 0x00000100ULL;
8096static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT = 0x00020000ULL;
8097#ifdef VK_ENABLE_BETA_EXTENSIONS
8098static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX = 0x02000000ULL;
8099#endif
8100static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFER_SRC_BIT_KHR = 0x00000001ULL;
8101static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFER_DST_BIT_KHR = 0x00000002ULL;
8102static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR = 0x00000004ULL;
8103static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR = 0x00000008ULL;
8104static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_UNIFORM_BUFFER_BIT_KHR = 0x00000010ULL;
8105static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR = 0x00000020ULL;
8106static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_INDEX_BUFFER_BIT_KHR = 0x00000040ULL;
8107static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VERTEX_BUFFER_BIT_KHR = 0x00000080ULL;
8108static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR = 0x00000100ULL;
8109static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200ULL;
8110static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR = 0x00000400ULL;
8111static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_RAY_TRACING_BIT_NV = 0x00000400ULL;
8112static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800ULL;
8113static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000ULL;
8114static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR = 0x00002000ULL;
8115static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR = 0x00004000ULL;
8116static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR = 0x00008000ULL;
8117static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR = 0x00010000ULL;
8118static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR = 0x00020000ULL;
8119static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 0x00080000ULL;
8120static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 0x00100000ULL;
8121static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 0x00200000ULL;
8122static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00400000ULL;
8123static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 0x04000000ULL;
8124static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 0x00800000ULL;
8125static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT = 0x01000000ULL;
8126#ifdef VK_ENABLE_BETA_EXTENSIONS
8127static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_COMPRESSED_DATA_DGF1_BIT_AMDX = 0x200000000ULL;
8128#endif
8129static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_DATA_GRAPH_FOREIGN_DESCRIPTOR_BIT_ARM = 0x20000000ULL;
8130static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TILE_MEMORY_BIT_QCOM = 0x08000000ULL;
8131static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_MEMORY_DECOMPRESSION_BIT_EXT = 0x100000000ULL;
8132static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_PREPROCESS_BUFFER_BIT_EXT = 0x80000000ULL;
8133
8134
8135typedef enum VkHostImageCopyFlagBits {
8136 VK_HOST_IMAGE_COPY_MEMCPY_BIT = 0x00000001,
8137 // VK_HOST_IMAGE_COPY_MEMCPY is a legacy alias
8138 VK_HOST_IMAGE_COPY_MEMCPY = VK_HOST_IMAGE_COPY_MEMCPY_BIT,
8139 VK_HOST_IMAGE_COPY_MEMCPY_BIT_EXT = VK_HOST_IMAGE_COPY_MEMCPY_BIT,
8140 // VK_HOST_IMAGE_COPY_MEMCPY_EXT is a legacy alias
8141 VK_HOST_IMAGE_COPY_MEMCPY_EXT = VK_HOST_IMAGE_COPY_MEMCPY_BIT,
8142 VK_HOST_IMAGE_COPY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
8143} VkHostImageCopyFlagBits;
8144typedef VkFlags VkHostImageCopyFlags;
8145typedef VkFlags64 VkPipelineCreateFlags2;
8146
8147// Flag bits for VkPipelineCreateFlagBits2
8148typedef VkFlags64 VkPipelineCreateFlagBits2;
8149static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT = 0x00000001ULL;
8150static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT = 0x00000002ULL;
8151static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DERIVATIVE_BIT = 0x00000004ULL;
8152static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008ULL;
8153static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DISPATCH_BASE_BIT = 0x00000010ULL;
8154static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT = 0x00000100ULL;
8155static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT = 0x00000200ULL;
8156static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT = 0x08000000ULL;
8157static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT = 0x40000000ULL;
8158#ifdef VK_ENABLE_BETA_EXTENSIONS
8159static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_AMDX = 0x100000000ULL;
8160#endif
8161static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_BUILT_IN_PRIMITIVES_BIT_KHR = 0x00001000ULL;
8162static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_ALLOW_SPHERES_AND_LINEAR_SWEPT_SPHERES_BIT_NV = 0x200000000ULL;
8163static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x400000000ULL;
8164static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT_KHR = 0x00000001ULL;
8165static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT_KHR = 0x00000002ULL;
8166static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DERIVATIVE_BIT_KHR = 0x00000004ULL;
8167static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = 0x00000008ULL;
8168static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DISPATCH_BASE_BIT_KHR = 0x00000010ULL;
8169static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DEFER_COMPILE_BIT_NV = 0x00000020ULL;
8170static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_CAPTURE_STATISTICS_BIT_KHR = 0x00000040ULL;
8171static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x00000080ULL;
8172static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR = 0x00000100ULL;
8173static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR = 0x00000200ULL;
8174static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT = 0x00000400ULL;
8175static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 0x00800000ULL;
8176static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_LIBRARY_BIT_KHR = 0x00000800ULL;
8177static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = 0x00001000ULL;
8178static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_AABBS_BIT_KHR = 0x00002000ULL;
8179static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = 0x00004000ULL;
8180static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = 0x00008000ULL;
8181static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = 0x00010000ULL;
8182static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = 0x00020000ULL;
8183static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR = 0x00080000ULL;
8184static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_NV = 0x00040000ULL;
8185static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_ALLOW_MOTION_BIT_NV = 0x00100000ULL;
8186static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00200000ULL;
8187static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00400000ULL;
8188static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 0x01000000ULL;
8189static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x02000000ULL;
8190static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x04000000ULL;
8191static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_EXT = 0x08000000ULL;
8192static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT = 0x40000000ULL;
8193static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV = 0x10000000ULL;
8194static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT = 0x20000000ULL;
8195static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DISALLOW_OPACITY_MICROMAP_BIT_ARM = 0x2000000000ULL;
8196static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR = 0x80000000ULL;
8197static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT = 0x4000000000ULL;
8198static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_PER_LAYER_FRAGMENT_DENSITY_BIT_VALVE = 0x10000000000ULL;
8199static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_64_BIT_INDEXING_BIT_EXT = 0x80000000000ULL;
8200
8201typedef struct VkPhysicalDeviceVulkan14Features {
8202 VkStructureType sType;
8203 void* pNext;
8204 VkBool32 globalPriorityQuery;
8205 VkBool32 shaderSubgroupRotate;
8206 VkBool32 shaderSubgroupRotateClustered;
8207 VkBool32 shaderFloatControls2;
8208 VkBool32 shaderExpectAssume;
8209 VkBool32 rectangularLines;
8210 VkBool32 bresenhamLines;
8211 VkBool32 smoothLines;
8212 VkBool32 stippledRectangularLines;
8213 VkBool32 stippledBresenhamLines;
8214 VkBool32 stippledSmoothLines;
8215 VkBool32 vertexAttributeInstanceRateDivisor;
8216 VkBool32 vertexAttributeInstanceRateZeroDivisor;
8217 VkBool32 indexTypeUint8;
8218 VkBool32 dynamicRenderingLocalRead;
8219 VkBool32 maintenance5;
8220 VkBool32 maintenance6;
8221 VkBool32 pipelineProtectedAccess;
8222 VkBool32 pipelineRobustness;
8223 VkBool32 hostImageCopy;
8224 VkBool32 pushDescriptor;
8225} VkPhysicalDeviceVulkan14Features;
8226
8227typedef struct VkPhysicalDeviceVulkan14Properties {
8228 VkStructureType sType;
8229 void* pNext;
8230 uint32_t lineSubPixelPrecisionBits;
8231 uint32_t maxVertexAttribDivisor;
8232 VkBool32 supportsNonZeroFirstInstance;
8233 uint32_t maxPushDescriptors;
8234 VkBool32 dynamicRenderingLocalReadDepthStencilAttachments;
8235 VkBool32 dynamicRenderingLocalReadMultisampledAttachments;
8236 VkBool32 earlyFragmentMultisampleCoverageAfterSampleCounting;
8237 VkBool32 earlyFragmentSampleMaskTestBeforeSampleCounting;
8238 VkBool32 depthStencilSwizzleOneSupport;
8239 VkBool32 polygonModePointSize;
8240 VkBool32 nonStrictSinglePixelWideLinesUseParallelogram;
8241 VkBool32 nonStrictWideLinesUseParallelogram;
8242 VkBool32 blockTexelViewCompatibleMultipleLayers;
8243 uint32_t maxCombinedImageSamplerDescriptorCount;
8244 VkBool32 fragmentShadingRateClampCombinerInputs;
8245 VkPipelineRobustnessBufferBehavior defaultRobustnessStorageBuffers;
8246 VkPipelineRobustnessBufferBehavior defaultRobustnessUniformBuffers;
8247 VkPipelineRobustnessBufferBehavior defaultRobustnessVertexInputs;
8248 VkPipelineRobustnessImageBehavior defaultRobustnessImages;
8249 uint32_t copySrcLayoutCount;
8250 VkImageLayout* pCopySrcLayouts;
8251 uint32_t copyDstLayoutCount;
8252 VkImageLayout* pCopyDstLayouts;
8253 uint8_t optimalTilingLayoutUUID[VK_UUID_SIZE];
8254 VkBool32 identicalMemoryTypeRequirements;
8255} VkPhysicalDeviceVulkan14Properties;
8256
8257typedef struct VkDeviceQueueGlobalPriorityCreateInfo {
8258 VkStructureType sType;
8259 const void* pNext;
8260 VkQueueGlobalPriority globalPriority;
8261} VkDeviceQueueGlobalPriorityCreateInfo;
8262
8263typedef struct VkPhysicalDeviceGlobalPriorityQueryFeatures {
8264 VkStructureType sType;
8265 void* pNext;
8266 VkBool32 globalPriorityQuery;
8267} VkPhysicalDeviceGlobalPriorityQueryFeatures;
8268
8269typedef struct VkQueueFamilyGlobalPriorityProperties {
8270 VkStructureType sType;
8271 void* pNext;
8272 uint32_t priorityCount;
8273 VkQueueGlobalPriority priorities[VK_MAX_GLOBAL_PRIORITY_SIZE];
8274} VkQueueFamilyGlobalPriorityProperties;
8275
8276typedef struct VkPhysicalDeviceIndexTypeUint8Features {
8277 VkStructureType sType;
8278 void* pNext;
8279 VkBool32 indexTypeUint8;
8280} VkPhysicalDeviceIndexTypeUint8Features;
8281
8282typedef struct VkMemoryMapInfo {
8283 VkStructureType sType;
8284 const void* pNext;
8285 VkMemoryMapFlags flags;
8286 VkDeviceMemory memory;
8287 VkDeviceSize offset;
8288 VkDeviceSize size;
8289} VkMemoryMapInfo;
8290
8291typedef struct VkMemoryUnmapInfo {
8292 VkStructureType sType;
8293 const void* pNext;
8294 VkMemoryUnmapFlags flags;
8295 VkDeviceMemory memory;
8296} VkMemoryUnmapInfo;
8297
8298typedef struct VkPhysicalDeviceMaintenance5Features {
8299 VkStructureType sType;
8300 void* pNext;
8301 VkBool32 maintenance5;
8302} VkPhysicalDeviceMaintenance5Features;
8303
8304typedef struct VkPhysicalDeviceMaintenance5Properties {
8305 VkStructureType sType;
8306 void* pNext;
8307 VkBool32 earlyFragmentMultisampleCoverageAfterSampleCounting;
8308 VkBool32 earlyFragmentSampleMaskTestBeforeSampleCounting;
8309 VkBool32 depthStencilSwizzleOneSupport;
8310 VkBool32 polygonModePointSize;
8311 VkBool32 nonStrictSinglePixelWideLinesUseParallelogram;
8312 VkBool32 nonStrictWideLinesUseParallelogram;
8313} VkPhysicalDeviceMaintenance5Properties;
8314
8315typedef struct VkImageSubresource2 {
8316 VkStructureType sType;
8317 void* pNext;
8318 VkImageSubresource imageSubresource;
8319} VkImageSubresource2;
8320
8321typedef struct VkDeviceImageSubresourceInfo {
8322 VkStructureType sType;
8323 const void* pNext;
8324 const VkImageCreateInfo* pCreateInfo;
8325 const VkImageSubresource2* pSubresource;
8326} VkDeviceImageSubresourceInfo;
8327
8328typedef struct VkSubresourceLayout2 {
8329 VkStructureType sType;
8330 void* pNext;
8331 VkSubresourceLayout subresourceLayout;
8332} VkSubresourceLayout2;
8333
8334typedef struct VkBufferUsageFlags2CreateInfo {
8335 VkStructureType sType;
8336 const void* pNext;
8337 VkBufferUsageFlags2 usage;
8338} VkBufferUsageFlags2CreateInfo;
8339
8340typedef struct VkPhysicalDeviceMaintenance6Features {
8341 VkStructureType sType;
8342 void* pNext;
8343 VkBool32 maintenance6;
8344} VkPhysicalDeviceMaintenance6Features;
8345
8346typedef struct VkPhysicalDeviceMaintenance6Properties {
8347 VkStructureType sType;
8348 void* pNext;
8349 VkBool32 blockTexelViewCompatibleMultipleLayers;
8350 uint32_t maxCombinedImageSamplerDescriptorCount;
8351 VkBool32 fragmentShadingRateClampCombinerInputs;
8352} VkPhysicalDeviceMaintenance6Properties;
8353
8354typedef struct VkBindMemoryStatus {
8355 VkStructureType sType;
8356 const void* pNext;
8357 VkResult* pResult;
8358} VkBindMemoryStatus;
8359
8360typedef struct VkPhysicalDeviceHostImageCopyFeatures {
8361 VkStructureType sType;
8362 void* pNext;
8363 VkBool32 hostImageCopy;
8364} VkPhysicalDeviceHostImageCopyFeatures;
8365
8366typedef struct VkPhysicalDeviceHostImageCopyProperties {
8367 VkStructureType sType;
8368 void* pNext;
8369 uint32_t copySrcLayoutCount;
8370 VkImageLayout* pCopySrcLayouts;
8371 uint32_t copyDstLayoutCount;
8372 VkImageLayout* pCopyDstLayouts;
8373 uint8_t optimalTilingLayoutUUID[VK_UUID_SIZE];
8374 VkBool32 identicalMemoryTypeRequirements;
8375} VkPhysicalDeviceHostImageCopyProperties;
8376
8377typedef struct VkMemoryToImageCopy {
8378 VkStructureType sType;
8379 const void* pNext;
8380 const void* pHostPointer;
8381 uint32_t memoryRowLength;
8382 uint32_t memoryImageHeight;
8383 VkImageSubresourceLayers imageSubresource;
8384 VkOffset3D imageOffset;
8385 VkExtent3D imageExtent;
8386} VkMemoryToImageCopy;
8387
8388typedef struct VkImageToMemoryCopy {
8389 VkStructureType sType;
8390 const void* pNext;
8391 void* pHostPointer;
8392 uint32_t memoryRowLength;
8393 uint32_t memoryImageHeight;
8394 VkImageSubresourceLayers imageSubresource;
8395 VkOffset3D imageOffset;
8396 VkExtent3D imageExtent;
8397} VkImageToMemoryCopy;
8398
8399typedef struct VkCopyMemoryToImageInfo {
8400 VkStructureType sType;
8401 const void* pNext;
8402 VkHostImageCopyFlags flags;
8403 VkImage dstImage;
8404 VkImageLayout dstImageLayout;
8405 uint32_t regionCount;
8406 const VkMemoryToImageCopy* pRegions;
8407} VkCopyMemoryToImageInfo;
8408
8409typedef struct VkCopyImageToMemoryInfo {
8410 VkStructureType sType;
8411 const void* pNext;
8412 VkHostImageCopyFlags flags;
8413 VkImage srcImage;
8414 VkImageLayout srcImageLayout;
8415 uint32_t regionCount;
8416 const VkImageToMemoryCopy* pRegions;
8417} VkCopyImageToMemoryInfo;
8418
8419typedef struct VkCopyImageToImageInfo {
8420 VkStructureType sType;
8421 const void* pNext;
8422 VkHostImageCopyFlags flags;
8423 VkImage srcImage;
8424 VkImageLayout srcImageLayout;
8425 VkImage dstImage;
8426 VkImageLayout dstImageLayout;
8427 uint32_t regionCount;
8428 const VkImageCopy2* pRegions;
8429} VkCopyImageToImageInfo;
8430
8431typedef struct VkHostImageLayoutTransitionInfo {
8432 VkStructureType sType;
8433 const void* pNext;
8434 VkImage image;
8435 VkImageLayout oldLayout;
8436 VkImageLayout newLayout;
8437 VkImageSubresourceRange subresourceRange;
8438} VkHostImageLayoutTransitionInfo;
8439
8440typedef struct VkSubresourceHostMemcpySize {
8441 VkStructureType sType;
8442 void* pNext;
8443 VkDeviceSize size;
8444} VkSubresourceHostMemcpySize;
8445
8446typedef struct VkHostImageCopyDevicePerformanceQuery {
8447 VkStructureType sType;
8448 void* pNext;
8449 VkBool32 optimalDeviceAccess;
8450 VkBool32 identicalMemoryLayout;
8451} VkHostImageCopyDevicePerformanceQuery;
8452
8453typedef struct VkPhysicalDeviceShaderSubgroupRotateFeatures {
8454 VkStructureType sType;
8455 void* pNext;
8456 VkBool32 shaderSubgroupRotate;
8457 VkBool32 shaderSubgroupRotateClustered;
8458} VkPhysicalDeviceShaderSubgroupRotateFeatures;
8459
8460typedef struct VkPhysicalDeviceShaderFloatControls2Features {
8461 VkStructureType sType;
8462 void* pNext;
8463 VkBool32 shaderFloatControls2;
8464} VkPhysicalDeviceShaderFloatControls2Features;
8465
8466typedef struct VkPhysicalDeviceShaderExpectAssumeFeatures {
8467 VkStructureType sType;
8468 void* pNext;
8469 VkBool32 shaderExpectAssume;
8470} VkPhysicalDeviceShaderExpectAssumeFeatures;
8471
8472typedef struct VkPipelineCreateFlags2CreateInfo {
8473 VkStructureType sType;
8474 const void* pNext;
8475 VkPipelineCreateFlags2 flags;
8476} VkPipelineCreateFlags2CreateInfo;
8477
8478typedef struct VkPhysicalDevicePushDescriptorProperties {
8479 VkStructureType sType;
8480 void* pNext;
8481 uint32_t maxPushDescriptors;
8482} VkPhysicalDevicePushDescriptorProperties;
8483
8484typedef struct VkBindDescriptorSetsInfo {
8485 VkStructureType sType;
8486 const void* pNext;
8487 VkShaderStageFlags stageFlags;
8488 VkPipelineLayout layout;
8489 uint32_t firstSet;
8490 uint32_t descriptorSetCount;
8491 const VkDescriptorSet* pDescriptorSets;
8492 uint32_t dynamicOffsetCount;
8493 const uint32_t* pDynamicOffsets;
8494} VkBindDescriptorSetsInfo;
8495
8496typedef struct VkPushConstantsInfo {
8497 VkStructureType sType;
8498 const void* pNext;
8499 VkPipelineLayout layout;
8500 VkShaderStageFlags stageFlags;
8501 uint32_t offset;
8502 uint32_t size;
8503 const void* pValues;
8504} VkPushConstantsInfo;
8505
8506typedef struct VkPushDescriptorSetInfo {
8507 VkStructureType sType;
8508 const void* pNext;
8509 VkShaderStageFlags stageFlags;
8510 VkPipelineLayout layout;
8511 uint32_t set;
8512 uint32_t descriptorWriteCount;
8513 const VkWriteDescriptorSet* pDescriptorWrites;
8514} VkPushDescriptorSetInfo;
8515
8516typedef struct VkPushDescriptorSetWithTemplateInfo {
8517 VkStructureType sType;
8518 const void* pNext;
8519 VkDescriptorUpdateTemplate descriptorUpdateTemplate;
8520 VkPipelineLayout layout;
8521 uint32_t set;
8522 const void* pData;
8523} VkPushDescriptorSetWithTemplateInfo;
8524
8525typedef struct VkPhysicalDevicePipelineProtectedAccessFeatures {
8526 VkStructureType sType;
8527 void* pNext;
8528 VkBool32 pipelineProtectedAccess;
8529} VkPhysicalDevicePipelineProtectedAccessFeatures;
8530
8531typedef struct VkPhysicalDevicePipelineRobustnessFeatures {
8532 VkStructureType sType;
8533 void* pNext;
8534 VkBool32 pipelineRobustness;
8535} VkPhysicalDevicePipelineRobustnessFeatures;
8536
8537typedef struct VkPhysicalDevicePipelineRobustnessProperties {
8538 VkStructureType sType;
8539 void* pNext;
8540 VkPipelineRobustnessBufferBehavior defaultRobustnessStorageBuffers;
8541 VkPipelineRobustnessBufferBehavior defaultRobustnessUniformBuffers;
8542 VkPipelineRobustnessBufferBehavior defaultRobustnessVertexInputs;
8543 VkPipelineRobustnessImageBehavior defaultRobustnessImages;
8544} VkPhysicalDevicePipelineRobustnessProperties;
8545
8546typedef struct VkPipelineRobustnessCreateInfo {
8547 VkStructureType sType;
8548 const void* pNext;
8549 VkPipelineRobustnessBufferBehavior storageBuffers;
8550 VkPipelineRobustnessBufferBehavior uniformBuffers;
8551 VkPipelineRobustnessBufferBehavior vertexInputs;
8552 VkPipelineRobustnessImageBehavior images;
8553} VkPipelineRobustnessCreateInfo;
8554
8555typedef struct VkPhysicalDeviceLineRasterizationFeatures {
8556 VkStructureType sType;
8557 void* pNext;
8558 VkBool32 rectangularLines;
8559 VkBool32 bresenhamLines;
8560 VkBool32 smoothLines;
8561 VkBool32 stippledRectangularLines;
8562 VkBool32 stippledBresenhamLines;
8563 VkBool32 stippledSmoothLines;
8564} VkPhysicalDeviceLineRasterizationFeatures;
8565
8566typedef struct VkPhysicalDeviceLineRasterizationProperties {
8567 VkStructureType sType;
8568 void* pNext;
8569 uint32_t lineSubPixelPrecisionBits;
8570} VkPhysicalDeviceLineRasterizationProperties;
8571
8572typedef struct VkPipelineRasterizationLineStateCreateInfo {
8573 VkStructureType sType;
8574 const void* pNext;
8575 VkLineRasterizationMode lineRasterizationMode;
8576 VkBool32 stippledLineEnable;
8577 uint32_t lineStippleFactor;
8578 uint16_t lineStipplePattern;
8579} VkPipelineRasterizationLineStateCreateInfo;
8580
8581typedef struct VkPhysicalDeviceVertexAttributeDivisorProperties {
8582 VkStructureType sType;
8583 void* pNext;
8584 uint32_t maxVertexAttribDivisor;
8585 VkBool32 supportsNonZeroFirstInstance;
8586} VkPhysicalDeviceVertexAttributeDivisorProperties;
8587
8588typedef struct VkVertexInputBindingDivisorDescription {
8589 uint32_t binding;
8590 uint32_t divisor;
8591} VkVertexInputBindingDivisorDescription;
8592
8593typedef struct VkPipelineVertexInputDivisorStateCreateInfo {
8594 VkStructureType sType;
8595 const void* pNext;
8596 uint32_t vertexBindingDivisorCount;
8597 const VkVertexInputBindingDivisorDescription* pVertexBindingDivisors;
8598} VkPipelineVertexInputDivisorStateCreateInfo;
8599
8600typedef struct VkPhysicalDeviceVertexAttributeDivisorFeatures {
8601 VkStructureType sType;
8602 void* pNext;
8603 VkBool32 vertexAttributeInstanceRateDivisor;
8604 VkBool32 vertexAttributeInstanceRateZeroDivisor;
8605} VkPhysicalDeviceVertexAttributeDivisorFeatures;
8606
8607typedef struct VkRenderingAreaInfo {
8608 VkStructureType sType;
8609 const void* pNext;
8610 uint32_t viewMask;
8611 uint32_t colorAttachmentCount;
8612 const VkFormat* pColorAttachmentFormats;
8613 VkFormat depthAttachmentFormat;
8614 VkFormat stencilAttachmentFormat;
8615} VkRenderingAreaInfo;
8616
8617typedef struct VkPhysicalDeviceDynamicRenderingLocalReadFeatures {
8618 VkStructureType sType;
8619 void* pNext;
8620 VkBool32 dynamicRenderingLocalRead;
8621} VkPhysicalDeviceDynamicRenderingLocalReadFeatures;
8622
8623typedef struct VkRenderingAttachmentLocationInfo {
8624 VkStructureType sType;
8625 const void* pNext;
8626 uint32_t colorAttachmentCount;
8627 const uint32_t* pColorAttachmentLocations;
8628} VkRenderingAttachmentLocationInfo;
8629
8630typedef struct VkRenderingInputAttachmentIndexInfo {
8631 VkStructureType sType;
8632 const void* pNext;
8633 uint32_t colorAttachmentCount;
8634 const uint32_t* pColorAttachmentInputIndices;
8635 const uint32_t* pDepthInputAttachmentIndex;
8636 const uint32_t* pStencilInputAttachmentIndex;
8637} VkRenderingInputAttachmentIndexInfo;
8638
8639typedef VkResult (VKAPI_PTR *PFN_vkMapMemory2)(VkDevice device, const VkMemoryMapInfo* pMemoryMapInfo, void** ppData);
8640typedef VkResult (VKAPI_PTR *PFN_vkUnmapMemory2)(VkDevice device, const VkMemoryUnmapInfo* pMemoryUnmapInfo);
8641typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSubresourceLayout)(VkDevice device, const VkDeviceImageSubresourceInfo* pInfo, VkSubresourceLayout2* pLayout);
8642typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout2)(VkDevice device, VkImage image, const VkImageSubresource2* pSubresource, VkSubresourceLayout2* pLayout);
8643typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToImage)(VkDevice device, const VkCopyMemoryToImageInfo* pCopyMemoryToImageInfo);
8644typedef VkResult (VKAPI_PTR *PFN_vkCopyImageToMemory)(VkDevice device, const VkCopyImageToMemoryInfo* pCopyImageToMemoryInfo);
8645typedef VkResult (VKAPI_PTR *PFN_vkCopyImageToImage)(VkDevice device, const VkCopyImageToImageInfo* pCopyImageToImageInfo);
8646typedef VkResult (VKAPI_PTR *PFN_vkTransitionImageLayout)(VkDevice device, uint32_t transitionCount, const VkHostImageLayoutTransitionInfo* pTransitions);
8647typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSet)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites);
8648typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplate)(VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData);
8649typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorSets2)(VkCommandBuffer commandBuffer, const VkBindDescriptorSetsInfo* pBindDescriptorSetsInfo);
8650typedef void (VKAPI_PTR *PFN_vkCmdPushConstants2)(VkCommandBuffer commandBuffer, const VkPushConstantsInfo* pPushConstantsInfo);
8651typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSet2)(VkCommandBuffer commandBuffer, const VkPushDescriptorSetInfo* pPushDescriptorSetInfo);
8652typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplate2)(VkCommandBuffer commandBuffer, const VkPushDescriptorSetWithTemplateInfo* pPushDescriptorSetWithTemplateInfo);
8653typedef void (VKAPI_PTR *PFN_vkCmdSetLineStipple)(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern);
8654typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer2)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkDeviceSize size, VkIndexType indexType);
8655typedef void (VKAPI_PTR *PFN_vkGetRenderingAreaGranularity)(VkDevice device, const VkRenderingAreaInfo* pRenderingAreaInfo, VkExtent2D* pGranularity);
8656typedef void (VKAPI_PTR *PFN_vkCmdSetRenderingAttachmentLocations)(VkCommandBuffer commandBuffer, const VkRenderingAttachmentLocationInfo* pLocationInfo);
8657typedef void (VKAPI_PTR *PFN_vkCmdSetRenderingInputAttachmentIndices)(VkCommandBuffer commandBuffer, const VkRenderingInputAttachmentIndexInfo* pInputAttachmentIndexInfo);
8658
8659#ifndef VK_NO_PROTOTYPES
8660VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory2(
8661 VkDevice device,
8662 const VkMemoryMapInfo* pMemoryMapInfo,
8663 void** ppData);
8664
8665VKAPI_ATTR VkResult VKAPI_CALL vkUnmapMemory2(
8666 VkDevice device,
8667 const VkMemoryUnmapInfo* pMemoryUnmapInfo);
8668
8669VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSubresourceLayout(
8670 VkDevice device,
8671 const VkDeviceImageSubresourceInfo* pInfo,
8672 VkSubresourceLayout2* pLayout);
8673
8674VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout2(
8675 VkDevice device,
8676 VkImage image,
8677 const VkImageSubresource2* pSubresource,
8678 VkSubresourceLayout2* pLayout);
8679
8680VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToImage(
8681 VkDevice device,
8682 const VkCopyMemoryToImageInfo* pCopyMemoryToImageInfo);
8683
8684VKAPI_ATTR VkResult VKAPI_CALL vkCopyImageToMemory(
8685 VkDevice device,
8686 const VkCopyImageToMemoryInfo* pCopyImageToMemoryInfo);
8687
8688VKAPI_ATTR VkResult VKAPI_CALL vkCopyImageToImage(
8689 VkDevice device,
8690 const VkCopyImageToImageInfo* pCopyImageToImageInfo);
8691
8692VKAPI_ATTR VkResult VKAPI_CALL vkTransitionImageLayout(
8693 VkDevice device,
8694 uint32_t transitionCount,
8695 const VkHostImageLayoutTransitionInfo* pTransitions);
8696
8697VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSet(
8698 VkCommandBuffer commandBuffer,
8699 VkPipelineBindPoint pipelineBindPoint,
8700 VkPipelineLayout layout,
8701 uint32_t set,
8702 uint32_t descriptorWriteCount,
8703 const VkWriteDescriptorSet* pDescriptorWrites);
8704
8705VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplate(
8706 VkCommandBuffer commandBuffer,
8707 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
8708 VkPipelineLayout layout,
8709 uint32_t set,
8710 const void* pData);
8711
8712VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets2(
8713 VkCommandBuffer commandBuffer,
8714 const VkBindDescriptorSetsInfo* pBindDescriptorSetsInfo);
8715
8716VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants2(
8717 VkCommandBuffer commandBuffer,
8718 const VkPushConstantsInfo* pPushConstantsInfo);
8719
8720VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSet2(
8721 VkCommandBuffer commandBuffer,
8722 const VkPushDescriptorSetInfo* pPushDescriptorSetInfo);
8723
8724VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplate2(
8725 VkCommandBuffer commandBuffer,
8726 const VkPushDescriptorSetWithTemplateInfo* pPushDescriptorSetWithTemplateInfo);
8727
8728VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStipple(
8729 VkCommandBuffer commandBuffer,
8730 uint32_t lineStippleFactor,
8731 uint16_t lineStipplePattern);
8732
8733VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer2(
8734 VkCommandBuffer commandBuffer,
8735 VkBuffer buffer,
8736 VkDeviceSize offset,
8737 VkDeviceSize size,
8738 VkIndexType indexType);
8739
8740VKAPI_ATTR void VKAPI_CALL vkGetRenderingAreaGranularity(
8741 VkDevice device,
8742 const VkRenderingAreaInfo* pRenderingAreaInfo,
8743 VkExtent2D* pGranularity);
8744
8745VKAPI_ATTR void VKAPI_CALL vkCmdSetRenderingAttachmentLocations(
8746 VkCommandBuffer commandBuffer,
8747 const VkRenderingAttachmentLocationInfo* pLocationInfo);
8748
8749VKAPI_ATTR void VKAPI_CALL vkCmdSetRenderingInputAttachmentIndices(
8750 VkCommandBuffer commandBuffer,
8751 const VkRenderingInputAttachmentIndexInfo* pInputAttachmentIndexInfo);
8752#endif
8753
8754
8755// VK_KHR_surface is a preprocessor guard. Do not pass it to API calls.
8756#define VK_KHR_surface 1
8757VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR)
8758#define VK_KHR_SURFACE_SPEC_VERSION 25
8759#define VK_KHR_SURFACE_EXTENSION_NAME "VK_KHR_surface"
8760
8761typedef enum VkPresentModeKHR {
8762 VK_PRESENT_MODE_IMMEDIATE_KHR = 0,
8763 VK_PRESENT_MODE_MAILBOX_KHR = 1,
8764 VK_PRESENT_MODE_FIFO_KHR = 2,
8765 VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3,
8766 VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000,
8767 VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001,
8768 VK_PRESENT_MODE_FIFO_LATEST_READY_KHR = 1000361000,
8769 VK_PRESENT_MODE_FIFO_LATEST_READY_EXT = VK_PRESENT_MODE_FIFO_LATEST_READY_KHR,
8770 VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
8771} VkPresentModeKHR;
8772
8773typedef enum VkColorSpaceKHR {
8774 VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0,
8775 VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001,
8776 VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002,
8777 VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT = 1000104003,
8778 VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004,
8779 VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005,
8780 VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006,
8781 VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007,
8782 VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008,
8783 // VK_COLOR_SPACE_DOLBYVISION_EXT is legacy, but no reason was given in the API XML
8784 VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009,
8785 VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010,
8786 VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011,
8787 VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012,
8788 VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013,
8789 VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014,
8790 VK_COLOR_SPACE_DISPLAY_NATIVE_AMD = 1000213000,
8791 // VK_COLORSPACE_SRGB_NONLINEAR_KHR is a legacy alias
8792 VK_COLORSPACE_SRGB_NONLINEAR_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
8793 // VK_COLOR_SPACE_DCI_P3_LINEAR_EXT is a legacy alias
8794 VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT,
8795 VK_COLOR_SPACE_MAX_ENUM_KHR = 0x7FFFFFFF
8796} VkColorSpaceKHR;
8797
8798typedef enum VkSurfaceTransformFlagBitsKHR {
8799 VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001,
8800 VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002,
8801 VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004,
8802 VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008,
8803 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010,
8804 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020,
8805 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040,
8806 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080,
8807 VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
8808 VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8809} VkSurfaceTransformFlagBitsKHR;
8810
8811typedef enum VkCompositeAlphaFlagBitsKHR {
8812 VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
8813 VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
8814 VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
8815 VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
8816 VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8817} VkCompositeAlphaFlagBitsKHR;
8818typedef VkFlags VkCompositeAlphaFlagsKHR;
8819typedef VkFlags VkSurfaceTransformFlagsKHR;
8820typedef struct VkSurfaceCapabilitiesKHR {
8821 uint32_t minImageCount;
8822 uint32_t maxImageCount;
8823 VkExtent2D currentExtent;
8824 VkExtent2D minImageExtent;
8825 VkExtent2D maxImageExtent;
8826 uint32_t maxImageArrayLayers;
8827 VkSurfaceTransformFlagsKHR supportedTransforms;
8828 VkSurfaceTransformFlagBitsKHR currentTransform;
8829 VkCompositeAlphaFlagsKHR supportedCompositeAlpha;
8830 VkImageUsageFlags supportedUsageFlags;
8831} VkSurfaceCapabilitiesKHR;
8832
8833typedef struct VkSurfaceFormatKHR {
8834 VkFormat format;
8835 VkColorSpaceKHR colorSpace;
8836} VkSurfaceFormatKHR;
8837
8838typedef void (VKAPI_PTR *PFN_vkDestroySurfaceKHR)(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator);
8839typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported);
8840typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
8841typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats);
8842typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes);
8843
8844#ifndef VK_NO_PROTOTYPES
8845#ifndef VK_ONLY_EXPORTED_PROTOTYPES
8846VKAPI_ATTR void VKAPI_CALL vkDestroySurfaceKHR(
8847 VkInstance instance,
8848 VkSurfaceKHR surface,
8849 const VkAllocationCallbacks* pAllocator);
8850#endif
8851
8852#ifndef VK_ONLY_EXPORTED_PROTOTYPES
8853VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceSupportKHR(
8854 VkPhysicalDevice physicalDevice,
8855 uint32_t queueFamilyIndex,
8856 VkSurfaceKHR surface,
8857 VkBool32* pSupported);
8858#endif
8859
8860#ifndef VK_ONLY_EXPORTED_PROTOTYPES
8861VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
8862 VkPhysicalDevice physicalDevice,
8863 VkSurfaceKHR surface,
8864 VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
8865#endif
8866
8867#ifndef VK_ONLY_EXPORTED_PROTOTYPES
8868VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormatsKHR(
8869 VkPhysicalDevice physicalDevice,
8870 VkSurfaceKHR surface,
8871 uint32_t* pSurfaceFormatCount,
8872 VkSurfaceFormatKHR* pSurfaceFormats);
8873#endif
8874
8875#ifndef VK_ONLY_EXPORTED_PROTOTYPES
8876VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModesKHR(
8877 VkPhysicalDevice physicalDevice,
8878 VkSurfaceKHR surface,
8879 uint32_t* pPresentModeCount,
8880 VkPresentModeKHR* pPresentModes);
8881#endif
8882#endif
8883
8884
8885// VK_KHR_swapchain is a preprocessor guard. Do not pass it to API calls.
8886#define VK_KHR_swapchain 1
8887VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR)
8888#define VK_KHR_SWAPCHAIN_SPEC_VERSION 70
8889#define VK_KHR_SWAPCHAIN_EXTENSION_NAME "VK_KHR_swapchain"
8890
8891typedef enum VkSwapchainCreateFlagBitsKHR {
8892 VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001,
8893 VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002,
8894 VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 0x00000004,
8895 VK_SWAPCHAIN_CREATE_PRESENT_TIMING_BIT_EXT = 0x00000200,
8896 VK_SWAPCHAIN_CREATE_PRESENT_ID_2_BIT_KHR = 0x00000040,
8897 VK_SWAPCHAIN_CREATE_PRESENT_WAIT_2_BIT_KHR = 0x00000080,
8898 VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_KHR = 0x00000008,
8899 VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT = VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_KHR,
8900 VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8901} VkSwapchainCreateFlagBitsKHR;
8902typedef VkFlags VkSwapchainCreateFlagsKHR;
8903
8904typedef enum VkDeviceGroupPresentModeFlagBitsKHR {
8905 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0x00000001,
8906 VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0x00000002,
8907 VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0x00000004,
8908 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0x00000008,
8909 VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8910} VkDeviceGroupPresentModeFlagBitsKHR;
8911typedef VkFlags VkDeviceGroupPresentModeFlagsKHR;
8912typedef struct VkSwapchainCreateInfoKHR {
8913 VkStructureType sType;
8914 const void* pNext;
8915 VkSwapchainCreateFlagsKHR flags;
8916 VkSurfaceKHR surface;
8917 uint32_t minImageCount;
8918 VkFormat imageFormat;
8919 VkColorSpaceKHR imageColorSpace;
8920 VkExtent2D imageExtent;
8921 uint32_t imageArrayLayers;
8922 VkImageUsageFlags imageUsage;
8923 VkSharingMode imageSharingMode;
8924 uint32_t queueFamilyIndexCount;
8925 const uint32_t* pQueueFamilyIndices;
8926 VkSurfaceTransformFlagBitsKHR preTransform;
8927 VkCompositeAlphaFlagBitsKHR compositeAlpha;
8928 VkPresentModeKHR presentMode;
8929 VkBool32 clipped;
8930 VkSwapchainKHR oldSwapchain;
8931} VkSwapchainCreateInfoKHR;
8932
8933typedef struct VkPresentInfoKHR {
8934 VkStructureType sType;
8935 const void* pNext;
8936 uint32_t waitSemaphoreCount;
8937 const VkSemaphore* pWaitSemaphores;
8938 uint32_t swapchainCount;
8939 const VkSwapchainKHR* pSwapchains;
8940 const uint32_t* pImageIndices;
8941 VkResult* pResults;
8942} VkPresentInfoKHR;
8943
8944typedef struct VkImageSwapchainCreateInfoKHR {
8945 VkStructureType sType;
8946 const void* pNext;
8947 VkSwapchainKHR swapchain;
8948} VkImageSwapchainCreateInfoKHR;
8949
8950typedef struct VkBindImageMemorySwapchainInfoKHR {
8951 VkStructureType sType;
8952 const void* pNext;
8953 VkSwapchainKHR swapchain;
8954 uint32_t imageIndex;
8955} VkBindImageMemorySwapchainInfoKHR;
8956
8957typedef struct VkAcquireNextImageInfoKHR {
8958 VkStructureType sType;
8959 const void* pNext;
8960 VkSwapchainKHR swapchain;
8961 uint64_t timeout;
8962 VkSemaphore semaphore;
8963 VkFence fence;
8964 uint32_t deviceMask;
8965} VkAcquireNextImageInfoKHR;
8966
8967typedef struct VkDeviceGroupPresentCapabilitiesKHR {
8968 VkStructureType sType;
8969 void* pNext;
8970 uint32_t presentMask[VK_MAX_DEVICE_GROUP_SIZE];
8971 VkDeviceGroupPresentModeFlagsKHR modes;
8972} VkDeviceGroupPresentCapabilitiesKHR;
8973
8974typedef struct VkDeviceGroupPresentInfoKHR {
8975 VkStructureType sType;
8976 const void* pNext;
8977 uint32_t swapchainCount;
8978 const uint32_t* pDeviceMasks;
8979 VkDeviceGroupPresentModeFlagBitsKHR mode;
8980} VkDeviceGroupPresentInfoKHR;
8981
8982typedef struct VkDeviceGroupSwapchainCreateInfoKHR {
8983 VkStructureType sType;
8984 const void* pNext;
8985 VkDeviceGroupPresentModeFlagsKHR modes;
8986} VkDeviceGroupSwapchainCreateInfoKHR;
8987
8988typedef VkResult (VKAPI_PTR *PFN_vkCreateSwapchainKHR)(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain);
8989typedef void (VKAPI_PTR *PFN_vkDestroySwapchainKHR)(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator);
8990typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainImagesKHR)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages);
8991typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImageKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex);
8992typedef VkResult (VKAPI_PTR *PFN_vkQueuePresentKHR)(VkQueue queue, const VkPresentInfoKHR* pPresentInfo);
8993typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupPresentCapabilitiesKHR)(VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities);
8994typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupSurfacePresentModesKHR)(VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes);
8995typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDevicePresentRectanglesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects);
8996typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImage2KHR)(VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex);
8997
8998#ifndef VK_NO_PROTOTYPES
8999#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9000VKAPI_ATTR VkResult VKAPI_CALL vkCreateSwapchainKHR(
9001 VkDevice device,
9002 const VkSwapchainCreateInfoKHR* pCreateInfo,
9003 const VkAllocationCallbacks* pAllocator,
9004 VkSwapchainKHR* pSwapchain);
9005#endif
9006
9007#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9008VKAPI_ATTR void VKAPI_CALL vkDestroySwapchainKHR(
9009 VkDevice device,
9010 VkSwapchainKHR swapchain,
9011 const VkAllocationCallbacks* pAllocator);
9012#endif
9013
9014#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9015VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainImagesKHR(
9016 VkDevice device,
9017 VkSwapchainKHR swapchain,
9018 uint32_t* pSwapchainImageCount,
9019 VkImage* pSwapchainImages);
9020#endif
9021
9022#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9023VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImageKHR(
9024 VkDevice device,
9025 VkSwapchainKHR swapchain,
9026 uint64_t timeout,
9027 VkSemaphore semaphore,
9028 VkFence fence,
9029 uint32_t* pImageIndex);
9030#endif
9031
9032#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9033VKAPI_ATTR VkResult VKAPI_CALL vkQueuePresentKHR(
9034 VkQueue queue,
9035 const VkPresentInfoKHR* pPresentInfo);
9036#endif
9037
9038#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9039VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupPresentCapabilitiesKHR(
9040 VkDevice device,
9041 VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities);
9042#endif
9043
9044#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9045VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModesKHR(
9046 VkDevice device,
9047 VkSurfaceKHR surface,
9048 VkDeviceGroupPresentModeFlagsKHR* pModes);
9049#endif
9050
9051#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9052VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDevicePresentRectanglesKHR(
9053 VkPhysicalDevice physicalDevice,
9054 VkSurfaceKHR surface,
9055 uint32_t* pRectCount,
9056 VkRect2D* pRects);
9057#endif
9058
9059#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9060VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImage2KHR(
9061 VkDevice device,
9062 const VkAcquireNextImageInfoKHR* pAcquireInfo,
9063 uint32_t* pImageIndex);
9064#endif
9065#endif
9066
9067
9068// VK_KHR_display is a preprocessor guard. Do not pass it to API calls.
9069#define VK_KHR_display 1
9070VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR)
9071VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR)
9072#define VK_KHR_DISPLAY_SPEC_VERSION 23
9073#define VK_KHR_DISPLAY_EXTENSION_NAME "VK_KHR_display"
9074typedef VkFlags VkDisplayModeCreateFlagsKHR;
9075
9076typedef enum VkDisplayPlaneAlphaFlagBitsKHR {
9077 VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
9078 VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002,
9079 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
9080 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
9081 VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9082} VkDisplayPlaneAlphaFlagBitsKHR;
9083typedef VkFlags VkDisplayPlaneAlphaFlagsKHR;
9084typedef VkFlags VkDisplaySurfaceCreateFlagsKHR;
9085typedef struct VkDisplayModeParametersKHR {
9086 VkExtent2D visibleRegion;
9087 uint32_t refreshRate;
9088} VkDisplayModeParametersKHR;
9089
9090typedef struct VkDisplayModeCreateInfoKHR {
9091 VkStructureType sType;
9092 const void* pNext;
9093 VkDisplayModeCreateFlagsKHR flags;
9094 VkDisplayModeParametersKHR parameters;
9095} VkDisplayModeCreateInfoKHR;
9096
9097typedef struct VkDisplayModePropertiesKHR {
9098 VkDisplayModeKHR displayMode;
9099 VkDisplayModeParametersKHR parameters;
9100} VkDisplayModePropertiesKHR;
9101
9102typedef struct VkDisplayPlaneCapabilitiesKHR {
9103 VkDisplayPlaneAlphaFlagsKHR supportedAlpha;
9104 VkOffset2D minSrcPosition;
9105 VkOffset2D maxSrcPosition;
9106 VkExtent2D minSrcExtent;
9107 VkExtent2D maxSrcExtent;
9108 VkOffset2D minDstPosition;
9109 VkOffset2D maxDstPosition;
9110 VkExtent2D minDstExtent;
9111 VkExtent2D maxDstExtent;
9112} VkDisplayPlaneCapabilitiesKHR;
9113
9114typedef struct VkDisplayPlanePropertiesKHR {
9115 VkDisplayKHR currentDisplay;
9116 uint32_t currentStackIndex;
9117} VkDisplayPlanePropertiesKHR;
9118
9119typedef struct VkDisplayPropertiesKHR {
9120 VkDisplayKHR display;
9121 const char* displayName;
9122 VkExtent2D physicalDimensions;
9123 VkExtent2D physicalResolution;
9124 VkSurfaceTransformFlagsKHR supportedTransforms;
9125 VkBool32 planeReorderPossible;
9126 VkBool32 persistentContent;
9127} VkDisplayPropertiesKHR;
9128
9129typedef struct VkDisplaySurfaceCreateInfoKHR {
9130 VkStructureType sType;
9131 const void* pNext;
9132 VkDisplaySurfaceCreateFlagsKHR flags;
9133 VkDisplayModeKHR displayMode;
9134 uint32_t planeIndex;
9135 uint32_t planeStackIndex;
9136 VkSurfaceTransformFlagBitsKHR transform;
9137 float globalAlpha;
9138 VkDisplayPlaneAlphaFlagBitsKHR alphaMode;
9139 VkExtent2D imageExtent;
9140} VkDisplaySurfaceCreateInfoKHR;
9141
9142typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties);
9143typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties);
9144typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays);
9145typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties);
9146typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode);
9147typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities);
9148typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayPlaneSurfaceKHR)(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
9149
9150#ifndef VK_NO_PROTOTYPES
9151#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9152VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPropertiesKHR(
9153 VkPhysicalDevice physicalDevice,
9154 uint32_t* pPropertyCount,
9155 VkDisplayPropertiesKHR* pProperties);
9156#endif
9157
9158#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9159VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
9160 VkPhysicalDevice physicalDevice,
9161 uint32_t* pPropertyCount,
9162 VkDisplayPlanePropertiesKHR* pProperties);
9163#endif
9164
9165#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9166VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneSupportedDisplaysKHR(
9167 VkPhysicalDevice physicalDevice,
9168 uint32_t planeIndex,
9169 uint32_t* pDisplayCount,
9170 VkDisplayKHR* pDisplays);
9171#endif
9172
9173#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9174VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModePropertiesKHR(
9175 VkPhysicalDevice physicalDevice,
9176 VkDisplayKHR display,
9177 uint32_t* pPropertyCount,
9178 VkDisplayModePropertiesKHR* pProperties);
9179#endif
9180
9181#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9182VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayModeKHR(
9183 VkPhysicalDevice physicalDevice,
9184 VkDisplayKHR display,
9185 const VkDisplayModeCreateInfoKHR* pCreateInfo,
9186 const VkAllocationCallbacks* pAllocator,
9187 VkDisplayModeKHR* pMode);
9188#endif
9189
9190#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9191VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilitiesKHR(
9192 VkPhysicalDevice physicalDevice,
9193 VkDisplayModeKHR mode,
9194 uint32_t planeIndex,
9195 VkDisplayPlaneCapabilitiesKHR* pCapabilities);
9196#endif
9197
9198#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9199VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayPlaneSurfaceKHR(
9200 VkInstance instance,
9201 const VkDisplaySurfaceCreateInfoKHR* pCreateInfo,
9202 const VkAllocationCallbacks* pAllocator,
9203 VkSurfaceKHR* pSurface);
9204#endif
9205#endif
9206
9207
9208// VK_KHR_display_swapchain is a preprocessor guard. Do not pass it to API calls.
9209#define VK_KHR_display_swapchain 1
9210#define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 10
9211#define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain"
9212typedef struct VkDisplayPresentInfoKHR {
9213 VkStructureType sType;
9214 const void* pNext;
9215 VkRect2D srcRect;
9216 VkRect2D dstRect;
9217 VkBool32 persistent;
9218} VkDisplayPresentInfoKHR;
9219
9220typedef VkResult (VKAPI_PTR *PFN_vkCreateSharedSwapchainsKHR)(VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains);
9221
9222#ifndef VK_NO_PROTOTYPES
9223#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9224VKAPI_ATTR VkResult VKAPI_CALL vkCreateSharedSwapchainsKHR(
9225 VkDevice device,
9226 uint32_t swapchainCount,
9227 const VkSwapchainCreateInfoKHR* pCreateInfos,
9228 const VkAllocationCallbacks* pAllocator,
9229 VkSwapchainKHR* pSwapchains);
9230#endif
9231#endif
9232
9233
9234// VK_KHR_sampler_mirror_clamp_to_edge is a preprocessor guard. Do not pass it to API calls.
9235#define VK_KHR_sampler_mirror_clamp_to_edge 1
9236#define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 3
9237#define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME "VK_KHR_sampler_mirror_clamp_to_edge"
9238
9239
9240// VK_KHR_video_queue is a preprocessor guard. Do not pass it to API calls.
9241#define VK_KHR_video_queue 1
9242VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionKHR)
9243VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionParametersKHR)
9244#define VK_KHR_VIDEO_QUEUE_SPEC_VERSION 8
9245#define VK_KHR_VIDEO_QUEUE_EXTENSION_NAME "VK_KHR_video_queue"
9246
9247typedef enum VkQueryResultStatusKHR {
9248 VK_QUERY_RESULT_STATUS_ERROR_KHR = -1,
9249 VK_QUERY_RESULT_STATUS_NOT_READY_KHR = 0,
9250 VK_QUERY_RESULT_STATUS_COMPLETE_KHR = 1,
9251 VK_QUERY_RESULT_STATUS_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_KHR = -1000299000,
9252 VK_QUERY_RESULT_STATUS_MAX_ENUM_KHR = 0x7FFFFFFF
9253} VkQueryResultStatusKHR;
9254
9255typedef enum VkVideoCodecOperationFlagBitsKHR {
9256 VK_VIDEO_CODEC_OPERATION_NONE_KHR = 0,
9257 VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR = 0x00010000,
9258 VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR = 0x00020000,
9259 VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR = 0x00000001,
9260 VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR = 0x00000002,
9261 VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR = 0x00000004,
9262 VK_VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHR = 0x00040000,
9263 VK_VIDEO_CODEC_OPERATION_DECODE_VP9_BIT_KHR = 0x00000008,
9264 VK_VIDEO_CODEC_OPERATION_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9265} VkVideoCodecOperationFlagBitsKHR;
9266typedef VkFlags VkVideoCodecOperationFlagsKHR;
9267
9268typedef enum VkVideoChromaSubsamplingFlagBitsKHR {
9269 VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR = 0,
9270 VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR = 0x00000001,
9271 VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR = 0x00000002,
9272 VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR = 0x00000004,
9273 VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR = 0x00000008,
9274 VK_VIDEO_CHROMA_SUBSAMPLING_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9275} VkVideoChromaSubsamplingFlagBitsKHR;
9276typedef VkFlags VkVideoChromaSubsamplingFlagsKHR;
9277
9278typedef enum VkVideoComponentBitDepthFlagBitsKHR {
9279 VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR = 0,
9280 VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR = 0x00000001,
9281 VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR = 0x00000004,
9282 VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR = 0x00000010,
9283 VK_VIDEO_COMPONENT_BIT_DEPTH_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9284} VkVideoComponentBitDepthFlagBitsKHR;
9285typedef VkFlags VkVideoComponentBitDepthFlagsKHR;
9286
9287typedef enum VkVideoCapabilityFlagBitsKHR {
9288 VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR = 0x00000001,
9289 VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR = 0x00000002,
9290 VK_VIDEO_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9291} VkVideoCapabilityFlagBitsKHR;
9292typedef VkFlags VkVideoCapabilityFlagsKHR;
9293
9294typedef enum VkVideoSessionCreateFlagBitsKHR {
9295 VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR = 0x00000001,
9296 VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_PARAMETER_OPTIMIZATIONS_BIT_KHR = 0x00000002,
9297 VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR = 0x00000004,
9298 VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x00000008,
9299 VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_EMPHASIS_MAP_BIT_KHR = 0x00000010,
9300 VK_VIDEO_SESSION_CREATE_INLINE_SESSION_PARAMETERS_BIT_KHR = 0x00000020,
9301 VK_VIDEO_SESSION_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9302} VkVideoSessionCreateFlagBitsKHR;
9303typedef VkFlags VkVideoSessionCreateFlagsKHR;
9304
9305typedef enum VkVideoSessionParametersCreateFlagBitsKHR {
9306 VK_VIDEO_SESSION_PARAMETERS_CREATE_QUANTIZATION_MAP_COMPATIBLE_BIT_KHR = 0x00000001,
9307 VK_VIDEO_SESSION_PARAMETERS_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9308} VkVideoSessionParametersCreateFlagBitsKHR;
9309typedef VkFlags VkVideoSessionParametersCreateFlagsKHR;
9310typedef VkFlags VkVideoBeginCodingFlagsKHR;
9311typedef VkFlags VkVideoEndCodingFlagsKHR;
9312
9313typedef enum VkVideoCodingControlFlagBitsKHR {
9314 VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR = 0x00000001,
9315 VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR = 0x00000002,
9316 VK_VIDEO_CODING_CONTROL_ENCODE_QUALITY_LEVEL_BIT_KHR = 0x00000004,
9317 VK_VIDEO_CODING_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9318} VkVideoCodingControlFlagBitsKHR;
9319typedef VkFlags VkVideoCodingControlFlagsKHR;
9320typedef struct VkQueueFamilyQueryResultStatusPropertiesKHR {
9321 VkStructureType sType;
9322 void* pNext;
9323 VkBool32 queryResultStatusSupport;
9324} VkQueueFamilyQueryResultStatusPropertiesKHR;
9325
9326typedef struct VkQueueFamilyVideoPropertiesKHR {
9327 VkStructureType sType;
9328 void* pNext;
9329 VkVideoCodecOperationFlagsKHR videoCodecOperations;
9330} VkQueueFamilyVideoPropertiesKHR;
9331
9332typedef struct VkVideoProfileInfoKHR {
9333 VkStructureType sType;
9334 const void* pNext;
9335 VkVideoCodecOperationFlagBitsKHR videoCodecOperation;
9336 VkVideoChromaSubsamplingFlagsKHR chromaSubsampling;
9337 VkVideoComponentBitDepthFlagsKHR lumaBitDepth;
9338 VkVideoComponentBitDepthFlagsKHR chromaBitDepth;
9339} VkVideoProfileInfoKHR;
9340
9341typedef struct VkVideoProfileListInfoKHR {
9342 VkStructureType sType;
9343 const void* pNext;
9344 uint32_t profileCount;
9345 const VkVideoProfileInfoKHR* pProfiles;
9346} VkVideoProfileListInfoKHR;
9347
9348typedef struct VkVideoCapabilitiesKHR {
9349 VkStructureType sType;
9350 void* pNext;
9351 VkVideoCapabilityFlagsKHR flags;
9352 VkDeviceSize minBitstreamBufferOffsetAlignment;
9353 VkDeviceSize minBitstreamBufferSizeAlignment;
9354 VkExtent2D pictureAccessGranularity;
9355 VkExtent2D minCodedExtent;
9356 VkExtent2D maxCodedExtent;
9357 uint32_t maxDpbSlots;
9358 uint32_t maxActiveReferencePictures;
9359 VkExtensionProperties stdHeaderVersion;
9360} VkVideoCapabilitiesKHR;
9361
9362typedef struct VkPhysicalDeviceVideoFormatInfoKHR {
9363 VkStructureType sType;
9364 const void* pNext;
9365 VkImageUsageFlags imageUsage;
9366} VkPhysicalDeviceVideoFormatInfoKHR;
9367
9368typedef struct VkVideoFormatPropertiesKHR {
9369 VkStructureType sType;
9370 void* pNext;
9371 VkFormat format;
9372 VkComponentMapping componentMapping;
9373 VkImageCreateFlags imageCreateFlags;
9374 VkImageType imageType;
9375 VkImageTiling imageTiling;
9376 VkImageUsageFlags imageUsageFlags;
9377} VkVideoFormatPropertiesKHR;
9378
9379typedef struct VkVideoPictureResourceInfoKHR {
9380 VkStructureType sType;
9381 const void* pNext;
9382 VkOffset2D codedOffset;
9383 VkExtent2D codedExtent;
9384 uint32_t baseArrayLayer;
9385 VkImageView imageViewBinding;
9386} VkVideoPictureResourceInfoKHR;
9387
9388typedef struct VkVideoReferenceSlotInfoKHR {
9389 VkStructureType sType;
9390 const void* pNext;
9391 int32_t slotIndex;
9392 const VkVideoPictureResourceInfoKHR* pPictureResource;
9393} VkVideoReferenceSlotInfoKHR;
9394
9395typedef struct VkVideoSessionMemoryRequirementsKHR {
9396 VkStructureType sType;
9397 void* pNext;
9398 uint32_t memoryBindIndex;
9399 VkMemoryRequirements memoryRequirements;
9400} VkVideoSessionMemoryRequirementsKHR;
9401
9402typedef struct VkBindVideoSessionMemoryInfoKHR {
9403 VkStructureType sType;
9404 const void* pNext;
9405 uint32_t memoryBindIndex;
9406 VkDeviceMemory memory;
9407 VkDeviceSize memoryOffset;
9408 VkDeviceSize memorySize;
9409} VkBindVideoSessionMemoryInfoKHR;
9410
9411typedef struct VkVideoSessionCreateInfoKHR {
9412 VkStructureType sType;
9413 const void* pNext;
9414 uint32_t queueFamilyIndex;
9415 VkVideoSessionCreateFlagsKHR flags;
9416 const VkVideoProfileInfoKHR* pVideoProfile;
9417 VkFormat pictureFormat;
9418 VkExtent2D maxCodedExtent;
9419 VkFormat referencePictureFormat;
9420 uint32_t maxDpbSlots;
9421 uint32_t maxActiveReferencePictures;
9422 const VkExtensionProperties* pStdHeaderVersion;
9423} VkVideoSessionCreateInfoKHR;
9424
9425typedef struct VkVideoSessionParametersCreateInfoKHR {
9426 VkStructureType sType;
9427 const void* pNext;
9428 VkVideoSessionParametersCreateFlagsKHR flags;
9429 VkVideoSessionParametersKHR videoSessionParametersTemplate;
9430 VkVideoSessionKHR videoSession;
9431} VkVideoSessionParametersCreateInfoKHR;
9432
9433typedef struct VkVideoSessionParametersUpdateInfoKHR {
9434 VkStructureType sType;
9435 const void* pNext;
9436 uint32_t updateSequenceCount;
9437} VkVideoSessionParametersUpdateInfoKHR;
9438
9439typedef struct VkVideoBeginCodingInfoKHR {
9440 VkStructureType sType;
9441 const void* pNext;
9442 VkVideoBeginCodingFlagsKHR flags;
9443 VkVideoSessionKHR videoSession;
9444 VkVideoSessionParametersKHR videoSessionParameters;
9445 uint32_t referenceSlotCount;
9446 const VkVideoReferenceSlotInfoKHR* pReferenceSlots;
9447} VkVideoBeginCodingInfoKHR;
9448
9449typedef struct VkVideoEndCodingInfoKHR {
9450 VkStructureType sType;
9451 const void* pNext;
9452 VkVideoEndCodingFlagsKHR flags;
9453} VkVideoEndCodingInfoKHR;
9454
9455typedef struct VkVideoCodingControlInfoKHR {
9456 VkStructureType sType;
9457 const void* pNext;
9458 VkVideoCodingControlFlagsKHR flags;
9459} VkVideoCodingControlInfoKHR;
9460
9461typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR)(VkPhysicalDevice physicalDevice, const VkVideoProfileInfoKHR* pVideoProfile, VkVideoCapabilitiesKHR* pCapabilities);
9462typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo, uint32_t* pVideoFormatPropertyCount, VkVideoFormatPropertiesKHR* pVideoFormatProperties);
9463typedef VkResult (VKAPI_PTR *PFN_vkCreateVideoSessionKHR)(VkDevice device, const VkVideoSessionCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionKHR* pVideoSession);
9464typedef void (VKAPI_PTR *PFN_vkDestroyVideoSessionKHR)(VkDevice device, VkVideoSessionKHR videoSession, const VkAllocationCallbacks* pAllocator);
9465typedef VkResult (VKAPI_PTR *PFN_vkGetVideoSessionMemoryRequirementsKHR)(VkDevice device, VkVideoSessionKHR videoSession, uint32_t* pMemoryRequirementsCount, VkVideoSessionMemoryRequirementsKHR* pMemoryRequirements);
9466typedef VkResult (VKAPI_PTR *PFN_vkBindVideoSessionMemoryKHR)(VkDevice device, VkVideoSessionKHR videoSession, uint32_t bindSessionMemoryInfoCount, const VkBindVideoSessionMemoryInfoKHR* pBindSessionMemoryInfos);
9467typedef VkResult (VKAPI_PTR *PFN_vkCreateVideoSessionParametersKHR)(VkDevice device, const VkVideoSessionParametersCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionParametersKHR* pVideoSessionParameters);
9468typedef VkResult (VKAPI_PTR *PFN_vkUpdateVideoSessionParametersKHR)(VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo);
9469typedef void (VKAPI_PTR *PFN_vkDestroyVideoSessionParametersKHR)(VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkAllocationCallbacks* pAllocator);
9470typedef void (VKAPI_PTR *PFN_vkCmdBeginVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoBeginCodingInfoKHR* pBeginInfo);
9471typedef void (VKAPI_PTR *PFN_vkCmdEndVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoEndCodingInfoKHR* pEndCodingInfo);
9472typedef void (VKAPI_PTR *PFN_vkCmdControlVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoCodingControlInfoKHR* pCodingControlInfo);
9473
9474#ifndef VK_NO_PROTOTYPES
9475#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9476VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoCapabilitiesKHR(
9477 VkPhysicalDevice physicalDevice,
9478 const VkVideoProfileInfoKHR* pVideoProfile,
9479 VkVideoCapabilitiesKHR* pCapabilities);
9480#endif
9481
9482#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9483VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoFormatPropertiesKHR(
9484 VkPhysicalDevice physicalDevice,
9485 const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo,
9486 uint32_t* pVideoFormatPropertyCount,
9487 VkVideoFormatPropertiesKHR* pVideoFormatProperties);
9488#endif
9489
9490#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9491VKAPI_ATTR VkResult VKAPI_CALL vkCreateVideoSessionKHR(
9492 VkDevice device,
9493 const VkVideoSessionCreateInfoKHR* pCreateInfo,
9494 const VkAllocationCallbacks* pAllocator,
9495 VkVideoSessionKHR* pVideoSession);
9496#endif
9497
9498#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9499VKAPI_ATTR void VKAPI_CALL vkDestroyVideoSessionKHR(
9500 VkDevice device,
9501 VkVideoSessionKHR videoSession,
9502 const VkAllocationCallbacks* pAllocator);
9503#endif
9504
9505#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9506VKAPI_ATTR VkResult VKAPI_CALL vkGetVideoSessionMemoryRequirementsKHR(
9507 VkDevice device,
9508 VkVideoSessionKHR videoSession,
9509 uint32_t* pMemoryRequirementsCount,
9510 VkVideoSessionMemoryRequirementsKHR* pMemoryRequirements);
9511#endif
9512
9513#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9514VKAPI_ATTR VkResult VKAPI_CALL vkBindVideoSessionMemoryKHR(
9515 VkDevice device,
9516 VkVideoSessionKHR videoSession,
9517 uint32_t bindSessionMemoryInfoCount,
9518 const VkBindVideoSessionMemoryInfoKHR* pBindSessionMemoryInfos);
9519#endif
9520
9521#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9522VKAPI_ATTR VkResult VKAPI_CALL vkCreateVideoSessionParametersKHR(
9523 VkDevice device,
9524 const VkVideoSessionParametersCreateInfoKHR* pCreateInfo,
9525 const VkAllocationCallbacks* pAllocator,
9526 VkVideoSessionParametersKHR* pVideoSessionParameters);
9527#endif
9528
9529#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9530VKAPI_ATTR VkResult VKAPI_CALL vkUpdateVideoSessionParametersKHR(
9531 VkDevice device,
9532 VkVideoSessionParametersKHR videoSessionParameters,
9533 const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo);
9534#endif
9535
9536#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9537VKAPI_ATTR void VKAPI_CALL vkDestroyVideoSessionParametersKHR(
9538 VkDevice device,
9539 VkVideoSessionParametersKHR videoSessionParameters,
9540 const VkAllocationCallbacks* pAllocator);
9541#endif
9542
9543#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9544VKAPI_ATTR void VKAPI_CALL vkCmdBeginVideoCodingKHR(
9545 VkCommandBuffer commandBuffer,
9546 const VkVideoBeginCodingInfoKHR* pBeginInfo);
9547#endif
9548
9549#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9550VKAPI_ATTR void VKAPI_CALL vkCmdEndVideoCodingKHR(
9551 VkCommandBuffer commandBuffer,
9552 const VkVideoEndCodingInfoKHR* pEndCodingInfo);
9553#endif
9554
9555#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9556VKAPI_ATTR void VKAPI_CALL vkCmdControlVideoCodingKHR(
9557 VkCommandBuffer commandBuffer,
9558 const VkVideoCodingControlInfoKHR* pCodingControlInfo);
9559#endif
9560#endif
9561
9562
9563// VK_KHR_video_decode_queue is a preprocessor guard. Do not pass it to API calls.
9564#define VK_KHR_video_decode_queue 1
9565#define VK_KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION 8
9566#define VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME "VK_KHR_video_decode_queue"
9567
9568typedef enum VkVideoDecodeCapabilityFlagBitsKHR {
9569 VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR = 0x00000001,
9570 VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR = 0x00000002,
9571 VK_VIDEO_DECODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9572} VkVideoDecodeCapabilityFlagBitsKHR;
9573typedef VkFlags VkVideoDecodeCapabilityFlagsKHR;
9574
9575typedef enum VkVideoDecodeUsageFlagBitsKHR {
9576 VK_VIDEO_DECODE_USAGE_DEFAULT_KHR = 0,
9577 VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR = 0x00000001,
9578 VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR = 0x00000002,
9579 VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR = 0x00000004,
9580 VK_VIDEO_DECODE_USAGE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9581} VkVideoDecodeUsageFlagBitsKHR;
9582typedef VkFlags VkVideoDecodeUsageFlagsKHR;
9583typedef VkFlags VkVideoDecodeFlagsKHR;
9584typedef struct VkVideoDecodeCapabilitiesKHR {
9585 VkStructureType sType;
9586 void* pNext;
9587 VkVideoDecodeCapabilityFlagsKHR flags;
9588} VkVideoDecodeCapabilitiesKHR;
9589
9590typedef struct VkVideoDecodeUsageInfoKHR {
9591 VkStructureType sType;
9592 const void* pNext;
9593 VkVideoDecodeUsageFlagsKHR videoUsageHints;
9594} VkVideoDecodeUsageInfoKHR;
9595
9596typedef struct VkVideoDecodeInfoKHR {
9597 VkStructureType sType;
9598 const void* pNext;
9599 VkVideoDecodeFlagsKHR flags;
9600 VkBuffer srcBuffer;
9601 VkDeviceSize srcBufferOffset;
9602 VkDeviceSize srcBufferRange;
9603 VkVideoPictureResourceInfoKHR dstPictureResource;
9604 const VkVideoReferenceSlotInfoKHR* pSetupReferenceSlot;
9605 uint32_t referenceSlotCount;
9606 const VkVideoReferenceSlotInfoKHR* pReferenceSlots;
9607} VkVideoDecodeInfoKHR;
9608
9609typedef void (VKAPI_PTR *PFN_vkCmdDecodeVideoKHR)(VkCommandBuffer commandBuffer, const VkVideoDecodeInfoKHR* pDecodeInfo);
9610
9611#ifndef VK_NO_PROTOTYPES
9612#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9613VKAPI_ATTR void VKAPI_CALL vkCmdDecodeVideoKHR(
9614 VkCommandBuffer commandBuffer,
9615 const VkVideoDecodeInfoKHR* pDecodeInfo);
9616#endif
9617#endif
9618
9619
9620// VK_KHR_video_encode_h264 is a preprocessor guard. Do not pass it to API calls.
9621#define VK_KHR_video_encode_h264 1
9622#include "vk_video/vulkan_video_codec_h264std.h"
9623#include "vk_video/vulkan_video_codec_h264std_encode.h"
9624#define VK_KHR_VIDEO_ENCODE_H264_SPEC_VERSION 14
9625#define VK_KHR_VIDEO_ENCODE_H264_EXTENSION_NAME "VK_KHR_video_encode_h264"
9626
9627typedef enum VkVideoEncodeH264CapabilityFlagBitsKHR {
9628 VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
9629 VK_VIDEO_ENCODE_H264_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR = 0x00000002,
9630 VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_KHR = 0x00000004,
9631 VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_KHR = 0x00000008,
9632 VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR = 0x00000010,
9633 VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR = 0x00000020,
9634 VK_VIDEO_ENCODE_H264_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR = 0x00000040,
9635 VK_VIDEO_ENCODE_H264_CAPABILITY_PER_SLICE_CONSTANT_QP_BIT_KHR = 0x00000080,
9636 VK_VIDEO_ENCODE_H264_CAPABILITY_GENERATE_PREFIX_NALU_BIT_KHR = 0x00000100,
9637 VK_VIDEO_ENCODE_H264_CAPABILITY_B_PICTURE_INTRA_REFRESH_BIT_KHR = 0x00000400,
9638 VK_VIDEO_ENCODE_H264_CAPABILITY_MB_QP_DIFF_WRAPAROUND_BIT_KHR = 0x00000200,
9639 VK_VIDEO_ENCODE_H264_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9640} VkVideoEncodeH264CapabilityFlagBitsKHR;
9641typedef VkFlags VkVideoEncodeH264CapabilityFlagsKHR;
9642
9643typedef enum VkVideoEncodeH264StdFlagBitsKHR {
9644 VK_VIDEO_ENCODE_H264_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR = 0x00000001,
9645 VK_VIDEO_ENCODE_H264_STD_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_FLAG_SET_BIT_KHR = 0x00000002,
9646 VK_VIDEO_ENCODE_H264_STD_SCALING_MATRIX_PRESENT_FLAG_SET_BIT_KHR = 0x00000004,
9647 VK_VIDEO_ENCODE_H264_STD_CHROMA_QP_INDEX_OFFSET_BIT_KHR = 0x00000008,
9648 VK_VIDEO_ENCODE_H264_STD_SECOND_CHROMA_QP_INDEX_OFFSET_BIT_KHR = 0x00000010,
9649 VK_VIDEO_ENCODE_H264_STD_PIC_INIT_QP_MINUS26_BIT_KHR = 0x00000020,
9650 VK_VIDEO_ENCODE_H264_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR = 0x00000040,
9651 VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_EXPLICIT_BIT_KHR = 0x00000080,
9652 VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_IMPLICIT_BIT_KHR = 0x00000100,
9653 VK_VIDEO_ENCODE_H264_STD_TRANSFORM_8X8_MODE_FLAG_SET_BIT_KHR = 0x00000200,
9654 VK_VIDEO_ENCODE_H264_STD_DIRECT_SPATIAL_MV_PRED_FLAG_UNSET_BIT_KHR = 0x00000400,
9655 VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_UNSET_BIT_KHR = 0x00000800,
9656 VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_SET_BIT_KHR = 0x00001000,
9657 VK_VIDEO_ENCODE_H264_STD_DIRECT_8X8_INFERENCE_FLAG_UNSET_BIT_KHR = 0x00002000,
9658 VK_VIDEO_ENCODE_H264_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR = 0x00004000,
9659 VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_DISABLED_BIT_KHR = 0x00008000,
9660 VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_ENABLED_BIT_KHR = 0x00010000,
9661 VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_PARTIAL_BIT_KHR = 0x00020000,
9662 VK_VIDEO_ENCODE_H264_STD_SLICE_QP_DELTA_BIT_KHR = 0x00080000,
9663 VK_VIDEO_ENCODE_H264_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHR = 0x00100000,
9664 VK_VIDEO_ENCODE_H264_STD_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9665} VkVideoEncodeH264StdFlagBitsKHR;
9666typedef VkFlags VkVideoEncodeH264StdFlagsKHR;
9667
9668typedef enum VkVideoEncodeH264RateControlFlagBitsKHR {
9669 VK_VIDEO_ENCODE_H264_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
9670 VK_VIDEO_ENCODE_H264_RATE_CONTROL_REGULAR_GOP_BIT_KHR = 0x00000002,
9671 VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR = 0x00000004,
9672 VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR = 0x00000008,
9673 VK_VIDEO_ENCODE_H264_RATE_CONTROL_TEMPORAL_LAYER_PATTERN_DYADIC_BIT_KHR = 0x00000010,
9674 VK_VIDEO_ENCODE_H264_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9675} VkVideoEncodeH264RateControlFlagBitsKHR;
9676typedef VkFlags VkVideoEncodeH264RateControlFlagsKHR;
9677typedef struct VkVideoEncodeH264CapabilitiesKHR {
9678 VkStructureType sType;
9679 void* pNext;
9680 VkVideoEncodeH264CapabilityFlagsKHR flags;
9681 StdVideoH264LevelIdc maxLevelIdc;
9682 uint32_t maxSliceCount;
9683 uint32_t maxPPictureL0ReferenceCount;
9684 uint32_t maxBPictureL0ReferenceCount;
9685 uint32_t maxL1ReferenceCount;
9686 uint32_t maxTemporalLayerCount;
9687 VkBool32 expectDyadicTemporalLayerPattern;
9688 int32_t minQp;
9689 int32_t maxQp;
9690 VkBool32 prefersGopRemainingFrames;
9691 VkBool32 requiresGopRemainingFrames;
9692 VkVideoEncodeH264StdFlagsKHR stdSyntaxFlags;
9693} VkVideoEncodeH264CapabilitiesKHR;
9694
9695typedef struct VkVideoEncodeH264QpKHR {
9696 int32_t qpI;
9697 int32_t qpP;
9698 int32_t qpB;
9699} VkVideoEncodeH264QpKHR;
9700
9701typedef struct VkVideoEncodeH264QualityLevelPropertiesKHR {
9702 VkStructureType sType;
9703 void* pNext;
9704 VkVideoEncodeH264RateControlFlagsKHR preferredRateControlFlags;
9705 uint32_t preferredGopFrameCount;
9706 uint32_t preferredIdrPeriod;
9707 uint32_t preferredConsecutiveBFrameCount;
9708 uint32_t preferredTemporalLayerCount;
9709 VkVideoEncodeH264QpKHR preferredConstantQp;
9710 uint32_t preferredMaxL0ReferenceCount;
9711 uint32_t preferredMaxL1ReferenceCount;
9712 VkBool32 preferredStdEntropyCodingModeFlag;
9713} VkVideoEncodeH264QualityLevelPropertiesKHR;
9714
9715typedef struct VkVideoEncodeH264SessionCreateInfoKHR {
9716 VkStructureType sType;
9717 const void* pNext;
9718 VkBool32 useMaxLevelIdc;
9719 StdVideoH264LevelIdc maxLevelIdc;
9720} VkVideoEncodeH264SessionCreateInfoKHR;
9721
9722typedef struct VkVideoEncodeH264SessionParametersAddInfoKHR {
9723 VkStructureType sType;
9724 const void* pNext;
9725 uint32_t stdSPSCount;
9726 const StdVideoH264SequenceParameterSet* pStdSPSs;
9727 uint32_t stdPPSCount;
9728 const StdVideoH264PictureParameterSet* pStdPPSs;
9729} VkVideoEncodeH264SessionParametersAddInfoKHR;
9730
9731typedef struct VkVideoEncodeH264SessionParametersCreateInfoKHR {
9732 VkStructureType sType;
9733 const void* pNext;
9734 uint32_t maxStdSPSCount;
9735 uint32_t maxStdPPSCount;
9736 const VkVideoEncodeH264SessionParametersAddInfoKHR* pParametersAddInfo;
9737} VkVideoEncodeH264SessionParametersCreateInfoKHR;
9738
9739typedef struct VkVideoEncodeH264SessionParametersGetInfoKHR {
9740 VkStructureType sType;
9741 const void* pNext;
9742 VkBool32 writeStdSPS;
9743 VkBool32 writeStdPPS;
9744 uint32_t stdSPSId;
9745 uint32_t stdPPSId;
9746} VkVideoEncodeH264SessionParametersGetInfoKHR;
9747
9748typedef struct VkVideoEncodeH264SessionParametersFeedbackInfoKHR {
9749 VkStructureType sType;
9750 void* pNext;
9751 VkBool32 hasStdSPSOverrides;
9752 VkBool32 hasStdPPSOverrides;
9753} VkVideoEncodeH264SessionParametersFeedbackInfoKHR;
9754
9755typedef struct VkVideoEncodeH264NaluSliceInfoKHR {
9756 VkStructureType sType;
9757 const void* pNext;
9758 int32_t constantQp;
9759 const StdVideoEncodeH264SliceHeader* pStdSliceHeader;
9760} VkVideoEncodeH264NaluSliceInfoKHR;
9761
9762typedef struct VkVideoEncodeH264PictureInfoKHR {
9763 VkStructureType sType;
9764 const void* pNext;
9765 uint32_t naluSliceEntryCount;
9766 const VkVideoEncodeH264NaluSliceInfoKHR* pNaluSliceEntries;
9767 const StdVideoEncodeH264PictureInfo* pStdPictureInfo;
9768 VkBool32 generatePrefixNalu;
9769} VkVideoEncodeH264PictureInfoKHR;
9770
9771typedef struct VkVideoEncodeH264DpbSlotInfoKHR {
9772 VkStructureType sType;
9773 const void* pNext;
9774 const StdVideoEncodeH264ReferenceInfo* pStdReferenceInfo;
9775} VkVideoEncodeH264DpbSlotInfoKHR;
9776
9777typedef struct VkVideoEncodeH264ProfileInfoKHR {
9778 VkStructureType sType;
9779 const void* pNext;
9780 StdVideoH264ProfileIdc stdProfileIdc;
9781} VkVideoEncodeH264ProfileInfoKHR;
9782
9783typedef struct VkVideoEncodeH264RateControlInfoKHR {
9784 VkStructureType sType;
9785 const void* pNext;
9786 VkVideoEncodeH264RateControlFlagsKHR flags;
9787 uint32_t gopFrameCount;
9788 uint32_t idrPeriod;
9789 uint32_t consecutiveBFrameCount;
9790 uint32_t temporalLayerCount;
9791} VkVideoEncodeH264RateControlInfoKHR;
9792
9793typedef struct VkVideoEncodeH264FrameSizeKHR {
9794 uint32_t frameISize;
9795 uint32_t framePSize;
9796 uint32_t frameBSize;
9797} VkVideoEncodeH264FrameSizeKHR;
9798
9799typedef struct VkVideoEncodeH264RateControlLayerInfoKHR {
9800 VkStructureType sType;
9801 const void* pNext;
9802 VkBool32 useMinQp;
9803 VkVideoEncodeH264QpKHR minQp;
9804 VkBool32 useMaxQp;
9805 VkVideoEncodeH264QpKHR maxQp;
9806 VkBool32 useMaxFrameSize;
9807 VkVideoEncodeH264FrameSizeKHR maxFrameSize;
9808} VkVideoEncodeH264RateControlLayerInfoKHR;
9809
9810typedef struct VkVideoEncodeH264GopRemainingFrameInfoKHR {
9811 VkStructureType sType;
9812 const void* pNext;
9813 VkBool32 useGopRemainingFrames;
9814 uint32_t gopRemainingI;
9815 uint32_t gopRemainingP;
9816 uint32_t gopRemainingB;
9817} VkVideoEncodeH264GopRemainingFrameInfoKHR;
9818
9819
9820
9821// VK_KHR_video_encode_h265 is a preprocessor guard. Do not pass it to API calls.
9822#define VK_KHR_video_encode_h265 1
9823#include "vk_video/vulkan_video_codec_h265std.h"
9824#include "vk_video/vulkan_video_codec_h265std_encode.h"
9825#define VK_KHR_VIDEO_ENCODE_H265_SPEC_VERSION 14
9826#define VK_KHR_VIDEO_ENCODE_H265_EXTENSION_NAME "VK_KHR_video_encode_h265"
9827
9828typedef enum VkVideoEncodeH265CapabilityFlagBitsKHR {
9829 VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
9830 VK_VIDEO_ENCODE_H265_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR = 0x00000002,
9831 VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_KHR = 0x00000004,
9832 VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_SEGMENT_TYPE_BIT_KHR = 0x00000008,
9833 VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR = 0x00000010,
9834 VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR = 0x00000020,
9835 VK_VIDEO_ENCODE_H265_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR = 0x00000040,
9836 VK_VIDEO_ENCODE_H265_CAPABILITY_PER_SLICE_SEGMENT_CONSTANT_QP_BIT_KHR = 0x00000080,
9837 VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILES_PER_SLICE_SEGMENT_BIT_KHR = 0x00000100,
9838 VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_SEGMENTS_PER_TILE_BIT_KHR = 0x00000200,
9839 VK_VIDEO_ENCODE_H265_CAPABILITY_B_PICTURE_INTRA_REFRESH_BIT_KHR = 0x00000800,
9840 VK_VIDEO_ENCODE_H265_CAPABILITY_CU_QP_DIFF_WRAPAROUND_BIT_KHR = 0x00000400,
9841 VK_VIDEO_ENCODE_H265_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9842} VkVideoEncodeH265CapabilityFlagBitsKHR;
9843typedef VkFlags VkVideoEncodeH265CapabilityFlagsKHR;
9844
9845typedef enum VkVideoEncodeH265StdFlagBitsKHR {
9846 VK_VIDEO_ENCODE_H265_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR = 0x00000001,
9847 VK_VIDEO_ENCODE_H265_STD_SAMPLE_ADAPTIVE_OFFSET_ENABLED_FLAG_SET_BIT_KHR = 0x00000002,
9848 VK_VIDEO_ENCODE_H265_STD_SCALING_LIST_DATA_PRESENT_FLAG_SET_BIT_KHR = 0x00000004,
9849 VK_VIDEO_ENCODE_H265_STD_PCM_ENABLED_FLAG_SET_BIT_KHR = 0x00000008,
9850 VK_VIDEO_ENCODE_H265_STD_SPS_TEMPORAL_MVP_ENABLED_FLAG_SET_BIT_KHR = 0x00000010,
9851 VK_VIDEO_ENCODE_H265_STD_INIT_QP_MINUS26_BIT_KHR = 0x00000020,
9852 VK_VIDEO_ENCODE_H265_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR = 0x00000040,
9853 VK_VIDEO_ENCODE_H265_STD_WEIGHTED_BIPRED_FLAG_SET_BIT_KHR = 0x00000080,
9854 VK_VIDEO_ENCODE_H265_STD_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_KHR = 0x00000100,
9855 VK_VIDEO_ENCODE_H265_STD_SIGN_DATA_HIDING_ENABLED_FLAG_SET_BIT_KHR = 0x00000200,
9856 VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_SET_BIT_KHR = 0x00000400,
9857 VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_UNSET_BIT_KHR = 0x00000800,
9858 VK_VIDEO_ENCODE_H265_STD_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_FLAG_SET_BIT_KHR = 0x00001000,
9859 VK_VIDEO_ENCODE_H265_STD_TRANSQUANT_BYPASS_ENABLED_FLAG_SET_BIT_KHR = 0x00002000,
9860 VK_VIDEO_ENCODE_H265_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR = 0x00004000,
9861 VK_VIDEO_ENCODE_H265_STD_ENTROPY_CODING_SYNC_ENABLED_FLAG_SET_BIT_KHR = 0x00008000,
9862 VK_VIDEO_ENCODE_H265_STD_DEBLOCKING_FILTER_OVERRIDE_ENABLED_FLAG_SET_BIT_KHR = 0x00010000,
9863 VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENTS_ENABLED_FLAG_SET_BIT_KHR = 0x00020000,
9864 VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENT_FLAG_SET_BIT_KHR = 0x00040000,
9865 VK_VIDEO_ENCODE_H265_STD_SLICE_QP_DELTA_BIT_KHR = 0x00080000,
9866 VK_VIDEO_ENCODE_H265_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHR = 0x00100000,
9867 VK_VIDEO_ENCODE_H265_STD_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9868} VkVideoEncodeH265StdFlagBitsKHR;
9869typedef VkFlags VkVideoEncodeH265StdFlagsKHR;
9870
9871typedef enum VkVideoEncodeH265CtbSizeFlagBitsKHR {
9872 VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_KHR = 0x00000001,
9873 VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_KHR = 0x00000002,
9874 VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_KHR = 0x00000004,
9875 VK_VIDEO_ENCODE_H265_CTB_SIZE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9876} VkVideoEncodeH265CtbSizeFlagBitsKHR;
9877typedef VkFlags VkVideoEncodeH265CtbSizeFlagsKHR;
9878
9879typedef enum VkVideoEncodeH265TransformBlockSizeFlagBitsKHR {
9880 VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_KHR = 0x00000001,
9881 VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_KHR = 0x00000002,
9882 VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_KHR = 0x00000004,
9883 VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_KHR = 0x00000008,
9884 VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9885} VkVideoEncodeH265TransformBlockSizeFlagBitsKHR;
9886typedef VkFlags VkVideoEncodeH265TransformBlockSizeFlagsKHR;
9887
9888typedef enum VkVideoEncodeH265RateControlFlagBitsKHR {
9889 VK_VIDEO_ENCODE_H265_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
9890 VK_VIDEO_ENCODE_H265_RATE_CONTROL_REGULAR_GOP_BIT_KHR = 0x00000002,
9891 VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR = 0x00000004,
9892 VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR = 0x00000008,
9893 VK_VIDEO_ENCODE_H265_RATE_CONTROL_TEMPORAL_SUB_LAYER_PATTERN_DYADIC_BIT_KHR = 0x00000010,
9894 VK_VIDEO_ENCODE_H265_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9895} VkVideoEncodeH265RateControlFlagBitsKHR;
9896typedef VkFlags VkVideoEncodeH265RateControlFlagsKHR;
9897typedef struct VkVideoEncodeH265CapabilitiesKHR {
9898 VkStructureType sType;
9899 void* pNext;
9900 VkVideoEncodeH265CapabilityFlagsKHR flags;
9901 StdVideoH265LevelIdc maxLevelIdc;
9902 uint32_t maxSliceSegmentCount;
9903 VkExtent2D maxTiles;
9904 VkVideoEncodeH265CtbSizeFlagsKHR ctbSizes;
9905 VkVideoEncodeH265TransformBlockSizeFlagsKHR transformBlockSizes;
9906 uint32_t maxPPictureL0ReferenceCount;
9907 uint32_t maxBPictureL0ReferenceCount;
9908 uint32_t maxL1ReferenceCount;
9909 uint32_t maxSubLayerCount;
9910 VkBool32 expectDyadicTemporalSubLayerPattern;
9911 int32_t minQp;
9912 int32_t maxQp;
9913 VkBool32 prefersGopRemainingFrames;
9914 VkBool32 requiresGopRemainingFrames;
9915 VkVideoEncodeH265StdFlagsKHR stdSyntaxFlags;
9916} VkVideoEncodeH265CapabilitiesKHR;
9917
9918typedef struct VkVideoEncodeH265SessionCreateInfoKHR {
9919 VkStructureType sType;
9920 const void* pNext;
9921 VkBool32 useMaxLevelIdc;
9922 StdVideoH265LevelIdc maxLevelIdc;
9923} VkVideoEncodeH265SessionCreateInfoKHR;
9924
9925typedef struct VkVideoEncodeH265QpKHR {
9926 int32_t qpI;
9927 int32_t qpP;
9928 int32_t qpB;
9929} VkVideoEncodeH265QpKHR;
9930
9931typedef struct VkVideoEncodeH265QualityLevelPropertiesKHR {
9932 VkStructureType sType;
9933 void* pNext;
9934 VkVideoEncodeH265RateControlFlagsKHR preferredRateControlFlags;
9935 uint32_t preferredGopFrameCount;
9936 uint32_t preferredIdrPeriod;
9937 uint32_t preferredConsecutiveBFrameCount;
9938 uint32_t preferredSubLayerCount;
9939 VkVideoEncodeH265QpKHR preferredConstantQp;
9940 uint32_t preferredMaxL0ReferenceCount;
9941 uint32_t preferredMaxL1ReferenceCount;
9942} VkVideoEncodeH265QualityLevelPropertiesKHR;
9943
9944typedef struct VkVideoEncodeH265SessionParametersAddInfoKHR {
9945 VkStructureType sType;
9946 const void* pNext;
9947 uint32_t stdVPSCount;
9948 const StdVideoH265VideoParameterSet* pStdVPSs;
9949 uint32_t stdSPSCount;
9950 const StdVideoH265SequenceParameterSet* pStdSPSs;
9951 uint32_t stdPPSCount;
9952 const StdVideoH265PictureParameterSet* pStdPPSs;
9953} VkVideoEncodeH265SessionParametersAddInfoKHR;
9954
9955typedef struct VkVideoEncodeH265SessionParametersCreateInfoKHR {
9956 VkStructureType sType;
9957 const void* pNext;
9958 uint32_t maxStdVPSCount;
9959 uint32_t maxStdSPSCount;
9960 uint32_t maxStdPPSCount;
9961 const VkVideoEncodeH265SessionParametersAddInfoKHR* pParametersAddInfo;
9962} VkVideoEncodeH265SessionParametersCreateInfoKHR;
9963
9964typedef struct VkVideoEncodeH265SessionParametersGetInfoKHR {
9965 VkStructureType sType;
9966 const void* pNext;
9967 VkBool32 writeStdVPS;
9968 VkBool32 writeStdSPS;
9969 VkBool32 writeStdPPS;
9970 uint32_t stdVPSId;
9971 uint32_t stdSPSId;
9972 uint32_t stdPPSId;
9973} VkVideoEncodeH265SessionParametersGetInfoKHR;
9974
9975typedef struct VkVideoEncodeH265SessionParametersFeedbackInfoKHR {
9976 VkStructureType sType;
9977 void* pNext;
9978 VkBool32 hasStdVPSOverrides;
9979 VkBool32 hasStdSPSOverrides;
9980 VkBool32 hasStdPPSOverrides;
9981} VkVideoEncodeH265SessionParametersFeedbackInfoKHR;
9982
9983typedef struct VkVideoEncodeH265NaluSliceSegmentInfoKHR {
9984 VkStructureType sType;
9985 const void* pNext;
9986 int32_t constantQp;
9987 const StdVideoEncodeH265SliceSegmentHeader* pStdSliceSegmentHeader;
9988} VkVideoEncodeH265NaluSliceSegmentInfoKHR;
9989
9990typedef struct VkVideoEncodeH265PictureInfoKHR {
9991 VkStructureType sType;
9992 const void* pNext;
9993 uint32_t naluSliceSegmentEntryCount;
9994 const VkVideoEncodeH265NaluSliceSegmentInfoKHR* pNaluSliceSegmentEntries;
9995 const StdVideoEncodeH265PictureInfo* pStdPictureInfo;
9996} VkVideoEncodeH265PictureInfoKHR;
9997
9998typedef struct VkVideoEncodeH265DpbSlotInfoKHR {
9999 VkStructureType sType;
10000 const void* pNext;
10001 const StdVideoEncodeH265ReferenceInfo* pStdReferenceInfo;
10002} VkVideoEncodeH265DpbSlotInfoKHR;
10003
10004typedef struct VkVideoEncodeH265ProfileInfoKHR {
10005 VkStructureType sType;
10006 const void* pNext;
10007 StdVideoH265ProfileIdc stdProfileIdc;
10008} VkVideoEncodeH265ProfileInfoKHR;
10009
10010typedef struct VkVideoEncodeH265RateControlInfoKHR {
10011 VkStructureType sType;
10012 const void* pNext;
10013 VkVideoEncodeH265RateControlFlagsKHR flags;
10014 uint32_t gopFrameCount;
10015 uint32_t idrPeriod;
10016 uint32_t consecutiveBFrameCount;
10017 uint32_t subLayerCount;
10018} VkVideoEncodeH265RateControlInfoKHR;
10019
10020typedef struct VkVideoEncodeH265FrameSizeKHR {
10021 uint32_t frameISize;
10022 uint32_t framePSize;
10023 uint32_t frameBSize;
10024} VkVideoEncodeH265FrameSizeKHR;
10025
10026typedef struct VkVideoEncodeH265RateControlLayerInfoKHR {
10027 VkStructureType sType;
10028 const void* pNext;
10029 VkBool32 useMinQp;
10030 VkVideoEncodeH265QpKHR minQp;
10031 VkBool32 useMaxQp;
10032 VkVideoEncodeH265QpKHR maxQp;
10033 VkBool32 useMaxFrameSize;
10034 VkVideoEncodeH265FrameSizeKHR maxFrameSize;
10035} VkVideoEncodeH265RateControlLayerInfoKHR;
10036
10037typedef struct VkVideoEncodeH265GopRemainingFrameInfoKHR {
10038 VkStructureType sType;
10039 const void* pNext;
10040 VkBool32 useGopRemainingFrames;
10041 uint32_t gopRemainingI;
10042 uint32_t gopRemainingP;
10043 uint32_t gopRemainingB;
10044} VkVideoEncodeH265GopRemainingFrameInfoKHR;
10045
10046
10047
10048// VK_KHR_video_decode_h264 is a preprocessor guard. Do not pass it to API calls.
10049#define VK_KHR_video_decode_h264 1
10050#include "vk_video/vulkan_video_codec_h264std_decode.h"
10051#define VK_KHR_VIDEO_DECODE_H264_SPEC_VERSION 9
10052#define VK_KHR_VIDEO_DECODE_H264_EXTENSION_NAME "VK_KHR_video_decode_h264"
10053
10054typedef enum VkVideoDecodeH264PictureLayoutFlagBitsKHR {
10055 VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR = 0,
10056 VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_KHR = 0x00000001,
10057 VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR = 0x00000002,
10058 VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
10059} VkVideoDecodeH264PictureLayoutFlagBitsKHR;
10060typedef VkFlags VkVideoDecodeH264PictureLayoutFlagsKHR;
10061typedef struct VkVideoDecodeH264ProfileInfoKHR {
10062 VkStructureType sType;
10063 const void* pNext;
10064 StdVideoH264ProfileIdc stdProfileIdc;
10065 VkVideoDecodeH264PictureLayoutFlagBitsKHR pictureLayout;
10066} VkVideoDecodeH264ProfileInfoKHR;
10067
10068typedef struct VkVideoDecodeH264CapabilitiesKHR {
10069 VkStructureType sType;
10070 void* pNext;
10071 StdVideoH264LevelIdc maxLevelIdc;
10072 VkOffset2D fieldOffsetGranularity;
10073} VkVideoDecodeH264CapabilitiesKHR;
10074
10075typedef struct VkVideoDecodeH264SessionParametersAddInfoKHR {
10076 VkStructureType sType;
10077 const void* pNext;
10078 uint32_t stdSPSCount;
10079 const StdVideoH264SequenceParameterSet* pStdSPSs;
10080 uint32_t stdPPSCount;
10081 const StdVideoH264PictureParameterSet* pStdPPSs;
10082} VkVideoDecodeH264SessionParametersAddInfoKHR;
10083
10084typedef struct VkVideoDecodeH264SessionParametersCreateInfoKHR {
10085 VkStructureType sType;
10086 const void* pNext;
10087 uint32_t maxStdSPSCount;
10088 uint32_t maxStdPPSCount;
10089 const VkVideoDecodeH264SessionParametersAddInfoKHR* pParametersAddInfo;
10090} VkVideoDecodeH264SessionParametersCreateInfoKHR;
10091
10092typedef struct VkVideoDecodeH264PictureInfoKHR {
10093 VkStructureType sType;
10094 const void* pNext;
10095 const StdVideoDecodeH264PictureInfo* pStdPictureInfo;
10096 uint32_t sliceCount;
10097 const uint32_t* pSliceOffsets;
10098} VkVideoDecodeH264PictureInfoKHR;
10099
10100typedef struct VkVideoDecodeH264DpbSlotInfoKHR {
10101 VkStructureType sType;
10102 const void* pNext;
10103 const StdVideoDecodeH264ReferenceInfo* pStdReferenceInfo;
10104} VkVideoDecodeH264DpbSlotInfoKHR;
10105
10106
10107
10108// VK_KHR_dynamic_rendering is a preprocessor guard. Do not pass it to API calls.
10109#define VK_KHR_dynamic_rendering 1
10110#define VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION 1
10111#define VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME "VK_KHR_dynamic_rendering"
10112typedef VkRenderingFlags VkRenderingFlagsKHR;
10113
10114typedef VkRenderingFlagBits VkRenderingFlagBitsKHR;
10115
10116typedef VkRenderingInfo VkRenderingInfoKHR;
10117
10118typedef VkRenderingAttachmentInfo VkRenderingAttachmentInfoKHR;
10119
10120typedef VkPipelineRenderingCreateInfo VkPipelineRenderingCreateInfoKHR;
10121
10122typedef VkPhysicalDeviceDynamicRenderingFeatures VkPhysicalDeviceDynamicRenderingFeaturesKHR;
10123
10124typedef VkCommandBufferInheritanceRenderingInfo VkCommandBufferInheritanceRenderingInfoKHR;
10125
10126typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderingKHR)(VkCommandBuffer commandBuffer, const VkRenderingInfo* pRenderingInfo);
10127typedef void (VKAPI_PTR *PFN_vkCmdEndRenderingKHR)(VkCommandBuffer commandBuffer);
10128
10129#ifndef VK_NO_PROTOTYPES
10130#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10131VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderingKHR(
10132 VkCommandBuffer commandBuffer,
10133 const VkRenderingInfo* pRenderingInfo);
10134#endif
10135
10136#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10137VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderingKHR(
10138 VkCommandBuffer commandBuffer);
10139#endif
10140#endif
10141
10142
10143// VK_KHR_multiview is a preprocessor guard. Do not pass it to API calls.
10144#define VK_KHR_multiview 1
10145#define VK_KHR_MULTIVIEW_SPEC_VERSION 1
10146#define VK_KHR_MULTIVIEW_EXTENSION_NAME "VK_KHR_multiview"
10147typedef VkRenderPassMultiviewCreateInfo VkRenderPassMultiviewCreateInfoKHR;
10148
10149typedef VkPhysicalDeviceMultiviewFeatures VkPhysicalDeviceMultiviewFeaturesKHR;
10150
10151typedef VkPhysicalDeviceMultiviewProperties VkPhysicalDeviceMultiviewPropertiesKHR;
10152
10153
10154
10155// VK_KHR_get_physical_device_properties2 is a preprocessor guard. Do not pass it to API calls.
10156#define VK_KHR_get_physical_device_properties2 1
10157#define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 2
10158#define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2"
10159typedef VkPhysicalDeviceFeatures2 VkPhysicalDeviceFeatures2KHR;
10160
10161typedef VkPhysicalDeviceProperties2 VkPhysicalDeviceProperties2KHR;
10162
10163typedef VkFormatProperties2 VkFormatProperties2KHR;
10164
10165typedef VkImageFormatProperties2 VkImageFormatProperties2KHR;
10166
10167typedef VkPhysicalDeviceImageFormatInfo2 VkPhysicalDeviceImageFormatInfo2KHR;
10168
10169typedef VkQueueFamilyProperties2 VkQueueFamilyProperties2KHR;
10170
10171typedef VkPhysicalDeviceMemoryProperties2 VkPhysicalDeviceMemoryProperties2KHR;
10172
10173typedef VkSparseImageFormatProperties2 VkSparseImageFormatProperties2KHR;
10174
10175typedef VkPhysicalDeviceSparseImageFormatInfo2 VkPhysicalDeviceSparseImageFormatInfo2KHR;
10176
10177typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures);
10178typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties);
10179typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2KHR)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties);
10180typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties);
10181typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties);
10182typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
10183typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties);
10184
10185#ifndef VK_NO_PROTOTYPES
10186#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10187VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2KHR(
10188 VkPhysicalDevice physicalDevice,
10189 VkPhysicalDeviceFeatures2* pFeatures);
10190#endif
10191
10192#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10193VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2KHR(
10194 VkPhysicalDevice physicalDevice,
10195 VkPhysicalDeviceProperties2* pProperties);
10196#endif
10197
10198#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10199VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2KHR(
10200 VkPhysicalDevice physicalDevice,
10201 VkFormat format,
10202 VkFormatProperties2* pFormatProperties);
10203#endif
10204
10205#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10206VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2KHR(
10207 VkPhysicalDevice physicalDevice,
10208 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
10209 VkImageFormatProperties2* pImageFormatProperties);
10210#endif
10211
10212#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10213VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2KHR(
10214 VkPhysicalDevice physicalDevice,
10215 uint32_t* pQueueFamilyPropertyCount,
10216 VkQueueFamilyProperties2* pQueueFamilyProperties);
10217#endif
10218
10219#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10220VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2KHR(
10221 VkPhysicalDevice physicalDevice,
10222 VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
10223#endif
10224
10225#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10226VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
10227 VkPhysicalDevice physicalDevice,
10228 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
10229 uint32_t* pPropertyCount,
10230 VkSparseImageFormatProperties2* pProperties);
10231#endif
10232#endif
10233
10234
10235// VK_KHR_device_group is a preprocessor guard. Do not pass it to API calls.
10236#define VK_KHR_device_group 1
10237#define VK_KHR_DEVICE_GROUP_SPEC_VERSION 4
10238#define VK_KHR_DEVICE_GROUP_EXTENSION_NAME "VK_KHR_device_group"
10239typedef VkPeerMemoryFeatureFlags VkPeerMemoryFeatureFlagsKHR;
10240
10241typedef VkPeerMemoryFeatureFlagBits VkPeerMemoryFeatureFlagBitsKHR;
10242
10243typedef VkMemoryAllocateFlags VkMemoryAllocateFlagsKHR;
10244
10245typedef VkMemoryAllocateFlagBits VkMemoryAllocateFlagBitsKHR;
10246
10247typedef VkMemoryAllocateFlagsInfo VkMemoryAllocateFlagsInfoKHR;
10248
10249typedef VkDeviceGroupRenderPassBeginInfo VkDeviceGroupRenderPassBeginInfoKHR;
10250
10251typedef VkDeviceGroupCommandBufferBeginInfo VkDeviceGroupCommandBufferBeginInfoKHR;
10252
10253typedef VkDeviceGroupSubmitInfo VkDeviceGroupSubmitInfoKHR;
10254
10255typedef VkDeviceGroupBindSparseInfo VkDeviceGroupBindSparseInfoKHR;
10256
10257typedef VkBindBufferMemoryDeviceGroupInfo VkBindBufferMemoryDeviceGroupInfoKHR;
10258
10259typedef VkBindImageMemoryDeviceGroupInfo VkBindImageMemoryDeviceGroupInfoKHR;
10260
10261typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
10262typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMaskKHR)(VkCommandBuffer commandBuffer, uint32_t deviceMask);
10263typedef void (VKAPI_PTR *PFN_vkCmdDispatchBaseKHR)(VkCommandBuffer commandBuffer, uint32_t baseGroupX, uint32_t baseGroupY, uint32_t baseGroupZ, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
10264
10265#ifndef VK_NO_PROTOTYPES
10266#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10267VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeaturesKHR(
10268 VkDevice device,
10269 uint32_t heapIndex,
10270 uint32_t localDeviceIndex,
10271 uint32_t remoteDeviceIndex,
10272 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
10273#endif
10274
10275#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10276VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMaskKHR(
10277 VkCommandBuffer commandBuffer,
10278 uint32_t deviceMask);
10279#endif
10280
10281#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10282VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBaseKHR(
10283 VkCommandBuffer commandBuffer,
10284 uint32_t baseGroupX,
10285 uint32_t baseGroupY,
10286 uint32_t baseGroupZ,
10287 uint32_t groupCountX,
10288 uint32_t groupCountY,
10289 uint32_t groupCountZ);
10290#endif
10291#endif
10292
10293
10294// VK_KHR_shader_draw_parameters is a preprocessor guard. Do not pass it to API calls.
10295#define VK_KHR_shader_draw_parameters 1
10296#define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1
10297#define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters"
10298
10299
10300// VK_KHR_maintenance1 is a preprocessor guard. Do not pass it to API calls.
10301#define VK_KHR_maintenance1 1
10302#define VK_KHR_MAINTENANCE_1_SPEC_VERSION 2
10303#define VK_KHR_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_maintenance1"
10304// VK_KHR_MAINTENANCE1_SPEC_VERSION is a legacy alias
10305#define VK_KHR_MAINTENANCE1_SPEC_VERSION VK_KHR_MAINTENANCE_1_SPEC_VERSION
10306// VK_KHR_MAINTENANCE1_EXTENSION_NAME is a legacy alias
10307#define VK_KHR_MAINTENANCE1_EXTENSION_NAME VK_KHR_MAINTENANCE_1_EXTENSION_NAME
10308typedef VkCommandPoolTrimFlags VkCommandPoolTrimFlagsKHR;
10309
10310typedef void (VKAPI_PTR *PFN_vkTrimCommandPoolKHR)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
10311
10312#ifndef VK_NO_PROTOTYPES
10313#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10314VKAPI_ATTR void VKAPI_CALL vkTrimCommandPoolKHR(
10315 VkDevice device,
10316 VkCommandPool commandPool,
10317 VkCommandPoolTrimFlags flags);
10318#endif
10319#endif
10320
10321
10322// VK_KHR_device_group_creation is a preprocessor guard. Do not pass it to API calls.
10323#define VK_KHR_device_group_creation 1
10324#define VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION 1
10325#define VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME "VK_KHR_device_group_creation"
10326#define VK_MAX_DEVICE_GROUP_SIZE_KHR VK_MAX_DEVICE_GROUP_SIZE
10327typedef VkPhysicalDeviceGroupProperties VkPhysicalDeviceGroupPropertiesKHR;
10328
10329typedef VkDeviceGroupDeviceCreateInfo VkDeviceGroupDeviceCreateInfoKHR;
10330
10331typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroupsKHR)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
10332
10333#ifndef VK_NO_PROTOTYPES
10334#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10335VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroupsKHR(
10336 VkInstance instance,
10337 uint32_t* pPhysicalDeviceGroupCount,
10338 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
10339#endif
10340#endif
10341
10342
10343// VK_KHR_external_memory_capabilities is a preprocessor guard. Do not pass it to API calls.
10344#define VK_KHR_external_memory_capabilities 1
10345#define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
10346#define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_memory_capabilities"
10347#define VK_LUID_SIZE_KHR VK_LUID_SIZE
10348typedef VkExternalMemoryHandleTypeFlags VkExternalMemoryHandleTypeFlagsKHR;
10349
10350typedef VkExternalMemoryHandleTypeFlagBits VkExternalMemoryHandleTypeFlagBitsKHR;
10351
10352typedef VkExternalMemoryFeatureFlags VkExternalMemoryFeatureFlagsKHR;
10353
10354typedef VkExternalMemoryFeatureFlagBits VkExternalMemoryFeatureFlagBitsKHR;
10355
10356typedef VkExternalMemoryProperties VkExternalMemoryPropertiesKHR;
10357
10358typedef VkPhysicalDeviceExternalImageFormatInfo VkPhysicalDeviceExternalImageFormatInfoKHR;
10359
10360typedef VkExternalImageFormatProperties VkExternalImageFormatPropertiesKHR;
10361
10362typedef VkPhysicalDeviceExternalBufferInfo VkPhysicalDeviceExternalBufferInfoKHR;
10363
10364typedef VkExternalBufferProperties VkExternalBufferPropertiesKHR;
10365
10366typedef VkPhysicalDeviceIDProperties VkPhysicalDeviceIDPropertiesKHR;
10367
10368typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties);
10369
10370#ifndef VK_NO_PROTOTYPES
10371#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10372VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferPropertiesKHR(
10373 VkPhysicalDevice physicalDevice,
10374 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
10375 VkExternalBufferProperties* pExternalBufferProperties);
10376#endif
10377#endif
10378
10379
10380// VK_KHR_external_memory is a preprocessor guard. Do not pass it to API calls.
10381#define VK_KHR_external_memory 1
10382#define VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION 1
10383#define VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME "VK_KHR_external_memory"
10384#define VK_QUEUE_FAMILY_EXTERNAL_KHR VK_QUEUE_FAMILY_EXTERNAL
10385typedef VkExternalMemoryImageCreateInfo VkExternalMemoryImageCreateInfoKHR;
10386
10387typedef VkExternalMemoryBufferCreateInfo VkExternalMemoryBufferCreateInfoKHR;
10388
10389typedef VkExportMemoryAllocateInfo VkExportMemoryAllocateInfoKHR;
10390
10391
10392
10393// VK_KHR_external_memory_fd is a preprocessor guard. Do not pass it to API calls.
10394#define VK_KHR_external_memory_fd 1
10395#define VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION 1
10396#define VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME "VK_KHR_external_memory_fd"
10397typedef struct VkImportMemoryFdInfoKHR {
10398 VkStructureType sType;
10399 const void* pNext;
10400 VkExternalMemoryHandleTypeFlagBits handleType;
10401 int fd;
10402} VkImportMemoryFdInfoKHR;
10403
10404typedef struct VkMemoryFdPropertiesKHR {
10405 VkStructureType sType;
10406 void* pNext;
10407 uint32_t memoryTypeBits;
10408} VkMemoryFdPropertiesKHR;
10409
10410typedef struct VkMemoryGetFdInfoKHR {
10411 VkStructureType sType;
10412 const void* pNext;
10413 VkDeviceMemory memory;
10414 VkExternalMemoryHandleTypeFlagBits handleType;
10415} VkMemoryGetFdInfoKHR;
10416
10417typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdKHR)(VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd);
10418typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdPropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties);
10419
10420#ifndef VK_NO_PROTOTYPES
10421#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10422VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdKHR(
10423 VkDevice device,
10424 const VkMemoryGetFdInfoKHR* pGetFdInfo,
10425 int* pFd);
10426#endif
10427
10428#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10429VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdPropertiesKHR(
10430 VkDevice device,
10431 VkExternalMemoryHandleTypeFlagBits handleType,
10432 int fd,
10433 VkMemoryFdPropertiesKHR* pMemoryFdProperties);
10434#endif
10435#endif
10436
10437
10438// VK_KHR_external_semaphore_capabilities is a preprocessor guard. Do not pass it to API calls.
10439#define VK_KHR_external_semaphore_capabilities 1
10440#define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION 1
10441#define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_semaphore_capabilities"
10442typedef VkExternalSemaphoreHandleTypeFlags VkExternalSemaphoreHandleTypeFlagsKHR;
10443
10444typedef VkExternalSemaphoreHandleTypeFlagBits VkExternalSemaphoreHandleTypeFlagBitsKHR;
10445
10446typedef VkExternalSemaphoreFeatureFlags VkExternalSemaphoreFeatureFlagsKHR;
10447
10448typedef VkExternalSemaphoreFeatureFlagBits VkExternalSemaphoreFeatureFlagBitsKHR;
10449
10450typedef VkPhysicalDeviceExternalSemaphoreInfo VkPhysicalDeviceExternalSemaphoreInfoKHR;
10451
10452typedef VkExternalSemaphoreProperties VkExternalSemaphorePropertiesKHR;
10453
10454typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
10455
10456#ifndef VK_NO_PROTOTYPES
10457#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10458VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
10459 VkPhysicalDevice physicalDevice,
10460 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
10461 VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
10462#endif
10463#endif
10464
10465
10466// VK_KHR_external_semaphore is a preprocessor guard. Do not pass it to API calls.
10467#define VK_KHR_external_semaphore 1
10468#define VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION 1
10469#define VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_KHR_external_semaphore"
10470typedef VkSemaphoreImportFlags VkSemaphoreImportFlagsKHR;
10471
10472typedef VkSemaphoreImportFlagBits VkSemaphoreImportFlagBitsKHR;
10473
10474typedef VkExportSemaphoreCreateInfo VkExportSemaphoreCreateInfoKHR;
10475
10476
10477
10478// VK_KHR_external_semaphore_fd is a preprocessor guard. Do not pass it to API calls.
10479#define VK_KHR_external_semaphore_fd 1
10480#define VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION 1
10481#define VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME "VK_KHR_external_semaphore_fd"
10482typedef struct VkImportSemaphoreFdInfoKHR {
10483 VkStructureType sType;
10484 const void* pNext;
10485 VkSemaphore semaphore;
10486 VkSemaphoreImportFlags flags;
10487 VkExternalSemaphoreHandleTypeFlagBits handleType;
10488 int fd;
10489} VkImportSemaphoreFdInfoKHR;
10490
10491typedef struct VkSemaphoreGetFdInfoKHR {
10492 VkStructureType sType;
10493 const void* pNext;
10494 VkSemaphore semaphore;
10495 VkExternalSemaphoreHandleTypeFlagBits handleType;
10496} VkSemaphoreGetFdInfoKHR;
10497
10498typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreFdKHR)(VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo);
10499typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreFdKHR)(VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd);
10500
10501#ifndef VK_NO_PROTOTYPES
10502#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10503VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreFdKHR(
10504 VkDevice device,
10505 const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo);
10506#endif
10507
10508#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10509VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreFdKHR(
10510 VkDevice device,
10511 const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
10512 int* pFd);
10513#endif
10514#endif
10515
10516
10517// VK_KHR_push_descriptor is a preprocessor guard. Do not pass it to API calls.
10518#define VK_KHR_push_descriptor 1
10519#define VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION 2
10520#define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor"
10521typedef VkPhysicalDevicePushDescriptorProperties VkPhysicalDevicePushDescriptorPropertiesKHR;
10522
10523typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetKHR)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites);
10524typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplateKHR)(VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData);
10525
10526#ifndef VK_NO_PROTOTYPES
10527#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10528VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetKHR(
10529 VkCommandBuffer commandBuffer,
10530 VkPipelineBindPoint pipelineBindPoint,
10531 VkPipelineLayout layout,
10532 uint32_t set,
10533 uint32_t descriptorWriteCount,
10534 const VkWriteDescriptorSet* pDescriptorWrites);
10535#endif
10536
10537#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10538VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplateKHR(
10539 VkCommandBuffer commandBuffer,
10540 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
10541 VkPipelineLayout layout,
10542 uint32_t set,
10543 const void* pData);
10544#endif
10545#endif
10546
10547
10548// VK_KHR_shader_float16_int8 is a preprocessor guard. Do not pass it to API calls.
10549#define VK_KHR_shader_float16_int8 1
10550#define VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION 1
10551#define VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME "VK_KHR_shader_float16_int8"
10552typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceShaderFloat16Int8FeaturesKHR;
10553
10554typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceFloat16Int8FeaturesKHR;
10555
10556
10557
10558// VK_KHR_16bit_storage is a preprocessor guard. Do not pass it to API calls.
10559#define VK_KHR_16bit_storage 1
10560#define VK_KHR_16BIT_STORAGE_SPEC_VERSION 1
10561#define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage"
10562typedef VkPhysicalDevice16BitStorageFeatures VkPhysicalDevice16BitStorageFeaturesKHR;
10563
10564
10565
10566// VK_KHR_incremental_present is a preprocessor guard. Do not pass it to API calls.
10567#define VK_KHR_incremental_present 1
10568#define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 2
10569#define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present"
10570typedef struct VkRectLayerKHR {
10571 VkOffset2D offset;
10572 VkExtent2D extent;
10573 uint32_t layer;
10574} VkRectLayerKHR;
10575
10576typedef struct VkPresentRegionKHR {
10577 uint32_t rectangleCount;
10578 const VkRectLayerKHR* pRectangles;
10579} VkPresentRegionKHR;
10580
10581typedef struct VkPresentRegionsKHR {
10582 VkStructureType sType;
10583 const void* pNext;
10584 uint32_t swapchainCount;
10585 const VkPresentRegionKHR* pRegions;
10586} VkPresentRegionsKHR;
10587
10588
10589
10590// VK_KHR_descriptor_update_template is a preprocessor guard. Do not pass it to API calls.
10591#define VK_KHR_descriptor_update_template 1
10592typedef VkDescriptorUpdateTemplate VkDescriptorUpdateTemplateKHR;
10593
10594#define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1
10595#define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME "VK_KHR_descriptor_update_template"
10596typedef VkDescriptorUpdateTemplateType VkDescriptorUpdateTemplateTypeKHR;
10597
10598typedef VkDescriptorUpdateTemplateCreateFlags VkDescriptorUpdateTemplateCreateFlagsKHR;
10599
10600typedef VkDescriptorUpdateTemplateEntry VkDescriptorUpdateTemplateEntryKHR;
10601
10602typedef VkDescriptorUpdateTemplateCreateInfo VkDescriptorUpdateTemplateCreateInfoKHR;
10603
10604typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplateKHR)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
10605typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplateKHR)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
10606typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplateKHR)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData);
10607
10608#ifndef VK_NO_PROTOTYPES
10609#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10610VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplateKHR(
10611 VkDevice device,
10612 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
10613 const VkAllocationCallbacks* pAllocator,
10614 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
10615#endif
10616
10617#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10618VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplateKHR(
10619 VkDevice device,
10620 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
10621 const VkAllocationCallbacks* pAllocator);
10622#endif
10623
10624#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10625VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplateKHR(
10626 VkDevice device,
10627 VkDescriptorSet descriptorSet,
10628 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
10629 const void* pData);
10630#endif
10631#endif
10632
10633
10634// VK_KHR_imageless_framebuffer is a preprocessor guard. Do not pass it to API calls.
10635#define VK_KHR_imageless_framebuffer 1
10636#define VK_KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION 1
10637#define VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME "VK_KHR_imageless_framebuffer"
10638typedef VkPhysicalDeviceImagelessFramebufferFeatures VkPhysicalDeviceImagelessFramebufferFeaturesKHR;
10639
10640typedef VkFramebufferAttachmentsCreateInfo VkFramebufferAttachmentsCreateInfoKHR;
10641
10642typedef VkFramebufferAttachmentImageInfo VkFramebufferAttachmentImageInfoKHR;
10643
10644typedef VkRenderPassAttachmentBeginInfo VkRenderPassAttachmentBeginInfoKHR;
10645
10646
10647
10648// VK_KHR_create_renderpass2 is a preprocessor guard. Do not pass it to API calls.
10649#define VK_KHR_create_renderpass2 1
10650#define VK_KHR_CREATE_RENDERPASS_2_SPEC_VERSION 1
10651#define VK_KHR_CREATE_RENDERPASS_2_EXTENSION_NAME "VK_KHR_create_renderpass2"
10652typedef VkRenderPassCreateInfo2 VkRenderPassCreateInfo2KHR;
10653
10654typedef VkAttachmentDescription2 VkAttachmentDescription2KHR;
10655
10656typedef VkAttachmentReference2 VkAttachmentReference2KHR;
10657
10658typedef VkSubpassDescription2 VkSubpassDescription2KHR;
10659
10660typedef VkSubpassDependency2 VkSubpassDependency2KHR;
10661
10662typedef VkSubpassBeginInfo VkSubpassBeginInfoKHR;
10663
10664typedef VkSubpassEndInfo VkSubpassEndInfoKHR;
10665
10666typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2KHR)(VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
10667typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo);
10668typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo);
10669typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo);
10670
10671#ifndef VK_NO_PROTOTYPES
10672#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10673VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2KHR(
10674 VkDevice device,
10675 const VkRenderPassCreateInfo2* pCreateInfo,
10676 const VkAllocationCallbacks* pAllocator,
10677 VkRenderPass* pRenderPass);
10678#endif
10679
10680#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10681VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2KHR(
10682 VkCommandBuffer commandBuffer,
10683 const VkRenderPassBeginInfo* pRenderPassBegin,
10684 const VkSubpassBeginInfo* pSubpassBeginInfo);
10685#endif
10686
10687#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10688VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2KHR(
10689 VkCommandBuffer commandBuffer,
10690 const VkSubpassBeginInfo* pSubpassBeginInfo,
10691 const VkSubpassEndInfo* pSubpassEndInfo);
10692#endif
10693
10694#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10695VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2KHR(
10696 VkCommandBuffer commandBuffer,
10697 const VkSubpassEndInfo* pSubpassEndInfo);
10698#endif
10699#endif
10700
10701
10702// VK_KHR_shared_presentable_image is a preprocessor guard. Do not pass it to API calls.
10703#define VK_KHR_shared_presentable_image 1
10704#define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1
10705#define VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME "VK_KHR_shared_presentable_image"
10706typedef struct VkSharedPresentSurfaceCapabilitiesKHR {
10707 VkStructureType sType;
10708 void* pNext;
10709 VkImageUsageFlags sharedPresentSupportedUsageFlags;
10710} VkSharedPresentSurfaceCapabilitiesKHR;
10711
10712typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainStatusKHR)(VkDevice device, VkSwapchainKHR swapchain);
10713
10714#ifndef VK_NO_PROTOTYPES
10715#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10716VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainStatusKHR(
10717 VkDevice device,
10718 VkSwapchainKHR swapchain);
10719#endif
10720#endif
10721
10722
10723// VK_KHR_external_fence_capabilities is a preprocessor guard. Do not pass it to API calls.
10724#define VK_KHR_external_fence_capabilities 1
10725#define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION 1
10726#define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_fence_capabilities"
10727typedef VkExternalFenceHandleTypeFlags VkExternalFenceHandleTypeFlagsKHR;
10728
10729typedef VkExternalFenceHandleTypeFlagBits VkExternalFenceHandleTypeFlagBitsKHR;
10730
10731typedef VkExternalFenceFeatureFlags VkExternalFenceFeatureFlagsKHR;
10732
10733typedef VkExternalFenceFeatureFlagBits VkExternalFenceFeatureFlagBitsKHR;
10734
10735typedef VkPhysicalDeviceExternalFenceInfo VkPhysicalDeviceExternalFenceInfoKHR;
10736
10737typedef VkExternalFenceProperties VkExternalFencePropertiesKHR;
10738
10739typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties);
10740
10741#ifndef VK_NO_PROTOTYPES
10742#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10743VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFencePropertiesKHR(
10744 VkPhysicalDevice physicalDevice,
10745 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
10746 VkExternalFenceProperties* pExternalFenceProperties);
10747#endif
10748#endif
10749
10750
10751// VK_KHR_external_fence is a preprocessor guard. Do not pass it to API calls.
10752#define VK_KHR_external_fence 1
10753#define VK_KHR_EXTERNAL_FENCE_SPEC_VERSION 1
10754#define VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME "VK_KHR_external_fence"
10755typedef VkFenceImportFlags VkFenceImportFlagsKHR;
10756
10757typedef VkFenceImportFlagBits VkFenceImportFlagBitsKHR;
10758
10759typedef VkExportFenceCreateInfo VkExportFenceCreateInfoKHR;
10760
10761
10762
10763// VK_KHR_external_fence_fd is a preprocessor guard. Do not pass it to API calls.
10764#define VK_KHR_external_fence_fd 1
10765#define VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION 1
10766#define VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME "VK_KHR_external_fence_fd"
10767typedef struct VkImportFenceFdInfoKHR {
10768 VkStructureType sType;
10769 const void* pNext;
10770 VkFence fence;
10771 VkFenceImportFlags flags;
10772 VkExternalFenceHandleTypeFlagBits handleType;
10773 int fd;
10774} VkImportFenceFdInfoKHR;
10775
10776typedef struct VkFenceGetFdInfoKHR {
10777 VkStructureType sType;
10778 const void* pNext;
10779 VkFence fence;
10780 VkExternalFenceHandleTypeFlagBits handleType;
10781} VkFenceGetFdInfoKHR;
10782
10783typedef VkResult (VKAPI_PTR *PFN_vkImportFenceFdKHR)(VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo);
10784typedef VkResult (VKAPI_PTR *PFN_vkGetFenceFdKHR)(VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd);
10785
10786#ifndef VK_NO_PROTOTYPES
10787#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10788VKAPI_ATTR VkResult VKAPI_CALL vkImportFenceFdKHR(
10789 VkDevice device,
10790 const VkImportFenceFdInfoKHR* pImportFenceFdInfo);
10791#endif
10792
10793#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10794VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceFdKHR(
10795 VkDevice device,
10796 const VkFenceGetFdInfoKHR* pGetFdInfo,
10797 int* pFd);
10798#endif
10799#endif
10800
10801
10802// VK_KHR_performance_query is a preprocessor guard. Do not pass it to API calls.
10803#define VK_KHR_performance_query 1
10804#define VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION 1
10805#define VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME "VK_KHR_performance_query"
10806
10807typedef enum VkPerformanceCounterUnitKHR {
10808 VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0,
10809 VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1,
10810 VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2,
10811 VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3,
10812 VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4,
10813 VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5,
10814 VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6,
10815 VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7,
10816 VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8,
10817 VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9,
10818 VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10,
10819 VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 0x7FFFFFFF
10820} VkPerformanceCounterUnitKHR;
10821
10822typedef enum VkPerformanceCounterScopeKHR {
10823 VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0,
10824 VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1,
10825 VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2,
10826 // VK_QUERY_SCOPE_COMMAND_BUFFER_KHR is a legacy alias
10827 VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR,
10828 // VK_QUERY_SCOPE_RENDER_PASS_KHR is a legacy alias
10829 VK_QUERY_SCOPE_RENDER_PASS_KHR = VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR,
10830 // VK_QUERY_SCOPE_COMMAND_KHR is a legacy alias
10831 VK_QUERY_SCOPE_COMMAND_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR,
10832 VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 0x7FFFFFFF
10833} VkPerformanceCounterScopeKHR;
10834
10835typedef enum VkPerformanceCounterStorageKHR {
10836 VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0,
10837 VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1,
10838 VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2,
10839 VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3,
10840 VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4,
10841 VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5,
10842 VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 0x7FFFFFFF
10843} VkPerformanceCounterStorageKHR;
10844
10845typedef enum VkPerformanceCounterDescriptionFlagBitsKHR {
10846 VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 0x00000001,
10847 VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 0x00000002,
10848 // VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR is a legacy alias
10849 VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR,
10850 // VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR is a legacy alias
10851 VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR,
10852 VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
10853} VkPerformanceCounterDescriptionFlagBitsKHR;
10854typedef VkFlags VkPerformanceCounterDescriptionFlagsKHR;
10855
10856typedef enum VkAcquireProfilingLockFlagBitsKHR {
10857 VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
10858} VkAcquireProfilingLockFlagBitsKHR;
10859typedef VkFlags VkAcquireProfilingLockFlagsKHR;
10860typedef struct VkPhysicalDevicePerformanceQueryFeaturesKHR {
10861 VkStructureType sType;
10862 void* pNext;
10863 VkBool32 performanceCounterQueryPools;
10864 VkBool32 performanceCounterMultipleQueryPools;
10865} VkPhysicalDevicePerformanceQueryFeaturesKHR;
10866
10867typedef struct VkPhysicalDevicePerformanceQueryPropertiesKHR {
10868 VkStructureType sType;
10869 void* pNext;
10870 VkBool32 allowCommandBufferQueryCopies;
10871} VkPhysicalDevicePerformanceQueryPropertiesKHR;
10872
10873typedef struct VkPerformanceCounterKHR {
10874 VkStructureType sType;
10875 void* pNext;
10876 VkPerformanceCounterUnitKHR unit;
10877 VkPerformanceCounterScopeKHR scope;
10878 VkPerformanceCounterStorageKHR storage;
10879 uint8_t uuid[VK_UUID_SIZE];
10880} VkPerformanceCounterKHR;
10881
10882typedef struct VkPerformanceCounterDescriptionKHR {
10883 VkStructureType sType;
10884 void* pNext;
10885 VkPerformanceCounterDescriptionFlagsKHR flags;
10886 char name[VK_MAX_DESCRIPTION_SIZE];
10887 char category[VK_MAX_DESCRIPTION_SIZE];
10888 char description[VK_MAX_DESCRIPTION_SIZE];
10889} VkPerformanceCounterDescriptionKHR;
10890
10891typedef struct VkQueryPoolPerformanceCreateInfoKHR {
10892 VkStructureType sType;
10893 const void* pNext;
10894 uint32_t queueFamilyIndex;
10895 uint32_t counterIndexCount;
10896 const uint32_t* pCounterIndices;
10897} VkQueryPoolPerformanceCreateInfoKHR;
10898
10899typedef union VkPerformanceCounterResultKHR {
10900 int32_t int32;
10901 int64_t int64;
10902 uint32_t uint32;
10903 uint64_t uint64;
10904 float float32;
10905 double float64;
10906} VkPerformanceCounterResultKHR;
10907
10908typedef struct VkAcquireProfilingLockInfoKHR {
10909 VkStructureType sType;
10910 const void* pNext;
10911 VkAcquireProfilingLockFlagsKHR flags;
10912 uint64_t timeout;
10913} VkAcquireProfilingLockInfoKHR;
10914
10915typedef struct VkPerformanceQuerySubmitInfoKHR {
10916 VkStructureType sType;
10917 const void* pNext;
10918 uint32_t counterPassIndex;
10919} VkPerformanceQuerySubmitInfoKHR;
10920
10921typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pCounterCount, VkPerformanceCounterKHR* pCounters, VkPerformanceCounterDescriptionKHR* pCounterDescriptions);
10922typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR)(VkPhysicalDevice physicalDevice, const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses);
10923typedef VkResult (VKAPI_PTR *PFN_vkAcquireProfilingLockKHR)(VkDevice device, const VkAcquireProfilingLockInfoKHR* pInfo);
10924typedef void (VKAPI_PTR *PFN_vkReleaseProfilingLockKHR)(VkDevice device);
10925
10926#ifndef VK_NO_PROTOTYPES
10927#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10928VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
10929 VkPhysicalDevice physicalDevice,
10930 uint32_t queueFamilyIndex,
10931 uint32_t* pCounterCount,
10932 VkPerformanceCounterKHR* pCounters,
10933 VkPerformanceCounterDescriptionKHR* pCounterDescriptions);
10934#endif
10935
10936#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10937VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
10938 VkPhysicalDevice physicalDevice,
10939 const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo,
10940 uint32_t* pNumPasses);
10941#endif
10942
10943#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10944VKAPI_ATTR VkResult VKAPI_CALL vkAcquireProfilingLockKHR(
10945 VkDevice device,
10946 const VkAcquireProfilingLockInfoKHR* pInfo);
10947#endif
10948
10949#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10950VKAPI_ATTR void VKAPI_CALL vkReleaseProfilingLockKHR(
10951 VkDevice device);
10952#endif
10953#endif
10954
10955
10956// VK_KHR_maintenance2 is a preprocessor guard. Do not pass it to API calls.
10957#define VK_KHR_maintenance2 1
10958#define VK_KHR_MAINTENANCE_2_SPEC_VERSION 1
10959#define VK_KHR_MAINTENANCE_2_EXTENSION_NAME "VK_KHR_maintenance2"
10960// VK_KHR_MAINTENANCE2_SPEC_VERSION is a legacy alias
10961#define VK_KHR_MAINTENANCE2_SPEC_VERSION VK_KHR_MAINTENANCE_2_SPEC_VERSION
10962// VK_KHR_MAINTENANCE2_EXTENSION_NAME is a legacy alias
10963#define VK_KHR_MAINTENANCE2_EXTENSION_NAME VK_KHR_MAINTENANCE_2_EXTENSION_NAME
10964typedef VkPointClippingBehavior VkPointClippingBehaviorKHR;
10965
10966typedef VkTessellationDomainOrigin VkTessellationDomainOriginKHR;
10967
10968typedef VkPhysicalDevicePointClippingProperties VkPhysicalDevicePointClippingPropertiesKHR;
10969
10970typedef VkRenderPassInputAttachmentAspectCreateInfo VkRenderPassInputAttachmentAspectCreateInfoKHR;
10971
10972typedef VkInputAttachmentAspectReference VkInputAttachmentAspectReferenceKHR;
10973
10974typedef VkImageViewUsageCreateInfo VkImageViewUsageCreateInfoKHR;
10975
10976typedef VkPipelineTessellationDomainOriginStateCreateInfo VkPipelineTessellationDomainOriginStateCreateInfoKHR;
10977
10978
10979
10980// VK_KHR_get_surface_capabilities2 is a preprocessor guard. Do not pass it to API calls.
10981#define VK_KHR_get_surface_capabilities2 1
10982#define VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION 1
10983#define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2"
10984typedef struct VkPhysicalDeviceSurfaceInfo2KHR {
10985 VkStructureType sType;
10986 const void* pNext;
10987 VkSurfaceKHR surface;
10988} VkPhysicalDeviceSurfaceInfo2KHR;
10989
10990typedef struct VkSurfaceCapabilities2KHR {
10991 VkStructureType sType;
10992 void* pNext;
10993 VkSurfaceCapabilitiesKHR surfaceCapabilities;
10994} VkSurfaceCapabilities2KHR;
10995
10996typedef struct VkSurfaceFormat2KHR {
10997 VkStructureType sType;
10998 void* pNext;
10999 VkSurfaceFormatKHR surfaceFormat;
11000} VkSurfaceFormat2KHR;
11001
11002typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities);
11003typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats);
11004
11005#ifndef VK_NO_PROTOTYPES
11006#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11007VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2KHR(
11008 VkPhysicalDevice physicalDevice,
11009 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
11010 VkSurfaceCapabilities2KHR* pSurfaceCapabilities);
11011#endif
11012
11013#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11014VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormats2KHR(
11015 VkPhysicalDevice physicalDevice,
11016 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
11017 uint32_t* pSurfaceFormatCount,
11018 VkSurfaceFormat2KHR* pSurfaceFormats);
11019#endif
11020#endif
11021
11022
11023// VK_KHR_variable_pointers is a preprocessor guard. Do not pass it to API calls.
11024#define VK_KHR_variable_pointers 1
11025#define VK_KHR_VARIABLE_POINTERS_SPEC_VERSION 1
11026#define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers"
11027typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeaturesKHR;
11028
11029typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointersFeaturesKHR;
11030
11031
11032
11033// VK_KHR_get_display_properties2 is a preprocessor guard. Do not pass it to API calls.
11034#define VK_KHR_get_display_properties2 1
11035#define VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION 1
11036#define VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_display_properties2"
11037typedef struct VkDisplayProperties2KHR {
11038 VkStructureType sType;
11039 void* pNext;
11040 VkDisplayPropertiesKHR displayProperties;
11041} VkDisplayProperties2KHR;
11042
11043typedef struct VkDisplayPlaneProperties2KHR {
11044 VkStructureType sType;
11045 void* pNext;
11046 VkDisplayPlanePropertiesKHR displayPlaneProperties;
11047} VkDisplayPlaneProperties2KHR;
11048
11049typedef struct VkDisplayModeProperties2KHR {
11050 VkStructureType sType;
11051 void* pNext;
11052 VkDisplayModePropertiesKHR displayModeProperties;
11053} VkDisplayModeProperties2KHR;
11054
11055typedef struct VkDisplayPlaneInfo2KHR {
11056 VkStructureType sType;
11057 const void* pNext;
11058 VkDisplayModeKHR mode;
11059 uint32_t planeIndex;
11060} VkDisplayPlaneInfo2KHR;
11061
11062typedef struct VkDisplayPlaneCapabilities2KHR {
11063 VkStructureType sType;
11064 void* pNext;
11065 VkDisplayPlaneCapabilitiesKHR capabilities;
11066} VkDisplayPlaneCapabilities2KHR;
11067
11068typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayProperties2KHR* pProperties);
11069typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties);
11070typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModeProperties2KHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModeProperties2KHR* pProperties);
11071typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities);
11072
11073#ifndef VK_NO_PROTOTYPES
11074#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11075VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayProperties2KHR(
11076 VkPhysicalDevice physicalDevice,
11077 uint32_t* pPropertyCount,
11078 VkDisplayProperties2KHR* pProperties);
11079#endif
11080
11081#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11082VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
11083 VkPhysicalDevice physicalDevice,
11084 uint32_t* pPropertyCount,
11085 VkDisplayPlaneProperties2KHR* pProperties);
11086#endif
11087
11088#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11089VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModeProperties2KHR(
11090 VkPhysicalDevice physicalDevice,
11091 VkDisplayKHR display,
11092 uint32_t* pPropertyCount,
11093 VkDisplayModeProperties2KHR* pProperties);
11094#endif
11095
11096#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11097VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilities2KHR(
11098 VkPhysicalDevice physicalDevice,
11099 const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo,
11100 VkDisplayPlaneCapabilities2KHR* pCapabilities);
11101#endif
11102#endif
11103
11104
11105// VK_KHR_dedicated_allocation is a preprocessor guard. Do not pass it to API calls.
11106#define VK_KHR_dedicated_allocation 1
11107#define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3
11108#define VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_KHR_dedicated_allocation"
11109typedef VkMemoryDedicatedRequirements VkMemoryDedicatedRequirementsKHR;
11110
11111typedef VkMemoryDedicatedAllocateInfo VkMemoryDedicatedAllocateInfoKHR;
11112
11113
11114
11115// VK_KHR_storage_buffer_storage_class is a preprocessor guard. Do not pass it to API calls.
11116#define VK_KHR_storage_buffer_storage_class 1
11117#define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION 1
11118#define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME "VK_KHR_storage_buffer_storage_class"
11119
11120
11121// VK_KHR_shader_bfloat16 is a preprocessor guard. Do not pass it to API calls.
11122#define VK_KHR_shader_bfloat16 1
11123#define VK_KHR_SHADER_BFLOAT16_SPEC_VERSION 1
11124#define VK_KHR_SHADER_BFLOAT16_EXTENSION_NAME "VK_KHR_shader_bfloat16"
11125typedef struct VkPhysicalDeviceShaderBfloat16FeaturesKHR {
11126 VkStructureType sType;
11127 void* pNext;
11128 VkBool32 shaderBFloat16Type;
11129 VkBool32 shaderBFloat16DotProduct;
11130 VkBool32 shaderBFloat16CooperativeMatrix;
11131} VkPhysicalDeviceShaderBfloat16FeaturesKHR;
11132
11133
11134
11135// VK_KHR_relaxed_block_layout is a preprocessor guard. Do not pass it to API calls.
11136#define VK_KHR_relaxed_block_layout 1
11137#define VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION 1
11138#define VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME "VK_KHR_relaxed_block_layout"
11139
11140
11141// VK_KHR_get_memory_requirements2 is a preprocessor guard. Do not pass it to API calls.
11142#define VK_KHR_get_memory_requirements2 1
11143#define VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION 1
11144#define VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME "VK_KHR_get_memory_requirements2"
11145typedef VkBufferMemoryRequirementsInfo2 VkBufferMemoryRequirementsInfo2KHR;
11146
11147typedef VkImageMemoryRequirementsInfo2 VkImageMemoryRequirementsInfo2KHR;
11148
11149typedef VkImageSparseMemoryRequirementsInfo2 VkImageSparseMemoryRequirementsInfo2KHR;
11150
11151typedef VkMemoryRequirements2 VkMemoryRequirements2KHR;
11152
11153typedef VkSparseImageMemoryRequirements2 VkSparseImageMemoryRequirements2KHR;
11154
11155typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2KHR)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
11156typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2KHR)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
11157typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2KHR)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
11158
11159#ifndef VK_NO_PROTOTYPES
11160#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11161VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2KHR(
11162 VkDevice device,
11163 const VkImageMemoryRequirementsInfo2* pInfo,
11164 VkMemoryRequirements2* pMemoryRequirements);
11165#endif
11166
11167#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11168VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2KHR(
11169 VkDevice device,
11170 const VkBufferMemoryRequirementsInfo2* pInfo,
11171 VkMemoryRequirements2* pMemoryRequirements);
11172#endif
11173
11174#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11175VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2KHR(
11176 VkDevice device,
11177 const VkImageSparseMemoryRequirementsInfo2* pInfo,
11178 uint32_t* pSparseMemoryRequirementCount,
11179 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
11180#endif
11181#endif
11182
11183
11184// VK_KHR_image_format_list is a preprocessor guard. Do not pass it to API calls.
11185#define VK_KHR_image_format_list 1
11186#define VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION 1
11187#define VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME "VK_KHR_image_format_list"
11188typedef VkImageFormatListCreateInfo VkImageFormatListCreateInfoKHR;
11189
11190
11191
11192// VK_KHR_sampler_ycbcr_conversion is a preprocessor guard. Do not pass it to API calls.
11193#define VK_KHR_sampler_ycbcr_conversion 1
11194typedef VkSamplerYcbcrConversion VkSamplerYcbcrConversionKHR;
11195
11196#define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 14
11197#define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion"
11198typedef VkSamplerYcbcrModelConversion VkSamplerYcbcrModelConversionKHR;
11199
11200typedef VkSamplerYcbcrRange VkSamplerYcbcrRangeKHR;
11201
11202typedef VkChromaLocation VkChromaLocationKHR;
11203
11204typedef VkSamplerYcbcrConversionCreateInfo VkSamplerYcbcrConversionCreateInfoKHR;
11205
11206typedef VkSamplerYcbcrConversionInfo VkSamplerYcbcrConversionInfoKHR;
11207
11208typedef VkBindImagePlaneMemoryInfo VkBindImagePlaneMemoryInfoKHR;
11209
11210typedef VkImagePlaneMemoryRequirementsInfo VkImagePlaneMemoryRequirementsInfoKHR;
11211
11212typedef VkPhysicalDeviceSamplerYcbcrConversionFeatures VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR;
11213
11214typedef VkSamplerYcbcrConversionImageFormatProperties VkSamplerYcbcrConversionImageFormatPropertiesKHR;
11215
11216typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversionKHR)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion);
11217typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversionKHR)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator);
11218
11219#ifndef VK_NO_PROTOTYPES
11220#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11221VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversionKHR(
11222 VkDevice device,
11223 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
11224 const VkAllocationCallbacks* pAllocator,
11225 VkSamplerYcbcrConversion* pYcbcrConversion);
11226#endif
11227
11228#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11229VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversionKHR(
11230 VkDevice device,
11231 VkSamplerYcbcrConversion ycbcrConversion,
11232 const VkAllocationCallbacks* pAllocator);
11233#endif
11234#endif
11235
11236
11237// VK_KHR_bind_memory2 is a preprocessor guard. Do not pass it to API calls.
11238#define VK_KHR_bind_memory2 1
11239#define VK_KHR_BIND_MEMORY_2_SPEC_VERSION 1
11240#define VK_KHR_BIND_MEMORY_2_EXTENSION_NAME "VK_KHR_bind_memory2"
11241typedef VkBindBufferMemoryInfo VkBindBufferMemoryInfoKHR;
11242
11243typedef VkBindImageMemoryInfo VkBindImageMemoryInfoKHR;
11244
11245typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos);
11246typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos);
11247
11248#ifndef VK_NO_PROTOTYPES
11249#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11250VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2KHR(
11251 VkDevice device,
11252 uint32_t bindInfoCount,
11253 const VkBindBufferMemoryInfo* pBindInfos);
11254#endif
11255
11256#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11257VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2KHR(
11258 VkDevice device,
11259 uint32_t bindInfoCount,
11260 const VkBindImageMemoryInfo* pBindInfos);
11261#endif
11262#endif
11263
11264
11265// VK_KHR_maintenance3 is a preprocessor guard. Do not pass it to API calls.
11266#define VK_KHR_maintenance3 1
11267#define VK_KHR_MAINTENANCE_3_SPEC_VERSION 1
11268#define VK_KHR_MAINTENANCE_3_EXTENSION_NAME "VK_KHR_maintenance3"
11269// VK_KHR_MAINTENANCE3_SPEC_VERSION is a legacy alias
11270#define VK_KHR_MAINTENANCE3_SPEC_VERSION VK_KHR_MAINTENANCE_3_SPEC_VERSION
11271// VK_KHR_MAINTENANCE3_EXTENSION_NAME is a legacy alias
11272#define VK_KHR_MAINTENANCE3_EXTENSION_NAME VK_KHR_MAINTENANCE_3_EXTENSION_NAME
11273typedef VkPhysicalDeviceMaintenance3Properties VkPhysicalDeviceMaintenance3PropertiesKHR;
11274
11275typedef VkDescriptorSetLayoutSupport VkDescriptorSetLayoutSupportKHR;
11276
11277typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupportKHR)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport);
11278
11279#ifndef VK_NO_PROTOTYPES
11280#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11281VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupportKHR(
11282 VkDevice device,
11283 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
11284 VkDescriptorSetLayoutSupport* pSupport);
11285#endif
11286#endif
11287
11288
11289// VK_KHR_draw_indirect_count is a preprocessor guard. Do not pass it to API calls.
11290#define VK_KHR_draw_indirect_count 1
11291#define VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
11292#define VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_KHR_draw_indirect_count"
11293typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
11294typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
11295
11296#ifndef VK_NO_PROTOTYPES
11297#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11298VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountKHR(
11299 VkCommandBuffer commandBuffer,
11300 VkBuffer buffer,
11301 VkDeviceSize offset,
11302 VkBuffer countBuffer,
11303 VkDeviceSize countBufferOffset,
11304 uint32_t maxDrawCount,
11305 uint32_t stride);
11306#endif
11307
11308#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11309VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountKHR(
11310 VkCommandBuffer commandBuffer,
11311 VkBuffer buffer,
11312 VkDeviceSize offset,
11313 VkBuffer countBuffer,
11314 VkDeviceSize countBufferOffset,
11315 uint32_t maxDrawCount,
11316 uint32_t stride);
11317#endif
11318#endif
11319
11320
11321// VK_KHR_shader_subgroup_extended_types is a preprocessor guard. Do not pass it to API calls.
11322#define VK_KHR_shader_subgroup_extended_types 1
11323#define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION 1
11324#define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME "VK_KHR_shader_subgroup_extended_types"
11325typedef VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR;
11326
11327
11328
11329// VK_KHR_8bit_storage is a preprocessor guard. Do not pass it to API calls.
11330#define VK_KHR_8bit_storage 1
11331#define VK_KHR_8BIT_STORAGE_SPEC_VERSION 1
11332#define VK_KHR_8BIT_STORAGE_EXTENSION_NAME "VK_KHR_8bit_storage"
11333typedef VkPhysicalDevice8BitStorageFeatures VkPhysicalDevice8BitStorageFeaturesKHR;
11334
11335
11336
11337// VK_KHR_shader_atomic_int64 is a preprocessor guard. Do not pass it to API calls.
11338#define VK_KHR_shader_atomic_int64 1
11339#define VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION 1
11340#define VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME "VK_KHR_shader_atomic_int64"
11341typedef VkPhysicalDeviceShaderAtomicInt64Features VkPhysicalDeviceShaderAtomicInt64FeaturesKHR;
11342
11343
11344
11345// VK_KHR_shader_clock is a preprocessor guard. Do not pass it to API calls.
11346#define VK_KHR_shader_clock 1
11347#define VK_KHR_SHADER_CLOCK_SPEC_VERSION 1
11348#define VK_KHR_SHADER_CLOCK_EXTENSION_NAME "VK_KHR_shader_clock"
11349typedef struct VkPhysicalDeviceShaderClockFeaturesKHR {
11350 VkStructureType sType;
11351 void* pNext;
11352 VkBool32 shaderSubgroupClock;
11353 VkBool32 shaderDeviceClock;
11354} VkPhysicalDeviceShaderClockFeaturesKHR;
11355
11356
11357
11358// VK_KHR_video_decode_h265 is a preprocessor guard. Do not pass it to API calls.
11359#define VK_KHR_video_decode_h265 1
11360#include "vk_video/vulkan_video_codec_h265std_decode.h"
11361#define VK_KHR_VIDEO_DECODE_H265_SPEC_VERSION 8
11362#define VK_KHR_VIDEO_DECODE_H265_EXTENSION_NAME "VK_KHR_video_decode_h265"
11363typedef struct VkVideoDecodeH265ProfileInfoKHR {
11364 VkStructureType sType;
11365 const void* pNext;
11366 StdVideoH265ProfileIdc stdProfileIdc;
11367} VkVideoDecodeH265ProfileInfoKHR;
11368
11369typedef struct VkVideoDecodeH265CapabilitiesKHR {
11370 VkStructureType sType;
11371 void* pNext;
11372 StdVideoH265LevelIdc maxLevelIdc;
11373} VkVideoDecodeH265CapabilitiesKHR;
11374
11375typedef struct VkVideoDecodeH265SessionParametersAddInfoKHR {
11376 VkStructureType sType;
11377 const void* pNext;
11378 uint32_t stdVPSCount;
11379 const StdVideoH265VideoParameterSet* pStdVPSs;
11380 uint32_t stdSPSCount;
11381 const StdVideoH265SequenceParameterSet* pStdSPSs;
11382 uint32_t stdPPSCount;
11383 const StdVideoH265PictureParameterSet* pStdPPSs;
11384} VkVideoDecodeH265SessionParametersAddInfoKHR;
11385
11386typedef struct VkVideoDecodeH265SessionParametersCreateInfoKHR {
11387 VkStructureType sType;
11388 const void* pNext;
11389 uint32_t maxStdVPSCount;
11390 uint32_t maxStdSPSCount;
11391 uint32_t maxStdPPSCount;
11392 const VkVideoDecodeH265SessionParametersAddInfoKHR* pParametersAddInfo;
11393} VkVideoDecodeH265SessionParametersCreateInfoKHR;
11394
11395typedef struct VkVideoDecodeH265PictureInfoKHR {
11396 VkStructureType sType;
11397 const void* pNext;
11398 const StdVideoDecodeH265PictureInfo* pStdPictureInfo;
11399 uint32_t sliceSegmentCount;
11400 const uint32_t* pSliceSegmentOffsets;
11401} VkVideoDecodeH265PictureInfoKHR;
11402
11403typedef struct VkVideoDecodeH265DpbSlotInfoKHR {
11404 VkStructureType sType;
11405 const void* pNext;
11406 const StdVideoDecodeH265ReferenceInfo* pStdReferenceInfo;
11407} VkVideoDecodeH265DpbSlotInfoKHR;
11408
11409
11410
11411// VK_KHR_global_priority is a preprocessor guard. Do not pass it to API calls.
11412#define VK_KHR_global_priority 1
11413#define VK_KHR_GLOBAL_PRIORITY_SPEC_VERSION 1
11414#define VK_KHR_GLOBAL_PRIORITY_EXTENSION_NAME "VK_KHR_global_priority"
11415#define VK_MAX_GLOBAL_PRIORITY_SIZE_KHR VK_MAX_GLOBAL_PRIORITY_SIZE
11416typedef VkQueueGlobalPriority VkQueueGlobalPriorityKHR;
11417
11418typedef VkDeviceQueueGlobalPriorityCreateInfo VkDeviceQueueGlobalPriorityCreateInfoKHR;
11419
11420typedef VkPhysicalDeviceGlobalPriorityQueryFeatures VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR;
11421
11422typedef VkQueueFamilyGlobalPriorityProperties VkQueueFamilyGlobalPriorityPropertiesKHR;
11423
11424
11425
11426// VK_KHR_driver_properties is a preprocessor guard. Do not pass it to API calls.
11427#define VK_KHR_driver_properties 1
11428#define VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION 1
11429#define VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME "VK_KHR_driver_properties"
11430#define VK_MAX_DRIVER_NAME_SIZE_KHR VK_MAX_DRIVER_NAME_SIZE
11431#define VK_MAX_DRIVER_INFO_SIZE_KHR VK_MAX_DRIVER_INFO_SIZE
11432typedef VkDriverId VkDriverIdKHR;
11433
11434typedef VkConformanceVersion VkConformanceVersionKHR;
11435
11436typedef VkPhysicalDeviceDriverProperties VkPhysicalDeviceDriverPropertiesKHR;
11437
11438
11439
11440// VK_KHR_shader_float_controls is a preprocessor guard. Do not pass it to API calls.
11441#define VK_KHR_shader_float_controls 1
11442#define VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION 4
11443#define VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME "VK_KHR_shader_float_controls"
11444typedef VkShaderFloatControlsIndependence VkShaderFloatControlsIndependenceKHR;
11445
11446typedef VkPhysicalDeviceFloatControlsProperties VkPhysicalDeviceFloatControlsPropertiesKHR;
11447
11448
11449
11450// VK_KHR_depth_stencil_resolve is a preprocessor guard. Do not pass it to API calls.
11451#define VK_KHR_depth_stencil_resolve 1
11452#define VK_KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION 1
11453#define VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME "VK_KHR_depth_stencil_resolve"
11454typedef VkResolveModeFlagBits VkResolveModeFlagBitsKHR;
11455
11456typedef VkResolveModeFlags VkResolveModeFlagsKHR;
11457
11458typedef VkSubpassDescriptionDepthStencilResolve VkSubpassDescriptionDepthStencilResolveKHR;
11459
11460typedef VkPhysicalDeviceDepthStencilResolveProperties VkPhysicalDeviceDepthStencilResolvePropertiesKHR;
11461
11462
11463
11464// VK_KHR_swapchain_mutable_format is a preprocessor guard. Do not pass it to API calls.
11465#define VK_KHR_swapchain_mutable_format 1
11466#define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_SPEC_VERSION 1
11467#define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_EXTENSION_NAME "VK_KHR_swapchain_mutable_format"
11468
11469
11470// VK_KHR_timeline_semaphore is a preprocessor guard. Do not pass it to API calls.
11471#define VK_KHR_timeline_semaphore 1
11472#define VK_KHR_TIMELINE_SEMAPHORE_SPEC_VERSION 2
11473#define VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME "VK_KHR_timeline_semaphore"
11474typedef VkSemaphoreType VkSemaphoreTypeKHR;
11475
11476typedef VkSemaphoreWaitFlagBits VkSemaphoreWaitFlagBitsKHR;
11477
11478typedef VkSemaphoreWaitFlags VkSemaphoreWaitFlagsKHR;
11479
11480typedef VkPhysicalDeviceTimelineSemaphoreFeatures VkPhysicalDeviceTimelineSemaphoreFeaturesKHR;
11481
11482typedef VkPhysicalDeviceTimelineSemaphoreProperties VkPhysicalDeviceTimelineSemaphorePropertiesKHR;
11483
11484typedef VkSemaphoreTypeCreateInfo VkSemaphoreTypeCreateInfoKHR;
11485
11486typedef VkTimelineSemaphoreSubmitInfo VkTimelineSemaphoreSubmitInfoKHR;
11487
11488typedef VkSemaphoreWaitInfo VkSemaphoreWaitInfoKHR;
11489
11490typedef VkSemaphoreSignalInfo VkSemaphoreSignalInfoKHR;
11491
11492typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreCounterValueKHR)(VkDevice device, VkSemaphore semaphore, uint64_t* pValue);
11493typedef VkResult (VKAPI_PTR *PFN_vkWaitSemaphoresKHR)(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout);
11494typedef VkResult (VKAPI_PTR *PFN_vkSignalSemaphoreKHR)(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo);
11495
11496#ifndef VK_NO_PROTOTYPES
11497#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11498VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreCounterValueKHR(
11499 VkDevice device,
11500 VkSemaphore semaphore,
11501 uint64_t* pValue);
11502#endif
11503
11504#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11505VKAPI_ATTR VkResult VKAPI_CALL vkWaitSemaphoresKHR(
11506 VkDevice device,
11507 const VkSemaphoreWaitInfo* pWaitInfo,
11508 uint64_t timeout);
11509#endif
11510
11511#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11512VKAPI_ATTR VkResult VKAPI_CALL vkSignalSemaphoreKHR(
11513 VkDevice device,
11514 const VkSemaphoreSignalInfo* pSignalInfo);
11515#endif
11516#endif
11517
11518
11519// VK_KHR_vulkan_memory_model is a preprocessor guard. Do not pass it to API calls.
11520#define VK_KHR_vulkan_memory_model 1
11521#define VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION 3
11522#define VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME "VK_KHR_vulkan_memory_model"
11523typedef VkPhysicalDeviceVulkanMemoryModelFeatures VkPhysicalDeviceVulkanMemoryModelFeaturesKHR;
11524
11525
11526
11527// VK_KHR_shader_terminate_invocation is a preprocessor guard. Do not pass it to API calls.
11528#define VK_KHR_shader_terminate_invocation 1
11529#define VK_KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION 1
11530#define VK_KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME "VK_KHR_shader_terminate_invocation"
11531typedef VkPhysicalDeviceShaderTerminateInvocationFeatures VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR;
11532
11533
11534
11535// VK_KHR_fragment_shading_rate is a preprocessor guard. Do not pass it to API calls.
11536#define VK_KHR_fragment_shading_rate 1
11537#define VK_KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION 2
11538#define VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME "VK_KHR_fragment_shading_rate"
11539
11540typedef enum VkFragmentShadingRateCombinerOpKHR {
11541 VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0,
11542 VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1,
11543 VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2,
11544 VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3,
11545 VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4,
11546 VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR = 0x7FFFFFFF
11547} VkFragmentShadingRateCombinerOpKHR;
11548typedef struct VkFragmentShadingRateAttachmentInfoKHR {
11549 VkStructureType sType;
11550 const void* pNext;
11551 const VkAttachmentReference2* pFragmentShadingRateAttachment;
11552 VkExtent2D shadingRateAttachmentTexelSize;
11553} VkFragmentShadingRateAttachmentInfoKHR;
11554
11555typedef struct VkPipelineFragmentShadingRateStateCreateInfoKHR {
11556 VkStructureType sType;
11557 const void* pNext;
11558 VkExtent2D fragmentSize;
11559 VkFragmentShadingRateCombinerOpKHR combinerOps[2];
11560} VkPipelineFragmentShadingRateStateCreateInfoKHR;
11561
11562typedef struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR {
11563 VkStructureType sType;
11564 void* pNext;
11565 VkBool32 pipelineFragmentShadingRate;
11566 VkBool32 primitiveFragmentShadingRate;
11567 VkBool32 attachmentFragmentShadingRate;
11568} VkPhysicalDeviceFragmentShadingRateFeaturesKHR;
11569
11570typedef struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR {
11571 VkStructureType sType;
11572 void* pNext;
11573 VkExtent2D minFragmentShadingRateAttachmentTexelSize;
11574 VkExtent2D maxFragmentShadingRateAttachmentTexelSize;
11575 uint32_t maxFragmentShadingRateAttachmentTexelSizeAspectRatio;
11576 VkBool32 primitiveFragmentShadingRateWithMultipleViewports;
11577 VkBool32 layeredShadingRateAttachments;
11578 VkBool32 fragmentShadingRateNonTrivialCombinerOps;
11579 VkExtent2D maxFragmentSize;
11580 uint32_t maxFragmentSizeAspectRatio;
11581 uint32_t maxFragmentShadingRateCoverageSamples;
11582 VkSampleCountFlagBits maxFragmentShadingRateRasterizationSamples;
11583 VkBool32 fragmentShadingRateWithShaderDepthStencilWrites;
11584 VkBool32 fragmentShadingRateWithSampleMask;
11585 VkBool32 fragmentShadingRateWithShaderSampleMask;
11586 VkBool32 fragmentShadingRateWithConservativeRasterization;
11587 VkBool32 fragmentShadingRateWithFragmentShaderInterlock;
11588 VkBool32 fragmentShadingRateWithCustomSampleLocations;
11589 VkBool32 fragmentShadingRateStrictMultiplyCombiner;
11590} VkPhysicalDeviceFragmentShadingRatePropertiesKHR;
11591
11592typedef struct VkPhysicalDeviceFragmentShadingRateKHR {
11593 VkStructureType sType;
11594 void* pNext;
11595 VkSampleCountFlags sampleCounts;
11596 VkExtent2D fragmentSize;
11597} VkPhysicalDeviceFragmentShadingRateKHR;
11598
11599typedef struct VkRenderingFragmentShadingRateAttachmentInfoKHR {
11600 VkStructureType sType;
11601 const void* pNext;
11602 VkImageView imageView;
11603 VkImageLayout imageLayout;
11604 VkExtent2D shadingRateAttachmentTexelSize;
11605} VkRenderingFragmentShadingRateAttachmentInfoKHR;
11606
11607typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pFragmentShadingRateCount, VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates);
11608typedef void (VKAPI_PTR *PFN_vkCmdSetFragmentShadingRateKHR)(VkCommandBuffer commandBuffer, const VkExtent2D* pFragmentSize, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]);
11609
11610#ifndef VK_NO_PROTOTYPES
11611#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11612VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceFragmentShadingRatesKHR(
11613 VkPhysicalDevice physicalDevice,
11614 uint32_t* pFragmentShadingRateCount,
11615 VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates);
11616#endif
11617
11618#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11619VKAPI_ATTR void VKAPI_CALL vkCmdSetFragmentShadingRateKHR(
11620 VkCommandBuffer commandBuffer,
11621 const VkExtent2D* pFragmentSize,
11622 const VkFragmentShadingRateCombinerOpKHR combinerOps[2]);
11623#endif
11624#endif
11625
11626
11627// VK_KHR_dynamic_rendering_local_read is a preprocessor guard. Do not pass it to API calls.
11628#define VK_KHR_dynamic_rendering_local_read 1
11629#define VK_KHR_DYNAMIC_RENDERING_LOCAL_READ_SPEC_VERSION 1
11630#define VK_KHR_DYNAMIC_RENDERING_LOCAL_READ_EXTENSION_NAME "VK_KHR_dynamic_rendering_local_read"
11631typedef VkPhysicalDeviceDynamicRenderingLocalReadFeatures VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR;
11632
11633typedef VkRenderingAttachmentLocationInfo VkRenderingAttachmentLocationInfoKHR;
11634
11635typedef VkRenderingInputAttachmentIndexInfo VkRenderingInputAttachmentIndexInfoKHR;
11636
11637typedef void (VKAPI_PTR *PFN_vkCmdSetRenderingAttachmentLocationsKHR)(VkCommandBuffer commandBuffer, const VkRenderingAttachmentLocationInfo* pLocationInfo);
11638typedef void (VKAPI_PTR *PFN_vkCmdSetRenderingInputAttachmentIndicesKHR)(VkCommandBuffer commandBuffer, const VkRenderingInputAttachmentIndexInfo* pInputAttachmentIndexInfo);
11639
11640#ifndef VK_NO_PROTOTYPES
11641#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11642VKAPI_ATTR void VKAPI_CALL vkCmdSetRenderingAttachmentLocationsKHR(
11643 VkCommandBuffer commandBuffer,
11644 const VkRenderingAttachmentLocationInfo* pLocationInfo);
11645#endif
11646
11647#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11648VKAPI_ATTR void VKAPI_CALL vkCmdSetRenderingInputAttachmentIndicesKHR(
11649 VkCommandBuffer commandBuffer,
11650 const VkRenderingInputAttachmentIndexInfo* pInputAttachmentIndexInfo);
11651#endif
11652#endif
11653
11654
11655// VK_KHR_shader_quad_control is a preprocessor guard. Do not pass it to API calls.
11656#define VK_KHR_shader_quad_control 1
11657#define VK_KHR_SHADER_QUAD_CONTROL_SPEC_VERSION 1
11658#define VK_KHR_SHADER_QUAD_CONTROL_EXTENSION_NAME "VK_KHR_shader_quad_control"
11659typedef struct VkPhysicalDeviceShaderQuadControlFeaturesKHR {
11660 VkStructureType sType;
11661 void* pNext;
11662 VkBool32 shaderQuadControl;
11663} VkPhysicalDeviceShaderQuadControlFeaturesKHR;
11664
11665
11666
11667// VK_KHR_spirv_1_4 is a preprocessor guard. Do not pass it to API calls.
11668#define VK_KHR_spirv_1_4 1
11669#define VK_KHR_SPIRV_1_4_SPEC_VERSION 1
11670#define VK_KHR_SPIRV_1_4_EXTENSION_NAME "VK_KHR_spirv_1_4"
11671
11672
11673// VK_KHR_surface_protected_capabilities is a preprocessor guard. Do not pass it to API calls.
11674#define VK_KHR_surface_protected_capabilities 1
11675#define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_SPEC_VERSION 1
11676#define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME "VK_KHR_surface_protected_capabilities"
11677typedef struct VkSurfaceProtectedCapabilitiesKHR {
11678 VkStructureType sType;
11679 void* pNext;
11680 VkBool32 supportsProtected;
11681} VkSurfaceProtectedCapabilitiesKHR;
11682
11683
11684
11685// VK_KHR_separate_depth_stencil_layouts is a preprocessor guard. Do not pass it to API calls.
11686#define VK_KHR_separate_depth_stencil_layouts 1
11687#define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_SPEC_VERSION 1
11688#define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME "VK_KHR_separate_depth_stencil_layouts"
11689typedef VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR;
11690
11691typedef VkAttachmentReferenceStencilLayout VkAttachmentReferenceStencilLayoutKHR;
11692
11693typedef VkAttachmentDescriptionStencilLayout VkAttachmentDescriptionStencilLayoutKHR;
11694
11695
11696
11697// VK_KHR_present_wait is a preprocessor guard. Do not pass it to API calls.
11698#define VK_KHR_present_wait 1
11699#define VK_KHR_PRESENT_WAIT_SPEC_VERSION 1
11700#define VK_KHR_PRESENT_WAIT_EXTENSION_NAME "VK_KHR_present_wait"
11701typedef struct VkPhysicalDevicePresentWaitFeaturesKHR {
11702 VkStructureType sType;
11703 void* pNext;
11704 VkBool32 presentWait;
11705} VkPhysicalDevicePresentWaitFeaturesKHR;
11706
11707typedef VkResult (VKAPI_PTR *PFN_vkWaitForPresentKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t presentId, uint64_t timeout);
11708
11709#ifndef VK_NO_PROTOTYPES
11710#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11711VKAPI_ATTR VkResult VKAPI_CALL vkWaitForPresentKHR(
11712 VkDevice device,
11713 VkSwapchainKHR swapchain,
11714 uint64_t presentId,
11715 uint64_t timeout);
11716#endif
11717#endif
11718
11719
11720// VK_KHR_uniform_buffer_standard_layout is a preprocessor guard. Do not pass it to API calls.
11721#define VK_KHR_uniform_buffer_standard_layout 1
11722#define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION 1
11723#define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME "VK_KHR_uniform_buffer_standard_layout"
11724typedef VkPhysicalDeviceUniformBufferStandardLayoutFeatures VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR;
11725
11726
11727
11728// VK_KHR_buffer_device_address is a preprocessor guard. Do not pass it to API calls.
11729#define VK_KHR_buffer_device_address 1
11730#define VK_KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 1
11731#define VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_KHR_buffer_device_address"
11732typedef VkPhysicalDeviceBufferDeviceAddressFeatures VkPhysicalDeviceBufferDeviceAddressFeaturesKHR;
11733
11734typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoKHR;
11735
11736typedef VkBufferOpaqueCaptureAddressCreateInfo VkBufferOpaqueCaptureAddressCreateInfoKHR;
11737
11738typedef VkMemoryOpaqueCaptureAddressAllocateInfo VkMemoryOpaqueCaptureAddressAllocateInfoKHR;
11739
11740typedef VkDeviceMemoryOpaqueCaptureAddressInfo VkDeviceMemoryOpaqueCaptureAddressInfoKHR;
11741
11742typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddressKHR)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
11743typedef uint64_t (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureAddressKHR)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
11744typedef uint64_t (VKAPI_PTR *PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR)(VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
11745
11746#ifndef VK_NO_PROTOTYPES
11747#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11748VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddressKHR(
11749 VkDevice device,
11750 const VkBufferDeviceAddressInfo* pInfo);
11751#endif
11752
11753#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11754VKAPI_ATTR uint64_t VKAPI_CALL vkGetBufferOpaqueCaptureAddressKHR(
11755 VkDevice device,
11756 const VkBufferDeviceAddressInfo* pInfo);
11757#endif
11758
11759#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11760VKAPI_ATTR uint64_t VKAPI_CALL vkGetDeviceMemoryOpaqueCaptureAddressKHR(
11761 VkDevice device,
11762 const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
11763#endif
11764#endif
11765
11766
11767// VK_KHR_deferred_host_operations is a preprocessor guard. Do not pass it to API calls.
11768#define VK_KHR_deferred_host_operations 1
11769VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeferredOperationKHR)
11770#define VK_KHR_DEFERRED_HOST_OPERATIONS_SPEC_VERSION 4
11771#define VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME "VK_KHR_deferred_host_operations"
11772typedef VkResult (VKAPI_PTR *PFN_vkCreateDeferredOperationKHR)(VkDevice device, const VkAllocationCallbacks* pAllocator, VkDeferredOperationKHR* pDeferredOperation);
11773typedef void (VKAPI_PTR *PFN_vkDestroyDeferredOperationKHR)(VkDevice device, VkDeferredOperationKHR operation, const VkAllocationCallbacks* pAllocator);
11774typedef uint32_t (VKAPI_PTR *PFN_vkGetDeferredOperationMaxConcurrencyKHR)(VkDevice device, VkDeferredOperationKHR operation);
11775typedef VkResult (VKAPI_PTR *PFN_vkGetDeferredOperationResultKHR)(VkDevice device, VkDeferredOperationKHR operation);
11776typedef VkResult (VKAPI_PTR *PFN_vkDeferredOperationJoinKHR)(VkDevice device, VkDeferredOperationKHR operation);
11777
11778#ifndef VK_NO_PROTOTYPES
11779#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11780VKAPI_ATTR VkResult VKAPI_CALL vkCreateDeferredOperationKHR(
11781 VkDevice device,
11782 const VkAllocationCallbacks* pAllocator,
11783 VkDeferredOperationKHR* pDeferredOperation);
11784#endif
11785
11786#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11787VKAPI_ATTR void VKAPI_CALL vkDestroyDeferredOperationKHR(
11788 VkDevice device,
11789 VkDeferredOperationKHR operation,
11790 const VkAllocationCallbacks* pAllocator);
11791#endif
11792
11793#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11794VKAPI_ATTR uint32_t VKAPI_CALL vkGetDeferredOperationMaxConcurrencyKHR(
11795 VkDevice device,
11796 VkDeferredOperationKHR operation);
11797#endif
11798
11799#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11800VKAPI_ATTR VkResult VKAPI_CALL vkGetDeferredOperationResultKHR(
11801 VkDevice device,
11802 VkDeferredOperationKHR operation);
11803#endif
11804
11805#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11806VKAPI_ATTR VkResult VKAPI_CALL vkDeferredOperationJoinKHR(
11807 VkDevice device,
11808 VkDeferredOperationKHR operation);
11809#endif
11810#endif
11811
11812
11813// VK_KHR_pipeline_executable_properties is a preprocessor guard. Do not pass it to API calls.
11814#define VK_KHR_pipeline_executable_properties 1
11815#define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION 1
11816#define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME "VK_KHR_pipeline_executable_properties"
11817
11818typedef enum VkPipelineExecutableStatisticFormatKHR {
11819 VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0,
11820 VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1,
11821 VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2,
11822 VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3,
11823 VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 0x7FFFFFFF
11824} VkPipelineExecutableStatisticFormatKHR;
11825typedef struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR {
11826 VkStructureType sType;
11827 void* pNext;
11828 VkBool32 pipelineExecutableInfo;
11829} VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
11830
11831typedef struct VkPipelineInfoKHR {
11832 VkStructureType sType;
11833 const void* pNext;
11834 VkPipeline pipeline;
11835} VkPipelineInfoKHR;
11836
11837typedef struct VkPipelineExecutablePropertiesKHR {
11838 VkStructureType sType;
11839 void* pNext;
11840 VkShaderStageFlags stages;
11841 char name[VK_MAX_DESCRIPTION_SIZE];
11842 char description[VK_MAX_DESCRIPTION_SIZE];
11843 uint32_t subgroupSize;
11844} VkPipelineExecutablePropertiesKHR;
11845
11846typedef struct VkPipelineExecutableInfoKHR {
11847 VkStructureType sType;
11848 const void* pNext;
11849 VkPipeline pipeline;
11850 uint32_t executableIndex;
11851} VkPipelineExecutableInfoKHR;
11852
11853typedef union VkPipelineExecutableStatisticValueKHR {
11854 VkBool32 b32;
11855 int64_t i64;
11856 uint64_t u64;
11857 double f64;
11858} VkPipelineExecutableStatisticValueKHR;
11859
11860typedef struct VkPipelineExecutableStatisticKHR {
11861 VkStructureType sType;
11862 void* pNext;
11863 char name[VK_MAX_DESCRIPTION_SIZE];
11864 char description[VK_MAX_DESCRIPTION_SIZE];
11865 VkPipelineExecutableStatisticFormatKHR format;
11866 VkPipelineExecutableStatisticValueKHR value;
11867} VkPipelineExecutableStatisticKHR;
11868
11869typedef struct VkPipelineExecutableInternalRepresentationKHR {
11870 VkStructureType sType;
11871 void* pNext;
11872 char name[VK_MAX_DESCRIPTION_SIZE];
11873 char description[VK_MAX_DESCRIPTION_SIZE];
11874 VkBool32 isText;
11875 size_t dataSize;
11876 void* pData;
11877} VkPipelineExecutableInternalRepresentationKHR;
11878
11879typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutablePropertiesKHR)(VkDevice device, const VkPipelineInfoKHR* pPipelineInfo, uint32_t* pExecutableCount, VkPipelineExecutablePropertiesKHR* pProperties);
11880typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutableStatisticsKHR)(VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics);
11881typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutableInternalRepresentationsKHR)(VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations);
11882
11883#ifndef VK_NO_PROTOTYPES
11884#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11885VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutablePropertiesKHR(
11886 VkDevice device,
11887 const VkPipelineInfoKHR* pPipelineInfo,
11888 uint32_t* pExecutableCount,
11889 VkPipelineExecutablePropertiesKHR* pProperties);
11890#endif
11891
11892#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11893VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableStatisticsKHR(
11894 VkDevice device,
11895 const VkPipelineExecutableInfoKHR* pExecutableInfo,
11896 uint32_t* pStatisticCount,
11897 VkPipelineExecutableStatisticKHR* pStatistics);
11898#endif
11899
11900#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11901VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableInternalRepresentationsKHR(
11902 VkDevice device,
11903 const VkPipelineExecutableInfoKHR* pExecutableInfo,
11904 uint32_t* pInternalRepresentationCount,
11905 VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations);
11906#endif
11907#endif
11908
11909
11910// VK_KHR_map_memory2 is a preprocessor guard. Do not pass it to API calls.
11911#define VK_KHR_map_memory2 1
11912#define VK_KHR_MAP_MEMORY_2_SPEC_VERSION 1
11913#define VK_KHR_MAP_MEMORY_2_EXTENSION_NAME "VK_KHR_map_memory2"
11914typedef VkMemoryUnmapFlagBits VkMemoryUnmapFlagBitsKHR;
11915
11916typedef VkMemoryUnmapFlags VkMemoryUnmapFlagsKHR;
11917
11918typedef VkMemoryMapInfo VkMemoryMapInfoKHR;
11919
11920typedef VkMemoryUnmapInfo VkMemoryUnmapInfoKHR;
11921
11922typedef VkResult (VKAPI_PTR *PFN_vkMapMemory2KHR)(VkDevice device, const VkMemoryMapInfo* pMemoryMapInfo, void** ppData);
11923typedef VkResult (VKAPI_PTR *PFN_vkUnmapMemory2KHR)(VkDevice device, const VkMemoryUnmapInfo* pMemoryUnmapInfo);
11924
11925#ifndef VK_NO_PROTOTYPES
11926#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11927VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory2KHR(
11928 VkDevice device,
11929 const VkMemoryMapInfo* pMemoryMapInfo,
11930 void** ppData);
11931#endif
11932
11933#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11934VKAPI_ATTR VkResult VKAPI_CALL vkUnmapMemory2KHR(
11935 VkDevice device,
11936 const VkMemoryUnmapInfo* pMemoryUnmapInfo);
11937#endif
11938#endif
11939
11940
11941// VK_KHR_shader_integer_dot_product is a preprocessor guard. Do not pass it to API calls.
11942#define VK_KHR_shader_integer_dot_product 1
11943#define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION 1
11944#define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME "VK_KHR_shader_integer_dot_product"
11945typedef VkPhysicalDeviceShaderIntegerDotProductFeatures VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR;
11946
11947typedef VkPhysicalDeviceShaderIntegerDotProductProperties VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR;
11948
11949
11950
11951// VK_KHR_pipeline_library is a preprocessor guard. Do not pass it to API calls.
11952#define VK_KHR_pipeline_library 1
11953#define VK_KHR_PIPELINE_LIBRARY_SPEC_VERSION 1
11954#define VK_KHR_PIPELINE_LIBRARY_EXTENSION_NAME "VK_KHR_pipeline_library"
11955typedef struct VkPipelineLibraryCreateInfoKHR {
11956 VkStructureType sType;
11957 const void* pNext;
11958 uint32_t libraryCount;
11959 const VkPipeline* pLibraries;
11960} VkPipelineLibraryCreateInfoKHR;
11961
11962
11963
11964// VK_KHR_shader_non_semantic_info is a preprocessor guard. Do not pass it to API calls.
11965#define VK_KHR_shader_non_semantic_info 1
11966#define VK_KHR_SHADER_NON_SEMANTIC_INFO_SPEC_VERSION 1
11967#define VK_KHR_SHADER_NON_SEMANTIC_INFO_EXTENSION_NAME "VK_KHR_shader_non_semantic_info"
11968
11969
11970// VK_KHR_present_id is a preprocessor guard. Do not pass it to API calls.
11971#define VK_KHR_present_id 1
11972#define VK_KHR_PRESENT_ID_SPEC_VERSION 1
11973#define VK_KHR_PRESENT_ID_EXTENSION_NAME "VK_KHR_present_id"
11974typedef struct VkPresentIdKHR {
11975 VkStructureType sType;
11976 const void* pNext;
11977 uint32_t swapchainCount;
11978 const uint64_t* pPresentIds;
11979} VkPresentIdKHR;
11980
11981typedef struct VkPhysicalDevicePresentIdFeaturesKHR {
11982 VkStructureType sType;
11983 void* pNext;
11984 VkBool32 presentId;
11985} VkPhysicalDevicePresentIdFeaturesKHR;
11986
11987
11988
11989// VK_KHR_video_encode_queue is a preprocessor guard. Do not pass it to API calls.
11990#define VK_KHR_video_encode_queue 1
11991#define VK_KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION 12
11992#define VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME "VK_KHR_video_encode_queue"
11993
11994typedef enum VkVideoEncodeTuningModeKHR {
11995 VK_VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHR = 0,
11996 VK_VIDEO_ENCODE_TUNING_MODE_HIGH_QUALITY_KHR = 1,
11997 VK_VIDEO_ENCODE_TUNING_MODE_LOW_LATENCY_KHR = 2,
11998 VK_VIDEO_ENCODE_TUNING_MODE_ULTRA_LOW_LATENCY_KHR = 3,
11999 VK_VIDEO_ENCODE_TUNING_MODE_LOSSLESS_KHR = 4,
12000 VK_VIDEO_ENCODE_TUNING_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
12001} VkVideoEncodeTuningModeKHR;
12002
12003typedef enum VkVideoEncodeFlagBitsKHR {
12004 VK_VIDEO_ENCODE_INTRA_REFRESH_BIT_KHR = 0x00000004,
12005 VK_VIDEO_ENCODE_WITH_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x00000001,
12006 VK_VIDEO_ENCODE_WITH_EMPHASIS_MAP_BIT_KHR = 0x00000002,
12007 VK_VIDEO_ENCODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
12008} VkVideoEncodeFlagBitsKHR;
12009typedef VkFlags VkVideoEncodeFlagsKHR;
12010
12011typedef enum VkVideoEncodeCapabilityFlagBitsKHR {
12012 VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR = 0x00000001,
12013 VK_VIDEO_ENCODE_CAPABILITY_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_DETECTION_BIT_KHR = 0x00000002,
12014 VK_VIDEO_ENCODE_CAPABILITY_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x00000004,
12015 VK_VIDEO_ENCODE_CAPABILITY_EMPHASIS_MAP_BIT_KHR = 0x00000008,
12016 VK_VIDEO_ENCODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
12017} VkVideoEncodeCapabilityFlagBitsKHR;
12018typedef VkFlags VkVideoEncodeCapabilityFlagsKHR;
12019
12020typedef enum VkVideoEncodeRateControlModeFlagBitsKHR {
12021 VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR = 0,
12022 VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR = 0x00000001,
12023 VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR = 0x00000002,
12024 VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR = 0x00000004,
12025 VK_VIDEO_ENCODE_RATE_CONTROL_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
12026} VkVideoEncodeRateControlModeFlagBitsKHR;
12027typedef VkFlags VkVideoEncodeRateControlModeFlagsKHR;
12028
12029typedef enum VkVideoEncodeFeedbackFlagBitsKHR {
12030 VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BUFFER_OFFSET_BIT_KHR = 0x00000001,
12031 VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BYTES_WRITTEN_BIT_KHR = 0x00000002,
12032 VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_HAS_OVERRIDES_BIT_KHR = 0x00000004,
12033 VK_VIDEO_ENCODE_FEEDBACK_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
12034} VkVideoEncodeFeedbackFlagBitsKHR;
12035typedef VkFlags VkVideoEncodeFeedbackFlagsKHR;
12036
12037typedef enum VkVideoEncodeUsageFlagBitsKHR {
12038 VK_VIDEO_ENCODE_USAGE_DEFAULT_KHR = 0,
12039 VK_VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHR = 0x00000001,
12040 VK_VIDEO_ENCODE_USAGE_STREAMING_BIT_KHR = 0x00000002,
12041 VK_VIDEO_ENCODE_USAGE_RECORDING_BIT_KHR = 0x00000004,
12042 VK_VIDEO_ENCODE_USAGE_CONFERENCING_BIT_KHR = 0x00000008,
12043 VK_VIDEO_ENCODE_USAGE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
12044} VkVideoEncodeUsageFlagBitsKHR;
12045typedef VkFlags VkVideoEncodeUsageFlagsKHR;
12046
12047typedef enum VkVideoEncodeContentFlagBitsKHR {
12048 VK_VIDEO_ENCODE_CONTENT_DEFAULT_KHR = 0,
12049 VK_VIDEO_ENCODE_CONTENT_CAMERA_BIT_KHR = 0x00000001,
12050 VK_VIDEO_ENCODE_CONTENT_DESKTOP_BIT_KHR = 0x00000002,
12051 VK_VIDEO_ENCODE_CONTENT_RENDERED_BIT_KHR = 0x00000004,
12052 VK_VIDEO_ENCODE_CONTENT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
12053} VkVideoEncodeContentFlagBitsKHR;
12054typedef VkFlags VkVideoEncodeContentFlagsKHR;
12055typedef VkFlags VkVideoEncodeRateControlFlagsKHR;
12056typedef struct VkVideoEncodeInfoKHR {
12057 VkStructureType sType;
12058 const void* pNext;
12059 VkVideoEncodeFlagsKHR flags;
12060 VkBuffer dstBuffer;
12061 VkDeviceSize dstBufferOffset;
12062 VkDeviceSize dstBufferRange;
12063 VkVideoPictureResourceInfoKHR srcPictureResource;
12064 const VkVideoReferenceSlotInfoKHR* pSetupReferenceSlot;
12065 uint32_t referenceSlotCount;
12066 const VkVideoReferenceSlotInfoKHR* pReferenceSlots;
12067 uint32_t precedingExternallyEncodedBytes;
12068} VkVideoEncodeInfoKHR;
12069
12070typedef struct VkVideoEncodeCapabilitiesKHR {
12071 VkStructureType sType;
12072 void* pNext;
12073 VkVideoEncodeCapabilityFlagsKHR flags;
12074 VkVideoEncodeRateControlModeFlagsKHR rateControlModes;
12075 uint32_t maxRateControlLayers;
12076 uint64_t maxBitrate;
12077 uint32_t maxQualityLevels;
12078 VkExtent2D encodeInputPictureGranularity;
12079 VkVideoEncodeFeedbackFlagsKHR supportedEncodeFeedbackFlags;
12080} VkVideoEncodeCapabilitiesKHR;
12081
12082typedef struct VkQueryPoolVideoEncodeFeedbackCreateInfoKHR {
12083 VkStructureType sType;
12084 const void* pNext;
12085 VkVideoEncodeFeedbackFlagsKHR encodeFeedbackFlags;
12086} VkQueryPoolVideoEncodeFeedbackCreateInfoKHR;
12087
12088typedef struct VkVideoEncodeUsageInfoKHR {
12089 VkStructureType sType;
12090 const void* pNext;
12091 VkVideoEncodeUsageFlagsKHR videoUsageHints;
12092 VkVideoEncodeContentFlagsKHR videoContentHints;
12093 VkVideoEncodeTuningModeKHR tuningMode;
12094} VkVideoEncodeUsageInfoKHR;
12095
12096typedef struct VkVideoEncodeRateControlLayerInfoKHR {
12097 VkStructureType sType;
12098 const void* pNext;
12099 uint64_t averageBitrate;
12100 uint64_t maxBitrate;
12101 uint32_t frameRateNumerator;
12102 uint32_t frameRateDenominator;
12103} VkVideoEncodeRateControlLayerInfoKHR;
12104
12105typedef struct VkVideoEncodeRateControlInfoKHR {
12106 VkStructureType sType;
12107 const void* pNext;
12108 VkVideoEncodeRateControlFlagsKHR flags;
12109 VkVideoEncodeRateControlModeFlagBitsKHR rateControlMode;
12110 uint32_t layerCount;
12111 const VkVideoEncodeRateControlLayerInfoKHR* pLayers;
12112 uint32_t virtualBufferSizeInMs;
12113 uint32_t initialVirtualBufferSizeInMs;
12114} VkVideoEncodeRateControlInfoKHR;
12115
12116typedef struct VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR {
12117 VkStructureType sType;
12118 const void* pNext;
12119 const VkVideoProfileInfoKHR* pVideoProfile;
12120 uint32_t qualityLevel;
12121} VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR;
12122
12123typedef struct VkVideoEncodeQualityLevelPropertiesKHR {
12124 VkStructureType sType;
12125 void* pNext;
12126 VkVideoEncodeRateControlModeFlagBitsKHR preferredRateControlMode;
12127 uint32_t preferredRateControlLayerCount;
12128} VkVideoEncodeQualityLevelPropertiesKHR;
12129
12130typedef struct VkVideoEncodeQualityLevelInfoKHR {
12131 VkStructureType sType;
12132 const void* pNext;
12133 uint32_t qualityLevel;
12134} VkVideoEncodeQualityLevelInfoKHR;
12135
12136typedef struct VkVideoEncodeSessionParametersGetInfoKHR {
12137 VkStructureType sType;
12138 const void* pNext;
12139 VkVideoSessionParametersKHR videoSessionParameters;
12140} VkVideoEncodeSessionParametersGetInfoKHR;
12141
12142typedef struct VkVideoEncodeSessionParametersFeedbackInfoKHR {
12143 VkStructureType sType;
12144 void* pNext;
12145 VkBool32 hasOverrides;
12146} VkVideoEncodeSessionParametersFeedbackInfoKHR;
12147
12148typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* pQualityLevelInfo, VkVideoEncodeQualityLevelPropertiesKHR* pQualityLevelProperties);
12149typedef VkResult (VKAPI_PTR *PFN_vkGetEncodedVideoSessionParametersKHR)(VkDevice device, const VkVideoEncodeSessionParametersGetInfoKHR* pVideoSessionParametersInfo, VkVideoEncodeSessionParametersFeedbackInfoKHR* pFeedbackInfo, size_t* pDataSize, void* pData);
12150typedef void (VKAPI_PTR *PFN_vkCmdEncodeVideoKHR)(VkCommandBuffer commandBuffer, const VkVideoEncodeInfoKHR* pEncodeInfo);
12151
12152#ifndef VK_NO_PROTOTYPES
12153#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12154VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(
12155 VkPhysicalDevice physicalDevice,
12156 const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* pQualityLevelInfo,
12157 VkVideoEncodeQualityLevelPropertiesKHR* pQualityLevelProperties);
12158#endif
12159
12160#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12161VKAPI_ATTR VkResult VKAPI_CALL vkGetEncodedVideoSessionParametersKHR(
12162 VkDevice device,
12163 const VkVideoEncodeSessionParametersGetInfoKHR* pVideoSessionParametersInfo,
12164 VkVideoEncodeSessionParametersFeedbackInfoKHR* pFeedbackInfo,
12165 size_t* pDataSize,
12166 void* pData);
12167#endif
12168
12169#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12170VKAPI_ATTR void VKAPI_CALL vkCmdEncodeVideoKHR(
12171 VkCommandBuffer commandBuffer,
12172 const VkVideoEncodeInfoKHR* pEncodeInfo);
12173#endif
12174#endif
12175
12176
12177// VK_KHR_synchronization2 is a preprocessor guard. Do not pass it to API calls.
12178#define VK_KHR_synchronization2 1
12179#define VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION 1
12180#define VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME "VK_KHR_synchronization2"
12181typedef VkPipelineStageFlags2 VkPipelineStageFlags2KHR;
12182
12183typedef VkPipelineStageFlagBits2 VkPipelineStageFlagBits2KHR;
12184
12185typedef VkAccessFlags2 VkAccessFlags2KHR;
12186
12187typedef VkAccessFlagBits2 VkAccessFlagBits2KHR;
12188
12189typedef VkSubmitFlagBits VkSubmitFlagBitsKHR;
12190
12191typedef VkSubmitFlags VkSubmitFlagsKHR;
12192
12193typedef VkMemoryBarrier2 VkMemoryBarrier2KHR;
12194
12195typedef VkBufferMemoryBarrier2 VkBufferMemoryBarrier2KHR;
12196
12197typedef VkImageMemoryBarrier2 VkImageMemoryBarrier2KHR;
12198
12199typedef VkDependencyInfo VkDependencyInfoKHR;
12200
12201typedef VkSubmitInfo2 VkSubmitInfo2KHR;
12202
12203typedef VkSemaphoreSubmitInfo VkSemaphoreSubmitInfoKHR;
12204
12205typedef VkCommandBufferSubmitInfo VkCommandBufferSubmitInfoKHR;
12206
12207typedef VkPhysicalDeviceSynchronization2Features VkPhysicalDeviceSynchronization2FeaturesKHR;
12208
12209typedef void (VKAPI_PTR *PFN_vkCmdSetEvent2KHR)(VkCommandBuffer commandBuffer, VkEvent event, const VkDependencyInfo* pDependencyInfo);
12210typedef void (VKAPI_PTR *PFN_vkCmdResetEvent2KHR)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags2 stageMask);
12211typedef void (VKAPI_PTR *PFN_vkCmdWaitEvents2KHR)(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, const VkDependencyInfo* pDependencyInfos);
12212typedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier2KHR)(VkCommandBuffer commandBuffer, const VkDependencyInfo* pDependencyInfo);
12213typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp2KHR)(VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkQueryPool queryPool, uint32_t query);
12214typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit2KHR)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo2* pSubmits, VkFence fence);
12215
12216#ifndef VK_NO_PROTOTYPES
12217#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12218VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent2KHR(
12219 VkCommandBuffer commandBuffer,
12220 VkEvent event,
12221 const VkDependencyInfo* pDependencyInfo);
12222#endif
12223
12224#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12225VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent2KHR(
12226 VkCommandBuffer commandBuffer,
12227 VkEvent event,
12228 VkPipelineStageFlags2 stageMask);
12229#endif
12230
12231#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12232VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents2KHR(
12233 VkCommandBuffer commandBuffer,
12234 uint32_t eventCount,
12235 const VkEvent* pEvents,
12236 const VkDependencyInfo* pDependencyInfos);
12237#endif
12238
12239#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12240VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier2KHR(
12241 VkCommandBuffer commandBuffer,
12242 const VkDependencyInfo* pDependencyInfo);
12243#endif
12244
12245#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12246VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp2KHR(
12247 VkCommandBuffer commandBuffer,
12248 VkPipelineStageFlags2 stage,
12249 VkQueryPool queryPool,
12250 uint32_t query);
12251#endif
12252
12253#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12254VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit2KHR(
12255 VkQueue queue,
12256 uint32_t submitCount,
12257 const VkSubmitInfo2* pSubmits,
12258 VkFence fence);
12259#endif
12260#endif
12261
12262
12263// VK_KHR_fragment_shader_barycentric is a preprocessor guard. Do not pass it to API calls.
12264#define VK_KHR_fragment_shader_barycentric 1
12265#define VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1
12266#define VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_KHR_fragment_shader_barycentric"
12267typedef struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR {
12268 VkStructureType sType;
12269 void* pNext;
12270 VkBool32 fragmentShaderBarycentric;
12271} VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR;
12272
12273typedef struct VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR {
12274 VkStructureType sType;
12275 void* pNext;
12276 VkBool32 triStripVertexOrderIndependentOfProvokingVertex;
12277} VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR;
12278
12279
12280
12281// VK_KHR_shader_subgroup_uniform_control_flow is a preprocessor guard. Do not pass it to API calls.
12282#define VK_KHR_shader_subgroup_uniform_control_flow 1
12283#define VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_SPEC_VERSION 1
12284#define VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_EXTENSION_NAME "VK_KHR_shader_subgroup_uniform_control_flow"
12285typedef struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR {
12286 VkStructureType sType;
12287 void* pNext;
12288 VkBool32 shaderSubgroupUniformControlFlow;
12289} VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR;
12290
12291
12292
12293// VK_KHR_zero_initialize_workgroup_memory is a preprocessor guard. Do not pass it to API calls.
12294#define VK_KHR_zero_initialize_workgroup_memory 1
12295#define VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION 1
12296#define VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME "VK_KHR_zero_initialize_workgroup_memory"
12297typedef VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR;
12298
12299
12300
12301// VK_KHR_workgroup_memory_explicit_layout is a preprocessor guard. Do not pass it to API calls.
12302#define VK_KHR_workgroup_memory_explicit_layout 1
12303#define VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION 1
12304#define VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME "VK_KHR_workgroup_memory_explicit_layout"
12305typedef struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR {
12306 VkStructureType sType;
12307 void* pNext;
12308 VkBool32 workgroupMemoryExplicitLayout;
12309 VkBool32 workgroupMemoryExplicitLayoutScalarBlockLayout;
12310 VkBool32 workgroupMemoryExplicitLayout8BitAccess;
12311 VkBool32 workgroupMemoryExplicitLayout16BitAccess;
12312} VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR;
12313
12314
12315
12316// VK_KHR_copy_commands2 is a preprocessor guard. Do not pass it to API calls.
12317#define VK_KHR_copy_commands2 1
12318#define VK_KHR_COPY_COMMANDS_2_SPEC_VERSION 1
12319#define VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME "VK_KHR_copy_commands2"
12320typedef VkCopyBufferInfo2 VkCopyBufferInfo2KHR;
12321
12322typedef VkCopyImageInfo2 VkCopyImageInfo2KHR;
12323
12324typedef VkCopyBufferToImageInfo2 VkCopyBufferToImageInfo2KHR;
12325
12326typedef VkCopyImageToBufferInfo2 VkCopyImageToBufferInfo2KHR;
12327
12328typedef VkBlitImageInfo2 VkBlitImageInfo2KHR;
12329
12330typedef VkResolveImageInfo2 VkResolveImageInfo2KHR;
12331
12332typedef VkBufferCopy2 VkBufferCopy2KHR;
12333
12334typedef VkImageCopy2 VkImageCopy2KHR;
12335
12336typedef VkImageBlit2 VkImageBlit2KHR;
12337
12338typedef VkBufferImageCopy2 VkBufferImageCopy2KHR;
12339
12340typedef VkImageResolve2 VkImageResolve2KHR;
12341
12342typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer2KHR)(VkCommandBuffer commandBuffer, const VkCopyBufferInfo2* pCopyBufferInfo);
12343typedef void (VKAPI_PTR *PFN_vkCmdCopyImage2KHR)(VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo);
12344typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage2KHR)(VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo);
12345typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer2KHR)(VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo);
12346typedef void (VKAPI_PTR *PFN_vkCmdBlitImage2KHR)(VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo);
12347typedef void (VKAPI_PTR *PFN_vkCmdResolveImage2KHR)(VkCommandBuffer commandBuffer, const VkResolveImageInfo2* pResolveImageInfo);
12348
12349#ifndef VK_NO_PROTOTYPES
12350#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12351VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer2KHR(
12352 VkCommandBuffer commandBuffer,
12353 const VkCopyBufferInfo2* pCopyBufferInfo);
12354#endif
12355
12356#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12357VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage2KHR(
12358 VkCommandBuffer commandBuffer,
12359 const VkCopyImageInfo2* pCopyImageInfo);
12360#endif
12361
12362#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12363VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage2KHR(
12364 VkCommandBuffer commandBuffer,
12365 const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo);
12366#endif
12367
12368#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12369VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer2KHR(
12370 VkCommandBuffer commandBuffer,
12371 const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo);
12372#endif
12373
12374#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12375VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage2KHR(
12376 VkCommandBuffer commandBuffer,
12377 const VkBlitImageInfo2* pBlitImageInfo);
12378#endif
12379
12380#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12381VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage2KHR(
12382 VkCommandBuffer commandBuffer,
12383 const VkResolveImageInfo2* pResolveImageInfo);
12384#endif
12385#endif
12386
12387
12388// VK_KHR_format_feature_flags2 is a preprocessor guard. Do not pass it to API calls.
12389#define VK_KHR_format_feature_flags2 1
12390#define VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION 2
12391#define VK_KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME "VK_KHR_format_feature_flags2"
12392typedef VkFormatFeatureFlags2 VkFormatFeatureFlags2KHR;
12393
12394typedef VkFormatFeatureFlagBits2 VkFormatFeatureFlagBits2KHR;
12395
12396typedef VkFormatProperties3 VkFormatProperties3KHR;
12397
12398
12399
12400// VK_KHR_ray_tracing_maintenance1 is a preprocessor guard. Do not pass it to API calls.
12401#define VK_KHR_ray_tracing_maintenance1 1
12402#define VK_KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION 1
12403#define VK_KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_ray_tracing_maintenance1"
12404typedef struct VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR {
12405 VkStructureType sType;
12406 void* pNext;
12407 VkBool32 rayTracingMaintenance1;
12408 VkBool32 rayTracingPipelineTraceRaysIndirect2;
12409} VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR;
12410
12411typedef struct VkTraceRaysIndirectCommand2KHR {
12412 VkDeviceAddress raygenShaderRecordAddress;
12413 VkDeviceSize raygenShaderRecordSize;
12414 VkDeviceAddress missShaderBindingTableAddress;
12415 VkDeviceSize missShaderBindingTableSize;
12416 VkDeviceSize missShaderBindingTableStride;
12417 VkDeviceAddress hitShaderBindingTableAddress;
12418 VkDeviceSize hitShaderBindingTableSize;
12419 VkDeviceSize hitShaderBindingTableStride;
12420 VkDeviceAddress callableShaderBindingTableAddress;
12421 VkDeviceSize callableShaderBindingTableSize;
12422 VkDeviceSize callableShaderBindingTableStride;
12423 uint32_t width;
12424 uint32_t height;
12425 uint32_t depth;
12426} VkTraceRaysIndirectCommand2KHR;
12427
12428typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysIndirect2KHR)(VkCommandBuffer commandBuffer, VkDeviceAddress indirectDeviceAddress);
12429
12430#ifndef VK_NO_PROTOTYPES
12431#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12432VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysIndirect2KHR(
12433 VkCommandBuffer commandBuffer,
12434 VkDeviceAddress indirectDeviceAddress);
12435#endif
12436#endif
12437
12438
12439// VK_KHR_shader_untyped_pointers is a preprocessor guard. Do not pass it to API calls.
12440#define VK_KHR_shader_untyped_pointers 1
12441#define VK_KHR_SHADER_UNTYPED_POINTERS_SPEC_VERSION 1
12442#define VK_KHR_SHADER_UNTYPED_POINTERS_EXTENSION_NAME "VK_KHR_shader_untyped_pointers"
12443typedef struct VkPhysicalDeviceShaderUntypedPointersFeaturesKHR {
12444 VkStructureType sType;
12445 void* pNext;
12446 VkBool32 shaderUntypedPointers;
12447} VkPhysicalDeviceShaderUntypedPointersFeaturesKHR;
12448
12449
12450
12451// VK_KHR_portability_enumeration is a preprocessor guard. Do not pass it to API calls.
12452#define VK_KHR_portability_enumeration 1
12453#define VK_KHR_PORTABILITY_ENUMERATION_SPEC_VERSION 1
12454#define VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME "VK_KHR_portability_enumeration"
12455
12456
12457// VK_KHR_maintenance4 is a preprocessor guard. Do not pass it to API calls.
12458#define VK_KHR_maintenance4 1
12459#define VK_KHR_MAINTENANCE_4_SPEC_VERSION 2
12460#define VK_KHR_MAINTENANCE_4_EXTENSION_NAME "VK_KHR_maintenance4"
12461typedef VkPhysicalDeviceMaintenance4Features VkPhysicalDeviceMaintenance4FeaturesKHR;
12462
12463typedef VkPhysicalDeviceMaintenance4Properties VkPhysicalDeviceMaintenance4PropertiesKHR;
12464
12465typedef VkDeviceBufferMemoryRequirements VkDeviceBufferMemoryRequirementsKHR;
12466
12467typedef VkDeviceImageMemoryRequirements VkDeviceImageMemoryRequirementsKHR;
12468
12469typedef void (VKAPI_PTR *PFN_vkGetDeviceBufferMemoryRequirementsKHR)(VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
12470typedef void (VKAPI_PTR *PFN_vkGetDeviceImageMemoryRequirementsKHR)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
12471typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSparseMemoryRequirementsKHR)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
12472
12473#ifndef VK_NO_PROTOTYPES
12474#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12475VKAPI_ATTR void VKAPI_CALL vkGetDeviceBufferMemoryRequirementsKHR(
12476 VkDevice device,
12477 const VkDeviceBufferMemoryRequirements* pInfo,
12478 VkMemoryRequirements2* pMemoryRequirements);
12479#endif
12480
12481#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12482VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageMemoryRequirementsKHR(
12483 VkDevice device,
12484 const VkDeviceImageMemoryRequirements* pInfo,
12485 VkMemoryRequirements2* pMemoryRequirements);
12486#endif
12487
12488#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12489VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSparseMemoryRequirementsKHR(
12490 VkDevice device,
12491 const VkDeviceImageMemoryRequirements* pInfo,
12492 uint32_t* pSparseMemoryRequirementCount,
12493 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
12494#endif
12495#endif
12496
12497
12498// VK_KHR_shader_subgroup_rotate is a preprocessor guard. Do not pass it to API calls.
12499#define VK_KHR_shader_subgroup_rotate 1
12500#define VK_KHR_SHADER_SUBGROUP_ROTATE_SPEC_VERSION 2
12501#define VK_KHR_SHADER_SUBGROUP_ROTATE_EXTENSION_NAME "VK_KHR_shader_subgroup_rotate"
12502typedef VkPhysicalDeviceShaderSubgroupRotateFeatures VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR;
12503
12504
12505
12506// VK_KHR_shader_maximal_reconvergence is a preprocessor guard. Do not pass it to API calls.
12507#define VK_KHR_shader_maximal_reconvergence 1
12508#define VK_KHR_SHADER_MAXIMAL_RECONVERGENCE_SPEC_VERSION 1
12509#define VK_KHR_SHADER_MAXIMAL_RECONVERGENCE_EXTENSION_NAME "VK_KHR_shader_maximal_reconvergence"
12510typedef struct VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR {
12511 VkStructureType sType;
12512 void* pNext;
12513 VkBool32 shaderMaximalReconvergence;
12514} VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR;
12515
12516
12517
12518// VK_KHR_maintenance5 is a preprocessor guard. Do not pass it to API calls.
12519#define VK_KHR_maintenance5 1
12520#define VK_KHR_MAINTENANCE_5_SPEC_VERSION 1
12521#define VK_KHR_MAINTENANCE_5_EXTENSION_NAME "VK_KHR_maintenance5"
12522typedef VkPipelineCreateFlags2 VkPipelineCreateFlags2KHR;
12523
12524typedef VkPipelineCreateFlagBits2 VkPipelineCreateFlagBits2KHR;
12525
12526typedef VkBufferUsageFlags2 VkBufferUsageFlags2KHR;
12527
12528typedef VkBufferUsageFlagBits2 VkBufferUsageFlagBits2KHR;
12529
12530typedef VkPhysicalDeviceMaintenance5Features VkPhysicalDeviceMaintenance5FeaturesKHR;
12531
12532typedef VkPhysicalDeviceMaintenance5Properties VkPhysicalDeviceMaintenance5PropertiesKHR;
12533
12534typedef VkRenderingAreaInfo VkRenderingAreaInfoKHR;
12535
12536typedef VkDeviceImageSubresourceInfo VkDeviceImageSubresourceInfoKHR;
12537
12538typedef VkImageSubresource2 VkImageSubresource2KHR;
12539
12540typedef VkSubresourceLayout2 VkSubresourceLayout2KHR;
12541
12542typedef VkPipelineCreateFlags2CreateInfo VkPipelineCreateFlags2CreateInfoKHR;
12543
12544typedef VkBufferUsageFlags2CreateInfo VkBufferUsageFlags2CreateInfoKHR;
12545
12546typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer2KHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkDeviceSize size, VkIndexType indexType);
12547typedef void (VKAPI_PTR *PFN_vkGetRenderingAreaGranularityKHR)(VkDevice device, const VkRenderingAreaInfo* pRenderingAreaInfo, VkExtent2D* pGranularity);
12548typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSubresourceLayoutKHR)(VkDevice device, const VkDeviceImageSubresourceInfo* pInfo, VkSubresourceLayout2* pLayout);
12549typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout2KHR)(VkDevice device, VkImage image, const VkImageSubresource2* pSubresource, VkSubresourceLayout2* pLayout);
12550
12551#ifndef VK_NO_PROTOTYPES
12552#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12553VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer2KHR(
12554 VkCommandBuffer commandBuffer,
12555 VkBuffer buffer,
12556 VkDeviceSize offset,
12557 VkDeviceSize size,
12558 VkIndexType indexType);
12559#endif
12560
12561#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12562VKAPI_ATTR void VKAPI_CALL vkGetRenderingAreaGranularityKHR(
12563 VkDevice device,
12564 const VkRenderingAreaInfo* pRenderingAreaInfo,
12565 VkExtent2D* pGranularity);
12566#endif
12567
12568#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12569VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSubresourceLayoutKHR(
12570 VkDevice device,
12571 const VkDeviceImageSubresourceInfo* pInfo,
12572 VkSubresourceLayout2* pLayout);
12573#endif
12574
12575#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12576VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout2KHR(
12577 VkDevice device,
12578 VkImage image,
12579 const VkImageSubresource2* pSubresource,
12580 VkSubresourceLayout2* pLayout);
12581#endif
12582#endif
12583
12584
12585// VK_KHR_present_id2 is a preprocessor guard. Do not pass it to API calls.
12586#define VK_KHR_present_id2 1
12587#define VK_KHR_PRESENT_ID_2_SPEC_VERSION 1
12588#define VK_KHR_PRESENT_ID_2_EXTENSION_NAME "VK_KHR_present_id2"
12589typedef struct VkSurfaceCapabilitiesPresentId2KHR {
12590 VkStructureType sType;
12591 void* pNext;
12592 VkBool32 presentId2Supported;
12593} VkSurfaceCapabilitiesPresentId2KHR;
12594
12595typedef struct VkPresentId2KHR {
12596 VkStructureType sType;
12597 const void* pNext;
12598 uint32_t swapchainCount;
12599 const uint64_t* pPresentIds;
12600} VkPresentId2KHR;
12601
12602typedef struct VkPhysicalDevicePresentId2FeaturesKHR {
12603 VkStructureType sType;
12604 void* pNext;
12605 VkBool32 presentId2;
12606} VkPhysicalDevicePresentId2FeaturesKHR;
12607
12608
12609
12610// VK_KHR_present_wait2 is a preprocessor guard. Do not pass it to API calls.
12611#define VK_KHR_present_wait2 1
12612#define VK_KHR_PRESENT_WAIT_2_SPEC_VERSION 1
12613#define VK_KHR_PRESENT_WAIT_2_EXTENSION_NAME "VK_KHR_present_wait2"
12614typedef struct VkSurfaceCapabilitiesPresentWait2KHR {
12615 VkStructureType sType;
12616 void* pNext;
12617 VkBool32 presentWait2Supported;
12618} VkSurfaceCapabilitiesPresentWait2KHR;
12619
12620typedef struct VkPhysicalDevicePresentWait2FeaturesKHR {
12621 VkStructureType sType;
12622 void* pNext;
12623 VkBool32 presentWait2;
12624} VkPhysicalDevicePresentWait2FeaturesKHR;
12625
12626typedef struct VkPresentWait2InfoKHR {
12627 VkStructureType sType;
12628 const void* pNext;
12629 uint64_t presentId;
12630 uint64_t timeout;
12631} VkPresentWait2InfoKHR;
12632
12633typedef VkResult (VKAPI_PTR *PFN_vkWaitForPresent2KHR)(VkDevice device, VkSwapchainKHR swapchain, const VkPresentWait2InfoKHR* pPresentWait2Info);
12634
12635#ifndef VK_NO_PROTOTYPES
12636#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12637VKAPI_ATTR VkResult VKAPI_CALL vkWaitForPresent2KHR(
12638 VkDevice device,
12639 VkSwapchainKHR swapchain,
12640 const VkPresentWait2InfoKHR* pPresentWait2Info);
12641#endif
12642#endif
12643
12644
12645// VK_KHR_ray_tracing_position_fetch is a preprocessor guard. Do not pass it to API calls.
12646#define VK_KHR_ray_tracing_position_fetch 1
12647#define VK_KHR_RAY_TRACING_POSITION_FETCH_SPEC_VERSION 1
12648#define VK_KHR_RAY_TRACING_POSITION_FETCH_EXTENSION_NAME "VK_KHR_ray_tracing_position_fetch"
12649typedef struct VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR {
12650 VkStructureType sType;
12651 void* pNext;
12652 VkBool32 rayTracingPositionFetch;
12653} VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR;
12654
12655
12656
12657// VK_KHR_pipeline_binary is a preprocessor guard. Do not pass it to API calls.
12658#define VK_KHR_pipeline_binary 1
12659VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineBinaryKHR)
12660#define VK_MAX_PIPELINE_BINARY_KEY_SIZE_KHR 32U
12661#define VK_KHR_PIPELINE_BINARY_SPEC_VERSION 1
12662#define VK_KHR_PIPELINE_BINARY_EXTENSION_NAME "VK_KHR_pipeline_binary"
12663typedef struct VkPhysicalDevicePipelineBinaryFeaturesKHR {
12664 VkStructureType sType;
12665 void* pNext;
12666 VkBool32 pipelineBinaries;
12667} VkPhysicalDevicePipelineBinaryFeaturesKHR;
12668
12669typedef struct VkPhysicalDevicePipelineBinaryPropertiesKHR {
12670 VkStructureType sType;
12671 void* pNext;
12672 VkBool32 pipelineBinaryInternalCache;
12673 VkBool32 pipelineBinaryInternalCacheControl;
12674 VkBool32 pipelineBinaryPrefersInternalCache;
12675 VkBool32 pipelineBinaryPrecompiledInternalCache;
12676 VkBool32 pipelineBinaryCompressedData;
12677} VkPhysicalDevicePipelineBinaryPropertiesKHR;
12678
12679typedef struct VkDevicePipelineBinaryInternalCacheControlKHR {
12680 VkStructureType sType;
12681 const void* pNext;
12682 VkBool32 disableInternalCache;
12683} VkDevicePipelineBinaryInternalCacheControlKHR;
12684
12685typedef struct VkPipelineBinaryKeyKHR {
12686 VkStructureType sType;
12687 void* pNext;
12688 uint32_t keySize;
12689 uint8_t key[VK_MAX_PIPELINE_BINARY_KEY_SIZE_KHR];
12690} VkPipelineBinaryKeyKHR;
12691
12692typedef struct VkPipelineBinaryDataKHR {
12693 size_t dataSize;
12694 void* pData;
12695} VkPipelineBinaryDataKHR;
12696
12697typedef struct VkPipelineBinaryKeysAndDataKHR {
12698 uint32_t binaryCount;
12699 const VkPipelineBinaryKeyKHR* pPipelineBinaryKeys;
12700 const VkPipelineBinaryDataKHR* pPipelineBinaryData;
12701} VkPipelineBinaryKeysAndDataKHR;
12702
12703typedef struct VkPipelineCreateInfoKHR {
12704 VkStructureType sType;
12705 void* pNext;
12706} VkPipelineCreateInfoKHR;
12707
12708typedef struct VkPipelineBinaryCreateInfoKHR {
12709 VkStructureType sType;
12710 const void* pNext;
12711 const VkPipelineBinaryKeysAndDataKHR* pKeysAndDataInfo;
12712 VkPipeline pipeline;
12713 const VkPipelineCreateInfoKHR* pPipelineCreateInfo;
12714} VkPipelineBinaryCreateInfoKHR;
12715
12716typedef struct VkPipelineBinaryInfoKHR {
12717 VkStructureType sType;
12718 const void* pNext;
12719 uint32_t binaryCount;
12720 const VkPipelineBinaryKHR* pPipelineBinaries;
12721} VkPipelineBinaryInfoKHR;
12722
12723typedef struct VkReleaseCapturedPipelineDataInfoKHR {
12724 VkStructureType sType;
12725 void* pNext;
12726 VkPipeline pipeline;
12727} VkReleaseCapturedPipelineDataInfoKHR;
12728
12729typedef struct VkPipelineBinaryDataInfoKHR {
12730 VkStructureType sType;
12731 void* pNext;
12732 VkPipelineBinaryKHR pipelineBinary;
12733} VkPipelineBinaryDataInfoKHR;
12734
12735typedef struct VkPipelineBinaryHandlesInfoKHR {
12736 VkStructureType sType;
12737 const void* pNext;
12738 uint32_t pipelineBinaryCount;
12739 VkPipelineBinaryKHR* pPipelineBinaries;
12740} VkPipelineBinaryHandlesInfoKHR;
12741
12742typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineBinariesKHR)(VkDevice device, const VkPipelineBinaryCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineBinaryHandlesInfoKHR* pBinaries);
12743typedef void (VKAPI_PTR *PFN_vkDestroyPipelineBinaryKHR)(VkDevice device, VkPipelineBinaryKHR pipelineBinary, const VkAllocationCallbacks* pAllocator);
12744typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineKeyKHR)(VkDevice device, const VkPipelineCreateInfoKHR* pPipelineCreateInfo, VkPipelineBinaryKeyKHR* pPipelineKey);
12745typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineBinaryDataKHR)(VkDevice device, const VkPipelineBinaryDataInfoKHR* pInfo, VkPipelineBinaryKeyKHR* pPipelineBinaryKey, size_t* pPipelineBinaryDataSize, void* pPipelineBinaryData);
12746typedef VkResult (VKAPI_PTR *PFN_vkReleaseCapturedPipelineDataKHR)(VkDevice device, const VkReleaseCapturedPipelineDataInfoKHR* pInfo, const VkAllocationCallbacks* pAllocator);
12747
12748#ifndef VK_NO_PROTOTYPES
12749#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12750VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineBinariesKHR(
12751 VkDevice device,
12752 const VkPipelineBinaryCreateInfoKHR* pCreateInfo,
12753 const VkAllocationCallbacks* pAllocator,
12754 VkPipelineBinaryHandlesInfoKHR* pBinaries);
12755#endif
12756
12757#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12758VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineBinaryKHR(
12759 VkDevice device,
12760 VkPipelineBinaryKHR pipelineBinary,
12761 const VkAllocationCallbacks* pAllocator);
12762#endif
12763
12764#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12765VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineKeyKHR(
12766 VkDevice device,
12767 const VkPipelineCreateInfoKHR* pPipelineCreateInfo,
12768 VkPipelineBinaryKeyKHR* pPipelineKey);
12769#endif
12770
12771#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12772VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineBinaryDataKHR(
12773 VkDevice device,
12774 const VkPipelineBinaryDataInfoKHR* pInfo,
12775 VkPipelineBinaryKeyKHR* pPipelineBinaryKey,
12776 size_t* pPipelineBinaryDataSize,
12777 void* pPipelineBinaryData);
12778#endif
12779
12780#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12781VKAPI_ATTR VkResult VKAPI_CALL vkReleaseCapturedPipelineDataKHR(
12782 VkDevice device,
12783 const VkReleaseCapturedPipelineDataInfoKHR* pInfo,
12784 const VkAllocationCallbacks* pAllocator);
12785#endif
12786#endif
12787
12788
12789// VK_KHR_surface_maintenance1 is a preprocessor guard. Do not pass it to API calls.
12790#define VK_KHR_surface_maintenance1 1
12791#define VK_KHR_SURFACE_MAINTENANCE_1_SPEC_VERSION 1
12792#define VK_KHR_SURFACE_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_surface_maintenance1"
12793
12794typedef enum VkPresentScalingFlagBitsKHR {
12795 VK_PRESENT_SCALING_ONE_TO_ONE_BIT_KHR = 0x00000001,
12796 VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_KHR = 0x00000002,
12797 VK_PRESENT_SCALING_STRETCH_BIT_KHR = 0x00000004,
12798 VK_PRESENT_SCALING_ONE_TO_ONE_BIT_EXT = VK_PRESENT_SCALING_ONE_TO_ONE_BIT_KHR,
12799 VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT = VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_KHR,
12800 VK_PRESENT_SCALING_STRETCH_BIT_EXT = VK_PRESENT_SCALING_STRETCH_BIT_KHR,
12801 VK_PRESENT_SCALING_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
12802} VkPresentScalingFlagBitsKHR;
12803typedef VkFlags VkPresentScalingFlagsKHR;
12804
12805typedef enum VkPresentGravityFlagBitsKHR {
12806 VK_PRESENT_GRAVITY_MIN_BIT_KHR = 0x00000001,
12807 VK_PRESENT_GRAVITY_MAX_BIT_KHR = 0x00000002,
12808 VK_PRESENT_GRAVITY_CENTERED_BIT_KHR = 0x00000004,
12809 VK_PRESENT_GRAVITY_MIN_BIT_EXT = VK_PRESENT_GRAVITY_MIN_BIT_KHR,
12810 VK_PRESENT_GRAVITY_MAX_BIT_EXT = VK_PRESENT_GRAVITY_MAX_BIT_KHR,
12811 VK_PRESENT_GRAVITY_CENTERED_BIT_EXT = VK_PRESENT_GRAVITY_CENTERED_BIT_KHR,
12812 VK_PRESENT_GRAVITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
12813} VkPresentGravityFlagBitsKHR;
12814typedef VkFlags VkPresentGravityFlagsKHR;
12815typedef struct VkSurfacePresentModeKHR {
12816 VkStructureType sType;
12817 void* pNext;
12818 VkPresentModeKHR presentMode;
12819} VkSurfacePresentModeKHR;
12820
12821typedef struct VkSurfacePresentScalingCapabilitiesKHR {
12822 VkStructureType sType;
12823 void* pNext;
12824 VkPresentScalingFlagsKHR supportedPresentScaling;
12825 VkPresentGravityFlagsKHR supportedPresentGravityX;
12826 VkPresentGravityFlagsKHR supportedPresentGravityY;
12827 VkExtent2D minScaledImageExtent;
12828 VkExtent2D maxScaledImageExtent;
12829} VkSurfacePresentScalingCapabilitiesKHR;
12830
12831typedef struct VkSurfacePresentModeCompatibilityKHR {
12832 VkStructureType sType;
12833 void* pNext;
12834 uint32_t presentModeCount;
12835 VkPresentModeKHR* pPresentModes;
12836} VkSurfacePresentModeCompatibilityKHR;
12837
12838
12839
12840// VK_KHR_swapchain_maintenance1 is a preprocessor guard. Do not pass it to API calls.
12841#define VK_KHR_swapchain_maintenance1 1
12842#define VK_KHR_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION 1
12843#define VK_KHR_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_swapchain_maintenance1"
12844typedef struct VkPhysicalDeviceSwapchainMaintenance1FeaturesKHR {
12845 VkStructureType sType;
12846 void* pNext;
12847 VkBool32 swapchainMaintenance1;
12848} VkPhysicalDeviceSwapchainMaintenance1FeaturesKHR;
12849
12850typedef struct VkSwapchainPresentFenceInfoKHR {
12851 VkStructureType sType;
12852 const void* pNext;
12853 uint32_t swapchainCount;
12854 const VkFence* pFences;
12855} VkSwapchainPresentFenceInfoKHR;
12856
12857typedef struct VkSwapchainPresentModesCreateInfoKHR {
12858 VkStructureType sType;
12859 const void* pNext;
12860 uint32_t presentModeCount;
12861 const VkPresentModeKHR* pPresentModes;
12862} VkSwapchainPresentModesCreateInfoKHR;
12863
12864typedef struct VkSwapchainPresentModeInfoKHR {
12865 VkStructureType sType;
12866 const void* pNext;
12867 uint32_t swapchainCount;
12868 const VkPresentModeKHR* pPresentModes;
12869} VkSwapchainPresentModeInfoKHR;
12870
12871typedef struct VkSwapchainPresentScalingCreateInfoKHR {
12872 VkStructureType sType;
12873 const void* pNext;
12874 VkPresentScalingFlagsKHR scalingBehavior;
12875 VkPresentGravityFlagsKHR presentGravityX;
12876 VkPresentGravityFlagsKHR presentGravityY;
12877} VkSwapchainPresentScalingCreateInfoKHR;
12878
12879typedef struct VkReleaseSwapchainImagesInfoKHR {
12880 VkStructureType sType;
12881 const void* pNext;
12882 VkSwapchainKHR swapchain;
12883 uint32_t imageIndexCount;
12884 const uint32_t* pImageIndices;
12885} VkReleaseSwapchainImagesInfoKHR;
12886
12887typedef VkResult (VKAPI_PTR *PFN_vkReleaseSwapchainImagesKHR)(VkDevice device, const VkReleaseSwapchainImagesInfoKHR* pReleaseInfo);
12888
12889#ifndef VK_NO_PROTOTYPES
12890#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12891VKAPI_ATTR VkResult VKAPI_CALL vkReleaseSwapchainImagesKHR(
12892 VkDevice device,
12893 const VkReleaseSwapchainImagesInfoKHR* pReleaseInfo);
12894#endif
12895#endif
12896
12897
12898// VK_KHR_cooperative_matrix is a preprocessor guard. Do not pass it to API calls.
12899#define VK_KHR_cooperative_matrix 1
12900#define VK_KHR_COOPERATIVE_MATRIX_SPEC_VERSION 2
12901#define VK_KHR_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_KHR_cooperative_matrix"
12902
12903typedef enum VkComponentTypeKHR {
12904 VK_COMPONENT_TYPE_FLOAT16_KHR = 0,
12905 VK_COMPONENT_TYPE_FLOAT32_KHR = 1,
12906 VK_COMPONENT_TYPE_FLOAT64_KHR = 2,
12907 VK_COMPONENT_TYPE_SINT8_KHR = 3,
12908 VK_COMPONENT_TYPE_SINT16_KHR = 4,
12909 VK_COMPONENT_TYPE_SINT32_KHR = 5,
12910 VK_COMPONENT_TYPE_SINT64_KHR = 6,
12911 VK_COMPONENT_TYPE_UINT8_KHR = 7,
12912 VK_COMPONENT_TYPE_UINT16_KHR = 8,
12913 VK_COMPONENT_TYPE_UINT32_KHR = 9,
12914 VK_COMPONENT_TYPE_UINT64_KHR = 10,
12915 VK_COMPONENT_TYPE_BFLOAT16_KHR = 1000141000,
12916 VK_COMPONENT_TYPE_SINT8_PACKED_NV = 1000491000,
12917 VK_COMPONENT_TYPE_UINT8_PACKED_NV = 1000491001,
12918 VK_COMPONENT_TYPE_FLOAT8_E4M3_EXT = 1000491002,
12919 VK_COMPONENT_TYPE_FLOAT8_E5M2_EXT = 1000491003,
12920 VK_COMPONENT_TYPE_FLOAT16_NV = VK_COMPONENT_TYPE_FLOAT16_KHR,
12921 VK_COMPONENT_TYPE_FLOAT32_NV = VK_COMPONENT_TYPE_FLOAT32_KHR,
12922 VK_COMPONENT_TYPE_FLOAT64_NV = VK_COMPONENT_TYPE_FLOAT64_KHR,
12923 VK_COMPONENT_TYPE_SINT8_NV = VK_COMPONENT_TYPE_SINT8_KHR,
12924 VK_COMPONENT_TYPE_SINT16_NV = VK_COMPONENT_TYPE_SINT16_KHR,
12925 VK_COMPONENT_TYPE_SINT32_NV = VK_COMPONENT_TYPE_SINT32_KHR,
12926 VK_COMPONENT_TYPE_SINT64_NV = VK_COMPONENT_TYPE_SINT64_KHR,
12927 VK_COMPONENT_TYPE_UINT8_NV = VK_COMPONENT_TYPE_UINT8_KHR,
12928 VK_COMPONENT_TYPE_UINT16_NV = VK_COMPONENT_TYPE_UINT16_KHR,
12929 VK_COMPONENT_TYPE_UINT32_NV = VK_COMPONENT_TYPE_UINT32_KHR,
12930 VK_COMPONENT_TYPE_UINT64_NV = VK_COMPONENT_TYPE_UINT64_KHR,
12931 VK_COMPONENT_TYPE_FLOAT_E4M3_NV = VK_COMPONENT_TYPE_FLOAT8_E4M3_EXT,
12932 VK_COMPONENT_TYPE_FLOAT_E5M2_NV = VK_COMPONENT_TYPE_FLOAT8_E5M2_EXT,
12933 VK_COMPONENT_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
12934} VkComponentTypeKHR;
12935
12936typedef enum VkScopeKHR {
12937 VK_SCOPE_DEVICE_KHR = 1,
12938 VK_SCOPE_WORKGROUP_KHR = 2,
12939 VK_SCOPE_SUBGROUP_KHR = 3,
12940 VK_SCOPE_QUEUE_FAMILY_KHR = 5,
12941 VK_SCOPE_DEVICE_NV = VK_SCOPE_DEVICE_KHR,
12942 VK_SCOPE_WORKGROUP_NV = VK_SCOPE_WORKGROUP_KHR,
12943 VK_SCOPE_SUBGROUP_NV = VK_SCOPE_SUBGROUP_KHR,
12944 VK_SCOPE_QUEUE_FAMILY_NV = VK_SCOPE_QUEUE_FAMILY_KHR,
12945 VK_SCOPE_MAX_ENUM_KHR = 0x7FFFFFFF
12946} VkScopeKHR;
12947typedef struct VkCooperativeMatrixPropertiesKHR {
12948 VkStructureType sType;
12949 void* pNext;
12950 uint32_t MSize;
12951 uint32_t NSize;
12952 uint32_t KSize;
12953 VkComponentTypeKHR AType;
12954 VkComponentTypeKHR BType;
12955 VkComponentTypeKHR CType;
12956 VkComponentTypeKHR ResultType;
12957 VkBool32 saturatingAccumulation;
12958 VkScopeKHR scope;
12959} VkCooperativeMatrixPropertiesKHR;
12960
12961typedef struct VkPhysicalDeviceCooperativeMatrixFeaturesKHR {
12962 VkStructureType sType;
12963 void* pNext;
12964 VkBool32 cooperativeMatrix;
12965 VkBool32 cooperativeMatrixRobustBufferAccess;
12966} VkPhysicalDeviceCooperativeMatrixFeaturesKHR;
12967
12968typedef struct VkPhysicalDeviceCooperativeMatrixPropertiesKHR {
12969 VkStructureType sType;
12970 void* pNext;
12971 VkShaderStageFlags cooperativeMatrixSupportedStages;
12972} VkPhysicalDeviceCooperativeMatrixPropertiesKHR;
12973
12974typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesKHR* pProperties);
12975
12976#ifndef VK_NO_PROTOTYPES
12977#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12978VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR(
12979 VkPhysicalDevice physicalDevice,
12980 uint32_t* pPropertyCount,
12981 VkCooperativeMatrixPropertiesKHR* pProperties);
12982#endif
12983#endif
12984
12985
12986// VK_KHR_compute_shader_derivatives is a preprocessor guard. Do not pass it to API calls.
12987#define VK_KHR_compute_shader_derivatives 1
12988#define VK_KHR_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION 1
12989#define VK_KHR_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_KHR_compute_shader_derivatives"
12990typedef struct VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR {
12991 VkStructureType sType;
12992 void* pNext;
12993 VkBool32 computeDerivativeGroupQuads;
12994 VkBool32 computeDerivativeGroupLinear;
12995} VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR;
12996
12997typedef struct VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR {
12998 VkStructureType sType;
12999 void* pNext;
13000 VkBool32 meshAndTaskShaderDerivatives;
13001} VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR;
13002
13003
13004
13005// VK_KHR_video_decode_av1 is a preprocessor guard. Do not pass it to API calls.
13006#define VK_KHR_video_decode_av1 1
13007#include "vk_video/vulkan_video_codec_av1std.h"
13008#include "vk_video/vulkan_video_codec_av1std_decode.h"
13009#define VK_MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR 7U
13010#define VK_KHR_VIDEO_DECODE_AV1_SPEC_VERSION 1
13011#define VK_KHR_VIDEO_DECODE_AV1_EXTENSION_NAME "VK_KHR_video_decode_av1"
13012typedef struct VkVideoDecodeAV1ProfileInfoKHR {
13013 VkStructureType sType;
13014 const void* pNext;
13015 StdVideoAV1Profile stdProfile;
13016 VkBool32 filmGrainSupport;
13017} VkVideoDecodeAV1ProfileInfoKHR;
13018
13019typedef struct VkVideoDecodeAV1CapabilitiesKHR {
13020 VkStructureType sType;
13021 void* pNext;
13022 StdVideoAV1Level maxLevel;
13023} VkVideoDecodeAV1CapabilitiesKHR;
13024
13025typedef struct VkVideoDecodeAV1SessionParametersCreateInfoKHR {
13026 VkStructureType sType;
13027 const void* pNext;
13028 const StdVideoAV1SequenceHeader* pStdSequenceHeader;
13029} VkVideoDecodeAV1SessionParametersCreateInfoKHR;
13030
13031typedef struct VkVideoDecodeAV1PictureInfoKHR {
13032 VkStructureType sType;
13033 const void* pNext;
13034 const StdVideoDecodeAV1PictureInfo* pStdPictureInfo;
13035 int32_t referenceNameSlotIndices[VK_MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR];
13036 uint32_t frameHeaderOffset;
13037 uint32_t tileCount;
13038 const uint32_t* pTileOffsets;
13039 const uint32_t* pTileSizes;
13040} VkVideoDecodeAV1PictureInfoKHR;
13041
13042typedef struct VkVideoDecodeAV1DpbSlotInfoKHR {
13043 VkStructureType sType;
13044 const void* pNext;
13045 const StdVideoDecodeAV1ReferenceInfo* pStdReferenceInfo;
13046} VkVideoDecodeAV1DpbSlotInfoKHR;
13047
13048
13049
13050// VK_KHR_video_encode_av1 is a preprocessor guard. Do not pass it to API calls.
13051#define VK_KHR_video_encode_av1 1
13052#include "vk_video/vulkan_video_codec_av1std_encode.h"
13053#define VK_KHR_VIDEO_ENCODE_AV1_SPEC_VERSION 1
13054#define VK_KHR_VIDEO_ENCODE_AV1_EXTENSION_NAME "VK_KHR_video_encode_av1"
13055
13056typedef enum VkVideoEncodeAV1PredictionModeKHR {
13057 VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_INTRA_ONLY_KHR = 0,
13058 VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_SINGLE_REFERENCE_KHR = 1,
13059 VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_UNIDIRECTIONAL_COMPOUND_KHR = 2,
13060 VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_BIDIRECTIONAL_COMPOUND_KHR = 3,
13061 VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
13062} VkVideoEncodeAV1PredictionModeKHR;
13063
13064typedef enum VkVideoEncodeAV1RateControlGroupKHR {
13065 VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_INTRA_KHR = 0,
13066 VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_PREDICTIVE_KHR = 1,
13067 VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_BIPREDICTIVE_KHR = 2,
13068 VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_MAX_ENUM_KHR = 0x7FFFFFFF
13069} VkVideoEncodeAV1RateControlGroupKHR;
13070
13071typedef enum VkVideoEncodeAV1CapabilityFlagBitsKHR {
13072 VK_VIDEO_ENCODE_AV1_CAPABILITY_PER_RATE_CONTROL_GROUP_MIN_MAX_Q_INDEX_BIT_KHR = 0x00000001,
13073 VK_VIDEO_ENCODE_AV1_CAPABILITY_GENERATE_OBU_EXTENSION_HEADER_BIT_KHR = 0x00000002,
13074 VK_VIDEO_ENCODE_AV1_CAPABILITY_PRIMARY_REFERENCE_CDF_ONLY_BIT_KHR = 0x00000004,
13075 VK_VIDEO_ENCODE_AV1_CAPABILITY_FRAME_SIZE_OVERRIDE_BIT_KHR = 0x00000008,
13076 VK_VIDEO_ENCODE_AV1_CAPABILITY_MOTION_VECTOR_SCALING_BIT_KHR = 0x00000010,
13077 VK_VIDEO_ENCODE_AV1_CAPABILITY_COMPOUND_PREDICTION_INTRA_REFRESH_BIT_KHR = 0x00000020,
13078 VK_VIDEO_ENCODE_AV1_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
13079} VkVideoEncodeAV1CapabilityFlagBitsKHR;
13080typedef VkFlags VkVideoEncodeAV1CapabilityFlagsKHR;
13081
13082typedef enum VkVideoEncodeAV1StdFlagBitsKHR {
13083 VK_VIDEO_ENCODE_AV1_STD_UNIFORM_TILE_SPACING_FLAG_SET_BIT_KHR = 0x00000001,
13084 VK_VIDEO_ENCODE_AV1_STD_SKIP_MODE_PRESENT_UNSET_BIT_KHR = 0x00000002,
13085 VK_VIDEO_ENCODE_AV1_STD_PRIMARY_REF_FRAME_BIT_KHR = 0x00000004,
13086 VK_VIDEO_ENCODE_AV1_STD_DELTA_Q_BIT_KHR = 0x00000008,
13087 VK_VIDEO_ENCODE_AV1_STD_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
13088} VkVideoEncodeAV1StdFlagBitsKHR;
13089typedef VkFlags VkVideoEncodeAV1StdFlagsKHR;
13090
13091typedef enum VkVideoEncodeAV1SuperblockSizeFlagBitsKHR {
13092 VK_VIDEO_ENCODE_AV1_SUPERBLOCK_SIZE_64_BIT_KHR = 0x00000001,
13093 VK_VIDEO_ENCODE_AV1_SUPERBLOCK_SIZE_128_BIT_KHR = 0x00000002,
13094 VK_VIDEO_ENCODE_AV1_SUPERBLOCK_SIZE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
13095} VkVideoEncodeAV1SuperblockSizeFlagBitsKHR;
13096typedef VkFlags VkVideoEncodeAV1SuperblockSizeFlagsKHR;
13097
13098typedef enum VkVideoEncodeAV1RateControlFlagBitsKHR {
13099 VK_VIDEO_ENCODE_AV1_RATE_CONTROL_REGULAR_GOP_BIT_KHR = 0x00000001,
13100 VK_VIDEO_ENCODE_AV1_RATE_CONTROL_TEMPORAL_LAYER_PATTERN_DYADIC_BIT_KHR = 0x00000002,
13101 VK_VIDEO_ENCODE_AV1_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR = 0x00000004,
13102 VK_VIDEO_ENCODE_AV1_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR = 0x00000008,
13103 VK_VIDEO_ENCODE_AV1_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
13104} VkVideoEncodeAV1RateControlFlagBitsKHR;
13105typedef VkFlags VkVideoEncodeAV1RateControlFlagsKHR;
13106typedef struct VkPhysicalDeviceVideoEncodeAV1FeaturesKHR {
13107 VkStructureType sType;
13108 void* pNext;
13109 VkBool32 videoEncodeAV1;
13110} VkPhysicalDeviceVideoEncodeAV1FeaturesKHR;
13111
13112typedef struct VkVideoEncodeAV1CapabilitiesKHR {
13113 VkStructureType sType;
13114 void* pNext;
13115 VkVideoEncodeAV1CapabilityFlagsKHR flags;
13116 StdVideoAV1Level maxLevel;
13117 VkExtent2D codedPictureAlignment;
13118 VkExtent2D maxTiles;
13119 VkExtent2D minTileSize;
13120 VkExtent2D maxTileSize;
13121 VkVideoEncodeAV1SuperblockSizeFlagsKHR superblockSizes;
13122 uint32_t maxSingleReferenceCount;
13123 uint32_t singleReferenceNameMask;
13124 uint32_t maxUnidirectionalCompoundReferenceCount;
13125 uint32_t maxUnidirectionalCompoundGroup1ReferenceCount;
13126 uint32_t unidirectionalCompoundReferenceNameMask;
13127 uint32_t maxBidirectionalCompoundReferenceCount;
13128 uint32_t maxBidirectionalCompoundGroup1ReferenceCount;
13129 uint32_t maxBidirectionalCompoundGroup2ReferenceCount;
13130 uint32_t bidirectionalCompoundReferenceNameMask;
13131 uint32_t maxTemporalLayerCount;
13132 uint32_t maxSpatialLayerCount;
13133 uint32_t maxOperatingPoints;
13134 uint32_t minQIndex;
13135 uint32_t maxQIndex;
13136 VkBool32 prefersGopRemainingFrames;
13137 VkBool32 requiresGopRemainingFrames;
13138 VkVideoEncodeAV1StdFlagsKHR stdSyntaxFlags;
13139} VkVideoEncodeAV1CapabilitiesKHR;
13140
13141typedef struct VkVideoEncodeAV1QIndexKHR {
13142 uint32_t intraQIndex;
13143 uint32_t predictiveQIndex;
13144 uint32_t bipredictiveQIndex;
13145} VkVideoEncodeAV1QIndexKHR;
13146
13147typedef struct VkVideoEncodeAV1QualityLevelPropertiesKHR {
13148 VkStructureType sType;
13149 void* pNext;
13150 VkVideoEncodeAV1RateControlFlagsKHR preferredRateControlFlags;
13151 uint32_t preferredGopFrameCount;
13152 uint32_t preferredKeyFramePeriod;
13153 uint32_t preferredConsecutiveBipredictiveFrameCount;
13154 uint32_t preferredTemporalLayerCount;
13155 VkVideoEncodeAV1QIndexKHR preferredConstantQIndex;
13156 uint32_t preferredMaxSingleReferenceCount;
13157 uint32_t preferredSingleReferenceNameMask;
13158 uint32_t preferredMaxUnidirectionalCompoundReferenceCount;
13159 uint32_t preferredMaxUnidirectionalCompoundGroup1ReferenceCount;
13160 uint32_t preferredUnidirectionalCompoundReferenceNameMask;
13161 uint32_t preferredMaxBidirectionalCompoundReferenceCount;
13162 uint32_t preferredMaxBidirectionalCompoundGroup1ReferenceCount;
13163 uint32_t preferredMaxBidirectionalCompoundGroup2ReferenceCount;
13164 uint32_t preferredBidirectionalCompoundReferenceNameMask;
13165} VkVideoEncodeAV1QualityLevelPropertiesKHR;
13166
13167typedef struct VkVideoEncodeAV1SessionCreateInfoKHR {
13168 VkStructureType sType;
13169 const void* pNext;
13170 VkBool32 useMaxLevel;
13171 StdVideoAV1Level maxLevel;
13172} VkVideoEncodeAV1SessionCreateInfoKHR;
13173
13174typedef struct VkVideoEncodeAV1SessionParametersCreateInfoKHR {
13175 VkStructureType sType;
13176 const void* pNext;
13177 const StdVideoAV1SequenceHeader* pStdSequenceHeader;
13178 const StdVideoEncodeAV1DecoderModelInfo* pStdDecoderModelInfo;
13179 uint32_t stdOperatingPointCount;
13180 const StdVideoEncodeAV1OperatingPointInfo* pStdOperatingPoints;
13181} VkVideoEncodeAV1SessionParametersCreateInfoKHR;
13182
13183typedef struct VkVideoEncodeAV1PictureInfoKHR {
13184 VkStructureType sType;
13185 const void* pNext;
13186 VkVideoEncodeAV1PredictionModeKHR predictionMode;
13187 VkVideoEncodeAV1RateControlGroupKHR rateControlGroup;
13188 uint32_t constantQIndex;
13189 const StdVideoEncodeAV1PictureInfo* pStdPictureInfo;
13190 int32_t referenceNameSlotIndices[VK_MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR];
13191 VkBool32 primaryReferenceCdfOnly;
13192 VkBool32 generateObuExtensionHeader;
13193} VkVideoEncodeAV1PictureInfoKHR;
13194
13195typedef struct VkVideoEncodeAV1DpbSlotInfoKHR {
13196 VkStructureType sType;
13197 const void* pNext;
13198 const StdVideoEncodeAV1ReferenceInfo* pStdReferenceInfo;
13199} VkVideoEncodeAV1DpbSlotInfoKHR;
13200
13201typedef struct VkVideoEncodeAV1ProfileInfoKHR {
13202 VkStructureType sType;
13203 const void* pNext;
13204 StdVideoAV1Profile stdProfile;
13205} VkVideoEncodeAV1ProfileInfoKHR;
13206
13207typedef struct VkVideoEncodeAV1FrameSizeKHR {
13208 uint32_t intraFrameSize;
13209 uint32_t predictiveFrameSize;
13210 uint32_t bipredictiveFrameSize;
13211} VkVideoEncodeAV1FrameSizeKHR;
13212
13213typedef struct VkVideoEncodeAV1GopRemainingFrameInfoKHR {
13214 VkStructureType sType;
13215 const void* pNext;
13216 VkBool32 useGopRemainingFrames;
13217 uint32_t gopRemainingIntra;
13218 uint32_t gopRemainingPredictive;
13219 uint32_t gopRemainingBipredictive;
13220} VkVideoEncodeAV1GopRemainingFrameInfoKHR;
13221
13222typedef struct VkVideoEncodeAV1RateControlInfoKHR {
13223 VkStructureType sType;
13224 const void* pNext;
13225 VkVideoEncodeAV1RateControlFlagsKHR flags;
13226 uint32_t gopFrameCount;
13227 uint32_t keyFramePeriod;
13228 uint32_t consecutiveBipredictiveFrameCount;
13229 uint32_t temporalLayerCount;
13230} VkVideoEncodeAV1RateControlInfoKHR;
13231
13232typedef struct VkVideoEncodeAV1RateControlLayerInfoKHR {
13233 VkStructureType sType;
13234 const void* pNext;
13235 VkBool32 useMinQIndex;
13236 VkVideoEncodeAV1QIndexKHR minQIndex;
13237 VkBool32 useMaxQIndex;
13238 VkVideoEncodeAV1QIndexKHR maxQIndex;
13239 VkBool32 useMaxFrameSize;
13240 VkVideoEncodeAV1FrameSizeKHR maxFrameSize;
13241} VkVideoEncodeAV1RateControlLayerInfoKHR;
13242
13243
13244
13245// VK_KHR_video_decode_vp9 is a preprocessor guard. Do not pass it to API calls.
13246#define VK_KHR_video_decode_vp9 1
13247#include "vk_video/vulkan_video_codec_vp9std.h"
13248#include "vk_video/vulkan_video_codec_vp9std_decode.h"
13249#define VK_MAX_VIDEO_VP9_REFERENCES_PER_FRAME_KHR 3U
13250#define VK_KHR_VIDEO_DECODE_VP9_SPEC_VERSION 1
13251#define VK_KHR_VIDEO_DECODE_VP9_EXTENSION_NAME "VK_KHR_video_decode_vp9"
13252typedef struct VkPhysicalDeviceVideoDecodeVP9FeaturesKHR {
13253 VkStructureType sType;
13254 void* pNext;
13255 VkBool32 videoDecodeVP9;
13256} VkPhysicalDeviceVideoDecodeVP9FeaturesKHR;
13257
13258typedef struct VkVideoDecodeVP9ProfileInfoKHR {
13259 VkStructureType sType;
13260 const void* pNext;
13261 StdVideoVP9Profile stdProfile;
13262} VkVideoDecodeVP9ProfileInfoKHR;
13263
13264typedef struct VkVideoDecodeVP9CapabilitiesKHR {
13265 VkStructureType sType;
13266 void* pNext;
13267 StdVideoVP9Level maxLevel;
13268} VkVideoDecodeVP9CapabilitiesKHR;
13269
13270typedef struct VkVideoDecodeVP9PictureInfoKHR {
13271 VkStructureType sType;
13272 const void* pNext;
13273 const StdVideoDecodeVP9PictureInfo* pStdPictureInfo;
13274 int32_t referenceNameSlotIndices[VK_MAX_VIDEO_VP9_REFERENCES_PER_FRAME_KHR];
13275 uint32_t uncompressedHeaderOffset;
13276 uint32_t compressedHeaderOffset;
13277 uint32_t tilesOffset;
13278} VkVideoDecodeVP9PictureInfoKHR;
13279
13280
13281
13282// VK_KHR_video_maintenance1 is a preprocessor guard. Do not pass it to API calls.
13283#define VK_KHR_video_maintenance1 1
13284#define VK_KHR_VIDEO_MAINTENANCE_1_SPEC_VERSION 1
13285#define VK_KHR_VIDEO_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_video_maintenance1"
13286typedef struct VkPhysicalDeviceVideoMaintenance1FeaturesKHR {
13287 VkStructureType sType;
13288 void* pNext;
13289 VkBool32 videoMaintenance1;
13290} VkPhysicalDeviceVideoMaintenance1FeaturesKHR;
13291
13292typedef struct VkVideoInlineQueryInfoKHR {
13293 VkStructureType sType;
13294 const void* pNext;
13295 VkQueryPool queryPool;
13296 uint32_t firstQuery;
13297 uint32_t queryCount;
13298} VkVideoInlineQueryInfoKHR;
13299
13300
13301
13302// VK_KHR_vertex_attribute_divisor is a preprocessor guard. Do not pass it to API calls.
13303#define VK_KHR_vertex_attribute_divisor 1
13304#define VK_KHR_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 1
13305#define VK_KHR_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_KHR_vertex_attribute_divisor"
13306typedef VkPhysicalDeviceVertexAttributeDivisorProperties VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR;
13307
13308typedef VkVertexInputBindingDivisorDescription VkVertexInputBindingDivisorDescriptionKHR;
13309
13310typedef VkPipelineVertexInputDivisorStateCreateInfo VkPipelineVertexInputDivisorStateCreateInfoKHR;
13311
13312typedef VkPhysicalDeviceVertexAttributeDivisorFeatures VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR;
13313
13314
13315
13316// VK_KHR_load_store_op_none is a preprocessor guard. Do not pass it to API calls.
13317#define VK_KHR_load_store_op_none 1
13318#define VK_KHR_LOAD_STORE_OP_NONE_SPEC_VERSION 1
13319#define VK_KHR_LOAD_STORE_OP_NONE_EXTENSION_NAME "VK_KHR_load_store_op_none"
13320
13321
13322// VK_KHR_unified_image_layouts is a preprocessor guard. Do not pass it to API calls.
13323#define VK_KHR_unified_image_layouts 1
13324#define VK_KHR_UNIFIED_IMAGE_LAYOUTS_SPEC_VERSION 1
13325#define VK_KHR_UNIFIED_IMAGE_LAYOUTS_EXTENSION_NAME "VK_KHR_unified_image_layouts"
13326typedef struct VkPhysicalDeviceUnifiedImageLayoutsFeaturesKHR {
13327 VkStructureType sType;
13328 void* pNext;
13329 VkBool32 unifiedImageLayouts;
13330 VkBool32 unifiedImageLayoutsVideo;
13331} VkPhysicalDeviceUnifiedImageLayoutsFeaturesKHR;
13332
13333typedef struct VkAttachmentFeedbackLoopInfoEXT {
13334 VkStructureType sType;
13335 const void* pNext;
13336 VkBool32 feedbackLoopEnable;
13337} VkAttachmentFeedbackLoopInfoEXT;
13338
13339
13340
13341// VK_KHR_shader_float_controls2 is a preprocessor guard. Do not pass it to API calls.
13342#define VK_KHR_shader_float_controls2 1
13343#define VK_KHR_SHADER_FLOAT_CONTROLS_2_SPEC_VERSION 1
13344#define VK_KHR_SHADER_FLOAT_CONTROLS_2_EXTENSION_NAME "VK_KHR_shader_float_controls2"
13345typedef VkPhysicalDeviceShaderFloatControls2Features VkPhysicalDeviceShaderFloatControls2FeaturesKHR;
13346
13347
13348
13349// VK_KHR_index_type_uint8 is a preprocessor guard. Do not pass it to API calls.
13350#define VK_KHR_index_type_uint8 1
13351#define VK_KHR_INDEX_TYPE_UINT8_SPEC_VERSION 1
13352#define VK_KHR_INDEX_TYPE_UINT8_EXTENSION_NAME "VK_KHR_index_type_uint8"
13353typedef VkPhysicalDeviceIndexTypeUint8Features VkPhysicalDeviceIndexTypeUint8FeaturesKHR;
13354
13355
13356
13357// VK_KHR_line_rasterization is a preprocessor guard. Do not pass it to API calls.
13358#define VK_KHR_line_rasterization 1
13359#define VK_KHR_LINE_RASTERIZATION_SPEC_VERSION 1
13360#define VK_KHR_LINE_RASTERIZATION_EXTENSION_NAME "VK_KHR_line_rasterization"
13361typedef VkLineRasterizationMode VkLineRasterizationModeKHR;
13362
13363typedef VkPhysicalDeviceLineRasterizationFeatures VkPhysicalDeviceLineRasterizationFeaturesKHR;
13364
13365typedef VkPhysicalDeviceLineRasterizationProperties VkPhysicalDeviceLineRasterizationPropertiesKHR;
13366
13367typedef VkPipelineRasterizationLineStateCreateInfo VkPipelineRasterizationLineStateCreateInfoKHR;
13368
13369typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleKHR)(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern);
13370
13371#ifndef VK_NO_PROTOTYPES
13372#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13373VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleKHR(
13374 VkCommandBuffer commandBuffer,
13375 uint32_t lineStippleFactor,
13376 uint16_t lineStipplePattern);
13377#endif
13378#endif
13379
13380
13381// VK_KHR_calibrated_timestamps is a preprocessor guard. Do not pass it to API calls.
13382#define VK_KHR_calibrated_timestamps 1
13383#define VK_KHR_CALIBRATED_TIMESTAMPS_SPEC_VERSION 1
13384#define VK_KHR_CALIBRATED_TIMESTAMPS_EXTENSION_NAME "VK_KHR_calibrated_timestamps"
13385
13386typedef enum VkTimeDomainKHR {
13387 VK_TIME_DOMAIN_DEVICE_KHR = 0,
13388 VK_TIME_DOMAIN_CLOCK_MONOTONIC_KHR = 1,
13389 VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR = 2,
13390 VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR = 3,
13391 VK_TIME_DOMAIN_PRESENT_STAGE_LOCAL_EXT = 1000208000,
13392 VK_TIME_DOMAIN_SWAPCHAIN_LOCAL_EXT = 1000208001,
13393 VK_TIME_DOMAIN_DEVICE_EXT = VK_TIME_DOMAIN_DEVICE_KHR,
13394 VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = VK_TIME_DOMAIN_CLOCK_MONOTONIC_KHR,
13395 VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR,
13396 VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR,
13397 VK_TIME_DOMAIN_MAX_ENUM_KHR = 0x7FFFFFFF
13398} VkTimeDomainKHR;
13399typedef struct VkCalibratedTimestampInfoKHR {
13400 VkStructureType sType;
13401 const void* pNext;
13402 VkTimeDomainKHR timeDomain;
13403} VkCalibratedTimestampInfoKHR;
13404
13405typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR)(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainKHR* pTimeDomains);
13406typedef VkResult (VKAPI_PTR *PFN_vkGetCalibratedTimestampsKHR)(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation);
13407
13408#ifndef VK_NO_PROTOTYPES
13409#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13410VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCalibrateableTimeDomainsKHR(
13411 VkPhysicalDevice physicalDevice,
13412 uint32_t* pTimeDomainCount,
13413 VkTimeDomainKHR* pTimeDomains);
13414#endif
13415
13416#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13417VKAPI_ATTR VkResult VKAPI_CALL vkGetCalibratedTimestampsKHR(
13418 VkDevice device,
13419 uint32_t timestampCount,
13420 const VkCalibratedTimestampInfoKHR* pTimestampInfos,
13421 uint64_t* pTimestamps,
13422 uint64_t* pMaxDeviation);
13423#endif
13424#endif
13425
13426
13427// VK_KHR_shader_expect_assume is a preprocessor guard. Do not pass it to API calls.
13428#define VK_KHR_shader_expect_assume 1
13429#define VK_KHR_SHADER_EXPECT_ASSUME_SPEC_VERSION 1
13430#define VK_KHR_SHADER_EXPECT_ASSUME_EXTENSION_NAME "VK_KHR_shader_expect_assume"
13431typedef VkPhysicalDeviceShaderExpectAssumeFeatures VkPhysicalDeviceShaderExpectAssumeFeaturesKHR;
13432
13433
13434
13435// VK_KHR_maintenance6 is a preprocessor guard. Do not pass it to API calls.
13436#define VK_KHR_maintenance6 1
13437#define VK_KHR_MAINTENANCE_6_SPEC_VERSION 1
13438#define VK_KHR_MAINTENANCE_6_EXTENSION_NAME "VK_KHR_maintenance6"
13439typedef VkPhysicalDeviceMaintenance6Features VkPhysicalDeviceMaintenance6FeaturesKHR;
13440
13441typedef VkPhysicalDeviceMaintenance6Properties VkPhysicalDeviceMaintenance6PropertiesKHR;
13442
13443typedef VkBindMemoryStatus VkBindMemoryStatusKHR;
13444
13445typedef VkBindDescriptorSetsInfo VkBindDescriptorSetsInfoKHR;
13446
13447typedef VkPushConstantsInfo VkPushConstantsInfoKHR;
13448
13449typedef VkPushDescriptorSetInfo VkPushDescriptorSetInfoKHR;
13450
13451typedef VkPushDescriptorSetWithTemplateInfo VkPushDescriptorSetWithTemplateInfoKHR;
13452
13453typedef struct VkSetDescriptorBufferOffsetsInfoEXT {
13454 VkStructureType sType;
13455 const void* pNext;
13456 VkShaderStageFlags stageFlags;
13457 VkPipelineLayout layout;
13458 uint32_t firstSet;
13459 uint32_t setCount;
13460 const uint32_t* pBufferIndices;
13461 const VkDeviceSize* pOffsets;
13462} VkSetDescriptorBufferOffsetsInfoEXT;
13463
13464typedef struct VkBindDescriptorBufferEmbeddedSamplersInfoEXT {
13465 VkStructureType sType;
13466 const void* pNext;
13467 VkShaderStageFlags stageFlags;
13468 VkPipelineLayout layout;
13469 uint32_t set;
13470} VkBindDescriptorBufferEmbeddedSamplersInfoEXT;
13471
13472typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorSets2KHR)(VkCommandBuffer commandBuffer, const VkBindDescriptorSetsInfo* pBindDescriptorSetsInfo);
13473typedef void (VKAPI_PTR *PFN_vkCmdPushConstants2KHR)(VkCommandBuffer commandBuffer, const VkPushConstantsInfo* pPushConstantsInfo);
13474typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSet2KHR)(VkCommandBuffer commandBuffer, const VkPushDescriptorSetInfo* pPushDescriptorSetInfo);
13475typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplate2KHR)(VkCommandBuffer commandBuffer, const VkPushDescriptorSetWithTemplateInfo* pPushDescriptorSetWithTemplateInfo);
13476typedef void (VKAPI_PTR *PFN_vkCmdSetDescriptorBufferOffsets2EXT)(VkCommandBuffer commandBuffer, const VkSetDescriptorBufferOffsetsInfoEXT* pSetDescriptorBufferOffsetsInfo);
13477typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT)(VkCommandBuffer commandBuffer, const VkBindDescriptorBufferEmbeddedSamplersInfoEXT* pBindDescriptorBufferEmbeddedSamplersInfo);
13478
13479#ifndef VK_NO_PROTOTYPES
13480#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13481VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets2KHR(
13482 VkCommandBuffer commandBuffer,
13483 const VkBindDescriptorSetsInfo* pBindDescriptorSetsInfo);
13484#endif
13485
13486#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13487VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants2KHR(
13488 VkCommandBuffer commandBuffer,
13489 const VkPushConstantsInfo* pPushConstantsInfo);
13490#endif
13491
13492#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13493VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSet2KHR(
13494 VkCommandBuffer commandBuffer,
13495 const VkPushDescriptorSetInfo* pPushDescriptorSetInfo);
13496#endif
13497
13498#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13499VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplate2KHR(
13500 VkCommandBuffer commandBuffer,
13501 const VkPushDescriptorSetWithTemplateInfo* pPushDescriptorSetWithTemplateInfo);
13502#endif
13503
13504#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13505VKAPI_ATTR void VKAPI_CALL vkCmdSetDescriptorBufferOffsets2EXT(
13506 VkCommandBuffer commandBuffer,
13507 const VkSetDescriptorBufferOffsetsInfoEXT* pSetDescriptorBufferOffsetsInfo);
13508#endif
13509
13510#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13511VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorBufferEmbeddedSamplers2EXT(
13512 VkCommandBuffer commandBuffer,
13513 const VkBindDescriptorBufferEmbeddedSamplersInfoEXT* pBindDescriptorBufferEmbeddedSamplersInfo);
13514#endif
13515#endif
13516
13517
13518// VK_KHR_copy_memory_indirect is a preprocessor guard. Do not pass it to API calls.
13519#define VK_KHR_copy_memory_indirect 1
13520#define VK_KHR_COPY_MEMORY_INDIRECT_SPEC_VERSION 1
13521#define VK_KHR_COPY_MEMORY_INDIRECT_EXTENSION_NAME "VK_KHR_copy_memory_indirect"
13522
13523typedef enum VkAddressCopyFlagBitsKHR {
13524 VK_ADDRESS_COPY_DEVICE_LOCAL_BIT_KHR = 0x00000001,
13525 VK_ADDRESS_COPY_SPARSE_BIT_KHR = 0x00000002,
13526 VK_ADDRESS_COPY_PROTECTED_BIT_KHR = 0x00000004,
13527 VK_ADDRESS_COPY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
13528} VkAddressCopyFlagBitsKHR;
13529typedef VkFlags VkAddressCopyFlagsKHR;
13530typedef struct VkStridedDeviceAddressRangeKHR {
13531 VkDeviceAddress address;
13532 VkDeviceSize size;
13533 VkDeviceSize stride;
13534} VkStridedDeviceAddressRangeKHR;
13535
13536typedef struct VkCopyMemoryIndirectCommandKHR {
13537 VkDeviceAddress srcAddress;
13538 VkDeviceAddress dstAddress;
13539 VkDeviceSize size;
13540} VkCopyMemoryIndirectCommandKHR;
13541
13542typedef struct VkCopyMemoryIndirectInfoKHR {
13543 VkStructureType sType;
13544 const void* pNext;
13545 VkAddressCopyFlagsKHR srcCopyFlags;
13546 VkAddressCopyFlagsKHR dstCopyFlags;
13547 uint32_t copyCount;
13548 VkStridedDeviceAddressRangeKHR copyAddressRange;
13549} VkCopyMemoryIndirectInfoKHR;
13550
13551typedef struct VkCopyMemoryToImageIndirectCommandKHR {
13552 VkDeviceAddress srcAddress;
13553 uint32_t bufferRowLength;
13554 uint32_t bufferImageHeight;
13555 VkImageSubresourceLayers imageSubresource;
13556 VkOffset3D imageOffset;
13557 VkExtent3D imageExtent;
13558} VkCopyMemoryToImageIndirectCommandKHR;
13559
13560typedef struct VkCopyMemoryToImageIndirectInfoKHR {
13561 VkStructureType sType;
13562 const void* pNext;
13563 VkAddressCopyFlagsKHR srcCopyFlags;
13564 uint32_t copyCount;
13565 VkStridedDeviceAddressRangeKHR copyAddressRange;
13566 VkImage dstImage;
13567 VkImageLayout dstImageLayout;
13568 const VkImageSubresourceLayers* pImageSubresources;
13569} VkCopyMemoryToImageIndirectInfoKHR;
13570
13571typedef struct VkPhysicalDeviceCopyMemoryIndirectFeaturesKHR {
13572 VkStructureType sType;
13573 void* pNext;
13574 VkBool32 indirectMemoryCopy;
13575 VkBool32 indirectMemoryToImageCopy;
13576} VkPhysicalDeviceCopyMemoryIndirectFeaturesKHR;
13577
13578typedef struct VkPhysicalDeviceCopyMemoryIndirectPropertiesKHR {
13579 VkStructureType sType;
13580 void* pNext;
13581 VkQueueFlags supportedQueues;
13582} VkPhysicalDeviceCopyMemoryIndirectPropertiesKHR;
13583
13584typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryIndirectKHR)(VkCommandBuffer commandBuffer, const VkCopyMemoryIndirectInfoKHR* pCopyMemoryIndirectInfo);
13585typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToImageIndirectKHR)(VkCommandBuffer commandBuffer, const VkCopyMemoryToImageIndirectInfoKHR* pCopyMemoryToImageIndirectInfo);
13586
13587#ifndef VK_NO_PROTOTYPES
13588#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13589VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryIndirectKHR(
13590 VkCommandBuffer commandBuffer,
13591 const VkCopyMemoryIndirectInfoKHR* pCopyMemoryIndirectInfo);
13592#endif
13593
13594#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13595VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToImageIndirectKHR(
13596 VkCommandBuffer commandBuffer,
13597 const VkCopyMemoryToImageIndirectInfoKHR* pCopyMemoryToImageIndirectInfo);
13598#endif
13599#endif
13600
13601
13602// VK_KHR_video_encode_intra_refresh is a preprocessor guard. Do not pass it to API calls.
13603#define VK_KHR_video_encode_intra_refresh 1
13604#define VK_KHR_VIDEO_ENCODE_INTRA_REFRESH_SPEC_VERSION 1
13605#define VK_KHR_VIDEO_ENCODE_INTRA_REFRESH_EXTENSION_NAME "VK_KHR_video_encode_intra_refresh"
13606
13607typedef enum VkVideoEncodeIntraRefreshModeFlagBitsKHR {
13608 VK_VIDEO_ENCODE_INTRA_REFRESH_MODE_NONE_KHR = 0,
13609 VK_VIDEO_ENCODE_INTRA_REFRESH_MODE_PER_PICTURE_PARTITION_BIT_KHR = 0x00000001,
13610 VK_VIDEO_ENCODE_INTRA_REFRESH_MODE_BLOCK_BASED_BIT_KHR = 0x00000002,
13611 VK_VIDEO_ENCODE_INTRA_REFRESH_MODE_BLOCK_ROW_BASED_BIT_KHR = 0x00000004,
13612 VK_VIDEO_ENCODE_INTRA_REFRESH_MODE_BLOCK_COLUMN_BASED_BIT_KHR = 0x00000008,
13613 VK_VIDEO_ENCODE_INTRA_REFRESH_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
13614} VkVideoEncodeIntraRefreshModeFlagBitsKHR;
13615typedef VkFlags VkVideoEncodeIntraRefreshModeFlagsKHR;
13616typedef struct VkVideoEncodeIntraRefreshCapabilitiesKHR {
13617 VkStructureType sType;
13618 void* pNext;
13619 VkVideoEncodeIntraRefreshModeFlagsKHR intraRefreshModes;
13620 uint32_t maxIntraRefreshCycleDuration;
13621 uint32_t maxIntraRefreshActiveReferencePictures;
13622 VkBool32 partitionIndependentIntraRefreshRegions;
13623 VkBool32 nonRectangularIntraRefreshRegions;
13624} VkVideoEncodeIntraRefreshCapabilitiesKHR;
13625
13626typedef struct VkVideoEncodeSessionIntraRefreshCreateInfoKHR {
13627 VkStructureType sType;
13628 const void* pNext;
13629 VkVideoEncodeIntraRefreshModeFlagBitsKHR intraRefreshMode;
13630} VkVideoEncodeSessionIntraRefreshCreateInfoKHR;
13631
13632typedef struct VkVideoEncodeIntraRefreshInfoKHR {
13633 VkStructureType sType;
13634 const void* pNext;
13635 uint32_t intraRefreshCycleDuration;
13636 uint32_t intraRefreshIndex;
13637} VkVideoEncodeIntraRefreshInfoKHR;
13638
13639typedef struct VkVideoReferenceIntraRefreshInfoKHR {
13640 VkStructureType sType;
13641 const void* pNext;
13642 uint32_t dirtyIntraRefreshRegions;
13643} VkVideoReferenceIntraRefreshInfoKHR;
13644
13645typedef struct VkPhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR {
13646 VkStructureType sType;
13647 void* pNext;
13648 VkBool32 videoEncodeIntraRefresh;
13649} VkPhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR;
13650
13651
13652
13653// VK_KHR_video_encode_quantization_map is a preprocessor guard. Do not pass it to API calls.
13654#define VK_KHR_video_encode_quantization_map 1
13655#define VK_KHR_VIDEO_ENCODE_QUANTIZATION_MAP_SPEC_VERSION 2
13656#define VK_KHR_VIDEO_ENCODE_QUANTIZATION_MAP_EXTENSION_NAME "VK_KHR_video_encode_quantization_map"
13657typedef struct VkVideoEncodeQuantizationMapCapabilitiesKHR {
13658 VkStructureType sType;
13659 void* pNext;
13660 VkExtent2D maxQuantizationMapExtent;
13661} VkVideoEncodeQuantizationMapCapabilitiesKHR;
13662
13663typedef struct VkVideoFormatQuantizationMapPropertiesKHR {
13664 VkStructureType sType;
13665 void* pNext;
13666 VkExtent2D quantizationMapTexelSize;
13667} VkVideoFormatQuantizationMapPropertiesKHR;
13668
13669typedef struct VkVideoEncodeQuantizationMapInfoKHR {
13670 VkStructureType sType;
13671 const void* pNext;
13672 VkImageView quantizationMap;
13673 VkExtent2D quantizationMapExtent;
13674} VkVideoEncodeQuantizationMapInfoKHR;
13675
13676typedef struct VkVideoEncodeQuantizationMapSessionParametersCreateInfoKHR {
13677 VkStructureType sType;
13678 const void* pNext;
13679 VkExtent2D quantizationMapTexelSize;
13680} VkVideoEncodeQuantizationMapSessionParametersCreateInfoKHR;
13681
13682typedef struct VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR {
13683 VkStructureType sType;
13684 void* pNext;
13685 VkBool32 videoEncodeQuantizationMap;
13686} VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR;
13687
13688typedef struct VkVideoEncodeH264QuantizationMapCapabilitiesKHR {
13689 VkStructureType sType;
13690 void* pNext;
13691 int32_t minQpDelta;
13692 int32_t maxQpDelta;
13693} VkVideoEncodeH264QuantizationMapCapabilitiesKHR;
13694
13695typedef struct VkVideoEncodeH265QuantizationMapCapabilitiesKHR {
13696 VkStructureType sType;
13697 void* pNext;
13698 int32_t minQpDelta;
13699 int32_t maxQpDelta;
13700} VkVideoEncodeH265QuantizationMapCapabilitiesKHR;
13701
13702typedef struct VkVideoFormatH265QuantizationMapPropertiesKHR {
13703 VkStructureType sType;
13704 void* pNext;
13705 VkVideoEncodeH265CtbSizeFlagsKHR compatibleCtbSizes;
13706} VkVideoFormatH265QuantizationMapPropertiesKHR;
13707
13708typedef struct VkVideoEncodeAV1QuantizationMapCapabilitiesKHR {
13709 VkStructureType sType;
13710 void* pNext;
13711 int32_t minQIndexDelta;
13712 int32_t maxQIndexDelta;
13713} VkVideoEncodeAV1QuantizationMapCapabilitiesKHR;
13714
13715typedef struct VkVideoFormatAV1QuantizationMapPropertiesKHR {
13716 VkStructureType sType;
13717 void* pNext;
13718 VkVideoEncodeAV1SuperblockSizeFlagsKHR compatibleSuperblockSizes;
13719} VkVideoFormatAV1QuantizationMapPropertiesKHR;
13720
13721
13722
13723// VK_KHR_shader_relaxed_extended_instruction is a preprocessor guard. Do not pass it to API calls.
13724#define VK_KHR_shader_relaxed_extended_instruction 1
13725#define VK_KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_SPEC_VERSION 1
13726#define VK_KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_EXTENSION_NAME "VK_KHR_shader_relaxed_extended_instruction"
13727typedef struct VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR {
13728 VkStructureType sType;
13729 void* pNext;
13730 VkBool32 shaderRelaxedExtendedInstruction;
13731} VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR;
13732
13733
13734
13735// VK_KHR_maintenance7 is a preprocessor guard. Do not pass it to API calls.
13736#define VK_KHR_maintenance7 1
13737#define VK_KHR_MAINTENANCE_7_SPEC_VERSION 1
13738#define VK_KHR_MAINTENANCE_7_EXTENSION_NAME "VK_KHR_maintenance7"
13739
13740typedef enum VkPhysicalDeviceLayeredApiKHR {
13741 VK_PHYSICAL_DEVICE_LAYERED_API_VULKAN_KHR = 0,
13742 VK_PHYSICAL_DEVICE_LAYERED_API_D3D12_KHR = 1,
13743 VK_PHYSICAL_DEVICE_LAYERED_API_METAL_KHR = 2,
13744 VK_PHYSICAL_DEVICE_LAYERED_API_OPENGL_KHR = 3,
13745 VK_PHYSICAL_DEVICE_LAYERED_API_OPENGLES_KHR = 4,
13746 VK_PHYSICAL_DEVICE_LAYERED_API_MAX_ENUM_KHR = 0x7FFFFFFF
13747} VkPhysicalDeviceLayeredApiKHR;
13748typedef struct VkPhysicalDeviceMaintenance7FeaturesKHR {
13749 VkStructureType sType;
13750 void* pNext;
13751 VkBool32 maintenance7;
13752} VkPhysicalDeviceMaintenance7FeaturesKHR;
13753
13754typedef struct VkPhysicalDeviceMaintenance7PropertiesKHR {
13755 VkStructureType sType;
13756 void* pNext;
13757 VkBool32 robustFragmentShadingRateAttachmentAccess;
13758 VkBool32 separateDepthStencilAttachmentAccess;
13759 uint32_t maxDescriptorSetTotalUniformBuffersDynamic;
13760 uint32_t maxDescriptorSetTotalStorageBuffersDynamic;
13761 uint32_t maxDescriptorSetTotalBuffersDynamic;
13762 uint32_t maxDescriptorSetUpdateAfterBindTotalUniformBuffersDynamic;
13763 uint32_t maxDescriptorSetUpdateAfterBindTotalStorageBuffersDynamic;
13764 uint32_t maxDescriptorSetUpdateAfterBindTotalBuffersDynamic;
13765} VkPhysicalDeviceMaintenance7PropertiesKHR;
13766
13767typedef struct VkPhysicalDeviceLayeredApiPropertiesKHR {
13768 VkStructureType sType;
13769 void* pNext;
13770 uint32_t vendorID;
13771 uint32_t deviceID;
13772 VkPhysicalDeviceLayeredApiKHR layeredAPI;
13773 char deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
13774} VkPhysicalDeviceLayeredApiPropertiesKHR;
13775
13776typedef struct VkPhysicalDeviceLayeredApiPropertiesListKHR {
13777 VkStructureType sType;
13778 void* pNext;
13779 uint32_t layeredApiCount;
13780 VkPhysicalDeviceLayeredApiPropertiesKHR* pLayeredApis;
13781} VkPhysicalDeviceLayeredApiPropertiesListKHR;
13782
13783typedef struct VkPhysicalDeviceLayeredApiVulkanPropertiesKHR {
13784 VkStructureType sType;
13785 void* pNext;
13786 VkPhysicalDeviceProperties2 properties;
13787} VkPhysicalDeviceLayeredApiVulkanPropertiesKHR;
13788
13789
13790
13791// VK_KHR_maintenance8 is a preprocessor guard. Do not pass it to API calls.
13792#define VK_KHR_maintenance8 1
13793#define VK_KHR_MAINTENANCE_8_SPEC_VERSION 1
13794#define VK_KHR_MAINTENANCE_8_EXTENSION_NAME "VK_KHR_maintenance8"
13795typedef VkFlags64 VkAccessFlags3KHR;
13796
13797// Flag bits for VkAccessFlagBits3KHR
13798typedef VkFlags64 VkAccessFlagBits3KHR;
13799static const VkAccessFlagBits3KHR VK_ACCESS_3_NONE_KHR = 0ULL;
13800
13801typedef struct VkMemoryBarrierAccessFlags3KHR {
13802 VkStructureType sType;
13803 const void* pNext;
13804 VkAccessFlags3KHR srcAccessMask3;
13805 VkAccessFlags3KHR dstAccessMask3;
13806} VkMemoryBarrierAccessFlags3KHR;
13807
13808typedef struct VkPhysicalDeviceMaintenance8FeaturesKHR {
13809 VkStructureType sType;
13810 void* pNext;
13811 VkBool32 maintenance8;
13812} VkPhysicalDeviceMaintenance8FeaturesKHR;
13813
13814
13815
13816// VK_KHR_shader_fma is a preprocessor guard. Do not pass it to API calls.
13817#define VK_KHR_shader_fma 1
13818#define VK_KHR_SHADER_FMA_SPEC_VERSION 1
13819#define VK_KHR_SHADER_FMA_EXTENSION_NAME "VK_KHR_shader_fma"
13820typedef struct VkPhysicalDeviceShaderFmaFeaturesKHR {
13821 VkStructureType sType;
13822 void* pNext;
13823 VkBool32 shaderFmaFloat16;
13824 VkBool32 shaderFmaFloat32;
13825 VkBool32 shaderFmaFloat64;
13826} VkPhysicalDeviceShaderFmaFeaturesKHR;
13827
13828
13829
13830// VK_KHR_maintenance9 is a preprocessor guard. Do not pass it to API calls.
13831#define VK_KHR_maintenance9 1
13832#define VK_KHR_MAINTENANCE_9_SPEC_VERSION 1
13833#define VK_KHR_MAINTENANCE_9_EXTENSION_NAME "VK_KHR_maintenance9"
13834
13835typedef enum VkDefaultVertexAttributeValueKHR {
13836 VK_DEFAULT_VERTEX_ATTRIBUTE_VALUE_ZERO_ZERO_ZERO_ZERO_KHR = 0,
13837 VK_DEFAULT_VERTEX_ATTRIBUTE_VALUE_ZERO_ZERO_ZERO_ONE_KHR = 1,
13838 VK_DEFAULT_VERTEX_ATTRIBUTE_VALUE_MAX_ENUM_KHR = 0x7FFFFFFF
13839} VkDefaultVertexAttributeValueKHR;
13840typedef struct VkPhysicalDeviceMaintenance9FeaturesKHR {
13841 VkStructureType sType;
13842 void* pNext;
13843 VkBool32 maintenance9;
13844} VkPhysicalDeviceMaintenance9FeaturesKHR;
13845
13846typedef struct VkPhysicalDeviceMaintenance9PropertiesKHR {
13847 VkStructureType sType;
13848 void* pNext;
13849 VkBool32 image2DViewOf3DSparse;
13850 VkDefaultVertexAttributeValueKHR defaultVertexAttributeValue;
13851} VkPhysicalDeviceMaintenance9PropertiesKHR;
13852
13853typedef struct VkQueueFamilyOwnershipTransferPropertiesKHR {
13854 VkStructureType sType;
13855 void* pNext;
13856 uint32_t optimalImageTransferToQueueFamilies;
13857} VkQueueFamilyOwnershipTransferPropertiesKHR;
13858
13859
13860
13861// VK_KHR_video_maintenance2 is a preprocessor guard. Do not pass it to API calls.
13862#define VK_KHR_video_maintenance2 1
13863#define VK_KHR_VIDEO_MAINTENANCE_2_SPEC_VERSION 1
13864#define VK_KHR_VIDEO_MAINTENANCE_2_EXTENSION_NAME "VK_KHR_video_maintenance2"
13865typedef struct VkPhysicalDeviceVideoMaintenance2FeaturesKHR {
13866 VkStructureType sType;
13867 void* pNext;
13868 VkBool32 videoMaintenance2;
13869} VkPhysicalDeviceVideoMaintenance2FeaturesKHR;
13870
13871typedef struct VkVideoDecodeH264InlineSessionParametersInfoKHR {
13872 VkStructureType sType;
13873 const void* pNext;
13874 const StdVideoH264SequenceParameterSet* pStdSPS;
13875 const StdVideoH264PictureParameterSet* pStdPPS;
13876} VkVideoDecodeH264InlineSessionParametersInfoKHR;
13877
13878typedef struct VkVideoDecodeH265InlineSessionParametersInfoKHR {
13879 VkStructureType sType;
13880 const void* pNext;
13881 const StdVideoH265VideoParameterSet* pStdVPS;
13882 const StdVideoH265SequenceParameterSet* pStdSPS;
13883 const StdVideoH265PictureParameterSet* pStdPPS;
13884} VkVideoDecodeH265InlineSessionParametersInfoKHR;
13885
13886typedef struct VkVideoDecodeAV1InlineSessionParametersInfoKHR {
13887 VkStructureType sType;
13888 const void* pNext;
13889 const StdVideoAV1SequenceHeader* pStdSequenceHeader;
13890} VkVideoDecodeAV1InlineSessionParametersInfoKHR;
13891
13892
13893
13894// VK_KHR_depth_clamp_zero_one is a preprocessor guard. Do not pass it to API calls.
13895#define VK_KHR_depth_clamp_zero_one 1
13896#define VK_KHR_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION 1
13897#define VK_KHR_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME "VK_KHR_depth_clamp_zero_one"
13898typedef struct VkPhysicalDeviceDepthClampZeroOneFeaturesKHR {
13899 VkStructureType sType;
13900 void* pNext;
13901 VkBool32 depthClampZeroOne;
13902} VkPhysicalDeviceDepthClampZeroOneFeaturesKHR;
13903
13904
13905
13906// VK_KHR_robustness2 is a preprocessor guard. Do not pass it to API calls.
13907#define VK_KHR_robustness2 1
13908#define VK_KHR_ROBUSTNESS_2_SPEC_VERSION 1
13909#define VK_KHR_ROBUSTNESS_2_EXTENSION_NAME "VK_KHR_robustness2"
13910typedef struct VkPhysicalDeviceRobustness2FeaturesKHR {
13911 VkStructureType sType;
13912 void* pNext;
13913 VkBool32 robustBufferAccess2;
13914 VkBool32 robustImageAccess2;
13915 VkBool32 nullDescriptor;
13916} VkPhysicalDeviceRobustness2FeaturesKHR;
13917
13918typedef struct VkPhysicalDeviceRobustness2PropertiesKHR {
13919 VkStructureType sType;
13920 void* pNext;
13921 VkDeviceSize robustStorageBufferAccessSizeAlignment;
13922 VkDeviceSize robustUniformBufferAccessSizeAlignment;
13923} VkPhysicalDeviceRobustness2PropertiesKHR;
13924
13925
13926
13927// VK_KHR_present_mode_fifo_latest_ready is a preprocessor guard. Do not pass it to API calls.
13928#define VK_KHR_present_mode_fifo_latest_ready 1
13929#define VK_KHR_PRESENT_MODE_FIFO_LATEST_READY_SPEC_VERSION 1
13930#define VK_KHR_PRESENT_MODE_FIFO_LATEST_READY_EXTENSION_NAME "VK_KHR_present_mode_fifo_latest_ready"
13931typedef struct VkPhysicalDevicePresentModeFifoLatestReadyFeaturesKHR {
13932 VkStructureType sType;
13933 void* pNext;
13934 VkBool32 presentModeFifoLatestReady;
13935} VkPhysicalDevicePresentModeFifoLatestReadyFeaturesKHR;
13936
13937
13938
13939// VK_KHR_maintenance10 is a preprocessor guard. Do not pass it to API calls.
13940#define VK_KHR_maintenance10 1
13941#define VK_KHR_MAINTENANCE_10_SPEC_VERSION 1
13942#define VK_KHR_MAINTENANCE_10_EXTENSION_NAME "VK_KHR_maintenance10"
13943
13944typedef enum VkRenderingAttachmentFlagBitsKHR {
13945 VK_RENDERING_ATTACHMENT_INPUT_ATTACHMENT_FEEDBACK_BIT_KHR = 0x00000001,
13946 VK_RENDERING_ATTACHMENT_RESOLVE_SKIP_TRANSFER_FUNCTION_BIT_KHR = 0x00000002,
13947 VK_RENDERING_ATTACHMENT_RESOLVE_ENABLE_TRANSFER_FUNCTION_BIT_KHR = 0x00000004,
13948 VK_RENDERING_ATTACHMENT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
13949} VkRenderingAttachmentFlagBitsKHR;
13950typedef VkFlags VkRenderingAttachmentFlagsKHR;
13951
13952typedef enum VkResolveImageFlagBitsKHR {
13953 VK_RESOLVE_IMAGE_SKIP_TRANSFER_FUNCTION_BIT_KHR = 0x00000001,
13954 VK_RESOLVE_IMAGE_ENABLE_TRANSFER_FUNCTION_BIT_KHR = 0x00000002,
13955 VK_RESOLVE_IMAGE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
13956} VkResolveImageFlagBitsKHR;
13957typedef VkFlags VkResolveImageFlagsKHR;
13958typedef struct VkPhysicalDeviceMaintenance10FeaturesKHR {
13959 VkStructureType sType;
13960 void* pNext;
13961 VkBool32 maintenance10;
13962} VkPhysicalDeviceMaintenance10FeaturesKHR;
13963
13964typedef struct VkPhysicalDeviceMaintenance10PropertiesKHR {
13965 VkStructureType sType;
13966 void* pNext;
13967 VkBool32 rgba4OpaqueBlackSwizzled;
13968 VkBool32 resolveSrgbFormatAppliesTransferFunction;
13969 VkBool32 resolveSrgbFormatSupportsTransferFunctionControl;
13970} VkPhysicalDeviceMaintenance10PropertiesKHR;
13971
13972typedef struct VkRenderingEndInfoKHR {
13973 VkStructureType sType;
13974 const void* pNext;
13975} VkRenderingEndInfoKHR;
13976
13977typedef struct VkRenderingAttachmentFlagsInfoKHR {
13978 VkStructureType sType;
13979 const void* pNext;
13980 VkRenderingAttachmentFlagsKHR flags;
13981} VkRenderingAttachmentFlagsInfoKHR;
13982
13983typedef struct VkResolveImageModeInfoKHR {
13984 VkStructureType sType;
13985 const void* pNext;
13986 VkResolveImageFlagsKHR flags;
13987 VkResolveModeFlagBits resolveMode;
13988 VkResolveModeFlagBits stencilResolveMode;
13989} VkResolveImageModeInfoKHR;
13990
13991typedef void (VKAPI_PTR *PFN_vkCmdEndRendering2KHR)(VkCommandBuffer commandBuffer, const VkRenderingEndInfoKHR* pRenderingEndInfo);
13992
13993#ifndef VK_NO_PROTOTYPES
13994#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13995VKAPI_ATTR void VKAPI_CALL vkCmdEndRendering2KHR(
13996 VkCommandBuffer commandBuffer,
13997 const VkRenderingEndInfoKHR* pRenderingEndInfo);
13998#endif
13999#endif
14000
14001
14002// VK_EXT_debug_report is a preprocessor guard. Do not pass it to API calls.
14003#define VK_EXT_debug_report 1
14004VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)
14005#define VK_EXT_DEBUG_REPORT_SPEC_VERSION 10
14006#define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report"
14007
14008typedef enum VkDebugReportObjectTypeEXT {
14009 VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0,
14010 VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1,
14011 VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2,
14012 VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3,
14013 VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4,
14014 VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5,
14015 VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6,
14016 VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7,
14017 VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8,
14018 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9,
14019 VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10,
14020 VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11,
14021 VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12,
14022 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13,
14023 VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14,
14024 VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15,
14025 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16,
14026 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17,
14027 VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18,
14028 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19,
14029 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20,
14030 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21,
14031 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22,
14032 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23,
14033 VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24,
14034 VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25,
14035 VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
14036 VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
14037 VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28,
14038 VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29,
14039 VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
14040 VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33,
14041 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000,
14042 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000,
14043 VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT = 1000029000,
14044 VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = 1000029001,
14045 VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000,
14046 VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000,
14047 VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV_EXT = 1000307000,
14048 VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_FUNCTION_NV_EXT = 1000307001,
14049 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = 1000366000,
14050 // VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT is a legacy alias
14051 VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT,
14052 // VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT is a legacy alias
14053 VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
14054 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT,
14055 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT,
14056 VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
14057} VkDebugReportObjectTypeEXT;
14058
14059typedef enum VkDebugReportFlagBitsEXT {
14060 VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001,
14061 VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002,
14062 VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004,
14063 VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008,
14064 VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010,
14065 VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
14066} VkDebugReportFlagBitsEXT;
14067typedef VkFlags VkDebugReportFlagsEXT;
14068typedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)(
14069 VkDebugReportFlagsEXT flags,
14070 VkDebugReportObjectTypeEXT objectType,
14071 uint64_t object,
14072 size_t location,
14073 int32_t messageCode,
14074 const char* pLayerPrefix,
14075 const char* pMessage,
14076 void* pUserData);
14077
14078typedef struct VkDebugReportCallbackCreateInfoEXT {
14079 VkStructureType sType;
14080 const void* pNext;
14081 VkDebugReportFlagsEXT flags;
14082 PFN_vkDebugReportCallbackEXT pfnCallback;
14083 void* pUserData;
14084} VkDebugReportCallbackCreateInfoEXT;
14085
14086typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugReportCallbackEXT)(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback);
14087typedef void (VKAPI_PTR *PFN_vkDestroyDebugReportCallbackEXT)(VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator);
14088typedef void (VKAPI_PTR *PFN_vkDebugReportMessageEXT)(VkInstance instance, VkDebugReportFlagsEXT flags, VkDebugReportObjectTypeEXT objectType, uint64_t object, size_t location, int32_t messageCode, const char* pLayerPrefix, const char* pMessage);
14089
14090#ifndef VK_NO_PROTOTYPES
14091#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14092VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugReportCallbackEXT(
14093 VkInstance instance,
14094 const VkDebugReportCallbackCreateInfoEXT* pCreateInfo,
14095 const VkAllocationCallbacks* pAllocator,
14096 VkDebugReportCallbackEXT* pCallback);
14097#endif
14098
14099#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14100VKAPI_ATTR void VKAPI_CALL vkDestroyDebugReportCallbackEXT(
14101 VkInstance instance,
14102 VkDebugReportCallbackEXT callback,
14103 const VkAllocationCallbacks* pAllocator);
14104#endif
14105
14106#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14107VKAPI_ATTR void VKAPI_CALL vkDebugReportMessageEXT(
14108 VkInstance instance,
14109 VkDebugReportFlagsEXT flags,
14110 VkDebugReportObjectTypeEXT objectType,
14111 uint64_t object,
14112 size_t location,
14113 int32_t messageCode,
14114 const char* pLayerPrefix,
14115 const char* pMessage);
14116#endif
14117#endif
14118
14119
14120// VK_NV_glsl_shader is a preprocessor guard. Do not pass it to API calls.
14121#define VK_NV_glsl_shader 1
14122#define VK_NV_GLSL_SHADER_SPEC_VERSION 1
14123#define VK_NV_GLSL_SHADER_EXTENSION_NAME "VK_NV_glsl_shader"
14124
14125
14126// VK_EXT_depth_range_unrestricted is a preprocessor guard. Do not pass it to API calls.
14127#define VK_EXT_depth_range_unrestricted 1
14128#define VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION 1
14129#define VK_EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME "VK_EXT_depth_range_unrestricted"
14130
14131
14132// VK_IMG_filter_cubic is a preprocessor guard. Do not pass it to API calls.
14133#define VK_IMG_filter_cubic 1
14134#define VK_IMG_FILTER_CUBIC_SPEC_VERSION 1
14135#define VK_IMG_FILTER_CUBIC_EXTENSION_NAME "VK_IMG_filter_cubic"
14136
14137
14138// VK_AMD_rasterization_order is a preprocessor guard. Do not pass it to API calls.
14139#define VK_AMD_rasterization_order 1
14140#define VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION 1
14141#define VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME "VK_AMD_rasterization_order"
14142
14143typedef enum VkRasterizationOrderAMD {
14144 VK_RASTERIZATION_ORDER_STRICT_AMD = 0,
14145 VK_RASTERIZATION_ORDER_RELAXED_AMD = 1,
14146 VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 0x7FFFFFFF
14147} VkRasterizationOrderAMD;
14148typedef struct VkPipelineRasterizationStateRasterizationOrderAMD {
14149 VkStructureType sType;
14150 const void* pNext;
14151 VkRasterizationOrderAMD rasterizationOrder;
14152} VkPipelineRasterizationStateRasterizationOrderAMD;
14153
14154
14155
14156// VK_AMD_shader_trinary_minmax is a preprocessor guard. Do not pass it to API calls.
14157#define VK_AMD_shader_trinary_minmax 1
14158#define VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION 1
14159#define VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME "VK_AMD_shader_trinary_minmax"
14160
14161
14162// VK_AMD_shader_explicit_vertex_parameter is a preprocessor guard. Do not pass it to API calls.
14163#define VK_AMD_shader_explicit_vertex_parameter 1
14164#define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION 1
14165#define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME "VK_AMD_shader_explicit_vertex_parameter"
14166
14167
14168// VK_EXT_debug_marker is a preprocessor guard. Do not pass it to API calls.
14169#define VK_EXT_debug_marker 1
14170#define VK_EXT_DEBUG_MARKER_SPEC_VERSION 4
14171#define VK_EXT_DEBUG_MARKER_EXTENSION_NAME "VK_EXT_debug_marker"
14172typedef struct VkDebugMarkerObjectNameInfoEXT {
14173 VkStructureType sType;
14174 const void* pNext;
14175 VkDebugReportObjectTypeEXT objectType;
14176 uint64_t object;
14177 const char* pObjectName;
14178} VkDebugMarkerObjectNameInfoEXT;
14179
14180typedef struct VkDebugMarkerObjectTagInfoEXT {
14181 VkStructureType sType;
14182 const void* pNext;
14183 VkDebugReportObjectTypeEXT objectType;
14184 uint64_t object;
14185 uint64_t tagName;
14186 size_t tagSize;
14187 const void* pTag;
14188} VkDebugMarkerObjectTagInfoEXT;
14189
14190typedef struct VkDebugMarkerMarkerInfoEXT {
14191 VkStructureType sType;
14192 const void* pNext;
14193 const char* pMarkerName;
14194 float color[4];
14195} VkDebugMarkerMarkerInfoEXT;
14196
14197typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectTagEXT)(VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo);
14198typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectNameEXT)(VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo);
14199typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerBeginEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
14200typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerEndEXT)(VkCommandBuffer commandBuffer);
14201typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerInsertEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
14202
14203#ifndef VK_NO_PROTOTYPES
14204#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14205VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectTagEXT(
14206 VkDevice device,
14207 const VkDebugMarkerObjectTagInfoEXT* pTagInfo);
14208#endif
14209
14210#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14211VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectNameEXT(
14212 VkDevice device,
14213 const VkDebugMarkerObjectNameInfoEXT* pNameInfo);
14214#endif
14215
14216#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14217VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerBeginEXT(
14218 VkCommandBuffer commandBuffer,
14219 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
14220#endif
14221
14222#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14223VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerEndEXT(
14224 VkCommandBuffer commandBuffer);
14225#endif
14226
14227#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14228VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerInsertEXT(
14229 VkCommandBuffer commandBuffer,
14230 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
14231#endif
14232#endif
14233
14234
14235// VK_AMD_gcn_shader is a preprocessor guard. Do not pass it to API calls.
14236#define VK_AMD_gcn_shader 1
14237#define VK_AMD_GCN_SHADER_SPEC_VERSION 1
14238#define VK_AMD_GCN_SHADER_EXTENSION_NAME "VK_AMD_gcn_shader"
14239
14240
14241// VK_NV_dedicated_allocation is a preprocessor guard. Do not pass it to API calls.
14242#define VK_NV_dedicated_allocation 1
14243#define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1
14244#define VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_NV_dedicated_allocation"
14245typedef struct VkDedicatedAllocationImageCreateInfoNV {
14246 VkStructureType sType;
14247 const void* pNext;
14248 VkBool32 dedicatedAllocation;
14249} VkDedicatedAllocationImageCreateInfoNV;
14250
14251typedef struct VkDedicatedAllocationBufferCreateInfoNV {
14252 VkStructureType sType;
14253 const void* pNext;
14254 VkBool32 dedicatedAllocation;
14255} VkDedicatedAllocationBufferCreateInfoNV;
14256
14257typedef struct VkDedicatedAllocationMemoryAllocateInfoNV {
14258 VkStructureType sType;
14259 const void* pNext;
14260 VkImage image;
14261 VkBuffer buffer;
14262} VkDedicatedAllocationMemoryAllocateInfoNV;
14263
14264
14265
14266// VK_EXT_transform_feedback is a preprocessor guard. Do not pass it to API calls.
14267#define VK_EXT_transform_feedback 1
14268#define VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION 1
14269#define VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME "VK_EXT_transform_feedback"
14270typedef VkFlags VkPipelineRasterizationStateStreamCreateFlagsEXT;
14271typedef struct VkPhysicalDeviceTransformFeedbackFeaturesEXT {
14272 VkStructureType sType;
14273 void* pNext;
14274 VkBool32 transformFeedback;
14275 VkBool32 geometryStreams;
14276} VkPhysicalDeviceTransformFeedbackFeaturesEXT;
14277
14278typedef struct VkPhysicalDeviceTransformFeedbackPropertiesEXT {
14279 VkStructureType sType;
14280 void* pNext;
14281 uint32_t maxTransformFeedbackStreams;
14282 uint32_t maxTransformFeedbackBuffers;
14283 VkDeviceSize maxTransformFeedbackBufferSize;
14284 uint32_t maxTransformFeedbackStreamDataSize;
14285 uint32_t maxTransformFeedbackBufferDataSize;
14286 uint32_t maxTransformFeedbackBufferDataStride;
14287 VkBool32 transformFeedbackQueries;
14288 VkBool32 transformFeedbackStreamsLinesTriangles;
14289 VkBool32 transformFeedbackRasterizationStreamSelect;
14290 VkBool32 transformFeedbackDraw;
14291} VkPhysicalDeviceTransformFeedbackPropertiesEXT;
14292
14293typedef struct VkPipelineRasterizationStateStreamCreateInfoEXT {
14294 VkStructureType sType;
14295 const void* pNext;
14296 VkPipelineRasterizationStateStreamCreateFlagsEXT flags;
14297 uint32_t rasterizationStream;
14298} VkPipelineRasterizationStateStreamCreateInfoEXT;
14299
14300typedef void (VKAPI_PTR *PFN_vkCmdBindTransformFeedbackBuffersEXT)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes);
14301typedef void (VKAPI_PTR *PFN_vkCmdBeginTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets);
14302typedef void (VKAPI_PTR *PFN_vkCmdEndTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets);
14303typedef void (VKAPI_PTR *PFN_vkCmdBeginQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index);
14304typedef void (VKAPI_PTR *PFN_vkCmdEndQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index);
14305typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectByteCountEXT)(VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride);
14306
14307#ifndef VK_NO_PROTOTYPES
14308#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14309VKAPI_ATTR void VKAPI_CALL vkCmdBindTransformFeedbackBuffersEXT(
14310 VkCommandBuffer commandBuffer,
14311 uint32_t firstBinding,
14312 uint32_t bindingCount,
14313 const VkBuffer* pBuffers,
14314 const VkDeviceSize* pOffsets,
14315 const VkDeviceSize* pSizes);
14316#endif
14317
14318#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14319VKAPI_ATTR void VKAPI_CALL vkCmdBeginTransformFeedbackEXT(
14320 VkCommandBuffer commandBuffer,
14321 uint32_t firstCounterBuffer,
14322 uint32_t counterBufferCount,
14323 const VkBuffer* pCounterBuffers,
14324 const VkDeviceSize* pCounterBufferOffsets);
14325#endif
14326
14327#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14328VKAPI_ATTR void VKAPI_CALL vkCmdEndTransformFeedbackEXT(
14329 VkCommandBuffer commandBuffer,
14330 uint32_t firstCounterBuffer,
14331 uint32_t counterBufferCount,
14332 const VkBuffer* pCounterBuffers,
14333 const VkDeviceSize* pCounterBufferOffsets);
14334#endif
14335
14336#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14337VKAPI_ATTR void VKAPI_CALL vkCmdBeginQueryIndexedEXT(
14338 VkCommandBuffer commandBuffer,
14339 VkQueryPool queryPool,
14340 uint32_t query,
14341 VkQueryControlFlags flags,
14342 uint32_t index);
14343#endif
14344
14345#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14346VKAPI_ATTR void VKAPI_CALL vkCmdEndQueryIndexedEXT(
14347 VkCommandBuffer commandBuffer,
14348 VkQueryPool queryPool,
14349 uint32_t query,
14350 uint32_t index);
14351#endif
14352
14353#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14354VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectByteCountEXT(
14355 VkCommandBuffer commandBuffer,
14356 uint32_t instanceCount,
14357 uint32_t firstInstance,
14358 VkBuffer counterBuffer,
14359 VkDeviceSize counterBufferOffset,
14360 uint32_t counterOffset,
14361 uint32_t vertexStride);
14362#endif
14363#endif
14364
14365
14366// VK_NVX_binary_import is a preprocessor guard. Do not pass it to API calls.
14367#define VK_NVX_binary_import 1
14368VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuModuleNVX)
14369VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuFunctionNVX)
14370#define VK_NVX_BINARY_IMPORT_SPEC_VERSION 2
14371#define VK_NVX_BINARY_IMPORT_EXTENSION_NAME "VK_NVX_binary_import"
14372typedef struct VkCuModuleCreateInfoNVX {
14373 VkStructureType sType;
14374 const void* pNext;
14375 size_t dataSize;
14376 const void* pData;
14377} VkCuModuleCreateInfoNVX;
14378
14379typedef struct VkCuModuleTexturingModeCreateInfoNVX {
14380 VkStructureType sType;
14381 const void* pNext;
14382 VkBool32 use64bitTexturing;
14383} VkCuModuleTexturingModeCreateInfoNVX;
14384
14385typedef struct VkCuFunctionCreateInfoNVX {
14386 VkStructureType sType;
14387 const void* pNext;
14388 VkCuModuleNVX module;
14389 const char* pName;
14390} VkCuFunctionCreateInfoNVX;
14391
14392typedef struct VkCuLaunchInfoNVX {
14393 VkStructureType sType;
14394 const void* pNext;
14395 VkCuFunctionNVX function;
14396 uint32_t gridDimX;
14397 uint32_t gridDimY;
14398 uint32_t gridDimZ;
14399 uint32_t blockDimX;
14400 uint32_t blockDimY;
14401 uint32_t blockDimZ;
14402 uint32_t sharedMemBytes;
14403 size_t paramCount;
14404 const void* const * pParams;
14405 size_t extraCount;
14406 const void* const * pExtras;
14407} VkCuLaunchInfoNVX;
14408
14409typedef VkResult (VKAPI_PTR *PFN_vkCreateCuModuleNVX)(VkDevice device, const VkCuModuleCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuModuleNVX* pModule);
14410typedef VkResult (VKAPI_PTR *PFN_vkCreateCuFunctionNVX)(VkDevice device, const VkCuFunctionCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuFunctionNVX* pFunction);
14411typedef void (VKAPI_PTR *PFN_vkDestroyCuModuleNVX)(VkDevice device, VkCuModuleNVX module, const VkAllocationCallbacks* pAllocator);
14412typedef void (VKAPI_PTR *PFN_vkDestroyCuFunctionNVX)(VkDevice device, VkCuFunctionNVX function, const VkAllocationCallbacks* pAllocator);
14413typedef void (VKAPI_PTR *PFN_vkCmdCuLaunchKernelNVX)(VkCommandBuffer commandBuffer, const VkCuLaunchInfoNVX* pLaunchInfo);
14414
14415#ifndef VK_NO_PROTOTYPES
14416#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14417VKAPI_ATTR VkResult VKAPI_CALL vkCreateCuModuleNVX(
14418 VkDevice device,
14419 const VkCuModuleCreateInfoNVX* pCreateInfo,
14420 const VkAllocationCallbacks* pAllocator,
14421 VkCuModuleNVX* pModule);
14422#endif
14423
14424#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14425VKAPI_ATTR VkResult VKAPI_CALL vkCreateCuFunctionNVX(
14426 VkDevice device,
14427 const VkCuFunctionCreateInfoNVX* pCreateInfo,
14428 const VkAllocationCallbacks* pAllocator,
14429 VkCuFunctionNVX* pFunction);
14430#endif
14431
14432#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14433VKAPI_ATTR void VKAPI_CALL vkDestroyCuModuleNVX(
14434 VkDevice device,
14435 VkCuModuleNVX module,
14436 const VkAllocationCallbacks* pAllocator);
14437#endif
14438
14439#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14440VKAPI_ATTR void VKAPI_CALL vkDestroyCuFunctionNVX(
14441 VkDevice device,
14442 VkCuFunctionNVX function,
14443 const VkAllocationCallbacks* pAllocator);
14444#endif
14445
14446#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14447VKAPI_ATTR void VKAPI_CALL vkCmdCuLaunchKernelNVX(
14448 VkCommandBuffer commandBuffer,
14449 const VkCuLaunchInfoNVX* pLaunchInfo);
14450#endif
14451#endif
14452
14453
14454// VK_NVX_image_view_handle is a preprocessor guard. Do not pass it to API calls.
14455#define VK_NVX_image_view_handle 1
14456#define VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION 3
14457#define VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME "VK_NVX_image_view_handle"
14458typedef struct VkImageViewHandleInfoNVX {
14459 VkStructureType sType;
14460 const void* pNext;
14461 VkImageView imageView;
14462 VkDescriptorType descriptorType;
14463 VkSampler sampler;
14464} VkImageViewHandleInfoNVX;
14465
14466typedef struct VkImageViewAddressPropertiesNVX {
14467 VkStructureType sType;
14468 void* pNext;
14469 VkDeviceAddress deviceAddress;
14470 VkDeviceSize size;
14471} VkImageViewAddressPropertiesNVX;
14472
14473typedef uint32_t (VKAPI_PTR *PFN_vkGetImageViewHandleNVX)(VkDevice device, const VkImageViewHandleInfoNVX* pInfo);
14474typedef uint64_t (VKAPI_PTR *PFN_vkGetImageViewHandle64NVX)(VkDevice device, const VkImageViewHandleInfoNVX* pInfo);
14475typedef VkResult (VKAPI_PTR *PFN_vkGetImageViewAddressNVX)(VkDevice device, VkImageView imageView, VkImageViewAddressPropertiesNVX* pProperties);
14476
14477#ifndef VK_NO_PROTOTYPES
14478#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14479VKAPI_ATTR uint32_t VKAPI_CALL vkGetImageViewHandleNVX(
14480 VkDevice device,
14481 const VkImageViewHandleInfoNVX* pInfo);
14482#endif
14483
14484#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14485VKAPI_ATTR uint64_t VKAPI_CALL vkGetImageViewHandle64NVX(
14486 VkDevice device,
14487 const VkImageViewHandleInfoNVX* pInfo);
14488#endif
14489
14490#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14491VKAPI_ATTR VkResult VKAPI_CALL vkGetImageViewAddressNVX(
14492 VkDevice device,
14493 VkImageView imageView,
14494 VkImageViewAddressPropertiesNVX* pProperties);
14495#endif
14496#endif
14497
14498
14499// VK_AMD_draw_indirect_count is a preprocessor guard. Do not pass it to API calls.
14500#define VK_AMD_draw_indirect_count 1
14501#define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 2
14502#define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count"
14503typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
14504typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
14505
14506#ifndef VK_NO_PROTOTYPES
14507#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14508VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountAMD(
14509 VkCommandBuffer commandBuffer,
14510 VkBuffer buffer,
14511 VkDeviceSize offset,
14512 VkBuffer countBuffer,
14513 VkDeviceSize countBufferOffset,
14514 uint32_t maxDrawCount,
14515 uint32_t stride);
14516#endif
14517
14518#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14519VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountAMD(
14520 VkCommandBuffer commandBuffer,
14521 VkBuffer buffer,
14522 VkDeviceSize offset,
14523 VkBuffer countBuffer,
14524 VkDeviceSize countBufferOffset,
14525 uint32_t maxDrawCount,
14526 uint32_t stride);
14527#endif
14528#endif
14529
14530
14531// VK_AMD_negative_viewport_height is a preprocessor guard. Do not pass it to API calls.
14532#define VK_AMD_negative_viewport_height 1
14533#define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1
14534#define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height"
14535
14536
14537// VK_AMD_gpu_shader_half_float is a preprocessor guard. Do not pass it to API calls.
14538#define VK_AMD_gpu_shader_half_float 1
14539#define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 2
14540#define VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME "VK_AMD_gpu_shader_half_float"
14541
14542
14543// VK_AMD_shader_ballot is a preprocessor guard. Do not pass it to API calls.
14544#define VK_AMD_shader_ballot 1
14545#define VK_AMD_SHADER_BALLOT_SPEC_VERSION 1
14546#define VK_AMD_SHADER_BALLOT_EXTENSION_NAME "VK_AMD_shader_ballot"
14547
14548
14549// VK_AMD_texture_gather_bias_lod is a preprocessor guard. Do not pass it to API calls.
14550#define VK_AMD_texture_gather_bias_lod 1
14551#define VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION 1
14552#define VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME "VK_AMD_texture_gather_bias_lod"
14553typedef struct VkTextureLODGatherFormatPropertiesAMD {
14554 VkStructureType sType;
14555 void* pNext;
14556 VkBool32 supportsTextureGatherLODBiasAMD;
14557} VkTextureLODGatherFormatPropertiesAMD;
14558
14559
14560
14561// VK_AMD_shader_info is a preprocessor guard. Do not pass it to API calls.
14562#define VK_AMD_shader_info 1
14563#define VK_AMD_SHADER_INFO_SPEC_VERSION 1
14564#define VK_AMD_SHADER_INFO_EXTENSION_NAME "VK_AMD_shader_info"
14565
14566typedef enum VkShaderInfoTypeAMD {
14567 VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0,
14568 VK_SHADER_INFO_TYPE_BINARY_AMD = 1,
14569 VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2,
14570 VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 0x7FFFFFFF
14571} VkShaderInfoTypeAMD;
14572typedef struct VkShaderResourceUsageAMD {
14573 uint32_t numUsedVgprs;
14574 uint32_t numUsedSgprs;
14575 uint32_t ldsSizePerLocalWorkGroup;
14576 size_t ldsUsageSizeInBytes;
14577 size_t scratchMemUsageInBytes;
14578} VkShaderResourceUsageAMD;
14579
14580typedef struct VkShaderStatisticsInfoAMD {
14581 VkShaderStageFlags shaderStageMask;
14582 VkShaderResourceUsageAMD resourceUsage;
14583 uint32_t numPhysicalVgprs;
14584 uint32_t numPhysicalSgprs;
14585 uint32_t numAvailableVgprs;
14586 uint32_t numAvailableSgprs;
14587 uint32_t computeWorkGroupSize[3];
14588} VkShaderStatisticsInfoAMD;
14589
14590typedef VkResult (VKAPI_PTR *PFN_vkGetShaderInfoAMD)(VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo);
14591
14592#ifndef VK_NO_PROTOTYPES
14593#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14594VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderInfoAMD(
14595 VkDevice device,
14596 VkPipeline pipeline,
14597 VkShaderStageFlagBits shaderStage,
14598 VkShaderInfoTypeAMD infoType,
14599 size_t* pInfoSize,
14600 void* pInfo);
14601#endif
14602#endif
14603
14604
14605// VK_AMD_shader_image_load_store_lod is a preprocessor guard. Do not pass it to API calls.
14606#define VK_AMD_shader_image_load_store_lod 1
14607#define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION 1
14608#define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME "VK_AMD_shader_image_load_store_lod"
14609
14610
14611// VK_NV_corner_sampled_image is a preprocessor guard. Do not pass it to API calls.
14612#define VK_NV_corner_sampled_image 1
14613#define VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION 2
14614#define VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME "VK_NV_corner_sampled_image"
14615typedef struct VkPhysicalDeviceCornerSampledImageFeaturesNV {
14616 VkStructureType sType;
14617 void* pNext;
14618 VkBool32 cornerSampledImage;
14619} VkPhysicalDeviceCornerSampledImageFeaturesNV;
14620
14621
14622
14623// VK_IMG_format_pvrtc is a preprocessor guard. Do not pass it to API calls.
14624#define VK_IMG_format_pvrtc 1
14625#define VK_IMG_FORMAT_PVRTC_SPEC_VERSION 1
14626#define VK_IMG_FORMAT_PVRTC_EXTENSION_NAME "VK_IMG_format_pvrtc"
14627
14628
14629// VK_NV_external_memory_capabilities is a preprocessor guard. Do not pass it to API calls.
14630#define VK_NV_external_memory_capabilities 1
14631#define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
14632#define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities"
14633
14634typedef enum VkExternalMemoryHandleTypeFlagBitsNV {
14635 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001,
14636 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002,
14637 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004,
14638 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008,
14639 VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
14640} VkExternalMemoryHandleTypeFlagBitsNV;
14641typedef VkFlags VkExternalMemoryHandleTypeFlagsNV;
14642
14643typedef enum VkExternalMemoryFeatureFlagBitsNV {
14644 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001,
14645 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002,
14646 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004,
14647 VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
14648} VkExternalMemoryFeatureFlagBitsNV;
14649typedef VkFlags VkExternalMemoryFeatureFlagsNV;
14650typedef struct VkExternalImageFormatPropertiesNV {
14651 VkImageFormatProperties imageFormatProperties;
14652 VkExternalMemoryFeatureFlagsNV externalMemoryFeatures;
14653 VkExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes;
14654 VkExternalMemoryHandleTypeFlagsNV compatibleHandleTypes;
14655} VkExternalImageFormatPropertiesNV;
14656
14657typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
14658
14659#ifndef VK_NO_PROTOTYPES
14660#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14661VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
14662 VkPhysicalDevice physicalDevice,
14663 VkFormat format,
14664 VkImageType type,
14665 VkImageTiling tiling,
14666 VkImageUsageFlags usage,
14667 VkImageCreateFlags flags,
14668 VkExternalMemoryHandleTypeFlagsNV externalHandleType,
14669 VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
14670#endif
14671#endif
14672
14673
14674// VK_NV_external_memory is a preprocessor guard. Do not pass it to API calls.
14675#define VK_NV_external_memory 1
14676#define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1
14677#define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory"
14678typedef struct VkExternalMemoryImageCreateInfoNV {
14679 VkStructureType sType;
14680 const void* pNext;
14681 VkExternalMemoryHandleTypeFlagsNV handleTypes;
14682} VkExternalMemoryImageCreateInfoNV;
14683
14684typedef struct VkExportMemoryAllocateInfoNV {
14685 VkStructureType sType;
14686 const void* pNext;
14687 VkExternalMemoryHandleTypeFlagsNV handleTypes;
14688} VkExportMemoryAllocateInfoNV;
14689
14690
14691
14692// VK_EXT_validation_flags is a preprocessor guard. Do not pass it to API calls.
14693#define VK_EXT_validation_flags 1
14694#define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 3
14695#define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags"
14696
14697typedef enum VkValidationCheckEXT {
14698 VK_VALIDATION_CHECK_ALL_EXT = 0,
14699 VK_VALIDATION_CHECK_SHADERS_EXT = 1,
14700 VK_VALIDATION_CHECK_MAX_ENUM_EXT = 0x7FFFFFFF
14701} VkValidationCheckEXT;
14702typedef struct VkValidationFlagsEXT {
14703 VkStructureType sType;
14704 const void* pNext;
14705 uint32_t disabledValidationCheckCount;
14706 const VkValidationCheckEXT* pDisabledValidationChecks;
14707} VkValidationFlagsEXT;
14708
14709
14710
14711// VK_EXT_shader_subgroup_ballot is a preprocessor guard. Do not pass it to API calls.
14712#define VK_EXT_shader_subgroup_ballot 1
14713#define VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION 1
14714#define VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME "VK_EXT_shader_subgroup_ballot"
14715
14716
14717// VK_EXT_shader_subgroup_vote is a preprocessor guard. Do not pass it to API calls.
14718#define VK_EXT_shader_subgroup_vote 1
14719#define VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION 1
14720#define VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME "VK_EXT_shader_subgroup_vote"
14721
14722
14723// VK_EXT_texture_compression_astc_hdr is a preprocessor guard. Do not pass it to API calls.
14724#define VK_EXT_texture_compression_astc_hdr 1
14725#define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION 1
14726#define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME "VK_EXT_texture_compression_astc_hdr"
14727typedef VkPhysicalDeviceTextureCompressionASTCHDRFeatures VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT;
14728
14729
14730
14731// VK_EXT_astc_decode_mode is a preprocessor guard. Do not pass it to API calls.
14732#define VK_EXT_astc_decode_mode 1
14733#define VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION 1
14734#define VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME "VK_EXT_astc_decode_mode"
14735typedef struct VkImageViewASTCDecodeModeEXT {
14736 VkStructureType sType;
14737 const void* pNext;
14738 VkFormat decodeMode;
14739} VkImageViewASTCDecodeModeEXT;
14740
14741typedef struct VkPhysicalDeviceASTCDecodeFeaturesEXT {
14742 VkStructureType sType;
14743 void* pNext;
14744 VkBool32 decodeModeSharedExponent;
14745} VkPhysicalDeviceASTCDecodeFeaturesEXT;
14746
14747
14748
14749// VK_EXT_pipeline_robustness is a preprocessor guard. Do not pass it to API calls.
14750#define VK_EXT_pipeline_robustness 1
14751#define VK_EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION 1
14752#define VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_pipeline_robustness"
14753typedef VkPipelineRobustnessBufferBehavior VkPipelineRobustnessBufferBehaviorEXT;
14754
14755typedef VkPipelineRobustnessImageBehavior VkPipelineRobustnessImageBehaviorEXT;
14756
14757typedef VkPhysicalDevicePipelineRobustnessFeatures VkPhysicalDevicePipelineRobustnessFeaturesEXT;
14758
14759typedef VkPhysicalDevicePipelineRobustnessProperties VkPhysicalDevicePipelineRobustnessPropertiesEXT;
14760
14761typedef VkPipelineRobustnessCreateInfo VkPipelineRobustnessCreateInfoEXT;
14762
14763
14764
14765// VK_EXT_conditional_rendering is a preprocessor guard. Do not pass it to API calls.
14766#define VK_EXT_conditional_rendering 1
14767#define VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION 2
14768#define VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME "VK_EXT_conditional_rendering"
14769
14770typedef enum VkConditionalRenderingFlagBitsEXT {
14771 VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 0x00000001,
14772 VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
14773} VkConditionalRenderingFlagBitsEXT;
14774typedef VkFlags VkConditionalRenderingFlagsEXT;
14775typedef struct VkConditionalRenderingBeginInfoEXT {
14776 VkStructureType sType;
14777 const void* pNext;
14778 VkBuffer buffer;
14779 VkDeviceSize offset;
14780 VkConditionalRenderingFlagsEXT flags;
14781} VkConditionalRenderingBeginInfoEXT;
14782
14783typedef struct VkPhysicalDeviceConditionalRenderingFeaturesEXT {
14784 VkStructureType sType;
14785 void* pNext;
14786 VkBool32 conditionalRendering;
14787 VkBool32 inheritedConditionalRendering;
14788} VkPhysicalDeviceConditionalRenderingFeaturesEXT;
14789
14790typedef struct VkCommandBufferInheritanceConditionalRenderingInfoEXT {
14791 VkStructureType sType;
14792 const void* pNext;
14793 VkBool32 conditionalRenderingEnable;
14794} VkCommandBufferInheritanceConditionalRenderingInfoEXT;
14795
14796typedef void (VKAPI_PTR *PFN_vkCmdBeginConditionalRenderingEXT)(VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin);
14797typedef void (VKAPI_PTR *PFN_vkCmdEndConditionalRenderingEXT)(VkCommandBuffer commandBuffer);
14798
14799#ifndef VK_NO_PROTOTYPES
14800#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14801VKAPI_ATTR void VKAPI_CALL vkCmdBeginConditionalRenderingEXT(
14802 VkCommandBuffer commandBuffer,
14803 const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin);
14804#endif
14805
14806#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14807VKAPI_ATTR void VKAPI_CALL vkCmdEndConditionalRenderingEXT(
14808 VkCommandBuffer commandBuffer);
14809#endif
14810#endif
14811
14812
14813// VK_NV_clip_space_w_scaling is a preprocessor guard. Do not pass it to API calls.
14814#define VK_NV_clip_space_w_scaling 1
14815#define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1
14816#define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling"
14817typedef struct VkViewportWScalingNV {
14818 float xcoeff;
14819 float ycoeff;
14820} VkViewportWScalingNV;
14821
14822typedef struct VkPipelineViewportWScalingStateCreateInfoNV {
14823 VkStructureType sType;
14824 const void* pNext;
14825 VkBool32 viewportWScalingEnable;
14826 uint32_t viewportCount;
14827 const VkViewportWScalingNV* pViewportWScalings;
14828} VkPipelineViewportWScalingStateCreateInfoNV;
14829
14830typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWScalingNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings);
14831
14832#ifndef VK_NO_PROTOTYPES
14833#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14834VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWScalingNV(
14835 VkCommandBuffer commandBuffer,
14836 uint32_t firstViewport,
14837 uint32_t viewportCount,
14838 const VkViewportWScalingNV* pViewportWScalings);
14839#endif
14840#endif
14841
14842
14843// VK_EXT_direct_mode_display is a preprocessor guard. Do not pass it to API calls.
14844#define VK_EXT_direct_mode_display 1
14845#define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1
14846#define VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME "VK_EXT_direct_mode_display"
14847typedef VkResult (VKAPI_PTR *PFN_vkReleaseDisplayEXT)(VkPhysicalDevice physicalDevice, VkDisplayKHR display);
14848
14849#ifndef VK_NO_PROTOTYPES
14850#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14851VKAPI_ATTR VkResult VKAPI_CALL vkReleaseDisplayEXT(
14852 VkPhysicalDevice physicalDevice,
14853 VkDisplayKHR display);
14854#endif
14855#endif
14856
14857
14858// VK_EXT_display_surface_counter is a preprocessor guard. Do not pass it to API calls.
14859#define VK_EXT_display_surface_counter 1
14860#define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1
14861#define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter"
14862
14863typedef enum VkSurfaceCounterFlagBitsEXT {
14864 VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 0x00000001,
14865 // VK_SURFACE_COUNTER_VBLANK_EXT is a legacy alias
14866 VK_SURFACE_COUNTER_VBLANK_EXT = VK_SURFACE_COUNTER_VBLANK_BIT_EXT,
14867 VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
14868} VkSurfaceCounterFlagBitsEXT;
14869typedef VkFlags VkSurfaceCounterFlagsEXT;
14870typedef struct VkSurfaceCapabilities2EXT {
14871 VkStructureType sType;
14872 void* pNext;
14873 uint32_t minImageCount;
14874 uint32_t maxImageCount;
14875 VkExtent2D currentExtent;
14876 VkExtent2D minImageExtent;
14877 VkExtent2D maxImageExtent;
14878 uint32_t maxImageArrayLayers;
14879 VkSurfaceTransformFlagsKHR supportedTransforms;
14880 VkSurfaceTransformFlagBitsKHR currentTransform;
14881 VkCompositeAlphaFlagsKHR supportedCompositeAlpha;
14882 VkImageUsageFlags supportedUsageFlags;
14883 VkSurfaceCounterFlagsEXT supportedSurfaceCounters;
14884} VkSurfaceCapabilities2EXT;
14885
14886typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
14887
14888#ifndef VK_NO_PROTOTYPES
14889#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14890VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2EXT(
14891 VkPhysicalDevice physicalDevice,
14892 VkSurfaceKHR surface,
14893 VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
14894#endif
14895#endif
14896
14897
14898// VK_EXT_display_control is a preprocessor guard. Do not pass it to API calls.
14899#define VK_EXT_display_control 1
14900#define VK_EXT_DISPLAY_CONTROL_SPEC_VERSION 1
14901#define VK_EXT_DISPLAY_CONTROL_EXTENSION_NAME "VK_EXT_display_control"
14902
14903typedef enum VkDisplayPowerStateEXT {
14904 VK_DISPLAY_POWER_STATE_OFF_EXT = 0,
14905 VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1,
14906 VK_DISPLAY_POWER_STATE_ON_EXT = 2,
14907 VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 0x7FFFFFFF
14908} VkDisplayPowerStateEXT;
14909
14910typedef enum VkDeviceEventTypeEXT {
14911 VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0,
14912 VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
14913} VkDeviceEventTypeEXT;
14914
14915typedef enum VkDisplayEventTypeEXT {
14916 VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0,
14917 VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
14918} VkDisplayEventTypeEXT;
14919typedef struct VkDisplayPowerInfoEXT {
14920 VkStructureType sType;
14921 const void* pNext;
14922 VkDisplayPowerStateEXT powerState;
14923} VkDisplayPowerInfoEXT;
14924
14925typedef struct VkDeviceEventInfoEXT {
14926 VkStructureType sType;
14927 const void* pNext;
14928 VkDeviceEventTypeEXT deviceEvent;
14929} VkDeviceEventInfoEXT;
14930
14931typedef struct VkDisplayEventInfoEXT {
14932 VkStructureType sType;
14933 const void* pNext;
14934 VkDisplayEventTypeEXT displayEvent;
14935} VkDisplayEventInfoEXT;
14936
14937typedef struct VkSwapchainCounterCreateInfoEXT {
14938 VkStructureType sType;
14939 const void* pNext;
14940 VkSurfaceCounterFlagsEXT surfaceCounters;
14941} VkSwapchainCounterCreateInfoEXT;
14942
14943typedef VkResult (VKAPI_PTR *PFN_vkDisplayPowerControlEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo);
14944typedef VkResult (VKAPI_PTR *PFN_vkRegisterDeviceEventEXT)(VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
14945typedef VkResult (VKAPI_PTR *PFN_vkRegisterDisplayEventEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
14946typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainCounterEXT)(VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue);
14947
14948#ifndef VK_NO_PROTOTYPES
14949#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14950VKAPI_ATTR VkResult VKAPI_CALL vkDisplayPowerControlEXT(
14951 VkDevice device,
14952 VkDisplayKHR display,
14953 const VkDisplayPowerInfoEXT* pDisplayPowerInfo);
14954#endif
14955
14956#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14957VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDeviceEventEXT(
14958 VkDevice device,
14959 const VkDeviceEventInfoEXT* pDeviceEventInfo,
14960 const VkAllocationCallbacks* pAllocator,
14961 VkFence* pFence);
14962#endif
14963
14964#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14965VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDisplayEventEXT(
14966 VkDevice device,
14967 VkDisplayKHR display,
14968 const VkDisplayEventInfoEXT* pDisplayEventInfo,
14969 const VkAllocationCallbacks* pAllocator,
14970 VkFence* pFence);
14971#endif
14972
14973#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14974VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainCounterEXT(
14975 VkDevice device,
14976 VkSwapchainKHR swapchain,
14977 VkSurfaceCounterFlagBitsEXT counter,
14978 uint64_t* pCounterValue);
14979#endif
14980#endif
14981
14982
14983// VK_GOOGLE_display_timing is a preprocessor guard. Do not pass it to API calls.
14984#define VK_GOOGLE_display_timing 1
14985#define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1
14986#define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing"
14987typedef struct VkRefreshCycleDurationGOOGLE {
14988 uint64_t refreshDuration;
14989} VkRefreshCycleDurationGOOGLE;
14990
14991typedef struct VkPastPresentationTimingGOOGLE {
14992 uint32_t presentID;
14993 uint64_t desiredPresentTime;
14994 uint64_t actualPresentTime;
14995 uint64_t earliestPresentTime;
14996 uint64_t presentMargin;
14997} VkPastPresentationTimingGOOGLE;
14998
14999typedef struct VkPresentTimeGOOGLE {
15000 uint32_t presentID;
15001 uint64_t desiredPresentTime;
15002} VkPresentTimeGOOGLE;
15003
15004typedef struct VkPresentTimesInfoGOOGLE {
15005 VkStructureType sType;
15006 const void* pNext;
15007 uint32_t swapchainCount;
15008 const VkPresentTimeGOOGLE* pTimes;
15009} VkPresentTimesInfoGOOGLE;
15010
15011typedef VkResult (VKAPI_PTR *PFN_vkGetRefreshCycleDurationGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties);
15012typedef VkResult (VKAPI_PTR *PFN_vkGetPastPresentationTimingGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings);
15013
15014#ifndef VK_NO_PROTOTYPES
15015#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15016VKAPI_ATTR VkResult VKAPI_CALL vkGetRefreshCycleDurationGOOGLE(
15017 VkDevice device,
15018 VkSwapchainKHR swapchain,
15019 VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties);
15020#endif
15021
15022#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15023VKAPI_ATTR VkResult VKAPI_CALL vkGetPastPresentationTimingGOOGLE(
15024 VkDevice device,
15025 VkSwapchainKHR swapchain,
15026 uint32_t* pPresentationTimingCount,
15027 VkPastPresentationTimingGOOGLE* pPresentationTimings);
15028#endif
15029#endif
15030
15031
15032// VK_NV_sample_mask_override_coverage is a preprocessor guard. Do not pass it to API calls.
15033#define VK_NV_sample_mask_override_coverage 1
15034#define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION 1
15035#define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME "VK_NV_sample_mask_override_coverage"
15036
15037
15038// VK_NV_geometry_shader_passthrough is a preprocessor guard. Do not pass it to API calls.
15039#define VK_NV_geometry_shader_passthrough 1
15040#define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION 1
15041#define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME "VK_NV_geometry_shader_passthrough"
15042
15043
15044// VK_NV_viewport_array2 is a preprocessor guard. Do not pass it to API calls.
15045#define VK_NV_viewport_array2 1
15046#define VK_NV_VIEWPORT_ARRAY_2_SPEC_VERSION 1
15047#define VK_NV_VIEWPORT_ARRAY_2_EXTENSION_NAME "VK_NV_viewport_array2"
15048// VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION is a legacy alias
15049#define VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION VK_NV_VIEWPORT_ARRAY_2_SPEC_VERSION
15050// VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME is a legacy alias
15051#define VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME VK_NV_VIEWPORT_ARRAY_2_EXTENSION_NAME
15052
15053
15054// VK_NVX_multiview_per_view_attributes is a preprocessor guard. Do not pass it to API calls.
15055#define VK_NVX_multiview_per_view_attributes 1
15056#define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION 1
15057#define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes"
15058typedef struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
15059 VkStructureType sType;
15060 void* pNext;
15061 VkBool32 perViewPositionAllComponents;
15062} VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
15063
15064typedef struct VkMultiviewPerViewAttributesInfoNVX {
15065 VkStructureType sType;
15066 const void* pNext;
15067 VkBool32 perViewAttributes;
15068 VkBool32 perViewAttributesPositionXOnly;
15069} VkMultiviewPerViewAttributesInfoNVX;
15070
15071
15072
15073// VK_NV_viewport_swizzle is a preprocessor guard. Do not pass it to API calls.
15074#define VK_NV_viewport_swizzle 1
15075#define VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION 1
15076#define VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME "VK_NV_viewport_swizzle"
15077
15078typedef enum VkViewportCoordinateSwizzleNV {
15079 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0,
15080 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1,
15081 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2,
15082 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3,
15083 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4,
15084 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5,
15085 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6,
15086 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7,
15087 VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 0x7FFFFFFF
15088} VkViewportCoordinateSwizzleNV;
15089typedef VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV;
15090typedef struct VkViewportSwizzleNV {
15091 VkViewportCoordinateSwizzleNV x;
15092 VkViewportCoordinateSwizzleNV y;
15093 VkViewportCoordinateSwizzleNV z;
15094 VkViewportCoordinateSwizzleNV w;
15095} VkViewportSwizzleNV;
15096
15097typedef struct VkPipelineViewportSwizzleStateCreateInfoNV {
15098 VkStructureType sType;
15099 const void* pNext;
15100 VkPipelineViewportSwizzleStateCreateFlagsNV flags;
15101 uint32_t viewportCount;
15102 const VkViewportSwizzleNV* pViewportSwizzles;
15103} VkPipelineViewportSwizzleStateCreateInfoNV;
15104
15105
15106
15107// VK_EXT_discard_rectangles is a preprocessor guard. Do not pass it to API calls.
15108#define VK_EXT_discard_rectangles 1
15109#define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 2
15110#define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles"
15111
15112typedef enum VkDiscardRectangleModeEXT {
15113 VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0,
15114 VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1,
15115 VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
15116} VkDiscardRectangleModeEXT;
15117typedef VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT;
15118typedef struct VkPhysicalDeviceDiscardRectanglePropertiesEXT {
15119 VkStructureType sType;
15120 void* pNext;
15121 uint32_t maxDiscardRectangles;
15122} VkPhysicalDeviceDiscardRectanglePropertiesEXT;
15123
15124typedef struct VkPipelineDiscardRectangleStateCreateInfoEXT {
15125 VkStructureType sType;
15126 const void* pNext;
15127 VkPipelineDiscardRectangleStateCreateFlagsEXT flags;
15128 VkDiscardRectangleModeEXT discardRectangleMode;
15129 uint32_t discardRectangleCount;
15130 const VkRect2D* pDiscardRectangles;
15131} VkPipelineDiscardRectangleStateCreateInfoEXT;
15132
15133typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEXT)(VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles);
15134typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 discardRectangleEnable);
15135typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleModeEXT)(VkCommandBuffer commandBuffer, VkDiscardRectangleModeEXT discardRectangleMode);
15136
15137#ifndef VK_NO_PROTOTYPES
15138#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15139VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEXT(
15140 VkCommandBuffer commandBuffer,
15141 uint32_t firstDiscardRectangle,
15142 uint32_t discardRectangleCount,
15143 const VkRect2D* pDiscardRectangles);
15144#endif
15145
15146#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15147VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEnableEXT(
15148 VkCommandBuffer commandBuffer,
15149 VkBool32 discardRectangleEnable);
15150#endif
15151
15152#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15153VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleModeEXT(
15154 VkCommandBuffer commandBuffer,
15155 VkDiscardRectangleModeEXT discardRectangleMode);
15156#endif
15157#endif
15158
15159
15160// VK_EXT_conservative_rasterization is a preprocessor guard. Do not pass it to API calls.
15161#define VK_EXT_conservative_rasterization 1
15162#define VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION 1
15163#define VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME "VK_EXT_conservative_rasterization"
15164
15165typedef enum VkConservativeRasterizationModeEXT {
15166 VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0,
15167 VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1,
15168 VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2,
15169 VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
15170} VkConservativeRasterizationModeEXT;
15171typedef VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT;
15172typedef struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT {
15173 VkStructureType sType;
15174 void* pNext;
15175 float primitiveOverestimationSize;
15176 float maxExtraPrimitiveOverestimationSize;
15177 float extraPrimitiveOverestimationSizeGranularity;
15178 VkBool32 primitiveUnderestimation;
15179 VkBool32 conservativePointAndLineRasterization;
15180 VkBool32 degenerateTrianglesRasterized;
15181 VkBool32 degenerateLinesRasterized;
15182 VkBool32 fullyCoveredFragmentShaderInputVariable;
15183 VkBool32 conservativeRasterizationPostDepthCoverage;
15184} VkPhysicalDeviceConservativeRasterizationPropertiesEXT;
15185
15186typedef struct VkPipelineRasterizationConservativeStateCreateInfoEXT {
15187 VkStructureType sType;
15188 const void* pNext;
15189 VkPipelineRasterizationConservativeStateCreateFlagsEXT flags;
15190 VkConservativeRasterizationModeEXT conservativeRasterizationMode;
15191 float extraPrimitiveOverestimationSize;
15192} VkPipelineRasterizationConservativeStateCreateInfoEXT;
15193
15194
15195
15196// VK_EXT_depth_clip_enable is a preprocessor guard. Do not pass it to API calls.
15197#define VK_EXT_depth_clip_enable 1
15198#define VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION 1
15199#define VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME "VK_EXT_depth_clip_enable"
15200typedef VkFlags VkPipelineRasterizationDepthClipStateCreateFlagsEXT;
15201typedef struct VkPhysicalDeviceDepthClipEnableFeaturesEXT {
15202 VkStructureType sType;
15203 void* pNext;
15204 VkBool32 depthClipEnable;
15205} VkPhysicalDeviceDepthClipEnableFeaturesEXT;
15206
15207typedef struct VkPipelineRasterizationDepthClipStateCreateInfoEXT {
15208 VkStructureType sType;
15209 const void* pNext;
15210 VkPipelineRasterizationDepthClipStateCreateFlagsEXT flags;
15211 VkBool32 depthClipEnable;
15212} VkPipelineRasterizationDepthClipStateCreateInfoEXT;
15213
15214
15215
15216// VK_EXT_swapchain_colorspace is a preprocessor guard. Do not pass it to API calls.
15217#define VK_EXT_swapchain_colorspace 1
15218#define VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION 5
15219#define VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace"
15220
15221
15222// VK_EXT_hdr_metadata is a preprocessor guard. Do not pass it to API calls.
15223#define VK_EXT_hdr_metadata 1
15224#define VK_EXT_HDR_METADATA_SPEC_VERSION 3
15225#define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata"
15226typedef struct VkXYColorEXT {
15227 float x;
15228 float y;
15229} VkXYColorEXT;
15230
15231typedef struct VkHdrMetadataEXT {
15232 VkStructureType sType;
15233 const void* pNext;
15234 VkXYColorEXT displayPrimaryRed;
15235 VkXYColorEXT displayPrimaryGreen;
15236 VkXYColorEXT displayPrimaryBlue;
15237 VkXYColorEXT whitePoint;
15238 float maxLuminance;
15239 float minLuminance;
15240 float maxContentLightLevel;
15241 float maxFrameAverageLightLevel;
15242} VkHdrMetadataEXT;
15243
15244typedef void (VKAPI_PTR *PFN_vkSetHdrMetadataEXT)(VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata);
15245
15246#ifndef VK_NO_PROTOTYPES
15247#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15248VKAPI_ATTR void VKAPI_CALL vkSetHdrMetadataEXT(
15249 VkDevice device,
15250 uint32_t swapchainCount,
15251 const VkSwapchainKHR* pSwapchains,
15252 const VkHdrMetadataEXT* pMetadata);
15253#endif
15254#endif
15255
15256
15257// VK_IMG_relaxed_line_rasterization is a preprocessor guard. Do not pass it to API calls.
15258#define VK_IMG_relaxed_line_rasterization 1
15259#define VK_IMG_RELAXED_LINE_RASTERIZATION_SPEC_VERSION 1
15260#define VK_IMG_RELAXED_LINE_RASTERIZATION_EXTENSION_NAME "VK_IMG_relaxed_line_rasterization"
15261typedef struct VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG {
15262 VkStructureType sType;
15263 void* pNext;
15264 VkBool32 relaxedLineRasterization;
15265} VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG;
15266
15267
15268
15269// VK_EXT_external_memory_dma_buf is a preprocessor guard. Do not pass it to API calls.
15270#define VK_EXT_external_memory_dma_buf 1
15271#define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION 1
15272#define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME "VK_EXT_external_memory_dma_buf"
15273
15274
15275// VK_EXT_queue_family_foreign is a preprocessor guard. Do not pass it to API calls.
15276#define VK_EXT_queue_family_foreign 1
15277#define VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION 1
15278#define VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME "VK_EXT_queue_family_foreign"
15279#define VK_QUEUE_FAMILY_FOREIGN_EXT (~2U)
15280
15281
15282// VK_EXT_debug_utils is a preprocessor guard. Do not pass it to API calls.
15283#define VK_EXT_debug_utils 1
15284VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugUtilsMessengerEXT)
15285#define VK_EXT_DEBUG_UTILS_SPEC_VERSION 2
15286#define VK_EXT_DEBUG_UTILS_EXTENSION_NAME "VK_EXT_debug_utils"
15287typedef VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT;
15288
15289typedef enum VkDebugUtilsMessageSeverityFlagBitsEXT {
15290 VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001,
15291 VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0x00000010,
15292 VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0x00000100,
15293 VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000,
15294 VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
15295} VkDebugUtilsMessageSeverityFlagBitsEXT;
15296
15297typedef enum VkDebugUtilsMessageTypeFlagBitsEXT {
15298 VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001,
15299 VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0x00000002,
15300 VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0x00000004,
15301 VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT = 0x00000008,
15302 VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
15303} VkDebugUtilsMessageTypeFlagBitsEXT;
15304typedef VkFlags VkDebugUtilsMessageTypeFlagsEXT;
15305typedef VkFlags VkDebugUtilsMessageSeverityFlagsEXT;
15306typedef VkFlags VkDebugUtilsMessengerCreateFlagsEXT;
15307typedef struct VkDebugUtilsLabelEXT {
15308 VkStructureType sType;
15309 const void* pNext;
15310 const char* pLabelName;
15311 float color[4];
15312} VkDebugUtilsLabelEXT;
15313
15314typedef struct VkDebugUtilsObjectNameInfoEXT {
15315 VkStructureType sType;
15316 const void* pNext;
15317 VkObjectType objectType;
15318 uint64_t objectHandle;
15319 const char* pObjectName;
15320} VkDebugUtilsObjectNameInfoEXT;
15321
15322typedef struct VkDebugUtilsMessengerCallbackDataEXT {
15323 VkStructureType sType;
15324 const void* pNext;
15325 VkDebugUtilsMessengerCallbackDataFlagsEXT flags;
15326 const char* pMessageIdName;
15327 int32_t messageIdNumber;
15328 const char* pMessage;
15329 uint32_t queueLabelCount;
15330 const VkDebugUtilsLabelEXT* pQueueLabels;
15331 uint32_t cmdBufLabelCount;
15332 const VkDebugUtilsLabelEXT* pCmdBufLabels;
15333 uint32_t objectCount;
15334 const VkDebugUtilsObjectNameInfoEXT* pObjects;
15335} VkDebugUtilsMessengerCallbackDataEXT;
15336
15337typedef VkBool32 (VKAPI_PTR *PFN_vkDebugUtilsMessengerCallbackEXT)(
15338 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
15339 VkDebugUtilsMessageTypeFlagsEXT messageTypes,
15340 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData,
15341 void* pUserData);
15342
15343typedef struct VkDebugUtilsMessengerCreateInfoEXT {
15344 VkStructureType sType;
15345 const void* pNext;
15346 VkDebugUtilsMessengerCreateFlagsEXT flags;
15347 VkDebugUtilsMessageSeverityFlagsEXT messageSeverity;
15348 VkDebugUtilsMessageTypeFlagsEXT messageType;
15349 PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback;
15350 void* pUserData;
15351} VkDebugUtilsMessengerCreateInfoEXT;
15352
15353typedef struct VkDebugUtilsObjectTagInfoEXT {
15354 VkStructureType sType;
15355 const void* pNext;
15356 VkObjectType objectType;
15357 uint64_t objectHandle;
15358 uint64_t tagName;
15359 size_t tagSize;
15360 const void* pTag;
15361} VkDebugUtilsObjectTagInfoEXT;
15362
15363typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectNameEXT)(VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo);
15364typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectTagEXT)(VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo);
15365typedef void (VKAPI_PTR *PFN_vkQueueBeginDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo);
15366typedef void (VKAPI_PTR *PFN_vkQueueEndDebugUtilsLabelEXT)(VkQueue queue);
15367typedef void (VKAPI_PTR *PFN_vkQueueInsertDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo);
15368typedef void (VKAPI_PTR *PFN_vkCmdBeginDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo);
15369typedef void (VKAPI_PTR *PFN_vkCmdEndDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer);
15370typedef void (VKAPI_PTR *PFN_vkCmdInsertDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo);
15371typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugUtilsMessengerEXT)(VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugUtilsMessengerEXT* pMessenger);
15372typedef void (VKAPI_PTR *PFN_vkDestroyDebugUtilsMessengerEXT)(VkInstance instance, VkDebugUtilsMessengerEXT messenger, const VkAllocationCallbacks* pAllocator);
15373typedef void (VKAPI_PTR *PFN_vkSubmitDebugUtilsMessageEXT)(VkInstance instance, VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData);
15374
15375#ifndef VK_NO_PROTOTYPES
15376#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15377VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectNameEXT(
15378 VkDevice device,
15379 const VkDebugUtilsObjectNameInfoEXT* pNameInfo);
15380#endif
15381
15382#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15383VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectTagEXT(
15384 VkDevice device,
15385 const VkDebugUtilsObjectTagInfoEXT* pTagInfo);
15386#endif
15387
15388#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15389VKAPI_ATTR void VKAPI_CALL vkQueueBeginDebugUtilsLabelEXT(
15390 VkQueue queue,
15391 const VkDebugUtilsLabelEXT* pLabelInfo);
15392#endif
15393
15394#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15395VKAPI_ATTR void VKAPI_CALL vkQueueEndDebugUtilsLabelEXT(
15396 VkQueue queue);
15397#endif
15398
15399#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15400VKAPI_ATTR void VKAPI_CALL vkQueueInsertDebugUtilsLabelEXT(
15401 VkQueue queue,
15402 const VkDebugUtilsLabelEXT* pLabelInfo);
15403#endif
15404
15405#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15406VKAPI_ATTR void VKAPI_CALL vkCmdBeginDebugUtilsLabelEXT(
15407 VkCommandBuffer commandBuffer,
15408 const VkDebugUtilsLabelEXT* pLabelInfo);
15409#endif
15410
15411#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15412VKAPI_ATTR void VKAPI_CALL vkCmdEndDebugUtilsLabelEXT(
15413 VkCommandBuffer commandBuffer);
15414#endif
15415
15416#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15417VKAPI_ATTR void VKAPI_CALL vkCmdInsertDebugUtilsLabelEXT(
15418 VkCommandBuffer commandBuffer,
15419 const VkDebugUtilsLabelEXT* pLabelInfo);
15420#endif
15421
15422#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15423VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugUtilsMessengerEXT(
15424 VkInstance instance,
15425 const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
15426 const VkAllocationCallbacks* pAllocator,
15427 VkDebugUtilsMessengerEXT* pMessenger);
15428#endif
15429
15430#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15431VKAPI_ATTR void VKAPI_CALL vkDestroyDebugUtilsMessengerEXT(
15432 VkInstance instance,
15433 VkDebugUtilsMessengerEXT messenger,
15434 const VkAllocationCallbacks* pAllocator);
15435#endif
15436
15437#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15438VKAPI_ATTR void VKAPI_CALL vkSubmitDebugUtilsMessageEXT(
15439 VkInstance instance,
15440 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
15441 VkDebugUtilsMessageTypeFlagsEXT messageTypes,
15442 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData);
15443#endif
15444#endif
15445
15446
15447// VK_EXT_sampler_filter_minmax is a preprocessor guard. Do not pass it to API calls.
15448#define VK_EXT_sampler_filter_minmax 1
15449#define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 2
15450#define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax"
15451typedef VkSamplerReductionMode VkSamplerReductionModeEXT;
15452
15453typedef VkSamplerReductionModeCreateInfo VkSamplerReductionModeCreateInfoEXT;
15454
15455typedef VkPhysicalDeviceSamplerFilterMinmaxProperties VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT;
15456
15457
15458
15459// VK_AMD_gpu_shader_int16 is a preprocessor guard. Do not pass it to API calls.
15460#define VK_AMD_gpu_shader_int16 1
15461#define VK_AMD_GPU_SHADER_INT16_SPEC_VERSION 2
15462#define VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME "VK_AMD_gpu_shader_int16"
15463
15464
15465// VK_AMD_mixed_attachment_samples is a preprocessor guard. Do not pass it to API calls.
15466#define VK_AMD_mixed_attachment_samples 1
15467#define VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION 1
15468#define VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME "VK_AMD_mixed_attachment_samples"
15469typedef struct VkAttachmentSampleCountInfoAMD {
15470 VkStructureType sType;
15471 const void* pNext;
15472 uint32_t colorAttachmentCount;
15473 const VkSampleCountFlagBits* pColorAttachmentSamples;
15474 VkSampleCountFlagBits depthStencilAttachmentSamples;
15475} VkAttachmentSampleCountInfoAMD;
15476
15477
15478
15479// VK_AMD_shader_fragment_mask is a preprocessor guard. Do not pass it to API calls.
15480#define VK_AMD_shader_fragment_mask 1
15481#define VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION 1
15482#define VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME "VK_AMD_shader_fragment_mask"
15483
15484
15485// VK_EXT_inline_uniform_block is a preprocessor guard. Do not pass it to API calls.
15486#define VK_EXT_inline_uniform_block 1
15487#define VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION 1
15488#define VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME "VK_EXT_inline_uniform_block"
15489typedef VkPhysicalDeviceInlineUniformBlockFeatures VkPhysicalDeviceInlineUniformBlockFeaturesEXT;
15490
15491typedef VkPhysicalDeviceInlineUniformBlockProperties VkPhysicalDeviceInlineUniformBlockPropertiesEXT;
15492
15493typedef VkWriteDescriptorSetInlineUniformBlock VkWriteDescriptorSetInlineUniformBlockEXT;
15494
15495typedef VkDescriptorPoolInlineUniformBlockCreateInfo VkDescriptorPoolInlineUniformBlockCreateInfoEXT;
15496
15497
15498
15499// VK_EXT_shader_stencil_export is a preprocessor guard. Do not pass it to API calls.
15500#define VK_EXT_shader_stencil_export 1
15501#define VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION 1
15502#define VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME "VK_EXT_shader_stencil_export"
15503
15504
15505// VK_EXT_sample_locations is a preprocessor guard. Do not pass it to API calls.
15506#define VK_EXT_sample_locations 1
15507#define VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION 1
15508#define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations"
15509typedef struct VkSampleLocationEXT {
15510 float x;
15511 float y;
15512} VkSampleLocationEXT;
15513
15514typedef struct VkSampleLocationsInfoEXT {
15515 VkStructureType sType;
15516 const void* pNext;
15517 VkSampleCountFlagBits sampleLocationsPerPixel;
15518 VkExtent2D sampleLocationGridSize;
15519 uint32_t sampleLocationsCount;
15520 const VkSampleLocationEXT* pSampleLocations;
15521} VkSampleLocationsInfoEXT;
15522
15523typedef struct VkAttachmentSampleLocationsEXT {
15524 uint32_t attachmentIndex;
15525 VkSampleLocationsInfoEXT sampleLocationsInfo;
15526} VkAttachmentSampleLocationsEXT;
15527
15528typedef struct VkSubpassSampleLocationsEXT {
15529 uint32_t subpassIndex;
15530 VkSampleLocationsInfoEXT sampleLocationsInfo;
15531} VkSubpassSampleLocationsEXT;
15532
15533typedef struct VkRenderPassSampleLocationsBeginInfoEXT {
15534 VkStructureType sType;
15535 const void* pNext;
15536 uint32_t attachmentInitialSampleLocationsCount;
15537 const VkAttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations;
15538 uint32_t postSubpassSampleLocationsCount;
15539 const VkSubpassSampleLocationsEXT* pPostSubpassSampleLocations;
15540} VkRenderPassSampleLocationsBeginInfoEXT;
15541
15542typedef struct VkPipelineSampleLocationsStateCreateInfoEXT {
15543 VkStructureType sType;
15544 const void* pNext;
15545 VkBool32 sampleLocationsEnable;
15546 VkSampleLocationsInfoEXT sampleLocationsInfo;
15547} VkPipelineSampleLocationsStateCreateInfoEXT;
15548
15549typedef struct VkPhysicalDeviceSampleLocationsPropertiesEXT {
15550 VkStructureType sType;
15551 void* pNext;
15552 VkSampleCountFlags sampleLocationSampleCounts;
15553 VkExtent2D maxSampleLocationGridSize;
15554 float sampleLocationCoordinateRange[2];
15555 uint32_t sampleLocationSubPixelBits;
15556 VkBool32 variableSampleLocations;
15557} VkPhysicalDeviceSampleLocationsPropertiesEXT;
15558
15559typedef struct VkMultisamplePropertiesEXT {
15560 VkStructureType sType;
15561 void* pNext;
15562 VkExtent2D maxSampleLocationGridSize;
15563} VkMultisamplePropertiesEXT;
15564
15565typedef void (VKAPI_PTR *PFN_vkCmdSetSampleLocationsEXT)(VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo);
15566typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)(VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties);
15567
15568#ifndef VK_NO_PROTOTYPES
15569#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15570VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleLocationsEXT(
15571 VkCommandBuffer commandBuffer,
15572 const VkSampleLocationsInfoEXT* pSampleLocationsInfo);
15573#endif
15574
15575#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15576VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMultisamplePropertiesEXT(
15577 VkPhysicalDevice physicalDevice,
15578 VkSampleCountFlagBits samples,
15579 VkMultisamplePropertiesEXT* pMultisampleProperties);
15580#endif
15581#endif
15582
15583
15584// VK_EXT_blend_operation_advanced is a preprocessor guard. Do not pass it to API calls.
15585#define VK_EXT_blend_operation_advanced 1
15586#define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2
15587#define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced"
15588
15589typedef enum VkBlendOverlapEXT {
15590 VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0,
15591 VK_BLEND_OVERLAP_DISJOINT_EXT = 1,
15592 VK_BLEND_OVERLAP_CONJOINT_EXT = 2,
15593 VK_BLEND_OVERLAP_MAX_ENUM_EXT = 0x7FFFFFFF
15594} VkBlendOverlapEXT;
15595typedef struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT {
15596 VkStructureType sType;
15597 void* pNext;
15598 VkBool32 advancedBlendCoherentOperations;
15599} VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT;
15600
15601typedef struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT {
15602 VkStructureType sType;
15603 void* pNext;
15604 uint32_t advancedBlendMaxColorAttachments;
15605 VkBool32 advancedBlendIndependentBlend;
15606 VkBool32 advancedBlendNonPremultipliedSrcColor;
15607 VkBool32 advancedBlendNonPremultipliedDstColor;
15608 VkBool32 advancedBlendCorrelatedOverlap;
15609 VkBool32 advancedBlendAllOperations;
15610} VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT;
15611
15612typedef struct VkPipelineColorBlendAdvancedStateCreateInfoEXT {
15613 VkStructureType sType;
15614 const void* pNext;
15615 VkBool32 srcPremultiplied;
15616 VkBool32 dstPremultiplied;
15617 VkBlendOverlapEXT blendOverlap;
15618} VkPipelineColorBlendAdvancedStateCreateInfoEXT;
15619
15620
15621
15622// VK_NV_fragment_coverage_to_color is a preprocessor guard. Do not pass it to API calls.
15623#define VK_NV_fragment_coverage_to_color 1
15624#define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION 1
15625#define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME "VK_NV_fragment_coverage_to_color"
15626typedef VkFlags VkPipelineCoverageToColorStateCreateFlagsNV;
15627typedef struct VkPipelineCoverageToColorStateCreateInfoNV {
15628 VkStructureType sType;
15629 const void* pNext;
15630 VkPipelineCoverageToColorStateCreateFlagsNV flags;
15631 VkBool32 coverageToColorEnable;
15632 uint32_t coverageToColorLocation;
15633} VkPipelineCoverageToColorStateCreateInfoNV;
15634
15635
15636
15637// VK_NV_framebuffer_mixed_samples is a preprocessor guard. Do not pass it to API calls.
15638#define VK_NV_framebuffer_mixed_samples 1
15639#define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION 1
15640#define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME "VK_NV_framebuffer_mixed_samples"
15641
15642typedef enum VkCoverageModulationModeNV {
15643 VK_COVERAGE_MODULATION_MODE_NONE_NV = 0,
15644 VK_COVERAGE_MODULATION_MODE_RGB_NV = 1,
15645 VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2,
15646 VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3,
15647 VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 0x7FFFFFFF
15648} VkCoverageModulationModeNV;
15649typedef VkFlags VkPipelineCoverageModulationStateCreateFlagsNV;
15650typedef struct VkPipelineCoverageModulationStateCreateInfoNV {
15651 VkStructureType sType;
15652 const void* pNext;
15653 VkPipelineCoverageModulationStateCreateFlagsNV flags;
15654 VkCoverageModulationModeNV coverageModulationMode;
15655 VkBool32 coverageModulationTableEnable;
15656 uint32_t coverageModulationTableCount;
15657 const float* pCoverageModulationTable;
15658} VkPipelineCoverageModulationStateCreateInfoNV;
15659
15660typedef VkAttachmentSampleCountInfoAMD VkAttachmentSampleCountInfoNV;
15661
15662
15663
15664// VK_NV_fill_rectangle is a preprocessor guard. Do not pass it to API calls.
15665#define VK_NV_fill_rectangle 1
15666#define VK_NV_FILL_RECTANGLE_SPEC_VERSION 1
15667#define VK_NV_FILL_RECTANGLE_EXTENSION_NAME "VK_NV_fill_rectangle"
15668
15669
15670// VK_NV_shader_sm_builtins is a preprocessor guard. Do not pass it to API calls.
15671#define VK_NV_shader_sm_builtins 1
15672#define VK_NV_SHADER_SM_BUILTINS_SPEC_VERSION 1
15673#define VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME "VK_NV_shader_sm_builtins"
15674typedef struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV {
15675 VkStructureType sType;
15676 void* pNext;
15677 uint32_t shaderSMCount;
15678 uint32_t shaderWarpsPerSM;
15679} VkPhysicalDeviceShaderSMBuiltinsPropertiesNV;
15680
15681typedef struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV {
15682 VkStructureType sType;
15683 void* pNext;
15684 VkBool32 shaderSMBuiltins;
15685} VkPhysicalDeviceShaderSMBuiltinsFeaturesNV;
15686
15687
15688
15689// VK_EXT_post_depth_coverage is a preprocessor guard. Do not pass it to API calls.
15690#define VK_EXT_post_depth_coverage 1
15691#define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1
15692#define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage"
15693
15694
15695// VK_EXT_image_drm_format_modifier is a preprocessor guard. Do not pass it to API calls.
15696#define VK_EXT_image_drm_format_modifier 1
15697#define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION 2
15698#define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME "VK_EXT_image_drm_format_modifier"
15699typedef struct VkDrmFormatModifierPropertiesEXT {
15700 uint64_t drmFormatModifier;
15701 uint32_t drmFormatModifierPlaneCount;
15702 VkFormatFeatureFlags drmFormatModifierTilingFeatures;
15703} VkDrmFormatModifierPropertiesEXT;
15704
15705typedef struct VkDrmFormatModifierPropertiesListEXT {
15706 VkStructureType sType;
15707 void* pNext;
15708 uint32_t drmFormatModifierCount;
15709 VkDrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties;
15710} VkDrmFormatModifierPropertiesListEXT;
15711
15712typedef struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT {
15713 VkStructureType sType;
15714 const void* pNext;
15715 uint64_t drmFormatModifier;
15716 VkSharingMode sharingMode;
15717 uint32_t queueFamilyIndexCount;
15718 const uint32_t* pQueueFamilyIndices;
15719} VkPhysicalDeviceImageDrmFormatModifierInfoEXT;
15720
15721typedef struct VkImageDrmFormatModifierListCreateInfoEXT {
15722 VkStructureType sType;
15723 const void* pNext;
15724 uint32_t drmFormatModifierCount;
15725 const uint64_t* pDrmFormatModifiers;
15726} VkImageDrmFormatModifierListCreateInfoEXT;
15727
15728typedef struct VkImageDrmFormatModifierExplicitCreateInfoEXT {
15729 VkStructureType sType;
15730 const void* pNext;
15731 uint64_t drmFormatModifier;
15732 uint32_t drmFormatModifierPlaneCount;
15733 const VkSubresourceLayout* pPlaneLayouts;
15734} VkImageDrmFormatModifierExplicitCreateInfoEXT;
15735
15736typedef struct VkImageDrmFormatModifierPropertiesEXT {
15737 VkStructureType sType;
15738 void* pNext;
15739 uint64_t drmFormatModifier;
15740} VkImageDrmFormatModifierPropertiesEXT;
15741
15742typedef struct VkDrmFormatModifierProperties2EXT {
15743 uint64_t drmFormatModifier;
15744 uint32_t drmFormatModifierPlaneCount;
15745 VkFormatFeatureFlags2 drmFormatModifierTilingFeatures;
15746} VkDrmFormatModifierProperties2EXT;
15747
15748typedef struct VkDrmFormatModifierPropertiesList2EXT {
15749 VkStructureType sType;
15750 void* pNext;
15751 uint32_t drmFormatModifierCount;
15752 VkDrmFormatModifierProperties2EXT* pDrmFormatModifierProperties;
15753} VkDrmFormatModifierPropertiesList2EXT;
15754
15755typedef VkResult (VKAPI_PTR *PFN_vkGetImageDrmFormatModifierPropertiesEXT)(VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties);
15756
15757#ifndef VK_NO_PROTOTYPES
15758#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15759VKAPI_ATTR VkResult VKAPI_CALL vkGetImageDrmFormatModifierPropertiesEXT(
15760 VkDevice device,
15761 VkImage image,
15762 VkImageDrmFormatModifierPropertiesEXT* pProperties);
15763#endif
15764#endif
15765
15766
15767// VK_EXT_validation_cache is a preprocessor guard. Do not pass it to API calls.
15768#define VK_EXT_validation_cache 1
15769VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkValidationCacheEXT)
15770#define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1
15771#define VK_EXT_VALIDATION_CACHE_EXTENSION_NAME "VK_EXT_validation_cache"
15772
15773typedef enum VkValidationCacheHeaderVersionEXT {
15774 VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1,
15775 VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF
15776} VkValidationCacheHeaderVersionEXT;
15777typedef VkFlags VkValidationCacheCreateFlagsEXT;
15778typedef struct VkValidationCacheCreateInfoEXT {
15779 VkStructureType sType;
15780 const void* pNext;
15781 VkValidationCacheCreateFlagsEXT flags;
15782 size_t initialDataSize;
15783 const void* pInitialData;
15784} VkValidationCacheCreateInfoEXT;
15785
15786typedef struct VkShaderModuleValidationCacheCreateInfoEXT {
15787 VkStructureType sType;
15788 const void* pNext;
15789 VkValidationCacheEXT validationCache;
15790} VkShaderModuleValidationCacheCreateInfoEXT;
15791
15792typedef VkResult (VKAPI_PTR *PFN_vkCreateValidationCacheEXT)(VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache);
15793typedef void (VKAPI_PTR *PFN_vkDestroyValidationCacheEXT)(VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator);
15794typedef VkResult (VKAPI_PTR *PFN_vkMergeValidationCachesEXT)(VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches);
15795typedef VkResult (VKAPI_PTR *PFN_vkGetValidationCacheDataEXT)(VkDevice device, VkValidationCacheEXT validationCache, size_t* pDataSize, void* pData);
15796
15797#ifndef VK_NO_PROTOTYPES
15798#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15799VKAPI_ATTR VkResult VKAPI_CALL vkCreateValidationCacheEXT(
15800 VkDevice device,
15801 const VkValidationCacheCreateInfoEXT* pCreateInfo,
15802 const VkAllocationCallbacks* pAllocator,
15803 VkValidationCacheEXT* pValidationCache);
15804#endif
15805
15806#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15807VKAPI_ATTR void VKAPI_CALL vkDestroyValidationCacheEXT(
15808 VkDevice device,
15809 VkValidationCacheEXT validationCache,
15810 const VkAllocationCallbacks* pAllocator);
15811#endif
15812
15813#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15814VKAPI_ATTR VkResult VKAPI_CALL vkMergeValidationCachesEXT(
15815 VkDevice device,
15816 VkValidationCacheEXT dstCache,
15817 uint32_t srcCacheCount,
15818 const VkValidationCacheEXT* pSrcCaches);
15819#endif
15820
15821#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15822VKAPI_ATTR VkResult VKAPI_CALL vkGetValidationCacheDataEXT(
15823 VkDevice device,
15824 VkValidationCacheEXT validationCache,
15825 size_t* pDataSize,
15826 void* pData);
15827#endif
15828#endif
15829
15830
15831// VK_EXT_descriptor_indexing is a preprocessor guard. Do not pass it to API calls.
15832#define VK_EXT_descriptor_indexing 1
15833#define VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION 2
15834#define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME "VK_EXT_descriptor_indexing"
15835typedef VkDescriptorBindingFlagBits VkDescriptorBindingFlagBitsEXT;
15836
15837typedef VkDescriptorBindingFlags VkDescriptorBindingFlagsEXT;
15838
15839typedef VkDescriptorSetLayoutBindingFlagsCreateInfo VkDescriptorSetLayoutBindingFlagsCreateInfoEXT;
15840
15841typedef VkPhysicalDeviceDescriptorIndexingFeatures VkPhysicalDeviceDescriptorIndexingFeaturesEXT;
15842
15843typedef VkPhysicalDeviceDescriptorIndexingProperties VkPhysicalDeviceDescriptorIndexingPropertiesEXT;
15844
15845typedef VkDescriptorSetVariableDescriptorCountAllocateInfo VkDescriptorSetVariableDescriptorCountAllocateInfoEXT;
15846
15847typedef VkDescriptorSetVariableDescriptorCountLayoutSupport VkDescriptorSetVariableDescriptorCountLayoutSupportEXT;
15848
15849
15850
15851// VK_EXT_shader_viewport_index_layer is a preprocessor guard. Do not pass it to API calls.
15852#define VK_EXT_shader_viewport_index_layer 1
15853#define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION 1
15854#define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME "VK_EXT_shader_viewport_index_layer"
15855
15856
15857// VK_NV_shading_rate_image is a preprocessor guard. Do not pass it to API calls.
15858#define VK_NV_shading_rate_image 1
15859#define VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION 3
15860#define VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME "VK_NV_shading_rate_image"
15861
15862typedef enum VkShadingRatePaletteEntryNV {
15863 VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0,
15864 VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1,
15865 VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2,
15866 VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3,
15867 VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4,
15868 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5,
15869 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6,
15870 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7,
15871 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8,
15872 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9,
15873 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10,
15874 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11,
15875 VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 0x7FFFFFFF
15876} VkShadingRatePaletteEntryNV;
15877
15878typedef enum VkCoarseSampleOrderTypeNV {
15879 VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0,
15880 VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1,
15881 VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2,
15882 VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3,
15883 VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
15884} VkCoarseSampleOrderTypeNV;
15885typedef struct VkShadingRatePaletteNV {
15886 uint32_t shadingRatePaletteEntryCount;
15887 const VkShadingRatePaletteEntryNV* pShadingRatePaletteEntries;
15888} VkShadingRatePaletteNV;
15889
15890typedef struct VkPipelineViewportShadingRateImageStateCreateInfoNV {
15891 VkStructureType sType;
15892 const void* pNext;
15893 VkBool32 shadingRateImageEnable;
15894 uint32_t viewportCount;
15895 const VkShadingRatePaletteNV* pShadingRatePalettes;
15896} VkPipelineViewportShadingRateImageStateCreateInfoNV;
15897
15898typedef struct VkPhysicalDeviceShadingRateImageFeaturesNV {
15899 VkStructureType sType;
15900 void* pNext;
15901 VkBool32 shadingRateImage;
15902 VkBool32 shadingRateCoarseSampleOrder;
15903} VkPhysicalDeviceShadingRateImageFeaturesNV;
15904
15905typedef struct VkPhysicalDeviceShadingRateImagePropertiesNV {
15906 VkStructureType sType;
15907 void* pNext;
15908 VkExtent2D shadingRateTexelSize;
15909 uint32_t shadingRatePaletteSize;
15910 uint32_t shadingRateMaxCoarseSamples;
15911} VkPhysicalDeviceShadingRateImagePropertiesNV;
15912
15913typedef struct VkCoarseSampleLocationNV {
15914 uint32_t pixelX;
15915 uint32_t pixelY;
15916 uint32_t sample;
15917} VkCoarseSampleLocationNV;
15918
15919typedef struct VkCoarseSampleOrderCustomNV {
15920 VkShadingRatePaletteEntryNV shadingRate;
15921 uint32_t sampleCount;
15922 uint32_t sampleLocationCount;
15923 const VkCoarseSampleLocationNV* pSampleLocations;
15924} VkCoarseSampleOrderCustomNV;
15925
15926typedef struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV {
15927 VkStructureType sType;
15928 const void* pNext;
15929 VkCoarseSampleOrderTypeNV sampleOrderType;
15930 uint32_t customSampleOrderCount;
15931 const VkCoarseSampleOrderCustomNV* pCustomSampleOrders;
15932} VkPipelineViewportCoarseSampleOrderStateCreateInfoNV;
15933
15934typedef void (VKAPI_PTR *PFN_vkCmdBindShadingRateImageNV)(VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout);
15935typedef void (VKAPI_PTR *PFN_vkCmdSetViewportShadingRatePaletteNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes);
15936typedef void (VKAPI_PTR *PFN_vkCmdSetCoarseSampleOrderNV)(VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders);
15937
15938#ifndef VK_NO_PROTOTYPES
15939#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15940VKAPI_ATTR void VKAPI_CALL vkCmdBindShadingRateImageNV(
15941 VkCommandBuffer commandBuffer,
15942 VkImageView imageView,
15943 VkImageLayout imageLayout);
15944#endif
15945
15946#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15947VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportShadingRatePaletteNV(
15948 VkCommandBuffer commandBuffer,
15949 uint32_t firstViewport,
15950 uint32_t viewportCount,
15951 const VkShadingRatePaletteNV* pShadingRatePalettes);
15952#endif
15953
15954#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15955VKAPI_ATTR void VKAPI_CALL vkCmdSetCoarseSampleOrderNV(
15956 VkCommandBuffer commandBuffer,
15957 VkCoarseSampleOrderTypeNV sampleOrderType,
15958 uint32_t customSampleOrderCount,
15959 const VkCoarseSampleOrderCustomNV* pCustomSampleOrders);
15960#endif
15961#endif
15962
15963
15964// VK_NV_ray_tracing is a preprocessor guard. Do not pass it to API calls.
15965#define VK_NV_ray_tracing 1
15966VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureNV)
15967#define VK_NV_RAY_TRACING_SPEC_VERSION 3
15968#define VK_NV_RAY_TRACING_EXTENSION_NAME "VK_NV_ray_tracing"
15969#define VK_SHADER_UNUSED_KHR (~0U)
15970#define VK_SHADER_UNUSED_NV VK_SHADER_UNUSED_KHR
15971
15972typedef enum VkRayTracingShaderGroupTypeKHR {
15973 VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0,
15974 VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1,
15975 VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2,
15976 VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR,
15977 VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR,
15978 VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR,
15979 VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
15980} VkRayTracingShaderGroupTypeKHR;
15981typedef VkRayTracingShaderGroupTypeKHR VkRayTracingShaderGroupTypeNV;
15982
15983
15984typedef enum VkGeometryTypeKHR {
15985 VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0,
15986 VK_GEOMETRY_TYPE_AABBS_KHR = 1,
15987 VK_GEOMETRY_TYPE_INSTANCES_KHR = 2,
15988 VK_GEOMETRY_TYPE_SPHERES_NV = 1000429004,
15989 VK_GEOMETRY_TYPE_LINEAR_SWEPT_SPHERES_NV = 1000429005,
15990#ifdef VK_ENABLE_BETA_EXTENSIONS
15991 VK_GEOMETRY_TYPE_DENSE_GEOMETRY_FORMAT_TRIANGLES_AMDX = 1000478000,
15992#endif
15993 VK_GEOMETRY_TYPE_TRIANGLES_NV = VK_GEOMETRY_TYPE_TRIANGLES_KHR,
15994 VK_GEOMETRY_TYPE_AABBS_NV = VK_GEOMETRY_TYPE_AABBS_KHR,
15995 VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
15996} VkGeometryTypeKHR;
15997typedef VkGeometryTypeKHR VkGeometryTypeNV;
15998
15999
16000typedef enum VkAccelerationStructureTypeKHR {
16001 VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0,
16002 VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1,
16003 VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = 2,
16004 VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR,
16005 VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR,
16006 VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
16007} VkAccelerationStructureTypeKHR;
16008typedef VkAccelerationStructureTypeKHR VkAccelerationStructureTypeNV;
16009
16010
16011typedef enum VkCopyAccelerationStructureModeKHR {
16012 VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0,
16013 VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1,
16014 VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2,
16015 VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3,
16016 VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR,
16017 VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR,
16018 VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
16019} VkCopyAccelerationStructureModeKHR;
16020typedef VkCopyAccelerationStructureModeKHR VkCopyAccelerationStructureModeNV;
16021
16022
16023typedef enum VkAccelerationStructureMemoryRequirementsTypeNV {
16024 VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0,
16025 VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1,
16026 VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2,
16027 VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
16028} VkAccelerationStructureMemoryRequirementsTypeNV;
16029
16030typedef enum VkGeometryFlagBitsKHR {
16031 VK_GEOMETRY_OPAQUE_BIT_KHR = 0x00000001,
16032 VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 0x00000002,
16033 VK_GEOMETRY_OPAQUE_BIT_NV = VK_GEOMETRY_OPAQUE_BIT_KHR,
16034 VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR,
16035 VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
16036} VkGeometryFlagBitsKHR;
16037typedef VkFlags VkGeometryFlagsKHR;
16038typedef VkGeometryFlagsKHR VkGeometryFlagsNV;
16039
16040typedef VkGeometryFlagBitsKHR VkGeometryFlagBitsNV;
16041
16042
16043typedef enum VkGeometryInstanceFlagBitsKHR {
16044 VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 0x00000001,
16045 VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 0x00000002,
16046 VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 0x00000004,
16047 VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 0x00000008,
16048 VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_BIT_EXT = 0x00000010,
16049 VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_BIT_EXT = 0x00000020,
16050 VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR,
16051 VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR,
16052 VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR,
16053 VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR,
16054 VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR,
16055 // VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT is a legacy alias
16056 VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT = VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_BIT_EXT,
16057 // VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT is a legacy alias
16058 VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT = VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_BIT_EXT,
16059 VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
16060} VkGeometryInstanceFlagBitsKHR;
16061typedef VkFlags VkGeometryInstanceFlagsKHR;
16062typedef VkGeometryInstanceFlagsKHR VkGeometryInstanceFlagsNV;
16063
16064typedef VkGeometryInstanceFlagBitsKHR VkGeometryInstanceFlagBitsNV;
16065
16066
16067typedef enum VkBuildAccelerationStructureFlagBitsKHR {
16068 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 0x00000001,
16069 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 0x00000002,
16070 VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 0x00000004,
16071 VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 0x00000008,
16072 VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 0x00000010,
16073 VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 0x00000020,
16074 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_BIT_EXT = 0x00000040,
16075 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_BIT_EXT = 0x00000080,
16076 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_BIT_EXT = 0x00000100,
16077#ifdef VK_ENABLE_BETA_EXTENSIONS
16078 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_BIT_NV = 0x00000200,
16079#endif
16080 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_BIT_KHR = 0x00000800,
16081 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_CLUSTER_OPACITY_MICROMAPS_BIT_NV = 0x00001000,
16082 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,
16083 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,
16084 VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR,
16085 VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR,
16086 VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR,
16087 // VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT is a legacy alias
16088 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_BIT_EXT,
16089 // VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT is a legacy alias
16090 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_BIT_EXT,
16091 // VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT is a legacy alias
16092 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_BIT_EXT,
16093#ifdef VK_ENABLE_BETA_EXTENSIONS
16094 // VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV is a legacy alias
16095 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_BIT_NV,
16096#endif
16097 // VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR is a legacy alias
16098 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_BIT_KHR,
16099 VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
16100} VkBuildAccelerationStructureFlagBitsKHR;
16101typedef VkFlags VkBuildAccelerationStructureFlagsKHR;
16102typedef VkBuildAccelerationStructureFlagsKHR VkBuildAccelerationStructureFlagsNV;
16103
16104typedef VkBuildAccelerationStructureFlagBitsKHR VkBuildAccelerationStructureFlagBitsNV;
16105
16106typedef struct VkRayTracingShaderGroupCreateInfoNV {
16107 VkStructureType sType;
16108 const void* pNext;
16109 VkRayTracingShaderGroupTypeKHR type;
16110 uint32_t generalShader;
16111 uint32_t closestHitShader;
16112 uint32_t anyHitShader;
16113 uint32_t intersectionShader;
16114} VkRayTracingShaderGroupCreateInfoNV;
16115
16116typedef struct VkRayTracingPipelineCreateInfoNV {
16117 VkStructureType sType;
16118 const void* pNext;
16119 VkPipelineCreateFlags flags;
16120 uint32_t stageCount;
16121 const VkPipelineShaderStageCreateInfo* pStages;
16122 uint32_t groupCount;
16123 const VkRayTracingShaderGroupCreateInfoNV* pGroups;
16124 uint32_t maxRecursionDepth;
16125 VkPipelineLayout layout;
16126 VkPipeline basePipelineHandle;
16127 int32_t basePipelineIndex;
16128} VkRayTracingPipelineCreateInfoNV;
16129
16130typedef struct VkGeometryTrianglesNV {
16131 VkStructureType sType;
16132 const void* pNext;
16133 VkBuffer vertexData;
16134 VkDeviceSize vertexOffset;
16135 uint32_t vertexCount;
16136 VkDeviceSize vertexStride;
16137 VkFormat vertexFormat;
16138 VkBuffer indexData;
16139 VkDeviceSize indexOffset;
16140 uint32_t indexCount;
16141 VkIndexType indexType;
16142 VkBuffer transformData;
16143 VkDeviceSize transformOffset;
16144} VkGeometryTrianglesNV;
16145
16146typedef struct VkGeometryAABBNV {
16147 VkStructureType sType;
16148 const void* pNext;
16149 VkBuffer aabbData;
16150 uint32_t numAABBs;
16151 uint32_t stride;
16152 VkDeviceSize offset;
16153} VkGeometryAABBNV;
16154
16155typedef struct VkGeometryDataNV {
16156 VkGeometryTrianglesNV triangles;
16157 VkGeometryAABBNV aabbs;
16158} VkGeometryDataNV;
16159
16160typedef struct VkGeometryNV {
16161 VkStructureType sType;
16162 const void* pNext;
16163 VkGeometryTypeKHR geometryType;
16164 VkGeometryDataNV geometry;
16165 VkGeometryFlagsKHR flags;
16166} VkGeometryNV;
16167
16168typedef struct VkAccelerationStructureInfoNV {
16169 VkStructureType sType;
16170 const void* pNext;
16171 VkAccelerationStructureTypeNV type;
16172 VkBuildAccelerationStructureFlagsNV flags;
16173 uint32_t instanceCount;
16174 uint32_t geometryCount;
16175 const VkGeometryNV* pGeometries;
16176} VkAccelerationStructureInfoNV;
16177
16178typedef struct VkAccelerationStructureCreateInfoNV {
16179 VkStructureType sType;
16180 const void* pNext;
16181 VkDeviceSize compactedSize;
16182 VkAccelerationStructureInfoNV info;
16183} VkAccelerationStructureCreateInfoNV;
16184
16185typedef struct VkBindAccelerationStructureMemoryInfoNV {
16186 VkStructureType sType;
16187 const void* pNext;
16188 VkAccelerationStructureNV accelerationStructure;
16189 VkDeviceMemory memory;
16190 VkDeviceSize memoryOffset;
16191 uint32_t deviceIndexCount;
16192 const uint32_t* pDeviceIndices;
16193} VkBindAccelerationStructureMemoryInfoNV;
16194
16195typedef struct VkWriteDescriptorSetAccelerationStructureNV {
16196 VkStructureType sType;
16197 const void* pNext;
16198 uint32_t accelerationStructureCount;
16199 const VkAccelerationStructureNV* pAccelerationStructures;
16200} VkWriteDescriptorSetAccelerationStructureNV;
16201
16202typedef struct VkAccelerationStructureMemoryRequirementsInfoNV {
16203 VkStructureType sType;
16204 const void* pNext;
16205 VkAccelerationStructureMemoryRequirementsTypeNV type;
16206 VkAccelerationStructureNV accelerationStructure;
16207} VkAccelerationStructureMemoryRequirementsInfoNV;
16208
16209typedef struct VkPhysicalDeviceRayTracingPropertiesNV {
16210 VkStructureType sType;
16211 void* pNext;
16212 uint32_t shaderGroupHandleSize;
16213 uint32_t maxRecursionDepth;
16214 uint32_t maxShaderGroupStride;
16215 uint32_t shaderGroupBaseAlignment;
16216 uint64_t maxGeometryCount;
16217 uint64_t maxInstanceCount;
16218 uint64_t maxTriangleCount;
16219 uint32_t maxDescriptorSetAccelerationStructures;
16220} VkPhysicalDeviceRayTracingPropertiesNV;
16221
16222typedef struct VkTransformMatrixKHR {
16223 float matrix[3][4];
16224} VkTransformMatrixKHR;
16225
16226typedef VkTransformMatrixKHR VkTransformMatrixNV;
16227
16228typedef struct VkAabbPositionsKHR {
16229 float minX;
16230 float minY;
16231 float minZ;
16232 float maxX;
16233 float maxY;
16234 float maxZ;
16235} VkAabbPositionsKHR;
16236
16237typedef VkAabbPositionsKHR VkAabbPositionsNV;
16238
16239typedef struct VkAccelerationStructureInstanceKHR {
16240 VkTransformMatrixKHR transform;
16241 uint32_t instanceCustomIndex:24;
16242 uint32_t mask:8;
16243 uint32_t instanceShaderBindingTableRecordOffset:24;
16244 VkGeometryInstanceFlagsKHR flags:8;
16245 uint64_t accelerationStructureReference;
16246} VkAccelerationStructureInstanceKHR;
16247
16248typedef VkAccelerationStructureInstanceKHR VkAccelerationStructureInstanceNV;
16249
16250typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureNV)(VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNV* pAccelerationStructure);
16251typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, const VkAllocationCallbacks* pAllocator);
16252typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureMemoryRequirementsNV)(VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements);
16253typedef VkResult (VKAPI_PTR *PFN_vkBindAccelerationStructureMemoryNV)(VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoNV* pBindInfos);
16254typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructureNV)(VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV* pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkBuffer scratch, VkDeviceSize scratchOffset);
16255typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureNV)(VkCommandBuffer commandBuffer, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkCopyAccelerationStructureModeKHR mode);
16256typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysNV)(VkCommandBuffer commandBuffer, VkBuffer raygenShaderBindingTableBuffer, VkDeviceSize raygenShaderBindingOffset, VkBuffer missShaderBindingTableBuffer, VkDeviceSize missShaderBindingOffset, VkDeviceSize missShaderBindingStride, VkBuffer hitShaderBindingTableBuffer, VkDeviceSize hitShaderBindingOffset, VkDeviceSize hitShaderBindingStride, VkBuffer callableShaderBindingTableBuffer, VkDeviceSize callableShaderBindingOffset, VkDeviceSize callableShaderBindingStride, uint32_t width, uint32_t height, uint32_t depth);
16257typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesNV)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoNV* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
16258typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupHandlesKHR)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
16259typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupHandlesNV)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
16260typedef VkResult (VKAPI_PTR *PFN_vkGetAccelerationStructureHandleNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, size_t dataSize, void* pData);
16261typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesNV)(VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureNV* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
16262typedef VkResult (VKAPI_PTR *PFN_vkCompileDeferredNV)(VkDevice device, VkPipeline pipeline, uint32_t shader);
16263
16264#ifndef VK_NO_PROTOTYPES
16265#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16266VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureNV(
16267 VkDevice device,
16268 const VkAccelerationStructureCreateInfoNV* pCreateInfo,
16269 const VkAllocationCallbacks* pAllocator,
16270 VkAccelerationStructureNV* pAccelerationStructure);
16271#endif
16272
16273#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16274VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureNV(
16275 VkDevice device,
16276 VkAccelerationStructureNV accelerationStructure,
16277 const VkAllocationCallbacks* pAllocator);
16278#endif
16279
16280#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16281VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureMemoryRequirementsNV(
16282 VkDevice device,
16283 const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo,
16284 VkMemoryRequirements2KHR* pMemoryRequirements);
16285#endif
16286
16287#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16288VKAPI_ATTR VkResult VKAPI_CALL vkBindAccelerationStructureMemoryNV(
16289 VkDevice device,
16290 uint32_t bindInfoCount,
16291 const VkBindAccelerationStructureMemoryInfoNV* pBindInfos);
16292#endif
16293
16294#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16295VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructureNV(
16296 VkCommandBuffer commandBuffer,
16297 const VkAccelerationStructureInfoNV* pInfo,
16298 VkBuffer instanceData,
16299 VkDeviceSize instanceOffset,
16300 VkBool32 update,
16301 VkAccelerationStructureNV dst,
16302 VkAccelerationStructureNV src,
16303 VkBuffer scratch,
16304 VkDeviceSize scratchOffset);
16305#endif
16306
16307#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16308VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureNV(
16309 VkCommandBuffer commandBuffer,
16310 VkAccelerationStructureNV dst,
16311 VkAccelerationStructureNV src,
16312 VkCopyAccelerationStructureModeKHR mode);
16313#endif
16314
16315#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16316VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysNV(
16317 VkCommandBuffer commandBuffer,
16318 VkBuffer raygenShaderBindingTableBuffer,
16319 VkDeviceSize raygenShaderBindingOffset,
16320 VkBuffer missShaderBindingTableBuffer,
16321 VkDeviceSize missShaderBindingOffset,
16322 VkDeviceSize missShaderBindingStride,
16323 VkBuffer hitShaderBindingTableBuffer,
16324 VkDeviceSize hitShaderBindingOffset,
16325 VkDeviceSize hitShaderBindingStride,
16326 VkBuffer callableShaderBindingTableBuffer,
16327 VkDeviceSize callableShaderBindingOffset,
16328 VkDeviceSize callableShaderBindingStride,
16329 uint32_t width,
16330 uint32_t height,
16331 uint32_t depth);
16332#endif
16333
16334#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16335VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesNV(
16336 VkDevice device,
16337 VkPipelineCache pipelineCache,
16338 uint32_t createInfoCount,
16339 const VkRayTracingPipelineCreateInfoNV* pCreateInfos,
16340 const VkAllocationCallbacks* pAllocator,
16341 VkPipeline* pPipelines);
16342#endif
16343
16344#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16345VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesKHR(
16346 VkDevice device,
16347 VkPipeline pipeline,
16348 uint32_t firstGroup,
16349 uint32_t groupCount,
16350 size_t dataSize,
16351 void* pData);
16352#endif
16353
16354#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16355VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesNV(
16356 VkDevice device,
16357 VkPipeline pipeline,
16358 uint32_t firstGroup,
16359 uint32_t groupCount,
16360 size_t dataSize,
16361 void* pData);
16362#endif
16363
16364#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16365VKAPI_ATTR VkResult VKAPI_CALL vkGetAccelerationStructureHandleNV(
16366 VkDevice device,
16367 VkAccelerationStructureNV accelerationStructure,
16368 size_t dataSize,
16369 void* pData);
16370#endif
16371
16372#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16373VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructuresPropertiesNV(
16374 VkCommandBuffer commandBuffer,
16375 uint32_t accelerationStructureCount,
16376 const VkAccelerationStructureNV* pAccelerationStructures,
16377 VkQueryType queryType,
16378 VkQueryPool queryPool,
16379 uint32_t firstQuery);
16380#endif
16381
16382#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16383VKAPI_ATTR VkResult VKAPI_CALL vkCompileDeferredNV(
16384 VkDevice device,
16385 VkPipeline pipeline,
16386 uint32_t shader);
16387#endif
16388#endif
16389
16390
16391// VK_NV_representative_fragment_test is a preprocessor guard. Do not pass it to API calls.
16392#define VK_NV_representative_fragment_test 1
16393#define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION 2
16394#define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME "VK_NV_representative_fragment_test"
16395typedef struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV {
16396 VkStructureType sType;
16397 void* pNext;
16398 VkBool32 representativeFragmentTest;
16399} VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV;
16400
16401typedef struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV {
16402 VkStructureType sType;
16403 const void* pNext;
16404 VkBool32 representativeFragmentTestEnable;
16405} VkPipelineRepresentativeFragmentTestStateCreateInfoNV;
16406
16407
16408
16409// VK_EXT_filter_cubic is a preprocessor guard. Do not pass it to API calls.
16410#define VK_EXT_filter_cubic 1
16411#define VK_EXT_FILTER_CUBIC_SPEC_VERSION 3
16412#define VK_EXT_FILTER_CUBIC_EXTENSION_NAME "VK_EXT_filter_cubic"
16413typedef struct VkPhysicalDeviceImageViewImageFormatInfoEXT {
16414 VkStructureType sType;
16415 void* pNext;
16416 VkImageViewType imageViewType;
16417} VkPhysicalDeviceImageViewImageFormatInfoEXT;
16418
16419typedef struct VkFilterCubicImageViewImageFormatPropertiesEXT {
16420 VkStructureType sType;
16421 void* pNext;
16422 VkBool32 filterCubic;
16423 VkBool32 filterCubicMinmax;
16424} VkFilterCubicImageViewImageFormatPropertiesEXT;
16425
16426
16427
16428// VK_QCOM_render_pass_shader_resolve is a preprocessor guard. Do not pass it to API calls.
16429#define VK_QCOM_render_pass_shader_resolve 1
16430#define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_SPEC_VERSION 4
16431#define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_EXTENSION_NAME "VK_QCOM_render_pass_shader_resolve"
16432
16433
16434// VK_EXT_global_priority is a preprocessor guard. Do not pass it to API calls.
16435#define VK_EXT_global_priority 1
16436#define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 2
16437#define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority"
16438typedef VkQueueGlobalPriority VkQueueGlobalPriorityEXT;
16439
16440typedef VkDeviceQueueGlobalPriorityCreateInfo VkDeviceQueueGlobalPriorityCreateInfoEXT;
16441
16442
16443
16444// VK_EXT_external_memory_host is a preprocessor guard. Do not pass it to API calls.
16445#define VK_EXT_external_memory_host 1
16446#define VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION 1
16447#define VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME "VK_EXT_external_memory_host"
16448typedef struct VkImportMemoryHostPointerInfoEXT {
16449 VkStructureType sType;
16450 const void* pNext;
16451 VkExternalMemoryHandleTypeFlagBits handleType;
16452 void* pHostPointer;
16453} VkImportMemoryHostPointerInfoEXT;
16454
16455typedef struct VkMemoryHostPointerPropertiesEXT {
16456 VkStructureType sType;
16457 void* pNext;
16458 uint32_t memoryTypeBits;
16459} VkMemoryHostPointerPropertiesEXT;
16460
16461typedef struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT {
16462 VkStructureType sType;
16463 void* pNext;
16464 VkDeviceSize minImportedHostPointerAlignment;
16465} VkPhysicalDeviceExternalMemoryHostPropertiesEXT;
16466
16467typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryHostPointerPropertiesEXT)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties);
16468
16469#ifndef VK_NO_PROTOTYPES
16470#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16471VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryHostPointerPropertiesEXT(
16472 VkDevice device,
16473 VkExternalMemoryHandleTypeFlagBits handleType,
16474 const void* pHostPointer,
16475 VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties);
16476#endif
16477#endif
16478
16479
16480// VK_AMD_buffer_marker is a preprocessor guard. Do not pass it to API calls.
16481#define VK_AMD_buffer_marker 1
16482#define VK_AMD_BUFFER_MARKER_SPEC_VERSION 1
16483#define VK_AMD_BUFFER_MARKER_EXTENSION_NAME "VK_AMD_buffer_marker"
16484typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarkerAMD)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker);
16485typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarker2AMD)(VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker);
16486
16487#ifndef VK_NO_PROTOTYPES
16488#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16489VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarkerAMD(
16490 VkCommandBuffer commandBuffer,
16491 VkPipelineStageFlagBits pipelineStage,
16492 VkBuffer dstBuffer,
16493 VkDeviceSize dstOffset,
16494 uint32_t marker);
16495#endif
16496
16497#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16498VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarker2AMD(
16499 VkCommandBuffer commandBuffer,
16500 VkPipelineStageFlags2 stage,
16501 VkBuffer dstBuffer,
16502 VkDeviceSize dstOffset,
16503 uint32_t marker);
16504#endif
16505#endif
16506
16507
16508// VK_AMD_pipeline_compiler_control is a preprocessor guard. Do not pass it to API calls.
16509#define VK_AMD_pipeline_compiler_control 1
16510#define VK_AMD_PIPELINE_COMPILER_CONTROL_SPEC_VERSION 1
16511#define VK_AMD_PIPELINE_COMPILER_CONTROL_EXTENSION_NAME "VK_AMD_pipeline_compiler_control"
16512
16513typedef enum VkPipelineCompilerControlFlagBitsAMD {
16514 VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD = 0x7FFFFFFF
16515} VkPipelineCompilerControlFlagBitsAMD;
16516typedef VkFlags VkPipelineCompilerControlFlagsAMD;
16517typedef struct VkPipelineCompilerControlCreateInfoAMD {
16518 VkStructureType sType;
16519 const void* pNext;
16520 VkPipelineCompilerControlFlagsAMD compilerControlFlags;
16521} VkPipelineCompilerControlCreateInfoAMD;
16522
16523
16524
16525// VK_EXT_calibrated_timestamps is a preprocessor guard. Do not pass it to API calls.
16526#define VK_EXT_calibrated_timestamps 1
16527#define VK_EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION 2
16528#define VK_EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME "VK_EXT_calibrated_timestamps"
16529typedef VkTimeDomainKHR VkTimeDomainEXT;
16530
16531typedef VkCalibratedTimestampInfoKHR VkCalibratedTimestampInfoEXT;
16532
16533typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainKHR* pTimeDomains);
16534typedef VkResult (VKAPI_PTR *PFN_vkGetCalibratedTimestampsEXT)(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation);
16535
16536#ifndef VK_NO_PROTOTYPES
16537#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16538VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(
16539 VkPhysicalDevice physicalDevice,
16540 uint32_t* pTimeDomainCount,
16541 VkTimeDomainKHR* pTimeDomains);
16542#endif
16543
16544#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16545VKAPI_ATTR VkResult VKAPI_CALL vkGetCalibratedTimestampsEXT(
16546 VkDevice device,
16547 uint32_t timestampCount,
16548 const VkCalibratedTimestampInfoKHR* pTimestampInfos,
16549 uint64_t* pTimestamps,
16550 uint64_t* pMaxDeviation);
16551#endif
16552#endif
16553
16554
16555// VK_AMD_shader_core_properties is a preprocessor guard. Do not pass it to API calls.
16556#define VK_AMD_shader_core_properties 1
16557#define VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION 2
16558#define VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_AMD_shader_core_properties"
16559typedef struct VkPhysicalDeviceShaderCorePropertiesAMD {
16560 VkStructureType sType;
16561 void* pNext;
16562 uint32_t shaderEngineCount;
16563 uint32_t shaderArraysPerEngineCount;
16564 uint32_t computeUnitsPerShaderArray;
16565 uint32_t simdPerComputeUnit;
16566 uint32_t wavefrontsPerSimd;
16567 uint32_t wavefrontSize;
16568 uint32_t sgprsPerSimd;
16569 uint32_t minSgprAllocation;
16570 uint32_t maxSgprAllocation;
16571 uint32_t sgprAllocationGranularity;
16572 uint32_t vgprsPerSimd;
16573 uint32_t minVgprAllocation;
16574 uint32_t maxVgprAllocation;
16575 uint32_t vgprAllocationGranularity;
16576} VkPhysicalDeviceShaderCorePropertiesAMD;
16577
16578
16579
16580// VK_AMD_memory_overallocation_behavior is a preprocessor guard. Do not pass it to API calls.
16581#define VK_AMD_memory_overallocation_behavior 1
16582#define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_SPEC_VERSION 1
16583#define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_EXTENSION_NAME "VK_AMD_memory_overallocation_behavior"
16584
16585typedef enum VkMemoryOverallocationBehaviorAMD {
16586 VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0,
16587 VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1,
16588 VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2,
16589 VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 0x7FFFFFFF
16590} VkMemoryOverallocationBehaviorAMD;
16591typedef struct VkDeviceMemoryOverallocationCreateInfoAMD {
16592 VkStructureType sType;
16593 const void* pNext;
16594 VkMemoryOverallocationBehaviorAMD overallocationBehavior;
16595} VkDeviceMemoryOverallocationCreateInfoAMD;
16596
16597
16598
16599// VK_EXT_vertex_attribute_divisor is a preprocessor guard. Do not pass it to API calls.
16600#define VK_EXT_vertex_attribute_divisor 1
16601#define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 3
16602#define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_EXT_vertex_attribute_divisor"
16603typedef struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT {
16604 VkStructureType sType;
16605 void* pNext;
16606 uint32_t maxVertexAttribDivisor;
16607} VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT;
16608
16609typedef VkVertexInputBindingDivisorDescription VkVertexInputBindingDivisorDescriptionEXT;
16610
16611typedef VkPipelineVertexInputDivisorStateCreateInfo VkPipelineVertexInputDivisorStateCreateInfoEXT;
16612
16613typedef VkPhysicalDeviceVertexAttributeDivisorFeatures VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT;
16614
16615
16616
16617// VK_EXT_pipeline_creation_feedback is a preprocessor guard. Do not pass it to API calls.
16618#define VK_EXT_pipeline_creation_feedback 1
16619#define VK_EXT_PIPELINE_CREATION_FEEDBACK_SPEC_VERSION 1
16620#define VK_EXT_PIPELINE_CREATION_FEEDBACK_EXTENSION_NAME "VK_EXT_pipeline_creation_feedback"
16621typedef VkPipelineCreationFeedbackFlagBits VkPipelineCreationFeedbackFlagBitsEXT;
16622
16623typedef VkPipelineCreationFeedbackFlags VkPipelineCreationFeedbackFlagsEXT;
16624
16625typedef VkPipelineCreationFeedbackCreateInfo VkPipelineCreationFeedbackCreateInfoEXT;
16626
16627typedef VkPipelineCreationFeedback VkPipelineCreationFeedbackEXT;
16628
16629
16630
16631// VK_NV_shader_subgroup_partitioned is a preprocessor guard. Do not pass it to API calls.
16632#define VK_NV_shader_subgroup_partitioned 1
16633#define VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION 1
16634#define VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME "VK_NV_shader_subgroup_partitioned"
16635
16636
16637// VK_NV_compute_shader_derivatives is a preprocessor guard. Do not pass it to API calls.
16638#define VK_NV_compute_shader_derivatives 1
16639#define VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION 1
16640#define VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_NV_compute_shader_derivatives"
16641typedef VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR VkPhysicalDeviceComputeShaderDerivativesFeaturesNV;
16642
16643
16644
16645// VK_NV_mesh_shader is a preprocessor guard. Do not pass it to API calls.
16646#define VK_NV_mesh_shader 1
16647#define VK_NV_MESH_SHADER_SPEC_VERSION 1
16648#define VK_NV_MESH_SHADER_EXTENSION_NAME "VK_NV_mesh_shader"
16649typedef struct VkPhysicalDeviceMeshShaderFeaturesNV {
16650 VkStructureType sType;
16651 void* pNext;
16652 VkBool32 taskShader;
16653 VkBool32 meshShader;
16654} VkPhysicalDeviceMeshShaderFeaturesNV;
16655
16656typedef struct VkPhysicalDeviceMeshShaderPropertiesNV {
16657 VkStructureType sType;
16658 void* pNext;
16659 uint32_t maxDrawMeshTasksCount;
16660 uint32_t maxTaskWorkGroupInvocations;
16661 uint32_t maxTaskWorkGroupSize[3];
16662 uint32_t maxTaskTotalMemorySize;
16663 uint32_t maxTaskOutputCount;
16664 uint32_t maxMeshWorkGroupInvocations;
16665 uint32_t maxMeshWorkGroupSize[3];
16666 uint32_t maxMeshTotalMemorySize;
16667 uint32_t maxMeshOutputVertices;
16668 uint32_t maxMeshOutputPrimitives;
16669 uint32_t maxMeshMultiviewViewCount;
16670 uint32_t meshOutputPerVertexGranularity;
16671 uint32_t meshOutputPerPrimitiveGranularity;
16672} VkPhysicalDeviceMeshShaderPropertiesNV;
16673
16674typedef struct VkDrawMeshTasksIndirectCommandNV {
16675 uint32_t taskCount;
16676 uint32_t firstTask;
16677} VkDrawMeshTasksIndirectCommandNV;
16678
16679typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksNV)(VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask);
16680typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
16681typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectCountNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
16682
16683#ifndef VK_NO_PROTOTYPES
16684#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16685VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksNV(
16686 VkCommandBuffer commandBuffer,
16687 uint32_t taskCount,
16688 uint32_t firstTask);
16689#endif
16690
16691#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16692VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectNV(
16693 VkCommandBuffer commandBuffer,
16694 VkBuffer buffer,
16695 VkDeviceSize offset,
16696 uint32_t drawCount,
16697 uint32_t stride);
16698#endif
16699
16700#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16701VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectCountNV(
16702 VkCommandBuffer commandBuffer,
16703 VkBuffer buffer,
16704 VkDeviceSize offset,
16705 VkBuffer countBuffer,
16706 VkDeviceSize countBufferOffset,
16707 uint32_t maxDrawCount,
16708 uint32_t stride);
16709#endif
16710#endif
16711
16712
16713// VK_NV_fragment_shader_barycentric is a preprocessor guard. Do not pass it to API calls.
16714#define VK_NV_fragment_shader_barycentric 1
16715#define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1
16716#define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_NV_fragment_shader_barycentric"
16717typedef VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV;
16718
16719
16720
16721// VK_NV_shader_image_footprint is a preprocessor guard. Do not pass it to API calls.
16722#define VK_NV_shader_image_footprint 1
16723#define VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION 2
16724#define VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME "VK_NV_shader_image_footprint"
16725typedef struct VkPhysicalDeviceShaderImageFootprintFeaturesNV {
16726 VkStructureType sType;
16727 void* pNext;
16728 VkBool32 imageFootprint;
16729} VkPhysicalDeviceShaderImageFootprintFeaturesNV;
16730
16731
16732
16733// VK_NV_scissor_exclusive is a preprocessor guard. Do not pass it to API calls.
16734#define VK_NV_scissor_exclusive 1
16735#define VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION 2
16736#define VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME "VK_NV_scissor_exclusive"
16737typedef struct VkPipelineViewportExclusiveScissorStateCreateInfoNV {
16738 VkStructureType sType;
16739 const void* pNext;
16740 uint32_t exclusiveScissorCount;
16741 const VkRect2D* pExclusiveScissors;
16742} VkPipelineViewportExclusiveScissorStateCreateInfoNV;
16743
16744typedef struct VkPhysicalDeviceExclusiveScissorFeaturesNV {
16745 VkStructureType sType;
16746 void* pNext;
16747 VkBool32 exclusiveScissor;
16748} VkPhysicalDeviceExclusiveScissorFeaturesNV;
16749
16750typedef void (VKAPI_PTR *PFN_vkCmdSetExclusiveScissorEnableNV)(VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkBool32* pExclusiveScissorEnables);
16751typedef void (VKAPI_PTR *PFN_vkCmdSetExclusiveScissorNV)(VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors);
16752
16753#ifndef VK_NO_PROTOTYPES
16754#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16755VKAPI_ATTR void VKAPI_CALL vkCmdSetExclusiveScissorEnableNV(
16756 VkCommandBuffer commandBuffer,
16757 uint32_t firstExclusiveScissor,
16758 uint32_t exclusiveScissorCount,
16759 const VkBool32* pExclusiveScissorEnables);
16760#endif
16761
16762#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16763VKAPI_ATTR void VKAPI_CALL vkCmdSetExclusiveScissorNV(
16764 VkCommandBuffer commandBuffer,
16765 uint32_t firstExclusiveScissor,
16766 uint32_t exclusiveScissorCount,
16767 const VkRect2D* pExclusiveScissors);
16768#endif
16769#endif
16770
16771
16772// VK_NV_device_diagnostic_checkpoints is a preprocessor guard. Do not pass it to API calls.
16773#define VK_NV_device_diagnostic_checkpoints 1
16774#define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION 2
16775#define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME "VK_NV_device_diagnostic_checkpoints"
16776typedef struct VkQueueFamilyCheckpointPropertiesNV {
16777 VkStructureType sType;
16778 void* pNext;
16779 VkPipelineStageFlags checkpointExecutionStageMask;
16780} VkQueueFamilyCheckpointPropertiesNV;
16781
16782typedef struct VkCheckpointDataNV {
16783 VkStructureType sType;
16784 void* pNext;
16785 VkPipelineStageFlagBits stage;
16786 void* pCheckpointMarker;
16787} VkCheckpointDataNV;
16788
16789typedef struct VkQueueFamilyCheckpointProperties2NV {
16790 VkStructureType sType;
16791 void* pNext;
16792 VkPipelineStageFlags2 checkpointExecutionStageMask;
16793} VkQueueFamilyCheckpointProperties2NV;
16794
16795typedef struct VkCheckpointData2NV {
16796 VkStructureType sType;
16797 void* pNext;
16798 VkPipelineStageFlags2 stage;
16799 void* pCheckpointMarker;
16800} VkCheckpointData2NV;
16801
16802typedef void (VKAPI_PTR *PFN_vkCmdSetCheckpointNV)(VkCommandBuffer commandBuffer, const void* pCheckpointMarker);
16803typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointDataNV)(VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData);
16804typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointData2NV)(VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointData2NV* pCheckpointData);
16805
16806#ifndef VK_NO_PROTOTYPES
16807#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16808VKAPI_ATTR void VKAPI_CALL vkCmdSetCheckpointNV(
16809 VkCommandBuffer commandBuffer,
16810 const void* pCheckpointMarker);
16811#endif
16812
16813#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16814VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointDataNV(
16815 VkQueue queue,
16816 uint32_t* pCheckpointDataCount,
16817 VkCheckpointDataNV* pCheckpointData);
16818#endif
16819
16820#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16821VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointData2NV(
16822 VkQueue queue,
16823 uint32_t* pCheckpointDataCount,
16824 VkCheckpointData2NV* pCheckpointData);
16825#endif
16826#endif
16827
16828
16829// VK_EXT_present_timing is a preprocessor guard. Do not pass it to API calls.
16830#define VK_EXT_present_timing 1
16831#define VK_EXT_PRESENT_TIMING_SPEC_VERSION 3
16832#define VK_EXT_PRESENT_TIMING_EXTENSION_NAME "VK_EXT_present_timing"
16833typedef VkFlags VkPresentStageFlagsEXT;
16834
16835typedef enum VkPresentStageFlagBitsEXT {
16836 VK_PRESENT_STAGE_QUEUE_OPERATIONS_END_BIT_EXT = 0x00000001,
16837 VK_PRESENT_STAGE_REQUEST_DEQUEUED_BIT_EXT = 0x00000002,
16838 VK_PRESENT_STAGE_IMAGE_FIRST_PIXEL_OUT_BIT_EXT = 0x00000004,
16839 VK_PRESENT_STAGE_IMAGE_FIRST_PIXEL_VISIBLE_BIT_EXT = 0x00000008,
16840 VK_PRESENT_STAGE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
16841} VkPresentStageFlagBitsEXT;
16842typedef VkFlags VkPastPresentationTimingFlagsEXT;
16843
16844typedef enum VkPastPresentationTimingFlagBitsEXT {
16845 VK_PAST_PRESENTATION_TIMING_ALLOW_PARTIAL_RESULTS_BIT_EXT = 0x00000001,
16846 VK_PAST_PRESENTATION_TIMING_ALLOW_OUT_OF_ORDER_RESULTS_BIT_EXT = 0x00000002,
16847 VK_PAST_PRESENTATION_TIMING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
16848} VkPastPresentationTimingFlagBitsEXT;
16849typedef VkFlags VkPresentTimingInfoFlagsEXT;
16850
16851typedef enum VkPresentTimingInfoFlagBitsEXT {
16852 VK_PRESENT_TIMING_INFO_PRESENT_AT_RELATIVE_TIME_BIT_EXT = 0x00000001,
16853 VK_PRESENT_TIMING_INFO_PRESENT_AT_NEAREST_REFRESH_CYCLE_BIT_EXT = 0x00000002,
16854 VK_PRESENT_TIMING_INFO_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
16855} VkPresentTimingInfoFlagBitsEXT;
16856typedef struct VkPhysicalDevicePresentTimingFeaturesEXT {
16857 VkStructureType sType;
16858 void* pNext;
16859 VkBool32 presentTiming;
16860 VkBool32 presentAtAbsoluteTime;
16861 VkBool32 presentAtRelativeTime;
16862} VkPhysicalDevicePresentTimingFeaturesEXT;
16863
16864typedef struct VkPresentTimingSurfaceCapabilitiesEXT {
16865 VkStructureType sType;
16866 void* pNext;
16867 VkBool32 presentTimingSupported;
16868 VkBool32 presentAtAbsoluteTimeSupported;
16869 VkBool32 presentAtRelativeTimeSupported;
16870 VkPresentStageFlagsEXT presentStageQueries;
16871} VkPresentTimingSurfaceCapabilitiesEXT;
16872
16873typedef struct VkSwapchainCalibratedTimestampInfoEXT {
16874 VkStructureType sType;
16875 const void* pNext;
16876 VkSwapchainKHR swapchain;
16877 VkPresentStageFlagsEXT presentStage;
16878 uint64_t timeDomainId;
16879} VkSwapchainCalibratedTimestampInfoEXT;
16880
16881typedef struct VkSwapchainTimingPropertiesEXT {
16882 VkStructureType sType;
16883 void* pNext;
16884 uint64_t refreshDuration;
16885 uint64_t refreshInterval;
16886} VkSwapchainTimingPropertiesEXT;
16887
16888typedef struct VkSwapchainTimeDomainPropertiesEXT {
16889 VkStructureType sType;
16890 void* pNext;
16891 uint32_t timeDomainCount;
16892 VkTimeDomainKHR* pTimeDomains;
16893 uint64_t* pTimeDomainIds;
16894} VkSwapchainTimeDomainPropertiesEXT;
16895
16896typedef struct VkPastPresentationTimingInfoEXT {
16897 VkStructureType sType;
16898 const void* pNext;
16899 VkPastPresentationTimingFlagsEXT flags;
16900 VkSwapchainKHR swapchain;
16901} VkPastPresentationTimingInfoEXT;
16902
16903typedef struct VkPresentStageTimeEXT {
16904 VkPresentStageFlagsEXT stage;
16905 uint64_t time;
16906} VkPresentStageTimeEXT;
16907
16908typedef struct VkPastPresentationTimingEXT {
16909 VkStructureType sType;
16910 void* pNext;
16911 uint64_t presentId;
16912 uint64_t targetTime;
16913 uint32_t presentStageCount;
16914 VkPresentStageTimeEXT* pPresentStages;
16915 VkTimeDomainKHR timeDomain;
16916 uint64_t timeDomainId;
16917 VkBool32 reportComplete;
16918} VkPastPresentationTimingEXT;
16919
16920typedef struct VkPastPresentationTimingPropertiesEXT {
16921 VkStructureType sType;
16922 void* pNext;
16923 uint64_t timingPropertiesCounter;
16924 uint64_t timeDomainsCounter;
16925 uint32_t presentationTimingCount;
16926 VkPastPresentationTimingEXT* pPresentationTimings;
16927} VkPastPresentationTimingPropertiesEXT;
16928
16929typedef struct VkPresentTimingInfoEXT {
16930 VkStructureType sType;
16931 const void* pNext;
16932 VkPresentTimingInfoFlagsEXT flags;
16933 uint64_t targetTime;
16934 uint64_t timeDomainId;
16935 VkPresentStageFlagsEXT presentStageQueries;
16936 VkPresentStageFlagsEXT targetTimeDomainPresentStage;
16937} VkPresentTimingInfoEXT;
16938
16939typedef struct VkPresentTimingsInfoEXT {
16940 VkStructureType sType;
16941 const void* pNext;
16942 uint32_t swapchainCount;
16943 const VkPresentTimingInfoEXT* pTimingInfos;
16944} VkPresentTimingsInfoEXT;
16945
16946typedef VkResult (VKAPI_PTR *PFN_vkSetSwapchainPresentTimingQueueSizeEXT)(VkDevice device, VkSwapchainKHR swapchain, uint32_t size);
16947typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainTimingPropertiesEXT)(VkDevice device, VkSwapchainKHR swapchain, VkSwapchainTimingPropertiesEXT* pSwapchainTimingProperties, uint64_t* pSwapchainTimingPropertiesCounter);
16948typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainTimeDomainPropertiesEXT)(VkDevice device, VkSwapchainKHR swapchain, VkSwapchainTimeDomainPropertiesEXT* pSwapchainTimeDomainProperties, uint64_t* pTimeDomainsCounter);
16949typedef VkResult (VKAPI_PTR *PFN_vkGetPastPresentationTimingEXT)(VkDevice device, const VkPastPresentationTimingInfoEXT* pPastPresentationTimingInfo, VkPastPresentationTimingPropertiesEXT* pPastPresentationTimingProperties);
16950
16951#ifndef VK_NO_PROTOTYPES
16952#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16953VKAPI_ATTR VkResult VKAPI_CALL vkSetSwapchainPresentTimingQueueSizeEXT(
16954 VkDevice device,
16955 VkSwapchainKHR swapchain,
16956 uint32_t size);
16957#endif
16958
16959#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16960VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainTimingPropertiesEXT(
16961 VkDevice device,
16962 VkSwapchainKHR swapchain,
16963 VkSwapchainTimingPropertiesEXT* pSwapchainTimingProperties,
16964 uint64_t* pSwapchainTimingPropertiesCounter);
16965#endif
16966
16967#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16968VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainTimeDomainPropertiesEXT(
16969 VkDevice device,
16970 VkSwapchainKHR swapchain,
16971 VkSwapchainTimeDomainPropertiesEXT* pSwapchainTimeDomainProperties,
16972 uint64_t* pTimeDomainsCounter);
16973#endif
16974
16975#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16976VKAPI_ATTR VkResult VKAPI_CALL vkGetPastPresentationTimingEXT(
16977 VkDevice device,
16978 const VkPastPresentationTimingInfoEXT* pPastPresentationTimingInfo,
16979 VkPastPresentationTimingPropertiesEXT* pPastPresentationTimingProperties);
16980#endif
16981#endif
16982
16983
16984// VK_INTEL_shader_integer_functions2 is a preprocessor guard. Do not pass it to API calls.
16985#define VK_INTEL_shader_integer_functions2 1
16986#define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION 1
16987#define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME "VK_INTEL_shader_integer_functions2"
16988typedef struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL {
16989 VkStructureType sType;
16990 void* pNext;
16991 VkBool32 shaderIntegerFunctions2;
16992} VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
16993
16994
16995
16996// VK_INTEL_performance_query is a preprocessor guard. Do not pass it to API calls.
16997#define VK_INTEL_performance_query 1
16998VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPerformanceConfigurationINTEL)
16999#define VK_INTEL_PERFORMANCE_QUERY_SPEC_VERSION 2
17000#define VK_INTEL_PERFORMANCE_QUERY_EXTENSION_NAME "VK_INTEL_performance_query"
17001
17002typedef enum VkPerformanceConfigurationTypeINTEL {
17003 VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0,
17004 VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
17005} VkPerformanceConfigurationTypeINTEL;
17006
17007typedef enum VkQueryPoolSamplingModeINTEL {
17008 VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0,
17009 VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 0x7FFFFFFF
17010} VkQueryPoolSamplingModeINTEL;
17011
17012typedef enum VkPerformanceOverrideTypeINTEL {
17013 VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0,
17014 VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1,
17015 VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
17016} VkPerformanceOverrideTypeINTEL;
17017
17018typedef enum VkPerformanceParameterTypeINTEL {
17019 VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0,
17020 VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1,
17021 VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
17022} VkPerformanceParameterTypeINTEL;
17023
17024typedef enum VkPerformanceValueTypeINTEL {
17025 VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0,
17026 VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1,
17027 VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2,
17028 VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3,
17029 VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4,
17030 VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
17031} VkPerformanceValueTypeINTEL;
17032typedef union VkPerformanceValueDataINTEL {
17033 uint32_t value32;
17034 uint64_t value64;
17035 float valueFloat;
17036 VkBool32 valueBool;
17037 const char* valueString;
17038} VkPerformanceValueDataINTEL;
17039
17040typedef struct VkPerformanceValueINTEL {
17041 VkPerformanceValueTypeINTEL type;
17042 VkPerformanceValueDataINTEL data;
17043} VkPerformanceValueINTEL;
17044
17045typedef struct VkInitializePerformanceApiInfoINTEL {
17046 VkStructureType sType;
17047 const void* pNext;
17048 void* pUserData;
17049} VkInitializePerformanceApiInfoINTEL;
17050
17051typedef struct VkQueryPoolPerformanceQueryCreateInfoINTEL {
17052 VkStructureType sType;
17053 const void* pNext;
17054 VkQueryPoolSamplingModeINTEL performanceCountersSampling;
17055} VkQueryPoolPerformanceQueryCreateInfoINTEL;
17056
17057typedef VkQueryPoolPerformanceQueryCreateInfoINTEL VkQueryPoolCreateInfoINTEL;
17058
17059typedef struct VkPerformanceMarkerInfoINTEL {
17060 VkStructureType sType;
17061 const void* pNext;
17062 uint64_t marker;
17063} VkPerformanceMarkerInfoINTEL;
17064
17065typedef struct VkPerformanceStreamMarkerInfoINTEL {
17066 VkStructureType sType;
17067 const void* pNext;
17068 uint32_t marker;
17069} VkPerformanceStreamMarkerInfoINTEL;
17070
17071typedef struct VkPerformanceOverrideInfoINTEL {
17072 VkStructureType sType;
17073 const void* pNext;
17074 VkPerformanceOverrideTypeINTEL type;
17075 VkBool32 enable;
17076 uint64_t parameter;
17077} VkPerformanceOverrideInfoINTEL;
17078
17079typedef struct VkPerformanceConfigurationAcquireInfoINTEL {
17080 VkStructureType sType;
17081 const void* pNext;
17082 VkPerformanceConfigurationTypeINTEL type;
17083} VkPerformanceConfigurationAcquireInfoINTEL;
17084
17085typedef VkResult (VKAPI_PTR *PFN_vkInitializePerformanceApiINTEL)(VkDevice device, const VkInitializePerformanceApiInfoINTEL* pInitializeInfo);
17086typedef void (VKAPI_PTR *PFN_vkUninitializePerformanceApiINTEL)(VkDevice device);
17087typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceMarkerINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceMarkerInfoINTEL* pMarkerInfo);
17088typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceStreamMarkerINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo);
17089typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceOverrideINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceOverrideInfoINTEL* pOverrideInfo);
17090typedef VkResult (VKAPI_PTR *PFN_vkAcquirePerformanceConfigurationINTEL)(VkDevice device, const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, VkPerformanceConfigurationINTEL* pConfiguration);
17091typedef VkResult (VKAPI_PTR *PFN_vkReleasePerformanceConfigurationINTEL)(VkDevice device, VkPerformanceConfigurationINTEL configuration);
17092typedef VkResult (VKAPI_PTR *PFN_vkQueueSetPerformanceConfigurationINTEL)(VkQueue queue, VkPerformanceConfigurationINTEL configuration);
17093typedef VkResult (VKAPI_PTR *PFN_vkGetPerformanceParameterINTEL)(VkDevice device, VkPerformanceParameterTypeINTEL parameter, VkPerformanceValueINTEL* pValue);
17094
17095#ifndef VK_NO_PROTOTYPES
17096#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17097VKAPI_ATTR VkResult VKAPI_CALL vkInitializePerformanceApiINTEL(
17098 VkDevice device,
17099 const VkInitializePerformanceApiInfoINTEL* pInitializeInfo);
17100#endif
17101
17102#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17103VKAPI_ATTR void VKAPI_CALL vkUninitializePerformanceApiINTEL(
17104 VkDevice device);
17105#endif
17106
17107#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17108VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceMarkerINTEL(
17109 VkCommandBuffer commandBuffer,
17110 const VkPerformanceMarkerInfoINTEL* pMarkerInfo);
17111#endif
17112
17113#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17114VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceStreamMarkerINTEL(
17115 VkCommandBuffer commandBuffer,
17116 const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo);
17117#endif
17118
17119#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17120VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceOverrideINTEL(
17121 VkCommandBuffer commandBuffer,
17122 const VkPerformanceOverrideInfoINTEL* pOverrideInfo);
17123#endif
17124
17125#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17126VKAPI_ATTR VkResult VKAPI_CALL vkAcquirePerformanceConfigurationINTEL(
17127 VkDevice device,
17128 const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo,
17129 VkPerformanceConfigurationINTEL* pConfiguration);
17130#endif
17131
17132#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17133VKAPI_ATTR VkResult VKAPI_CALL vkReleasePerformanceConfigurationINTEL(
17134 VkDevice device,
17135 VkPerformanceConfigurationINTEL configuration);
17136#endif
17137
17138#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17139VKAPI_ATTR VkResult VKAPI_CALL vkQueueSetPerformanceConfigurationINTEL(
17140 VkQueue queue,
17141 VkPerformanceConfigurationINTEL configuration);
17142#endif
17143
17144#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17145VKAPI_ATTR VkResult VKAPI_CALL vkGetPerformanceParameterINTEL(
17146 VkDevice device,
17147 VkPerformanceParameterTypeINTEL parameter,
17148 VkPerformanceValueINTEL* pValue);
17149#endif
17150#endif
17151
17152
17153// VK_EXT_pci_bus_info is a preprocessor guard. Do not pass it to API calls.
17154#define VK_EXT_pci_bus_info 1
17155#define VK_EXT_PCI_BUS_INFO_SPEC_VERSION 2
17156#define VK_EXT_PCI_BUS_INFO_EXTENSION_NAME "VK_EXT_pci_bus_info"
17157typedef struct VkPhysicalDevicePCIBusInfoPropertiesEXT {
17158 VkStructureType sType;
17159 void* pNext;
17160 uint32_t pciDomain;
17161 uint32_t pciBus;
17162 uint32_t pciDevice;
17163 uint32_t pciFunction;
17164} VkPhysicalDevicePCIBusInfoPropertiesEXT;
17165
17166
17167
17168// VK_AMD_display_native_hdr is a preprocessor guard. Do not pass it to API calls.
17169#define VK_AMD_display_native_hdr 1
17170#define VK_AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION 1
17171#define VK_AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME "VK_AMD_display_native_hdr"
17172typedef struct VkDisplayNativeHdrSurfaceCapabilitiesAMD {
17173 VkStructureType sType;
17174 void* pNext;
17175 VkBool32 localDimmingSupport;
17176} VkDisplayNativeHdrSurfaceCapabilitiesAMD;
17177
17178typedef struct VkSwapchainDisplayNativeHdrCreateInfoAMD {
17179 VkStructureType sType;
17180 const void* pNext;
17181 VkBool32 localDimmingEnable;
17182} VkSwapchainDisplayNativeHdrCreateInfoAMD;
17183
17184typedef void (VKAPI_PTR *PFN_vkSetLocalDimmingAMD)(VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable);
17185
17186#ifndef VK_NO_PROTOTYPES
17187#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17188VKAPI_ATTR void VKAPI_CALL vkSetLocalDimmingAMD(
17189 VkDevice device,
17190 VkSwapchainKHR swapChain,
17191 VkBool32 localDimmingEnable);
17192#endif
17193#endif
17194
17195
17196// VK_EXT_fragment_density_map is a preprocessor guard. Do not pass it to API calls.
17197#define VK_EXT_fragment_density_map 1
17198#define VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION 2
17199#define VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME "VK_EXT_fragment_density_map"
17200typedef struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT {
17201 VkStructureType sType;
17202 void* pNext;
17203 VkBool32 fragmentDensityMap;
17204 VkBool32 fragmentDensityMapDynamic;
17205 VkBool32 fragmentDensityMapNonSubsampledImages;
17206} VkPhysicalDeviceFragmentDensityMapFeaturesEXT;
17207
17208typedef struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT {
17209 VkStructureType sType;
17210 void* pNext;
17211 VkExtent2D minFragmentDensityTexelSize;
17212 VkExtent2D maxFragmentDensityTexelSize;
17213 VkBool32 fragmentDensityInvocations;
17214} VkPhysicalDeviceFragmentDensityMapPropertiesEXT;
17215
17216typedef struct VkRenderPassFragmentDensityMapCreateInfoEXT {
17217 VkStructureType sType;
17218 const void* pNext;
17219 VkAttachmentReference fragmentDensityMapAttachment;
17220} VkRenderPassFragmentDensityMapCreateInfoEXT;
17221
17222typedef struct VkRenderingFragmentDensityMapAttachmentInfoEXT {
17223 VkStructureType sType;
17224 const void* pNext;
17225 VkImageView imageView;
17226 VkImageLayout imageLayout;
17227} VkRenderingFragmentDensityMapAttachmentInfoEXT;
17228
17229
17230
17231// VK_EXT_scalar_block_layout is a preprocessor guard. Do not pass it to API calls.
17232#define VK_EXT_scalar_block_layout 1
17233#define VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION 1
17234#define VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME "VK_EXT_scalar_block_layout"
17235typedef VkPhysicalDeviceScalarBlockLayoutFeatures VkPhysicalDeviceScalarBlockLayoutFeaturesEXT;
17236
17237
17238
17239// VK_GOOGLE_hlsl_functionality1 is a preprocessor guard. Do not pass it to API calls.
17240#define VK_GOOGLE_hlsl_functionality1 1
17241#define VK_GOOGLE_HLSL_FUNCTIONALITY_1_SPEC_VERSION 1
17242#define VK_GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME "VK_GOOGLE_hlsl_functionality1"
17243// VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION is a legacy alias
17244#define VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION VK_GOOGLE_HLSL_FUNCTIONALITY_1_SPEC_VERSION
17245// VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME is a legacy alias
17246#define VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME VK_GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME
17247
17248
17249// VK_GOOGLE_decorate_string is a preprocessor guard. Do not pass it to API calls.
17250#define VK_GOOGLE_decorate_string 1
17251#define VK_GOOGLE_DECORATE_STRING_SPEC_VERSION 1
17252#define VK_GOOGLE_DECORATE_STRING_EXTENSION_NAME "VK_GOOGLE_decorate_string"
17253
17254
17255// VK_EXT_subgroup_size_control is a preprocessor guard. Do not pass it to API calls.
17256#define VK_EXT_subgroup_size_control 1
17257#define VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION 2
17258#define VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME "VK_EXT_subgroup_size_control"
17259typedef VkPhysicalDeviceSubgroupSizeControlFeatures VkPhysicalDeviceSubgroupSizeControlFeaturesEXT;
17260
17261typedef VkPhysicalDeviceSubgroupSizeControlProperties VkPhysicalDeviceSubgroupSizeControlPropertiesEXT;
17262
17263typedef VkPipelineShaderStageRequiredSubgroupSizeCreateInfo VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT;
17264
17265
17266
17267// VK_AMD_shader_core_properties2 is a preprocessor guard. Do not pass it to API calls.
17268#define VK_AMD_shader_core_properties2 1
17269#define VK_AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION 1
17270#define VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME "VK_AMD_shader_core_properties2"
17271
17272typedef enum VkShaderCorePropertiesFlagBitsAMD {
17273 VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD = 0x7FFFFFFF
17274} VkShaderCorePropertiesFlagBitsAMD;
17275typedef VkFlags VkShaderCorePropertiesFlagsAMD;
17276typedef struct VkPhysicalDeviceShaderCoreProperties2AMD {
17277 VkStructureType sType;
17278 void* pNext;
17279 VkShaderCorePropertiesFlagsAMD shaderCoreFeatures;
17280 uint32_t activeComputeUnitCount;
17281} VkPhysicalDeviceShaderCoreProperties2AMD;
17282
17283
17284
17285// VK_AMD_device_coherent_memory is a preprocessor guard. Do not pass it to API calls.
17286#define VK_AMD_device_coherent_memory 1
17287#define VK_AMD_DEVICE_COHERENT_MEMORY_SPEC_VERSION 1
17288#define VK_AMD_DEVICE_COHERENT_MEMORY_EXTENSION_NAME "VK_AMD_device_coherent_memory"
17289typedef struct VkPhysicalDeviceCoherentMemoryFeaturesAMD {
17290 VkStructureType sType;
17291 void* pNext;
17292 VkBool32 deviceCoherentMemory;
17293} VkPhysicalDeviceCoherentMemoryFeaturesAMD;
17294
17295
17296
17297// VK_EXT_shader_image_atomic_int64 is a preprocessor guard. Do not pass it to API calls.
17298#define VK_EXT_shader_image_atomic_int64 1
17299#define VK_EXT_SHADER_IMAGE_ATOMIC_INT64_SPEC_VERSION 1
17300#define VK_EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME "VK_EXT_shader_image_atomic_int64"
17301typedef struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT {
17302 VkStructureType sType;
17303 void* pNext;
17304 VkBool32 shaderImageInt64Atomics;
17305 VkBool32 sparseImageInt64Atomics;
17306} VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT;
17307
17308
17309
17310// VK_EXT_memory_budget is a preprocessor guard. Do not pass it to API calls.
17311#define VK_EXT_memory_budget 1
17312#define VK_EXT_MEMORY_BUDGET_SPEC_VERSION 1
17313#define VK_EXT_MEMORY_BUDGET_EXTENSION_NAME "VK_EXT_memory_budget"
17314typedef struct VkPhysicalDeviceMemoryBudgetPropertiesEXT {
17315 VkStructureType sType;
17316 void* pNext;
17317 VkDeviceSize heapBudget[VK_MAX_MEMORY_HEAPS];
17318 VkDeviceSize heapUsage[VK_MAX_MEMORY_HEAPS];
17319} VkPhysicalDeviceMemoryBudgetPropertiesEXT;
17320
17321
17322
17323// VK_EXT_memory_priority is a preprocessor guard. Do not pass it to API calls.
17324#define VK_EXT_memory_priority 1
17325#define VK_EXT_MEMORY_PRIORITY_SPEC_VERSION 1
17326#define VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME "VK_EXT_memory_priority"
17327typedef struct VkPhysicalDeviceMemoryPriorityFeaturesEXT {
17328 VkStructureType sType;
17329 void* pNext;
17330 VkBool32 memoryPriority;
17331} VkPhysicalDeviceMemoryPriorityFeaturesEXT;
17332
17333typedef struct VkMemoryPriorityAllocateInfoEXT {
17334 VkStructureType sType;
17335 const void* pNext;
17336 float priority;
17337} VkMemoryPriorityAllocateInfoEXT;
17338
17339
17340
17341// VK_NV_dedicated_allocation_image_aliasing is a preprocessor guard. Do not pass it to API calls.
17342#define VK_NV_dedicated_allocation_image_aliasing 1
17343#define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION 1
17344#define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME "VK_NV_dedicated_allocation_image_aliasing"
17345typedef struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV {
17346 VkStructureType sType;
17347 void* pNext;
17348 VkBool32 dedicatedAllocationImageAliasing;
17349} VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
17350
17351
17352
17353// VK_EXT_buffer_device_address is a preprocessor guard. Do not pass it to API calls.
17354#define VK_EXT_buffer_device_address 1
17355#define VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 2
17356#define VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_EXT_buffer_device_address"
17357typedef struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT {
17358 VkStructureType sType;
17359 void* pNext;
17360 VkBool32 bufferDeviceAddress;
17361 VkBool32 bufferDeviceAddressCaptureReplay;
17362 VkBool32 bufferDeviceAddressMultiDevice;
17363} VkPhysicalDeviceBufferDeviceAddressFeaturesEXT;
17364
17365typedef VkPhysicalDeviceBufferDeviceAddressFeaturesEXT VkPhysicalDeviceBufferAddressFeaturesEXT;
17366
17367typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoEXT;
17368
17369typedef struct VkBufferDeviceAddressCreateInfoEXT {
17370 VkStructureType sType;
17371 const void* pNext;
17372 VkDeviceAddress deviceAddress;
17373} VkBufferDeviceAddressCreateInfoEXT;
17374
17375typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddressEXT)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
17376
17377#ifndef VK_NO_PROTOTYPES
17378#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17379VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddressEXT(
17380 VkDevice device,
17381 const VkBufferDeviceAddressInfo* pInfo);
17382#endif
17383#endif
17384
17385
17386// VK_EXT_tooling_info is a preprocessor guard. Do not pass it to API calls.
17387#define VK_EXT_tooling_info 1
17388#define VK_EXT_TOOLING_INFO_SPEC_VERSION 1
17389#define VK_EXT_TOOLING_INFO_EXTENSION_NAME "VK_EXT_tooling_info"
17390typedef VkToolPurposeFlagBits VkToolPurposeFlagBitsEXT;
17391
17392typedef VkToolPurposeFlags VkToolPurposeFlagsEXT;
17393
17394typedef VkPhysicalDeviceToolProperties VkPhysicalDeviceToolPropertiesEXT;
17395
17396typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceToolPropertiesEXT)(VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties);
17397
17398#ifndef VK_NO_PROTOTYPES
17399#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17400VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceToolPropertiesEXT(
17401 VkPhysicalDevice physicalDevice,
17402 uint32_t* pToolCount,
17403 VkPhysicalDeviceToolProperties* pToolProperties);
17404#endif
17405#endif
17406
17407
17408// VK_EXT_separate_stencil_usage is a preprocessor guard. Do not pass it to API calls.
17409#define VK_EXT_separate_stencil_usage 1
17410#define VK_EXT_SEPARATE_STENCIL_USAGE_SPEC_VERSION 1
17411#define VK_EXT_SEPARATE_STENCIL_USAGE_EXTENSION_NAME "VK_EXT_separate_stencil_usage"
17412typedef VkImageStencilUsageCreateInfo VkImageStencilUsageCreateInfoEXT;
17413
17414
17415
17416// VK_EXT_validation_features is a preprocessor guard. Do not pass it to API calls.
17417#define VK_EXT_validation_features 1
17418#define VK_EXT_VALIDATION_FEATURES_SPEC_VERSION 6
17419#define VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME "VK_EXT_validation_features"
17420
17421typedef enum VkValidationFeatureEnableEXT {
17422 VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0,
17423 VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1,
17424 VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2,
17425 VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3,
17426 VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4,
17427 VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 0x7FFFFFFF
17428} VkValidationFeatureEnableEXT;
17429
17430typedef enum VkValidationFeatureDisableEXT {
17431 VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0,
17432 VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1,
17433 VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2,
17434 VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3,
17435 VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4,
17436 VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5,
17437 VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6,
17438 VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7,
17439 VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 0x7FFFFFFF
17440} VkValidationFeatureDisableEXT;
17441typedef struct VkValidationFeaturesEXT {
17442 VkStructureType sType;
17443 const void* pNext;
17444 uint32_t enabledValidationFeatureCount;
17445 const VkValidationFeatureEnableEXT* pEnabledValidationFeatures;
17446 uint32_t disabledValidationFeatureCount;
17447 const VkValidationFeatureDisableEXT* pDisabledValidationFeatures;
17448} VkValidationFeaturesEXT;
17449
17450
17451
17452// VK_NV_cooperative_matrix is a preprocessor guard. Do not pass it to API calls.
17453#define VK_NV_cooperative_matrix 1
17454#define VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION 1
17455#define VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_NV_cooperative_matrix"
17456typedef VkComponentTypeKHR VkComponentTypeNV;
17457
17458typedef VkScopeKHR VkScopeNV;
17459
17460typedef struct VkCooperativeMatrixPropertiesNV {
17461 VkStructureType sType;
17462 void* pNext;
17463 uint32_t MSize;
17464 uint32_t NSize;
17465 uint32_t KSize;
17466 VkComponentTypeNV AType;
17467 VkComponentTypeNV BType;
17468 VkComponentTypeNV CType;
17469 VkComponentTypeNV DType;
17470 VkScopeNV scope;
17471} VkCooperativeMatrixPropertiesNV;
17472
17473typedef struct VkPhysicalDeviceCooperativeMatrixFeaturesNV {
17474 VkStructureType sType;
17475 void* pNext;
17476 VkBool32 cooperativeMatrix;
17477 VkBool32 cooperativeMatrixRobustBufferAccess;
17478} VkPhysicalDeviceCooperativeMatrixFeaturesNV;
17479
17480typedef struct VkPhysicalDeviceCooperativeMatrixPropertiesNV {
17481 VkStructureType sType;
17482 void* pNext;
17483 VkShaderStageFlags cooperativeMatrixSupportedStages;
17484} VkPhysicalDeviceCooperativeMatrixPropertiesNV;
17485
17486typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties);
17487
17488#ifndef VK_NO_PROTOTYPES
17489#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17490VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(
17491 VkPhysicalDevice physicalDevice,
17492 uint32_t* pPropertyCount,
17493 VkCooperativeMatrixPropertiesNV* pProperties);
17494#endif
17495#endif
17496
17497
17498// VK_NV_coverage_reduction_mode is a preprocessor guard. Do not pass it to API calls.
17499#define VK_NV_coverage_reduction_mode 1
17500#define VK_NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION 1
17501#define VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME "VK_NV_coverage_reduction_mode"
17502
17503typedef enum VkCoverageReductionModeNV {
17504 VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0,
17505 VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1,
17506 VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 0x7FFFFFFF
17507} VkCoverageReductionModeNV;
17508typedef VkFlags VkPipelineCoverageReductionStateCreateFlagsNV;
17509typedef struct VkPhysicalDeviceCoverageReductionModeFeaturesNV {
17510 VkStructureType sType;
17511 void* pNext;
17512 VkBool32 coverageReductionMode;
17513} VkPhysicalDeviceCoverageReductionModeFeaturesNV;
17514
17515typedef struct VkPipelineCoverageReductionStateCreateInfoNV {
17516 VkStructureType sType;
17517 const void* pNext;
17518 VkPipelineCoverageReductionStateCreateFlagsNV flags;
17519 VkCoverageReductionModeNV coverageReductionMode;
17520} VkPipelineCoverageReductionStateCreateInfoNV;
17521
17522typedef struct VkFramebufferMixedSamplesCombinationNV {
17523 VkStructureType sType;
17524 void* pNext;
17525 VkCoverageReductionModeNV coverageReductionMode;
17526 VkSampleCountFlagBits rasterizationSamples;
17527 VkSampleCountFlags depthStencilSamples;
17528 VkSampleCountFlags colorSamples;
17529} VkFramebufferMixedSamplesCombinationNV;
17530
17531typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV)(VkPhysicalDevice physicalDevice, uint32_t* pCombinationCount, VkFramebufferMixedSamplesCombinationNV* pCombinations);
17532
17533#ifndef VK_NO_PROTOTYPES
17534#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17535VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
17536 VkPhysicalDevice physicalDevice,
17537 uint32_t* pCombinationCount,
17538 VkFramebufferMixedSamplesCombinationNV* pCombinations);
17539#endif
17540#endif
17541
17542
17543// VK_EXT_fragment_shader_interlock is a preprocessor guard. Do not pass it to API calls.
17544#define VK_EXT_fragment_shader_interlock 1
17545#define VK_EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION 1
17546#define VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME "VK_EXT_fragment_shader_interlock"
17547typedef struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT {
17548 VkStructureType sType;
17549 void* pNext;
17550 VkBool32 fragmentShaderSampleInterlock;
17551 VkBool32 fragmentShaderPixelInterlock;
17552 VkBool32 fragmentShaderShadingRateInterlock;
17553} VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT;
17554
17555
17556
17557// VK_EXT_ycbcr_image_arrays is a preprocessor guard. Do not pass it to API calls.
17558#define VK_EXT_ycbcr_image_arrays 1
17559#define VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION 1
17560#define VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME "VK_EXT_ycbcr_image_arrays"
17561typedef struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT {
17562 VkStructureType sType;
17563 void* pNext;
17564 VkBool32 ycbcrImageArrays;
17565} VkPhysicalDeviceYcbcrImageArraysFeaturesEXT;
17566
17567
17568
17569// VK_EXT_provoking_vertex is a preprocessor guard. Do not pass it to API calls.
17570#define VK_EXT_provoking_vertex 1
17571#define VK_EXT_PROVOKING_VERTEX_SPEC_VERSION 1
17572#define VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME "VK_EXT_provoking_vertex"
17573
17574typedef enum VkProvokingVertexModeEXT {
17575 VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = 0,
17576 VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = 1,
17577 VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
17578} VkProvokingVertexModeEXT;
17579typedef struct VkPhysicalDeviceProvokingVertexFeaturesEXT {
17580 VkStructureType sType;
17581 void* pNext;
17582 VkBool32 provokingVertexLast;
17583 VkBool32 transformFeedbackPreservesProvokingVertex;
17584} VkPhysicalDeviceProvokingVertexFeaturesEXT;
17585
17586typedef struct VkPhysicalDeviceProvokingVertexPropertiesEXT {
17587 VkStructureType sType;
17588 void* pNext;
17589 VkBool32 provokingVertexModePerPipeline;
17590 VkBool32 transformFeedbackPreservesTriangleFanProvokingVertex;
17591} VkPhysicalDeviceProvokingVertexPropertiesEXT;
17592
17593typedef struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT {
17594 VkStructureType sType;
17595 const void* pNext;
17596 VkProvokingVertexModeEXT provokingVertexMode;
17597} VkPipelineRasterizationProvokingVertexStateCreateInfoEXT;
17598
17599
17600
17601// VK_EXT_headless_surface is a preprocessor guard. Do not pass it to API calls.
17602#define VK_EXT_headless_surface 1
17603#define VK_EXT_HEADLESS_SURFACE_SPEC_VERSION 1
17604#define VK_EXT_HEADLESS_SURFACE_EXTENSION_NAME "VK_EXT_headless_surface"
17605typedef VkFlags VkHeadlessSurfaceCreateFlagsEXT;
17606typedef struct VkHeadlessSurfaceCreateInfoEXT {
17607 VkStructureType sType;
17608 const void* pNext;
17609 VkHeadlessSurfaceCreateFlagsEXT flags;
17610} VkHeadlessSurfaceCreateInfoEXT;
17611
17612typedef VkResult (VKAPI_PTR *PFN_vkCreateHeadlessSurfaceEXT)(VkInstance instance, const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
17613
17614#ifndef VK_NO_PROTOTYPES
17615#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17616VKAPI_ATTR VkResult VKAPI_CALL vkCreateHeadlessSurfaceEXT(
17617 VkInstance instance,
17618 const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo,
17619 const VkAllocationCallbacks* pAllocator,
17620 VkSurfaceKHR* pSurface);
17621#endif
17622#endif
17623
17624
17625// VK_EXT_line_rasterization is a preprocessor guard. Do not pass it to API calls.
17626#define VK_EXT_line_rasterization 1
17627#define VK_EXT_LINE_RASTERIZATION_SPEC_VERSION 1
17628#define VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME "VK_EXT_line_rasterization"
17629typedef VkLineRasterizationMode VkLineRasterizationModeEXT;
17630
17631typedef VkPhysicalDeviceLineRasterizationFeatures VkPhysicalDeviceLineRasterizationFeaturesEXT;
17632
17633typedef VkPhysicalDeviceLineRasterizationProperties VkPhysicalDeviceLineRasterizationPropertiesEXT;
17634
17635typedef VkPipelineRasterizationLineStateCreateInfo VkPipelineRasterizationLineStateCreateInfoEXT;
17636
17637typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleEXT)(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern);
17638
17639#ifndef VK_NO_PROTOTYPES
17640#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17641VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleEXT(
17642 VkCommandBuffer commandBuffer,
17643 uint32_t lineStippleFactor,
17644 uint16_t lineStipplePattern);
17645#endif
17646#endif
17647
17648
17649// VK_EXT_shader_atomic_float is a preprocessor guard. Do not pass it to API calls.
17650#define VK_EXT_shader_atomic_float 1
17651#define VK_EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION 1
17652#define VK_EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME "VK_EXT_shader_atomic_float"
17653typedef struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT {
17654 VkStructureType sType;
17655 void* pNext;
17656 VkBool32 shaderBufferFloat32Atomics;
17657 VkBool32 shaderBufferFloat32AtomicAdd;
17658 VkBool32 shaderBufferFloat64Atomics;
17659 VkBool32 shaderBufferFloat64AtomicAdd;
17660 VkBool32 shaderSharedFloat32Atomics;
17661 VkBool32 shaderSharedFloat32AtomicAdd;
17662 VkBool32 shaderSharedFloat64Atomics;
17663 VkBool32 shaderSharedFloat64AtomicAdd;
17664 VkBool32 shaderImageFloat32Atomics;
17665 VkBool32 shaderImageFloat32AtomicAdd;
17666 VkBool32 sparseImageFloat32Atomics;
17667 VkBool32 sparseImageFloat32AtomicAdd;
17668} VkPhysicalDeviceShaderAtomicFloatFeaturesEXT;
17669
17670
17671
17672// VK_EXT_host_query_reset is a preprocessor guard. Do not pass it to API calls.
17673#define VK_EXT_host_query_reset 1
17674#define VK_EXT_HOST_QUERY_RESET_SPEC_VERSION 1
17675#define VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME "VK_EXT_host_query_reset"
17676typedef VkPhysicalDeviceHostQueryResetFeatures VkPhysicalDeviceHostQueryResetFeaturesEXT;
17677
17678typedef void (VKAPI_PTR *PFN_vkResetQueryPoolEXT)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
17679
17680#ifndef VK_NO_PROTOTYPES
17681#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17682VKAPI_ATTR void VKAPI_CALL vkResetQueryPoolEXT(
17683 VkDevice device,
17684 VkQueryPool queryPool,
17685 uint32_t firstQuery,
17686 uint32_t queryCount);
17687#endif
17688#endif
17689
17690
17691// VK_EXT_index_type_uint8 is a preprocessor guard. Do not pass it to API calls.
17692#define VK_EXT_index_type_uint8 1
17693#define VK_EXT_INDEX_TYPE_UINT8_SPEC_VERSION 1
17694#define VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME "VK_EXT_index_type_uint8"
17695typedef VkPhysicalDeviceIndexTypeUint8Features VkPhysicalDeviceIndexTypeUint8FeaturesEXT;
17696
17697
17698
17699// VK_EXT_extended_dynamic_state is a preprocessor guard. Do not pass it to API calls.
17700#define VK_EXT_extended_dynamic_state 1
17701#define VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION 1
17702#define VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_extended_dynamic_state"
17703typedef struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT {
17704 VkStructureType sType;
17705 void* pNext;
17706 VkBool32 extendedDynamicState;
17707} VkPhysicalDeviceExtendedDynamicStateFeaturesEXT;
17708
17709typedef void (VKAPI_PTR *PFN_vkCmdSetCullModeEXT)(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode);
17710typedef void (VKAPI_PTR *PFN_vkCmdSetFrontFaceEXT)(VkCommandBuffer commandBuffer, VkFrontFace frontFace);
17711typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveTopologyEXT)(VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology);
17712typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWithCountEXT)(VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports);
17713typedef void (VKAPI_PTR *PFN_vkCmdSetScissorWithCountEXT)(VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors);
17714typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers2EXT)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes, const VkDeviceSize* pStrides);
17715typedef void (VKAPI_PTR *PFN_vkCmdSetDepthTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable);
17716typedef void (VKAPI_PTR *PFN_vkCmdSetDepthWriteEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable);
17717typedef void (VKAPI_PTR *PFN_vkCmdSetDepthCompareOpEXT)(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp);
17718typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBoundsTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable);
17719typedef void (VKAPI_PTR *PFN_vkCmdSetStencilTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable);
17720typedef void (VKAPI_PTR *PFN_vkCmdSetStencilOpEXT)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp);
17721
17722#ifndef VK_NO_PROTOTYPES
17723#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17724VKAPI_ATTR void VKAPI_CALL vkCmdSetCullModeEXT(
17725 VkCommandBuffer commandBuffer,
17726 VkCullModeFlags cullMode);
17727#endif
17728
17729#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17730VKAPI_ATTR void VKAPI_CALL vkCmdSetFrontFaceEXT(
17731 VkCommandBuffer commandBuffer,
17732 VkFrontFace frontFace);
17733#endif
17734
17735#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17736VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveTopologyEXT(
17737 VkCommandBuffer commandBuffer,
17738 VkPrimitiveTopology primitiveTopology);
17739#endif
17740
17741#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17742VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWithCountEXT(
17743 VkCommandBuffer commandBuffer,
17744 uint32_t viewportCount,
17745 const VkViewport* pViewports);
17746#endif
17747
17748#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17749VKAPI_ATTR void VKAPI_CALL vkCmdSetScissorWithCountEXT(
17750 VkCommandBuffer commandBuffer,
17751 uint32_t scissorCount,
17752 const VkRect2D* pScissors);
17753#endif
17754
17755#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17756VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers2EXT(
17757 VkCommandBuffer commandBuffer,
17758 uint32_t firstBinding,
17759 uint32_t bindingCount,
17760 const VkBuffer* pBuffers,
17761 const VkDeviceSize* pOffsets,
17762 const VkDeviceSize* pSizes,
17763 const VkDeviceSize* pStrides);
17764#endif
17765
17766#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17767VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthTestEnableEXT(
17768 VkCommandBuffer commandBuffer,
17769 VkBool32 depthTestEnable);
17770#endif
17771
17772#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17773VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthWriteEnableEXT(
17774 VkCommandBuffer commandBuffer,
17775 VkBool32 depthWriteEnable);
17776#endif
17777
17778#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17779VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthCompareOpEXT(
17780 VkCommandBuffer commandBuffer,
17781 VkCompareOp depthCompareOp);
17782#endif
17783
17784#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17785VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBoundsTestEnableEXT(
17786 VkCommandBuffer commandBuffer,
17787 VkBool32 depthBoundsTestEnable);
17788#endif
17789
17790#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17791VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilTestEnableEXT(
17792 VkCommandBuffer commandBuffer,
17793 VkBool32 stencilTestEnable);
17794#endif
17795
17796#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17797VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilOpEXT(
17798 VkCommandBuffer commandBuffer,
17799 VkStencilFaceFlags faceMask,
17800 VkStencilOp failOp,
17801 VkStencilOp passOp,
17802 VkStencilOp depthFailOp,
17803 VkCompareOp compareOp);
17804#endif
17805#endif
17806
17807
17808// VK_EXT_host_image_copy is a preprocessor guard. Do not pass it to API calls.
17809#define VK_EXT_host_image_copy 1
17810#define VK_EXT_HOST_IMAGE_COPY_SPEC_VERSION 1
17811#define VK_EXT_HOST_IMAGE_COPY_EXTENSION_NAME "VK_EXT_host_image_copy"
17812typedef VkHostImageCopyFlagBits VkHostImageCopyFlagBitsEXT;
17813
17814typedef VkHostImageCopyFlags VkHostImageCopyFlagsEXT;
17815
17816typedef VkPhysicalDeviceHostImageCopyFeatures VkPhysicalDeviceHostImageCopyFeaturesEXT;
17817
17818typedef VkPhysicalDeviceHostImageCopyProperties VkPhysicalDeviceHostImageCopyPropertiesEXT;
17819
17820typedef VkMemoryToImageCopy VkMemoryToImageCopyEXT;
17821
17822typedef VkImageToMemoryCopy VkImageToMemoryCopyEXT;
17823
17824typedef VkCopyMemoryToImageInfo VkCopyMemoryToImageInfoEXT;
17825
17826typedef VkCopyImageToMemoryInfo VkCopyImageToMemoryInfoEXT;
17827
17828typedef VkCopyImageToImageInfo VkCopyImageToImageInfoEXT;
17829
17830typedef VkHostImageLayoutTransitionInfo VkHostImageLayoutTransitionInfoEXT;
17831
17832typedef VkSubresourceHostMemcpySize VkSubresourceHostMemcpySizeEXT;
17833
17834typedef VkHostImageCopyDevicePerformanceQuery VkHostImageCopyDevicePerformanceQueryEXT;
17835
17836typedef VkSubresourceLayout2 VkSubresourceLayout2EXT;
17837
17838typedef VkImageSubresource2 VkImageSubresource2EXT;
17839
17840typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToImageEXT)(VkDevice device, const VkCopyMemoryToImageInfo* pCopyMemoryToImageInfo);
17841typedef VkResult (VKAPI_PTR *PFN_vkCopyImageToMemoryEXT)(VkDevice device, const VkCopyImageToMemoryInfo* pCopyImageToMemoryInfo);
17842typedef VkResult (VKAPI_PTR *PFN_vkCopyImageToImageEXT)(VkDevice device, const VkCopyImageToImageInfo* pCopyImageToImageInfo);
17843typedef VkResult (VKAPI_PTR *PFN_vkTransitionImageLayoutEXT)(VkDevice device, uint32_t transitionCount, const VkHostImageLayoutTransitionInfo* pTransitions);
17844typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout2EXT)(VkDevice device, VkImage image, const VkImageSubresource2* pSubresource, VkSubresourceLayout2* pLayout);
17845
17846#ifndef VK_NO_PROTOTYPES
17847#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17848VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToImageEXT(
17849 VkDevice device,
17850 const VkCopyMemoryToImageInfo* pCopyMemoryToImageInfo);
17851#endif
17852
17853#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17854VKAPI_ATTR VkResult VKAPI_CALL vkCopyImageToMemoryEXT(
17855 VkDevice device,
17856 const VkCopyImageToMemoryInfo* pCopyImageToMemoryInfo);
17857#endif
17858
17859#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17860VKAPI_ATTR VkResult VKAPI_CALL vkCopyImageToImageEXT(
17861 VkDevice device,
17862 const VkCopyImageToImageInfo* pCopyImageToImageInfo);
17863#endif
17864
17865#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17866VKAPI_ATTR VkResult VKAPI_CALL vkTransitionImageLayoutEXT(
17867 VkDevice device,
17868 uint32_t transitionCount,
17869 const VkHostImageLayoutTransitionInfo* pTransitions);
17870#endif
17871
17872#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17873VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout2EXT(
17874 VkDevice device,
17875 VkImage image,
17876 const VkImageSubresource2* pSubresource,
17877 VkSubresourceLayout2* pLayout);
17878#endif
17879#endif
17880
17881
17882// VK_EXT_map_memory_placed is a preprocessor guard. Do not pass it to API calls.
17883#define VK_EXT_map_memory_placed 1
17884#define VK_EXT_MAP_MEMORY_PLACED_SPEC_VERSION 1
17885#define VK_EXT_MAP_MEMORY_PLACED_EXTENSION_NAME "VK_EXT_map_memory_placed"
17886typedef struct VkPhysicalDeviceMapMemoryPlacedFeaturesEXT {
17887 VkStructureType sType;
17888 void* pNext;
17889 VkBool32 memoryMapPlaced;
17890 VkBool32 memoryMapRangePlaced;
17891 VkBool32 memoryUnmapReserve;
17892} VkPhysicalDeviceMapMemoryPlacedFeaturesEXT;
17893
17894typedef struct VkPhysicalDeviceMapMemoryPlacedPropertiesEXT {
17895 VkStructureType sType;
17896 void* pNext;
17897 VkDeviceSize minPlacedMemoryMapAlignment;
17898} VkPhysicalDeviceMapMemoryPlacedPropertiesEXT;
17899
17900typedef struct VkMemoryMapPlacedInfoEXT {
17901 VkStructureType sType;
17902 const void* pNext;
17903 void* pPlacedAddress;
17904} VkMemoryMapPlacedInfoEXT;
17905
17906
17907
17908// VK_EXT_shader_atomic_float2 is a preprocessor guard. Do not pass it to API calls.
17909#define VK_EXT_shader_atomic_float2 1
17910#define VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION 1
17911#define VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME "VK_EXT_shader_atomic_float2"
17912typedef struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT {
17913 VkStructureType sType;
17914 void* pNext;
17915 VkBool32 shaderBufferFloat16Atomics;
17916 VkBool32 shaderBufferFloat16AtomicAdd;
17917 VkBool32 shaderBufferFloat16AtomicMinMax;
17918 VkBool32 shaderBufferFloat32AtomicMinMax;
17919 VkBool32 shaderBufferFloat64AtomicMinMax;
17920 VkBool32 shaderSharedFloat16Atomics;
17921 VkBool32 shaderSharedFloat16AtomicAdd;
17922 VkBool32 shaderSharedFloat16AtomicMinMax;
17923 VkBool32 shaderSharedFloat32AtomicMinMax;
17924 VkBool32 shaderSharedFloat64AtomicMinMax;
17925 VkBool32 shaderImageFloat32AtomicMinMax;
17926 VkBool32 sparseImageFloat32AtomicMinMax;
17927} VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT;
17928
17929
17930
17931// VK_EXT_surface_maintenance1 is a preprocessor guard. Do not pass it to API calls.
17932#define VK_EXT_surface_maintenance1 1
17933#define VK_EXT_SURFACE_MAINTENANCE_1_SPEC_VERSION 1
17934#define VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME "VK_EXT_surface_maintenance1"
17935typedef VkPresentScalingFlagBitsKHR VkPresentScalingFlagBitsEXT;
17936
17937typedef VkPresentScalingFlagsKHR VkPresentScalingFlagsEXT;
17938
17939typedef VkPresentGravityFlagBitsKHR VkPresentGravityFlagBitsEXT;
17940
17941typedef VkPresentGravityFlagsKHR VkPresentGravityFlagsEXT;
17942
17943typedef VkSurfacePresentModeKHR VkSurfacePresentModeEXT;
17944
17945typedef VkSurfacePresentScalingCapabilitiesKHR VkSurfacePresentScalingCapabilitiesEXT;
17946
17947typedef VkSurfacePresentModeCompatibilityKHR VkSurfacePresentModeCompatibilityEXT;
17948
17949
17950
17951// VK_EXT_swapchain_maintenance1 is a preprocessor guard. Do not pass it to API calls.
17952#define VK_EXT_swapchain_maintenance1 1
17953#define VK_EXT_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION 1
17954#define VK_EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME "VK_EXT_swapchain_maintenance1"
17955typedef VkPhysicalDeviceSwapchainMaintenance1FeaturesKHR VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT;
17956
17957typedef VkSwapchainPresentFenceInfoKHR VkSwapchainPresentFenceInfoEXT;
17958
17959typedef VkSwapchainPresentModesCreateInfoKHR VkSwapchainPresentModesCreateInfoEXT;
17960
17961typedef VkSwapchainPresentModeInfoKHR VkSwapchainPresentModeInfoEXT;
17962
17963typedef VkSwapchainPresentScalingCreateInfoKHR VkSwapchainPresentScalingCreateInfoEXT;
17964
17965typedef VkReleaseSwapchainImagesInfoKHR VkReleaseSwapchainImagesInfoEXT;
17966
17967typedef VkResult (VKAPI_PTR *PFN_vkReleaseSwapchainImagesEXT)(VkDevice device, const VkReleaseSwapchainImagesInfoKHR* pReleaseInfo);
17968
17969#ifndef VK_NO_PROTOTYPES
17970#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17971VKAPI_ATTR VkResult VKAPI_CALL vkReleaseSwapchainImagesEXT(
17972 VkDevice device,
17973 const VkReleaseSwapchainImagesInfoKHR* pReleaseInfo);
17974#endif
17975#endif
17976
17977
17978// VK_EXT_shader_demote_to_helper_invocation is a preprocessor guard. Do not pass it to API calls.
17979#define VK_EXT_shader_demote_to_helper_invocation 1
17980#define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION 1
17981#define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME "VK_EXT_shader_demote_to_helper_invocation"
17982typedef VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT;
17983
17984
17985
17986// VK_NV_device_generated_commands is a preprocessor guard. Do not pass it to API calls.
17987#define VK_NV_device_generated_commands 1
17988VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNV)
17989#define VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3
17990#define VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NV_device_generated_commands"
17991
17992typedef enum VkIndirectCommandsTokenTypeNV {
17993 VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0,
17994 VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1,
17995 VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2,
17996 VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3,
17997 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4,
17998 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5,
17999 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6,
18000 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7,
18001 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV = 1000328000,
18002 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV = 1000428003,
18003 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV = 1000428004,
18004 VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
18005} VkIndirectCommandsTokenTypeNV;
18006
18007typedef enum VkIndirectStateFlagBitsNV {
18008 VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 0x00000001,
18009 VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
18010} VkIndirectStateFlagBitsNV;
18011typedef VkFlags VkIndirectStateFlagsNV;
18012
18013typedef enum VkIndirectCommandsLayoutUsageFlagBitsNV {
18014 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 0x00000001,
18015 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 0x00000002,
18016 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 0x00000004,
18017 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
18018} VkIndirectCommandsLayoutUsageFlagBitsNV;
18019typedef VkFlags VkIndirectCommandsLayoutUsageFlagsNV;
18020typedef struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV {
18021 VkStructureType sType;
18022 void* pNext;
18023 uint32_t maxGraphicsShaderGroupCount;
18024 uint32_t maxIndirectSequenceCount;
18025 uint32_t maxIndirectCommandsTokenCount;
18026 uint32_t maxIndirectCommandsStreamCount;
18027 uint32_t maxIndirectCommandsTokenOffset;
18028 uint32_t maxIndirectCommandsStreamStride;
18029 uint32_t minSequencesCountBufferOffsetAlignment;
18030 uint32_t minSequencesIndexBufferOffsetAlignment;
18031 uint32_t minIndirectCommandsBufferOffsetAlignment;
18032} VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
18033
18034typedef struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV {
18035 VkStructureType sType;
18036 void* pNext;
18037 VkBool32 deviceGeneratedCommands;
18038} VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
18039
18040typedef struct VkGraphicsShaderGroupCreateInfoNV {
18041 VkStructureType sType;
18042 const void* pNext;
18043 uint32_t stageCount;
18044 const VkPipelineShaderStageCreateInfo* pStages;
18045 const VkPipelineVertexInputStateCreateInfo* pVertexInputState;
18046 const VkPipelineTessellationStateCreateInfo* pTessellationState;
18047} VkGraphicsShaderGroupCreateInfoNV;
18048
18049typedef struct VkGraphicsPipelineShaderGroupsCreateInfoNV {
18050 VkStructureType sType;
18051 const void* pNext;
18052 uint32_t groupCount;
18053 const VkGraphicsShaderGroupCreateInfoNV* pGroups;
18054 uint32_t pipelineCount;
18055 const VkPipeline* pPipelines;
18056} VkGraphicsPipelineShaderGroupsCreateInfoNV;
18057
18058typedef struct VkBindShaderGroupIndirectCommandNV {
18059 uint32_t groupIndex;
18060} VkBindShaderGroupIndirectCommandNV;
18061
18062typedef struct VkBindIndexBufferIndirectCommandNV {
18063 VkDeviceAddress bufferAddress;
18064 uint32_t size;
18065 VkIndexType indexType;
18066} VkBindIndexBufferIndirectCommandNV;
18067
18068typedef struct VkBindVertexBufferIndirectCommandNV {
18069 VkDeviceAddress bufferAddress;
18070 uint32_t size;
18071 uint32_t stride;
18072} VkBindVertexBufferIndirectCommandNV;
18073
18074typedef struct VkSetStateFlagsIndirectCommandNV {
18075 uint32_t data;
18076} VkSetStateFlagsIndirectCommandNV;
18077
18078typedef struct VkIndirectCommandsStreamNV {
18079 VkBuffer buffer;
18080 VkDeviceSize offset;
18081} VkIndirectCommandsStreamNV;
18082
18083typedef struct VkIndirectCommandsLayoutTokenNV {
18084 VkStructureType sType;
18085 const void* pNext;
18086 VkIndirectCommandsTokenTypeNV tokenType;
18087 uint32_t stream;
18088 uint32_t offset;
18089 uint32_t vertexBindingUnit;
18090 VkBool32 vertexDynamicStride;
18091 VkPipelineLayout pushconstantPipelineLayout;
18092 VkShaderStageFlags pushconstantShaderStageFlags;
18093 uint32_t pushconstantOffset;
18094 uint32_t pushconstantSize;
18095 VkIndirectStateFlagsNV indirectStateFlags;
18096 uint32_t indexTypeCount;
18097 const VkIndexType* pIndexTypes;
18098 const uint32_t* pIndexTypeValues;
18099} VkIndirectCommandsLayoutTokenNV;
18100
18101typedef struct VkIndirectCommandsLayoutCreateInfoNV {
18102 VkStructureType sType;
18103 const void* pNext;
18104 VkIndirectCommandsLayoutUsageFlagsNV flags;
18105 VkPipelineBindPoint pipelineBindPoint;
18106 uint32_t tokenCount;
18107 const VkIndirectCommandsLayoutTokenNV* pTokens;
18108 uint32_t streamCount;
18109 const uint32_t* pStreamStrides;
18110} VkIndirectCommandsLayoutCreateInfoNV;
18111
18112typedef struct VkGeneratedCommandsInfoNV {
18113 VkStructureType sType;
18114 const void* pNext;
18115 VkPipelineBindPoint pipelineBindPoint;
18116 VkPipeline pipeline;
18117 VkIndirectCommandsLayoutNV indirectCommandsLayout;
18118 uint32_t streamCount;
18119 const VkIndirectCommandsStreamNV* pStreams;
18120 uint32_t sequencesCount;
18121 VkBuffer preprocessBuffer;
18122 VkDeviceSize preprocessOffset;
18123 VkDeviceSize preprocessSize;
18124 VkBuffer sequencesCountBuffer;
18125 VkDeviceSize sequencesCountOffset;
18126 VkBuffer sequencesIndexBuffer;
18127 VkDeviceSize sequencesIndexOffset;
18128} VkGeneratedCommandsInfoNV;
18129
18130typedef struct VkGeneratedCommandsMemoryRequirementsInfoNV {
18131 VkStructureType sType;
18132 const void* pNext;
18133 VkPipelineBindPoint pipelineBindPoint;
18134 VkPipeline pipeline;
18135 VkIndirectCommandsLayoutNV indirectCommandsLayout;
18136 uint32_t maxSequencesCount;
18137} VkGeneratedCommandsMemoryRequirementsInfoNV;
18138
18139typedef void (VKAPI_PTR *PFN_vkGetGeneratedCommandsMemoryRequirementsNV)(VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2* pMemoryRequirements);
18140typedef void (VKAPI_PTR *PFN_vkCmdPreprocessGeneratedCommandsNV)(VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
18141typedef void (VKAPI_PTR *PFN_vkCmdExecuteGeneratedCommandsNV)(VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
18142typedef void (VKAPI_PTR *PFN_vkCmdBindPipelineShaderGroupNV)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline, uint32_t groupIndex);
18143typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutNV)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNV* pIndirectCommandsLayout);
18144typedef void (VKAPI_PTR *PFN_vkDestroyIndirectCommandsLayoutNV)(VkDevice device, VkIndirectCommandsLayoutNV indirectCommandsLayout, const VkAllocationCallbacks* pAllocator);
18145
18146#ifndef VK_NO_PROTOTYPES
18147#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18148VKAPI_ATTR void VKAPI_CALL vkGetGeneratedCommandsMemoryRequirementsNV(
18149 VkDevice device,
18150 const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo,
18151 VkMemoryRequirements2* pMemoryRequirements);
18152#endif
18153
18154#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18155VKAPI_ATTR void VKAPI_CALL vkCmdPreprocessGeneratedCommandsNV(
18156 VkCommandBuffer commandBuffer,
18157 const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
18158#endif
18159
18160#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18161VKAPI_ATTR void VKAPI_CALL vkCmdExecuteGeneratedCommandsNV(
18162 VkCommandBuffer commandBuffer,
18163 VkBool32 isPreprocessed,
18164 const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
18165#endif
18166
18167#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18168VKAPI_ATTR void VKAPI_CALL vkCmdBindPipelineShaderGroupNV(
18169 VkCommandBuffer commandBuffer,
18170 VkPipelineBindPoint pipelineBindPoint,
18171 VkPipeline pipeline,
18172 uint32_t groupIndex);
18173#endif
18174
18175#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18176VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutNV(
18177 VkDevice device,
18178 const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo,
18179 const VkAllocationCallbacks* pAllocator,
18180 VkIndirectCommandsLayoutNV* pIndirectCommandsLayout);
18181#endif
18182
18183#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18184VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutNV(
18185 VkDevice device,
18186 VkIndirectCommandsLayoutNV indirectCommandsLayout,
18187 const VkAllocationCallbacks* pAllocator);
18188#endif
18189#endif
18190
18191
18192// VK_NV_inherited_viewport_scissor is a preprocessor guard. Do not pass it to API calls.
18193#define VK_NV_inherited_viewport_scissor 1
18194#define VK_NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION 1
18195#define VK_NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME "VK_NV_inherited_viewport_scissor"
18196typedef struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV {
18197 VkStructureType sType;
18198 void* pNext;
18199 VkBool32 inheritedViewportScissor2D;
18200} VkPhysicalDeviceInheritedViewportScissorFeaturesNV;
18201
18202typedef struct VkCommandBufferInheritanceViewportScissorInfoNV {
18203 VkStructureType sType;
18204 const void* pNext;
18205 VkBool32 viewportScissor2D;
18206 uint32_t viewportDepthCount;
18207 const VkViewport* pViewportDepths;
18208} VkCommandBufferInheritanceViewportScissorInfoNV;
18209
18210
18211
18212// VK_EXT_texel_buffer_alignment is a preprocessor guard. Do not pass it to API calls.
18213#define VK_EXT_texel_buffer_alignment 1
18214#define VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION 1
18215#define VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME "VK_EXT_texel_buffer_alignment"
18216typedef struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT {
18217 VkStructureType sType;
18218 void* pNext;
18219 VkBool32 texelBufferAlignment;
18220} VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT;
18221
18222typedef VkPhysicalDeviceTexelBufferAlignmentProperties VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT;
18223
18224
18225
18226// VK_QCOM_render_pass_transform is a preprocessor guard. Do not pass it to API calls.
18227#define VK_QCOM_render_pass_transform 1
18228#define VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION 5
18229#define VK_QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME "VK_QCOM_render_pass_transform"
18230typedef struct VkRenderPassTransformBeginInfoQCOM {
18231 VkStructureType sType;
18232 const void* pNext;
18233 VkSurfaceTransformFlagBitsKHR transform;
18234} VkRenderPassTransformBeginInfoQCOM;
18235
18236typedef struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM {
18237 VkStructureType sType;
18238 const void* pNext;
18239 VkSurfaceTransformFlagBitsKHR transform;
18240 VkRect2D renderArea;
18241} VkCommandBufferInheritanceRenderPassTransformInfoQCOM;
18242
18243
18244
18245// VK_EXT_depth_bias_control is a preprocessor guard. Do not pass it to API calls.
18246#define VK_EXT_depth_bias_control 1
18247#define VK_EXT_DEPTH_BIAS_CONTROL_SPEC_VERSION 1
18248#define VK_EXT_DEPTH_BIAS_CONTROL_EXTENSION_NAME "VK_EXT_depth_bias_control"
18249
18250typedef enum VkDepthBiasRepresentationEXT {
18251 VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORMAT_EXT = 0,
18252 VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORCE_UNORM_EXT = 1,
18253 VK_DEPTH_BIAS_REPRESENTATION_FLOAT_EXT = 2,
18254 VK_DEPTH_BIAS_REPRESENTATION_MAX_ENUM_EXT = 0x7FFFFFFF
18255} VkDepthBiasRepresentationEXT;
18256typedef struct VkPhysicalDeviceDepthBiasControlFeaturesEXT {
18257 VkStructureType sType;
18258 void* pNext;
18259 VkBool32 depthBiasControl;
18260 VkBool32 leastRepresentableValueForceUnormRepresentation;
18261 VkBool32 floatRepresentation;
18262 VkBool32 depthBiasExact;
18263} VkPhysicalDeviceDepthBiasControlFeaturesEXT;
18264
18265typedef struct VkDepthBiasInfoEXT {
18266 VkStructureType sType;
18267 const void* pNext;
18268 float depthBiasConstantFactor;
18269 float depthBiasClamp;
18270 float depthBiasSlopeFactor;
18271} VkDepthBiasInfoEXT;
18272
18273typedef struct VkDepthBiasRepresentationInfoEXT {
18274 VkStructureType sType;
18275 const void* pNext;
18276 VkDepthBiasRepresentationEXT depthBiasRepresentation;
18277 VkBool32 depthBiasExact;
18278} VkDepthBiasRepresentationInfoEXT;
18279
18280typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias2EXT)(VkCommandBuffer commandBuffer, const VkDepthBiasInfoEXT* pDepthBiasInfo);
18281
18282#ifndef VK_NO_PROTOTYPES
18283#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18284VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias2EXT(
18285 VkCommandBuffer commandBuffer,
18286 const VkDepthBiasInfoEXT* pDepthBiasInfo);
18287#endif
18288#endif
18289
18290
18291// VK_EXT_device_memory_report is a preprocessor guard. Do not pass it to API calls.
18292#define VK_EXT_device_memory_report 1
18293#define VK_EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION 2
18294#define VK_EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME "VK_EXT_device_memory_report"
18295
18296typedef enum VkDeviceMemoryReportEventTypeEXT {
18297 VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0,
18298 VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1,
18299 VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2,
18300 VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3,
18301 VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4,
18302 VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
18303} VkDeviceMemoryReportEventTypeEXT;
18304typedef VkFlags VkDeviceMemoryReportFlagsEXT;
18305typedef struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT {
18306 VkStructureType sType;
18307 void* pNext;
18308 VkBool32 deviceMemoryReport;
18309} VkPhysicalDeviceDeviceMemoryReportFeaturesEXT;
18310
18311typedef struct VkDeviceMemoryReportCallbackDataEXT {
18312 VkStructureType sType;
18313 void* pNext;
18314 VkDeviceMemoryReportFlagsEXT flags;
18315 VkDeviceMemoryReportEventTypeEXT type;
18316 uint64_t memoryObjectId;
18317 VkDeviceSize size;
18318 VkObjectType objectType;
18319 uint64_t objectHandle;
18320 uint32_t heapIndex;
18321} VkDeviceMemoryReportCallbackDataEXT;
18322
18323typedef void (VKAPI_PTR *PFN_vkDeviceMemoryReportCallbackEXT)(
18324 const VkDeviceMemoryReportCallbackDataEXT* pCallbackData,
18325 void* pUserData);
18326
18327typedef struct VkDeviceDeviceMemoryReportCreateInfoEXT {
18328 VkStructureType sType;
18329 const void* pNext;
18330 VkDeviceMemoryReportFlagsEXT flags;
18331 PFN_vkDeviceMemoryReportCallbackEXT pfnUserCallback;
18332 void* pUserData;
18333} VkDeviceDeviceMemoryReportCreateInfoEXT;
18334
18335
18336
18337// VK_EXT_acquire_drm_display is a preprocessor guard. Do not pass it to API calls.
18338#define VK_EXT_acquire_drm_display 1
18339#define VK_EXT_ACQUIRE_DRM_DISPLAY_SPEC_VERSION 1
18340#define VK_EXT_ACQUIRE_DRM_DISPLAY_EXTENSION_NAME "VK_EXT_acquire_drm_display"
18341typedef VkResult (VKAPI_PTR *PFN_vkAcquireDrmDisplayEXT)(VkPhysicalDevice physicalDevice, int32_t drmFd, VkDisplayKHR display);
18342typedef VkResult (VKAPI_PTR *PFN_vkGetDrmDisplayEXT)(VkPhysicalDevice physicalDevice, int32_t drmFd, uint32_t connectorId, VkDisplayKHR* display);
18343
18344#ifndef VK_NO_PROTOTYPES
18345#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18346VKAPI_ATTR VkResult VKAPI_CALL vkAcquireDrmDisplayEXT(
18347 VkPhysicalDevice physicalDevice,
18348 int32_t drmFd,
18349 VkDisplayKHR display);
18350#endif
18351
18352#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18353VKAPI_ATTR VkResult VKAPI_CALL vkGetDrmDisplayEXT(
18354 VkPhysicalDevice physicalDevice,
18355 int32_t drmFd,
18356 uint32_t connectorId,
18357 VkDisplayKHR* display);
18358#endif
18359#endif
18360
18361
18362// VK_EXT_robustness2 is a preprocessor guard. Do not pass it to API calls.
18363#define VK_EXT_robustness2 1
18364#define VK_EXT_ROBUSTNESS_2_SPEC_VERSION 1
18365#define VK_EXT_ROBUSTNESS_2_EXTENSION_NAME "VK_EXT_robustness2"
18366typedef VkPhysicalDeviceRobustness2FeaturesKHR VkPhysicalDeviceRobustness2FeaturesEXT;
18367
18368typedef VkPhysicalDeviceRobustness2PropertiesKHR VkPhysicalDeviceRobustness2PropertiesEXT;
18369
18370
18371
18372// VK_EXT_custom_border_color is a preprocessor guard. Do not pass it to API calls.
18373#define VK_EXT_custom_border_color 1
18374#define VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION 12
18375#define VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME "VK_EXT_custom_border_color"
18376typedef struct VkSamplerCustomBorderColorCreateInfoEXT {
18377 VkStructureType sType;
18378 const void* pNext;
18379 VkClearColorValue customBorderColor;
18380 VkFormat format;
18381} VkSamplerCustomBorderColorCreateInfoEXT;
18382
18383typedef struct VkPhysicalDeviceCustomBorderColorPropertiesEXT {
18384 VkStructureType sType;
18385 void* pNext;
18386 uint32_t maxCustomBorderColorSamplers;
18387} VkPhysicalDeviceCustomBorderColorPropertiesEXT;
18388
18389typedef struct VkPhysicalDeviceCustomBorderColorFeaturesEXT {
18390 VkStructureType sType;
18391 void* pNext;
18392 VkBool32 customBorderColors;
18393 VkBool32 customBorderColorWithoutFormat;
18394} VkPhysicalDeviceCustomBorderColorFeaturesEXT;
18395
18396
18397
18398// VK_GOOGLE_user_type is a preprocessor guard. Do not pass it to API calls.
18399#define VK_GOOGLE_user_type 1
18400#define VK_GOOGLE_USER_TYPE_SPEC_VERSION 1
18401#define VK_GOOGLE_USER_TYPE_EXTENSION_NAME "VK_GOOGLE_user_type"
18402
18403
18404// VK_NV_present_barrier is a preprocessor guard. Do not pass it to API calls.
18405#define VK_NV_present_barrier 1
18406#define VK_NV_PRESENT_BARRIER_SPEC_VERSION 1
18407#define VK_NV_PRESENT_BARRIER_EXTENSION_NAME "VK_NV_present_barrier"
18408typedef struct VkPhysicalDevicePresentBarrierFeaturesNV {
18409 VkStructureType sType;
18410 void* pNext;
18411 VkBool32 presentBarrier;
18412} VkPhysicalDevicePresentBarrierFeaturesNV;
18413
18414typedef struct VkSurfaceCapabilitiesPresentBarrierNV {
18415 VkStructureType sType;
18416 void* pNext;
18417 VkBool32 presentBarrierSupported;
18418} VkSurfaceCapabilitiesPresentBarrierNV;
18419
18420typedef struct VkSwapchainPresentBarrierCreateInfoNV {
18421 VkStructureType sType;
18422 void* pNext;
18423 VkBool32 presentBarrierEnable;
18424} VkSwapchainPresentBarrierCreateInfoNV;
18425
18426
18427
18428// VK_EXT_private_data is a preprocessor guard. Do not pass it to API calls.
18429#define VK_EXT_private_data 1
18430typedef VkPrivateDataSlot VkPrivateDataSlotEXT;
18431
18432#define VK_EXT_PRIVATE_DATA_SPEC_VERSION 1
18433#define VK_EXT_PRIVATE_DATA_EXTENSION_NAME "VK_EXT_private_data"
18434typedef VkPrivateDataSlotCreateFlags VkPrivateDataSlotCreateFlagsEXT;
18435
18436typedef VkPhysicalDevicePrivateDataFeatures VkPhysicalDevicePrivateDataFeaturesEXT;
18437
18438typedef VkDevicePrivateDataCreateInfo VkDevicePrivateDataCreateInfoEXT;
18439
18440typedef VkPrivateDataSlotCreateInfo VkPrivateDataSlotCreateInfoEXT;
18441
18442typedef VkResult (VKAPI_PTR *PFN_vkCreatePrivateDataSlotEXT)(VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot);
18443typedef void (VKAPI_PTR *PFN_vkDestroyPrivateDataSlotEXT)(VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks* pAllocator);
18444typedef VkResult (VKAPI_PTR *PFN_vkSetPrivateDataEXT)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data);
18445typedef void (VKAPI_PTR *PFN_vkGetPrivateDataEXT)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t* pData);
18446
18447#ifndef VK_NO_PROTOTYPES
18448#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18449VKAPI_ATTR VkResult VKAPI_CALL vkCreatePrivateDataSlotEXT(
18450 VkDevice device,
18451 const VkPrivateDataSlotCreateInfo* pCreateInfo,
18452 const VkAllocationCallbacks* pAllocator,
18453 VkPrivateDataSlot* pPrivateDataSlot);
18454#endif
18455
18456#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18457VKAPI_ATTR void VKAPI_CALL vkDestroyPrivateDataSlotEXT(
18458 VkDevice device,
18459 VkPrivateDataSlot privateDataSlot,
18460 const VkAllocationCallbacks* pAllocator);
18461#endif
18462
18463#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18464VKAPI_ATTR VkResult VKAPI_CALL vkSetPrivateDataEXT(
18465 VkDevice device,
18466 VkObjectType objectType,
18467 uint64_t objectHandle,
18468 VkPrivateDataSlot privateDataSlot,
18469 uint64_t data);
18470#endif
18471
18472#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18473VKAPI_ATTR void VKAPI_CALL vkGetPrivateDataEXT(
18474 VkDevice device,
18475 VkObjectType objectType,
18476 uint64_t objectHandle,
18477 VkPrivateDataSlot privateDataSlot,
18478 uint64_t* pData);
18479#endif
18480#endif
18481
18482
18483// VK_EXT_pipeline_creation_cache_control is a preprocessor guard. Do not pass it to API calls.
18484#define VK_EXT_pipeline_creation_cache_control 1
18485#define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION 3
18486#define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME "VK_EXT_pipeline_creation_cache_control"
18487typedef VkPhysicalDevicePipelineCreationCacheControlFeatures VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT;
18488
18489
18490
18491// VK_NV_device_diagnostics_config is a preprocessor guard. Do not pass it to API calls.
18492#define VK_NV_device_diagnostics_config 1
18493#define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION 2
18494#define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME "VK_NV_device_diagnostics_config"
18495
18496typedef enum VkDeviceDiagnosticsConfigFlagBitsNV {
18497 VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 0x00000001,
18498 VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 0x00000002,
18499 VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 0x00000004,
18500 VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV = 0x00000008,
18501 VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
18502} VkDeviceDiagnosticsConfigFlagBitsNV;
18503typedef VkFlags VkDeviceDiagnosticsConfigFlagsNV;
18504typedef struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV {
18505 VkStructureType sType;
18506 void* pNext;
18507 VkBool32 diagnosticsConfig;
18508} VkPhysicalDeviceDiagnosticsConfigFeaturesNV;
18509
18510typedef struct VkDeviceDiagnosticsConfigCreateInfoNV {
18511 VkStructureType sType;
18512 const void* pNext;
18513 VkDeviceDiagnosticsConfigFlagsNV flags;
18514} VkDeviceDiagnosticsConfigCreateInfoNV;
18515
18516
18517
18518// VK_QCOM_render_pass_store_ops is a preprocessor guard. Do not pass it to API calls.
18519#define VK_QCOM_render_pass_store_ops 1
18520#define VK_QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION 2
18521#define VK_QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME "VK_QCOM_render_pass_store_ops"
18522
18523
18524// VK_QCOM_tile_shading is a preprocessor guard. Do not pass it to API calls.
18525#define VK_QCOM_tile_shading 1
18526#define VK_QCOM_TILE_SHADING_SPEC_VERSION 2
18527#define VK_QCOM_TILE_SHADING_EXTENSION_NAME "VK_QCOM_tile_shading"
18528
18529typedef enum VkTileShadingRenderPassFlagBitsQCOM {
18530 VK_TILE_SHADING_RENDER_PASS_ENABLE_BIT_QCOM = 0x00000001,
18531 VK_TILE_SHADING_RENDER_PASS_PER_TILE_EXECUTION_BIT_QCOM = 0x00000002,
18532 VK_TILE_SHADING_RENDER_PASS_FLAG_BITS_MAX_ENUM_QCOM = 0x7FFFFFFF
18533} VkTileShadingRenderPassFlagBitsQCOM;
18534typedef VkFlags VkTileShadingRenderPassFlagsQCOM;
18535typedef struct VkPhysicalDeviceTileShadingFeaturesQCOM {
18536 VkStructureType sType;
18537 void* pNext;
18538 VkBool32 tileShading;
18539 VkBool32 tileShadingFragmentStage;
18540 VkBool32 tileShadingColorAttachments;
18541 VkBool32 tileShadingDepthAttachments;
18542 VkBool32 tileShadingStencilAttachments;
18543 VkBool32 tileShadingInputAttachments;
18544 VkBool32 tileShadingSampledAttachments;
18545 VkBool32 tileShadingPerTileDraw;
18546 VkBool32 tileShadingPerTileDispatch;
18547 VkBool32 tileShadingDispatchTile;
18548 VkBool32 tileShadingApron;
18549 VkBool32 tileShadingAnisotropicApron;
18550 VkBool32 tileShadingAtomicOps;
18551 VkBool32 tileShadingImageProcessing;
18552} VkPhysicalDeviceTileShadingFeaturesQCOM;
18553
18554typedef struct VkPhysicalDeviceTileShadingPropertiesQCOM {
18555 VkStructureType sType;
18556 void* pNext;
18557 uint32_t maxApronSize;
18558 VkBool32 preferNonCoherent;
18559 VkExtent2D tileGranularity;
18560 VkExtent2D maxTileShadingRate;
18561} VkPhysicalDeviceTileShadingPropertiesQCOM;
18562
18563typedef struct VkRenderPassTileShadingCreateInfoQCOM {
18564 VkStructureType sType;
18565 const void* pNext;
18566 VkTileShadingRenderPassFlagsQCOM flags;
18567 VkExtent2D tileApronSize;
18568} VkRenderPassTileShadingCreateInfoQCOM;
18569
18570typedef struct VkPerTileBeginInfoQCOM {
18571 VkStructureType sType;
18572 const void* pNext;
18573} VkPerTileBeginInfoQCOM;
18574
18575typedef struct VkPerTileEndInfoQCOM {
18576 VkStructureType sType;
18577 const void* pNext;
18578} VkPerTileEndInfoQCOM;
18579
18580typedef struct VkDispatchTileInfoQCOM {
18581 VkStructureType sType;
18582 const void* pNext;
18583} VkDispatchTileInfoQCOM;
18584
18585typedef void (VKAPI_PTR *PFN_vkCmdDispatchTileQCOM)(VkCommandBuffer commandBuffer, const VkDispatchTileInfoQCOM* pDispatchTileInfo);
18586typedef void (VKAPI_PTR *PFN_vkCmdBeginPerTileExecutionQCOM)(VkCommandBuffer commandBuffer, const VkPerTileBeginInfoQCOM* pPerTileBeginInfo);
18587typedef void (VKAPI_PTR *PFN_vkCmdEndPerTileExecutionQCOM)(VkCommandBuffer commandBuffer, const VkPerTileEndInfoQCOM* pPerTileEndInfo);
18588
18589#ifndef VK_NO_PROTOTYPES
18590#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18591VKAPI_ATTR void VKAPI_CALL vkCmdDispatchTileQCOM(
18592 VkCommandBuffer commandBuffer,
18593 const VkDispatchTileInfoQCOM* pDispatchTileInfo);
18594#endif
18595
18596#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18597VKAPI_ATTR void VKAPI_CALL vkCmdBeginPerTileExecutionQCOM(
18598 VkCommandBuffer commandBuffer,
18599 const VkPerTileBeginInfoQCOM* pPerTileBeginInfo);
18600#endif
18601
18602#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18603VKAPI_ATTR void VKAPI_CALL vkCmdEndPerTileExecutionQCOM(
18604 VkCommandBuffer commandBuffer,
18605 const VkPerTileEndInfoQCOM* pPerTileEndInfo);
18606#endif
18607#endif
18608
18609
18610// VK_NV_low_latency is a preprocessor guard. Do not pass it to API calls.
18611#define VK_NV_low_latency 1
18612#define VK_NV_LOW_LATENCY_SPEC_VERSION 1
18613#define VK_NV_LOW_LATENCY_EXTENSION_NAME "VK_NV_low_latency"
18614typedef struct VkQueryLowLatencySupportNV {
18615 VkStructureType sType;
18616 const void* pNext;
18617 void* pQueriedLowLatencyData;
18618} VkQueryLowLatencySupportNV;
18619
18620
18621
18622// VK_EXT_descriptor_buffer is a preprocessor guard. Do not pass it to API calls.
18623#define VK_EXT_descriptor_buffer 1
18624VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureKHR)
18625#define VK_EXT_DESCRIPTOR_BUFFER_SPEC_VERSION 1
18626#define VK_EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME "VK_EXT_descriptor_buffer"
18627typedef struct VkPhysicalDeviceDescriptorBufferPropertiesEXT {
18628 VkStructureType sType;
18629 void* pNext;
18630 VkBool32 combinedImageSamplerDescriptorSingleArray;
18631 VkBool32 bufferlessPushDescriptors;
18632 VkBool32 allowSamplerImageViewPostSubmitCreation;
18633 VkDeviceSize descriptorBufferOffsetAlignment;
18634 uint32_t maxDescriptorBufferBindings;
18635 uint32_t maxResourceDescriptorBufferBindings;
18636 uint32_t maxSamplerDescriptorBufferBindings;
18637 uint32_t maxEmbeddedImmutableSamplerBindings;
18638 uint32_t maxEmbeddedImmutableSamplers;
18639 size_t bufferCaptureReplayDescriptorDataSize;
18640 size_t imageCaptureReplayDescriptorDataSize;
18641 size_t imageViewCaptureReplayDescriptorDataSize;
18642 size_t samplerCaptureReplayDescriptorDataSize;
18643 size_t accelerationStructureCaptureReplayDescriptorDataSize;
18644 size_t samplerDescriptorSize;
18645 size_t combinedImageSamplerDescriptorSize;
18646 size_t sampledImageDescriptorSize;
18647 size_t storageImageDescriptorSize;
18648 size_t uniformTexelBufferDescriptorSize;
18649 size_t robustUniformTexelBufferDescriptorSize;
18650 size_t storageTexelBufferDescriptorSize;
18651 size_t robustStorageTexelBufferDescriptorSize;
18652 size_t uniformBufferDescriptorSize;
18653 size_t robustUniformBufferDescriptorSize;
18654 size_t storageBufferDescriptorSize;
18655 size_t robustStorageBufferDescriptorSize;
18656 size_t inputAttachmentDescriptorSize;
18657 size_t accelerationStructureDescriptorSize;
18658 VkDeviceSize maxSamplerDescriptorBufferRange;
18659 VkDeviceSize maxResourceDescriptorBufferRange;
18660 VkDeviceSize samplerDescriptorBufferAddressSpaceSize;
18661 VkDeviceSize resourceDescriptorBufferAddressSpaceSize;
18662 VkDeviceSize descriptorBufferAddressSpaceSize;
18663} VkPhysicalDeviceDescriptorBufferPropertiesEXT;
18664
18665typedef struct VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT {
18666 VkStructureType sType;
18667 void* pNext;
18668 size_t combinedImageSamplerDensityMapDescriptorSize;
18669} VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT;
18670
18671typedef struct VkPhysicalDeviceDescriptorBufferFeaturesEXT {
18672 VkStructureType sType;
18673 void* pNext;
18674 VkBool32 descriptorBuffer;
18675 VkBool32 descriptorBufferCaptureReplay;
18676 VkBool32 descriptorBufferImageLayoutIgnored;
18677 VkBool32 descriptorBufferPushDescriptors;
18678} VkPhysicalDeviceDescriptorBufferFeaturesEXT;
18679
18680typedef struct VkDescriptorAddressInfoEXT {
18681 VkStructureType sType;
18682 void* pNext;
18683 VkDeviceAddress address;
18684 VkDeviceSize range;
18685 VkFormat format;
18686} VkDescriptorAddressInfoEXT;
18687
18688typedef struct VkDescriptorBufferBindingInfoEXT {
18689 VkStructureType sType;
18690 const void* pNext;
18691 VkDeviceAddress address;
18692 VkBufferUsageFlags usage;
18693} VkDescriptorBufferBindingInfoEXT;
18694
18695typedef struct VkDescriptorBufferBindingPushDescriptorBufferHandleEXT {
18696 VkStructureType sType;
18697 const void* pNext;
18698 VkBuffer buffer;
18699} VkDescriptorBufferBindingPushDescriptorBufferHandleEXT;
18700
18701typedef union VkDescriptorDataEXT {
18702 const VkSampler* pSampler;
18703 const VkDescriptorImageInfo* pCombinedImageSampler;
18704 const VkDescriptorImageInfo* pInputAttachmentImage;
18705 const VkDescriptorImageInfo* pSampledImage;
18706 const VkDescriptorImageInfo* pStorageImage;
18707 const VkDescriptorAddressInfoEXT* pUniformTexelBuffer;
18708 const VkDescriptorAddressInfoEXT* pStorageTexelBuffer;
18709 const VkDescriptorAddressInfoEXT* pUniformBuffer;
18710 const VkDescriptorAddressInfoEXT* pStorageBuffer;
18711 VkDeviceAddress accelerationStructure;
18712} VkDescriptorDataEXT;
18713
18714typedef struct VkDescriptorGetInfoEXT {
18715 VkStructureType sType;
18716 const void* pNext;
18717 VkDescriptorType type;
18718 VkDescriptorDataEXT data;
18719} VkDescriptorGetInfoEXT;
18720
18721typedef struct VkBufferCaptureDescriptorDataInfoEXT {
18722 VkStructureType sType;
18723 const void* pNext;
18724 VkBuffer buffer;
18725} VkBufferCaptureDescriptorDataInfoEXT;
18726
18727typedef struct VkImageCaptureDescriptorDataInfoEXT {
18728 VkStructureType sType;
18729 const void* pNext;
18730 VkImage image;
18731} VkImageCaptureDescriptorDataInfoEXT;
18732
18733typedef struct VkImageViewCaptureDescriptorDataInfoEXT {
18734 VkStructureType sType;
18735 const void* pNext;
18736 VkImageView imageView;
18737} VkImageViewCaptureDescriptorDataInfoEXT;
18738
18739typedef struct VkSamplerCaptureDescriptorDataInfoEXT {
18740 VkStructureType sType;
18741 const void* pNext;
18742 VkSampler sampler;
18743} VkSamplerCaptureDescriptorDataInfoEXT;
18744
18745typedef struct VkOpaqueCaptureDescriptorDataCreateInfoEXT {
18746 VkStructureType sType;
18747 const void* pNext;
18748 const void* opaqueCaptureDescriptorData;
18749} VkOpaqueCaptureDescriptorDataCreateInfoEXT;
18750
18751typedef struct VkAccelerationStructureCaptureDescriptorDataInfoEXT {
18752 VkStructureType sType;
18753 const void* pNext;
18754 VkAccelerationStructureKHR accelerationStructure;
18755 VkAccelerationStructureNV accelerationStructureNV;
18756} VkAccelerationStructureCaptureDescriptorDataInfoEXT;
18757
18758typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSizeEXT)(VkDevice device, VkDescriptorSetLayout layout, VkDeviceSize* pLayoutSizeInBytes);
18759typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutBindingOffsetEXT)(VkDevice device, VkDescriptorSetLayout layout, uint32_t binding, VkDeviceSize* pOffset);
18760typedef void (VKAPI_PTR *PFN_vkGetDescriptorEXT)(VkDevice device, const VkDescriptorGetInfoEXT* pDescriptorInfo, size_t dataSize, void* pDescriptor);
18761typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorBuffersEXT)(VkCommandBuffer commandBuffer, uint32_t bufferCount, const VkDescriptorBufferBindingInfoEXT* pBindingInfos);
18762typedef void (VKAPI_PTR *PFN_vkCmdSetDescriptorBufferOffsetsEXT)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t setCount, const uint32_t* pBufferIndices, const VkDeviceSize* pOffsets);
18763typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set);
18764typedef VkResult (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkBufferCaptureDescriptorDataInfoEXT* pInfo, void* pData);
18765typedef VkResult (VKAPI_PTR *PFN_vkGetImageOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkImageCaptureDescriptorDataInfoEXT* pInfo, void* pData);
18766typedef VkResult (VKAPI_PTR *PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkImageViewCaptureDescriptorDataInfoEXT* pInfo, void* pData);
18767typedef VkResult (VKAPI_PTR *PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkSamplerCaptureDescriptorDataInfoEXT* pInfo, void* pData);
18768typedef VkResult (VKAPI_PTR *PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkAccelerationStructureCaptureDescriptorDataInfoEXT* pInfo, void* pData);
18769
18770#ifndef VK_NO_PROTOTYPES
18771#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18772VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSizeEXT(
18773 VkDevice device,
18774 VkDescriptorSetLayout layout,
18775 VkDeviceSize* pLayoutSizeInBytes);
18776#endif
18777
18778#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18779VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutBindingOffsetEXT(
18780 VkDevice device,
18781 VkDescriptorSetLayout layout,
18782 uint32_t binding,
18783 VkDeviceSize* pOffset);
18784#endif
18785
18786#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18787VKAPI_ATTR void VKAPI_CALL vkGetDescriptorEXT(
18788 VkDevice device,
18789 const VkDescriptorGetInfoEXT* pDescriptorInfo,
18790 size_t dataSize,
18791 void* pDescriptor);
18792#endif
18793
18794#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18795VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorBuffersEXT(
18796 VkCommandBuffer commandBuffer,
18797 uint32_t bufferCount,
18798 const VkDescriptorBufferBindingInfoEXT* pBindingInfos);
18799#endif
18800
18801#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18802VKAPI_ATTR void VKAPI_CALL vkCmdSetDescriptorBufferOffsetsEXT(
18803 VkCommandBuffer commandBuffer,
18804 VkPipelineBindPoint pipelineBindPoint,
18805 VkPipelineLayout layout,
18806 uint32_t firstSet,
18807 uint32_t setCount,
18808 const uint32_t* pBufferIndices,
18809 const VkDeviceSize* pOffsets);
18810#endif
18811
18812#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18813VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorBufferEmbeddedSamplersEXT(
18814 VkCommandBuffer commandBuffer,
18815 VkPipelineBindPoint pipelineBindPoint,
18816 VkPipelineLayout layout,
18817 uint32_t set);
18818#endif
18819
18820#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18821VKAPI_ATTR VkResult VKAPI_CALL vkGetBufferOpaqueCaptureDescriptorDataEXT(
18822 VkDevice device,
18823 const VkBufferCaptureDescriptorDataInfoEXT* pInfo,
18824 void* pData);
18825#endif
18826
18827#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18828VKAPI_ATTR VkResult VKAPI_CALL vkGetImageOpaqueCaptureDescriptorDataEXT(
18829 VkDevice device,
18830 const VkImageCaptureDescriptorDataInfoEXT* pInfo,
18831 void* pData);
18832#endif
18833
18834#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18835VKAPI_ATTR VkResult VKAPI_CALL vkGetImageViewOpaqueCaptureDescriptorDataEXT(
18836 VkDevice device,
18837 const VkImageViewCaptureDescriptorDataInfoEXT* pInfo,
18838 void* pData);
18839#endif
18840
18841#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18842VKAPI_ATTR VkResult VKAPI_CALL vkGetSamplerOpaqueCaptureDescriptorDataEXT(
18843 VkDevice device,
18844 const VkSamplerCaptureDescriptorDataInfoEXT* pInfo,
18845 void* pData);
18846#endif
18847
18848#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18849VKAPI_ATTR VkResult VKAPI_CALL vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(
18850 VkDevice device,
18851 const VkAccelerationStructureCaptureDescriptorDataInfoEXT* pInfo,
18852 void* pData);
18853#endif
18854#endif
18855
18856
18857// VK_EXT_graphics_pipeline_library is a preprocessor guard. Do not pass it to API calls.
18858#define VK_EXT_graphics_pipeline_library 1
18859#define VK_EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION 1
18860#define VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME "VK_EXT_graphics_pipeline_library"
18861
18862typedef enum VkGraphicsPipelineLibraryFlagBitsEXT {
18863 VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT = 0x00000001,
18864 VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT = 0x00000002,
18865 VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT = 0x00000004,
18866 VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT = 0x00000008,
18867 VK_GRAPHICS_PIPELINE_LIBRARY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
18868} VkGraphicsPipelineLibraryFlagBitsEXT;
18869typedef VkFlags VkGraphicsPipelineLibraryFlagsEXT;
18870typedef struct VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT {
18871 VkStructureType sType;
18872 void* pNext;
18873 VkBool32 graphicsPipelineLibrary;
18874} VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT;
18875
18876typedef struct VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT {
18877 VkStructureType sType;
18878 void* pNext;
18879 VkBool32 graphicsPipelineLibraryFastLinking;
18880 VkBool32 graphicsPipelineLibraryIndependentInterpolationDecoration;
18881} VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT;
18882
18883typedef struct VkGraphicsPipelineLibraryCreateInfoEXT {
18884 VkStructureType sType;
18885 const void* pNext;
18886 VkGraphicsPipelineLibraryFlagsEXT flags;
18887} VkGraphicsPipelineLibraryCreateInfoEXT;
18888
18889
18890
18891// VK_AMD_shader_early_and_late_fragment_tests is a preprocessor guard. Do not pass it to API calls.
18892#define VK_AMD_shader_early_and_late_fragment_tests 1
18893#define VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION 1
18894#define VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME "VK_AMD_shader_early_and_late_fragment_tests"
18895typedef struct VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD {
18896 VkStructureType sType;
18897 void* pNext;
18898 VkBool32 shaderEarlyAndLateFragmentTests;
18899} VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD;
18900
18901
18902
18903// VK_NV_fragment_shading_rate_enums is a preprocessor guard. Do not pass it to API calls.
18904#define VK_NV_fragment_shading_rate_enums 1
18905#define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION 1
18906#define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME "VK_NV_fragment_shading_rate_enums"
18907
18908typedef enum VkFragmentShadingRateTypeNV {
18909 VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = 0,
18910 VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = 1,
18911 VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
18912} VkFragmentShadingRateTypeNV;
18913
18914typedef enum VkFragmentShadingRateNV {
18915 VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0,
18916 VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1,
18917 VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 4,
18918 VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 5,
18919 VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 6,
18920 VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 9,
18921 VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 10,
18922 VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 11,
18923 VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 12,
18924 VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 13,
18925 VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 14,
18926 VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = 15,
18927 VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV = 0x7FFFFFFF
18928} VkFragmentShadingRateNV;
18929typedef struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV {
18930 VkStructureType sType;
18931 void* pNext;
18932 VkBool32 fragmentShadingRateEnums;
18933 VkBool32 supersampleFragmentShadingRates;
18934 VkBool32 noInvocationFragmentShadingRates;
18935} VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV;
18936
18937typedef struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV {
18938 VkStructureType sType;
18939 void* pNext;
18940 VkSampleCountFlagBits maxFragmentShadingRateInvocationCount;
18941} VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV;
18942
18943typedef struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV {
18944 VkStructureType sType;
18945 const void* pNext;
18946 VkFragmentShadingRateTypeNV shadingRateType;
18947 VkFragmentShadingRateNV shadingRate;
18948 VkFragmentShadingRateCombinerOpKHR combinerOps[2];
18949} VkPipelineFragmentShadingRateEnumStateCreateInfoNV;
18950
18951typedef void (VKAPI_PTR *PFN_vkCmdSetFragmentShadingRateEnumNV)(VkCommandBuffer commandBuffer, VkFragmentShadingRateNV shadingRate, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]);
18952
18953#ifndef VK_NO_PROTOTYPES
18954#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18955VKAPI_ATTR void VKAPI_CALL vkCmdSetFragmentShadingRateEnumNV(
18956 VkCommandBuffer commandBuffer,
18957 VkFragmentShadingRateNV shadingRate,
18958 const VkFragmentShadingRateCombinerOpKHR combinerOps[2]);
18959#endif
18960#endif
18961
18962
18963// VK_NV_ray_tracing_motion_blur is a preprocessor guard. Do not pass it to API calls.
18964#define VK_NV_ray_tracing_motion_blur 1
18965#define VK_NV_RAY_TRACING_MOTION_BLUR_SPEC_VERSION 1
18966#define VK_NV_RAY_TRACING_MOTION_BLUR_EXTENSION_NAME "VK_NV_ray_tracing_motion_blur"
18967
18968typedef enum VkAccelerationStructureMotionInstanceTypeNV {
18969 VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV = 0,
18970 VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1,
18971 VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV = 2,
18972 VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
18973} VkAccelerationStructureMotionInstanceTypeNV;
18974typedef VkFlags VkAccelerationStructureMotionInfoFlagsNV;
18975typedef VkFlags VkAccelerationStructureMotionInstanceFlagsNV;
18976typedef union VkDeviceOrHostAddressConstKHR {
18977 VkDeviceAddress deviceAddress;
18978 const void* hostAddress;
18979} VkDeviceOrHostAddressConstKHR;
18980
18981typedef struct VkAccelerationStructureGeometryMotionTrianglesDataNV {
18982 VkStructureType sType;
18983 const void* pNext;
18984 VkDeviceOrHostAddressConstKHR vertexData;
18985} VkAccelerationStructureGeometryMotionTrianglesDataNV;
18986
18987typedef struct VkAccelerationStructureMotionInfoNV {
18988 VkStructureType sType;
18989 const void* pNext;
18990 uint32_t maxInstances;
18991 VkAccelerationStructureMotionInfoFlagsNV flags;
18992} VkAccelerationStructureMotionInfoNV;
18993
18994typedef struct VkAccelerationStructureMatrixMotionInstanceNV {
18995 VkTransformMatrixKHR transformT0;
18996 VkTransformMatrixKHR transformT1;
18997 uint32_t instanceCustomIndex:24;
18998 uint32_t mask:8;
18999 uint32_t instanceShaderBindingTableRecordOffset:24;
19000 VkGeometryInstanceFlagsKHR flags:8;
19001 uint64_t accelerationStructureReference;
19002} VkAccelerationStructureMatrixMotionInstanceNV;
19003
19004typedef struct VkSRTDataNV {
19005 float sx;
19006 float a;
19007 float b;
19008 float pvx;
19009 float sy;
19010 float c;
19011 float pvy;
19012 float sz;
19013 float pvz;
19014 float qx;
19015 float qy;
19016 float qz;
19017 float qw;
19018 float tx;
19019 float ty;
19020 float tz;
19021} VkSRTDataNV;
19022
19023typedef struct VkAccelerationStructureSRTMotionInstanceNV {
19024 VkSRTDataNV transformT0;
19025 VkSRTDataNV transformT1;
19026 uint32_t instanceCustomIndex:24;
19027 uint32_t mask:8;
19028 uint32_t instanceShaderBindingTableRecordOffset:24;
19029 VkGeometryInstanceFlagsKHR flags:8;
19030 uint64_t accelerationStructureReference;
19031} VkAccelerationStructureSRTMotionInstanceNV;
19032
19033typedef union VkAccelerationStructureMotionInstanceDataNV {
19034 VkAccelerationStructureInstanceKHR staticInstance;
19035 VkAccelerationStructureMatrixMotionInstanceNV matrixMotionInstance;
19036 VkAccelerationStructureSRTMotionInstanceNV srtMotionInstance;
19037} VkAccelerationStructureMotionInstanceDataNV;
19038
19039typedef struct VkAccelerationStructureMotionInstanceNV {
19040 VkAccelerationStructureMotionInstanceTypeNV type;
19041 VkAccelerationStructureMotionInstanceFlagsNV flags;
19042 VkAccelerationStructureMotionInstanceDataNV data;
19043} VkAccelerationStructureMotionInstanceNV;
19044
19045typedef struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV {
19046 VkStructureType sType;
19047 void* pNext;
19048 VkBool32 rayTracingMotionBlur;
19049 VkBool32 rayTracingMotionBlurPipelineTraceRaysIndirect;
19050} VkPhysicalDeviceRayTracingMotionBlurFeaturesNV;
19051
19052
19053
19054// VK_EXT_ycbcr_2plane_444_formats is a preprocessor guard. Do not pass it to API calls.
19055#define VK_EXT_ycbcr_2plane_444_formats 1
19056#define VK_EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION 1
19057#define VK_EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME "VK_EXT_ycbcr_2plane_444_formats"
19058typedef struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT {
19059 VkStructureType sType;
19060 void* pNext;
19061 VkBool32 ycbcr2plane444Formats;
19062} VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT;
19063
19064
19065
19066// VK_EXT_fragment_density_map2 is a preprocessor guard. Do not pass it to API calls.
19067#define VK_EXT_fragment_density_map2 1
19068#define VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION 1
19069#define VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME "VK_EXT_fragment_density_map2"
19070typedef struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT {
19071 VkStructureType sType;
19072 void* pNext;
19073 VkBool32 fragmentDensityMapDeferred;
19074} VkPhysicalDeviceFragmentDensityMap2FeaturesEXT;
19075
19076typedef struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT {
19077 VkStructureType sType;
19078 void* pNext;
19079 VkBool32 subsampledLoads;
19080 VkBool32 subsampledCoarseReconstructionEarlyAccess;
19081 uint32_t maxSubsampledArrayLayers;
19082 uint32_t maxDescriptorSetSubsampledSamplers;
19083} VkPhysicalDeviceFragmentDensityMap2PropertiesEXT;
19084
19085
19086
19087// VK_QCOM_rotated_copy_commands is a preprocessor guard. Do not pass it to API calls.
19088#define VK_QCOM_rotated_copy_commands 1
19089#define VK_QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION 2
19090#define VK_QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME "VK_QCOM_rotated_copy_commands"
19091typedef struct VkCopyCommandTransformInfoQCOM {
19092 VkStructureType sType;
19093 const void* pNext;
19094 VkSurfaceTransformFlagBitsKHR transform;
19095} VkCopyCommandTransformInfoQCOM;
19096
19097
19098
19099// VK_EXT_image_robustness is a preprocessor guard. Do not pass it to API calls.
19100#define VK_EXT_image_robustness 1
19101#define VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION 1
19102#define VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_image_robustness"
19103typedef VkPhysicalDeviceImageRobustnessFeatures VkPhysicalDeviceImageRobustnessFeaturesEXT;
19104
19105
19106
19107// VK_EXT_image_compression_control is a preprocessor guard. Do not pass it to API calls.
19108#define VK_EXT_image_compression_control 1
19109#define VK_EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION 1
19110#define VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME "VK_EXT_image_compression_control"
19111
19112typedef enum VkImageCompressionFlagBitsEXT {
19113 VK_IMAGE_COMPRESSION_DEFAULT_EXT = 0,
19114 VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT = 0x00000001,
19115 VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT = 0x00000002,
19116 VK_IMAGE_COMPRESSION_DISABLED_EXT = 0x00000004,
19117 VK_IMAGE_COMPRESSION_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
19118} VkImageCompressionFlagBitsEXT;
19119typedef VkFlags VkImageCompressionFlagsEXT;
19120
19121typedef enum VkImageCompressionFixedRateFlagBitsEXT {
19122 VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT = 0,
19123 VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT = 0x00000001,
19124 VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT = 0x00000002,
19125 VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT = 0x00000004,
19126 VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT = 0x00000008,
19127 VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT = 0x00000010,
19128 VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT = 0x00000020,
19129 VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT = 0x00000040,
19130 VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT = 0x00000080,
19131 VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT = 0x00000100,
19132 VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT = 0x00000200,
19133 VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT = 0x00000400,
19134 VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT = 0x00000800,
19135 VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT = 0x00001000,
19136 VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT = 0x00002000,
19137 VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT = 0x00004000,
19138 VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT = 0x00008000,
19139 VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT = 0x00010000,
19140 VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT = 0x00020000,
19141 VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT = 0x00040000,
19142 VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT = 0x00080000,
19143 VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT = 0x00100000,
19144 VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT = 0x00200000,
19145 VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT = 0x00400000,
19146 VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT = 0x00800000,
19147 VK_IMAGE_COMPRESSION_FIXED_RATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
19148} VkImageCompressionFixedRateFlagBitsEXT;
19149typedef VkFlags VkImageCompressionFixedRateFlagsEXT;
19150typedef struct VkPhysicalDeviceImageCompressionControlFeaturesEXT {
19151 VkStructureType sType;
19152 void* pNext;
19153 VkBool32 imageCompressionControl;
19154} VkPhysicalDeviceImageCompressionControlFeaturesEXT;
19155
19156typedef struct VkImageCompressionControlEXT {
19157 VkStructureType sType;
19158 const void* pNext;
19159 VkImageCompressionFlagsEXT flags;
19160 uint32_t compressionControlPlaneCount;
19161 VkImageCompressionFixedRateFlagsEXT* pFixedRateFlags;
19162} VkImageCompressionControlEXT;
19163
19164typedef struct VkImageCompressionPropertiesEXT {
19165 VkStructureType sType;
19166 void* pNext;
19167 VkImageCompressionFlagsEXT imageCompressionFlags;
19168 VkImageCompressionFixedRateFlagsEXT imageCompressionFixedRateFlags;
19169} VkImageCompressionPropertiesEXT;
19170
19171
19172
19173// VK_EXT_attachment_feedback_loop_layout is a preprocessor guard. Do not pass it to API calls.
19174#define VK_EXT_attachment_feedback_loop_layout 1
19175#define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_SPEC_VERSION 2
19176#define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME "VK_EXT_attachment_feedback_loop_layout"
19177typedef struct VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT {
19178 VkStructureType sType;
19179 void* pNext;
19180 VkBool32 attachmentFeedbackLoopLayout;
19181} VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT;
19182
19183
19184
19185// VK_EXT_4444_formats is a preprocessor guard. Do not pass it to API calls.
19186#define VK_EXT_4444_formats 1
19187#define VK_EXT_4444_FORMATS_SPEC_VERSION 1
19188#define VK_EXT_4444_FORMATS_EXTENSION_NAME "VK_EXT_4444_formats"
19189typedef struct VkPhysicalDevice4444FormatsFeaturesEXT {
19190 VkStructureType sType;
19191 void* pNext;
19192 VkBool32 formatA4R4G4B4;
19193 VkBool32 formatA4B4G4R4;
19194} VkPhysicalDevice4444FormatsFeaturesEXT;
19195
19196
19197
19198// VK_EXT_device_fault is a preprocessor guard. Do not pass it to API calls.
19199#define VK_EXT_device_fault 1
19200#define VK_EXT_DEVICE_FAULT_SPEC_VERSION 2
19201#define VK_EXT_DEVICE_FAULT_EXTENSION_NAME "VK_EXT_device_fault"
19202
19203typedef enum VkDeviceFaultAddressTypeEXT {
19204 VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT = 0,
19205 VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT = 1,
19206 VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT = 2,
19207 VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT = 3,
19208 VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT = 4,
19209 VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT = 5,
19210 VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT = 6,
19211 VK_DEVICE_FAULT_ADDRESS_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
19212} VkDeviceFaultAddressTypeEXT;
19213
19214typedef enum VkDeviceFaultVendorBinaryHeaderVersionEXT {
19215 VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT = 1,
19216 VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF
19217} VkDeviceFaultVendorBinaryHeaderVersionEXT;
19218typedef struct VkPhysicalDeviceFaultFeaturesEXT {
19219 VkStructureType sType;
19220 void* pNext;
19221 VkBool32 deviceFault;
19222 VkBool32 deviceFaultVendorBinary;
19223} VkPhysicalDeviceFaultFeaturesEXT;
19224
19225typedef struct VkDeviceFaultCountsEXT {
19226 VkStructureType sType;
19227 void* pNext;
19228 uint32_t addressInfoCount;
19229 uint32_t vendorInfoCount;
19230 VkDeviceSize vendorBinarySize;
19231} VkDeviceFaultCountsEXT;
19232
19233typedef struct VkDeviceFaultAddressInfoEXT {
19234 VkDeviceFaultAddressTypeEXT addressType;
19235 VkDeviceAddress reportedAddress;
19236 VkDeviceSize addressPrecision;
19237} VkDeviceFaultAddressInfoEXT;
19238
19239typedef struct VkDeviceFaultVendorInfoEXT {
19240 char description[VK_MAX_DESCRIPTION_SIZE];
19241 uint64_t vendorFaultCode;
19242 uint64_t vendorFaultData;
19243} VkDeviceFaultVendorInfoEXT;
19244
19245typedef struct VkDeviceFaultInfoEXT {
19246 VkStructureType sType;
19247 void* pNext;
19248 char description[VK_MAX_DESCRIPTION_SIZE];
19249 VkDeviceFaultAddressInfoEXT* pAddressInfos;
19250 VkDeviceFaultVendorInfoEXT* pVendorInfos;
19251 void* pVendorBinaryData;
19252} VkDeviceFaultInfoEXT;
19253
19254typedef struct VkDeviceFaultVendorBinaryHeaderVersionOneEXT {
19255 uint32_t headerSize;
19256 VkDeviceFaultVendorBinaryHeaderVersionEXT headerVersion;
19257 uint32_t vendorID;
19258 uint32_t deviceID;
19259 uint32_t driverVersion;
19260 uint8_t pipelineCacheUUID[VK_UUID_SIZE];
19261 uint32_t applicationNameOffset;
19262 uint32_t applicationVersion;
19263 uint32_t engineNameOffset;
19264 uint32_t engineVersion;
19265 uint32_t apiVersion;
19266} VkDeviceFaultVendorBinaryHeaderVersionOneEXT;
19267
19268typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceFaultInfoEXT)(VkDevice device, VkDeviceFaultCountsEXT* pFaultCounts, VkDeviceFaultInfoEXT* pFaultInfo);
19269
19270#ifndef VK_NO_PROTOTYPES
19271#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19272VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceFaultInfoEXT(
19273 VkDevice device,
19274 VkDeviceFaultCountsEXT* pFaultCounts,
19275 VkDeviceFaultInfoEXT* pFaultInfo);
19276#endif
19277#endif
19278
19279
19280// VK_ARM_rasterization_order_attachment_access is a preprocessor guard. Do not pass it to API calls.
19281#define VK_ARM_rasterization_order_attachment_access 1
19282#define VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION 1
19283#define VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME "VK_ARM_rasterization_order_attachment_access"
19284typedef struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT {
19285 VkStructureType sType;
19286 void* pNext;
19287 VkBool32 rasterizationOrderColorAttachmentAccess;
19288 VkBool32 rasterizationOrderDepthAttachmentAccess;
19289 VkBool32 rasterizationOrderStencilAttachmentAccess;
19290} VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT;
19291
19292typedef VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM;
19293
19294
19295
19296// VK_EXT_rgba10x6_formats is a preprocessor guard. Do not pass it to API calls.
19297#define VK_EXT_rgba10x6_formats 1
19298#define VK_EXT_RGBA10X6_FORMATS_SPEC_VERSION 1
19299#define VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME "VK_EXT_rgba10x6_formats"
19300typedef struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT {
19301 VkStructureType sType;
19302 void* pNext;
19303 VkBool32 formatRgba10x6WithoutYCbCrSampler;
19304} VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT;
19305
19306
19307
19308// VK_VALVE_mutable_descriptor_type is a preprocessor guard. Do not pass it to API calls.
19309#define VK_VALVE_mutable_descriptor_type 1
19310#define VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION 1
19311#define VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME "VK_VALVE_mutable_descriptor_type"
19312typedef struct VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT {
19313 VkStructureType sType;
19314 void* pNext;
19315 VkBool32 mutableDescriptorType;
19316} VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT;
19317
19318typedef VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE;
19319
19320typedef struct VkMutableDescriptorTypeListEXT {
19321 uint32_t descriptorTypeCount;
19322 const VkDescriptorType* pDescriptorTypes;
19323} VkMutableDescriptorTypeListEXT;
19324
19325typedef VkMutableDescriptorTypeListEXT VkMutableDescriptorTypeListVALVE;
19326
19327typedef struct VkMutableDescriptorTypeCreateInfoEXT {
19328 VkStructureType sType;
19329 const void* pNext;
19330 uint32_t mutableDescriptorTypeListCount;
19331 const VkMutableDescriptorTypeListEXT* pMutableDescriptorTypeLists;
19332} VkMutableDescriptorTypeCreateInfoEXT;
19333
19334typedef VkMutableDescriptorTypeCreateInfoEXT VkMutableDescriptorTypeCreateInfoVALVE;
19335
19336
19337
19338// VK_EXT_vertex_input_dynamic_state is a preprocessor guard. Do not pass it to API calls.
19339#define VK_EXT_vertex_input_dynamic_state 1
19340#define VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION 2
19341#define VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_vertex_input_dynamic_state"
19342typedef struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT {
19343 VkStructureType sType;
19344 void* pNext;
19345 VkBool32 vertexInputDynamicState;
19346} VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT;
19347
19348typedef struct VkVertexInputBindingDescription2EXT {
19349 VkStructureType sType;
19350 void* pNext;
19351 uint32_t binding;
19352 uint32_t stride;
19353 VkVertexInputRate inputRate;
19354 uint32_t divisor;
19355} VkVertexInputBindingDescription2EXT;
19356
19357typedef struct VkVertexInputAttributeDescription2EXT {
19358 VkStructureType sType;
19359 void* pNext;
19360 uint32_t location;
19361 uint32_t binding;
19362 VkFormat format;
19363 uint32_t offset;
19364} VkVertexInputAttributeDescription2EXT;
19365
19366typedef void (VKAPI_PTR *PFN_vkCmdSetVertexInputEXT)(VkCommandBuffer commandBuffer, uint32_t vertexBindingDescriptionCount, const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions, uint32_t vertexAttributeDescriptionCount, const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions);
19367
19368#ifndef VK_NO_PROTOTYPES
19369#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19370VKAPI_ATTR void VKAPI_CALL vkCmdSetVertexInputEXT(
19371 VkCommandBuffer commandBuffer,
19372 uint32_t vertexBindingDescriptionCount,
19373 const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions,
19374 uint32_t vertexAttributeDescriptionCount,
19375 const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions);
19376#endif
19377#endif
19378
19379
19380// VK_EXT_physical_device_drm is a preprocessor guard. Do not pass it to API calls.
19381#define VK_EXT_physical_device_drm 1
19382#define VK_EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION 1
19383#define VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME "VK_EXT_physical_device_drm"
19384typedef struct VkPhysicalDeviceDrmPropertiesEXT {
19385 VkStructureType sType;
19386 void* pNext;
19387 VkBool32 hasPrimary;
19388 VkBool32 hasRender;
19389 int64_t primaryMajor;
19390 int64_t primaryMinor;
19391 int64_t renderMajor;
19392 int64_t renderMinor;
19393} VkPhysicalDeviceDrmPropertiesEXT;
19394
19395
19396
19397// VK_EXT_device_address_binding_report is a preprocessor guard. Do not pass it to API calls.
19398#define VK_EXT_device_address_binding_report 1
19399#define VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_SPEC_VERSION 1
19400#define VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_EXTENSION_NAME "VK_EXT_device_address_binding_report"
19401
19402typedef enum VkDeviceAddressBindingTypeEXT {
19403 VK_DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT = 0,
19404 VK_DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT = 1,
19405 VK_DEVICE_ADDRESS_BINDING_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
19406} VkDeviceAddressBindingTypeEXT;
19407
19408typedef enum VkDeviceAddressBindingFlagBitsEXT {
19409 VK_DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT = 0x00000001,
19410 VK_DEVICE_ADDRESS_BINDING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
19411} VkDeviceAddressBindingFlagBitsEXT;
19412typedef VkFlags VkDeviceAddressBindingFlagsEXT;
19413typedef struct VkPhysicalDeviceAddressBindingReportFeaturesEXT {
19414 VkStructureType sType;
19415 void* pNext;
19416 VkBool32 reportAddressBinding;
19417} VkPhysicalDeviceAddressBindingReportFeaturesEXT;
19418
19419typedef struct VkDeviceAddressBindingCallbackDataEXT {
19420 VkStructureType sType;
19421 void* pNext;
19422 VkDeviceAddressBindingFlagsEXT flags;
19423 VkDeviceAddress baseAddress;
19424 VkDeviceSize size;
19425 VkDeviceAddressBindingTypeEXT bindingType;
19426} VkDeviceAddressBindingCallbackDataEXT;
19427
19428
19429
19430// VK_EXT_depth_clip_control is a preprocessor guard. Do not pass it to API calls.
19431#define VK_EXT_depth_clip_control 1
19432#define VK_EXT_DEPTH_CLIP_CONTROL_SPEC_VERSION 1
19433#define VK_EXT_DEPTH_CLIP_CONTROL_EXTENSION_NAME "VK_EXT_depth_clip_control"
19434typedef struct VkPhysicalDeviceDepthClipControlFeaturesEXT {
19435 VkStructureType sType;
19436 void* pNext;
19437 VkBool32 depthClipControl;
19438} VkPhysicalDeviceDepthClipControlFeaturesEXT;
19439
19440typedef struct VkPipelineViewportDepthClipControlCreateInfoEXT {
19441 VkStructureType sType;
19442 const void* pNext;
19443 VkBool32 negativeOneToOne;
19444} VkPipelineViewportDepthClipControlCreateInfoEXT;
19445
19446
19447
19448// VK_EXT_primitive_topology_list_restart is a preprocessor guard. Do not pass it to API calls.
19449#define VK_EXT_primitive_topology_list_restart 1
19450#define VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_SPEC_VERSION 1
19451#define VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_EXTENSION_NAME "VK_EXT_primitive_topology_list_restart"
19452typedef struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT {
19453 VkStructureType sType;
19454 void* pNext;
19455 VkBool32 primitiveTopologyListRestart;
19456 VkBool32 primitiveTopologyPatchListRestart;
19457} VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT;
19458
19459
19460
19461// VK_EXT_present_mode_fifo_latest_ready is a preprocessor guard. Do not pass it to API calls.
19462#define VK_EXT_present_mode_fifo_latest_ready 1
19463#define VK_EXT_PRESENT_MODE_FIFO_LATEST_READY_SPEC_VERSION 1
19464#define VK_EXT_PRESENT_MODE_FIFO_LATEST_READY_EXTENSION_NAME "VK_EXT_present_mode_fifo_latest_ready"
19465typedef VkPhysicalDevicePresentModeFifoLatestReadyFeaturesKHR VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT;
19466
19467
19468
19469// VK_HUAWEI_subpass_shading is a preprocessor guard. Do not pass it to API calls.
19470#define VK_HUAWEI_subpass_shading 1
19471#define VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION 3
19472#define VK_HUAWEI_SUBPASS_SHADING_EXTENSION_NAME "VK_HUAWEI_subpass_shading"
19473typedef struct VkSubpassShadingPipelineCreateInfoHUAWEI {
19474 VkStructureType sType;
19475 void* pNext;
19476 VkRenderPass renderPass;
19477 uint32_t subpass;
19478} VkSubpassShadingPipelineCreateInfoHUAWEI;
19479
19480typedef struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI {
19481 VkStructureType sType;
19482 void* pNext;
19483 VkBool32 subpassShading;
19484} VkPhysicalDeviceSubpassShadingFeaturesHUAWEI;
19485
19486typedef struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI {
19487 VkStructureType sType;
19488 void* pNext;
19489 uint32_t maxSubpassShadingWorkgroupSizeAspectRatio;
19490} VkPhysicalDeviceSubpassShadingPropertiesHUAWEI;
19491
19492typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI)(VkDevice device, VkRenderPass renderpass, VkExtent2D* pMaxWorkgroupSize);
19493typedef void (VKAPI_PTR *PFN_vkCmdSubpassShadingHUAWEI)(VkCommandBuffer commandBuffer);
19494
19495#ifndef VK_NO_PROTOTYPES
19496#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19497VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(
19498 VkDevice device,
19499 VkRenderPass renderpass,
19500 VkExtent2D* pMaxWorkgroupSize);
19501#endif
19502
19503#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19504VKAPI_ATTR void VKAPI_CALL vkCmdSubpassShadingHUAWEI(
19505 VkCommandBuffer commandBuffer);
19506#endif
19507#endif
19508
19509
19510// VK_HUAWEI_invocation_mask is a preprocessor guard. Do not pass it to API calls.
19511#define VK_HUAWEI_invocation_mask 1
19512#define VK_HUAWEI_INVOCATION_MASK_SPEC_VERSION 1
19513#define VK_HUAWEI_INVOCATION_MASK_EXTENSION_NAME "VK_HUAWEI_invocation_mask"
19514typedef struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI {
19515 VkStructureType sType;
19516 void* pNext;
19517 VkBool32 invocationMask;
19518} VkPhysicalDeviceInvocationMaskFeaturesHUAWEI;
19519
19520typedef void (VKAPI_PTR *PFN_vkCmdBindInvocationMaskHUAWEI)(VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout);
19521
19522#ifndef VK_NO_PROTOTYPES
19523#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19524VKAPI_ATTR void VKAPI_CALL vkCmdBindInvocationMaskHUAWEI(
19525 VkCommandBuffer commandBuffer,
19526 VkImageView imageView,
19527 VkImageLayout imageLayout);
19528#endif
19529#endif
19530
19531
19532// VK_NV_external_memory_rdma is a preprocessor guard. Do not pass it to API calls.
19533#define VK_NV_external_memory_rdma 1
19534typedef void* VkRemoteAddressNV;
19535#define VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION 1
19536#define VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME "VK_NV_external_memory_rdma"
19537typedef struct VkMemoryGetRemoteAddressInfoNV {
19538 VkStructureType sType;
19539 const void* pNext;
19540 VkDeviceMemory memory;
19541 VkExternalMemoryHandleTypeFlagBits handleType;
19542} VkMemoryGetRemoteAddressInfoNV;
19543
19544typedef struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV {
19545 VkStructureType sType;
19546 void* pNext;
19547 VkBool32 externalMemoryRDMA;
19548} VkPhysicalDeviceExternalMemoryRDMAFeaturesNV;
19549
19550typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryRemoteAddressNV)(VkDevice device, const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo, VkRemoteAddressNV* pAddress);
19551
19552#ifndef VK_NO_PROTOTYPES
19553#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19554VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryRemoteAddressNV(
19555 VkDevice device,
19556 const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo,
19557 VkRemoteAddressNV* pAddress);
19558#endif
19559#endif
19560
19561
19562// VK_EXT_pipeline_properties is a preprocessor guard. Do not pass it to API calls.
19563#define VK_EXT_pipeline_properties 1
19564#define VK_EXT_PIPELINE_PROPERTIES_SPEC_VERSION 1
19565#define VK_EXT_PIPELINE_PROPERTIES_EXTENSION_NAME "VK_EXT_pipeline_properties"
19566typedef VkPipelineInfoKHR VkPipelineInfoEXT;
19567
19568typedef struct VkPipelinePropertiesIdentifierEXT {
19569 VkStructureType sType;
19570 void* pNext;
19571 uint8_t pipelineIdentifier[VK_UUID_SIZE];
19572} VkPipelinePropertiesIdentifierEXT;
19573
19574typedef struct VkPhysicalDevicePipelinePropertiesFeaturesEXT {
19575 VkStructureType sType;
19576 void* pNext;
19577 VkBool32 pipelinePropertiesIdentifier;
19578} VkPhysicalDevicePipelinePropertiesFeaturesEXT;
19579
19580typedef VkResult (VKAPI_PTR *PFN_vkGetPipelinePropertiesEXT)(VkDevice device, const VkPipelineInfoEXT* pPipelineInfo, VkBaseOutStructure* pPipelineProperties);
19581
19582#ifndef VK_NO_PROTOTYPES
19583#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19584VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelinePropertiesEXT(
19585 VkDevice device,
19586 const VkPipelineInfoEXT* pPipelineInfo,
19587 VkBaseOutStructure* pPipelineProperties);
19588#endif
19589#endif
19590
19591
19592// VK_EXT_frame_boundary is a preprocessor guard. Do not pass it to API calls.
19593#define VK_EXT_frame_boundary 1
19594#define VK_EXT_FRAME_BOUNDARY_SPEC_VERSION 1
19595#define VK_EXT_FRAME_BOUNDARY_EXTENSION_NAME "VK_EXT_frame_boundary"
19596
19597typedef enum VkFrameBoundaryFlagBitsEXT {
19598 VK_FRAME_BOUNDARY_FRAME_END_BIT_EXT = 0x00000001,
19599 VK_FRAME_BOUNDARY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
19600} VkFrameBoundaryFlagBitsEXT;
19601typedef VkFlags VkFrameBoundaryFlagsEXT;
19602typedef struct VkPhysicalDeviceFrameBoundaryFeaturesEXT {
19603 VkStructureType sType;
19604 void* pNext;
19605 VkBool32 frameBoundary;
19606} VkPhysicalDeviceFrameBoundaryFeaturesEXT;
19607
19608typedef struct VkFrameBoundaryEXT {
19609 VkStructureType sType;
19610 const void* pNext;
19611 VkFrameBoundaryFlagsEXT flags;
19612 uint64_t frameID;
19613 uint32_t imageCount;
19614 const VkImage* pImages;
19615 uint32_t bufferCount;
19616 const VkBuffer* pBuffers;
19617 uint64_t tagName;
19618 size_t tagSize;
19619 const void* pTag;
19620} VkFrameBoundaryEXT;
19621
19622
19623
19624// VK_EXT_multisampled_render_to_single_sampled is a preprocessor guard. Do not pass it to API calls.
19625#define VK_EXT_multisampled_render_to_single_sampled 1
19626#define VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION 1
19627#define VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME "VK_EXT_multisampled_render_to_single_sampled"
19628typedef struct VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT {
19629 VkStructureType sType;
19630 void* pNext;
19631 VkBool32 multisampledRenderToSingleSampled;
19632} VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT;
19633
19634typedef struct VkSubpassResolvePerformanceQueryEXT {
19635 VkStructureType sType;
19636 void* pNext;
19637 VkBool32 optimal;
19638} VkSubpassResolvePerformanceQueryEXT;
19639
19640typedef struct VkMultisampledRenderToSingleSampledInfoEXT {
19641 VkStructureType sType;
19642 const void* pNext;
19643 VkBool32 multisampledRenderToSingleSampledEnable;
19644 VkSampleCountFlagBits rasterizationSamples;
19645} VkMultisampledRenderToSingleSampledInfoEXT;
19646
19647
19648
19649// VK_EXT_extended_dynamic_state2 is a preprocessor guard. Do not pass it to API calls.
19650#define VK_EXT_extended_dynamic_state2 1
19651#define VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION 1
19652#define VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME "VK_EXT_extended_dynamic_state2"
19653typedef struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT {
19654 VkStructureType sType;
19655 void* pNext;
19656 VkBool32 extendedDynamicState2;
19657 VkBool32 extendedDynamicState2LogicOp;
19658 VkBool32 extendedDynamicState2PatchControlPoints;
19659} VkPhysicalDeviceExtendedDynamicState2FeaturesEXT;
19660
19661typedef void (VKAPI_PTR *PFN_vkCmdSetPatchControlPointsEXT)(VkCommandBuffer commandBuffer, uint32_t patchControlPoints);
19662typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizerDiscardEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable);
19663typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBiasEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable);
19664typedef void (VKAPI_PTR *PFN_vkCmdSetLogicOpEXT)(VkCommandBuffer commandBuffer, VkLogicOp logicOp);
19665typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveRestartEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable);
19666
19667#ifndef VK_NO_PROTOTYPES
19668#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19669VKAPI_ATTR void VKAPI_CALL vkCmdSetPatchControlPointsEXT(
19670 VkCommandBuffer commandBuffer,
19671 uint32_t patchControlPoints);
19672#endif
19673
19674#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19675VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizerDiscardEnableEXT(
19676 VkCommandBuffer commandBuffer,
19677 VkBool32 rasterizerDiscardEnable);
19678#endif
19679
19680#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19681VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBiasEnableEXT(
19682 VkCommandBuffer commandBuffer,
19683 VkBool32 depthBiasEnable);
19684#endif
19685
19686#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19687VKAPI_ATTR void VKAPI_CALL vkCmdSetLogicOpEXT(
19688 VkCommandBuffer commandBuffer,
19689 VkLogicOp logicOp);
19690#endif
19691
19692#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19693VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveRestartEnableEXT(
19694 VkCommandBuffer commandBuffer,
19695 VkBool32 primitiveRestartEnable);
19696#endif
19697#endif
19698
19699
19700// VK_EXT_color_write_enable is a preprocessor guard. Do not pass it to API calls.
19701#define VK_EXT_color_write_enable 1
19702#define VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION 1
19703#define VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME "VK_EXT_color_write_enable"
19704typedef struct VkPhysicalDeviceColorWriteEnableFeaturesEXT {
19705 VkStructureType sType;
19706 void* pNext;
19707 VkBool32 colorWriteEnable;
19708} VkPhysicalDeviceColorWriteEnableFeaturesEXT;
19709
19710typedef struct VkPipelineColorWriteCreateInfoEXT {
19711 VkStructureType sType;
19712 const void* pNext;
19713 uint32_t attachmentCount;
19714 const VkBool32* pColorWriteEnables;
19715} VkPipelineColorWriteCreateInfoEXT;
19716
19717typedef void (VKAPI_PTR *PFN_vkCmdSetColorWriteEnableEXT)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkBool32* pColorWriteEnables);
19718
19719#ifndef VK_NO_PROTOTYPES
19720#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19721VKAPI_ATTR void VKAPI_CALL vkCmdSetColorWriteEnableEXT(
19722 VkCommandBuffer commandBuffer,
19723 uint32_t attachmentCount,
19724 const VkBool32* pColorWriteEnables);
19725#endif
19726#endif
19727
19728
19729// VK_EXT_primitives_generated_query is a preprocessor guard. Do not pass it to API calls.
19730#define VK_EXT_primitives_generated_query 1
19731#define VK_EXT_PRIMITIVES_GENERATED_QUERY_SPEC_VERSION 1
19732#define VK_EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME "VK_EXT_primitives_generated_query"
19733typedef struct VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT {
19734 VkStructureType sType;
19735 void* pNext;
19736 VkBool32 primitivesGeneratedQuery;
19737 VkBool32 primitivesGeneratedQueryWithRasterizerDiscard;
19738 VkBool32 primitivesGeneratedQueryWithNonZeroStreams;
19739} VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT;
19740
19741
19742
19743// VK_EXT_global_priority_query is a preprocessor guard. Do not pass it to API calls.
19744#define VK_EXT_global_priority_query 1
19745#define VK_EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION 1
19746#define VK_EXT_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME "VK_EXT_global_priority_query"
19747#define VK_MAX_GLOBAL_PRIORITY_SIZE_EXT VK_MAX_GLOBAL_PRIORITY_SIZE
19748typedef VkPhysicalDeviceGlobalPriorityQueryFeatures VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT;
19749
19750typedef VkQueueFamilyGlobalPriorityProperties VkQueueFamilyGlobalPriorityPropertiesEXT;
19751
19752
19753
19754// VK_VALVE_video_encode_rgb_conversion is a preprocessor guard. Do not pass it to API calls.
19755#define VK_VALVE_video_encode_rgb_conversion 1
19756#define VK_VALVE_VIDEO_ENCODE_RGB_CONVERSION_SPEC_VERSION 1
19757#define VK_VALVE_VIDEO_ENCODE_RGB_CONVERSION_EXTENSION_NAME "VK_VALVE_video_encode_rgb_conversion"
19758
19759typedef enum VkVideoEncodeRgbModelConversionFlagBitsVALVE {
19760 VK_VIDEO_ENCODE_RGB_MODEL_CONVERSION_RGB_IDENTITY_BIT_VALVE = 0x00000001,
19761 VK_VIDEO_ENCODE_RGB_MODEL_CONVERSION_YCBCR_IDENTITY_BIT_VALVE = 0x00000002,
19762 VK_VIDEO_ENCODE_RGB_MODEL_CONVERSION_YCBCR_709_BIT_VALVE = 0x00000004,
19763 VK_VIDEO_ENCODE_RGB_MODEL_CONVERSION_YCBCR_601_BIT_VALVE = 0x00000008,
19764 VK_VIDEO_ENCODE_RGB_MODEL_CONVERSION_YCBCR_2020_BIT_VALVE = 0x00000010,
19765 VK_VIDEO_ENCODE_RGB_MODEL_CONVERSION_FLAG_BITS_MAX_ENUM_VALVE = 0x7FFFFFFF
19766} VkVideoEncodeRgbModelConversionFlagBitsVALVE;
19767typedef VkFlags VkVideoEncodeRgbModelConversionFlagsVALVE;
19768
19769typedef enum VkVideoEncodeRgbRangeCompressionFlagBitsVALVE {
19770 VK_VIDEO_ENCODE_RGB_RANGE_COMPRESSION_FULL_RANGE_BIT_VALVE = 0x00000001,
19771 VK_VIDEO_ENCODE_RGB_RANGE_COMPRESSION_NARROW_RANGE_BIT_VALVE = 0x00000002,
19772 VK_VIDEO_ENCODE_RGB_RANGE_COMPRESSION_FLAG_BITS_MAX_ENUM_VALVE = 0x7FFFFFFF
19773} VkVideoEncodeRgbRangeCompressionFlagBitsVALVE;
19774typedef VkFlags VkVideoEncodeRgbRangeCompressionFlagsVALVE;
19775
19776typedef enum VkVideoEncodeRgbChromaOffsetFlagBitsVALVE {
19777 VK_VIDEO_ENCODE_RGB_CHROMA_OFFSET_COSITED_EVEN_BIT_VALVE = 0x00000001,
19778 VK_VIDEO_ENCODE_RGB_CHROMA_OFFSET_MIDPOINT_BIT_VALVE = 0x00000002,
19779 VK_VIDEO_ENCODE_RGB_CHROMA_OFFSET_FLAG_BITS_MAX_ENUM_VALVE = 0x7FFFFFFF
19780} VkVideoEncodeRgbChromaOffsetFlagBitsVALVE;
19781typedef VkFlags VkVideoEncodeRgbChromaOffsetFlagsVALVE;
19782typedef struct VkPhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE {
19783 VkStructureType sType;
19784 void* pNext;
19785 VkBool32 videoEncodeRgbConversion;
19786} VkPhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE;
19787
19788typedef struct VkVideoEncodeRgbConversionCapabilitiesVALVE {
19789 VkStructureType sType;
19790 void* pNext;
19791 VkVideoEncodeRgbModelConversionFlagsVALVE rgbModels;
19792 VkVideoEncodeRgbRangeCompressionFlagsVALVE rgbRanges;
19793 VkVideoEncodeRgbChromaOffsetFlagsVALVE xChromaOffsets;
19794 VkVideoEncodeRgbChromaOffsetFlagsVALVE yChromaOffsets;
19795} VkVideoEncodeRgbConversionCapabilitiesVALVE;
19796
19797typedef struct VkVideoEncodeProfileRgbConversionInfoVALVE {
19798 VkStructureType sType;
19799 const void* pNext;
19800 VkBool32 performEncodeRgbConversion;
19801} VkVideoEncodeProfileRgbConversionInfoVALVE;
19802
19803typedef struct VkVideoEncodeSessionRgbConversionCreateInfoVALVE {
19804 VkStructureType sType;
19805 const void* pNext;
19806 VkVideoEncodeRgbModelConversionFlagBitsVALVE rgbModel;
19807 VkVideoEncodeRgbRangeCompressionFlagBitsVALVE rgbRange;
19808 VkVideoEncodeRgbChromaOffsetFlagBitsVALVE xChromaOffset;
19809 VkVideoEncodeRgbChromaOffsetFlagBitsVALVE yChromaOffset;
19810} VkVideoEncodeSessionRgbConversionCreateInfoVALVE;
19811
19812
19813
19814// VK_EXT_image_view_min_lod is a preprocessor guard. Do not pass it to API calls.
19815#define VK_EXT_image_view_min_lod 1
19816#define VK_EXT_IMAGE_VIEW_MIN_LOD_SPEC_VERSION 1
19817#define VK_EXT_IMAGE_VIEW_MIN_LOD_EXTENSION_NAME "VK_EXT_image_view_min_lod"
19818typedef struct VkPhysicalDeviceImageViewMinLodFeaturesEXT {
19819 VkStructureType sType;
19820 void* pNext;
19821 VkBool32 minLod;
19822} VkPhysicalDeviceImageViewMinLodFeaturesEXT;
19823
19824typedef struct VkImageViewMinLodCreateInfoEXT {
19825 VkStructureType sType;
19826 const void* pNext;
19827 float minLod;
19828} VkImageViewMinLodCreateInfoEXT;
19829
19830
19831
19832// VK_EXT_multi_draw is a preprocessor guard. Do not pass it to API calls.
19833#define VK_EXT_multi_draw 1
19834#define VK_EXT_MULTI_DRAW_SPEC_VERSION 1
19835#define VK_EXT_MULTI_DRAW_EXTENSION_NAME "VK_EXT_multi_draw"
19836typedef struct VkPhysicalDeviceMultiDrawFeaturesEXT {
19837 VkStructureType sType;
19838 void* pNext;
19839 VkBool32 multiDraw;
19840} VkPhysicalDeviceMultiDrawFeaturesEXT;
19841
19842typedef struct VkPhysicalDeviceMultiDrawPropertiesEXT {
19843 VkStructureType sType;
19844 void* pNext;
19845 uint32_t maxMultiDrawCount;
19846} VkPhysicalDeviceMultiDrawPropertiesEXT;
19847
19848typedef struct VkMultiDrawInfoEXT {
19849 uint32_t firstVertex;
19850 uint32_t vertexCount;
19851} VkMultiDrawInfoEXT;
19852
19853typedef struct VkMultiDrawIndexedInfoEXT {
19854 uint32_t firstIndex;
19855 uint32_t indexCount;
19856 int32_t vertexOffset;
19857} VkMultiDrawIndexedInfoEXT;
19858
19859typedef void (VKAPI_PTR *PFN_vkCmdDrawMultiEXT)(VkCommandBuffer commandBuffer, uint32_t drawCount, const VkMultiDrawInfoEXT* pVertexInfo, uint32_t instanceCount, uint32_t firstInstance, uint32_t stride);
19860typedef void (VKAPI_PTR *PFN_vkCmdDrawMultiIndexedEXT)(VkCommandBuffer commandBuffer, uint32_t drawCount, const VkMultiDrawIndexedInfoEXT* pIndexInfo, uint32_t instanceCount, uint32_t firstInstance, uint32_t stride, const int32_t* pVertexOffset);
19861
19862#ifndef VK_NO_PROTOTYPES
19863#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19864VKAPI_ATTR void VKAPI_CALL vkCmdDrawMultiEXT(
19865 VkCommandBuffer commandBuffer,
19866 uint32_t drawCount,
19867 const VkMultiDrawInfoEXT* pVertexInfo,
19868 uint32_t instanceCount,
19869 uint32_t firstInstance,
19870 uint32_t stride);
19871#endif
19872
19873#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19874VKAPI_ATTR void VKAPI_CALL vkCmdDrawMultiIndexedEXT(
19875 VkCommandBuffer commandBuffer,
19876 uint32_t drawCount,
19877 const VkMultiDrawIndexedInfoEXT* pIndexInfo,
19878 uint32_t instanceCount,
19879 uint32_t firstInstance,
19880 uint32_t stride,
19881 const int32_t* pVertexOffset);
19882#endif
19883#endif
19884
19885
19886// VK_EXT_image_2d_view_of_3d is a preprocessor guard. Do not pass it to API calls.
19887#define VK_EXT_image_2d_view_of_3d 1
19888#define VK_EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION 1
19889#define VK_EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME "VK_EXT_image_2d_view_of_3d"
19890typedef struct VkPhysicalDeviceImage2DViewOf3DFeaturesEXT {
19891 VkStructureType sType;
19892 void* pNext;
19893 VkBool32 image2DViewOf3D;
19894 VkBool32 sampler2DViewOf3D;
19895} VkPhysicalDeviceImage2DViewOf3DFeaturesEXT;
19896
19897
19898
19899// VK_EXT_shader_tile_image is a preprocessor guard. Do not pass it to API calls.
19900#define VK_EXT_shader_tile_image 1
19901#define VK_EXT_SHADER_TILE_IMAGE_SPEC_VERSION 1
19902#define VK_EXT_SHADER_TILE_IMAGE_EXTENSION_NAME "VK_EXT_shader_tile_image"
19903typedef struct VkPhysicalDeviceShaderTileImageFeaturesEXT {
19904 VkStructureType sType;
19905 void* pNext;
19906 VkBool32 shaderTileImageColorReadAccess;
19907 VkBool32 shaderTileImageDepthReadAccess;
19908 VkBool32 shaderTileImageStencilReadAccess;
19909} VkPhysicalDeviceShaderTileImageFeaturesEXT;
19910
19911typedef struct VkPhysicalDeviceShaderTileImagePropertiesEXT {
19912 VkStructureType sType;
19913 void* pNext;
19914 VkBool32 shaderTileImageCoherentReadAccelerated;
19915 VkBool32 shaderTileImageReadSampleFromPixelRateInvocation;
19916 VkBool32 shaderTileImageReadFromHelperInvocation;
19917} VkPhysicalDeviceShaderTileImagePropertiesEXT;
19918
19919
19920
19921// VK_EXT_opacity_micromap is a preprocessor guard. Do not pass it to API calls.
19922#define VK_EXT_opacity_micromap 1
19923VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkMicromapEXT)
19924#define VK_EXT_OPACITY_MICROMAP_SPEC_VERSION 2
19925#define VK_EXT_OPACITY_MICROMAP_EXTENSION_NAME "VK_EXT_opacity_micromap"
19926
19927typedef enum VkMicromapTypeEXT {
19928 VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT = 0,
19929#ifdef VK_ENABLE_BETA_EXTENSIONS
19930 VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV = 1000397000,
19931#endif
19932 VK_MICROMAP_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
19933} VkMicromapTypeEXT;
19934
19935typedef enum VkBuildMicromapModeEXT {
19936 VK_BUILD_MICROMAP_MODE_BUILD_EXT = 0,
19937 VK_BUILD_MICROMAP_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
19938} VkBuildMicromapModeEXT;
19939
19940typedef enum VkCopyMicromapModeEXT {
19941 VK_COPY_MICROMAP_MODE_CLONE_EXT = 0,
19942 VK_COPY_MICROMAP_MODE_SERIALIZE_EXT = 1,
19943 VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT = 2,
19944 VK_COPY_MICROMAP_MODE_COMPACT_EXT = 3,
19945 VK_COPY_MICROMAP_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
19946} VkCopyMicromapModeEXT;
19947
19948typedef enum VkOpacityMicromapFormatEXT {
19949 VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT = 1,
19950 VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT = 2,
19951 VK_OPACITY_MICROMAP_FORMAT_MAX_ENUM_EXT = 0x7FFFFFFF
19952} VkOpacityMicromapFormatEXT;
19953
19954typedef enum VkOpacityMicromapSpecialIndexEXT {
19955 VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT = -1,
19956 VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT = -2,
19957 VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT = -3,
19958 VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT = -4,
19959 VK_OPACITY_MICROMAP_SPECIAL_INDEX_CLUSTER_GEOMETRY_DISABLE_OPACITY_MICROMAP_NV = -5,
19960 VK_OPACITY_MICROMAP_SPECIAL_INDEX_MAX_ENUM_EXT = 0x7FFFFFFF
19961} VkOpacityMicromapSpecialIndexEXT;
19962
19963typedef enum VkAccelerationStructureCompatibilityKHR {
19964 VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0,
19965 VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1,
19966 VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR = 0x7FFFFFFF
19967} VkAccelerationStructureCompatibilityKHR;
19968
19969typedef enum VkAccelerationStructureBuildTypeKHR {
19970 VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0,
19971 VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1,
19972 VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2,
19973 VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
19974} VkAccelerationStructureBuildTypeKHR;
19975
19976typedef enum VkBuildMicromapFlagBitsEXT {
19977 VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT = 0x00000001,
19978 VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT = 0x00000002,
19979 VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT = 0x00000004,
19980 VK_BUILD_MICROMAP_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
19981} VkBuildMicromapFlagBitsEXT;
19982typedef VkFlags VkBuildMicromapFlagsEXT;
19983
19984typedef enum VkMicromapCreateFlagBitsEXT {
19985 VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 0x00000001,
19986 VK_MICROMAP_CREATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
19987} VkMicromapCreateFlagBitsEXT;
19988typedef VkFlags VkMicromapCreateFlagsEXT;
19989typedef struct VkMicromapUsageEXT {
19990 uint32_t count;
19991 uint32_t subdivisionLevel;
19992 uint32_t format;
19993} VkMicromapUsageEXT;
19994
19995typedef union VkDeviceOrHostAddressKHR {
19996 VkDeviceAddress deviceAddress;
19997 void* hostAddress;
19998} VkDeviceOrHostAddressKHR;
19999
20000typedef struct VkMicromapBuildInfoEXT {
20001 VkStructureType sType;
20002 const void* pNext;
20003 VkMicromapTypeEXT type;
20004 VkBuildMicromapFlagsEXT flags;
20005 VkBuildMicromapModeEXT mode;
20006 VkMicromapEXT dstMicromap;
20007 uint32_t usageCountsCount;
20008 const VkMicromapUsageEXT* pUsageCounts;
20009 const VkMicromapUsageEXT* const* ppUsageCounts;
20010 VkDeviceOrHostAddressConstKHR data;
20011 VkDeviceOrHostAddressKHR scratchData;
20012 VkDeviceOrHostAddressConstKHR triangleArray;
20013 VkDeviceSize triangleArrayStride;
20014} VkMicromapBuildInfoEXT;
20015
20016typedef struct VkMicromapCreateInfoEXT {
20017 VkStructureType sType;
20018 const void* pNext;
20019 VkMicromapCreateFlagsEXT createFlags;
20020 VkBuffer buffer;
20021 VkDeviceSize offset;
20022 VkDeviceSize size;
20023 VkMicromapTypeEXT type;
20024 VkDeviceAddress deviceAddress;
20025} VkMicromapCreateInfoEXT;
20026
20027typedef struct VkPhysicalDeviceOpacityMicromapFeaturesEXT {
20028 VkStructureType sType;
20029 void* pNext;
20030 VkBool32 micromap;
20031 VkBool32 micromapCaptureReplay;
20032 VkBool32 micromapHostCommands;
20033} VkPhysicalDeviceOpacityMicromapFeaturesEXT;
20034
20035typedef struct VkPhysicalDeviceOpacityMicromapPropertiesEXT {
20036 VkStructureType sType;
20037 void* pNext;
20038 uint32_t maxOpacity2StateSubdivisionLevel;
20039 uint32_t maxOpacity4StateSubdivisionLevel;
20040} VkPhysicalDeviceOpacityMicromapPropertiesEXT;
20041
20042typedef struct VkMicromapVersionInfoEXT {
20043 VkStructureType sType;
20044 const void* pNext;
20045 const uint8_t* pVersionData;
20046} VkMicromapVersionInfoEXT;
20047
20048typedef struct VkCopyMicromapToMemoryInfoEXT {
20049 VkStructureType sType;
20050 const void* pNext;
20051 VkMicromapEXT src;
20052 VkDeviceOrHostAddressKHR dst;
20053 VkCopyMicromapModeEXT mode;
20054} VkCopyMicromapToMemoryInfoEXT;
20055
20056typedef struct VkCopyMemoryToMicromapInfoEXT {
20057 VkStructureType sType;
20058 const void* pNext;
20059 VkDeviceOrHostAddressConstKHR src;
20060 VkMicromapEXT dst;
20061 VkCopyMicromapModeEXT mode;
20062} VkCopyMemoryToMicromapInfoEXT;
20063
20064typedef struct VkCopyMicromapInfoEXT {
20065 VkStructureType sType;
20066 const void* pNext;
20067 VkMicromapEXT src;
20068 VkMicromapEXT dst;
20069 VkCopyMicromapModeEXT mode;
20070} VkCopyMicromapInfoEXT;
20071
20072typedef struct VkMicromapBuildSizesInfoEXT {
20073 VkStructureType sType;
20074 const void* pNext;
20075 VkDeviceSize micromapSize;
20076 VkDeviceSize buildScratchSize;
20077 VkBool32 discardable;
20078} VkMicromapBuildSizesInfoEXT;
20079
20080typedef struct VkAccelerationStructureTrianglesOpacityMicromapEXT {
20081 VkStructureType sType;
20082 void* pNext;
20083 VkIndexType indexType;
20084 VkDeviceOrHostAddressConstKHR indexBuffer;
20085 VkDeviceSize indexStride;
20086 uint32_t baseTriangle;
20087 uint32_t usageCountsCount;
20088 const VkMicromapUsageEXT* pUsageCounts;
20089 const VkMicromapUsageEXT* const* ppUsageCounts;
20090 VkMicromapEXT micromap;
20091} VkAccelerationStructureTrianglesOpacityMicromapEXT;
20092
20093typedef struct VkMicromapTriangleEXT {
20094 uint32_t dataOffset;
20095 uint16_t subdivisionLevel;
20096 uint16_t format;
20097} VkMicromapTriangleEXT;
20098
20099typedef VkResult (VKAPI_PTR *PFN_vkCreateMicromapEXT)(VkDevice device, const VkMicromapCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkMicromapEXT* pMicromap);
20100typedef void (VKAPI_PTR *PFN_vkDestroyMicromapEXT)(VkDevice device, VkMicromapEXT micromap, const VkAllocationCallbacks* pAllocator);
20101typedef void (VKAPI_PTR *PFN_vkCmdBuildMicromapsEXT)(VkCommandBuffer commandBuffer, uint32_t infoCount, const VkMicromapBuildInfoEXT* pInfos);
20102typedef VkResult (VKAPI_PTR *PFN_vkBuildMicromapsEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const VkMicromapBuildInfoEXT* pInfos);
20103typedef VkResult (VKAPI_PTR *PFN_vkCopyMicromapEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMicromapInfoEXT* pInfo);
20104typedef VkResult (VKAPI_PTR *PFN_vkCopyMicromapToMemoryEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMicromapToMemoryInfoEXT* pInfo);
20105typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToMicromapEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToMicromapInfoEXT* pInfo);
20106typedef VkResult (VKAPI_PTR *PFN_vkWriteMicromapsPropertiesEXT)(VkDevice device, uint32_t micromapCount, const VkMicromapEXT* pMicromaps, VkQueryType queryType, size_t dataSize, void* pData, size_t stride);
20107typedef void (VKAPI_PTR *PFN_vkCmdCopyMicromapEXT)(VkCommandBuffer commandBuffer, const VkCopyMicromapInfoEXT* pInfo);
20108typedef void (VKAPI_PTR *PFN_vkCmdCopyMicromapToMemoryEXT)(VkCommandBuffer commandBuffer, const VkCopyMicromapToMemoryInfoEXT* pInfo);
20109typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToMicromapEXT)(VkCommandBuffer commandBuffer, const VkCopyMemoryToMicromapInfoEXT* pInfo);
20110typedef void (VKAPI_PTR *PFN_vkCmdWriteMicromapsPropertiesEXT)(VkCommandBuffer commandBuffer, uint32_t micromapCount, const VkMicromapEXT* pMicromaps, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
20111typedef void (VKAPI_PTR *PFN_vkGetDeviceMicromapCompatibilityEXT)(VkDevice device, const VkMicromapVersionInfoEXT* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility);
20112typedef void (VKAPI_PTR *PFN_vkGetMicromapBuildSizesEXT)(VkDevice device, VkAccelerationStructureBuildTypeKHR buildType, const VkMicromapBuildInfoEXT* pBuildInfo, VkMicromapBuildSizesInfoEXT* pSizeInfo);
20113
20114#ifndef VK_NO_PROTOTYPES
20115#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20116VKAPI_ATTR VkResult VKAPI_CALL vkCreateMicromapEXT(
20117 VkDevice device,
20118 const VkMicromapCreateInfoEXT* pCreateInfo,
20119 const VkAllocationCallbacks* pAllocator,
20120 VkMicromapEXT* pMicromap);
20121#endif
20122
20123#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20124VKAPI_ATTR void VKAPI_CALL vkDestroyMicromapEXT(
20125 VkDevice device,
20126 VkMicromapEXT micromap,
20127 const VkAllocationCallbacks* pAllocator);
20128#endif
20129
20130#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20131VKAPI_ATTR void VKAPI_CALL vkCmdBuildMicromapsEXT(
20132 VkCommandBuffer commandBuffer,
20133 uint32_t infoCount,
20134 const VkMicromapBuildInfoEXT* pInfos);
20135#endif
20136
20137#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20138VKAPI_ATTR VkResult VKAPI_CALL vkBuildMicromapsEXT(
20139 VkDevice device,
20140 VkDeferredOperationKHR deferredOperation,
20141 uint32_t infoCount,
20142 const VkMicromapBuildInfoEXT* pInfos);
20143#endif
20144
20145#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20146VKAPI_ATTR VkResult VKAPI_CALL vkCopyMicromapEXT(
20147 VkDevice device,
20148 VkDeferredOperationKHR deferredOperation,
20149 const VkCopyMicromapInfoEXT* pInfo);
20150#endif
20151
20152#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20153VKAPI_ATTR VkResult VKAPI_CALL vkCopyMicromapToMemoryEXT(
20154 VkDevice device,
20155 VkDeferredOperationKHR deferredOperation,
20156 const VkCopyMicromapToMemoryInfoEXT* pInfo);
20157#endif
20158
20159#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20160VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToMicromapEXT(
20161 VkDevice device,
20162 VkDeferredOperationKHR deferredOperation,
20163 const VkCopyMemoryToMicromapInfoEXT* pInfo);
20164#endif
20165
20166#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20167VKAPI_ATTR VkResult VKAPI_CALL vkWriteMicromapsPropertiesEXT(
20168 VkDevice device,
20169 uint32_t micromapCount,
20170 const VkMicromapEXT* pMicromaps,
20171 VkQueryType queryType,
20172 size_t dataSize,
20173 void* pData,
20174 size_t stride);
20175#endif
20176
20177#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20178VKAPI_ATTR void VKAPI_CALL vkCmdCopyMicromapEXT(
20179 VkCommandBuffer commandBuffer,
20180 const VkCopyMicromapInfoEXT* pInfo);
20181#endif
20182
20183#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20184VKAPI_ATTR void VKAPI_CALL vkCmdCopyMicromapToMemoryEXT(
20185 VkCommandBuffer commandBuffer,
20186 const VkCopyMicromapToMemoryInfoEXT* pInfo);
20187#endif
20188
20189#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20190VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToMicromapEXT(
20191 VkCommandBuffer commandBuffer,
20192 const VkCopyMemoryToMicromapInfoEXT* pInfo);
20193#endif
20194
20195#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20196VKAPI_ATTR void VKAPI_CALL vkCmdWriteMicromapsPropertiesEXT(
20197 VkCommandBuffer commandBuffer,
20198 uint32_t micromapCount,
20199 const VkMicromapEXT* pMicromaps,
20200 VkQueryType queryType,
20201 VkQueryPool queryPool,
20202 uint32_t firstQuery);
20203#endif
20204
20205#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20206VKAPI_ATTR void VKAPI_CALL vkGetDeviceMicromapCompatibilityEXT(
20207 VkDevice device,
20208 const VkMicromapVersionInfoEXT* pVersionInfo,
20209 VkAccelerationStructureCompatibilityKHR* pCompatibility);
20210#endif
20211
20212#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20213VKAPI_ATTR void VKAPI_CALL vkGetMicromapBuildSizesEXT(
20214 VkDevice device,
20215 VkAccelerationStructureBuildTypeKHR buildType,
20216 const VkMicromapBuildInfoEXT* pBuildInfo,
20217 VkMicromapBuildSizesInfoEXT* pSizeInfo);
20218#endif
20219#endif
20220
20221
20222// VK_EXT_load_store_op_none is a preprocessor guard. Do not pass it to API calls.
20223#define VK_EXT_load_store_op_none 1
20224#define VK_EXT_LOAD_STORE_OP_NONE_SPEC_VERSION 1
20225#define VK_EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME "VK_EXT_load_store_op_none"
20226
20227
20228// VK_HUAWEI_cluster_culling_shader is a preprocessor guard. Do not pass it to API calls.
20229#define VK_HUAWEI_cluster_culling_shader 1
20230#define VK_HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION 3
20231#define VK_HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME "VK_HUAWEI_cluster_culling_shader"
20232typedef struct VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI {
20233 VkStructureType sType;
20234 void* pNext;
20235 VkBool32 clustercullingShader;
20236 VkBool32 multiviewClusterCullingShader;
20237} VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI;
20238
20239typedef struct VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI {
20240 VkStructureType sType;
20241 void* pNext;
20242 uint32_t maxWorkGroupCount[3];
20243 uint32_t maxWorkGroupSize[3];
20244 uint32_t maxOutputClusterCount;
20245 VkDeviceSize indirectBufferOffsetAlignment;
20246} VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI;
20247
20248typedef struct VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI {
20249 VkStructureType sType;
20250 void* pNext;
20251 VkBool32 clusterShadingRate;
20252} VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI;
20253
20254typedef void (VKAPI_PTR *PFN_vkCmdDrawClusterHUAWEI)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
20255typedef void (VKAPI_PTR *PFN_vkCmdDrawClusterIndirectHUAWEI)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
20256
20257#ifndef VK_NO_PROTOTYPES
20258#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20259VKAPI_ATTR void VKAPI_CALL vkCmdDrawClusterHUAWEI(
20260 VkCommandBuffer commandBuffer,
20261 uint32_t groupCountX,
20262 uint32_t groupCountY,
20263 uint32_t groupCountZ);
20264#endif
20265
20266#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20267VKAPI_ATTR void VKAPI_CALL vkCmdDrawClusterIndirectHUAWEI(
20268 VkCommandBuffer commandBuffer,
20269 VkBuffer buffer,
20270 VkDeviceSize offset);
20271#endif
20272#endif
20273
20274
20275// VK_EXT_border_color_swizzle is a preprocessor guard. Do not pass it to API calls.
20276#define VK_EXT_border_color_swizzle 1
20277#define VK_EXT_BORDER_COLOR_SWIZZLE_SPEC_VERSION 1
20278#define VK_EXT_BORDER_COLOR_SWIZZLE_EXTENSION_NAME "VK_EXT_border_color_swizzle"
20279typedef struct VkPhysicalDeviceBorderColorSwizzleFeaturesEXT {
20280 VkStructureType sType;
20281 void* pNext;
20282 VkBool32 borderColorSwizzle;
20283 VkBool32 borderColorSwizzleFromImage;
20284} VkPhysicalDeviceBorderColorSwizzleFeaturesEXT;
20285
20286typedef struct VkSamplerBorderColorComponentMappingCreateInfoEXT {
20287 VkStructureType sType;
20288 const void* pNext;
20289 VkComponentMapping components;
20290 VkBool32 srgb;
20291} VkSamplerBorderColorComponentMappingCreateInfoEXT;
20292
20293
20294
20295// VK_EXT_pageable_device_local_memory is a preprocessor guard. Do not pass it to API calls.
20296#define VK_EXT_pageable_device_local_memory 1
20297#define VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_SPEC_VERSION 1
20298#define VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_EXTENSION_NAME "VK_EXT_pageable_device_local_memory"
20299typedef struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT {
20300 VkStructureType sType;
20301 void* pNext;
20302 VkBool32 pageableDeviceLocalMemory;
20303} VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT;
20304
20305typedef void (VKAPI_PTR *PFN_vkSetDeviceMemoryPriorityEXT)(VkDevice device, VkDeviceMemory memory, float priority);
20306
20307#ifndef VK_NO_PROTOTYPES
20308#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20309VKAPI_ATTR void VKAPI_CALL vkSetDeviceMemoryPriorityEXT(
20310 VkDevice device,
20311 VkDeviceMemory memory,
20312 float priority);
20313#endif
20314#endif
20315
20316
20317// VK_ARM_shader_core_properties is a preprocessor guard. Do not pass it to API calls.
20318#define VK_ARM_shader_core_properties 1
20319#define VK_ARM_SHADER_CORE_PROPERTIES_SPEC_VERSION 1
20320#define VK_ARM_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_ARM_shader_core_properties"
20321typedef struct VkPhysicalDeviceShaderCorePropertiesARM {
20322 VkStructureType sType;
20323 void* pNext;
20324 uint32_t pixelRate;
20325 uint32_t texelRate;
20326 uint32_t fmaRate;
20327} VkPhysicalDeviceShaderCorePropertiesARM;
20328
20329
20330
20331// VK_ARM_scheduling_controls is a preprocessor guard. Do not pass it to API calls.
20332#define VK_ARM_scheduling_controls 1
20333#define VK_ARM_SCHEDULING_CONTROLS_SPEC_VERSION 1
20334#define VK_ARM_SCHEDULING_CONTROLS_EXTENSION_NAME "VK_ARM_scheduling_controls"
20335typedef VkFlags64 VkPhysicalDeviceSchedulingControlsFlagsARM;
20336
20337// Flag bits for VkPhysicalDeviceSchedulingControlsFlagBitsARM
20338typedef VkFlags64 VkPhysicalDeviceSchedulingControlsFlagBitsARM;
20339static const VkPhysicalDeviceSchedulingControlsFlagBitsARM VK_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_SHADER_CORE_COUNT_ARM = 0x00000001ULL;
20340
20341typedef struct VkDeviceQueueShaderCoreControlCreateInfoARM {
20342 VkStructureType sType;
20343 void* pNext;
20344 uint32_t shaderCoreCount;
20345} VkDeviceQueueShaderCoreControlCreateInfoARM;
20346
20347typedef struct VkPhysicalDeviceSchedulingControlsFeaturesARM {
20348 VkStructureType sType;
20349 void* pNext;
20350 VkBool32 schedulingControls;
20351} VkPhysicalDeviceSchedulingControlsFeaturesARM;
20352
20353typedef struct VkPhysicalDeviceSchedulingControlsPropertiesARM {
20354 VkStructureType sType;
20355 void* pNext;
20356 VkPhysicalDeviceSchedulingControlsFlagsARM schedulingControlsFlags;
20357} VkPhysicalDeviceSchedulingControlsPropertiesARM;
20358
20359
20360
20361// VK_EXT_image_sliced_view_of_3d is a preprocessor guard. Do not pass it to API calls.
20362#define VK_EXT_image_sliced_view_of_3d 1
20363#define VK_EXT_IMAGE_SLICED_VIEW_OF_3D_SPEC_VERSION 1
20364#define VK_EXT_IMAGE_SLICED_VIEW_OF_3D_EXTENSION_NAME "VK_EXT_image_sliced_view_of_3d"
20365#define VK_REMAINING_3D_SLICES_EXT (~0U)
20366typedef struct VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT {
20367 VkStructureType sType;
20368 void* pNext;
20369 VkBool32 imageSlicedViewOf3D;
20370} VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT;
20371
20372typedef struct VkImageViewSlicedCreateInfoEXT {
20373 VkStructureType sType;
20374 const void* pNext;
20375 uint32_t sliceOffset;
20376 uint32_t sliceCount;
20377} VkImageViewSlicedCreateInfoEXT;
20378
20379
20380
20381// VK_VALVE_descriptor_set_host_mapping is a preprocessor guard. Do not pass it to API calls.
20382#define VK_VALVE_descriptor_set_host_mapping 1
20383#define VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_SPEC_VERSION 1
20384#define VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_EXTENSION_NAME "VK_VALVE_descriptor_set_host_mapping"
20385typedef struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE {
20386 VkStructureType sType;
20387 void* pNext;
20388 VkBool32 descriptorSetHostMapping;
20389} VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE;
20390
20391typedef struct VkDescriptorSetBindingReferenceVALVE {
20392 VkStructureType sType;
20393 const void* pNext;
20394 VkDescriptorSetLayout descriptorSetLayout;
20395 uint32_t binding;
20396} VkDescriptorSetBindingReferenceVALVE;
20397
20398typedef struct VkDescriptorSetLayoutHostMappingInfoVALVE {
20399 VkStructureType sType;
20400 void* pNext;
20401 size_t descriptorOffset;
20402 uint32_t descriptorSize;
20403} VkDescriptorSetLayoutHostMappingInfoVALVE;
20404
20405typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE)(VkDevice device, const VkDescriptorSetBindingReferenceVALVE* pBindingReference, VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping);
20406typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetHostMappingVALVE)(VkDevice device, VkDescriptorSet descriptorSet, void** ppData);
20407
20408#ifndef VK_NO_PROTOTYPES
20409#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20410VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutHostMappingInfoVALVE(
20411 VkDevice device,
20412 const VkDescriptorSetBindingReferenceVALVE* pBindingReference,
20413 VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping);
20414#endif
20415
20416#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20417VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetHostMappingVALVE(
20418 VkDevice device,
20419 VkDescriptorSet descriptorSet,
20420 void** ppData);
20421#endif
20422#endif
20423
20424
20425// VK_EXT_depth_clamp_zero_one is a preprocessor guard. Do not pass it to API calls.
20426#define VK_EXT_depth_clamp_zero_one 1
20427#define VK_EXT_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION 1
20428#define VK_EXT_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME "VK_EXT_depth_clamp_zero_one"
20429typedef VkPhysicalDeviceDepthClampZeroOneFeaturesKHR VkPhysicalDeviceDepthClampZeroOneFeaturesEXT;
20430
20431
20432
20433// VK_EXT_non_seamless_cube_map is a preprocessor guard. Do not pass it to API calls.
20434#define VK_EXT_non_seamless_cube_map 1
20435#define VK_EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION 1
20436#define VK_EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME "VK_EXT_non_seamless_cube_map"
20437typedef struct VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT {
20438 VkStructureType sType;
20439 void* pNext;
20440 VkBool32 nonSeamlessCubeMap;
20441} VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT;
20442
20443
20444
20445// VK_ARM_render_pass_striped is a preprocessor guard. Do not pass it to API calls.
20446#define VK_ARM_render_pass_striped 1
20447#define VK_ARM_RENDER_PASS_STRIPED_SPEC_VERSION 1
20448#define VK_ARM_RENDER_PASS_STRIPED_EXTENSION_NAME "VK_ARM_render_pass_striped"
20449typedef struct VkPhysicalDeviceRenderPassStripedFeaturesARM {
20450 VkStructureType sType;
20451 void* pNext;
20452 VkBool32 renderPassStriped;
20453} VkPhysicalDeviceRenderPassStripedFeaturesARM;
20454
20455typedef struct VkPhysicalDeviceRenderPassStripedPropertiesARM {
20456 VkStructureType sType;
20457 void* pNext;
20458 VkExtent2D renderPassStripeGranularity;
20459 uint32_t maxRenderPassStripes;
20460} VkPhysicalDeviceRenderPassStripedPropertiesARM;
20461
20462typedef struct VkRenderPassStripeInfoARM {
20463 VkStructureType sType;
20464 const void* pNext;
20465 VkRect2D stripeArea;
20466} VkRenderPassStripeInfoARM;
20467
20468typedef struct VkRenderPassStripeBeginInfoARM {
20469 VkStructureType sType;
20470 const void* pNext;
20471 uint32_t stripeInfoCount;
20472 const VkRenderPassStripeInfoARM* pStripeInfos;
20473} VkRenderPassStripeBeginInfoARM;
20474
20475typedef struct VkRenderPassStripeSubmitInfoARM {
20476 VkStructureType sType;
20477 const void* pNext;
20478 uint32_t stripeSemaphoreInfoCount;
20479 const VkSemaphoreSubmitInfo* pStripeSemaphoreInfos;
20480} VkRenderPassStripeSubmitInfoARM;
20481
20482
20483
20484// VK_QCOM_fragment_density_map_offset is a preprocessor guard. Do not pass it to API calls.
20485#define VK_QCOM_fragment_density_map_offset 1
20486#define VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION 3
20487#define VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME "VK_QCOM_fragment_density_map_offset"
20488typedef struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesEXT {
20489 VkStructureType sType;
20490 void* pNext;
20491 VkBool32 fragmentDensityMapOffset;
20492} VkPhysicalDeviceFragmentDensityMapOffsetFeaturesEXT;
20493
20494typedef VkPhysicalDeviceFragmentDensityMapOffsetFeaturesEXT VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM;
20495
20496typedef struct VkPhysicalDeviceFragmentDensityMapOffsetPropertiesEXT {
20497 VkStructureType sType;
20498 void* pNext;
20499 VkExtent2D fragmentDensityOffsetGranularity;
20500} VkPhysicalDeviceFragmentDensityMapOffsetPropertiesEXT;
20501
20502typedef VkPhysicalDeviceFragmentDensityMapOffsetPropertiesEXT VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM;
20503
20504typedef struct VkRenderPassFragmentDensityMapOffsetEndInfoEXT {
20505 VkStructureType sType;
20506 const void* pNext;
20507 uint32_t fragmentDensityOffsetCount;
20508 const VkOffset2D* pFragmentDensityOffsets;
20509} VkRenderPassFragmentDensityMapOffsetEndInfoEXT;
20510
20511typedef VkRenderPassFragmentDensityMapOffsetEndInfoEXT VkSubpassFragmentDensityMapOffsetEndInfoQCOM;
20512
20513
20514
20515// VK_NV_copy_memory_indirect is a preprocessor guard. Do not pass it to API calls.
20516#define VK_NV_copy_memory_indirect 1
20517#define VK_NV_COPY_MEMORY_INDIRECT_SPEC_VERSION 1
20518#define VK_NV_COPY_MEMORY_INDIRECT_EXTENSION_NAME "VK_NV_copy_memory_indirect"
20519typedef VkCopyMemoryIndirectCommandKHR VkCopyMemoryIndirectCommandNV;
20520
20521typedef VkCopyMemoryToImageIndirectCommandKHR VkCopyMemoryToImageIndirectCommandNV;
20522
20523typedef struct VkPhysicalDeviceCopyMemoryIndirectFeaturesNV {
20524 VkStructureType sType;
20525 void* pNext;
20526 VkBool32 indirectCopy;
20527} VkPhysicalDeviceCopyMemoryIndirectFeaturesNV;
20528
20529typedef VkPhysicalDeviceCopyMemoryIndirectPropertiesKHR VkPhysicalDeviceCopyMemoryIndirectPropertiesNV;
20530
20531typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryIndirectNV)(VkCommandBuffer commandBuffer, VkDeviceAddress copyBufferAddress, uint32_t copyCount, uint32_t stride);
20532typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToImageIndirectNV)(VkCommandBuffer commandBuffer, VkDeviceAddress copyBufferAddress, uint32_t copyCount, uint32_t stride, VkImage dstImage, VkImageLayout dstImageLayout, const VkImageSubresourceLayers* pImageSubresources);
20533
20534#ifndef VK_NO_PROTOTYPES
20535#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20536VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryIndirectNV(
20537 VkCommandBuffer commandBuffer,
20538 VkDeviceAddress copyBufferAddress,
20539 uint32_t copyCount,
20540 uint32_t stride);
20541#endif
20542
20543#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20544VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToImageIndirectNV(
20545 VkCommandBuffer commandBuffer,
20546 VkDeviceAddress copyBufferAddress,
20547 uint32_t copyCount,
20548 uint32_t stride,
20549 VkImage dstImage,
20550 VkImageLayout dstImageLayout,
20551 const VkImageSubresourceLayers* pImageSubresources);
20552#endif
20553#endif
20554
20555
20556// VK_NV_memory_decompression is a preprocessor guard. Do not pass it to API calls.
20557#define VK_NV_memory_decompression 1
20558#define VK_NV_MEMORY_DECOMPRESSION_SPEC_VERSION 1
20559#define VK_NV_MEMORY_DECOMPRESSION_EXTENSION_NAME "VK_NV_memory_decompression"
20560
20561// Flag bits for VkMemoryDecompressionMethodFlagBitsEXT
20562typedef VkFlags64 VkMemoryDecompressionMethodFlagBitsEXT;
20563static const VkMemoryDecompressionMethodFlagBitsEXT VK_MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_EXT = 0x00000001ULL;
20564static const VkMemoryDecompressionMethodFlagBitsEXT VK_MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_NV = 0x00000001ULL;
20565
20566typedef VkMemoryDecompressionMethodFlagBitsEXT VkMemoryDecompressionMethodFlagBitsNV;
20567
20568typedef VkFlags64 VkMemoryDecompressionMethodFlagsEXT;
20569typedef VkMemoryDecompressionMethodFlagsEXT VkMemoryDecompressionMethodFlagsNV;
20570
20571typedef struct VkDecompressMemoryRegionNV {
20572 VkDeviceAddress srcAddress;
20573 VkDeviceAddress dstAddress;
20574 VkDeviceSize compressedSize;
20575 VkDeviceSize decompressedSize;
20576 VkMemoryDecompressionMethodFlagsNV decompressionMethod;
20577} VkDecompressMemoryRegionNV;
20578
20579typedef struct VkPhysicalDeviceMemoryDecompressionFeaturesEXT {
20580 VkStructureType sType;
20581 void* pNext;
20582 VkBool32 memoryDecompression;
20583} VkPhysicalDeviceMemoryDecompressionFeaturesEXT;
20584
20585typedef VkPhysicalDeviceMemoryDecompressionFeaturesEXT VkPhysicalDeviceMemoryDecompressionFeaturesNV;
20586
20587typedef struct VkPhysicalDeviceMemoryDecompressionPropertiesEXT {
20588 VkStructureType sType;
20589 void* pNext;
20590 VkMemoryDecompressionMethodFlagsEXT decompressionMethods;
20591 uint64_t maxDecompressionIndirectCount;
20592} VkPhysicalDeviceMemoryDecompressionPropertiesEXT;
20593
20594typedef VkPhysicalDeviceMemoryDecompressionPropertiesEXT VkPhysicalDeviceMemoryDecompressionPropertiesNV;
20595
20596typedef void (VKAPI_PTR *PFN_vkCmdDecompressMemoryNV)(VkCommandBuffer commandBuffer, uint32_t decompressRegionCount, const VkDecompressMemoryRegionNV* pDecompressMemoryRegions);
20597typedef void (VKAPI_PTR *PFN_vkCmdDecompressMemoryIndirectCountNV)(VkCommandBuffer commandBuffer, VkDeviceAddress indirectCommandsAddress, VkDeviceAddress indirectCommandsCountAddress, uint32_t stride);
20598
20599#ifndef VK_NO_PROTOTYPES
20600#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20601VKAPI_ATTR void VKAPI_CALL vkCmdDecompressMemoryNV(
20602 VkCommandBuffer commandBuffer,
20603 uint32_t decompressRegionCount,
20604 const VkDecompressMemoryRegionNV* pDecompressMemoryRegions);
20605#endif
20606
20607#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20608VKAPI_ATTR void VKAPI_CALL vkCmdDecompressMemoryIndirectCountNV(
20609 VkCommandBuffer commandBuffer,
20610 VkDeviceAddress indirectCommandsAddress,
20611 VkDeviceAddress indirectCommandsCountAddress,
20612 uint32_t stride);
20613#endif
20614#endif
20615
20616
20617// VK_NV_device_generated_commands_compute is a preprocessor guard. Do not pass it to API calls.
20618#define VK_NV_device_generated_commands_compute 1
20619#define VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_SPEC_VERSION 2
20620#define VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_EXTENSION_NAME "VK_NV_device_generated_commands_compute"
20621typedef struct VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV {
20622 VkStructureType sType;
20623 void* pNext;
20624 VkBool32 deviceGeneratedCompute;
20625 VkBool32 deviceGeneratedComputePipelines;
20626 VkBool32 deviceGeneratedComputeCaptureReplay;
20627} VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV;
20628
20629typedef struct VkComputePipelineIndirectBufferInfoNV {
20630 VkStructureType sType;
20631 const void* pNext;
20632 VkDeviceAddress deviceAddress;
20633 VkDeviceSize size;
20634 VkDeviceAddress pipelineDeviceAddressCaptureReplay;
20635} VkComputePipelineIndirectBufferInfoNV;
20636
20637typedef struct VkPipelineIndirectDeviceAddressInfoNV {
20638 VkStructureType sType;
20639 const void* pNext;
20640 VkPipelineBindPoint pipelineBindPoint;
20641 VkPipeline pipeline;
20642} VkPipelineIndirectDeviceAddressInfoNV;
20643
20644typedef struct VkBindPipelineIndirectCommandNV {
20645 VkDeviceAddress pipelineAddress;
20646} VkBindPipelineIndirectCommandNV;
20647
20648typedef void (VKAPI_PTR *PFN_vkGetPipelineIndirectMemoryRequirementsNV)(VkDevice device, const VkComputePipelineCreateInfo* pCreateInfo, VkMemoryRequirements2* pMemoryRequirements);
20649typedef void (VKAPI_PTR *PFN_vkCmdUpdatePipelineIndirectBufferNV)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
20650typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetPipelineIndirectDeviceAddressNV)(VkDevice device, const VkPipelineIndirectDeviceAddressInfoNV* pInfo);
20651
20652#ifndef VK_NO_PROTOTYPES
20653#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20654VKAPI_ATTR void VKAPI_CALL vkGetPipelineIndirectMemoryRequirementsNV(
20655 VkDevice device,
20656 const VkComputePipelineCreateInfo* pCreateInfo,
20657 VkMemoryRequirements2* pMemoryRequirements);
20658#endif
20659
20660#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20661VKAPI_ATTR void VKAPI_CALL vkCmdUpdatePipelineIndirectBufferNV(
20662 VkCommandBuffer commandBuffer,
20663 VkPipelineBindPoint pipelineBindPoint,
20664 VkPipeline pipeline);
20665#endif
20666
20667#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20668VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetPipelineIndirectDeviceAddressNV(
20669 VkDevice device,
20670 const VkPipelineIndirectDeviceAddressInfoNV* pInfo);
20671#endif
20672#endif
20673
20674
20675// VK_NV_ray_tracing_linear_swept_spheres is a preprocessor guard. Do not pass it to API calls.
20676#define VK_NV_ray_tracing_linear_swept_spheres 1
20677#define VK_NV_RAY_TRACING_LINEAR_SWEPT_SPHERES_SPEC_VERSION 1
20678#define VK_NV_RAY_TRACING_LINEAR_SWEPT_SPHERES_EXTENSION_NAME "VK_NV_ray_tracing_linear_swept_spheres"
20679
20680typedef enum VkRayTracingLssIndexingModeNV {
20681 VK_RAY_TRACING_LSS_INDEXING_MODE_LIST_NV = 0,
20682 VK_RAY_TRACING_LSS_INDEXING_MODE_SUCCESSIVE_NV = 1,
20683 VK_RAY_TRACING_LSS_INDEXING_MODE_MAX_ENUM_NV = 0x7FFFFFFF
20684} VkRayTracingLssIndexingModeNV;
20685
20686typedef enum VkRayTracingLssPrimitiveEndCapsModeNV {
20687 VK_RAY_TRACING_LSS_PRIMITIVE_END_CAPS_MODE_NONE_NV = 0,
20688 VK_RAY_TRACING_LSS_PRIMITIVE_END_CAPS_MODE_CHAINED_NV = 1,
20689 VK_RAY_TRACING_LSS_PRIMITIVE_END_CAPS_MODE_MAX_ENUM_NV = 0x7FFFFFFF
20690} VkRayTracingLssPrimitiveEndCapsModeNV;
20691typedef struct VkPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV {
20692 VkStructureType sType;
20693 void* pNext;
20694 VkBool32 spheres;
20695 VkBool32 linearSweptSpheres;
20696} VkPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV;
20697
20698typedef struct VkAccelerationStructureGeometryLinearSweptSpheresDataNV {
20699 VkStructureType sType;
20700 const void* pNext;
20701 VkFormat vertexFormat;
20702 VkDeviceOrHostAddressConstKHR vertexData;
20703 VkDeviceSize vertexStride;
20704 VkFormat radiusFormat;
20705 VkDeviceOrHostAddressConstKHR radiusData;
20706 VkDeviceSize radiusStride;
20707 VkIndexType indexType;
20708 VkDeviceOrHostAddressConstKHR indexData;
20709 VkDeviceSize indexStride;
20710 VkRayTracingLssIndexingModeNV indexingMode;
20711 VkRayTracingLssPrimitiveEndCapsModeNV endCapsMode;
20712} VkAccelerationStructureGeometryLinearSweptSpheresDataNV;
20713
20714typedef struct VkAccelerationStructureGeometrySpheresDataNV {
20715 VkStructureType sType;
20716 const void* pNext;
20717 VkFormat vertexFormat;
20718 VkDeviceOrHostAddressConstKHR vertexData;
20719 VkDeviceSize vertexStride;
20720 VkFormat radiusFormat;
20721 VkDeviceOrHostAddressConstKHR radiusData;
20722 VkDeviceSize radiusStride;
20723 VkIndexType indexType;
20724 VkDeviceOrHostAddressConstKHR indexData;
20725 VkDeviceSize indexStride;
20726} VkAccelerationStructureGeometrySpheresDataNV;
20727
20728
20729
20730// VK_NV_linear_color_attachment is a preprocessor guard. Do not pass it to API calls.
20731#define VK_NV_linear_color_attachment 1
20732#define VK_NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION 1
20733#define VK_NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME "VK_NV_linear_color_attachment"
20734typedef struct VkPhysicalDeviceLinearColorAttachmentFeaturesNV {
20735 VkStructureType sType;
20736 void* pNext;
20737 VkBool32 linearColorAttachment;
20738} VkPhysicalDeviceLinearColorAttachmentFeaturesNV;
20739
20740
20741
20742// VK_GOOGLE_surfaceless_query is a preprocessor guard. Do not pass it to API calls.
20743#define VK_GOOGLE_surfaceless_query 1
20744#define VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION 2
20745#define VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME "VK_GOOGLE_surfaceless_query"
20746
20747
20748// VK_EXT_image_compression_control_swapchain is a preprocessor guard. Do not pass it to API calls.
20749#define VK_EXT_image_compression_control_swapchain 1
20750#define VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION 1
20751#define VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME "VK_EXT_image_compression_control_swapchain"
20752typedef struct VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT {
20753 VkStructureType sType;
20754 void* pNext;
20755 VkBool32 imageCompressionControlSwapchain;
20756} VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT;
20757
20758
20759
20760// VK_QCOM_image_processing is a preprocessor guard. Do not pass it to API calls.
20761#define VK_QCOM_image_processing 1
20762#define VK_QCOM_IMAGE_PROCESSING_SPEC_VERSION 1
20763#define VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME "VK_QCOM_image_processing"
20764typedef struct VkImageViewSampleWeightCreateInfoQCOM {
20765 VkStructureType sType;
20766 const void* pNext;
20767 VkOffset2D filterCenter;
20768 VkExtent2D filterSize;
20769 uint32_t numPhases;
20770} VkImageViewSampleWeightCreateInfoQCOM;
20771
20772typedef struct VkPhysicalDeviceImageProcessingFeaturesQCOM {
20773 VkStructureType sType;
20774 void* pNext;
20775 VkBool32 textureSampleWeighted;
20776 VkBool32 textureBoxFilter;
20777 VkBool32 textureBlockMatch;
20778} VkPhysicalDeviceImageProcessingFeaturesQCOM;
20779
20780typedef struct VkPhysicalDeviceImageProcessingPropertiesQCOM {
20781 VkStructureType sType;
20782 void* pNext;
20783 uint32_t maxWeightFilterPhases;
20784 VkExtent2D maxWeightFilterDimension;
20785 VkExtent2D maxBlockMatchRegion;
20786 VkExtent2D maxBoxFilterBlockSize;
20787} VkPhysicalDeviceImageProcessingPropertiesQCOM;
20788
20789
20790
20791// VK_EXT_nested_command_buffer is a preprocessor guard. Do not pass it to API calls.
20792#define VK_EXT_nested_command_buffer 1
20793#define VK_EXT_NESTED_COMMAND_BUFFER_SPEC_VERSION 1
20794#define VK_EXT_NESTED_COMMAND_BUFFER_EXTENSION_NAME "VK_EXT_nested_command_buffer"
20795typedef struct VkPhysicalDeviceNestedCommandBufferFeaturesEXT {
20796 VkStructureType sType;
20797 void* pNext;
20798 VkBool32 nestedCommandBuffer;
20799 VkBool32 nestedCommandBufferRendering;
20800 VkBool32 nestedCommandBufferSimultaneousUse;
20801} VkPhysicalDeviceNestedCommandBufferFeaturesEXT;
20802
20803typedef struct VkPhysicalDeviceNestedCommandBufferPropertiesEXT {
20804 VkStructureType sType;
20805 void* pNext;
20806 uint32_t maxCommandBufferNestingLevel;
20807} VkPhysicalDeviceNestedCommandBufferPropertiesEXT;
20808
20809
20810
20811// VK_EXT_external_memory_acquire_unmodified is a preprocessor guard. Do not pass it to API calls.
20812#define VK_EXT_external_memory_acquire_unmodified 1
20813#define VK_EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_SPEC_VERSION 1
20814#define VK_EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXTENSION_NAME "VK_EXT_external_memory_acquire_unmodified"
20815typedef struct VkExternalMemoryAcquireUnmodifiedEXT {
20816 VkStructureType sType;
20817 const void* pNext;
20818 VkBool32 acquireUnmodifiedMemory;
20819} VkExternalMemoryAcquireUnmodifiedEXT;
20820
20821
20822
20823// VK_EXT_extended_dynamic_state3 is a preprocessor guard. Do not pass it to API calls.
20824#define VK_EXT_extended_dynamic_state3 1
20825#define VK_EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION 2
20826#define VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME "VK_EXT_extended_dynamic_state3"
20827typedef struct VkPhysicalDeviceExtendedDynamicState3FeaturesEXT {
20828 VkStructureType sType;
20829 void* pNext;
20830 VkBool32 extendedDynamicState3TessellationDomainOrigin;
20831 VkBool32 extendedDynamicState3DepthClampEnable;
20832 VkBool32 extendedDynamicState3PolygonMode;
20833 VkBool32 extendedDynamicState3RasterizationSamples;
20834 VkBool32 extendedDynamicState3SampleMask;
20835 VkBool32 extendedDynamicState3AlphaToCoverageEnable;
20836 VkBool32 extendedDynamicState3AlphaToOneEnable;
20837 VkBool32 extendedDynamicState3LogicOpEnable;
20838 VkBool32 extendedDynamicState3ColorBlendEnable;
20839 VkBool32 extendedDynamicState3ColorBlendEquation;
20840 VkBool32 extendedDynamicState3ColorWriteMask;
20841 VkBool32 extendedDynamicState3RasterizationStream;
20842 VkBool32 extendedDynamicState3ConservativeRasterizationMode;
20843 VkBool32 extendedDynamicState3ExtraPrimitiveOverestimationSize;
20844 VkBool32 extendedDynamicState3DepthClipEnable;
20845 VkBool32 extendedDynamicState3SampleLocationsEnable;
20846 VkBool32 extendedDynamicState3ColorBlendAdvanced;
20847 VkBool32 extendedDynamicState3ProvokingVertexMode;
20848 VkBool32 extendedDynamicState3LineRasterizationMode;
20849 VkBool32 extendedDynamicState3LineStippleEnable;
20850 VkBool32 extendedDynamicState3DepthClipNegativeOneToOne;
20851 VkBool32 extendedDynamicState3ViewportWScalingEnable;
20852 VkBool32 extendedDynamicState3ViewportSwizzle;
20853 VkBool32 extendedDynamicState3CoverageToColorEnable;
20854 VkBool32 extendedDynamicState3CoverageToColorLocation;
20855 VkBool32 extendedDynamicState3CoverageModulationMode;
20856 VkBool32 extendedDynamicState3CoverageModulationTableEnable;
20857 VkBool32 extendedDynamicState3CoverageModulationTable;
20858 VkBool32 extendedDynamicState3CoverageReductionMode;
20859 VkBool32 extendedDynamicState3RepresentativeFragmentTestEnable;
20860 VkBool32 extendedDynamicState3ShadingRateImageEnable;
20861} VkPhysicalDeviceExtendedDynamicState3FeaturesEXT;
20862
20863typedef struct VkPhysicalDeviceExtendedDynamicState3PropertiesEXT {
20864 VkStructureType sType;
20865 void* pNext;
20866 VkBool32 dynamicPrimitiveTopologyUnrestricted;
20867} VkPhysicalDeviceExtendedDynamicState3PropertiesEXT;
20868
20869typedef struct VkColorBlendEquationEXT {
20870 VkBlendFactor srcColorBlendFactor;
20871 VkBlendFactor dstColorBlendFactor;
20872 VkBlendOp colorBlendOp;
20873 VkBlendFactor srcAlphaBlendFactor;
20874 VkBlendFactor dstAlphaBlendFactor;
20875 VkBlendOp alphaBlendOp;
20876} VkColorBlendEquationEXT;
20877
20878typedef struct VkColorBlendAdvancedEXT {
20879 VkBlendOp advancedBlendOp;
20880 VkBool32 srcPremultiplied;
20881 VkBool32 dstPremultiplied;
20882 VkBlendOverlapEXT blendOverlap;
20883 VkBool32 clampResults;
20884} VkColorBlendAdvancedEXT;
20885
20886typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClampEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthClampEnable);
20887typedef void (VKAPI_PTR *PFN_vkCmdSetPolygonModeEXT)(VkCommandBuffer commandBuffer, VkPolygonMode polygonMode);
20888typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizationSamplesEXT)(VkCommandBuffer commandBuffer, VkSampleCountFlagBits rasterizationSamples);
20889typedef void (VKAPI_PTR *PFN_vkCmdSetSampleMaskEXT)(VkCommandBuffer commandBuffer, VkSampleCountFlagBits samples, const VkSampleMask* pSampleMask);
20890typedef void (VKAPI_PTR *PFN_vkCmdSetAlphaToCoverageEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 alphaToCoverageEnable);
20891typedef void (VKAPI_PTR *PFN_vkCmdSetAlphaToOneEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 alphaToOneEnable);
20892typedef void (VKAPI_PTR *PFN_vkCmdSetLogicOpEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 logicOpEnable);
20893typedef void (VKAPI_PTR *PFN_vkCmdSetColorBlendEnableEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkBool32* pColorBlendEnables);
20894typedef void (VKAPI_PTR *PFN_vkCmdSetColorBlendEquationEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkColorBlendEquationEXT* pColorBlendEquations);
20895typedef void (VKAPI_PTR *PFN_vkCmdSetColorWriteMaskEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkColorComponentFlags* pColorWriteMasks);
20896typedef void (VKAPI_PTR *PFN_vkCmdSetTessellationDomainOriginEXT)(VkCommandBuffer commandBuffer, VkTessellationDomainOrigin domainOrigin);
20897typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizationStreamEXT)(VkCommandBuffer commandBuffer, uint32_t rasterizationStream);
20898typedef void (VKAPI_PTR *PFN_vkCmdSetConservativeRasterizationModeEXT)(VkCommandBuffer commandBuffer, VkConservativeRasterizationModeEXT conservativeRasterizationMode);
20899typedef void (VKAPI_PTR *PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT)(VkCommandBuffer commandBuffer, float extraPrimitiveOverestimationSize);
20900typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClipEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthClipEnable);
20901typedef void (VKAPI_PTR *PFN_vkCmdSetSampleLocationsEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 sampleLocationsEnable);
20902typedef void (VKAPI_PTR *PFN_vkCmdSetColorBlendAdvancedEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkColorBlendAdvancedEXT* pColorBlendAdvanced);
20903typedef void (VKAPI_PTR *PFN_vkCmdSetProvokingVertexModeEXT)(VkCommandBuffer commandBuffer, VkProvokingVertexModeEXT provokingVertexMode);
20904typedef void (VKAPI_PTR *PFN_vkCmdSetLineRasterizationModeEXT)(VkCommandBuffer commandBuffer, VkLineRasterizationModeEXT lineRasterizationMode);
20905typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 stippledLineEnable);
20906typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClipNegativeOneToOneEXT)(VkCommandBuffer commandBuffer, VkBool32 negativeOneToOne);
20907typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWScalingEnableNV)(VkCommandBuffer commandBuffer, VkBool32 viewportWScalingEnable);
20908typedef void (VKAPI_PTR *PFN_vkCmdSetViewportSwizzleNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportSwizzleNV* pViewportSwizzles);
20909typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageToColorEnableNV)(VkCommandBuffer commandBuffer, VkBool32 coverageToColorEnable);
20910typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageToColorLocationNV)(VkCommandBuffer commandBuffer, uint32_t coverageToColorLocation);
20911typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageModulationModeNV)(VkCommandBuffer commandBuffer, VkCoverageModulationModeNV coverageModulationMode);
20912typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageModulationTableEnableNV)(VkCommandBuffer commandBuffer, VkBool32 coverageModulationTableEnable);
20913typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageModulationTableNV)(VkCommandBuffer commandBuffer, uint32_t coverageModulationTableCount, const float* pCoverageModulationTable);
20914typedef void (VKAPI_PTR *PFN_vkCmdSetShadingRateImageEnableNV)(VkCommandBuffer commandBuffer, VkBool32 shadingRateImageEnable);
20915typedef void (VKAPI_PTR *PFN_vkCmdSetRepresentativeFragmentTestEnableNV)(VkCommandBuffer commandBuffer, VkBool32 representativeFragmentTestEnable);
20916typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageReductionModeNV)(VkCommandBuffer commandBuffer, VkCoverageReductionModeNV coverageReductionMode);
20917
20918#ifndef VK_NO_PROTOTYPES
20919#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20920VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClampEnableEXT(
20921 VkCommandBuffer commandBuffer,
20922 VkBool32 depthClampEnable);
20923#endif
20924
20925#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20926VKAPI_ATTR void VKAPI_CALL vkCmdSetPolygonModeEXT(
20927 VkCommandBuffer commandBuffer,
20928 VkPolygonMode polygonMode);
20929#endif
20930
20931#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20932VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizationSamplesEXT(
20933 VkCommandBuffer commandBuffer,
20934 VkSampleCountFlagBits rasterizationSamples);
20935#endif
20936
20937#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20938VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleMaskEXT(
20939 VkCommandBuffer commandBuffer,
20940 VkSampleCountFlagBits samples,
20941 const VkSampleMask* pSampleMask);
20942#endif
20943
20944#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20945VKAPI_ATTR void VKAPI_CALL vkCmdSetAlphaToCoverageEnableEXT(
20946 VkCommandBuffer commandBuffer,
20947 VkBool32 alphaToCoverageEnable);
20948#endif
20949
20950#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20951VKAPI_ATTR void VKAPI_CALL vkCmdSetAlphaToOneEnableEXT(
20952 VkCommandBuffer commandBuffer,
20953 VkBool32 alphaToOneEnable);
20954#endif
20955
20956#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20957VKAPI_ATTR void VKAPI_CALL vkCmdSetLogicOpEnableEXT(
20958 VkCommandBuffer commandBuffer,
20959 VkBool32 logicOpEnable);
20960#endif
20961
20962#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20963VKAPI_ATTR void VKAPI_CALL vkCmdSetColorBlendEnableEXT(
20964 VkCommandBuffer commandBuffer,
20965 uint32_t firstAttachment,
20966 uint32_t attachmentCount,
20967 const VkBool32* pColorBlendEnables);
20968#endif
20969
20970#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20971VKAPI_ATTR void VKAPI_CALL vkCmdSetColorBlendEquationEXT(
20972 VkCommandBuffer commandBuffer,
20973 uint32_t firstAttachment,
20974 uint32_t attachmentCount,
20975 const VkColorBlendEquationEXT* pColorBlendEquations);
20976#endif
20977
20978#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20979VKAPI_ATTR void VKAPI_CALL vkCmdSetColorWriteMaskEXT(
20980 VkCommandBuffer commandBuffer,
20981 uint32_t firstAttachment,
20982 uint32_t attachmentCount,
20983 const VkColorComponentFlags* pColorWriteMasks);
20984#endif
20985
20986#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20987VKAPI_ATTR void VKAPI_CALL vkCmdSetTessellationDomainOriginEXT(
20988 VkCommandBuffer commandBuffer,
20989 VkTessellationDomainOrigin domainOrigin);
20990#endif
20991
20992#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20993VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizationStreamEXT(
20994 VkCommandBuffer commandBuffer,
20995 uint32_t rasterizationStream);
20996#endif
20997
20998#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20999VKAPI_ATTR void VKAPI_CALL vkCmdSetConservativeRasterizationModeEXT(
21000 VkCommandBuffer commandBuffer,
21001 VkConservativeRasterizationModeEXT conservativeRasterizationMode);
21002#endif
21003
21004#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21005VKAPI_ATTR void VKAPI_CALL vkCmdSetExtraPrimitiveOverestimationSizeEXT(
21006 VkCommandBuffer commandBuffer,
21007 float extraPrimitiveOverestimationSize);
21008#endif
21009
21010#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21011VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClipEnableEXT(
21012 VkCommandBuffer commandBuffer,
21013 VkBool32 depthClipEnable);
21014#endif
21015
21016#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21017VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleLocationsEnableEXT(
21018 VkCommandBuffer commandBuffer,
21019 VkBool32 sampleLocationsEnable);
21020#endif
21021
21022#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21023VKAPI_ATTR void VKAPI_CALL vkCmdSetColorBlendAdvancedEXT(
21024 VkCommandBuffer commandBuffer,
21025 uint32_t firstAttachment,
21026 uint32_t attachmentCount,
21027 const VkColorBlendAdvancedEXT* pColorBlendAdvanced);
21028#endif
21029
21030#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21031VKAPI_ATTR void VKAPI_CALL vkCmdSetProvokingVertexModeEXT(
21032 VkCommandBuffer commandBuffer,
21033 VkProvokingVertexModeEXT provokingVertexMode);
21034#endif
21035
21036#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21037VKAPI_ATTR void VKAPI_CALL vkCmdSetLineRasterizationModeEXT(
21038 VkCommandBuffer commandBuffer,
21039 VkLineRasterizationModeEXT lineRasterizationMode);
21040#endif
21041
21042#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21043VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleEnableEXT(
21044 VkCommandBuffer commandBuffer,
21045 VkBool32 stippledLineEnable);
21046#endif
21047
21048#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21049VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClipNegativeOneToOneEXT(
21050 VkCommandBuffer commandBuffer,
21051 VkBool32 negativeOneToOne);
21052#endif
21053
21054#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21055VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWScalingEnableNV(
21056 VkCommandBuffer commandBuffer,
21057 VkBool32 viewportWScalingEnable);
21058#endif
21059
21060#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21061VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportSwizzleNV(
21062 VkCommandBuffer commandBuffer,
21063 uint32_t firstViewport,
21064 uint32_t viewportCount,
21065 const VkViewportSwizzleNV* pViewportSwizzles);
21066#endif
21067
21068#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21069VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageToColorEnableNV(
21070 VkCommandBuffer commandBuffer,
21071 VkBool32 coverageToColorEnable);
21072#endif
21073
21074#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21075VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageToColorLocationNV(
21076 VkCommandBuffer commandBuffer,
21077 uint32_t coverageToColorLocation);
21078#endif
21079
21080#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21081VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageModulationModeNV(
21082 VkCommandBuffer commandBuffer,
21083 VkCoverageModulationModeNV coverageModulationMode);
21084#endif
21085
21086#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21087VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageModulationTableEnableNV(
21088 VkCommandBuffer commandBuffer,
21089 VkBool32 coverageModulationTableEnable);
21090#endif
21091
21092#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21093VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageModulationTableNV(
21094 VkCommandBuffer commandBuffer,
21095 uint32_t coverageModulationTableCount,
21096 const float* pCoverageModulationTable);
21097#endif
21098
21099#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21100VKAPI_ATTR void VKAPI_CALL vkCmdSetShadingRateImageEnableNV(
21101 VkCommandBuffer commandBuffer,
21102 VkBool32 shadingRateImageEnable);
21103#endif
21104
21105#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21106VKAPI_ATTR void VKAPI_CALL vkCmdSetRepresentativeFragmentTestEnableNV(
21107 VkCommandBuffer commandBuffer,
21108 VkBool32 representativeFragmentTestEnable);
21109#endif
21110
21111#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21112VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageReductionModeNV(
21113 VkCommandBuffer commandBuffer,
21114 VkCoverageReductionModeNV coverageReductionMode);
21115#endif
21116#endif
21117
21118
21119// VK_EXT_subpass_merge_feedback is a preprocessor guard. Do not pass it to API calls.
21120#define VK_EXT_subpass_merge_feedback 1
21121#define VK_EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION 2
21122#define VK_EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME "VK_EXT_subpass_merge_feedback"
21123
21124typedef enum VkSubpassMergeStatusEXT {
21125 VK_SUBPASS_MERGE_STATUS_MERGED_EXT = 0,
21126 VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT = 1,
21127 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT = 2,
21128 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT = 3,
21129 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT = 4,
21130 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT = 5,
21131 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT = 6,
21132 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT = 7,
21133 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT = 8,
21134 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT = 9,
21135 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT = 10,
21136 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT = 11,
21137 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT = 12,
21138 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT = 13,
21139 VK_SUBPASS_MERGE_STATUS_MAX_ENUM_EXT = 0x7FFFFFFF
21140} VkSubpassMergeStatusEXT;
21141typedef struct VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT {
21142 VkStructureType sType;
21143 void* pNext;
21144 VkBool32 subpassMergeFeedback;
21145} VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT;
21146
21147typedef struct VkRenderPassCreationControlEXT {
21148 VkStructureType sType;
21149 const void* pNext;
21150 VkBool32 disallowMerging;
21151} VkRenderPassCreationControlEXT;
21152
21153typedef struct VkRenderPassCreationFeedbackInfoEXT {
21154 uint32_t postMergeSubpassCount;
21155} VkRenderPassCreationFeedbackInfoEXT;
21156
21157typedef struct VkRenderPassCreationFeedbackCreateInfoEXT {
21158 VkStructureType sType;
21159 const void* pNext;
21160 VkRenderPassCreationFeedbackInfoEXT* pRenderPassFeedback;
21161} VkRenderPassCreationFeedbackCreateInfoEXT;
21162
21163typedef struct VkRenderPassSubpassFeedbackInfoEXT {
21164 VkSubpassMergeStatusEXT subpassMergeStatus;
21165 char description[VK_MAX_DESCRIPTION_SIZE];
21166 uint32_t postMergeIndex;
21167} VkRenderPassSubpassFeedbackInfoEXT;
21168
21169typedef struct VkRenderPassSubpassFeedbackCreateInfoEXT {
21170 VkStructureType sType;
21171 const void* pNext;
21172 VkRenderPassSubpassFeedbackInfoEXT* pSubpassFeedback;
21173} VkRenderPassSubpassFeedbackCreateInfoEXT;
21174
21175
21176
21177// VK_LUNARG_direct_driver_loading is a preprocessor guard. Do not pass it to API calls.
21178#define VK_LUNARG_direct_driver_loading 1
21179#define VK_LUNARG_DIRECT_DRIVER_LOADING_SPEC_VERSION 1
21180#define VK_LUNARG_DIRECT_DRIVER_LOADING_EXTENSION_NAME "VK_LUNARG_direct_driver_loading"
21181
21182typedef enum VkDirectDriverLoadingModeLUNARG {
21183 VK_DIRECT_DRIVER_LOADING_MODE_EXCLUSIVE_LUNARG = 0,
21184 VK_DIRECT_DRIVER_LOADING_MODE_INCLUSIVE_LUNARG = 1,
21185 VK_DIRECT_DRIVER_LOADING_MODE_MAX_ENUM_LUNARG = 0x7FFFFFFF
21186} VkDirectDriverLoadingModeLUNARG;
21187typedef VkFlags VkDirectDriverLoadingFlagsLUNARG;
21188typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddrLUNARG)(
21189 VkInstance instance, const char* pName);
21190
21191typedef struct VkDirectDriverLoadingInfoLUNARG {
21192 VkStructureType sType;
21193 void* pNext;
21194 VkDirectDriverLoadingFlagsLUNARG flags;
21195 PFN_vkGetInstanceProcAddrLUNARG pfnGetInstanceProcAddr;
21196} VkDirectDriverLoadingInfoLUNARG;
21197
21198typedef struct VkDirectDriverLoadingListLUNARG {
21199 VkStructureType sType;
21200 const void* pNext;
21201 VkDirectDriverLoadingModeLUNARG mode;
21202 uint32_t driverCount;
21203 const VkDirectDriverLoadingInfoLUNARG* pDrivers;
21204} VkDirectDriverLoadingListLUNARG;
21205
21206
21207
21208// VK_ARM_tensors is a preprocessor guard. Do not pass it to API calls.
21209#define VK_ARM_tensors 1
21210VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkTensorARM)
21211VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkTensorViewARM)
21212#define VK_ARM_TENSORS_SPEC_VERSION 1
21213#define VK_ARM_TENSORS_EXTENSION_NAME "VK_ARM_tensors"
21214
21215typedef enum VkTensorTilingARM {
21216 VK_TENSOR_TILING_OPTIMAL_ARM = 0,
21217 VK_TENSOR_TILING_LINEAR_ARM = 1,
21218 VK_TENSOR_TILING_MAX_ENUM_ARM = 0x7FFFFFFF
21219} VkTensorTilingARM;
21220typedef VkFlags64 VkTensorCreateFlagsARM;
21221
21222// Flag bits for VkTensorCreateFlagBitsARM
21223typedef VkFlags64 VkTensorCreateFlagBitsARM;
21224static const VkTensorCreateFlagBitsARM VK_TENSOR_CREATE_MUTABLE_FORMAT_BIT_ARM = 0x00000001ULL;
21225static const VkTensorCreateFlagBitsARM VK_TENSOR_CREATE_PROTECTED_BIT_ARM = 0x00000002ULL;
21226static const VkTensorCreateFlagBitsARM VK_TENSOR_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_ARM = 0x00000004ULL;
21227
21228typedef VkFlags64 VkTensorViewCreateFlagsARM;
21229
21230// Flag bits for VkTensorViewCreateFlagBitsARM
21231typedef VkFlags64 VkTensorViewCreateFlagBitsARM;
21232static const VkTensorViewCreateFlagBitsARM VK_TENSOR_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_ARM = 0x00000001ULL;
21233
21234typedef VkFlags64 VkTensorUsageFlagsARM;
21235
21236// Flag bits for VkTensorUsageFlagBitsARM
21237typedef VkFlags64 VkTensorUsageFlagBitsARM;
21238static const VkTensorUsageFlagBitsARM VK_TENSOR_USAGE_SHADER_BIT_ARM = 0x00000002ULL;
21239static const VkTensorUsageFlagBitsARM VK_TENSOR_USAGE_TRANSFER_SRC_BIT_ARM = 0x00000004ULL;
21240static const VkTensorUsageFlagBitsARM VK_TENSOR_USAGE_TRANSFER_DST_BIT_ARM = 0x00000008ULL;
21241static const VkTensorUsageFlagBitsARM VK_TENSOR_USAGE_IMAGE_ALIASING_BIT_ARM = 0x00000010ULL;
21242static const VkTensorUsageFlagBitsARM VK_TENSOR_USAGE_DATA_GRAPH_BIT_ARM = 0x00000020ULL;
21243
21244typedef struct VkTensorDescriptionARM {
21245 VkStructureType sType;
21246 const void* pNext;
21247 VkTensorTilingARM tiling;
21248 VkFormat format;
21249 uint32_t dimensionCount;
21250 const int64_t* pDimensions;
21251 const int64_t* pStrides;
21252 VkTensorUsageFlagsARM usage;
21253} VkTensorDescriptionARM;
21254
21255typedef struct VkTensorCreateInfoARM {
21256 VkStructureType sType;
21257 const void* pNext;
21258 VkTensorCreateFlagsARM flags;
21259 const VkTensorDescriptionARM* pDescription;
21260 VkSharingMode sharingMode;
21261 uint32_t queueFamilyIndexCount;
21262 const uint32_t* pQueueFamilyIndices;
21263} VkTensorCreateInfoARM;
21264
21265typedef struct VkTensorViewCreateInfoARM {
21266 VkStructureType sType;
21267 const void* pNext;
21268 VkTensorViewCreateFlagsARM flags;
21269 VkTensorARM tensor;
21270 VkFormat format;
21271} VkTensorViewCreateInfoARM;
21272
21273typedef struct VkTensorMemoryRequirementsInfoARM {
21274 VkStructureType sType;
21275 const void* pNext;
21276 VkTensorARM tensor;
21277} VkTensorMemoryRequirementsInfoARM;
21278
21279typedef struct VkBindTensorMemoryInfoARM {
21280 VkStructureType sType;
21281 const void* pNext;
21282 VkTensorARM tensor;
21283 VkDeviceMemory memory;
21284 VkDeviceSize memoryOffset;
21285} VkBindTensorMemoryInfoARM;
21286
21287typedef struct VkWriteDescriptorSetTensorARM {
21288 VkStructureType sType;
21289 const void* pNext;
21290 uint32_t tensorViewCount;
21291 const VkTensorViewARM* pTensorViews;
21292} VkWriteDescriptorSetTensorARM;
21293
21294typedef struct VkTensorFormatPropertiesARM {
21295 VkStructureType sType;
21296 void* pNext;
21297 VkFormatFeatureFlags2 optimalTilingTensorFeatures;
21298 VkFormatFeatureFlags2 linearTilingTensorFeatures;
21299} VkTensorFormatPropertiesARM;
21300
21301typedef struct VkPhysicalDeviceTensorPropertiesARM {
21302 VkStructureType sType;
21303 void* pNext;
21304 uint32_t maxTensorDimensionCount;
21305 uint64_t maxTensorElements;
21306 uint64_t maxPerDimensionTensorElements;
21307 int64_t maxTensorStride;
21308 uint64_t maxTensorSize;
21309 uint32_t maxTensorShaderAccessArrayLength;
21310 uint32_t maxTensorShaderAccessSize;
21311 uint32_t maxDescriptorSetStorageTensors;
21312 uint32_t maxPerStageDescriptorSetStorageTensors;
21313 uint32_t maxDescriptorSetUpdateAfterBindStorageTensors;
21314 uint32_t maxPerStageDescriptorUpdateAfterBindStorageTensors;
21315 VkBool32 shaderStorageTensorArrayNonUniformIndexingNative;
21316 VkShaderStageFlags shaderTensorSupportedStages;
21317} VkPhysicalDeviceTensorPropertiesARM;
21318
21319typedef struct VkTensorMemoryBarrierARM {
21320 VkStructureType sType;
21321 const void* pNext;
21322 VkPipelineStageFlags2 srcStageMask;
21323 VkAccessFlags2 srcAccessMask;
21324 VkPipelineStageFlags2 dstStageMask;
21325 VkAccessFlags2 dstAccessMask;
21326 uint32_t srcQueueFamilyIndex;
21327 uint32_t dstQueueFamilyIndex;
21328 VkTensorARM tensor;
21329} VkTensorMemoryBarrierARM;
21330
21331typedef struct VkTensorDependencyInfoARM {
21332 VkStructureType sType;
21333 const void* pNext;
21334 uint32_t tensorMemoryBarrierCount;
21335 const VkTensorMemoryBarrierARM* pTensorMemoryBarriers;
21336} VkTensorDependencyInfoARM;
21337
21338typedef struct VkPhysicalDeviceTensorFeaturesARM {
21339 VkStructureType sType;
21340 void* pNext;
21341 VkBool32 tensorNonPacked;
21342 VkBool32 shaderTensorAccess;
21343 VkBool32 shaderStorageTensorArrayDynamicIndexing;
21344 VkBool32 shaderStorageTensorArrayNonUniformIndexing;
21345 VkBool32 descriptorBindingStorageTensorUpdateAfterBind;
21346 VkBool32 tensors;
21347} VkPhysicalDeviceTensorFeaturesARM;
21348
21349typedef struct VkDeviceTensorMemoryRequirementsARM {
21350 VkStructureType sType;
21351 const void* pNext;
21352 const VkTensorCreateInfoARM* pCreateInfo;
21353} VkDeviceTensorMemoryRequirementsARM;
21354
21355typedef struct VkTensorCopyARM {
21356 VkStructureType sType;
21357 const void* pNext;
21358 uint32_t dimensionCount;
21359 const uint64_t* pSrcOffset;
21360 const uint64_t* pDstOffset;
21361 const uint64_t* pExtent;
21362} VkTensorCopyARM;
21363
21364typedef struct VkCopyTensorInfoARM {
21365 VkStructureType sType;
21366 const void* pNext;
21367 VkTensorARM srcTensor;
21368 VkTensorARM dstTensor;
21369 uint32_t regionCount;
21370 const VkTensorCopyARM* pRegions;
21371} VkCopyTensorInfoARM;
21372
21373typedef struct VkMemoryDedicatedAllocateInfoTensorARM {
21374 VkStructureType sType;
21375 const void* pNext;
21376 VkTensorARM tensor;
21377} VkMemoryDedicatedAllocateInfoTensorARM;
21378
21379typedef struct VkPhysicalDeviceExternalTensorInfoARM {
21380 VkStructureType sType;
21381 const void* pNext;
21382 VkTensorCreateFlagsARM flags;
21383 const VkTensorDescriptionARM* pDescription;
21384 VkExternalMemoryHandleTypeFlagBits handleType;
21385} VkPhysicalDeviceExternalTensorInfoARM;
21386
21387typedef struct VkExternalTensorPropertiesARM {
21388 VkStructureType sType;
21389 const void* pNext;
21390 VkExternalMemoryProperties externalMemoryProperties;
21391} VkExternalTensorPropertiesARM;
21392
21393typedef struct VkExternalMemoryTensorCreateInfoARM {
21394 VkStructureType sType;
21395 const void* pNext;
21396 VkExternalMemoryHandleTypeFlags handleTypes;
21397} VkExternalMemoryTensorCreateInfoARM;
21398
21399typedef struct VkPhysicalDeviceDescriptorBufferTensorFeaturesARM {
21400 VkStructureType sType;
21401 void* pNext;
21402 VkBool32 descriptorBufferTensorDescriptors;
21403} VkPhysicalDeviceDescriptorBufferTensorFeaturesARM;
21404
21405typedef struct VkPhysicalDeviceDescriptorBufferTensorPropertiesARM {
21406 VkStructureType sType;
21407 void* pNext;
21408 size_t tensorCaptureReplayDescriptorDataSize;
21409 size_t tensorViewCaptureReplayDescriptorDataSize;
21410 size_t tensorDescriptorSize;
21411} VkPhysicalDeviceDescriptorBufferTensorPropertiesARM;
21412
21413typedef struct VkDescriptorGetTensorInfoARM {
21414 VkStructureType sType;
21415 const void* pNext;
21416 VkTensorViewARM tensorView;
21417} VkDescriptorGetTensorInfoARM;
21418
21419typedef struct VkTensorCaptureDescriptorDataInfoARM {
21420 VkStructureType sType;
21421 const void* pNext;
21422 VkTensorARM tensor;
21423} VkTensorCaptureDescriptorDataInfoARM;
21424
21425typedef struct VkTensorViewCaptureDescriptorDataInfoARM {
21426 VkStructureType sType;
21427 const void* pNext;
21428 VkTensorViewARM tensorView;
21429} VkTensorViewCaptureDescriptorDataInfoARM;
21430
21431typedef struct VkFrameBoundaryTensorsARM {
21432 VkStructureType sType;
21433 const void* pNext;
21434 uint32_t tensorCount;
21435 const VkTensorARM* pTensors;
21436} VkFrameBoundaryTensorsARM;
21437
21438typedef VkResult (VKAPI_PTR *PFN_vkCreateTensorARM)(VkDevice device, const VkTensorCreateInfoARM* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkTensorARM* pTensor);
21439typedef void (VKAPI_PTR *PFN_vkDestroyTensorARM)(VkDevice device, VkTensorARM tensor, const VkAllocationCallbacks* pAllocator);
21440typedef VkResult (VKAPI_PTR *PFN_vkCreateTensorViewARM)(VkDevice device, const VkTensorViewCreateInfoARM* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkTensorViewARM* pView);
21441typedef void (VKAPI_PTR *PFN_vkDestroyTensorViewARM)(VkDevice device, VkTensorViewARM tensorView, const VkAllocationCallbacks* pAllocator);
21442typedef void (VKAPI_PTR *PFN_vkGetTensorMemoryRequirementsARM)(VkDevice device, const VkTensorMemoryRequirementsInfoARM* pInfo, VkMemoryRequirements2* pMemoryRequirements);
21443typedef VkResult (VKAPI_PTR *PFN_vkBindTensorMemoryARM)(VkDevice device, uint32_t bindInfoCount, const VkBindTensorMemoryInfoARM* pBindInfos);
21444typedef void (VKAPI_PTR *PFN_vkGetDeviceTensorMemoryRequirementsARM)(VkDevice device, const VkDeviceTensorMemoryRequirementsARM* pInfo, VkMemoryRequirements2* pMemoryRequirements);
21445typedef void (VKAPI_PTR *PFN_vkCmdCopyTensorARM)(VkCommandBuffer commandBuffer, const VkCopyTensorInfoARM* pCopyTensorInfo);
21446typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalTensorPropertiesARM)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalTensorInfoARM* pExternalTensorInfo, VkExternalTensorPropertiesARM* pExternalTensorProperties);
21447typedef VkResult (VKAPI_PTR *PFN_vkGetTensorOpaqueCaptureDescriptorDataARM)(VkDevice device, const VkTensorCaptureDescriptorDataInfoARM* pInfo, void* pData);
21448typedef VkResult (VKAPI_PTR *PFN_vkGetTensorViewOpaqueCaptureDescriptorDataARM)(VkDevice device, const VkTensorViewCaptureDescriptorDataInfoARM* pInfo, void* pData);
21449
21450#ifndef VK_NO_PROTOTYPES
21451#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21452VKAPI_ATTR VkResult VKAPI_CALL vkCreateTensorARM(
21453 VkDevice device,
21454 const VkTensorCreateInfoARM* pCreateInfo,
21455 const VkAllocationCallbacks* pAllocator,
21456 VkTensorARM* pTensor);
21457#endif
21458
21459#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21460VKAPI_ATTR void VKAPI_CALL vkDestroyTensorARM(
21461 VkDevice device,
21462 VkTensorARM tensor,
21463 const VkAllocationCallbacks* pAllocator);
21464#endif
21465
21466#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21467VKAPI_ATTR VkResult VKAPI_CALL vkCreateTensorViewARM(
21468 VkDevice device,
21469 const VkTensorViewCreateInfoARM* pCreateInfo,
21470 const VkAllocationCallbacks* pAllocator,
21471 VkTensorViewARM* pView);
21472#endif
21473
21474#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21475VKAPI_ATTR void VKAPI_CALL vkDestroyTensorViewARM(
21476 VkDevice device,
21477 VkTensorViewARM tensorView,
21478 const VkAllocationCallbacks* pAllocator);
21479#endif
21480
21481#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21482VKAPI_ATTR void VKAPI_CALL vkGetTensorMemoryRequirementsARM(
21483 VkDevice device,
21484 const VkTensorMemoryRequirementsInfoARM* pInfo,
21485 VkMemoryRequirements2* pMemoryRequirements);
21486#endif
21487
21488#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21489VKAPI_ATTR VkResult VKAPI_CALL vkBindTensorMemoryARM(
21490 VkDevice device,
21491 uint32_t bindInfoCount,
21492 const VkBindTensorMemoryInfoARM* pBindInfos);
21493#endif
21494
21495#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21496VKAPI_ATTR void VKAPI_CALL vkGetDeviceTensorMemoryRequirementsARM(
21497 VkDevice device,
21498 const VkDeviceTensorMemoryRequirementsARM* pInfo,
21499 VkMemoryRequirements2* pMemoryRequirements);
21500#endif
21501
21502#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21503VKAPI_ATTR void VKAPI_CALL vkCmdCopyTensorARM(
21504 VkCommandBuffer commandBuffer,
21505 const VkCopyTensorInfoARM* pCopyTensorInfo);
21506#endif
21507
21508#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21509VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalTensorPropertiesARM(
21510 VkPhysicalDevice physicalDevice,
21511 const VkPhysicalDeviceExternalTensorInfoARM* pExternalTensorInfo,
21512 VkExternalTensorPropertiesARM* pExternalTensorProperties);
21513#endif
21514
21515#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21516VKAPI_ATTR VkResult VKAPI_CALL vkGetTensorOpaqueCaptureDescriptorDataARM(
21517 VkDevice device,
21518 const VkTensorCaptureDescriptorDataInfoARM* pInfo,
21519 void* pData);
21520#endif
21521
21522#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21523VKAPI_ATTR VkResult VKAPI_CALL vkGetTensorViewOpaqueCaptureDescriptorDataARM(
21524 VkDevice device,
21525 const VkTensorViewCaptureDescriptorDataInfoARM* pInfo,
21526 void* pData);
21527#endif
21528#endif
21529
21530
21531// VK_EXT_shader_module_identifier is a preprocessor guard. Do not pass it to API calls.
21532#define VK_EXT_shader_module_identifier 1
21533#define VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT 32U
21534#define VK_EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION 1
21535#define VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME "VK_EXT_shader_module_identifier"
21536typedef struct VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT {
21537 VkStructureType sType;
21538 void* pNext;
21539 VkBool32 shaderModuleIdentifier;
21540} VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT;
21541
21542typedef struct VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT {
21543 VkStructureType sType;
21544 void* pNext;
21545 uint8_t shaderModuleIdentifierAlgorithmUUID[VK_UUID_SIZE];
21546} VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT;
21547
21548typedef struct VkPipelineShaderStageModuleIdentifierCreateInfoEXT {
21549 VkStructureType sType;
21550 const void* pNext;
21551 uint32_t identifierSize;
21552 const uint8_t* pIdentifier;
21553} VkPipelineShaderStageModuleIdentifierCreateInfoEXT;
21554
21555typedef struct VkShaderModuleIdentifierEXT {
21556 VkStructureType sType;
21557 void* pNext;
21558 uint32_t identifierSize;
21559 uint8_t identifier[VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT];
21560} VkShaderModuleIdentifierEXT;
21561
21562typedef void (VKAPI_PTR *PFN_vkGetShaderModuleIdentifierEXT)(VkDevice device, VkShaderModule shaderModule, VkShaderModuleIdentifierEXT* pIdentifier);
21563typedef void (VKAPI_PTR *PFN_vkGetShaderModuleCreateInfoIdentifierEXT)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, VkShaderModuleIdentifierEXT* pIdentifier);
21564
21565#ifndef VK_NO_PROTOTYPES
21566#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21567VKAPI_ATTR void VKAPI_CALL vkGetShaderModuleIdentifierEXT(
21568 VkDevice device,
21569 VkShaderModule shaderModule,
21570 VkShaderModuleIdentifierEXT* pIdentifier);
21571#endif
21572
21573#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21574VKAPI_ATTR void VKAPI_CALL vkGetShaderModuleCreateInfoIdentifierEXT(
21575 VkDevice device,
21576 const VkShaderModuleCreateInfo* pCreateInfo,
21577 VkShaderModuleIdentifierEXT* pIdentifier);
21578#endif
21579#endif
21580
21581
21582// VK_EXT_rasterization_order_attachment_access is a preprocessor guard. Do not pass it to API calls.
21583#define VK_EXT_rasterization_order_attachment_access 1
21584#define VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION 1
21585#define VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME "VK_EXT_rasterization_order_attachment_access"
21586
21587
21588// VK_NV_optical_flow is a preprocessor guard. Do not pass it to API calls.
21589#define VK_NV_optical_flow 1
21590VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkOpticalFlowSessionNV)
21591#define VK_NV_OPTICAL_FLOW_SPEC_VERSION 1
21592#define VK_NV_OPTICAL_FLOW_EXTENSION_NAME "VK_NV_optical_flow"
21593
21594typedef enum VkOpticalFlowPerformanceLevelNV {
21595 VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV = 0,
21596 VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV = 1,
21597 VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV = 2,
21598 VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV = 3,
21599 VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MAX_ENUM_NV = 0x7FFFFFFF
21600} VkOpticalFlowPerformanceLevelNV;
21601
21602typedef enum VkOpticalFlowSessionBindingPointNV {
21603 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV = 0,
21604 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV = 1,
21605 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV = 2,
21606 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV = 3,
21607 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV = 4,
21608 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV = 5,
21609 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV = 6,
21610 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV = 7,
21611 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV = 8,
21612 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_MAX_ENUM_NV = 0x7FFFFFFF
21613} VkOpticalFlowSessionBindingPointNV;
21614
21615typedef enum VkOpticalFlowGridSizeFlagBitsNV {
21616 VK_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV = 0,
21617 VK_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV = 0x00000001,
21618 VK_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV = 0x00000002,
21619 VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV = 0x00000004,
21620 VK_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV = 0x00000008,
21621 VK_OPTICAL_FLOW_GRID_SIZE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
21622} VkOpticalFlowGridSizeFlagBitsNV;
21623typedef VkFlags VkOpticalFlowGridSizeFlagsNV;
21624
21625typedef enum VkOpticalFlowUsageFlagBitsNV {
21626 VK_OPTICAL_FLOW_USAGE_UNKNOWN_NV = 0,
21627 VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV = 0x00000001,
21628 VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV = 0x00000002,
21629 VK_OPTICAL_FLOW_USAGE_HINT_BIT_NV = 0x00000004,
21630 VK_OPTICAL_FLOW_USAGE_COST_BIT_NV = 0x00000008,
21631 VK_OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV = 0x00000010,
21632 VK_OPTICAL_FLOW_USAGE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
21633} VkOpticalFlowUsageFlagBitsNV;
21634typedef VkFlags VkOpticalFlowUsageFlagsNV;
21635
21636typedef enum VkOpticalFlowSessionCreateFlagBitsNV {
21637 VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV = 0x00000001,
21638 VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV = 0x00000002,
21639 VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV = 0x00000004,
21640 VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV = 0x00000008,
21641 VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV = 0x00000010,
21642 VK_OPTICAL_FLOW_SESSION_CREATE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
21643} VkOpticalFlowSessionCreateFlagBitsNV;
21644typedef VkFlags VkOpticalFlowSessionCreateFlagsNV;
21645
21646typedef enum VkOpticalFlowExecuteFlagBitsNV {
21647 VK_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV = 0x00000001,
21648 VK_OPTICAL_FLOW_EXECUTE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
21649} VkOpticalFlowExecuteFlagBitsNV;
21650typedef VkFlags VkOpticalFlowExecuteFlagsNV;
21651typedef struct VkPhysicalDeviceOpticalFlowFeaturesNV {
21652 VkStructureType sType;
21653 void* pNext;
21654 VkBool32 opticalFlow;
21655} VkPhysicalDeviceOpticalFlowFeaturesNV;
21656
21657typedef struct VkPhysicalDeviceOpticalFlowPropertiesNV {
21658 VkStructureType sType;
21659 void* pNext;
21660 VkOpticalFlowGridSizeFlagsNV supportedOutputGridSizes;
21661 VkOpticalFlowGridSizeFlagsNV supportedHintGridSizes;
21662 VkBool32 hintSupported;
21663 VkBool32 costSupported;
21664 VkBool32 bidirectionalFlowSupported;
21665 VkBool32 globalFlowSupported;
21666 uint32_t minWidth;
21667 uint32_t minHeight;
21668 uint32_t maxWidth;
21669 uint32_t maxHeight;
21670 uint32_t maxNumRegionsOfInterest;
21671} VkPhysicalDeviceOpticalFlowPropertiesNV;
21672
21673typedef struct VkOpticalFlowImageFormatInfoNV {
21674 VkStructureType sType;
21675 const void* pNext;
21676 VkOpticalFlowUsageFlagsNV usage;
21677} VkOpticalFlowImageFormatInfoNV;
21678
21679typedef struct VkOpticalFlowImageFormatPropertiesNV {
21680 VkStructureType sType;
21681 void* pNext;
21682 VkFormat format;
21683} VkOpticalFlowImageFormatPropertiesNV;
21684
21685typedef struct VkOpticalFlowSessionCreateInfoNV {
21686 VkStructureType sType;
21687 void* pNext;
21688 uint32_t width;
21689 uint32_t height;
21690 VkFormat imageFormat;
21691 VkFormat flowVectorFormat;
21692 VkFormat costFormat;
21693 VkOpticalFlowGridSizeFlagsNV outputGridSize;
21694 VkOpticalFlowGridSizeFlagsNV hintGridSize;
21695 VkOpticalFlowPerformanceLevelNV performanceLevel;
21696 VkOpticalFlowSessionCreateFlagsNV flags;
21697} VkOpticalFlowSessionCreateInfoNV;
21698
21699typedef struct VkOpticalFlowSessionCreatePrivateDataInfoNV {
21700 VkStructureType sType;
21701 void* pNext;
21702 uint32_t id;
21703 uint32_t size;
21704 const void* pPrivateData;
21705} VkOpticalFlowSessionCreatePrivateDataInfoNV;
21706
21707typedef struct VkOpticalFlowExecuteInfoNV {
21708 VkStructureType sType;
21709 void* pNext;
21710 VkOpticalFlowExecuteFlagsNV flags;
21711 uint32_t regionCount;
21712 const VkRect2D* pRegions;
21713} VkOpticalFlowExecuteInfoNV;
21714
21715typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV)(VkPhysicalDevice physicalDevice, const VkOpticalFlowImageFormatInfoNV* pOpticalFlowImageFormatInfo, uint32_t* pFormatCount, VkOpticalFlowImageFormatPropertiesNV* pImageFormatProperties);
21716typedef VkResult (VKAPI_PTR *PFN_vkCreateOpticalFlowSessionNV)(VkDevice device, const VkOpticalFlowSessionCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkOpticalFlowSessionNV* pSession);
21717typedef void (VKAPI_PTR *PFN_vkDestroyOpticalFlowSessionNV)(VkDevice device, VkOpticalFlowSessionNV session, const VkAllocationCallbacks* pAllocator);
21718typedef VkResult (VKAPI_PTR *PFN_vkBindOpticalFlowSessionImageNV)(VkDevice device, VkOpticalFlowSessionNV session, VkOpticalFlowSessionBindingPointNV bindingPoint, VkImageView view, VkImageLayout layout);
21719typedef void (VKAPI_PTR *PFN_vkCmdOpticalFlowExecuteNV)(VkCommandBuffer commandBuffer, VkOpticalFlowSessionNV session, const VkOpticalFlowExecuteInfoNV* pExecuteInfo);
21720
21721#ifndef VK_NO_PROTOTYPES
21722#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21723VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceOpticalFlowImageFormatsNV(
21724 VkPhysicalDevice physicalDevice,
21725 const VkOpticalFlowImageFormatInfoNV* pOpticalFlowImageFormatInfo,
21726 uint32_t* pFormatCount,
21727 VkOpticalFlowImageFormatPropertiesNV* pImageFormatProperties);
21728#endif
21729
21730#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21731VKAPI_ATTR VkResult VKAPI_CALL vkCreateOpticalFlowSessionNV(
21732 VkDevice device,
21733 const VkOpticalFlowSessionCreateInfoNV* pCreateInfo,
21734 const VkAllocationCallbacks* pAllocator,
21735 VkOpticalFlowSessionNV* pSession);
21736#endif
21737
21738#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21739VKAPI_ATTR void VKAPI_CALL vkDestroyOpticalFlowSessionNV(
21740 VkDevice device,
21741 VkOpticalFlowSessionNV session,
21742 const VkAllocationCallbacks* pAllocator);
21743#endif
21744
21745#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21746VKAPI_ATTR VkResult VKAPI_CALL vkBindOpticalFlowSessionImageNV(
21747 VkDevice device,
21748 VkOpticalFlowSessionNV session,
21749 VkOpticalFlowSessionBindingPointNV bindingPoint,
21750 VkImageView view,
21751 VkImageLayout layout);
21752#endif
21753
21754#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21755VKAPI_ATTR void VKAPI_CALL vkCmdOpticalFlowExecuteNV(
21756 VkCommandBuffer commandBuffer,
21757 VkOpticalFlowSessionNV session,
21758 const VkOpticalFlowExecuteInfoNV* pExecuteInfo);
21759#endif
21760#endif
21761
21762
21763// VK_EXT_legacy_dithering is a preprocessor guard. Do not pass it to API calls.
21764#define VK_EXT_legacy_dithering 1
21765#define VK_EXT_LEGACY_DITHERING_SPEC_VERSION 2
21766#define VK_EXT_LEGACY_DITHERING_EXTENSION_NAME "VK_EXT_legacy_dithering"
21767typedef struct VkPhysicalDeviceLegacyDitheringFeaturesEXT {
21768 VkStructureType sType;
21769 void* pNext;
21770 VkBool32 legacyDithering;
21771} VkPhysicalDeviceLegacyDitheringFeaturesEXT;
21772
21773
21774
21775// VK_EXT_pipeline_protected_access is a preprocessor guard. Do not pass it to API calls.
21776#define VK_EXT_pipeline_protected_access 1
21777#define VK_EXT_PIPELINE_PROTECTED_ACCESS_SPEC_VERSION 1
21778#define VK_EXT_PIPELINE_PROTECTED_ACCESS_EXTENSION_NAME "VK_EXT_pipeline_protected_access"
21779typedef VkPhysicalDevicePipelineProtectedAccessFeatures VkPhysicalDevicePipelineProtectedAccessFeaturesEXT;
21780
21781
21782
21783// VK_AMD_anti_lag is a preprocessor guard. Do not pass it to API calls.
21784#define VK_AMD_anti_lag 1
21785#define VK_AMD_ANTI_LAG_SPEC_VERSION 1
21786#define VK_AMD_ANTI_LAG_EXTENSION_NAME "VK_AMD_anti_lag"
21787
21788typedef enum VkAntiLagModeAMD {
21789 VK_ANTI_LAG_MODE_DRIVER_CONTROL_AMD = 0,
21790 VK_ANTI_LAG_MODE_ON_AMD = 1,
21791 VK_ANTI_LAG_MODE_OFF_AMD = 2,
21792 VK_ANTI_LAG_MODE_MAX_ENUM_AMD = 0x7FFFFFFF
21793} VkAntiLagModeAMD;
21794
21795typedef enum VkAntiLagStageAMD {
21796 VK_ANTI_LAG_STAGE_INPUT_AMD = 0,
21797 VK_ANTI_LAG_STAGE_PRESENT_AMD = 1,
21798 VK_ANTI_LAG_STAGE_MAX_ENUM_AMD = 0x7FFFFFFF
21799} VkAntiLagStageAMD;
21800typedef struct VkPhysicalDeviceAntiLagFeaturesAMD {
21801 VkStructureType sType;
21802 void* pNext;
21803 VkBool32 antiLag;
21804} VkPhysicalDeviceAntiLagFeaturesAMD;
21805
21806typedef struct VkAntiLagPresentationInfoAMD {
21807 VkStructureType sType;
21808 void* pNext;
21809 VkAntiLagStageAMD stage;
21810 uint64_t frameIndex;
21811} VkAntiLagPresentationInfoAMD;
21812
21813typedef struct VkAntiLagDataAMD {
21814 VkStructureType sType;
21815 const void* pNext;
21816 VkAntiLagModeAMD mode;
21817 uint32_t maxFPS;
21818 const VkAntiLagPresentationInfoAMD* pPresentationInfo;
21819} VkAntiLagDataAMD;
21820
21821typedef void (VKAPI_PTR *PFN_vkAntiLagUpdateAMD)(VkDevice device, const VkAntiLagDataAMD* pData);
21822
21823#ifndef VK_NO_PROTOTYPES
21824#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21825VKAPI_ATTR void VKAPI_CALL vkAntiLagUpdateAMD(
21826 VkDevice device,
21827 const VkAntiLagDataAMD* pData);
21828#endif
21829#endif
21830
21831
21832// VK_EXT_shader_object is a preprocessor guard. Do not pass it to API calls.
21833#define VK_EXT_shader_object 1
21834VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderEXT)
21835#define VK_EXT_SHADER_OBJECT_SPEC_VERSION 1
21836#define VK_EXT_SHADER_OBJECT_EXTENSION_NAME "VK_EXT_shader_object"
21837
21838typedef enum VkShaderCodeTypeEXT {
21839 VK_SHADER_CODE_TYPE_BINARY_EXT = 0,
21840 VK_SHADER_CODE_TYPE_SPIRV_EXT = 1,
21841 VK_SHADER_CODE_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
21842} VkShaderCodeTypeEXT;
21843
21844typedef enum VkDepthClampModeEXT {
21845 VK_DEPTH_CLAMP_MODE_VIEWPORT_RANGE_EXT = 0,
21846 VK_DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT = 1,
21847 VK_DEPTH_CLAMP_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
21848} VkDepthClampModeEXT;
21849
21850typedef enum VkShaderCreateFlagBitsEXT {
21851 VK_SHADER_CREATE_LINK_STAGE_BIT_EXT = 0x00000001,
21852 VK_SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = 0x00000002,
21853 VK_SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = 0x00000004,
21854 VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT = 0x00000008,
21855 VK_SHADER_CREATE_DISPATCH_BASE_BIT_EXT = 0x00000010,
21856 VK_SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT = 0x00000020,
21857 VK_SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00000040,
21858 VK_SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT = 0x00000080,
21859 VK_SHADER_CREATE_64_BIT_INDEXING_BIT_EXT = 0x00008000,
21860 VK_SHADER_CREATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
21861} VkShaderCreateFlagBitsEXT;
21862typedef VkFlags VkShaderCreateFlagsEXT;
21863typedef struct VkPhysicalDeviceShaderObjectFeaturesEXT {
21864 VkStructureType sType;
21865 void* pNext;
21866 VkBool32 shaderObject;
21867} VkPhysicalDeviceShaderObjectFeaturesEXT;
21868
21869typedef struct VkPhysicalDeviceShaderObjectPropertiesEXT {
21870 VkStructureType sType;
21871 void* pNext;
21872 uint8_t shaderBinaryUUID[VK_UUID_SIZE];
21873 uint32_t shaderBinaryVersion;
21874} VkPhysicalDeviceShaderObjectPropertiesEXT;
21875
21876typedef struct VkShaderCreateInfoEXT {
21877 VkStructureType sType;
21878 const void* pNext;
21879 VkShaderCreateFlagsEXT flags;
21880 VkShaderStageFlagBits stage;
21881 VkShaderStageFlags nextStage;
21882 VkShaderCodeTypeEXT codeType;
21883 size_t codeSize;
21884 const void* pCode;
21885 const char* pName;
21886 uint32_t setLayoutCount;
21887 const VkDescriptorSetLayout* pSetLayouts;
21888 uint32_t pushConstantRangeCount;
21889 const VkPushConstantRange* pPushConstantRanges;
21890 const VkSpecializationInfo* pSpecializationInfo;
21891} VkShaderCreateInfoEXT;
21892
21893typedef VkPipelineShaderStageRequiredSubgroupSizeCreateInfo VkShaderRequiredSubgroupSizeCreateInfoEXT;
21894
21895typedef struct VkDepthClampRangeEXT {
21896 float minDepthClamp;
21897 float maxDepthClamp;
21898} VkDepthClampRangeEXT;
21899
21900typedef VkResult (VKAPI_PTR *PFN_vkCreateShadersEXT)(VkDevice device, uint32_t createInfoCount, const VkShaderCreateInfoEXT* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkShaderEXT* pShaders);
21901typedef void (VKAPI_PTR *PFN_vkDestroyShaderEXT)(VkDevice device, VkShaderEXT shader, const VkAllocationCallbacks* pAllocator);
21902typedef VkResult (VKAPI_PTR *PFN_vkGetShaderBinaryDataEXT)(VkDevice device, VkShaderEXT shader, size_t* pDataSize, void* pData);
21903typedef void (VKAPI_PTR *PFN_vkCmdBindShadersEXT)(VkCommandBuffer commandBuffer, uint32_t stageCount, const VkShaderStageFlagBits* pStages, const VkShaderEXT* pShaders);
21904typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClampRangeEXT)(VkCommandBuffer commandBuffer, VkDepthClampModeEXT depthClampMode, const VkDepthClampRangeEXT* pDepthClampRange);
21905
21906#ifndef VK_NO_PROTOTYPES
21907#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21908VKAPI_ATTR VkResult VKAPI_CALL vkCreateShadersEXT(
21909 VkDevice device,
21910 uint32_t createInfoCount,
21911 const VkShaderCreateInfoEXT* pCreateInfos,
21912 const VkAllocationCallbacks* pAllocator,
21913 VkShaderEXT* pShaders);
21914#endif
21915
21916#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21917VKAPI_ATTR void VKAPI_CALL vkDestroyShaderEXT(
21918 VkDevice device,
21919 VkShaderEXT shader,
21920 const VkAllocationCallbacks* pAllocator);
21921#endif
21922
21923#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21924VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderBinaryDataEXT(
21925 VkDevice device,
21926 VkShaderEXT shader,
21927 size_t* pDataSize,
21928 void* pData);
21929#endif
21930
21931#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21932VKAPI_ATTR void VKAPI_CALL vkCmdBindShadersEXT(
21933 VkCommandBuffer commandBuffer,
21934 uint32_t stageCount,
21935 const VkShaderStageFlagBits* pStages,
21936 const VkShaderEXT* pShaders);
21937#endif
21938
21939#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21940VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClampRangeEXT(
21941 VkCommandBuffer commandBuffer,
21942 VkDepthClampModeEXT depthClampMode,
21943 const VkDepthClampRangeEXT* pDepthClampRange);
21944#endif
21945#endif
21946
21947
21948// VK_QCOM_tile_properties is a preprocessor guard. Do not pass it to API calls.
21949#define VK_QCOM_tile_properties 1
21950#define VK_QCOM_TILE_PROPERTIES_SPEC_VERSION 1
21951#define VK_QCOM_TILE_PROPERTIES_EXTENSION_NAME "VK_QCOM_tile_properties"
21952typedef struct VkPhysicalDeviceTilePropertiesFeaturesQCOM {
21953 VkStructureType sType;
21954 void* pNext;
21955 VkBool32 tileProperties;
21956} VkPhysicalDeviceTilePropertiesFeaturesQCOM;
21957
21958typedef struct VkTilePropertiesQCOM {
21959 VkStructureType sType;
21960 void* pNext;
21961 VkExtent3D tileSize;
21962 VkExtent2D apronSize;
21963 VkOffset2D origin;
21964} VkTilePropertiesQCOM;
21965
21966typedef VkResult (VKAPI_PTR *PFN_vkGetFramebufferTilePropertiesQCOM)(VkDevice device, VkFramebuffer framebuffer, uint32_t* pPropertiesCount, VkTilePropertiesQCOM* pProperties);
21967typedef VkResult (VKAPI_PTR *PFN_vkGetDynamicRenderingTilePropertiesQCOM)(VkDevice device, const VkRenderingInfo* pRenderingInfo, VkTilePropertiesQCOM* pProperties);
21968
21969#ifndef VK_NO_PROTOTYPES
21970#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21971VKAPI_ATTR VkResult VKAPI_CALL vkGetFramebufferTilePropertiesQCOM(
21972 VkDevice device,
21973 VkFramebuffer framebuffer,
21974 uint32_t* pPropertiesCount,
21975 VkTilePropertiesQCOM* pProperties);
21976#endif
21977
21978#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21979VKAPI_ATTR VkResult VKAPI_CALL vkGetDynamicRenderingTilePropertiesQCOM(
21980 VkDevice device,
21981 const VkRenderingInfo* pRenderingInfo,
21982 VkTilePropertiesQCOM* pProperties);
21983#endif
21984#endif
21985
21986
21987// VK_SEC_amigo_profiling is a preprocessor guard. Do not pass it to API calls.
21988#define VK_SEC_amigo_profiling 1
21989#define VK_SEC_AMIGO_PROFILING_SPEC_VERSION 1
21990#define VK_SEC_AMIGO_PROFILING_EXTENSION_NAME "VK_SEC_amigo_profiling"
21991typedef struct VkPhysicalDeviceAmigoProfilingFeaturesSEC {
21992 VkStructureType sType;
21993 void* pNext;
21994 VkBool32 amigoProfiling;
21995} VkPhysicalDeviceAmigoProfilingFeaturesSEC;
21996
21997typedef struct VkAmigoProfilingSubmitInfoSEC {
21998 VkStructureType sType;
21999 const void* pNext;
22000 uint64_t firstDrawTimestamp;
22001 uint64_t swapBufferTimestamp;
22002} VkAmigoProfilingSubmitInfoSEC;
22003
22004
22005
22006// VK_QCOM_multiview_per_view_viewports is a preprocessor guard. Do not pass it to API calls.
22007#define VK_QCOM_multiview_per_view_viewports 1
22008#define VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_SPEC_VERSION 1
22009#define VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_EXTENSION_NAME "VK_QCOM_multiview_per_view_viewports"
22010typedef struct VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM {
22011 VkStructureType sType;
22012 void* pNext;
22013 VkBool32 multiviewPerViewViewports;
22014} VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM;
22015
22016
22017
22018// VK_NV_ray_tracing_invocation_reorder is a preprocessor guard. Do not pass it to API calls.
22019#define VK_NV_ray_tracing_invocation_reorder 1
22020#define VK_NV_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION 1
22021#define VK_NV_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME "VK_NV_ray_tracing_invocation_reorder"
22022
22023typedef enum VkRayTracingInvocationReorderModeEXT {
22024 VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_EXT = 0,
22025 VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_EXT = 1,
22026 VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV = VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_EXT,
22027 VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV = VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_EXT,
22028 VK_RAY_TRACING_INVOCATION_REORDER_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
22029} VkRayTracingInvocationReorderModeEXT;
22030typedef VkRayTracingInvocationReorderModeEXT VkRayTracingInvocationReorderModeNV;
22031
22032typedef struct VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV {
22033 VkStructureType sType;
22034 void* pNext;
22035 VkRayTracingInvocationReorderModeEXT rayTracingInvocationReorderReorderingHint;
22036} VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV;
22037
22038typedef struct VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV {
22039 VkStructureType sType;
22040 void* pNext;
22041 VkBool32 rayTracingInvocationReorder;
22042} VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV;
22043
22044
22045
22046// VK_NV_cooperative_vector is a preprocessor guard. Do not pass it to API calls.
22047#define VK_NV_cooperative_vector 1
22048#define VK_NV_COOPERATIVE_VECTOR_SPEC_VERSION 4
22049#define VK_NV_COOPERATIVE_VECTOR_EXTENSION_NAME "VK_NV_cooperative_vector"
22050
22051typedef enum VkCooperativeVectorMatrixLayoutNV {
22052 VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_ROW_MAJOR_NV = 0,
22053 VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_COLUMN_MAJOR_NV = 1,
22054 VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_INFERENCING_OPTIMAL_NV = 2,
22055 VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_TRAINING_OPTIMAL_NV = 3,
22056 VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_MAX_ENUM_NV = 0x7FFFFFFF
22057} VkCooperativeVectorMatrixLayoutNV;
22058typedef struct VkPhysicalDeviceCooperativeVectorPropertiesNV {
22059 VkStructureType sType;
22060 void* pNext;
22061 VkShaderStageFlags cooperativeVectorSupportedStages;
22062 VkBool32 cooperativeVectorTrainingFloat16Accumulation;
22063 VkBool32 cooperativeVectorTrainingFloat32Accumulation;
22064 uint32_t maxCooperativeVectorComponents;
22065} VkPhysicalDeviceCooperativeVectorPropertiesNV;
22066
22067typedef struct VkPhysicalDeviceCooperativeVectorFeaturesNV {
22068 VkStructureType sType;
22069 void* pNext;
22070 VkBool32 cooperativeVector;
22071 VkBool32 cooperativeVectorTraining;
22072} VkPhysicalDeviceCooperativeVectorFeaturesNV;
22073
22074typedef struct VkCooperativeVectorPropertiesNV {
22075 VkStructureType sType;
22076 void* pNext;
22077 VkComponentTypeKHR inputType;
22078 VkComponentTypeKHR inputInterpretation;
22079 VkComponentTypeKHR matrixInterpretation;
22080 VkComponentTypeKHR biasInterpretation;
22081 VkComponentTypeKHR resultType;
22082 VkBool32 transpose;
22083} VkCooperativeVectorPropertiesNV;
22084
22085typedef struct VkConvertCooperativeVectorMatrixInfoNV {
22086 VkStructureType sType;
22087 const void* pNext;
22088 size_t srcSize;
22089 VkDeviceOrHostAddressConstKHR srcData;
22090 size_t* pDstSize;
22091 VkDeviceOrHostAddressKHR dstData;
22092 VkComponentTypeKHR srcComponentType;
22093 VkComponentTypeKHR dstComponentType;
22094 uint32_t numRows;
22095 uint32_t numColumns;
22096 VkCooperativeVectorMatrixLayoutNV srcLayout;
22097 size_t srcStride;
22098 VkCooperativeVectorMatrixLayoutNV dstLayout;
22099 size_t dstStride;
22100} VkConvertCooperativeVectorMatrixInfoNV;
22101
22102typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeVectorPropertiesNV)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeVectorPropertiesNV* pProperties);
22103typedef VkResult (VKAPI_PTR *PFN_vkConvertCooperativeVectorMatrixNV)(VkDevice device, const VkConvertCooperativeVectorMatrixInfoNV* pInfo);
22104typedef void (VKAPI_PTR *PFN_vkCmdConvertCooperativeVectorMatrixNV)(VkCommandBuffer commandBuffer, uint32_t infoCount, const VkConvertCooperativeVectorMatrixInfoNV* pInfos);
22105
22106#ifndef VK_NO_PROTOTYPES
22107#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22108VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeVectorPropertiesNV(
22109 VkPhysicalDevice physicalDevice,
22110 uint32_t* pPropertyCount,
22111 VkCooperativeVectorPropertiesNV* pProperties);
22112#endif
22113
22114#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22115VKAPI_ATTR VkResult VKAPI_CALL vkConvertCooperativeVectorMatrixNV(
22116 VkDevice device,
22117 const VkConvertCooperativeVectorMatrixInfoNV* pInfo);
22118#endif
22119
22120#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22121VKAPI_ATTR void VKAPI_CALL vkCmdConvertCooperativeVectorMatrixNV(
22122 VkCommandBuffer commandBuffer,
22123 uint32_t infoCount,
22124 const VkConvertCooperativeVectorMatrixInfoNV* pInfos);
22125#endif
22126#endif
22127
22128
22129// VK_NV_extended_sparse_address_space is a preprocessor guard. Do not pass it to API calls.
22130#define VK_NV_extended_sparse_address_space 1
22131#define VK_NV_EXTENDED_SPARSE_ADDRESS_SPACE_SPEC_VERSION 1
22132#define VK_NV_EXTENDED_SPARSE_ADDRESS_SPACE_EXTENSION_NAME "VK_NV_extended_sparse_address_space"
22133typedef struct VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV {
22134 VkStructureType sType;
22135 void* pNext;
22136 VkBool32 extendedSparseAddressSpace;
22137} VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV;
22138
22139typedef struct VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV {
22140 VkStructureType sType;
22141 void* pNext;
22142 VkDeviceSize extendedSparseAddressSpaceSize;
22143 VkImageUsageFlags extendedSparseImageUsageFlags;
22144 VkBufferUsageFlags extendedSparseBufferUsageFlags;
22145} VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV;
22146
22147
22148
22149// VK_EXT_mutable_descriptor_type is a preprocessor guard. Do not pass it to API calls.
22150#define VK_EXT_mutable_descriptor_type 1
22151#define VK_EXT_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION 1
22152#define VK_EXT_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME "VK_EXT_mutable_descriptor_type"
22153
22154
22155// VK_EXT_legacy_vertex_attributes is a preprocessor guard. Do not pass it to API calls.
22156#define VK_EXT_legacy_vertex_attributes 1
22157#define VK_EXT_LEGACY_VERTEX_ATTRIBUTES_SPEC_VERSION 1
22158#define VK_EXT_LEGACY_VERTEX_ATTRIBUTES_EXTENSION_NAME "VK_EXT_legacy_vertex_attributes"
22159typedef struct VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT {
22160 VkStructureType sType;
22161 void* pNext;
22162 VkBool32 legacyVertexAttributes;
22163} VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT;
22164
22165typedef struct VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT {
22166 VkStructureType sType;
22167 void* pNext;
22168 VkBool32 nativeUnalignedPerformance;
22169} VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT;
22170
22171
22172
22173// VK_EXT_layer_settings is a preprocessor guard. Do not pass it to API calls.
22174#define VK_EXT_layer_settings 1
22175#define VK_EXT_LAYER_SETTINGS_SPEC_VERSION 2
22176#define VK_EXT_LAYER_SETTINGS_EXTENSION_NAME "VK_EXT_layer_settings"
22177
22178typedef enum VkLayerSettingTypeEXT {
22179 VK_LAYER_SETTING_TYPE_BOOL32_EXT = 0,
22180 VK_LAYER_SETTING_TYPE_INT32_EXT = 1,
22181 VK_LAYER_SETTING_TYPE_INT64_EXT = 2,
22182 VK_LAYER_SETTING_TYPE_UINT32_EXT = 3,
22183 VK_LAYER_SETTING_TYPE_UINT64_EXT = 4,
22184 VK_LAYER_SETTING_TYPE_FLOAT32_EXT = 5,
22185 VK_LAYER_SETTING_TYPE_FLOAT64_EXT = 6,
22186 VK_LAYER_SETTING_TYPE_STRING_EXT = 7,
22187 VK_LAYER_SETTING_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
22188} VkLayerSettingTypeEXT;
22189typedef struct VkLayerSettingEXT {
22190 const char* pLayerName;
22191 const char* pSettingName;
22192 VkLayerSettingTypeEXT type;
22193 uint32_t valueCount;
22194 const void* pValues;
22195} VkLayerSettingEXT;
22196
22197typedef struct VkLayerSettingsCreateInfoEXT {
22198 VkStructureType sType;
22199 const void* pNext;
22200 uint32_t settingCount;
22201 const VkLayerSettingEXT* pSettings;
22202} VkLayerSettingsCreateInfoEXT;
22203
22204
22205
22206// VK_ARM_shader_core_builtins is a preprocessor guard. Do not pass it to API calls.
22207#define VK_ARM_shader_core_builtins 1
22208#define VK_ARM_SHADER_CORE_BUILTINS_SPEC_VERSION 2
22209#define VK_ARM_SHADER_CORE_BUILTINS_EXTENSION_NAME "VK_ARM_shader_core_builtins"
22210typedef struct VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM {
22211 VkStructureType sType;
22212 void* pNext;
22213 VkBool32 shaderCoreBuiltins;
22214} VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM;
22215
22216typedef struct VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM {
22217 VkStructureType sType;
22218 void* pNext;
22219 uint64_t shaderCoreMask;
22220 uint32_t shaderCoreCount;
22221 uint32_t shaderWarpsPerCore;
22222} VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM;
22223
22224
22225
22226// VK_EXT_pipeline_library_group_handles is a preprocessor guard. Do not pass it to API calls.
22227#define VK_EXT_pipeline_library_group_handles 1
22228#define VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_SPEC_VERSION 1
22229#define VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_EXTENSION_NAME "VK_EXT_pipeline_library_group_handles"
22230typedef struct VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT {
22231 VkStructureType sType;
22232 void* pNext;
22233 VkBool32 pipelineLibraryGroupHandles;
22234} VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT;
22235
22236
22237
22238// VK_EXT_dynamic_rendering_unused_attachments is a preprocessor guard. Do not pass it to API calls.
22239#define VK_EXT_dynamic_rendering_unused_attachments 1
22240#define VK_EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_SPEC_VERSION 1
22241#define VK_EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_EXTENSION_NAME "VK_EXT_dynamic_rendering_unused_attachments"
22242typedef struct VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT {
22243 VkStructureType sType;
22244 void* pNext;
22245 VkBool32 dynamicRenderingUnusedAttachments;
22246} VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT;
22247
22248
22249
22250// VK_NV_low_latency2 is a preprocessor guard. Do not pass it to API calls.
22251#define VK_NV_low_latency2 1
22252#define VK_NV_LOW_LATENCY_2_SPEC_VERSION 2
22253#define VK_NV_LOW_LATENCY_2_EXTENSION_NAME "VK_NV_low_latency2"
22254
22255typedef enum VkLatencyMarkerNV {
22256 VK_LATENCY_MARKER_SIMULATION_START_NV = 0,
22257 VK_LATENCY_MARKER_SIMULATION_END_NV = 1,
22258 VK_LATENCY_MARKER_RENDERSUBMIT_START_NV = 2,
22259 VK_LATENCY_MARKER_RENDERSUBMIT_END_NV = 3,
22260 VK_LATENCY_MARKER_PRESENT_START_NV = 4,
22261 VK_LATENCY_MARKER_PRESENT_END_NV = 5,
22262 VK_LATENCY_MARKER_INPUT_SAMPLE_NV = 6,
22263 VK_LATENCY_MARKER_TRIGGER_FLASH_NV = 7,
22264 VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_START_NV = 8,
22265 VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_END_NV = 9,
22266 VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_START_NV = 10,
22267 VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_END_NV = 11,
22268 VK_LATENCY_MARKER_MAX_ENUM_NV = 0x7FFFFFFF
22269} VkLatencyMarkerNV;
22270
22271typedef enum VkOutOfBandQueueTypeNV {
22272 VK_OUT_OF_BAND_QUEUE_TYPE_RENDER_NV = 0,
22273 VK_OUT_OF_BAND_QUEUE_TYPE_PRESENT_NV = 1,
22274 VK_OUT_OF_BAND_QUEUE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
22275} VkOutOfBandQueueTypeNV;
22276typedef struct VkLatencySleepModeInfoNV {
22277 VkStructureType sType;
22278 const void* pNext;
22279 VkBool32 lowLatencyMode;
22280 VkBool32 lowLatencyBoost;
22281 uint32_t minimumIntervalUs;
22282} VkLatencySleepModeInfoNV;
22283
22284typedef struct VkLatencySleepInfoNV {
22285 VkStructureType sType;
22286 const void* pNext;
22287 VkSemaphore signalSemaphore;
22288 uint64_t value;
22289} VkLatencySleepInfoNV;
22290
22291typedef struct VkSetLatencyMarkerInfoNV {
22292 VkStructureType sType;
22293 const void* pNext;
22294 uint64_t presentID;
22295 VkLatencyMarkerNV marker;
22296} VkSetLatencyMarkerInfoNV;
22297
22298typedef struct VkLatencyTimingsFrameReportNV {
22299 VkStructureType sType;
22300 void* pNext;
22301 uint64_t presentID;
22302 uint64_t inputSampleTimeUs;
22303 uint64_t simStartTimeUs;
22304 uint64_t simEndTimeUs;
22305 uint64_t renderSubmitStartTimeUs;
22306 uint64_t renderSubmitEndTimeUs;
22307 uint64_t presentStartTimeUs;
22308 uint64_t presentEndTimeUs;
22309 uint64_t driverStartTimeUs;
22310 uint64_t driverEndTimeUs;
22311 uint64_t osRenderQueueStartTimeUs;
22312 uint64_t osRenderQueueEndTimeUs;
22313 uint64_t gpuRenderStartTimeUs;
22314 uint64_t gpuRenderEndTimeUs;
22315} VkLatencyTimingsFrameReportNV;
22316
22317typedef struct VkGetLatencyMarkerInfoNV {
22318 VkStructureType sType;
22319 const void* pNext;
22320 uint32_t timingCount;
22321 VkLatencyTimingsFrameReportNV* pTimings;
22322} VkGetLatencyMarkerInfoNV;
22323
22324typedef struct VkLatencySubmissionPresentIdNV {
22325 VkStructureType sType;
22326 const void* pNext;
22327 uint64_t presentID;
22328} VkLatencySubmissionPresentIdNV;
22329
22330typedef struct VkSwapchainLatencyCreateInfoNV {
22331 VkStructureType sType;
22332 const void* pNext;
22333 VkBool32 latencyModeEnable;
22334} VkSwapchainLatencyCreateInfoNV;
22335
22336typedef struct VkOutOfBandQueueTypeInfoNV {
22337 VkStructureType sType;
22338 const void* pNext;
22339 VkOutOfBandQueueTypeNV queueType;
22340} VkOutOfBandQueueTypeInfoNV;
22341
22342typedef struct VkLatencySurfaceCapabilitiesNV {
22343 VkStructureType sType;
22344 const void* pNext;
22345 uint32_t presentModeCount;
22346 VkPresentModeKHR* pPresentModes;
22347} VkLatencySurfaceCapabilitiesNV;
22348
22349typedef VkResult (VKAPI_PTR *PFN_vkSetLatencySleepModeNV)(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepModeInfoNV* pSleepModeInfo);
22350typedef VkResult (VKAPI_PTR *PFN_vkLatencySleepNV)(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepInfoNV* pSleepInfo);
22351typedef void (VKAPI_PTR *PFN_vkSetLatencyMarkerNV)(VkDevice device, VkSwapchainKHR swapchain, const VkSetLatencyMarkerInfoNV* pLatencyMarkerInfo);
22352typedef void (VKAPI_PTR *PFN_vkGetLatencyTimingsNV)(VkDevice device, VkSwapchainKHR swapchain, VkGetLatencyMarkerInfoNV* pLatencyMarkerInfo);
22353typedef void (VKAPI_PTR *PFN_vkQueueNotifyOutOfBandNV)(VkQueue queue, const VkOutOfBandQueueTypeInfoNV* pQueueTypeInfo);
22354
22355#ifndef VK_NO_PROTOTYPES
22356#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22357VKAPI_ATTR VkResult VKAPI_CALL vkSetLatencySleepModeNV(
22358 VkDevice device,
22359 VkSwapchainKHR swapchain,
22360 const VkLatencySleepModeInfoNV* pSleepModeInfo);
22361#endif
22362
22363#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22364VKAPI_ATTR VkResult VKAPI_CALL vkLatencySleepNV(
22365 VkDevice device,
22366 VkSwapchainKHR swapchain,
22367 const VkLatencySleepInfoNV* pSleepInfo);
22368#endif
22369
22370#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22371VKAPI_ATTR void VKAPI_CALL vkSetLatencyMarkerNV(
22372 VkDevice device,
22373 VkSwapchainKHR swapchain,
22374 const VkSetLatencyMarkerInfoNV* pLatencyMarkerInfo);
22375#endif
22376
22377#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22378VKAPI_ATTR void VKAPI_CALL vkGetLatencyTimingsNV(
22379 VkDevice device,
22380 VkSwapchainKHR swapchain,
22381 VkGetLatencyMarkerInfoNV* pLatencyMarkerInfo);
22382#endif
22383
22384#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22385VKAPI_ATTR void VKAPI_CALL vkQueueNotifyOutOfBandNV(
22386 VkQueue queue,
22387 const VkOutOfBandQueueTypeInfoNV* pQueueTypeInfo);
22388#endif
22389#endif
22390
22391
22392// VK_ARM_data_graph is a preprocessor guard. Do not pass it to API calls.
22393#define VK_ARM_data_graph 1
22394VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDataGraphPipelineSessionARM)
22395#define VK_MAX_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_SET_NAME_SIZE_ARM 128U
22396#define VK_ARM_DATA_GRAPH_SPEC_VERSION 1
22397#define VK_ARM_DATA_GRAPH_EXTENSION_NAME "VK_ARM_data_graph"
22398
22399typedef enum VkDataGraphPipelineSessionBindPointARM {
22400 VK_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_TRANSIENT_ARM = 0,
22401 VK_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_MAX_ENUM_ARM = 0x7FFFFFFF
22402} VkDataGraphPipelineSessionBindPointARM;
22403
22404typedef enum VkDataGraphPipelineSessionBindPointTypeARM {
22405 VK_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_TYPE_MEMORY_ARM = 0,
22406 VK_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_TYPE_MAX_ENUM_ARM = 0x7FFFFFFF
22407} VkDataGraphPipelineSessionBindPointTypeARM;
22408
22409typedef enum VkDataGraphPipelinePropertyARM {
22410 VK_DATA_GRAPH_PIPELINE_PROPERTY_CREATION_LOG_ARM = 0,
22411 VK_DATA_GRAPH_PIPELINE_PROPERTY_IDENTIFIER_ARM = 1,
22412 VK_DATA_GRAPH_PIPELINE_PROPERTY_MAX_ENUM_ARM = 0x7FFFFFFF
22413} VkDataGraphPipelinePropertyARM;
22414
22415typedef enum VkPhysicalDeviceDataGraphProcessingEngineTypeARM {
22416 VK_PHYSICAL_DEVICE_DATA_GRAPH_PROCESSING_ENGINE_TYPE_DEFAULT_ARM = 0,
22417 VK_PHYSICAL_DEVICE_DATA_GRAPH_PROCESSING_ENGINE_TYPE_NEURAL_QCOM = 1000629000,
22418 VK_PHYSICAL_DEVICE_DATA_GRAPH_PROCESSING_ENGINE_TYPE_COMPUTE_QCOM = 1000629001,
22419 VK_PHYSICAL_DEVICE_DATA_GRAPH_PROCESSING_ENGINE_TYPE_MAX_ENUM_ARM = 0x7FFFFFFF
22420} VkPhysicalDeviceDataGraphProcessingEngineTypeARM;
22421
22422typedef enum VkPhysicalDeviceDataGraphOperationTypeARM {
22423 VK_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_TYPE_SPIRV_EXTENDED_INSTRUCTION_SET_ARM = 0,
22424 VK_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_TYPE_NEURAL_MODEL_QCOM = 1000629000,
22425 VK_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_TYPE_BUILTIN_MODEL_QCOM = 1000629001,
22426 VK_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_TYPE_MAX_ENUM_ARM = 0x7FFFFFFF
22427} VkPhysicalDeviceDataGraphOperationTypeARM;
22428typedef VkFlags64 VkDataGraphPipelineSessionCreateFlagsARM;
22429
22430// Flag bits for VkDataGraphPipelineSessionCreateFlagBitsARM
22431typedef VkFlags64 VkDataGraphPipelineSessionCreateFlagBitsARM;
22432static const VkDataGraphPipelineSessionCreateFlagBitsARM VK_DATA_GRAPH_PIPELINE_SESSION_CREATE_PROTECTED_BIT_ARM = 0x00000001ULL;
22433
22434typedef VkFlags64 VkDataGraphPipelineDispatchFlagsARM;
22435
22436// Flag bits for VkDataGraphPipelineDispatchFlagBitsARM
22437typedef VkFlags64 VkDataGraphPipelineDispatchFlagBitsARM;
22438
22439typedef struct VkPhysicalDeviceDataGraphFeaturesARM {
22440 VkStructureType sType;
22441 void* pNext;
22442 VkBool32 dataGraph;
22443 VkBool32 dataGraphUpdateAfterBind;
22444 VkBool32 dataGraphSpecializationConstants;
22445 VkBool32 dataGraphDescriptorBuffer;
22446 VkBool32 dataGraphShaderModule;
22447} VkPhysicalDeviceDataGraphFeaturesARM;
22448
22449typedef struct VkDataGraphPipelineConstantARM {
22450 VkStructureType sType;
22451 const void* pNext;
22452 uint32_t id;
22453 const void* pConstantData;
22454} VkDataGraphPipelineConstantARM;
22455
22456typedef struct VkDataGraphPipelineResourceInfoARM {
22457 VkStructureType sType;
22458 const void* pNext;
22459 uint32_t descriptorSet;
22460 uint32_t binding;
22461 uint32_t arrayElement;
22462} VkDataGraphPipelineResourceInfoARM;
22463
22464typedef struct VkDataGraphPipelineCompilerControlCreateInfoARM {
22465 VkStructureType sType;
22466 const void* pNext;
22467 const char* pVendorOptions;
22468} VkDataGraphPipelineCompilerControlCreateInfoARM;
22469
22470typedef struct VkDataGraphPipelineCreateInfoARM {
22471 VkStructureType sType;
22472 const void* pNext;
22473 VkPipelineCreateFlags2KHR flags;
22474 VkPipelineLayout layout;
22475 uint32_t resourceInfoCount;
22476 const VkDataGraphPipelineResourceInfoARM* pResourceInfos;
22477} VkDataGraphPipelineCreateInfoARM;
22478
22479typedef struct VkDataGraphPipelineShaderModuleCreateInfoARM {
22480 VkStructureType sType;
22481 const void* pNext;
22482 VkShaderModule module;
22483 const char* pName;
22484 const VkSpecializationInfo* pSpecializationInfo;
22485 uint32_t constantCount;
22486 const VkDataGraphPipelineConstantARM* pConstants;
22487} VkDataGraphPipelineShaderModuleCreateInfoARM;
22488
22489typedef struct VkDataGraphPipelineSessionCreateInfoARM {
22490 VkStructureType sType;
22491 const void* pNext;
22492 VkDataGraphPipelineSessionCreateFlagsARM flags;
22493 VkPipeline dataGraphPipeline;
22494} VkDataGraphPipelineSessionCreateInfoARM;
22495
22496typedef struct VkDataGraphPipelineSessionBindPointRequirementsInfoARM {
22497 VkStructureType sType;
22498 const void* pNext;
22499 VkDataGraphPipelineSessionARM session;
22500} VkDataGraphPipelineSessionBindPointRequirementsInfoARM;
22501
22502typedef struct VkDataGraphPipelineSessionBindPointRequirementARM {
22503 VkStructureType sType;
22504 const void* pNext;
22505 VkDataGraphPipelineSessionBindPointARM bindPoint;
22506 VkDataGraphPipelineSessionBindPointTypeARM bindPointType;
22507 uint32_t numObjects;
22508} VkDataGraphPipelineSessionBindPointRequirementARM;
22509
22510typedef struct VkDataGraphPipelineSessionMemoryRequirementsInfoARM {
22511 VkStructureType sType;
22512 const void* pNext;
22513 VkDataGraphPipelineSessionARM session;
22514 VkDataGraphPipelineSessionBindPointARM bindPoint;
22515 uint32_t objectIndex;
22516} VkDataGraphPipelineSessionMemoryRequirementsInfoARM;
22517
22518typedef struct VkBindDataGraphPipelineSessionMemoryInfoARM {
22519 VkStructureType sType;
22520 const void* pNext;
22521 VkDataGraphPipelineSessionARM session;
22522 VkDataGraphPipelineSessionBindPointARM bindPoint;
22523 uint32_t objectIndex;
22524 VkDeviceMemory memory;
22525 VkDeviceSize memoryOffset;
22526} VkBindDataGraphPipelineSessionMemoryInfoARM;
22527
22528typedef struct VkDataGraphPipelineInfoARM {
22529 VkStructureType sType;
22530 const void* pNext;
22531 VkPipeline dataGraphPipeline;
22532} VkDataGraphPipelineInfoARM;
22533
22534typedef struct VkDataGraphPipelinePropertyQueryResultARM {
22535 VkStructureType sType;
22536 const void* pNext;
22537 VkDataGraphPipelinePropertyARM property;
22538 VkBool32 isText;
22539 size_t dataSize;
22540 void* pData;
22541} VkDataGraphPipelinePropertyQueryResultARM;
22542
22543typedef struct VkDataGraphPipelineIdentifierCreateInfoARM {
22544 VkStructureType sType;
22545 const void* pNext;
22546 uint32_t identifierSize;
22547 const uint8_t* pIdentifier;
22548} VkDataGraphPipelineIdentifierCreateInfoARM;
22549
22550typedef struct VkDataGraphPipelineDispatchInfoARM {
22551 VkStructureType sType;
22552 void* pNext;
22553 VkDataGraphPipelineDispatchFlagsARM flags;
22554} VkDataGraphPipelineDispatchInfoARM;
22555
22556typedef struct VkPhysicalDeviceDataGraphProcessingEngineARM {
22557 VkPhysicalDeviceDataGraphProcessingEngineTypeARM type;
22558 VkBool32 isForeign;
22559} VkPhysicalDeviceDataGraphProcessingEngineARM;
22560
22561typedef struct VkPhysicalDeviceDataGraphOperationSupportARM {
22562 VkPhysicalDeviceDataGraphOperationTypeARM operationType;
22563 char name[VK_MAX_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_SET_NAME_SIZE_ARM];
22564 uint32_t version;
22565} VkPhysicalDeviceDataGraphOperationSupportARM;
22566
22567typedef struct VkQueueFamilyDataGraphPropertiesARM {
22568 VkStructureType sType;
22569 const void* pNext;
22570 VkPhysicalDeviceDataGraphProcessingEngineARM engine;
22571 VkPhysicalDeviceDataGraphOperationSupportARM operation;
22572} VkQueueFamilyDataGraphPropertiesARM;
22573
22574typedef struct VkDataGraphProcessingEngineCreateInfoARM {
22575 VkStructureType sType;
22576 const void* pNext;
22577 uint32_t processingEngineCount;
22578 VkPhysicalDeviceDataGraphProcessingEngineARM* pProcessingEngines;
22579} VkDataGraphProcessingEngineCreateInfoARM;
22580
22581typedef struct VkPhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM {
22582 VkStructureType sType;
22583 const void* pNext;
22584 uint32_t queueFamilyIndex;
22585 VkPhysicalDeviceDataGraphProcessingEngineTypeARM engineType;
22586} VkPhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM;
22587
22588typedef struct VkQueueFamilyDataGraphProcessingEnginePropertiesARM {
22589 VkStructureType sType;
22590 const void* pNext;
22591 VkExternalSemaphoreHandleTypeFlags foreignSemaphoreHandleTypes;
22592 VkExternalMemoryHandleTypeFlags foreignMemoryHandleTypes;
22593} VkQueueFamilyDataGraphProcessingEnginePropertiesARM;
22594
22595typedef struct VkDataGraphPipelineConstantTensorSemiStructuredSparsityInfoARM {
22596 VkStructureType sType;
22597 const void* pNext;
22598 uint32_t dimension;
22599 uint32_t zeroCount;
22600 uint32_t groupSize;
22601} VkDataGraphPipelineConstantTensorSemiStructuredSparsityInfoARM;
22602
22603typedef VkResult (VKAPI_PTR *PFN_vkCreateDataGraphPipelinesARM)(VkDevice device, VkDeferredOperationKHR deferredOperation, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkDataGraphPipelineCreateInfoARM* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
22604typedef VkResult (VKAPI_PTR *PFN_vkCreateDataGraphPipelineSessionARM)(VkDevice device, const VkDataGraphPipelineSessionCreateInfoARM* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDataGraphPipelineSessionARM* pSession);
22605typedef VkResult (VKAPI_PTR *PFN_vkGetDataGraphPipelineSessionBindPointRequirementsARM)(VkDevice device, const VkDataGraphPipelineSessionBindPointRequirementsInfoARM* pInfo, uint32_t* pBindPointRequirementCount, VkDataGraphPipelineSessionBindPointRequirementARM* pBindPointRequirements);
22606typedef void (VKAPI_PTR *PFN_vkGetDataGraphPipelineSessionMemoryRequirementsARM)(VkDevice device, const VkDataGraphPipelineSessionMemoryRequirementsInfoARM* pInfo, VkMemoryRequirements2* pMemoryRequirements);
22607typedef VkResult (VKAPI_PTR *PFN_vkBindDataGraphPipelineSessionMemoryARM)(VkDevice device, uint32_t bindInfoCount, const VkBindDataGraphPipelineSessionMemoryInfoARM* pBindInfos);
22608typedef void (VKAPI_PTR *PFN_vkDestroyDataGraphPipelineSessionARM)(VkDevice device, VkDataGraphPipelineSessionARM session, const VkAllocationCallbacks* pAllocator);
22609typedef void (VKAPI_PTR *PFN_vkCmdDispatchDataGraphARM)(VkCommandBuffer commandBuffer, VkDataGraphPipelineSessionARM session, const VkDataGraphPipelineDispatchInfoARM* pInfo);
22610typedef VkResult (VKAPI_PTR *PFN_vkGetDataGraphPipelineAvailablePropertiesARM)(VkDevice device, const VkDataGraphPipelineInfoARM* pPipelineInfo, uint32_t* pPropertiesCount, VkDataGraphPipelinePropertyARM* pProperties);
22611typedef VkResult (VKAPI_PTR *PFN_vkGetDataGraphPipelinePropertiesARM)(VkDevice device, const VkDataGraphPipelineInfoARM* pPipelineInfo, uint32_t propertiesCount, VkDataGraphPipelinePropertyQueryResultARM* pProperties);
22612typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pQueueFamilyDataGraphPropertyCount, VkQueueFamilyDataGraphPropertiesARM* pQueueFamilyDataGraphProperties);
22613typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM* pQueueFamilyDataGraphProcessingEngineInfo, VkQueueFamilyDataGraphProcessingEnginePropertiesARM* pQueueFamilyDataGraphProcessingEngineProperties);
22614
22615#ifndef VK_NO_PROTOTYPES
22616#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22617VKAPI_ATTR VkResult VKAPI_CALL vkCreateDataGraphPipelinesARM(
22618 VkDevice device,
22619 VkDeferredOperationKHR deferredOperation,
22620 VkPipelineCache pipelineCache,
22621 uint32_t createInfoCount,
22622 const VkDataGraphPipelineCreateInfoARM* pCreateInfos,
22623 const VkAllocationCallbacks* pAllocator,
22624 VkPipeline* pPipelines);
22625#endif
22626
22627#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22628VKAPI_ATTR VkResult VKAPI_CALL vkCreateDataGraphPipelineSessionARM(
22629 VkDevice device,
22630 const VkDataGraphPipelineSessionCreateInfoARM* pCreateInfo,
22631 const VkAllocationCallbacks* pAllocator,
22632 VkDataGraphPipelineSessionARM* pSession);
22633#endif
22634
22635#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22636VKAPI_ATTR VkResult VKAPI_CALL vkGetDataGraphPipelineSessionBindPointRequirementsARM(
22637 VkDevice device,
22638 const VkDataGraphPipelineSessionBindPointRequirementsInfoARM* pInfo,
22639 uint32_t* pBindPointRequirementCount,
22640 VkDataGraphPipelineSessionBindPointRequirementARM* pBindPointRequirements);
22641#endif
22642
22643#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22644VKAPI_ATTR void VKAPI_CALL vkGetDataGraphPipelineSessionMemoryRequirementsARM(
22645 VkDevice device,
22646 const VkDataGraphPipelineSessionMemoryRequirementsInfoARM* pInfo,
22647 VkMemoryRequirements2* pMemoryRequirements);
22648#endif
22649
22650#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22651VKAPI_ATTR VkResult VKAPI_CALL vkBindDataGraphPipelineSessionMemoryARM(
22652 VkDevice device,
22653 uint32_t bindInfoCount,
22654 const VkBindDataGraphPipelineSessionMemoryInfoARM* pBindInfos);
22655#endif
22656
22657#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22658VKAPI_ATTR void VKAPI_CALL vkDestroyDataGraphPipelineSessionARM(
22659 VkDevice device,
22660 VkDataGraphPipelineSessionARM session,
22661 const VkAllocationCallbacks* pAllocator);
22662#endif
22663
22664#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22665VKAPI_ATTR void VKAPI_CALL vkCmdDispatchDataGraphARM(
22666 VkCommandBuffer commandBuffer,
22667 VkDataGraphPipelineSessionARM session,
22668 const VkDataGraphPipelineDispatchInfoARM* pInfo);
22669#endif
22670
22671#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22672VKAPI_ATTR VkResult VKAPI_CALL vkGetDataGraphPipelineAvailablePropertiesARM(
22673 VkDevice device,
22674 const VkDataGraphPipelineInfoARM* pPipelineInfo,
22675 uint32_t* pPropertiesCount,
22676 VkDataGraphPipelinePropertyARM* pProperties);
22677#endif
22678
22679#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22680VKAPI_ATTR VkResult VKAPI_CALL vkGetDataGraphPipelinePropertiesARM(
22681 VkDevice device,
22682 const VkDataGraphPipelineInfoARM* pPipelineInfo,
22683 uint32_t propertiesCount,
22684 VkDataGraphPipelinePropertyQueryResultARM* pProperties);
22685#endif
22686
22687#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22688VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM(
22689 VkPhysicalDevice physicalDevice,
22690 uint32_t queueFamilyIndex,
22691 uint32_t* pQueueFamilyDataGraphPropertyCount,
22692 VkQueueFamilyDataGraphPropertiesARM* pQueueFamilyDataGraphProperties);
22693#endif
22694
22695#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22696VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM(
22697 VkPhysicalDevice physicalDevice,
22698 const VkPhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM* pQueueFamilyDataGraphProcessingEngineInfo,
22699 VkQueueFamilyDataGraphProcessingEnginePropertiesARM* pQueueFamilyDataGraphProcessingEngineProperties);
22700#endif
22701#endif
22702
22703
22704// VK_QCOM_multiview_per_view_render_areas is a preprocessor guard. Do not pass it to API calls.
22705#define VK_QCOM_multiview_per_view_render_areas 1
22706#define VK_QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_SPEC_VERSION 1
22707#define VK_QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_EXTENSION_NAME "VK_QCOM_multiview_per_view_render_areas"
22708typedef struct VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM {
22709 VkStructureType sType;
22710 void* pNext;
22711 VkBool32 multiviewPerViewRenderAreas;
22712} VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM;
22713
22714typedef struct VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM {
22715 VkStructureType sType;
22716 const void* pNext;
22717 uint32_t perViewRenderAreaCount;
22718 const VkRect2D* pPerViewRenderAreas;
22719} VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM;
22720
22721
22722
22723// VK_NV_per_stage_descriptor_set is a preprocessor guard. Do not pass it to API calls.
22724#define VK_NV_per_stage_descriptor_set 1
22725#define VK_NV_PER_STAGE_DESCRIPTOR_SET_SPEC_VERSION 1
22726#define VK_NV_PER_STAGE_DESCRIPTOR_SET_EXTENSION_NAME "VK_NV_per_stage_descriptor_set"
22727typedef struct VkPhysicalDevicePerStageDescriptorSetFeaturesNV {
22728 VkStructureType sType;
22729 void* pNext;
22730 VkBool32 perStageDescriptorSet;
22731 VkBool32 dynamicPipelineLayout;
22732} VkPhysicalDevicePerStageDescriptorSetFeaturesNV;
22733
22734
22735
22736// VK_QCOM_image_processing2 is a preprocessor guard. Do not pass it to API calls.
22737#define VK_QCOM_image_processing2 1
22738#define VK_QCOM_IMAGE_PROCESSING_2_SPEC_VERSION 1
22739#define VK_QCOM_IMAGE_PROCESSING_2_EXTENSION_NAME "VK_QCOM_image_processing2"
22740
22741typedef enum VkBlockMatchWindowCompareModeQCOM {
22742 VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MIN_QCOM = 0,
22743 VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_QCOM = 1,
22744 VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_ENUM_QCOM = 0x7FFFFFFF
22745} VkBlockMatchWindowCompareModeQCOM;
22746typedef struct VkPhysicalDeviceImageProcessing2FeaturesQCOM {
22747 VkStructureType sType;
22748 void* pNext;
22749 VkBool32 textureBlockMatch2;
22750} VkPhysicalDeviceImageProcessing2FeaturesQCOM;
22751
22752typedef struct VkPhysicalDeviceImageProcessing2PropertiesQCOM {
22753 VkStructureType sType;
22754 void* pNext;
22755 VkExtent2D maxBlockMatchWindow;
22756} VkPhysicalDeviceImageProcessing2PropertiesQCOM;
22757
22758typedef struct VkSamplerBlockMatchWindowCreateInfoQCOM {
22759 VkStructureType sType;
22760 const void* pNext;
22761 VkExtent2D windowExtent;
22762 VkBlockMatchWindowCompareModeQCOM windowCompareMode;
22763} VkSamplerBlockMatchWindowCreateInfoQCOM;
22764
22765
22766
22767// VK_QCOM_filter_cubic_weights is a preprocessor guard. Do not pass it to API calls.
22768#define VK_QCOM_filter_cubic_weights 1
22769#define VK_QCOM_FILTER_CUBIC_WEIGHTS_SPEC_VERSION 1
22770#define VK_QCOM_FILTER_CUBIC_WEIGHTS_EXTENSION_NAME "VK_QCOM_filter_cubic_weights"
22771
22772typedef enum VkCubicFilterWeightsQCOM {
22773 VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM = 0,
22774 VK_CUBIC_FILTER_WEIGHTS_ZERO_TANGENT_CARDINAL_QCOM = 1,
22775 VK_CUBIC_FILTER_WEIGHTS_B_SPLINE_QCOM = 2,
22776 VK_CUBIC_FILTER_WEIGHTS_MITCHELL_NETRAVALI_QCOM = 3,
22777 VK_CUBIC_FILTER_WEIGHTS_MAX_ENUM_QCOM = 0x7FFFFFFF
22778} VkCubicFilterWeightsQCOM;
22779typedef struct VkPhysicalDeviceCubicWeightsFeaturesQCOM {
22780 VkStructureType sType;
22781 void* pNext;
22782 VkBool32 selectableCubicWeights;
22783} VkPhysicalDeviceCubicWeightsFeaturesQCOM;
22784
22785typedef struct VkSamplerCubicWeightsCreateInfoQCOM {
22786 VkStructureType sType;
22787 const void* pNext;
22788 VkCubicFilterWeightsQCOM cubicWeights;
22789} VkSamplerCubicWeightsCreateInfoQCOM;
22790
22791typedef struct VkBlitImageCubicWeightsInfoQCOM {
22792 VkStructureType sType;
22793 const void* pNext;
22794 VkCubicFilterWeightsQCOM cubicWeights;
22795} VkBlitImageCubicWeightsInfoQCOM;
22796
22797
22798
22799// VK_QCOM_ycbcr_degamma is a preprocessor guard. Do not pass it to API calls.
22800#define VK_QCOM_ycbcr_degamma 1
22801#define VK_QCOM_YCBCR_DEGAMMA_SPEC_VERSION 1
22802#define VK_QCOM_YCBCR_DEGAMMA_EXTENSION_NAME "VK_QCOM_ycbcr_degamma"
22803typedef struct VkPhysicalDeviceYcbcrDegammaFeaturesQCOM {
22804 VkStructureType sType;
22805 void* pNext;
22806 VkBool32 ycbcrDegamma;
22807} VkPhysicalDeviceYcbcrDegammaFeaturesQCOM;
22808
22809typedef struct VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM {
22810 VkStructureType sType;
22811 void* pNext;
22812 VkBool32 enableYDegamma;
22813 VkBool32 enableCbCrDegamma;
22814} VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM;
22815
22816
22817
22818// VK_QCOM_filter_cubic_clamp is a preprocessor guard. Do not pass it to API calls.
22819#define VK_QCOM_filter_cubic_clamp 1
22820#define VK_QCOM_FILTER_CUBIC_CLAMP_SPEC_VERSION 1
22821#define VK_QCOM_FILTER_CUBIC_CLAMP_EXTENSION_NAME "VK_QCOM_filter_cubic_clamp"
22822typedef struct VkPhysicalDeviceCubicClampFeaturesQCOM {
22823 VkStructureType sType;
22824 void* pNext;
22825 VkBool32 cubicRangeClamp;
22826} VkPhysicalDeviceCubicClampFeaturesQCOM;
22827
22828
22829
22830// VK_EXT_attachment_feedback_loop_dynamic_state is a preprocessor guard. Do not pass it to API calls.
22831#define VK_EXT_attachment_feedback_loop_dynamic_state 1
22832#define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_SPEC_VERSION 1
22833#define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_attachment_feedback_loop_dynamic_state"
22834typedef struct VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT {
22835 VkStructureType sType;
22836 void* pNext;
22837 VkBool32 attachmentFeedbackLoopDynamicState;
22838} VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT;
22839
22840typedef void (VKAPI_PTR *PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT)(VkCommandBuffer commandBuffer, VkImageAspectFlags aspectMask);
22841
22842#ifndef VK_NO_PROTOTYPES
22843#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22844VKAPI_ATTR void VKAPI_CALL vkCmdSetAttachmentFeedbackLoopEnableEXT(
22845 VkCommandBuffer commandBuffer,
22846 VkImageAspectFlags aspectMask);
22847#endif
22848#endif
22849
22850
22851// VK_MSFT_layered_driver is a preprocessor guard. Do not pass it to API calls.
22852#define VK_MSFT_layered_driver 1
22853#define VK_MSFT_LAYERED_DRIVER_SPEC_VERSION 1
22854#define VK_MSFT_LAYERED_DRIVER_EXTENSION_NAME "VK_MSFT_layered_driver"
22855
22856typedef enum VkLayeredDriverUnderlyingApiMSFT {
22857 VK_LAYERED_DRIVER_UNDERLYING_API_NONE_MSFT = 0,
22858 VK_LAYERED_DRIVER_UNDERLYING_API_D3D12_MSFT = 1,
22859 VK_LAYERED_DRIVER_UNDERLYING_API_MAX_ENUM_MSFT = 0x7FFFFFFF
22860} VkLayeredDriverUnderlyingApiMSFT;
22861typedef struct VkPhysicalDeviceLayeredDriverPropertiesMSFT {
22862 VkStructureType sType;
22863 void* pNext;
22864 VkLayeredDriverUnderlyingApiMSFT underlyingAPI;
22865} VkPhysicalDeviceLayeredDriverPropertiesMSFT;
22866
22867
22868
22869// VK_NV_descriptor_pool_overallocation is a preprocessor guard. Do not pass it to API calls.
22870#define VK_NV_descriptor_pool_overallocation 1
22871#define VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_SPEC_VERSION 1
22872#define VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_EXTENSION_NAME "VK_NV_descriptor_pool_overallocation"
22873typedef struct VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV {
22874 VkStructureType sType;
22875 void* pNext;
22876 VkBool32 descriptorPoolOverallocation;
22877} VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV;
22878
22879
22880
22881// VK_QCOM_tile_memory_heap is a preprocessor guard. Do not pass it to API calls.
22882#define VK_QCOM_tile_memory_heap 1
22883#define VK_QCOM_TILE_MEMORY_HEAP_SPEC_VERSION 1
22884#define VK_QCOM_TILE_MEMORY_HEAP_EXTENSION_NAME "VK_QCOM_tile_memory_heap"
22885typedef struct VkPhysicalDeviceTileMemoryHeapFeaturesQCOM {
22886 VkStructureType sType;
22887 void* pNext;
22888 VkBool32 tileMemoryHeap;
22889} VkPhysicalDeviceTileMemoryHeapFeaturesQCOM;
22890
22891typedef struct VkPhysicalDeviceTileMemoryHeapPropertiesQCOM {
22892 VkStructureType sType;
22893 void* pNext;
22894 VkBool32 queueSubmitBoundary;
22895 VkBool32 tileBufferTransfers;
22896} VkPhysicalDeviceTileMemoryHeapPropertiesQCOM;
22897
22898typedef struct VkTileMemoryRequirementsQCOM {
22899 VkStructureType sType;
22900 void* pNext;
22901 VkDeviceSize size;
22902 VkDeviceSize alignment;
22903} VkTileMemoryRequirementsQCOM;
22904
22905typedef struct VkTileMemoryBindInfoQCOM {
22906 VkStructureType sType;
22907 const void* pNext;
22908 VkDeviceMemory memory;
22909} VkTileMemoryBindInfoQCOM;
22910
22911typedef struct VkTileMemorySizeInfoQCOM {
22912 VkStructureType sType;
22913 const void* pNext;
22914 VkDeviceSize size;
22915} VkTileMemorySizeInfoQCOM;
22916
22917typedef void (VKAPI_PTR *PFN_vkCmdBindTileMemoryQCOM)(VkCommandBuffer commandBuffer, const VkTileMemoryBindInfoQCOM* pTileMemoryBindInfo);
22918
22919#ifndef VK_NO_PROTOTYPES
22920#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22921VKAPI_ATTR void VKAPI_CALL vkCmdBindTileMemoryQCOM(
22922 VkCommandBuffer commandBuffer,
22923 const VkTileMemoryBindInfoQCOM* pTileMemoryBindInfo);
22924#endif
22925#endif
22926
22927
22928// VK_EXT_memory_decompression is a preprocessor guard. Do not pass it to API calls.
22929#define VK_EXT_memory_decompression 1
22930#define VK_EXT_MEMORY_DECOMPRESSION_SPEC_VERSION 1
22931#define VK_EXT_MEMORY_DECOMPRESSION_EXTENSION_NAME "VK_EXT_memory_decompression"
22932typedef struct VkDecompressMemoryRegionEXT {
22933 VkDeviceAddress srcAddress;
22934 VkDeviceAddress dstAddress;
22935 VkDeviceSize compressedSize;
22936 VkDeviceSize decompressedSize;
22937} VkDecompressMemoryRegionEXT;
22938
22939typedef struct VkDecompressMemoryInfoEXT {
22940 VkStructureType sType;
22941 const void* pNext;
22942 VkMemoryDecompressionMethodFlagsEXT decompressionMethod;
22943 uint32_t regionCount;
22944 const VkDecompressMemoryRegionEXT* pRegions;
22945} VkDecompressMemoryInfoEXT;
22946
22947typedef void (VKAPI_PTR *PFN_vkCmdDecompressMemoryEXT)(VkCommandBuffer commandBuffer, const VkDecompressMemoryInfoEXT* pDecompressMemoryInfoEXT);
22948typedef void (VKAPI_PTR *PFN_vkCmdDecompressMemoryIndirectCountEXT)(VkCommandBuffer commandBuffer, VkMemoryDecompressionMethodFlagsEXT decompressionMethod, VkDeviceAddress indirectCommandsAddress, VkDeviceAddress indirectCommandsCountAddress, uint32_t maxDecompressionCount, uint32_t stride);
22949
22950#ifndef VK_NO_PROTOTYPES
22951#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22952VKAPI_ATTR void VKAPI_CALL vkCmdDecompressMemoryEXT(
22953 VkCommandBuffer commandBuffer,
22954 const VkDecompressMemoryInfoEXT* pDecompressMemoryInfoEXT);
22955#endif
22956
22957#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22958VKAPI_ATTR void VKAPI_CALL vkCmdDecompressMemoryIndirectCountEXT(
22959 VkCommandBuffer commandBuffer,
22960 VkMemoryDecompressionMethodFlagsEXT decompressionMethod,
22961 VkDeviceAddress indirectCommandsAddress,
22962 VkDeviceAddress indirectCommandsCountAddress,
22963 uint32_t maxDecompressionCount,
22964 uint32_t stride);
22965#endif
22966#endif
22967
22968
22969// VK_NV_display_stereo is a preprocessor guard. Do not pass it to API calls.
22970#define VK_NV_display_stereo 1
22971#define VK_NV_DISPLAY_STEREO_SPEC_VERSION 1
22972#define VK_NV_DISPLAY_STEREO_EXTENSION_NAME "VK_NV_display_stereo"
22973
22974typedef enum VkDisplaySurfaceStereoTypeNV {
22975 VK_DISPLAY_SURFACE_STEREO_TYPE_NONE_NV = 0,
22976 VK_DISPLAY_SURFACE_STEREO_TYPE_ONBOARD_DIN_NV = 1,
22977 VK_DISPLAY_SURFACE_STEREO_TYPE_HDMI_3D_NV = 2,
22978 VK_DISPLAY_SURFACE_STEREO_TYPE_INBAND_DISPLAYPORT_NV = 3,
22979 VK_DISPLAY_SURFACE_STEREO_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
22980} VkDisplaySurfaceStereoTypeNV;
22981typedef struct VkDisplaySurfaceStereoCreateInfoNV {
22982 VkStructureType sType;
22983 const void* pNext;
22984 VkDisplaySurfaceStereoTypeNV stereoType;
22985} VkDisplaySurfaceStereoCreateInfoNV;
22986
22987typedef struct VkDisplayModeStereoPropertiesNV {
22988 VkStructureType sType;
22989 void* pNext;
22990 VkBool32 hdmi3DSupported;
22991} VkDisplayModeStereoPropertiesNV;
22992
22993
22994
22995// VK_NV_raw_access_chains is a preprocessor guard. Do not pass it to API calls.
22996#define VK_NV_raw_access_chains 1
22997#define VK_NV_RAW_ACCESS_CHAINS_SPEC_VERSION 1
22998#define VK_NV_RAW_ACCESS_CHAINS_EXTENSION_NAME "VK_NV_raw_access_chains"
22999typedef struct VkPhysicalDeviceRawAccessChainsFeaturesNV {
23000 VkStructureType sType;
23001 void* pNext;
23002 VkBool32 shaderRawAccessChains;
23003} VkPhysicalDeviceRawAccessChainsFeaturesNV;
23004
23005
23006
23007// VK_NV_external_compute_queue is a preprocessor guard. Do not pass it to API calls.
23008#define VK_NV_external_compute_queue 1
23009VK_DEFINE_HANDLE(VkExternalComputeQueueNV)
23010#define VK_NV_EXTERNAL_COMPUTE_QUEUE_SPEC_VERSION 1
23011#define VK_NV_EXTERNAL_COMPUTE_QUEUE_EXTENSION_NAME "VK_NV_external_compute_queue"
23012typedef struct VkExternalComputeQueueDeviceCreateInfoNV {
23013 VkStructureType sType;
23014 const void* pNext;
23015 uint32_t reservedExternalQueues;
23016} VkExternalComputeQueueDeviceCreateInfoNV;
23017
23018typedef struct VkExternalComputeQueueCreateInfoNV {
23019 VkStructureType sType;
23020 const void* pNext;
23021 VkQueue preferredQueue;
23022} VkExternalComputeQueueCreateInfoNV;
23023
23024typedef struct VkExternalComputeQueueDataParamsNV {
23025 VkStructureType sType;
23026 const void* pNext;
23027 uint32_t deviceIndex;
23028} VkExternalComputeQueueDataParamsNV;
23029
23030typedef struct VkPhysicalDeviceExternalComputeQueuePropertiesNV {
23031 VkStructureType sType;
23032 void* pNext;
23033 uint32_t externalDataSize;
23034 uint32_t maxExternalQueues;
23035} VkPhysicalDeviceExternalComputeQueuePropertiesNV;
23036
23037typedef VkResult (VKAPI_PTR *PFN_vkCreateExternalComputeQueueNV)(VkDevice device, const VkExternalComputeQueueCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkExternalComputeQueueNV* pExternalQueue);
23038typedef void (VKAPI_PTR *PFN_vkDestroyExternalComputeQueueNV)(VkDevice device, VkExternalComputeQueueNV externalQueue, const VkAllocationCallbacks* pAllocator);
23039typedef void (VKAPI_PTR *PFN_vkGetExternalComputeQueueDataNV)(VkExternalComputeQueueNV externalQueue, VkExternalComputeQueueDataParamsNV* params, void* pData);
23040
23041#ifndef VK_NO_PROTOTYPES
23042#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23043VKAPI_ATTR VkResult VKAPI_CALL vkCreateExternalComputeQueueNV(
23044 VkDevice device,
23045 const VkExternalComputeQueueCreateInfoNV* pCreateInfo,
23046 const VkAllocationCallbacks* pAllocator,
23047 VkExternalComputeQueueNV* pExternalQueue);
23048#endif
23049
23050#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23051VKAPI_ATTR void VKAPI_CALL vkDestroyExternalComputeQueueNV(
23052 VkDevice device,
23053 VkExternalComputeQueueNV externalQueue,
23054 const VkAllocationCallbacks* pAllocator);
23055#endif
23056
23057#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23058VKAPI_ATTR void VKAPI_CALL vkGetExternalComputeQueueDataNV(
23059 VkExternalComputeQueueNV externalQueue,
23060 VkExternalComputeQueueDataParamsNV* params,
23061 void* pData);
23062#endif
23063#endif
23064
23065
23066// VK_NV_command_buffer_inheritance is a preprocessor guard. Do not pass it to API calls.
23067#define VK_NV_command_buffer_inheritance 1
23068#define VK_NV_COMMAND_BUFFER_INHERITANCE_SPEC_VERSION 1
23069#define VK_NV_COMMAND_BUFFER_INHERITANCE_EXTENSION_NAME "VK_NV_command_buffer_inheritance"
23070typedef struct VkPhysicalDeviceCommandBufferInheritanceFeaturesNV {
23071 VkStructureType sType;
23072 void* pNext;
23073 VkBool32 commandBufferInheritance;
23074} VkPhysicalDeviceCommandBufferInheritanceFeaturesNV;
23075
23076
23077
23078// VK_NV_shader_atomic_float16_vector is a preprocessor guard. Do not pass it to API calls.
23079#define VK_NV_shader_atomic_float16_vector 1
23080#define VK_NV_SHADER_ATOMIC_FLOAT16_VECTOR_SPEC_VERSION 1
23081#define VK_NV_SHADER_ATOMIC_FLOAT16_VECTOR_EXTENSION_NAME "VK_NV_shader_atomic_float16_vector"
23082typedef struct VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV {
23083 VkStructureType sType;
23084 void* pNext;
23085 VkBool32 shaderFloat16VectorAtomics;
23086} VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV;
23087
23088
23089
23090// VK_EXT_shader_replicated_composites is a preprocessor guard. Do not pass it to API calls.
23091#define VK_EXT_shader_replicated_composites 1
23092#define VK_EXT_SHADER_REPLICATED_COMPOSITES_SPEC_VERSION 1
23093#define VK_EXT_SHADER_REPLICATED_COMPOSITES_EXTENSION_NAME "VK_EXT_shader_replicated_composites"
23094typedef struct VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT {
23095 VkStructureType sType;
23096 void* pNext;
23097 VkBool32 shaderReplicatedComposites;
23098} VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT;
23099
23100
23101
23102// VK_EXT_shader_float8 is a preprocessor guard. Do not pass it to API calls.
23103#define VK_EXT_shader_float8 1
23104#define VK_EXT_SHADER_FLOAT8_SPEC_VERSION 1
23105#define VK_EXT_SHADER_FLOAT8_EXTENSION_NAME "VK_EXT_shader_float8"
23106typedef struct VkPhysicalDeviceShaderFloat8FeaturesEXT {
23107 VkStructureType sType;
23108 void* pNext;
23109 VkBool32 shaderFloat8;
23110 VkBool32 shaderFloat8CooperativeMatrix;
23111} VkPhysicalDeviceShaderFloat8FeaturesEXT;
23112
23113
23114
23115// VK_NV_ray_tracing_validation is a preprocessor guard. Do not pass it to API calls.
23116#define VK_NV_ray_tracing_validation 1
23117#define VK_NV_RAY_TRACING_VALIDATION_SPEC_VERSION 1
23118#define VK_NV_RAY_TRACING_VALIDATION_EXTENSION_NAME "VK_NV_ray_tracing_validation"
23119typedef struct VkPhysicalDeviceRayTracingValidationFeaturesNV {
23120 VkStructureType sType;
23121 void* pNext;
23122 VkBool32 rayTracingValidation;
23123} VkPhysicalDeviceRayTracingValidationFeaturesNV;
23124
23125
23126
23127// VK_NV_cluster_acceleration_structure is a preprocessor guard. Do not pass it to API calls.
23128#define VK_NV_cluster_acceleration_structure 1
23129#define VK_NV_CLUSTER_ACCELERATION_STRUCTURE_SPEC_VERSION 4
23130#define VK_NV_CLUSTER_ACCELERATION_STRUCTURE_EXTENSION_NAME "VK_NV_cluster_acceleration_structure"
23131
23132typedef enum VkClusterAccelerationStructureTypeNV {
23133 VK_CLUSTER_ACCELERATION_STRUCTURE_TYPE_CLUSTERS_BOTTOM_LEVEL_NV = 0,
23134 VK_CLUSTER_ACCELERATION_STRUCTURE_TYPE_TRIANGLE_CLUSTER_NV = 1,
23135 VK_CLUSTER_ACCELERATION_STRUCTURE_TYPE_TRIANGLE_CLUSTER_TEMPLATE_NV = 2,
23136 VK_CLUSTER_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
23137} VkClusterAccelerationStructureTypeNV;
23138
23139typedef enum VkClusterAccelerationStructureOpTypeNV {
23140 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_MOVE_OBJECTS_NV = 0,
23141 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_BUILD_CLUSTERS_BOTTOM_LEVEL_NV = 1,
23142 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_BUILD_TRIANGLE_CLUSTER_NV = 2,
23143 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_BUILD_TRIANGLE_CLUSTER_TEMPLATE_NV = 3,
23144 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_INSTANTIATE_TRIANGLE_CLUSTER_NV = 4,
23145 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_GET_CLUSTER_TEMPLATE_INDICES_NV = 5,
23146 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
23147} VkClusterAccelerationStructureOpTypeNV;
23148
23149typedef enum VkClusterAccelerationStructureOpModeNV {
23150 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_IMPLICIT_DESTINATIONS_NV = 0,
23151 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_EXPLICIT_DESTINATIONS_NV = 1,
23152 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_COMPUTE_SIZES_NV = 2,
23153 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_MAX_ENUM_NV = 0x7FFFFFFF
23154} VkClusterAccelerationStructureOpModeNV;
23155
23156typedef enum VkClusterAccelerationStructureAddressResolutionFlagBitsNV {
23157 VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_NONE_NV = 0,
23158 VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_DST_IMPLICIT_DATA_BIT_NV = 0x00000001,
23159 VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_SCRATCH_DATA_BIT_NV = 0x00000002,
23160 VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_DST_ADDRESS_ARRAY_BIT_NV = 0x00000004,
23161 VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_DST_SIZES_ARRAY_BIT_NV = 0x00000008,
23162 VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_SRC_INFOS_ARRAY_BIT_NV = 0x00000010,
23163 VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_SRC_INFOS_COUNT_BIT_NV = 0x00000020,
23164 VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
23165} VkClusterAccelerationStructureAddressResolutionFlagBitsNV;
23166typedef VkFlags VkClusterAccelerationStructureAddressResolutionFlagsNV;
23167
23168typedef enum VkClusterAccelerationStructureClusterFlagBitsNV {
23169 VK_CLUSTER_ACCELERATION_STRUCTURE_CLUSTER_ALLOW_DISABLE_OPACITY_MICROMAPS_NV = 0x00000001,
23170 VK_CLUSTER_ACCELERATION_STRUCTURE_CLUSTER_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
23171} VkClusterAccelerationStructureClusterFlagBitsNV;
23172typedef VkFlags VkClusterAccelerationStructureClusterFlagsNV;
23173
23174typedef enum VkClusterAccelerationStructureGeometryFlagBitsNV {
23175 VK_CLUSTER_ACCELERATION_STRUCTURE_GEOMETRY_CULL_DISABLE_BIT_NV = 0x00000001,
23176 VK_CLUSTER_ACCELERATION_STRUCTURE_GEOMETRY_NO_DUPLICATE_ANYHIT_INVOCATION_BIT_NV = 0x00000002,
23177 VK_CLUSTER_ACCELERATION_STRUCTURE_GEOMETRY_OPAQUE_BIT_NV = 0x00000004,
23178 VK_CLUSTER_ACCELERATION_STRUCTURE_GEOMETRY_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
23179} VkClusterAccelerationStructureGeometryFlagBitsNV;
23180typedef VkFlags VkClusterAccelerationStructureGeometryFlagsNV;
23181
23182typedef enum VkClusterAccelerationStructureIndexFormatFlagBitsNV {
23183 VK_CLUSTER_ACCELERATION_STRUCTURE_INDEX_FORMAT_8BIT_NV = 0x00000001,
23184 VK_CLUSTER_ACCELERATION_STRUCTURE_INDEX_FORMAT_16BIT_NV = 0x00000002,
23185 VK_CLUSTER_ACCELERATION_STRUCTURE_INDEX_FORMAT_32BIT_NV = 0x00000004,
23186 VK_CLUSTER_ACCELERATION_STRUCTURE_INDEX_FORMAT_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
23187} VkClusterAccelerationStructureIndexFormatFlagBitsNV;
23188typedef VkFlags VkClusterAccelerationStructureIndexFormatFlagsNV;
23189typedef struct VkPhysicalDeviceClusterAccelerationStructureFeaturesNV {
23190 VkStructureType sType;
23191 void* pNext;
23192 VkBool32 clusterAccelerationStructure;
23193} VkPhysicalDeviceClusterAccelerationStructureFeaturesNV;
23194
23195typedef struct VkPhysicalDeviceClusterAccelerationStructurePropertiesNV {
23196 VkStructureType sType;
23197 void* pNext;
23198 uint32_t maxVerticesPerCluster;
23199 uint32_t maxTrianglesPerCluster;
23200 uint32_t clusterScratchByteAlignment;
23201 uint32_t clusterByteAlignment;
23202 uint32_t clusterTemplateByteAlignment;
23203 uint32_t clusterBottomLevelByteAlignment;
23204 uint32_t clusterTemplateBoundsByteAlignment;
23205 uint32_t maxClusterGeometryIndex;
23206} VkPhysicalDeviceClusterAccelerationStructurePropertiesNV;
23207
23208typedef struct VkClusterAccelerationStructureClustersBottomLevelInputNV {
23209 VkStructureType sType;
23210 void* pNext;
23211 uint32_t maxTotalClusterCount;
23212 uint32_t maxClusterCountPerAccelerationStructure;
23213} VkClusterAccelerationStructureClustersBottomLevelInputNV;
23214
23215typedef struct VkClusterAccelerationStructureTriangleClusterInputNV {
23216 VkStructureType sType;
23217 void* pNext;
23218 VkFormat vertexFormat;
23219 uint32_t maxGeometryIndexValue;
23220 uint32_t maxClusterUniqueGeometryCount;
23221 uint32_t maxClusterTriangleCount;
23222 uint32_t maxClusterVertexCount;
23223 uint32_t maxTotalTriangleCount;
23224 uint32_t maxTotalVertexCount;
23225 uint32_t minPositionTruncateBitCount;
23226} VkClusterAccelerationStructureTriangleClusterInputNV;
23227
23228typedef struct VkClusterAccelerationStructureMoveObjectsInputNV {
23229 VkStructureType sType;
23230 void* pNext;
23231 VkClusterAccelerationStructureTypeNV type;
23232 VkBool32 noMoveOverlap;
23233 VkDeviceSize maxMovedBytes;
23234} VkClusterAccelerationStructureMoveObjectsInputNV;
23235
23236typedef union VkClusterAccelerationStructureOpInputNV {
23237 VkClusterAccelerationStructureClustersBottomLevelInputNV* pClustersBottomLevel;
23238 VkClusterAccelerationStructureTriangleClusterInputNV* pTriangleClusters;
23239 VkClusterAccelerationStructureMoveObjectsInputNV* pMoveObjects;
23240} VkClusterAccelerationStructureOpInputNV;
23241
23242typedef struct VkClusterAccelerationStructureInputInfoNV {
23243 VkStructureType sType;
23244 void* pNext;
23245 uint32_t maxAccelerationStructureCount;
23246 VkBuildAccelerationStructureFlagsKHR flags;
23247 VkClusterAccelerationStructureOpTypeNV opType;
23248 VkClusterAccelerationStructureOpModeNV opMode;
23249 VkClusterAccelerationStructureOpInputNV opInput;
23250} VkClusterAccelerationStructureInputInfoNV;
23251
23252typedef struct VkStridedDeviceAddressRegionKHR {
23253 VkDeviceAddress deviceAddress;
23254 VkDeviceSize stride;
23255 VkDeviceSize size;
23256} VkStridedDeviceAddressRegionKHR;
23257
23258typedef struct VkClusterAccelerationStructureCommandsInfoNV {
23259 VkStructureType sType;
23260 void* pNext;
23261 VkClusterAccelerationStructureInputInfoNV input;
23262 VkDeviceAddress dstImplicitData;
23263 VkDeviceAddress scratchData;
23264 VkStridedDeviceAddressRegionKHR dstAddressesArray;
23265 VkStridedDeviceAddressRegionKHR dstSizesArray;
23266 VkStridedDeviceAddressRegionKHR srcInfosArray;
23267 VkDeviceAddress srcInfosCount;
23268 VkClusterAccelerationStructureAddressResolutionFlagsNV addressResolutionFlags;
23269} VkClusterAccelerationStructureCommandsInfoNV;
23270
23271typedef struct VkStridedDeviceAddressNV {
23272 VkDeviceAddress startAddress;
23273 VkDeviceSize strideInBytes;
23274} VkStridedDeviceAddressNV;
23275
23276typedef struct VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV {
23277 uint32_t geometryIndex:24;
23278 uint32_t reserved:5;
23279 uint32_t geometryFlags:3;
23280} VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV;
23281
23282typedef struct VkClusterAccelerationStructureMoveObjectsInfoNV {
23283 VkDeviceAddress srcAccelerationStructure;
23284} VkClusterAccelerationStructureMoveObjectsInfoNV;
23285
23286typedef struct VkClusterAccelerationStructureBuildClustersBottomLevelInfoNV {
23287 uint32_t clusterReferencesCount;
23288 uint32_t clusterReferencesStride;
23289 VkDeviceAddress clusterReferences;
23290} VkClusterAccelerationStructureBuildClustersBottomLevelInfoNV;
23291
23292typedef struct VkClusterAccelerationStructureBuildTriangleClusterInfoNV {
23293 uint32_t clusterID;
23294 VkClusterAccelerationStructureClusterFlagsNV clusterFlags;
23295 uint32_t triangleCount:9;
23296 uint32_t vertexCount:9;
23297 uint32_t positionTruncateBitCount:6;
23298 uint32_t indexType:4;
23299 uint32_t opacityMicromapIndexType:4;
23300 VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV baseGeometryIndexAndGeometryFlags;
23301 uint16_t indexBufferStride;
23302 uint16_t vertexBufferStride;
23303 uint16_t geometryIndexAndFlagsBufferStride;
23304 uint16_t opacityMicromapIndexBufferStride;
23305 VkDeviceAddress indexBuffer;
23306 VkDeviceAddress vertexBuffer;
23307 VkDeviceAddress geometryIndexAndFlagsBuffer;
23308 VkDeviceAddress opacityMicromapArray;
23309 VkDeviceAddress opacityMicromapIndexBuffer;
23310} VkClusterAccelerationStructureBuildTriangleClusterInfoNV;
23311
23312typedef struct VkClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV {
23313 uint32_t clusterID;
23314 VkClusterAccelerationStructureClusterFlagsNV clusterFlags;
23315 uint32_t triangleCount:9;
23316 uint32_t vertexCount:9;
23317 uint32_t positionTruncateBitCount:6;
23318 uint32_t indexType:4;
23319 uint32_t opacityMicromapIndexType:4;
23320 VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV baseGeometryIndexAndGeometryFlags;
23321 uint16_t indexBufferStride;
23322 uint16_t vertexBufferStride;
23323 uint16_t geometryIndexAndFlagsBufferStride;
23324 uint16_t opacityMicromapIndexBufferStride;
23325 VkDeviceAddress indexBuffer;
23326 VkDeviceAddress vertexBuffer;
23327 VkDeviceAddress geometryIndexAndFlagsBuffer;
23328 VkDeviceAddress opacityMicromapArray;
23329 VkDeviceAddress opacityMicromapIndexBuffer;
23330 VkDeviceAddress instantiationBoundingBoxLimit;
23331} VkClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV;
23332
23333typedef struct VkClusterAccelerationStructureInstantiateClusterInfoNV {
23334 uint32_t clusterIdOffset;
23335 uint32_t geometryIndexOffset:24;
23336 uint32_t reserved:8;
23337 VkDeviceAddress clusterTemplateAddress;
23338 VkStridedDeviceAddressNV vertexBuffer;
23339} VkClusterAccelerationStructureInstantiateClusterInfoNV;
23340
23341typedef struct VkClusterAccelerationStructureGetTemplateIndicesInfoNV {
23342 VkDeviceAddress clusterTemplateAddress;
23343} VkClusterAccelerationStructureGetTemplateIndicesInfoNV;
23344
23345typedef struct VkAccelerationStructureBuildSizesInfoKHR {
23346 VkStructureType sType;
23347 void* pNext;
23348 VkDeviceSize accelerationStructureSize;
23349 VkDeviceSize updateScratchSize;
23350 VkDeviceSize buildScratchSize;
23351} VkAccelerationStructureBuildSizesInfoKHR;
23352
23353typedef struct VkRayTracingPipelineClusterAccelerationStructureCreateInfoNV {
23354 VkStructureType sType;
23355 void* pNext;
23356 VkBool32 allowClusterAccelerationStructure;
23357} VkRayTracingPipelineClusterAccelerationStructureCreateInfoNV;
23358
23359typedef void (VKAPI_PTR *PFN_vkGetClusterAccelerationStructureBuildSizesNV)(VkDevice device, const VkClusterAccelerationStructureInputInfoNV* pInfo, VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo);
23360typedef void (VKAPI_PTR *PFN_vkCmdBuildClusterAccelerationStructureIndirectNV)(VkCommandBuffer commandBuffer, const VkClusterAccelerationStructureCommandsInfoNV* pCommandInfos);
23361
23362#ifndef VK_NO_PROTOTYPES
23363#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23364VKAPI_ATTR void VKAPI_CALL vkGetClusterAccelerationStructureBuildSizesNV(
23365 VkDevice device,
23366 const VkClusterAccelerationStructureInputInfoNV* pInfo,
23367 VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo);
23368#endif
23369
23370#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23371VKAPI_ATTR void VKAPI_CALL vkCmdBuildClusterAccelerationStructureIndirectNV(
23372 VkCommandBuffer commandBuffer,
23373 const VkClusterAccelerationStructureCommandsInfoNV* pCommandInfos);
23374#endif
23375#endif
23376
23377
23378// VK_NV_partitioned_acceleration_structure is a preprocessor guard. Do not pass it to API calls.
23379#define VK_NV_partitioned_acceleration_structure 1
23380#define VK_NV_PARTITIONED_ACCELERATION_STRUCTURE_SPEC_VERSION 1
23381#define VK_NV_PARTITIONED_ACCELERATION_STRUCTURE_EXTENSION_NAME "VK_NV_partitioned_acceleration_structure"
23382#define VK_PARTITIONED_ACCELERATION_STRUCTURE_PARTITION_INDEX_GLOBAL_NV (~0U)
23383
23384typedef enum VkPartitionedAccelerationStructureOpTypeNV {
23385 VK_PARTITIONED_ACCELERATION_STRUCTURE_OP_TYPE_WRITE_INSTANCE_NV = 0,
23386 VK_PARTITIONED_ACCELERATION_STRUCTURE_OP_TYPE_UPDATE_INSTANCE_NV = 1,
23387 VK_PARTITIONED_ACCELERATION_STRUCTURE_OP_TYPE_WRITE_PARTITION_TRANSLATION_NV = 2,
23388 VK_PARTITIONED_ACCELERATION_STRUCTURE_OP_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
23389} VkPartitionedAccelerationStructureOpTypeNV;
23390
23391typedef enum VkPartitionedAccelerationStructureInstanceFlagBitsNV {
23392 VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_TRIANGLE_FACING_CULL_DISABLE_BIT_NV = 0x00000001,
23393 VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_TRIANGLE_FLIP_FACING_BIT_NV = 0x00000002,
23394 VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_FORCE_OPAQUE_BIT_NV = 0x00000004,
23395 VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_FORCE_NO_OPAQUE_BIT_NV = 0x00000008,
23396 VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_ENABLE_EXPLICIT_BOUNDING_BOX_NV = 0x00000010,
23397 VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
23398} VkPartitionedAccelerationStructureInstanceFlagBitsNV;
23399typedef VkFlags VkPartitionedAccelerationStructureInstanceFlagsNV;
23400typedef struct VkPhysicalDevicePartitionedAccelerationStructureFeaturesNV {
23401 VkStructureType sType;
23402 void* pNext;
23403 VkBool32 partitionedAccelerationStructure;
23404} VkPhysicalDevicePartitionedAccelerationStructureFeaturesNV;
23405
23406typedef struct VkPhysicalDevicePartitionedAccelerationStructurePropertiesNV {
23407 VkStructureType sType;
23408 void* pNext;
23409 uint32_t maxPartitionCount;
23410} VkPhysicalDevicePartitionedAccelerationStructurePropertiesNV;
23411
23412typedef struct VkPartitionedAccelerationStructureFlagsNV {
23413 VkStructureType sType;
23414 void* pNext;
23415 VkBool32 enablePartitionTranslation;
23416} VkPartitionedAccelerationStructureFlagsNV;
23417
23418typedef struct VkBuildPartitionedAccelerationStructureIndirectCommandNV {
23419 VkPartitionedAccelerationStructureOpTypeNV opType;
23420 uint32_t argCount;
23421 VkStridedDeviceAddressNV argData;
23422} VkBuildPartitionedAccelerationStructureIndirectCommandNV;
23423
23424typedef struct VkPartitionedAccelerationStructureWriteInstanceDataNV {
23425 VkTransformMatrixKHR transform;
23426 float explicitAABB[6];
23427 uint32_t instanceID;
23428 uint32_t instanceMask;
23429 uint32_t instanceContributionToHitGroupIndex;
23430 VkPartitionedAccelerationStructureInstanceFlagsNV instanceFlags;
23431 uint32_t instanceIndex;
23432 uint32_t partitionIndex;
23433 VkDeviceAddress accelerationStructure;
23434} VkPartitionedAccelerationStructureWriteInstanceDataNV;
23435
23436typedef struct VkPartitionedAccelerationStructureUpdateInstanceDataNV {
23437 uint32_t instanceIndex;
23438 uint32_t instanceContributionToHitGroupIndex;
23439 VkDeviceAddress accelerationStructure;
23440} VkPartitionedAccelerationStructureUpdateInstanceDataNV;
23441
23442typedef struct VkPartitionedAccelerationStructureWritePartitionTranslationDataNV {
23443 uint32_t partitionIndex;
23444 float partitionTranslation[3];
23445} VkPartitionedAccelerationStructureWritePartitionTranslationDataNV;
23446
23447typedef struct VkWriteDescriptorSetPartitionedAccelerationStructureNV {
23448 VkStructureType sType;
23449 void* pNext;
23450 uint32_t accelerationStructureCount;
23451 const VkDeviceAddress* pAccelerationStructures;
23452} VkWriteDescriptorSetPartitionedAccelerationStructureNV;
23453
23454typedef struct VkPartitionedAccelerationStructureInstancesInputNV {
23455 VkStructureType sType;
23456 void* pNext;
23457 VkBuildAccelerationStructureFlagsKHR flags;
23458 uint32_t instanceCount;
23459 uint32_t maxInstancePerPartitionCount;
23460 uint32_t partitionCount;
23461 uint32_t maxInstanceInGlobalPartitionCount;
23462} VkPartitionedAccelerationStructureInstancesInputNV;
23463
23464typedef struct VkBuildPartitionedAccelerationStructureInfoNV {
23465 VkStructureType sType;
23466 void* pNext;
23467 VkPartitionedAccelerationStructureInstancesInputNV input;
23468 VkDeviceAddress srcAccelerationStructureData;
23469 VkDeviceAddress dstAccelerationStructureData;
23470 VkDeviceAddress scratchData;
23471 VkDeviceAddress srcInfos;
23472 VkDeviceAddress srcInfosCount;
23473} VkBuildPartitionedAccelerationStructureInfoNV;
23474
23475typedef void (VKAPI_PTR *PFN_vkGetPartitionedAccelerationStructuresBuildSizesNV)(VkDevice device, const VkPartitionedAccelerationStructureInstancesInputNV* pInfo, VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo);
23476typedef void (VKAPI_PTR *PFN_vkCmdBuildPartitionedAccelerationStructuresNV)(VkCommandBuffer commandBuffer, const VkBuildPartitionedAccelerationStructureInfoNV* pBuildInfo);
23477
23478#ifndef VK_NO_PROTOTYPES
23479#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23480VKAPI_ATTR void VKAPI_CALL vkGetPartitionedAccelerationStructuresBuildSizesNV(
23481 VkDevice device,
23482 const VkPartitionedAccelerationStructureInstancesInputNV* pInfo,
23483 VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo);
23484#endif
23485
23486#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23487VKAPI_ATTR void VKAPI_CALL vkCmdBuildPartitionedAccelerationStructuresNV(
23488 VkCommandBuffer commandBuffer,
23489 const VkBuildPartitionedAccelerationStructureInfoNV* pBuildInfo);
23490#endif
23491#endif
23492
23493
23494// VK_EXT_device_generated_commands is a preprocessor guard. Do not pass it to API calls.
23495#define VK_EXT_device_generated_commands 1
23496VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectExecutionSetEXT)
23497VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutEXT)
23498#define VK_EXT_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 1
23499#define VK_EXT_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_EXT_device_generated_commands"
23500
23501typedef enum VkIndirectExecutionSetInfoTypeEXT {
23502 VK_INDIRECT_EXECUTION_SET_INFO_TYPE_PIPELINES_EXT = 0,
23503 VK_INDIRECT_EXECUTION_SET_INFO_TYPE_SHADER_OBJECTS_EXT = 1,
23504 VK_INDIRECT_EXECUTION_SET_INFO_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
23505} VkIndirectExecutionSetInfoTypeEXT;
23506
23507typedef enum VkIndirectCommandsTokenTypeEXT {
23508 VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT = 0,
23509 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT = 1,
23510 VK_INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT = 2,
23511 VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_EXT = 3,
23512 VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT = 4,
23513 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_EXT = 5,
23514 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_EXT = 6,
23515 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_COUNT_EXT = 7,
23516 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_COUNT_EXT = 8,
23517 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_EXT = 9,
23518 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV_EXT = 1000202002,
23519 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_NV_EXT = 1000202003,
23520 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_EXT = 1000328000,
23521 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_EXT = 1000328001,
23522 VK_INDIRECT_COMMANDS_TOKEN_TYPE_TRACE_RAYS2_EXT = 1000386004,
23523 VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
23524} VkIndirectCommandsTokenTypeEXT;
23525
23526typedef enum VkIndirectCommandsInputModeFlagBitsEXT {
23527 VK_INDIRECT_COMMANDS_INPUT_MODE_VULKAN_INDEX_BUFFER_EXT = 0x00000001,
23528 VK_INDIRECT_COMMANDS_INPUT_MODE_DXGI_INDEX_BUFFER_EXT = 0x00000002,
23529 VK_INDIRECT_COMMANDS_INPUT_MODE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
23530} VkIndirectCommandsInputModeFlagBitsEXT;
23531typedef VkFlags VkIndirectCommandsInputModeFlagsEXT;
23532
23533typedef enum VkIndirectCommandsLayoutUsageFlagBitsEXT {
23534 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_EXT = 0x00000001,
23535 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_EXT = 0x00000002,
23536 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
23537} VkIndirectCommandsLayoutUsageFlagBitsEXT;
23538typedef VkFlags VkIndirectCommandsLayoutUsageFlagsEXT;
23539typedef struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT {
23540 VkStructureType sType;
23541 void* pNext;
23542 VkBool32 deviceGeneratedCommands;
23543 VkBool32 dynamicGeneratedPipelineLayout;
23544} VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT;
23545
23546typedef struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT {
23547 VkStructureType sType;
23548 void* pNext;
23549 uint32_t maxIndirectPipelineCount;
23550 uint32_t maxIndirectShaderObjectCount;
23551 uint32_t maxIndirectSequenceCount;
23552 uint32_t maxIndirectCommandsTokenCount;
23553 uint32_t maxIndirectCommandsTokenOffset;
23554 uint32_t maxIndirectCommandsIndirectStride;
23555 VkIndirectCommandsInputModeFlagsEXT supportedIndirectCommandsInputModes;
23556 VkShaderStageFlags supportedIndirectCommandsShaderStages;
23557 VkShaderStageFlags supportedIndirectCommandsShaderStagesPipelineBinding;
23558 VkShaderStageFlags supportedIndirectCommandsShaderStagesShaderBinding;
23559 VkBool32 deviceGeneratedCommandsTransformFeedback;
23560 VkBool32 deviceGeneratedCommandsMultiDrawIndirectCount;
23561} VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT;
23562
23563typedef struct VkGeneratedCommandsMemoryRequirementsInfoEXT {
23564 VkStructureType sType;
23565 const void* pNext;
23566 VkIndirectExecutionSetEXT indirectExecutionSet;
23567 VkIndirectCommandsLayoutEXT indirectCommandsLayout;
23568 uint32_t maxSequenceCount;
23569 uint32_t maxDrawCount;
23570} VkGeneratedCommandsMemoryRequirementsInfoEXT;
23571
23572typedef struct VkIndirectExecutionSetPipelineInfoEXT {
23573 VkStructureType sType;
23574 const void* pNext;
23575 VkPipeline initialPipeline;
23576 uint32_t maxPipelineCount;
23577} VkIndirectExecutionSetPipelineInfoEXT;
23578
23579typedef struct VkIndirectExecutionSetShaderLayoutInfoEXT {
23580 VkStructureType sType;
23581 const void* pNext;
23582 uint32_t setLayoutCount;
23583 const VkDescriptorSetLayout* pSetLayouts;
23584} VkIndirectExecutionSetShaderLayoutInfoEXT;
23585
23586typedef struct VkIndirectExecutionSetShaderInfoEXT {
23587 VkStructureType sType;
23588 const void* pNext;
23589 uint32_t shaderCount;
23590 const VkShaderEXT* pInitialShaders;
23591 const VkIndirectExecutionSetShaderLayoutInfoEXT* pSetLayoutInfos;
23592 uint32_t maxShaderCount;
23593 uint32_t pushConstantRangeCount;
23594 const VkPushConstantRange* pPushConstantRanges;
23595} VkIndirectExecutionSetShaderInfoEXT;
23596
23597typedef union VkIndirectExecutionSetInfoEXT {
23598 const VkIndirectExecutionSetPipelineInfoEXT* pPipelineInfo;
23599 const VkIndirectExecutionSetShaderInfoEXT* pShaderInfo;
23600} VkIndirectExecutionSetInfoEXT;
23601
23602typedef struct VkIndirectExecutionSetCreateInfoEXT {
23603 VkStructureType sType;
23604 const void* pNext;
23605 VkIndirectExecutionSetInfoTypeEXT type;
23606 VkIndirectExecutionSetInfoEXT info;
23607} VkIndirectExecutionSetCreateInfoEXT;
23608
23609typedef struct VkGeneratedCommandsInfoEXT {
23610 VkStructureType sType;
23611 const void* pNext;
23612 VkShaderStageFlags shaderStages;
23613 VkIndirectExecutionSetEXT indirectExecutionSet;
23614 VkIndirectCommandsLayoutEXT indirectCommandsLayout;
23615 VkDeviceAddress indirectAddress;
23616 VkDeviceSize indirectAddressSize;
23617 VkDeviceAddress preprocessAddress;
23618 VkDeviceSize preprocessSize;
23619 uint32_t maxSequenceCount;
23620 VkDeviceAddress sequenceCountAddress;
23621 uint32_t maxDrawCount;
23622} VkGeneratedCommandsInfoEXT;
23623
23624typedef struct VkWriteIndirectExecutionSetPipelineEXT {
23625 VkStructureType sType;
23626 const void* pNext;
23627 uint32_t index;
23628 VkPipeline pipeline;
23629} VkWriteIndirectExecutionSetPipelineEXT;
23630
23631typedef struct VkIndirectCommandsPushConstantTokenEXT {
23632 VkPushConstantRange updateRange;
23633} VkIndirectCommandsPushConstantTokenEXT;
23634
23635typedef struct VkIndirectCommandsVertexBufferTokenEXT {
23636 uint32_t vertexBindingUnit;
23637} VkIndirectCommandsVertexBufferTokenEXT;
23638
23639typedef struct VkIndirectCommandsIndexBufferTokenEXT {
23640 VkIndirectCommandsInputModeFlagBitsEXT mode;
23641} VkIndirectCommandsIndexBufferTokenEXT;
23642
23643typedef struct VkIndirectCommandsExecutionSetTokenEXT {
23644 VkIndirectExecutionSetInfoTypeEXT type;
23645 VkShaderStageFlags shaderStages;
23646} VkIndirectCommandsExecutionSetTokenEXT;
23647
23648typedef union VkIndirectCommandsTokenDataEXT {
23649 const VkIndirectCommandsPushConstantTokenEXT* pPushConstant;
23650 const VkIndirectCommandsVertexBufferTokenEXT* pVertexBuffer;
23651 const VkIndirectCommandsIndexBufferTokenEXT* pIndexBuffer;
23652 const VkIndirectCommandsExecutionSetTokenEXT* pExecutionSet;
23653} VkIndirectCommandsTokenDataEXT;
23654
23655typedef struct VkIndirectCommandsLayoutTokenEXT {
23656 VkStructureType sType;
23657 const void* pNext;
23658 VkIndirectCommandsTokenTypeEXT type;
23659 VkIndirectCommandsTokenDataEXT data;
23660 uint32_t offset;
23661} VkIndirectCommandsLayoutTokenEXT;
23662
23663typedef struct VkIndirectCommandsLayoutCreateInfoEXT {
23664 VkStructureType sType;
23665 const void* pNext;
23666 VkIndirectCommandsLayoutUsageFlagsEXT flags;
23667 VkShaderStageFlags shaderStages;
23668 uint32_t indirectStride;
23669 VkPipelineLayout pipelineLayout;
23670 uint32_t tokenCount;
23671 const VkIndirectCommandsLayoutTokenEXT* pTokens;
23672} VkIndirectCommandsLayoutCreateInfoEXT;
23673
23674typedef struct VkDrawIndirectCountIndirectCommandEXT {
23675 VkDeviceAddress bufferAddress;
23676 uint32_t stride;
23677 uint32_t commandCount;
23678} VkDrawIndirectCountIndirectCommandEXT;
23679
23680typedef struct VkBindVertexBufferIndirectCommandEXT {
23681 VkDeviceAddress bufferAddress;
23682 uint32_t size;
23683 uint32_t stride;
23684} VkBindVertexBufferIndirectCommandEXT;
23685
23686typedef struct VkBindIndexBufferIndirectCommandEXT {
23687 VkDeviceAddress bufferAddress;
23688 uint32_t size;
23689 VkIndexType indexType;
23690} VkBindIndexBufferIndirectCommandEXT;
23691
23692typedef struct VkGeneratedCommandsPipelineInfoEXT {
23693 VkStructureType sType;
23694 void* pNext;
23695 VkPipeline pipeline;
23696} VkGeneratedCommandsPipelineInfoEXT;
23697
23698typedef struct VkGeneratedCommandsShaderInfoEXT {
23699 VkStructureType sType;
23700 void* pNext;
23701 uint32_t shaderCount;
23702 const VkShaderEXT* pShaders;
23703} VkGeneratedCommandsShaderInfoEXT;
23704
23705typedef struct VkWriteIndirectExecutionSetShaderEXT {
23706 VkStructureType sType;
23707 const void* pNext;
23708 uint32_t index;
23709 VkShaderEXT shader;
23710} VkWriteIndirectExecutionSetShaderEXT;
23711
23712typedef void (VKAPI_PTR *PFN_vkGetGeneratedCommandsMemoryRequirementsEXT)(VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoEXT* pInfo, VkMemoryRequirements2* pMemoryRequirements);
23713typedef void (VKAPI_PTR *PFN_vkCmdPreprocessGeneratedCommandsEXT)(VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoEXT* pGeneratedCommandsInfo, VkCommandBuffer stateCommandBuffer);
23714typedef void (VKAPI_PTR *PFN_vkCmdExecuteGeneratedCommandsEXT)(VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoEXT* pGeneratedCommandsInfo);
23715typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutEXT)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutEXT* pIndirectCommandsLayout);
23716typedef void (VKAPI_PTR *PFN_vkDestroyIndirectCommandsLayoutEXT)(VkDevice device, VkIndirectCommandsLayoutEXT indirectCommandsLayout, const VkAllocationCallbacks* pAllocator);
23717typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectExecutionSetEXT)(VkDevice device, const VkIndirectExecutionSetCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectExecutionSetEXT* pIndirectExecutionSet);
23718typedef void (VKAPI_PTR *PFN_vkDestroyIndirectExecutionSetEXT)(VkDevice device, VkIndirectExecutionSetEXT indirectExecutionSet, const VkAllocationCallbacks* pAllocator);
23719typedef void (VKAPI_PTR *PFN_vkUpdateIndirectExecutionSetPipelineEXT)(VkDevice device, VkIndirectExecutionSetEXT indirectExecutionSet, uint32_t executionSetWriteCount, const VkWriteIndirectExecutionSetPipelineEXT* pExecutionSetWrites);
23720typedef void (VKAPI_PTR *PFN_vkUpdateIndirectExecutionSetShaderEXT)(VkDevice device, VkIndirectExecutionSetEXT indirectExecutionSet, uint32_t executionSetWriteCount, const VkWriteIndirectExecutionSetShaderEXT* pExecutionSetWrites);
23721
23722#ifndef VK_NO_PROTOTYPES
23723#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23724VKAPI_ATTR void VKAPI_CALL vkGetGeneratedCommandsMemoryRequirementsEXT(
23725 VkDevice device,
23726 const VkGeneratedCommandsMemoryRequirementsInfoEXT* pInfo,
23727 VkMemoryRequirements2* pMemoryRequirements);
23728#endif
23729
23730#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23731VKAPI_ATTR void VKAPI_CALL vkCmdPreprocessGeneratedCommandsEXT(
23732 VkCommandBuffer commandBuffer,
23733 const VkGeneratedCommandsInfoEXT* pGeneratedCommandsInfo,
23734 VkCommandBuffer stateCommandBuffer);
23735#endif
23736
23737#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23738VKAPI_ATTR void VKAPI_CALL vkCmdExecuteGeneratedCommandsEXT(
23739 VkCommandBuffer commandBuffer,
23740 VkBool32 isPreprocessed,
23741 const VkGeneratedCommandsInfoEXT* pGeneratedCommandsInfo);
23742#endif
23743
23744#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23745VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutEXT(
23746 VkDevice device,
23747 const VkIndirectCommandsLayoutCreateInfoEXT* pCreateInfo,
23748 const VkAllocationCallbacks* pAllocator,
23749 VkIndirectCommandsLayoutEXT* pIndirectCommandsLayout);
23750#endif
23751
23752#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23753VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutEXT(
23754 VkDevice device,
23755 VkIndirectCommandsLayoutEXT indirectCommandsLayout,
23756 const VkAllocationCallbacks* pAllocator);
23757#endif
23758
23759#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23760VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectExecutionSetEXT(
23761 VkDevice device,
23762 const VkIndirectExecutionSetCreateInfoEXT* pCreateInfo,
23763 const VkAllocationCallbacks* pAllocator,
23764 VkIndirectExecutionSetEXT* pIndirectExecutionSet);
23765#endif
23766
23767#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23768VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectExecutionSetEXT(
23769 VkDevice device,
23770 VkIndirectExecutionSetEXT indirectExecutionSet,
23771 const VkAllocationCallbacks* pAllocator);
23772#endif
23773
23774#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23775VKAPI_ATTR void VKAPI_CALL vkUpdateIndirectExecutionSetPipelineEXT(
23776 VkDevice device,
23777 VkIndirectExecutionSetEXT indirectExecutionSet,
23778 uint32_t executionSetWriteCount,
23779 const VkWriteIndirectExecutionSetPipelineEXT* pExecutionSetWrites);
23780#endif
23781
23782#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23783VKAPI_ATTR void VKAPI_CALL vkUpdateIndirectExecutionSetShaderEXT(
23784 VkDevice device,
23785 VkIndirectExecutionSetEXT indirectExecutionSet,
23786 uint32_t executionSetWriteCount,
23787 const VkWriteIndirectExecutionSetShaderEXT* pExecutionSetWrites);
23788#endif
23789#endif
23790
23791
23792// VK_MESA_image_alignment_control is a preprocessor guard. Do not pass it to API calls.
23793#define VK_MESA_image_alignment_control 1
23794#define VK_MESA_IMAGE_ALIGNMENT_CONTROL_SPEC_VERSION 1
23795#define VK_MESA_IMAGE_ALIGNMENT_CONTROL_EXTENSION_NAME "VK_MESA_image_alignment_control"
23796typedef struct VkPhysicalDeviceImageAlignmentControlFeaturesMESA {
23797 VkStructureType sType;
23798 void* pNext;
23799 VkBool32 imageAlignmentControl;
23800} VkPhysicalDeviceImageAlignmentControlFeaturesMESA;
23801
23802typedef struct VkPhysicalDeviceImageAlignmentControlPropertiesMESA {
23803 VkStructureType sType;
23804 void* pNext;
23805 uint32_t supportedImageAlignmentMask;
23806} VkPhysicalDeviceImageAlignmentControlPropertiesMESA;
23807
23808typedef struct VkImageAlignmentControlCreateInfoMESA {
23809 VkStructureType sType;
23810 const void* pNext;
23811 uint32_t maximumRequestedAlignment;
23812} VkImageAlignmentControlCreateInfoMESA;
23813
23814
23815
23816// VK_EXT_ray_tracing_invocation_reorder is a preprocessor guard. Do not pass it to API calls.
23817#define VK_EXT_ray_tracing_invocation_reorder 1
23818#define VK_EXT_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION 1
23819#define VK_EXT_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME "VK_EXT_ray_tracing_invocation_reorder"
23820typedef struct VkPhysicalDeviceRayTracingInvocationReorderPropertiesEXT {
23821 VkStructureType sType;
23822 void* pNext;
23823 VkRayTracingInvocationReorderModeEXT rayTracingInvocationReorderReorderingHint;
23824 uint32_t maxShaderBindingTableRecordIndex;
23825} VkPhysicalDeviceRayTracingInvocationReorderPropertiesEXT;
23826
23827typedef struct VkPhysicalDeviceRayTracingInvocationReorderFeaturesEXT {
23828 VkStructureType sType;
23829 void* pNext;
23830 VkBool32 rayTracingInvocationReorder;
23831} VkPhysicalDeviceRayTracingInvocationReorderFeaturesEXT;
23832
23833
23834
23835// VK_EXT_depth_clamp_control is a preprocessor guard. Do not pass it to API calls.
23836#define VK_EXT_depth_clamp_control 1
23837#define VK_EXT_DEPTH_CLAMP_CONTROL_SPEC_VERSION 1
23838#define VK_EXT_DEPTH_CLAMP_CONTROL_EXTENSION_NAME "VK_EXT_depth_clamp_control"
23839typedef struct VkPhysicalDeviceDepthClampControlFeaturesEXT {
23840 VkStructureType sType;
23841 void* pNext;
23842 VkBool32 depthClampControl;
23843} VkPhysicalDeviceDepthClampControlFeaturesEXT;
23844
23845typedef struct VkPipelineViewportDepthClampControlCreateInfoEXT {
23846 VkStructureType sType;
23847 const void* pNext;
23848 VkDepthClampModeEXT depthClampMode;
23849 const VkDepthClampRangeEXT* pDepthClampRange;
23850} VkPipelineViewportDepthClampControlCreateInfoEXT;
23851
23852
23853
23854// VK_HUAWEI_hdr_vivid is a preprocessor guard. Do not pass it to API calls.
23855#define VK_HUAWEI_hdr_vivid 1
23856#define VK_HUAWEI_HDR_VIVID_SPEC_VERSION 1
23857#define VK_HUAWEI_HDR_VIVID_EXTENSION_NAME "VK_HUAWEI_hdr_vivid"
23858typedef struct VkPhysicalDeviceHdrVividFeaturesHUAWEI {
23859 VkStructureType sType;
23860 void* pNext;
23861 VkBool32 hdrVivid;
23862} VkPhysicalDeviceHdrVividFeaturesHUAWEI;
23863
23864typedef struct VkHdrVividDynamicMetadataHUAWEI {
23865 VkStructureType sType;
23866 const void* pNext;
23867 size_t dynamicMetadataSize;
23868 const void* pDynamicMetadata;
23869} VkHdrVividDynamicMetadataHUAWEI;
23870
23871
23872
23873// VK_NV_cooperative_matrix2 is a preprocessor guard. Do not pass it to API calls.
23874#define VK_NV_cooperative_matrix2 1
23875#define VK_NV_COOPERATIVE_MATRIX_2_SPEC_VERSION 1
23876#define VK_NV_COOPERATIVE_MATRIX_2_EXTENSION_NAME "VK_NV_cooperative_matrix2"
23877typedef struct VkCooperativeMatrixFlexibleDimensionsPropertiesNV {
23878 VkStructureType sType;
23879 void* pNext;
23880 uint32_t MGranularity;
23881 uint32_t NGranularity;
23882 uint32_t KGranularity;
23883 VkComponentTypeKHR AType;
23884 VkComponentTypeKHR BType;
23885 VkComponentTypeKHR CType;
23886 VkComponentTypeKHR ResultType;
23887 VkBool32 saturatingAccumulation;
23888 VkScopeKHR scope;
23889 uint32_t workgroupInvocations;
23890} VkCooperativeMatrixFlexibleDimensionsPropertiesNV;
23891
23892typedef struct VkPhysicalDeviceCooperativeMatrix2FeaturesNV {
23893 VkStructureType sType;
23894 void* pNext;
23895 VkBool32 cooperativeMatrixWorkgroupScope;
23896 VkBool32 cooperativeMatrixFlexibleDimensions;
23897 VkBool32 cooperativeMatrixReductions;
23898 VkBool32 cooperativeMatrixConversions;
23899 VkBool32 cooperativeMatrixPerElementOperations;
23900 VkBool32 cooperativeMatrixTensorAddressing;
23901 VkBool32 cooperativeMatrixBlockLoads;
23902} VkPhysicalDeviceCooperativeMatrix2FeaturesNV;
23903
23904typedef struct VkPhysicalDeviceCooperativeMatrix2PropertiesNV {
23905 VkStructureType sType;
23906 void* pNext;
23907 uint32_t cooperativeMatrixWorkgroupScopeMaxWorkgroupSize;
23908 uint32_t cooperativeMatrixFlexibleDimensionsMaxDimension;
23909 uint32_t cooperativeMatrixWorkgroupScopeReservedSharedMemory;
23910} VkPhysicalDeviceCooperativeMatrix2PropertiesNV;
23911
23912typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixFlexibleDimensionsPropertiesNV* pProperties);
23913
23914#ifndef VK_NO_PROTOTYPES
23915#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23916VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV(
23917 VkPhysicalDevice physicalDevice,
23918 uint32_t* pPropertyCount,
23919 VkCooperativeMatrixFlexibleDimensionsPropertiesNV* pProperties);
23920#endif
23921#endif
23922
23923
23924// VK_ARM_pipeline_opacity_micromap is a preprocessor guard. Do not pass it to API calls.
23925#define VK_ARM_pipeline_opacity_micromap 1
23926#define VK_ARM_PIPELINE_OPACITY_MICROMAP_SPEC_VERSION 1
23927#define VK_ARM_PIPELINE_OPACITY_MICROMAP_EXTENSION_NAME "VK_ARM_pipeline_opacity_micromap"
23928typedef struct VkPhysicalDevicePipelineOpacityMicromapFeaturesARM {
23929 VkStructureType sType;
23930 void* pNext;
23931 VkBool32 pipelineOpacityMicromap;
23932} VkPhysicalDevicePipelineOpacityMicromapFeaturesARM;
23933
23934
23935
23936// VK_ARM_performance_counters_by_region is a preprocessor guard. Do not pass it to API calls.
23937#define VK_ARM_performance_counters_by_region 1
23938#define VK_ARM_PERFORMANCE_COUNTERS_BY_REGION_SPEC_VERSION 1
23939#define VK_ARM_PERFORMANCE_COUNTERS_BY_REGION_EXTENSION_NAME "VK_ARM_performance_counters_by_region"
23940typedef VkFlags VkPerformanceCounterDescriptionFlagsARM;
23941typedef struct VkPhysicalDevicePerformanceCountersByRegionFeaturesARM {
23942 VkStructureType sType;
23943 void* pNext;
23944 VkBool32 performanceCountersByRegion;
23945} VkPhysicalDevicePerformanceCountersByRegionFeaturesARM;
23946
23947typedef struct VkPhysicalDevicePerformanceCountersByRegionPropertiesARM {
23948 VkStructureType sType;
23949 void* pNext;
23950 uint32_t maxPerRegionPerformanceCounters;
23951 VkExtent2D performanceCounterRegionSize;
23952 uint32_t rowStrideAlignment;
23953 uint32_t regionAlignment;
23954 VkBool32 identityTransformOrder;
23955} VkPhysicalDevicePerformanceCountersByRegionPropertiesARM;
23956
23957typedef struct VkPerformanceCounterARM {
23958 VkStructureType sType;
23959 void* pNext;
23960 uint32_t counterID;
23961} VkPerformanceCounterARM;
23962
23963typedef struct VkPerformanceCounterDescriptionARM {
23964 VkStructureType sType;
23965 void* pNext;
23966 VkPerformanceCounterDescriptionFlagsARM flags;
23967 char name[VK_MAX_DESCRIPTION_SIZE];
23968} VkPerformanceCounterDescriptionARM;
23969
23970typedef struct VkRenderPassPerformanceCountersByRegionBeginInfoARM {
23971 VkStructureType sType;
23972 void* pNext;
23973 uint32_t counterAddressCount;
23974 const VkDeviceAddress* pCounterAddresses;
23975 VkBool32 serializeRegions;
23976 uint32_t counterIndexCount;
23977 uint32_t* pCounterIndices;
23978} VkRenderPassPerformanceCountersByRegionBeginInfoARM;
23979
23980typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pCounterCount, VkPerformanceCounterARM* pCounters, VkPerformanceCounterDescriptionARM* pCounterDescriptions);
23981
23982#ifndef VK_NO_PROTOTYPES
23983#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23984VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM(
23985 VkPhysicalDevice physicalDevice,
23986 uint32_t queueFamilyIndex,
23987 uint32_t* pCounterCount,
23988 VkPerformanceCounterARM* pCounters,
23989 VkPerformanceCounterDescriptionARM* pCounterDescriptions);
23990#endif
23991#endif
23992
23993
23994// VK_EXT_vertex_attribute_robustness is a preprocessor guard. Do not pass it to API calls.
23995#define VK_EXT_vertex_attribute_robustness 1
23996#define VK_EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_SPEC_VERSION 1
23997#define VK_EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_vertex_attribute_robustness"
23998typedef struct VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT {
23999 VkStructureType sType;
24000 void* pNext;
24001 VkBool32 vertexAttributeRobustness;
24002} VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT;
24003
24004
24005
24006// VK_ARM_format_pack is a preprocessor guard. Do not pass it to API calls.
24007#define VK_ARM_format_pack 1
24008#define VK_ARM_FORMAT_PACK_SPEC_VERSION 1
24009#define VK_ARM_FORMAT_PACK_EXTENSION_NAME "VK_ARM_format_pack"
24010typedef struct VkPhysicalDeviceFormatPackFeaturesARM {
24011 VkStructureType sType;
24012 void* pNext;
24013 VkBool32 formatPack;
24014} VkPhysicalDeviceFormatPackFeaturesARM;
24015
24016
24017
24018// VK_VALVE_fragment_density_map_layered is a preprocessor guard. Do not pass it to API calls.
24019#define VK_VALVE_fragment_density_map_layered 1
24020#define VK_VALVE_FRAGMENT_DENSITY_MAP_LAYERED_SPEC_VERSION 1
24021#define VK_VALVE_FRAGMENT_DENSITY_MAP_LAYERED_EXTENSION_NAME "VK_VALVE_fragment_density_map_layered"
24022typedef struct VkPhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE {
24023 VkStructureType sType;
24024 void* pNext;
24025 VkBool32 fragmentDensityMapLayered;
24026} VkPhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE;
24027
24028typedef struct VkPhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE {
24029 VkStructureType sType;
24030 void* pNext;
24031 uint32_t maxFragmentDensityMapLayers;
24032} VkPhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE;
24033
24034typedef struct VkPipelineFragmentDensityMapLayeredCreateInfoVALVE {
24035 VkStructureType sType;
24036 const void* pNext;
24037 uint32_t maxFragmentDensityMapLayers;
24038} VkPipelineFragmentDensityMapLayeredCreateInfoVALVE;
24039
24040
24041
24042// VK_NV_present_metering is a preprocessor guard. Do not pass it to API calls.
24043#define VK_NV_present_metering 1
24044#define VK_NV_PRESENT_METERING_SPEC_VERSION 1
24045#define VK_NV_PRESENT_METERING_EXTENSION_NAME "VK_NV_present_metering"
24046typedef struct VkSetPresentConfigNV {
24047 VkStructureType sType;
24048 const void* pNext;
24049 uint32_t numFramesPerBatch;
24050 uint32_t presentConfigFeedback;
24051} VkSetPresentConfigNV;
24052
24053typedef struct VkPhysicalDevicePresentMeteringFeaturesNV {
24054 VkStructureType sType;
24055 void* pNext;
24056 VkBool32 presentMetering;
24057} VkPhysicalDevicePresentMeteringFeaturesNV;
24058
24059
24060
24061// VK_EXT_fragment_density_map_offset is a preprocessor guard. Do not pass it to API calls.
24062#define VK_EXT_fragment_density_map_offset 1
24063#define VK_EXT_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION 1
24064#define VK_EXT_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME "VK_EXT_fragment_density_map_offset"
24065typedef VkRenderingEndInfoKHR VkRenderingEndInfoEXT;
24066
24067typedef void (VKAPI_PTR *PFN_vkCmdEndRendering2EXT)(VkCommandBuffer commandBuffer, const VkRenderingEndInfoKHR* pRenderingEndInfo);
24068
24069#ifndef VK_NO_PROTOTYPES
24070#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24071VKAPI_ATTR void VKAPI_CALL vkCmdEndRendering2EXT(
24072 VkCommandBuffer commandBuffer,
24073 const VkRenderingEndInfoKHR* pRenderingEndInfo);
24074#endif
24075#endif
24076
24077
24078// VK_EXT_zero_initialize_device_memory is a preprocessor guard. Do not pass it to API calls.
24079#define VK_EXT_zero_initialize_device_memory 1
24080#define VK_EXT_ZERO_INITIALIZE_DEVICE_MEMORY_SPEC_VERSION 1
24081#define VK_EXT_ZERO_INITIALIZE_DEVICE_MEMORY_EXTENSION_NAME "VK_EXT_zero_initialize_device_memory"
24082typedef struct VkPhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT {
24083 VkStructureType sType;
24084 void* pNext;
24085 VkBool32 zeroInitializeDeviceMemory;
24086} VkPhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT;
24087
24088
24089
24090// VK_EXT_shader_64bit_indexing is a preprocessor guard. Do not pass it to API calls.
24091#define VK_EXT_shader_64bit_indexing 1
24092#define VK_EXT_SHADER_64BIT_INDEXING_SPEC_VERSION 1
24093#define VK_EXT_SHADER_64BIT_INDEXING_EXTENSION_NAME "VK_EXT_shader_64bit_indexing"
24094typedef struct VkPhysicalDeviceShader64BitIndexingFeaturesEXT {
24095 VkStructureType sType;
24096 void* pNext;
24097 VkBool32 shader64BitIndexing;
24098} VkPhysicalDeviceShader64BitIndexingFeaturesEXT;
24099
24100
24101
24102// VK_EXT_custom_resolve is a preprocessor guard. Do not pass it to API calls.
24103#define VK_EXT_custom_resolve 1
24104#define VK_EXT_CUSTOM_RESOLVE_SPEC_VERSION 1
24105#define VK_EXT_CUSTOM_RESOLVE_EXTENSION_NAME "VK_EXT_custom_resolve"
24106typedef struct VkPhysicalDeviceCustomResolveFeaturesEXT {
24107 VkStructureType sType;
24108 void* pNext;
24109 VkBool32 customResolve;
24110} VkPhysicalDeviceCustomResolveFeaturesEXT;
24111
24112typedef struct VkBeginCustomResolveInfoEXT {
24113 VkStructureType sType;
24114 void* pNext;
24115} VkBeginCustomResolveInfoEXT;
24116
24117typedef struct VkCustomResolveCreateInfoEXT {
24118 VkStructureType sType;
24119 const void* pNext;
24120 VkBool32 customResolve;
24121 uint32_t colorAttachmentCount;
24122 const VkFormat* pColorAttachmentFormats;
24123 VkFormat depthAttachmentFormat;
24124 VkFormat stencilAttachmentFormat;
24125} VkCustomResolveCreateInfoEXT;
24126
24127typedef void (VKAPI_PTR *PFN_vkCmdBeginCustomResolveEXT)(VkCommandBuffer commandBuffer, const VkBeginCustomResolveInfoEXT* pBeginCustomResolveInfo);
24128
24129#ifndef VK_NO_PROTOTYPES
24130#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24131VKAPI_ATTR void VKAPI_CALL vkCmdBeginCustomResolveEXT(
24132 VkCommandBuffer commandBuffer,
24133 const VkBeginCustomResolveInfoEXT* pBeginCustomResolveInfo);
24134#endif
24135#endif
24136
24137
24138// VK_QCOM_data_graph_model is a preprocessor guard. Do not pass it to API calls.
24139#define VK_QCOM_data_graph_model 1
24140#define VK_DATA_GRAPH_MODEL_TOOLCHAIN_VERSION_LENGTH_QCOM 3U
24141#define VK_QCOM_DATA_GRAPH_MODEL_SPEC_VERSION 1
24142#define VK_QCOM_DATA_GRAPH_MODEL_EXTENSION_NAME "VK_QCOM_data_graph_model"
24143
24144typedef enum VkDataGraphModelCacheTypeQCOM {
24145 VK_DATA_GRAPH_MODEL_CACHE_TYPE_GENERIC_BINARY_QCOM = 0,
24146 VK_DATA_GRAPH_MODEL_CACHE_TYPE_MAX_ENUM_QCOM = 0x7FFFFFFF
24147} VkDataGraphModelCacheTypeQCOM;
24148typedef struct VkPipelineCacheHeaderVersionDataGraphQCOM {
24149 uint32_t headerSize;
24150 VkPipelineCacheHeaderVersion headerVersion;
24151 VkDataGraphModelCacheTypeQCOM cacheType;
24152 uint32_t cacheVersion;
24153 uint32_t toolchainVersion[VK_DATA_GRAPH_MODEL_TOOLCHAIN_VERSION_LENGTH_QCOM];
24154} VkPipelineCacheHeaderVersionDataGraphQCOM;
24155
24156typedef struct VkDataGraphPipelineBuiltinModelCreateInfoQCOM {
24157 VkStructureType sType;
24158 const void* pNext;
24159 const VkPhysicalDeviceDataGraphOperationSupportARM* pOperation;
24160} VkDataGraphPipelineBuiltinModelCreateInfoQCOM;
24161
24162typedef struct VkPhysicalDeviceDataGraphModelFeaturesQCOM {
24163 VkStructureType sType;
24164 void* pNext;
24165 VkBool32 dataGraphModel;
24166} VkPhysicalDeviceDataGraphModelFeaturesQCOM;
24167
24168
24169
24170// VK_SEC_pipeline_cache_incremental_mode is a preprocessor guard. Do not pass it to API calls.
24171#define VK_SEC_pipeline_cache_incremental_mode 1
24172#define VK_SEC_PIPELINE_CACHE_INCREMENTAL_MODE_SPEC_VERSION 1
24173#define VK_SEC_PIPELINE_CACHE_INCREMENTAL_MODE_EXTENSION_NAME "VK_SEC_pipeline_cache_incremental_mode"
24174typedef struct VkPhysicalDevicePipelineCacheIncrementalModeFeaturesSEC {
24175 VkStructureType sType;
24176 void* pNext;
24177 VkBool32 pipelineCacheIncrementalMode;
24178} VkPhysicalDevicePipelineCacheIncrementalModeFeaturesSEC;
24179
24180
24181
24182// VK_EXT_shader_uniform_buffer_unsized_array is a preprocessor guard. Do not pass it to API calls.
24183#define VK_EXT_shader_uniform_buffer_unsized_array 1
24184#define VK_EXT_SHADER_UNIFORM_BUFFER_UNSIZED_ARRAY_SPEC_VERSION 1
24185#define VK_EXT_SHADER_UNIFORM_BUFFER_UNSIZED_ARRAY_EXTENSION_NAME "VK_EXT_shader_uniform_buffer_unsized_array"
24186typedef struct VkPhysicalDeviceShaderUniformBufferUnsizedArrayFeaturesEXT {
24187 VkStructureType sType;
24188 void* pNext;
24189 VkBool32 shaderUniformBufferUnsizedArray;
24190} VkPhysicalDeviceShaderUniformBufferUnsizedArrayFeaturesEXT;
24191
24192
24193
24194// VK_KHR_acceleration_structure is a preprocessor guard. Do not pass it to API calls.
24195#define VK_KHR_acceleration_structure 1
24196#define VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION 13
24197#define VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME "VK_KHR_acceleration_structure"
24198
24199typedef enum VkBuildAccelerationStructureModeKHR {
24200 VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = 0,
24201 VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = 1,
24202 VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
24203} VkBuildAccelerationStructureModeKHR;
24204
24205typedef enum VkAccelerationStructureCreateFlagBitsKHR {
24206 VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 0x00000001,
24207 VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000008,
24208 VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = 0x00000004,
24209 VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
24210} VkAccelerationStructureCreateFlagBitsKHR;
24211typedef VkFlags VkAccelerationStructureCreateFlagsKHR;
24212typedef struct VkAccelerationStructureBuildRangeInfoKHR {
24213 uint32_t primitiveCount;
24214 uint32_t primitiveOffset;
24215 uint32_t firstVertex;
24216 uint32_t transformOffset;
24217} VkAccelerationStructureBuildRangeInfoKHR;
24218
24219typedef struct VkAccelerationStructureGeometryTrianglesDataKHR {
24220 VkStructureType sType;
24221 const void* pNext;
24222 VkFormat vertexFormat;
24223 VkDeviceOrHostAddressConstKHR vertexData;
24224 VkDeviceSize vertexStride;
24225 uint32_t maxVertex;
24226 VkIndexType indexType;
24227 VkDeviceOrHostAddressConstKHR indexData;
24228 VkDeviceOrHostAddressConstKHR transformData;
24229} VkAccelerationStructureGeometryTrianglesDataKHR;
24230
24231typedef struct VkAccelerationStructureGeometryAabbsDataKHR {
24232 VkStructureType sType;
24233 const void* pNext;
24234 VkDeviceOrHostAddressConstKHR data;
24235 VkDeviceSize stride;
24236} VkAccelerationStructureGeometryAabbsDataKHR;
24237
24238typedef struct VkAccelerationStructureGeometryInstancesDataKHR {
24239 VkStructureType sType;
24240 const void* pNext;
24241 VkBool32 arrayOfPointers;
24242 VkDeviceOrHostAddressConstKHR data;
24243} VkAccelerationStructureGeometryInstancesDataKHR;
24244
24245typedef union VkAccelerationStructureGeometryDataKHR {
24246 VkAccelerationStructureGeometryTrianglesDataKHR triangles;
24247 VkAccelerationStructureGeometryAabbsDataKHR aabbs;
24248 VkAccelerationStructureGeometryInstancesDataKHR instances;
24249} VkAccelerationStructureGeometryDataKHR;
24250
24251typedef struct VkAccelerationStructureGeometryKHR {
24252 VkStructureType sType;
24253 const void* pNext;
24254 VkGeometryTypeKHR geometryType;
24255 VkAccelerationStructureGeometryDataKHR geometry;
24256 VkGeometryFlagsKHR flags;
24257} VkAccelerationStructureGeometryKHR;
24258
24259typedef struct VkAccelerationStructureBuildGeometryInfoKHR {
24260 VkStructureType sType;
24261 const void* pNext;
24262 VkAccelerationStructureTypeKHR type;
24263 VkBuildAccelerationStructureFlagsKHR flags;
24264 VkBuildAccelerationStructureModeKHR mode;
24265 VkAccelerationStructureKHR srcAccelerationStructure;
24266 VkAccelerationStructureKHR dstAccelerationStructure;
24267 uint32_t geometryCount;
24268 const VkAccelerationStructureGeometryKHR* pGeometries;
24269 const VkAccelerationStructureGeometryKHR* const* ppGeometries;
24270 VkDeviceOrHostAddressKHR scratchData;
24271} VkAccelerationStructureBuildGeometryInfoKHR;
24272
24273typedef struct VkAccelerationStructureCreateInfoKHR {
24274 VkStructureType sType;
24275 const void* pNext;
24276 VkAccelerationStructureCreateFlagsKHR createFlags;
24277 VkBuffer buffer;
24278 VkDeviceSize offset;
24279 VkDeviceSize size;
24280 VkAccelerationStructureTypeKHR type;
24281 VkDeviceAddress deviceAddress;
24282} VkAccelerationStructureCreateInfoKHR;
24283
24284typedef struct VkWriteDescriptorSetAccelerationStructureKHR {
24285 VkStructureType sType;
24286 const void* pNext;
24287 uint32_t accelerationStructureCount;
24288 const VkAccelerationStructureKHR* pAccelerationStructures;
24289} VkWriteDescriptorSetAccelerationStructureKHR;
24290
24291typedef struct VkPhysicalDeviceAccelerationStructureFeaturesKHR {
24292 VkStructureType sType;
24293 void* pNext;
24294 VkBool32 accelerationStructure;
24295 VkBool32 accelerationStructureCaptureReplay;
24296 VkBool32 accelerationStructureIndirectBuild;
24297 VkBool32 accelerationStructureHostCommands;
24298 VkBool32 descriptorBindingAccelerationStructureUpdateAfterBind;
24299} VkPhysicalDeviceAccelerationStructureFeaturesKHR;
24300
24301typedef struct VkPhysicalDeviceAccelerationStructurePropertiesKHR {
24302 VkStructureType sType;
24303 void* pNext;
24304 uint64_t maxGeometryCount;
24305 uint64_t maxInstanceCount;
24306 uint64_t maxPrimitiveCount;
24307 uint32_t maxPerStageDescriptorAccelerationStructures;
24308 uint32_t maxPerStageDescriptorUpdateAfterBindAccelerationStructures;
24309 uint32_t maxDescriptorSetAccelerationStructures;
24310 uint32_t maxDescriptorSetUpdateAfterBindAccelerationStructures;
24311 uint32_t minAccelerationStructureScratchOffsetAlignment;
24312} VkPhysicalDeviceAccelerationStructurePropertiesKHR;
24313
24314typedef struct VkAccelerationStructureDeviceAddressInfoKHR {
24315 VkStructureType sType;
24316 const void* pNext;
24317 VkAccelerationStructureKHR accelerationStructure;
24318} VkAccelerationStructureDeviceAddressInfoKHR;
24319
24320typedef struct VkAccelerationStructureVersionInfoKHR {
24321 VkStructureType sType;
24322 const void* pNext;
24323 const uint8_t* pVersionData;
24324} VkAccelerationStructureVersionInfoKHR;
24325
24326typedef struct VkCopyAccelerationStructureToMemoryInfoKHR {
24327 VkStructureType sType;
24328 const void* pNext;
24329 VkAccelerationStructureKHR src;
24330 VkDeviceOrHostAddressKHR dst;
24331 VkCopyAccelerationStructureModeKHR mode;
24332} VkCopyAccelerationStructureToMemoryInfoKHR;
24333
24334typedef struct VkCopyMemoryToAccelerationStructureInfoKHR {
24335 VkStructureType sType;
24336 const void* pNext;
24337 VkDeviceOrHostAddressConstKHR src;
24338 VkAccelerationStructureKHR dst;
24339 VkCopyAccelerationStructureModeKHR mode;
24340} VkCopyMemoryToAccelerationStructureInfoKHR;
24341
24342typedef struct VkCopyAccelerationStructureInfoKHR {
24343 VkStructureType sType;
24344 const void* pNext;
24345 VkAccelerationStructureKHR src;
24346 VkAccelerationStructureKHR dst;
24347 VkCopyAccelerationStructureModeKHR mode;
24348} VkCopyAccelerationStructureInfoKHR;
24349
24350typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureKHR)(VkDevice device, const VkAccelerationStructureCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureKHR* pAccelerationStructure);
24351typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureKHR)(VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator);
24352typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructuresKHR)(VkCommandBuffer commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
24353typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructuresIndirectKHR)(VkCommandBuffer commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkDeviceAddress* pIndirectDeviceAddresses, const uint32_t* pIndirectStrides, const uint32_t* const* ppMaxPrimitiveCounts);
24354typedef VkResult (VKAPI_PTR *PFN_vkBuildAccelerationStructuresKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
24355typedef VkResult (VKAPI_PTR *PFN_vkCopyAccelerationStructureKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureInfoKHR* pInfo);
24356typedef VkResult (VKAPI_PTR *PFN_vkCopyAccelerationStructureToMemoryKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
24357typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToAccelerationStructureKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
24358typedef VkResult (VKAPI_PTR *PFN_vkWriteAccelerationStructuresPropertiesKHR)(VkDevice device, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, size_t dataSize, void* pData, size_t stride);
24359typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo);
24360typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureToMemoryKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
24361typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
24362typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetAccelerationStructureDeviceAddressKHR)(VkDevice device, const VkAccelerationStructureDeviceAddressInfoKHR* pInfo);
24363typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesKHR)(VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
24364typedef void (VKAPI_PTR *PFN_vkGetDeviceAccelerationStructureCompatibilityKHR)(VkDevice device, const VkAccelerationStructureVersionInfoKHR* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility);
24365typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureBuildSizesKHR)(VkDevice device, VkAccelerationStructureBuildTypeKHR buildType, const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo, const uint32_t* pMaxPrimitiveCounts, VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo);
24366
24367#ifndef VK_NO_PROTOTYPES
24368#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24369VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureKHR(
24370 VkDevice device,
24371 const VkAccelerationStructureCreateInfoKHR* pCreateInfo,
24372 const VkAllocationCallbacks* pAllocator,
24373 VkAccelerationStructureKHR* pAccelerationStructure);
24374#endif
24375
24376#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24377VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureKHR(
24378 VkDevice device,
24379 VkAccelerationStructureKHR accelerationStructure,
24380 const VkAllocationCallbacks* pAllocator);
24381#endif
24382
24383#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24384VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructuresKHR(
24385 VkCommandBuffer commandBuffer,
24386 uint32_t infoCount,
24387 const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
24388 const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
24389#endif
24390
24391#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24392VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructuresIndirectKHR(
24393 VkCommandBuffer commandBuffer,
24394 uint32_t infoCount,
24395 const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
24396 const VkDeviceAddress* pIndirectDeviceAddresses,
24397 const uint32_t* pIndirectStrides,
24398 const uint32_t* const* ppMaxPrimitiveCounts);
24399#endif
24400
24401#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24402VKAPI_ATTR VkResult VKAPI_CALL vkBuildAccelerationStructuresKHR(
24403 VkDevice device,
24404 VkDeferredOperationKHR deferredOperation,
24405 uint32_t infoCount,
24406 const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
24407 const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
24408#endif
24409
24410#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24411VKAPI_ATTR VkResult VKAPI_CALL vkCopyAccelerationStructureKHR(
24412 VkDevice device,
24413 VkDeferredOperationKHR deferredOperation,
24414 const VkCopyAccelerationStructureInfoKHR* pInfo);
24415#endif
24416
24417#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24418VKAPI_ATTR VkResult VKAPI_CALL vkCopyAccelerationStructureToMemoryKHR(
24419 VkDevice device,
24420 VkDeferredOperationKHR deferredOperation,
24421 const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
24422#endif
24423
24424#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24425VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToAccelerationStructureKHR(
24426 VkDevice device,
24427 VkDeferredOperationKHR deferredOperation,
24428 const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
24429#endif
24430
24431#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24432VKAPI_ATTR VkResult VKAPI_CALL vkWriteAccelerationStructuresPropertiesKHR(
24433 VkDevice device,
24434 uint32_t accelerationStructureCount,
24435 const VkAccelerationStructureKHR* pAccelerationStructures,
24436 VkQueryType queryType,
24437 size_t dataSize,
24438 void* pData,
24439 size_t stride);
24440#endif
24441
24442#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24443VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureKHR(
24444 VkCommandBuffer commandBuffer,
24445 const VkCopyAccelerationStructureInfoKHR* pInfo);
24446#endif
24447
24448#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24449VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureToMemoryKHR(
24450 VkCommandBuffer commandBuffer,
24451 const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
24452#endif
24453
24454#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24455VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToAccelerationStructureKHR(
24456 VkCommandBuffer commandBuffer,
24457 const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
24458#endif
24459
24460#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24461VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetAccelerationStructureDeviceAddressKHR(
24462 VkDevice device,
24463 const VkAccelerationStructureDeviceAddressInfoKHR* pInfo);
24464#endif
24465
24466#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24467VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructuresPropertiesKHR(
24468 VkCommandBuffer commandBuffer,
24469 uint32_t accelerationStructureCount,
24470 const VkAccelerationStructureKHR* pAccelerationStructures,
24471 VkQueryType queryType,
24472 VkQueryPool queryPool,
24473 uint32_t firstQuery);
24474#endif
24475
24476#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24477VKAPI_ATTR void VKAPI_CALL vkGetDeviceAccelerationStructureCompatibilityKHR(
24478 VkDevice device,
24479 const VkAccelerationStructureVersionInfoKHR* pVersionInfo,
24480 VkAccelerationStructureCompatibilityKHR* pCompatibility);
24481#endif
24482
24483#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24484VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureBuildSizesKHR(
24485 VkDevice device,
24486 VkAccelerationStructureBuildTypeKHR buildType,
24487 const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo,
24488 const uint32_t* pMaxPrimitiveCounts,
24489 VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo);
24490#endif
24491#endif
24492
24493
24494// VK_KHR_ray_tracing_pipeline is a preprocessor guard. Do not pass it to API calls.
24495#define VK_KHR_ray_tracing_pipeline 1
24496#define VK_KHR_RAY_TRACING_PIPELINE_SPEC_VERSION 1
24497#define VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME "VK_KHR_ray_tracing_pipeline"
24498
24499typedef enum VkShaderGroupShaderKHR {
24500 VK_SHADER_GROUP_SHADER_GENERAL_KHR = 0,
24501 VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR = 1,
24502 VK_SHADER_GROUP_SHADER_ANY_HIT_KHR = 2,
24503 VK_SHADER_GROUP_SHADER_INTERSECTION_KHR = 3,
24504 VK_SHADER_GROUP_SHADER_MAX_ENUM_KHR = 0x7FFFFFFF
24505} VkShaderGroupShaderKHR;
24506typedef struct VkRayTracingShaderGroupCreateInfoKHR {
24507 VkStructureType sType;
24508 const void* pNext;
24509 VkRayTracingShaderGroupTypeKHR type;
24510 uint32_t generalShader;
24511 uint32_t closestHitShader;
24512 uint32_t anyHitShader;
24513 uint32_t intersectionShader;
24514 const void* pShaderGroupCaptureReplayHandle;
24515} VkRayTracingShaderGroupCreateInfoKHR;
24516
24517typedef struct VkRayTracingPipelineInterfaceCreateInfoKHR {
24518 VkStructureType sType;
24519 const void* pNext;
24520 uint32_t maxPipelineRayPayloadSize;
24521 uint32_t maxPipelineRayHitAttributeSize;
24522} VkRayTracingPipelineInterfaceCreateInfoKHR;
24523
24524typedef struct VkRayTracingPipelineCreateInfoKHR {
24525 VkStructureType sType;
24526 const void* pNext;
24527 VkPipelineCreateFlags flags;
24528 uint32_t stageCount;
24529 const VkPipelineShaderStageCreateInfo* pStages;
24530 uint32_t groupCount;
24531 const VkRayTracingShaderGroupCreateInfoKHR* pGroups;
24532 uint32_t maxPipelineRayRecursionDepth;
24533 const VkPipelineLibraryCreateInfoKHR* pLibraryInfo;
24534 const VkRayTracingPipelineInterfaceCreateInfoKHR* pLibraryInterface;
24535 const VkPipelineDynamicStateCreateInfo* pDynamicState;
24536 VkPipelineLayout layout;
24537 VkPipeline basePipelineHandle;
24538 int32_t basePipelineIndex;
24539} VkRayTracingPipelineCreateInfoKHR;
24540
24541typedef struct VkPhysicalDeviceRayTracingPipelineFeaturesKHR {
24542 VkStructureType sType;
24543 void* pNext;
24544 VkBool32 rayTracingPipeline;
24545 VkBool32 rayTracingPipelineShaderGroupHandleCaptureReplay;
24546 VkBool32 rayTracingPipelineShaderGroupHandleCaptureReplayMixed;
24547 VkBool32 rayTracingPipelineTraceRaysIndirect;
24548 VkBool32 rayTraversalPrimitiveCulling;
24549} VkPhysicalDeviceRayTracingPipelineFeaturesKHR;
24550
24551typedef struct VkPhysicalDeviceRayTracingPipelinePropertiesKHR {
24552 VkStructureType sType;
24553 void* pNext;
24554 uint32_t shaderGroupHandleSize;
24555 uint32_t maxRayRecursionDepth;
24556 uint32_t maxShaderGroupStride;
24557 uint32_t shaderGroupBaseAlignment;
24558 uint32_t shaderGroupHandleCaptureReplaySize;
24559 uint32_t maxRayDispatchInvocationCount;
24560 uint32_t shaderGroupHandleAlignment;
24561 uint32_t maxRayHitAttributeSize;
24562} VkPhysicalDeviceRayTracingPipelinePropertiesKHR;
24563
24564typedef struct VkTraceRaysIndirectCommandKHR {
24565 uint32_t width;
24566 uint32_t height;
24567 uint32_t depth;
24568} VkTraceRaysIndirectCommandKHR;
24569
24570typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysKHR)(VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, uint32_t width, uint32_t height, uint32_t depth);
24571typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
24572typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
24573typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysIndirectKHR)(VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, VkDeviceAddress indirectDeviceAddress);
24574typedef VkDeviceSize (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupStackSizeKHR)(VkDevice device, VkPipeline pipeline, uint32_t group, VkShaderGroupShaderKHR groupShader);
24575typedef void (VKAPI_PTR *PFN_vkCmdSetRayTracingPipelineStackSizeKHR)(VkCommandBuffer commandBuffer, uint32_t pipelineStackSize);
24576
24577#ifndef VK_NO_PROTOTYPES
24578#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24579VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysKHR(
24580 VkCommandBuffer commandBuffer,
24581 const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable,
24582 const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable,
24583 const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable,
24584 const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable,
24585 uint32_t width,
24586 uint32_t height,
24587 uint32_t depth);
24588#endif
24589
24590#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24591VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesKHR(
24592 VkDevice device,
24593 VkDeferredOperationKHR deferredOperation,
24594 VkPipelineCache pipelineCache,
24595 uint32_t createInfoCount,
24596 const VkRayTracingPipelineCreateInfoKHR* pCreateInfos,
24597 const VkAllocationCallbacks* pAllocator,
24598 VkPipeline* pPipelines);
24599#endif
24600
24601#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24602VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(
24603 VkDevice device,
24604 VkPipeline pipeline,
24605 uint32_t firstGroup,
24606 uint32_t groupCount,
24607 size_t dataSize,
24608 void* pData);
24609#endif
24610
24611#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24612VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysIndirectKHR(
24613 VkCommandBuffer commandBuffer,
24614 const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable,
24615 const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable,
24616 const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable,
24617 const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable,
24618 VkDeviceAddress indirectDeviceAddress);
24619#endif
24620
24621#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24622VKAPI_ATTR VkDeviceSize VKAPI_CALL vkGetRayTracingShaderGroupStackSizeKHR(
24623 VkDevice device,
24624 VkPipeline pipeline,
24625 uint32_t group,
24626 VkShaderGroupShaderKHR groupShader);
24627#endif
24628
24629#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24630VKAPI_ATTR void VKAPI_CALL vkCmdSetRayTracingPipelineStackSizeKHR(
24631 VkCommandBuffer commandBuffer,
24632 uint32_t pipelineStackSize);
24633#endif
24634#endif
24635
24636
24637// VK_KHR_ray_query is a preprocessor guard. Do not pass it to API calls.
24638#define VK_KHR_ray_query 1
24639#define VK_KHR_RAY_QUERY_SPEC_VERSION 1
24640#define VK_KHR_RAY_QUERY_EXTENSION_NAME "VK_KHR_ray_query"
24641typedef struct VkPhysicalDeviceRayQueryFeaturesKHR {
24642 VkStructureType sType;
24643 void* pNext;
24644 VkBool32 rayQuery;
24645} VkPhysicalDeviceRayQueryFeaturesKHR;
24646
24647
24648
24649// VK_EXT_mesh_shader is a preprocessor guard. Do not pass it to API calls.
24650#define VK_EXT_mesh_shader 1
24651#define VK_EXT_MESH_SHADER_SPEC_VERSION 1
24652#define VK_EXT_MESH_SHADER_EXTENSION_NAME "VK_EXT_mesh_shader"
24653typedef struct VkPhysicalDeviceMeshShaderFeaturesEXT {
24654 VkStructureType sType;
24655 void* pNext;
24656 VkBool32 taskShader;
24657 VkBool32 meshShader;
24658 VkBool32 multiviewMeshShader;
24659 VkBool32 primitiveFragmentShadingRateMeshShader;
24660 VkBool32 meshShaderQueries;
24661} VkPhysicalDeviceMeshShaderFeaturesEXT;
24662
24663typedef struct VkPhysicalDeviceMeshShaderPropertiesEXT {
24664 VkStructureType sType;
24665 void* pNext;
24666 uint32_t maxTaskWorkGroupTotalCount;
24667 uint32_t maxTaskWorkGroupCount[3];
24668 uint32_t maxTaskWorkGroupInvocations;
24669 uint32_t maxTaskWorkGroupSize[3];
24670 uint32_t maxTaskPayloadSize;
24671 uint32_t maxTaskSharedMemorySize;
24672 uint32_t maxTaskPayloadAndSharedMemorySize;
24673 uint32_t maxMeshWorkGroupTotalCount;
24674 uint32_t maxMeshWorkGroupCount[3];
24675 uint32_t maxMeshWorkGroupInvocations;
24676 uint32_t maxMeshWorkGroupSize[3];
24677 uint32_t maxMeshSharedMemorySize;
24678 uint32_t maxMeshPayloadAndSharedMemorySize;
24679 uint32_t maxMeshOutputMemorySize;
24680 uint32_t maxMeshPayloadAndOutputMemorySize;
24681 uint32_t maxMeshOutputComponents;
24682 uint32_t maxMeshOutputVertices;
24683 uint32_t maxMeshOutputPrimitives;
24684 uint32_t maxMeshOutputLayers;
24685 uint32_t maxMeshMultiviewViewCount;
24686 uint32_t meshOutputPerVertexGranularity;
24687 uint32_t meshOutputPerPrimitiveGranularity;
24688 uint32_t maxPreferredTaskWorkGroupInvocations;
24689 uint32_t maxPreferredMeshWorkGroupInvocations;
24690 VkBool32 prefersLocalInvocationVertexOutput;
24691 VkBool32 prefersLocalInvocationPrimitiveOutput;
24692 VkBool32 prefersCompactVertexOutput;
24693 VkBool32 prefersCompactPrimitiveOutput;
24694} VkPhysicalDeviceMeshShaderPropertiesEXT;
24695
24696typedef struct VkDrawMeshTasksIndirectCommandEXT {
24697 uint32_t groupCountX;
24698 uint32_t groupCountY;
24699 uint32_t groupCountZ;
24700} VkDrawMeshTasksIndirectCommandEXT;
24701
24702typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksEXT)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
24703typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectEXT)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
24704typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectCountEXT)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
24705
24706#ifndef VK_NO_PROTOTYPES
24707#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24708VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksEXT(
24709 VkCommandBuffer commandBuffer,
24710 uint32_t groupCountX,
24711 uint32_t groupCountY,
24712 uint32_t groupCountZ);
24713#endif
24714
24715#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24716VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectEXT(
24717 VkCommandBuffer commandBuffer,
24718 VkBuffer buffer,
24719 VkDeviceSize offset,
24720 uint32_t drawCount,
24721 uint32_t stride);
24722#endif
24723
24724#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24725VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectCountEXT(
24726 VkCommandBuffer commandBuffer,
24727 VkBuffer buffer,
24728 VkDeviceSize offset,
24729 VkBuffer countBuffer,
24730 VkDeviceSize countBufferOffset,
24731 uint32_t maxDrawCount,
24732 uint32_t stride);
24733#endif
24734#endif
24735
24736#ifdef __cplusplus
24737}
24738#endif
24739
24740#endif
24741