1#ifndef VULKAN_CORE_H_
2#define VULKAN_CORE_H_ 1
3
4/*
5** Copyright 2015-2026 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 350
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_HANDLE(VkInstance)
100VK_DEFINE_HANDLE(VkPhysicalDevice)
101VK_DEFINE_HANDLE(VkDevice)
102VK_DEFINE_HANDLE(VkQueue)
103VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSemaphore)
104VK_DEFINE_HANDLE(VkCommandBuffer)
105VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFence)
106VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeviceMemory)
107VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer)
108VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImage)
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(VkPipeline)
119VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineLayout)
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_DRIVER_PROPERTIES = 1000196000,
322 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES = 49,
323 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES = 50,
324 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES = 51,
325 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES = 52,
326 VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO = 1000147000,
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_TEXEL_BUFFER_DESCRIPTOR_INFO_EXT = 1000135000,
659 VK_STRUCTURE_TYPE_IMAGE_DESCRIPTOR_INFO_EXT = 1000135001,
660 VK_STRUCTURE_TYPE_RESOURCE_DESCRIPTOR_INFO_EXT = 1000135002,
661 VK_STRUCTURE_TYPE_BIND_HEAP_INFO_EXT = 1000135003,
662 VK_STRUCTURE_TYPE_PUSH_DATA_INFO_EXT = 1000135004,
663 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_AND_BINDING_MAPPING_EXT = 1000135005,
664 VK_STRUCTURE_TYPE_SHADER_DESCRIPTOR_SET_AND_BINDING_MAPPING_INFO_EXT = 1000135006,
665 VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DATA_CREATE_INFO_EXT = 1000135007,
666 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_HEAP_PROPERTIES_EXT = 1000135008,
667 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_HEAP_FEATURES_EXT = 1000135009,
668 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_DESCRIPTOR_HEAP_INFO_EXT = 1000135010,
669 VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_INDEX_CREATE_INFO_EXT = 1000135011,
670 VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_PUSH_DATA_TOKEN_NV = 1000135012,
671 VK_STRUCTURE_TYPE_SUBSAMPLED_IMAGE_FORMAT_PROPERTIES_EXT = 1000135013,
672 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_HEAP_TENSOR_PROPERTIES_ARM = 1000135014,
673 VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD = 1000044008,
674 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_BFLOAT16_FEATURES_KHR = 1000141000,
675 VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000,
676 VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001,
677 VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002,
678 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003,
679 VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004,
680 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000,
681 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001,
682 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002,
683 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000,
684 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR = 1000150007,
685 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR = 1000150000,
686 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR = 1000150002,
687 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR = 1000150003,
688 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR = 1000150004,
689 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR = 1000150005,
690 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR = 1000150006,
691 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR = 1000150009,
692 VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR = 1000150010,
693 VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR = 1000150011,
694 VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR = 1000150012,
695 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR = 1000150013,
696 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR = 1000150014,
697 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR = 1000150017,
698 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR = 1000150020,
699 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR = 1000347000,
700 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR = 1000347001,
701 VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR = 1000150015,
702 VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR = 1000150016,
703 VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR = 1000150018,
704 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR = 1000348013,
705 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000,
706 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV = 1000154000,
707 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV = 1000154001,
708 VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT = 1000158000,
709 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT = 1000158002,
710 VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT = 1000158003,
711 VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT = 1000158004,
712 VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158005,
713 VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT = 1000158006,
714 VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000,
715 VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001,
716#ifdef VK_ENABLE_BETA_EXTENSIONS
717 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR = 1000163000,
718#endif
719#ifdef VK_ENABLE_BETA_EXTENSIONS
720 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR = 1000163001,
721#endif
722 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV = 1000164000,
723 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV = 1000164001,
724 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV = 1000164002,
725 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV = 1000164005,
726 VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV = 1000165000,
727 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV = 1000165001,
728 VK_STRUCTURE_TYPE_GEOMETRY_NV = 1000165003,
729 VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV = 1000165004,
730 VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV = 1000165005,
731 VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV = 1000165006,
732 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV = 1000165007,
733 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV = 1000165008,
734 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV = 1000165009,
735 VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV = 1000165011,
736 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV = 1000165012,
737 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV = 1000166000,
738 VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV = 1000166001,
739 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT = 1000170000,
740 VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT = 1000170001,
741 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_CONVERSION_FEATURES_QCOM = 1000172000,
742 VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000,
743 VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001,
744 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002,
745 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR = 1000181000,
746 VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = 1000183000,
747 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000,
748 VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR = 1000187000,
749 VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000187001,
750 VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR = 1000187002,
751 VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR = 1000187003,
752 VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR = 1000187004,
753 VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR = 1000187005,
754 VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD = 1000189000,
755 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000,
756 VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP = 1000191000,
757 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = 1000202000,
758 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = 1000202001,
759 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = 1000204000,
760 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = 1000205000,
761 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = 1000205002,
762 VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000,
763 VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001,
764 VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV = 1000314008,
765 VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV = 1000314009,
766 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_TIMING_FEATURES_EXT = 1000208000,
767 VK_STRUCTURE_TYPE_SWAPCHAIN_TIMING_PROPERTIES_EXT = 1000208001,
768 VK_STRUCTURE_TYPE_SWAPCHAIN_TIME_DOMAIN_PROPERTIES_EXT = 1000208002,
769 VK_STRUCTURE_TYPE_PRESENT_TIMINGS_INFO_EXT = 1000208003,
770 VK_STRUCTURE_TYPE_PRESENT_TIMING_INFO_EXT = 1000208004,
771 VK_STRUCTURE_TYPE_PAST_PRESENTATION_TIMING_INFO_EXT = 1000208005,
772 VK_STRUCTURE_TYPE_PAST_PRESENTATION_TIMING_PROPERTIES_EXT = 1000208006,
773 VK_STRUCTURE_TYPE_PAST_PRESENTATION_TIMING_EXT = 1000208007,
774 VK_STRUCTURE_TYPE_PRESENT_TIMING_SURFACE_CAPABILITIES_EXT = 1000208008,
775 VK_STRUCTURE_TYPE_SWAPCHAIN_CALIBRATED_TIMESTAMP_INFO_EXT = 1000208009,
776 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL = 1000209000,
777 VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL = 1000210000,
778 VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL = 1000210001,
779 VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL = 1000210002,
780 VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL = 1000210003,
781 VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL = 1000210004,
782 VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL = 1000210005,
783 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT = 1000212000,
784 VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD = 1000213000,
785 VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD = 1000213001,
786 VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA = 1000214000,
787 VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT = 1000217000,
788 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT = 1000218000,
789 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT = 1000218001,
790 VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT = 1000218002,
791 VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT = 1000044007,
792 VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000226000,
793 VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR = 1000226001,
794 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR = 1000226002,
795 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR = 1000226003,
796 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR = 1000226004,
797 VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000044006,
798 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD = 1000227000,
799 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD = 1000229000,
800 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CONSTANT_DATA_FEATURES_KHR = 1000231000,
801 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ABORT_FEATURES_KHR = 1000233000,
802 VK_STRUCTURE_TYPE_DEVICE_FAULT_SHADER_ABORT_MESSAGE_INFO_KHR = 1000233001,
803 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ABORT_PROPERTIES_KHR = 1000233002,
804 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT = 1000234000,
805 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR = 1000235000,
806 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT = 1000237000,
807 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT = 1000238000,
808 VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT = 1000238001,
809 VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR = 1000239000,
810 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV = 1000240000,
811 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT = 1000244000,
812 VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT = 1000244002,
813 VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT = 1000247000,
814 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR = 1000248000,
815 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV = 1000249000,
816 VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249001,
817 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249002,
818 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV = 1000250000,
819 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV = 1000250001,
820 VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV = 1000250002,
821 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT = 1000251000,
822 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT = 1000252000,
823 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT = 1000254000,
824 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT = 1000254001,
825 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT = 1000254002,
826 VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT = 1000255000,
827 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT = 1000255002,
828 VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT = 1000255001,
829 VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT = 1000256000,
830 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT = 1000260000,
831 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT = 1000267000,
832 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR = 1000269000,
833 VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR = 1000269001,
834 VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR = 1000269002,
835 VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR = 1000269003,
836 VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = 1000269004,
837 VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = 1000269005,
838 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT = 1000272000,
839 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT = 1000272001,
840 VK_STRUCTURE_TYPE_MEMORY_MAP_PLACED_INFO_EXT = 1000272002,
841 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT = 1000273000,
842 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV = 1000277000,
843 VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV = 1000277001,
844 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV = 1000277002,
845 VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV = 1000277003,
846 VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV = 1000277004,
847 VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV = 1000277005,
848 VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV = 1000277006,
849 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV = 1000277007,
850 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV = 1000278000,
851 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV = 1000278001,
852 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = 1000281000,
853 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM = 1000282000,
854 VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM = 1000282001,
855 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT = 1000283000,
856 VK_STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT = 1000283001,
857 VK_STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT = 1000283002,
858 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT = 1000284000,
859 VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT = 1000284001,
860 VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT = 1000284002,
861 VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT = 1000287000,
862 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT = 1000287001,
863 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT = 1000287002,
864 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_3D_FEATURES_EXT = 1000288000,
865 VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR = 1000290000,
866 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV = 1000292000,
867 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV = 1000292001,
868 VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV = 1000292002,
869 VK_STRUCTURE_TYPE_PRESENT_ID_KHR = 1000294000,
870 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR = 1000294001,
871 VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR = 1000299000,
872 VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR = 1000299001,
873 VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR = 1000299002,
874 VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR = 1000299003,
875 VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR = 1000299004,
876 VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR = 1000299005,
877 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR = 1000299006,
878 VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHR = 1000299007,
879 VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR = 1000299008,
880 VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHR = 1000299009,
881 VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR = 1000299010,
882 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = 1000300000,
883 VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = 1000300001,
884 VK_STRUCTURE_TYPE_PERF_HINT_INFO_QCOM = 1000302000,
885 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_QUEUE_PERF_HINT_FEATURES_QCOM = 1000302001,
886 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_QUEUE_PERF_HINT_PROPERTIES_QCOM = 1000302002,
887#ifdef VK_ENABLE_BETA_EXTENSIONS
888 VK_STRUCTURE_TYPE_CUDA_MODULE_CREATE_INFO_NV = 1000307000,
889#endif
890#ifdef VK_ENABLE_BETA_EXTENSIONS
891 VK_STRUCTURE_TYPE_CUDA_FUNCTION_CREATE_INFO_NV = 1000307001,
892#endif
893#ifdef VK_ENABLE_BETA_EXTENSIONS
894 VK_STRUCTURE_TYPE_CUDA_LAUNCH_INFO_NV = 1000307002,
895#endif
896#ifdef VK_ENABLE_BETA_EXTENSIONS
897 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV = 1000307003,
898#endif
899#ifdef VK_ENABLE_BETA_EXTENSIONS
900 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV = 1000307004,
901#endif
902 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_SHADING_FEATURES_QCOM = 1000309000,
903 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_SHADING_PROPERTIES_QCOM = 1000309001,
904 VK_STRUCTURE_TYPE_RENDER_PASS_TILE_SHADING_CREATE_INFO_QCOM = 1000309002,
905 VK_STRUCTURE_TYPE_PER_TILE_BEGIN_INFO_QCOM = 1000309003,
906 VK_STRUCTURE_TYPE_PER_TILE_END_INFO_QCOM = 1000309004,
907 VK_STRUCTURE_TYPE_DISPATCH_TILE_INFO_QCOM = 1000309005,
908 VK_STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV = 1000310000,
909 VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT = 1000311000,
910 VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT = 1000311001,
911 VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT = 1000311002,
912 VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT = 1000311003,
913 VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT = 1000311004,
914 VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT = 1000311005,
915 VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT = 1000311006,
916 VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT = 1000311007,
917 VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT = 1000311008,
918 VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT = 1000311009,
919 VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311010,
920 VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311011,
921 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT = 1000316000,
922 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT = 1000316001,
923 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT = 1000316002,
924 VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT = 1000316003,
925 VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT = 1000316004,
926 VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316005,
927 VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316006,
928 VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316007,
929 VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316008,
930 VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT = 1000316010,
931 VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT = 1000316011,
932 VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT = 1000316012,
933 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316009,
934 VK_STRUCTURE_TYPE_DEVICE_MEMORY_COPY_KHR = 1000318000,
935 VK_STRUCTURE_TYPE_COPY_DEVICE_MEMORY_INFO_KHR = 1000318001,
936 VK_STRUCTURE_TYPE_DEVICE_MEMORY_IMAGE_COPY_KHR = 1000318002,
937 VK_STRUCTURE_TYPE_COPY_DEVICE_MEMORY_IMAGE_INFO_KHR = 1000318003,
938 VK_STRUCTURE_TYPE_MEMORY_RANGE_BARRIERS_INFO_KHR = 1000318004,
939 VK_STRUCTURE_TYPE_MEMORY_RANGE_BARRIER_KHR = 1000318005,
940 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_ADDRESS_COMMANDS_FEATURES_KHR = 1000318006,
941 VK_STRUCTURE_TYPE_BIND_INDEX_BUFFER_3_INFO_KHR = 1000318007,
942 VK_STRUCTURE_TYPE_BIND_VERTEX_BUFFER_3_INFO_KHR = 1000318008,
943 VK_STRUCTURE_TYPE_DRAW_INDIRECT_2_INFO_KHR = 1000318009,
944 VK_STRUCTURE_TYPE_DRAW_INDIRECT_COUNT_2_INFO_KHR = 1000318010,
945 VK_STRUCTURE_TYPE_DISPATCH_INDIRECT_2_INFO_KHR = 1000318011,
946 VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_2_EXT = 1000318012,
947 VK_STRUCTURE_TYPE_BIND_TRANSFORM_FEEDBACK_BUFFER_2_INFO_EXT = 1000318013,
948 VK_STRUCTURE_TYPE_MEMORY_MARKER_INFO_AMD = 1000318014,
949 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_2_KHR = 1000318015,
950 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT = 1000320000,
951 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT = 1000320001,
952 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT = 1000320002,
953 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD = 1000321000,
954 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR = 1000203000,
955 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR = 1000322000,
956 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR = 1000323000,
957 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV = 1000326000,
958 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV = 1000326001,
959 VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV = 1000326002,
960 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV = 1000327000,
961 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV = 1000327001,
962 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV = 1000327002,
963 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT = 1000328000,
964 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT = 1000328001,
965 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT = 1000330000,
966 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = 1000332000,
967 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = 1000332001,
968 VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM = 1000333000,
969 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR = 1000336000,
970 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT = 1000338000,
971 VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT = 1000338001,
972 VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT = 1000338004,
973 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT = 1000339000,
974 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT = 1000340000,
975 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT = 1000341000,
976 VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT = 1000341001,
977 VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT = 1000341002,
978 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT = 1000344000,
979 VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT = 1000346000,
980 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT = 1000352000,
981 VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT = 1000352001,
982 VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT = 1000352002,
983 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT = 1000353000,
984 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT = 1000354000,
985 VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT = 1000354001,
986 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT = 1000355000,
987 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT = 1000355001,
988 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT = 1000356000,
989 VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364000,
990 VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA = 1000364001,
991 VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364002,
992 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA = 1000365000,
993 VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000365001,
994 VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA = 1000366000,
995 VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA = 1000366001,
996 VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA = 1000366002,
997 VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA = 1000366003,
998 VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA = 1000366004,
999 VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA = 1000366005,
1000 VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA = 1000366006,
1001 VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA = 1000366007,
1002 VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA = 1000366008,
1003 VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA = 1000366009,
1004 VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI = 1000369000,
1005 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI = 1000369001,
1006 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI = 1000369002,
1007 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI = 1000370000,
1008 VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV = 1000371000,
1009 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV = 1000371001,
1010 VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT = 1000372000,
1011 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT = 1000372001,
1012 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT = 1000375000,
1013 VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT = 1000375001,
1014 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT = 1000376000,
1015 VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT = 1000376001,
1016 VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT = 1000376002,
1017 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = 1000377000,
1018 VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX = 1000378000,
1019 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = 1000381000,
1020 VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT = 1000381001,
1021 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT = 1000382000,
1022 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR = 1000386000,
1023 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_UNTYPED_POINTERS_FEATURES_KHR = 1000387000,
1024 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_RGB_CONVERSION_FEATURES_VALVE = 1000390000,
1025 VK_STRUCTURE_TYPE_VIDEO_ENCODE_RGB_CONVERSION_CAPABILITIES_VALVE = 1000390001,
1026 VK_STRUCTURE_TYPE_VIDEO_ENCODE_PROFILE_RGB_CONVERSION_INFO_VALVE = 1000390002,
1027 VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_RGB_CONVERSION_CREATE_INFO_VALVE = 1000390003,
1028 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT = 1000391000,
1029 VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT = 1000391001,
1030 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT = 1000392000,
1031 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT = 1000392001,
1032 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT = 1000393000,
1033 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT = 1000395000,
1034 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT = 1000395001,
1035 VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT = 1000396000,
1036 VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT = 1000396001,
1037 VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT = 1000396002,
1038 VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT = 1000396003,
1039 VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT = 1000396004,
1040 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT = 1000396005,
1041 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT = 1000396006,
1042 VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT = 1000396007,
1043 VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT = 1000396008,
1044 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT = 1000396009,
1045#ifdef VK_ENABLE_BETA_EXTENSIONS
1046 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV = 1000397000,
1047#endif
1048#ifdef VK_ENABLE_BETA_EXTENSIONS
1049 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV = 1000397001,
1050#endif
1051#ifdef VK_ENABLE_BETA_EXTENSIONS
1052 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV = 1000397002,
1053#endif
1054 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI = 1000404000,
1055 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI = 1000404001,
1056 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI = 1000404002,
1057 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT = 1000411000,
1058 VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT = 1000411001,
1059 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT = 1000412000,
1060 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM = 1000415000,
1061 VK_STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM = 1000417000,
1062 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM = 1000417001,
1063 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM = 1000417002,
1064 VK_STRUCTURE_TYPE_DISPATCH_PARAMETERS_ARM = 1000417003,
1065 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_DISPATCH_PARAMETERS_PROPERTIES_ARM = 1000417004,
1066 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT = 1000418000,
1067 VK_STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT = 1000418001,
1068 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE = 1000420000,
1069 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE = 1000420001,
1070 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE = 1000420002,
1071 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT = 1000422000,
1072 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM = 1000424000,
1073 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM = 1000424001,
1074 VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM = 1000424002,
1075 VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM = 1000424003,
1076 VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM = 1000424004,
1077 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV = 1000426000,
1078 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV = 1000428000,
1079 VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV = 1000428001,
1080 VK_STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV = 1000428002,
1081 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_LINEAR_SWEPT_SPHERES_FEATURES_NV = 1000429008,
1082 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_LINEAR_SWEPT_SPHERES_DATA_NV = 1000429009,
1083 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_SPHERES_DATA_NV = 1000429010,
1084 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV = 1000430000,
1085 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR = 1000434000,
1086 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT = 1000437000,
1087 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM = 1000440000,
1088 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM = 1000440001,
1089 VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM = 1000440002,
1090 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT = 1000451000,
1091 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT = 1000451001,
1092 VK_STRUCTURE_TYPE_NATIVE_BUFFER_USAGE_OHOS = 1000452000,
1093 VK_STRUCTURE_TYPE_NATIVE_BUFFER_PROPERTIES_OHOS = 1000452001,
1094 VK_STRUCTURE_TYPE_NATIVE_BUFFER_FORMAT_PROPERTIES_OHOS = 1000452002,
1095 VK_STRUCTURE_TYPE_IMPORT_NATIVE_BUFFER_INFO_OHOS = 1000452003,
1096 VK_STRUCTURE_TYPE_MEMORY_GET_NATIVE_BUFFER_INFO_OHOS = 1000452004,
1097 VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_OHOS = 1000452005,
1098 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT = 1000453000,
1099 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT = 1000455000,
1100 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT = 1000455001,
1101 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT = 1000458000,
1102 VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT = 1000458001,
1103 VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT = 1000458002,
1104 VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT = 1000458003,
1105 VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG = 1000459000,
1106 VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG = 1000459001,
1107 VK_STRUCTURE_TYPE_TENSOR_CREATE_INFO_ARM = 1000460000,
1108 VK_STRUCTURE_TYPE_TENSOR_VIEW_CREATE_INFO_ARM = 1000460001,
1109 VK_STRUCTURE_TYPE_BIND_TENSOR_MEMORY_INFO_ARM = 1000460002,
1110 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_TENSOR_ARM = 1000460003,
1111 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TENSOR_PROPERTIES_ARM = 1000460004,
1112 VK_STRUCTURE_TYPE_TENSOR_FORMAT_PROPERTIES_ARM = 1000460005,
1113 VK_STRUCTURE_TYPE_TENSOR_DESCRIPTION_ARM = 1000460006,
1114 VK_STRUCTURE_TYPE_TENSOR_MEMORY_REQUIREMENTS_INFO_ARM = 1000460007,
1115 VK_STRUCTURE_TYPE_TENSOR_MEMORY_BARRIER_ARM = 1000460008,
1116 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TENSOR_FEATURES_ARM = 1000460009,
1117 VK_STRUCTURE_TYPE_DEVICE_TENSOR_MEMORY_REQUIREMENTS_ARM = 1000460010,
1118 VK_STRUCTURE_TYPE_COPY_TENSOR_INFO_ARM = 1000460011,
1119 VK_STRUCTURE_TYPE_TENSOR_COPY_ARM = 1000460012,
1120 VK_STRUCTURE_TYPE_TENSOR_DEPENDENCY_INFO_ARM = 1000460013,
1121 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_TENSOR_ARM = 1000460014,
1122 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_TENSOR_INFO_ARM = 1000460015,
1123 VK_STRUCTURE_TYPE_EXTERNAL_TENSOR_PROPERTIES_ARM = 1000460016,
1124 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_TENSOR_CREATE_INFO_ARM = 1000460017,
1125 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_TENSOR_FEATURES_ARM = 1000460018,
1126 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_TENSOR_PROPERTIES_ARM = 1000460019,
1127 VK_STRUCTURE_TYPE_DESCRIPTOR_GET_TENSOR_INFO_ARM = 1000460020,
1128 VK_STRUCTURE_TYPE_TENSOR_CAPTURE_DESCRIPTOR_DATA_INFO_ARM = 1000460021,
1129 VK_STRUCTURE_TYPE_TENSOR_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_ARM = 1000460022,
1130 VK_STRUCTURE_TYPE_FRAME_BOUNDARY_TENSORS_ARM = 1000460023,
1131 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT = 1000462000,
1132 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT = 1000462001,
1133 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT = 1000462002,
1134 VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT = 1000462003,
1135 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT = 1000342000,
1136 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV = 1000464000,
1137 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV = 1000464001,
1138 VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV = 1000464002,
1139 VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV = 1000464003,
1140 VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV = 1000464004,
1141 VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV = 1000464005,
1142 VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV = 1000464010,
1143 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT = 1000465000,
1144 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID = 1000468000,
1145 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID = 1000468001,
1146 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID = 1000468002,
1147 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD = 1000476000,
1148 VK_STRUCTURE_TYPE_ANTI_LAG_DATA_AMD = 1000476001,
1149 VK_STRUCTURE_TYPE_ANTI_LAG_PRESENTATION_INFO_AMD = 1000476002,
1150#ifdef VK_ENABLE_BETA_EXTENSIONS
1151 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DENSE_GEOMETRY_FORMAT_FEATURES_AMDX = 1000478000,
1152#endif
1153#ifdef VK_ENABLE_BETA_EXTENSIONS
1154 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DENSE_GEOMETRY_FORMAT_TRIANGLES_DATA_AMDX = 1000478001,
1155#endif
1156 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_ID_2_KHR = 1000479000,
1157 VK_STRUCTURE_TYPE_PRESENT_ID_2_KHR = 1000479001,
1158 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_2_FEATURES_KHR = 1000479002,
1159 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_WAIT_2_KHR = 1000480000,
1160 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_2_FEATURES_KHR = 1000480001,
1161 VK_STRUCTURE_TYPE_PRESENT_WAIT_2_INFO_KHR = 1000480002,
1162 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR = 1000481000,
1163 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT = 1000482000,
1164 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT = 1000482001,
1165 VK_STRUCTURE_TYPE_SHADER_CREATE_INFO_EXT = 1000482002,
1166 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR = 1000483000,
1167 VK_STRUCTURE_TYPE_PIPELINE_BINARY_CREATE_INFO_KHR = 1000483001,
1168 VK_STRUCTURE_TYPE_PIPELINE_BINARY_INFO_KHR = 1000483002,
1169 VK_STRUCTURE_TYPE_PIPELINE_BINARY_KEY_KHR = 1000483003,
1170 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR = 1000483004,
1171 VK_STRUCTURE_TYPE_RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR = 1000483005,
1172 VK_STRUCTURE_TYPE_PIPELINE_BINARY_DATA_INFO_KHR = 1000483006,
1173 VK_STRUCTURE_TYPE_PIPELINE_CREATE_INFO_KHR = 1000483007,
1174 VK_STRUCTURE_TYPE_DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR = 1000483008,
1175 VK_STRUCTURE_TYPE_PIPELINE_BINARY_HANDLES_INFO_KHR = 1000483009,
1176 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM = 1000484000,
1177 VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM = 1000484001,
1178 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC = 1000485000,
1179 VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC = 1000485001,
1180 VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_KHR = 1000274000,
1181 VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_KHR = 1000274001,
1182 VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_KHR = 1000274002,
1183 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_KHR = 1000275000,
1184 VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_KHR = 1000275001,
1185 VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_KHR = 1000275002,
1186 VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_KHR = 1000275003,
1187 VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_KHR = 1000275004,
1188 VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_KHR = 1000275005,
1189 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM = 1000488000,
1190 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV = 1000490000,
1191 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV = 1000490001,
1192 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_VECTOR_FEATURES_NV = 1000491000,
1193 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_VECTOR_PROPERTIES_NV = 1000491001,
1194 VK_STRUCTURE_TYPE_COOPERATIVE_VECTOR_PROPERTIES_NV = 1000491002,
1195 VK_STRUCTURE_TYPE_CONVERT_COOPERATIVE_VECTOR_MATRIX_INFO_NV = 1000491004,
1196 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV = 1000492000,
1197 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV = 1000492001,
1198 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT = 1000351000,
1199 VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT = 1000351002,
1200 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT = 1000495000,
1201 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT = 1000495001,
1202 VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT = 1000496000,
1203 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM = 1000497000,
1204 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM = 1000497001,
1205 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT = 1000498000,
1206 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT = 1000499000,
1207 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INTERNALLY_SYNCHRONIZED_QUEUES_FEATURES_KHR = 1000504000,
1208 VK_STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV = 1000505000,
1209 VK_STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV = 1000505001,
1210 VK_STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV = 1000505002,
1211 VK_STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV = 1000505003,
1212 VK_STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV = 1000505004,
1213 VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV = 1000505005,
1214 VK_STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV = 1000505006,
1215 VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV = 1000505007,
1216 VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV = 1000505008,
1217 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR = 1000506000,
1218 VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR = 1000506001,
1219 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR = 1000506002,
1220 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_CREATE_INFO_ARM = 1000507000,
1221 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_CREATE_INFO_ARM = 1000507001,
1222 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_RESOURCE_INFO_ARM = 1000507002,
1223 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_CONSTANT_ARM = 1000507003,
1224 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_MEMORY_REQUIREMENTS_INFO_ARM = 1000507004,
1225 VK_STRUCTURE_TYPE_BIND_DATA_GRAPH_PIPELINE_SESSION_MEMORY_INFO_ARM = 1000507005,
1226 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DATA_GRAPH_FEATURES_ARM = 1000507006,
1227 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SHADER_MODULE_CREATE_INFO_ARM = 1000507007,
1228 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_PROPERTY_QUERY_RESULT_ARM = 1000507008,
1229 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_INFO_ARM = 1000507009,
1230 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_COMPILER_CONTROL_CREATE_INFO_ARM = 1000507010,
1231 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_REQUIREMENTS_INFO_ARM = 1000507011,
1232 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_REQUIREMENT_ARM = 1000507012,
1233 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_IDENTIFIER_CREATE_INFO_ARM = 1000507013,
1234 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_DISPATCH_INFO_ARM = 1000507014,
1235 VK_STRUCTURE_TYPE_DATA_GRAPH_PROCESSING_ENGINE_CREATE_INFO_ARM = 1000507016,
1236 VK_STRUCTURE_TYPE_QUEUE_FAMILY_DATA_GRAPH_PROCESSING_ENGINE_PROPERTIES_ARM = 1000507017,
1237 VK_STRUCTURE_TYPE_QUEUE_FAMILY_DATA_GRAPH_PROPERTIES_ARM = 1000507018,
1238 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_QUEUE_FAMILY_DATA_GRAPH_PROCESSING_ENGINE_INFO_ARM = 1000507019,
1239 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_CONSTANT_TENSOR_SEMI_STRUCTURED_SPARSITY_INFO_ARM = 1000507015,
1240 VK_STRUCTURE_TYPE_QUEUE_FAMILY_DATA_GRAPH_TOSA_PROPERTIES_ARM = 1000508000,
1241 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM = 1000510000,
1242 VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM = 1000510001,
1243 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR = 1000201000,
1244 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR = 1000511000,
1245 VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_CAPABILITIES_KHR = 1000512000,
1246 VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PICTURE_INFO_KHR = 1000512001,
1247 VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PROFILE_INFO_KHR = 1000512003,
1248 VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000512004,
1249 VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_DPB_SLOT_INFO_KHR = 1000512005,
1250 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_CAPABILITIES_KHR = 1000513000,
1251 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000513001,
1252 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_PICTURE_INFO_KHR = 1000513002,
1253 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_DPB_SLOT_INFO_KHR = 1000513003,
1254 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_AV1_FEATURES_KHR = 1000513004,
1255 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_PROFILE_INFO_KHR = 1000513005,
1256 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_RATE_CONTROL_INFO_KHR = 1000513006,
1257 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_RATE_CONTROL_LAYER_INFO_KHR = 1000513007,
1258 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_QUALITY_LEVEL_PROPERTIES_KHR = 1000513008,
1259 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_SESSION_CREATE_INFO_KHR = 1000513009,
1260 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_GOP_REMAINING_FRAME_INFO_KHR = 1000513010,
1261 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_DECODE_VP9_FEATURES_KHR = 1000514000,
1262 VK_STRUCTURE_TYPE_VIDEO_DECODE_VP9_CAPABILITIES_KHR = 1000514001,
1263 VK_STRUCTURE_TYPE_VIDEO_DECODE_VP9_PICTURE_INFO_KHR = 1000514002,
1264 VK_STRUCTURE_TYPE_VIDEO_DECODE_VP9_PROFILE_INFO_KHR = 1000514003,
1265 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR = 1000515000,
1266 VK_STRUCTURE_TYPE_VIDEO_INLINE_QUERY_INFO_KHR = 1000515001,
1267 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV = 1000516000,
1268 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM = 1000518000,
1269 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM = 1000518001,
1270 VK_STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM = 1000518002,
1271 VK_STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM = 1000519000,
1272 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM = 1000519001,
1273 VK_STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM = 1000519002,
1274 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM = 1000520000,
1275 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM = 1000520001,
1276 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM = 1000521000,
1277 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT = 1000524000,
1278 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFIED_IMAGE_LAYOUTS_FEATURES_KHR = 1000527000,
1279 VK_STRUCTURE_TYPE_ATTACHMENT_FEEDBACK_LOOP_INFO_EXT = 1000527001,
1280 VK_STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX = 1000529000,
1281 VK_STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX = 1000529001,
1282 VK_STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX = 1000529002,
1283 VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX = 1000529003,
1284 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX = 1000529004,
1285 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT = 1000530000,
1286 VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR = 1000184000,
1287 VK_STRUCTURE_TYPE_SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT = 1000545007,
1288 VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT = 1000545008,
1289 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV = 1000546000,
1290 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_MEMORY_HEAP_FEATURES_QCOM = 1000547000,
1291 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_MEMORY_HEAP_PROPERTIES_QCOM = 1000547001,
1292 VK_STRUCTURE_TYPE_TILE_MEMORY_REQUIREMENTS_QCOM = 1000547002,
1293 VK_STRUCTURE_TYPE_TILE_MEMORY_BIND_INFO_QCOM = 1000547003,
1294 VK_STRUCTURE_TYPE_TILE_MEMORY_SIZE_INFO_QCOM = 1000547004,
1295 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_KHR = 1000549000,
1296 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_KHR = 1000426001,
1297 VK_STRUCTURE_TYPE_COPY_MEMORY_INDIRECT_INFO_KHR = 1000549002,
1298 VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INDIRECT_INFO_KHR = 1000549003,
1299 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_EXT = 1000427000,
1300 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_EXT = 1000427001,
1301 VK_STRUCTURE_TYPE_DECOMPRESS_MEMORY_INFO_EXT = 1000550002,
1302 VK_STRUCTURE_TYPE_DISPLAY_SURFACE_STEREO_CREATE_INFO_NV = 1000551000,
1303 VK_STRUCTURE_TYPE_DISPLAY_MODE_STEREO_PROPERTIES_NV = 1000551001,
1304 VK_STRUCTURE_TYPE_VIDEO_ENCODE_INTRA_REFRESH_CAPABILITIES_KHR = 1000552000,
1305 VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_INTRA_REFRESH_CREATE_INFO_KHR = 1000552001,
1306 VK_STRUCTURE_TYPE_VIDEO_ENCODE_INTRA_REFRESH_INFO_KHR = 1000552002,
1307 VK_STRUCTURE_TYPE_VIDEO_REFERENCE_INTRA_REFRESH_INFO_KHR = 1000552003,
1308 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_INTRA_REFRESH_FEATURES_KHR = 1000552004,
1309 VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_CAPABILITIES_KHR = 1000553000,
1310 VK_STRUCTURE_TYPE_VIDEO_FORMAT_QUANTIZATION_MAP_PROPERTIES_KHR = 1000553001,
1311 VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_INFO_KHR = 1000553002,
1312 VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000553005,
1313 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUANTIZATION_MAP_FEATURES_KHR = 1000553009,
1314 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUANTIZATION_MAP_CAPABILITIES_KHR = 1000553003,
1315 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUANTIZATION_MAP_CAPABILITIES_KHR = 1000553004,
1316 VK_STRUCTURE_TYPE_VIDEO_FORMAT_H265_QUANTIZATION_MAP_PROPERTIES_KHR = 1000553006,
1317 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_QUANTIZATION_MAP_CAPABILITIES_KHR = 1000553007,
1318 VK_STRUCTURE_TYPE_VIDEO_FORMAT_AV1_QUANTIZATION_MAP_PROPERTIES_KHR = 1000553008,
1319 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV = 1000555000,
1320 VK_STRUCTURE_TYPE_EXTERNAL_COMPUTE_QUEUE_DEVICE_CREATE_INFO_NV = 1000556000,
1321 VK_STRUCTURE_TYPE_EXTERNAL_COMPUTE_QUEUE_CREATE_INFO_NV = 1000556001,
1322 VK_STRUCTURE_TYPE_EXTERNAL_COMPUTE_QUEUE_DATA_PARAMS_NV = 1000556002,
1323 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_COMPUTE_QUEUE_PROPERTIES_NV = 1000556003,
1324 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR = 1000558000,
1325 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV = 1000559000,
1326 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR = 1000562000,
1327 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR = 1000562001,
1328 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR = 1000562002,
1329 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR = 1000562003,
1330 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR = 1000562004,
1331 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV = 1000563000,
1332 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT = 1000564000,
1333 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT8_FEATURES_EXT = 1000567000,
1334 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV = 1000568000,
1335 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_FEATURES_NV = 1000569000,
1336 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_PROPERTIES_NV = 1000569001,
1337 VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_CLUSTERS_BOTTOM_LEVEL_INPUT_NV = 1000569002,
1338 VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_TRIANGLE_CLUSTER_INPUT_NV = 1000569003,
1339 VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_MOVE_OBJECTS_INPUT_NV = 1000569004,
1340 VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_INPUT_INFO_NV = 1000569005,
1341 VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_COMMANDS_INFO_NV = 1000569006,
1342 VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CLUSTER_ACCELERATION_STRUCTURE_CREATE_INFO_NV = 1000569007,
1343 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_FEATURES_NV = 1000570000,
1344 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_PROPERTIES_NV = 1000570001,
1345 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_PARTITIONED_ACCELERATION_STRUCTURE_NV = 1000570002,
1346 VK_STRUCTURE_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCES_INPUT_NV = 1000570003,
1347 VK_STRUCTURE_TYPE_BUILD_PARTITIONED_ACCELERATION_STRUCTURE_INFO_NV = 1000570004,
1348 VK_STRUCTURE_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_FLAGS_NV = 1000570005,
1349 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT = 1000572000,
1350 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT = 1000572001,
1351 VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT = 1000572002,
1352 VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_CREATE_INFO_EXT = 1000572003,
1353 VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_EXT = 1000572004,
1354 VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT = 1000572006,
1355 VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT = 1000572007,
1356 VK_STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_PIPELINE_EXT = 1000572008,
1357 VK_STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_SHADER_EXT = 1000572009,
1358 VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_PIPELINE_INFO_EXT = 1000572010,
1359 VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_INFO_EXT = 1000572011,
1360 VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT = 1000572012,
1361 VK_STRUCTURE_TYPE_GENERATED_COMMANDS_PIPELINE_INFO_EXT = 1000572013,
1362 VK_STRUCTURE_TYPE_GENERATED_COMMANDS_SHADER_INFO_EXT = 1000572014,
1363 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_KHR = 1000573000,
1364 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_PROPERTIES_KHR = 1000573001,
1365 VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_KHR = 1000573002,
1366 VK_STRUCTURE_TYPE_DEVICE_FAULT_DEBUG_INFO_KHR = 1000573003,
1367 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_8_FEATURES_KHR = 1000574000,
1368 VK_STRUCTURE_TYPE_MEMORY_BARRIER_ACCESS_FLAGS_3_KHR = 1000574002,
1369 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA = 1000575000,
1370 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA = 1000575001,
1371 VK_STRUCTURE_TYPE_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA = 1000575002,
1372 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FMA_FEATURES_KHR = 1000579000,
1373 VK_STRUCTURE_TYPE_PUSH_CONSTANT_BANK_INFO_NV = 1000580000,
1374 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_CONSTANT_BANK_FEATURES_NV = 1000580001,
1375 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_CONSTANT_BANK_PROPERTIES_NV = 1000580002,
1376 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_EXT = 1000581000,
1377 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_EXT = 1000581001,
1378 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT = 1000582000,
1379 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT = 1000582001,
1380 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_9_FEATURES_KHR = 1000584000,
1381 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_9_PROPERTIES_KHR = 1000584001,
1382 VK_STRUCTURE_TYPE_QUEUE_FAMILY_OWNERSHIP_TRANSFER_PROPERTIES_KHR = 1000584002,
1383 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_2_FEATURES_KHR = 1000586000,
1384 VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_INLINE_SESSION_PARAMETERS_INFO_KHR = 1000586001,
1385 VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_INLINE_SESSION_PARAMETERS_INFO_KHR = 1000586002,
1386 VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_INLINE_SESSION_PARAMETERS_INFO_KHR = 1000586003,
1387 VK_STRUCTURE_TYPE_SURFACE_CREATE_INFO_OHOS = 1000685000,
1388 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI = 1000590000,
1389 VK_STRUCTURE_TYPE_HDR_VIVID_DYNAMIC_METADATA_HUAWEI = 1000590001,
1390 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV = 1000593000,
1391 VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV = 1000593001,
1392 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV = 1000593002,
1393 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_OPACITY_MICROMAP_FEATURES_ARM = 1000596000,
1394 VK_STRUCTURE_TYPE_IMPORT_MEMORY_METAL_HANDLE_INFO_EXT = 1000602000,
1395 VK_STRUCTURE_TYPE_MEMORY_METAL_HANDLE_PROPERTIES_EXT = 1000602001,
1396 VK_STRUCTURE_TYPE_MEMORY_GET_METAL_HANDLE_INFO_EXT = 1000602002,
1397 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_KHR = 1000421000,
1398 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_COUNTERS_BY_REGION_FEATURES_ARM = 1000605000,
1399 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_COUNTERS_BY_REGION_PROPERTIES_ARM = 1000605001,
1400 VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_ARM = 1000605002,
1401 VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_ARM = 1000605003,
1402 VK_STRUCTURE_TYPE_RENDER_PASS_PERFORMANCE_COUNTERS_BY_REGION_BEGIN_INFO_ARM = 1000605004,
1403 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INSTRUMENTATION_FEATURES_ARM = 1000607000,
1404 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INSTRUMENTATION_PROPERTIES_ARM = 1000607001,
1405 VK_STRUCTURE_TYPE_SHADER_INSTRUMENTATION_CREATE_INFO_ARM = 1000607002,
1406 VK_STRUCTURE_TYPE_SHADER_INSTRUMENTATION_METRIC_DESCRIPTION_ARM = 1000607003,
1407 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_ROBUSTNESS_FEATURES_EXT = 1000608000,
1408 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FORMAT_PACK_FEATURES_ARM = 1000609000,
1409 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_LAYERED_FEATURES_VALVE = 1000611000,
1410 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_LAYERED_PROPERTIES_VALVE = 1000611001,
1411 VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_DENSITY_MAP_LAYERED_CREATE_INFO_VALVE = 1000611002,
1412 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_KHR = 1000286000,
1413 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_KHR = 1000286001,
1414 VK_STRUCTURE_TYPE_SET_PRESENT_CONFIG_NV = 1000613000,
1415 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_METERING_FEATURES_NV = 1000613001,
1416 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_EXT = 1000425000,
1417 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_EXT = 1000425001,
1418 VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_EXT = 1000425002,
1419 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_DEVICE_MEMORY_FEATURES_EXT = 1000620000,
1420 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_KHR = 1000361000,
1421 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_64_BIT_INDEXING_FEATURES_EXT = 1000627000,
1422 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_RESOLVE_FEATURES_EXT = 1000628000,
1423 VK_STRUCTURE_TYPE_BEGIN_CUSTOM_RESOLVE_INFO_EXT = 1000628001,
1424 VK_STRUCTURE_TYPE_CUSTOM_RESOLVE_CREATE_INFO_EXT = 1000628002,
1425 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DATA_GRAPH_MODEL_FEATURES_QCOM = 1000629000,
1426 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_BUILTIN_MODEL_CREATE_INFO_QCOM = 1000629001,
1427 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_10_FEATURES_KHR = 1000630000,
1428 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_10_PROPERTIES_KHR = 1000630001,
1429 VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_FLAGS_INFO_KHR = 1000630002,
1430 VK_STRUCTURE_TYPE_RENDERING_END_INFO_KHR = 1000619003,
1431 VK_STRUCTURE_TYPE_RESOLVE_IMAGE_MODE_INFO_KHR = 1000630004,
1432 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DATA_GRAPH_OPTICAL_FLOW_FEATURES_ARM = 1000631000,
1433 VK_STRUCTURE_TYPE_QUEUE_FAMILY_DATA_GRAPH_OPTICAL_FLOW_PROPERTIES_ARM = 1000631001,
1434 VK_STRUCTURE_TYPE_DATA_GRAPH_OPTICAL_FLOW_IMAGE_FORMAT_INFO_ARM = 1000631003,
1435 VK_STRUCTURE_TYPE_DATA_GRAPH_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_ARM = 1000631004,
1436 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_OPTICAL_FLOW_DISPATCH_INFO_ARM = 1000631005,
1437 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_OPTICAL_FLOW_CREATE_INFO_ARM = 1000631002,
1438 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_RESOURCE_INFO_IMAGE_LAYOUT_ARM = 1000631006,
1439 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SINGLE_NODE_CREATE_INFO_ARM = 1000631007,
1440 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SINGLE_NODE_CONNECTION_ARM = 1000631008,
1441 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_LONG_VECTOR_FEATURES_EXT = 1000635000,
1442 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_LONG_VECTOR_PROPERTIES_EXT = 1000635001,
1443 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CACHE_INCREMENTAL_MODE_FEATURES_SEC = 1000637000,
1444 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_UNIFORM_BUFFER_UNSIZED_ARRAY_FEATURES_EXT = 1000642000,
1445 VK_STRUCTURE_TYPE_COMPUTE_OCCUPANCY_PRIORITY_PARAMETERS_NV = 1000645000,
1446 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_OCCUPANCY_PRIORITY_FEATURES_NV = 1000645001,
1447 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_11_FEATURES_KHR = 1000657000,
1448 VK_STRUCTURE_TYPE_QUEUE_FAMILY_OPTIMAL_IMAGE_TRANSFER_GRANULARITY_PROPERTIES_KHR = 1000657001,
1449 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_PARTITIONED_FEATURES_EXT = 1000662000,
1450 VK_STRUCTURE_TYPE_UBM_SURFACE_CREATE_INFO_SEC = 1000664000,
1451 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MIXED_FLOAT_DOT_PRODUCT_FEATURES_VALVE = 1000673000,
1452 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_THROTTLE_HINT_FEATURES_SEC = 1000674000,
1453 VK_STRUCTURE_TYPE_THROTTLE_HINT_SUBMIT_INFO_SEC = 1000674001,
1454 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_NEURAL_STATISTICS_CREATE_INFO_ARM = 1000676000,
1455 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_NEURAL_STATISTICS_CREATE_INFO_ARM = 1000676001,
1456 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DATA_GRAPH_NEURAL_ACCELERATOR_STATISTICS_FEATURES_ARM = 1000676002,
1457 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_RESTART_INDEX_FEATURES_EXT = 1000678000,
1458 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
1459 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
1460 // VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT is a legacy alias
1461 VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
1462 VK_STRUCTURE_TYPE_RENDERING_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_INFO,
1463 VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO,
1464 VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO,
1465 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES,
1466 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO,
1467 VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO,
1468 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
1469 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,
1470 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2,
1471 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2,
1472 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2,
1473 VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2,
1474 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2,
1475 VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2,
1476 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2,
1477 VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2,
1478 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2,
1479 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO,
1480 VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO,
1481 VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO,
1482 VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO,
1483 VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO,
1484 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO,
1485 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO,
1486 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES,
1487 VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO,
1488 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES,
1489 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES,
1490 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES,
1491 VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO,
1492 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO,
1493 VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES,
1494 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO,
1495 VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES,
1496 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES,
1497 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO,
1498 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO,
1499 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO,
1500 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO,
1501 VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES,
1502 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO,
1503 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES,
1504 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
1505 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
1506 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES,
1507 VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO,
1508 // VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT is a legacy alias
1509 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT,
1510 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES,
1511 VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO,
1512 VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO,
1513 VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO,
1514 VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2,
1515 VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
1516 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2,
1517 VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
1518 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2,
1519 VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO,
1520 VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR = VK_STRUCTURE_TYPE_SUBPASS_END_INFO,
1521 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO,
1522 VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES,
1523 VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO,
1524 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES,
1525 VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO,
1526 VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO,
1527 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO,
1528 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
1529 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR,
1530 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS,
1531 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO,
1532 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES,
1533 VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO,
1534 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES,
1535 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES,
1536 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK,
1537 VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO,
1538 VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2,
1539 VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2,
1540 VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2,
1541 VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2,
1542 VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2,
1543 VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO,
1544 VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV = VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD,
1545 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO,
1546 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO,
1547 VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO,
1548 VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO,
1549 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES,
1550 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES,
1551 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO,
1552 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO,
1553 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO,
1554 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES,
1555 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES,
1556 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO,
1557 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT,
1558 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES,
1559 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT,
1560 VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO,
1561 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES,
1562 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES,
1563 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES,
1564 VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR,
1565 VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO,
1566 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES,
1567 VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR = VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES,
1568 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO,
1569 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES,
1570 VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO,
1571 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES,
1572 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES,
1573 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES,
1574 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE,
1575 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR,
1576 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR,
1577 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES,
1578 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES,
1579 VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO,
1580 VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO,
1581 VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO,
1582 VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO,
1583 // VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL is a legacy alias
1584 VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL,
1585 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES,
1586 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES,
1587 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES,
1588 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES,
1589 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO,
1590 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES,
1591 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES,
1592 VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO,
1593 VK_STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO,
1594 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES,
1595 VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT,
1596 VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT,
1597 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT,
1598 VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
1599 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES,
1600 VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO,
1601 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES,
1602 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES,
1603 VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
1604 VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO,
1605 VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO,
1606 VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO,
1607 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES,
1608 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO,
1609 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES,
1610 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES,
1611 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES,
1612 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES,
1613 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES,
1614 VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT = VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY,
1615 VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT = VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY,
1616 VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO,
1617 VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT = VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO,
1618 VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT = VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO,
1619 VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO,
1620 VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT = VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE,
1621 VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT = VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY,
1622 VK_STRUCTURE_TYPE_MEMORY_MAP_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_MAP_INFO,
1623 VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO,
1624 VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT = VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_KHR,
1625 VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT = VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_KHR,
1626 VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT = VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_KHR,
1627 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_KHR,
1628 VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT = VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_KHR,
1629 VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_KHR,
1630 VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT = VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_KHR,
1631 VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_KHR,
1632 VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT = VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_KHR,
1633 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES,
1634 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES,
1635 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES,
1636 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES,
1637 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_KHR,
1638 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_KHR,
1639 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES,
1640 VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO,
1641 VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO,
1642 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES,
1643 VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_MEMORY_BARRIER_2,
1644 VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2,
1645 VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2,
1646 VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR = VK_STRUCTURE_TYPE_DEPENDENCY_INFO,
1647 VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR = VK_STRUCTURE_TYPE_SUBMIT_INFO_2,
1648 VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO,
1649 VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO,
1650 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES,
1651 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES,
1652 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES,
1653 VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2,
1654 VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2,
1655 VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2,
1656 VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2,
1657 VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2,
1658 VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2,
1659 VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR = VK_STRUCTURE_TYPE_BUFFER_COPY_2,
1660 VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR = VK_STRUCTURE_TYPE_IMAGE_COPY_2,
1661 VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR = VK_STRUCTURE_TYPE_IMAGE_BLIT_2,
1662 VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR = VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2,
1663 VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR = VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2,
1664 VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT = VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2,
1665 VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT = VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2,
1666 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT,
1667 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT,
1668 VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT,
1669 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3,
1670 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_KHR,
1671 VK_STRUCTURE_TYPE_PIPELINE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR,
1672 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES,
1673 VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT = VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES,
1674 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES,
1675 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES,
1676 VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS,
1677 VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS,
1678 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES,
1679 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_KHR,
1680 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_EXT,
1681 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_EXT,
1682 VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM = VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_EXT,
1683 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_KHR,
1684 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_EXT,
1685 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_EXT,
1686 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES,
1687 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES,
1688 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES,
1689 VK_STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_AREA_INFO,
1690 VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO,
1691 VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR = VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2,
1692 VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR = VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2,
1693 VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO,
1694 VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO,
1695 VK_STRUCTURE_TYPE_SHADER_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO,
1696 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES,
1697 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO,
1698 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES,
1699 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES,
1700 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES,
1701 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES,
1702 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO,
1703 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES,
1704 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES,
1705 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES,
1706 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES,
1707 VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS_KHR = VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS,
1708 VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO_KHR = VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO,
1709 VK_STRUCTURE_TYPE_PUSH_CONSTANTS_INFO_KHR = VK_STRUCTURE_TYPE_PUSH_CONSTANTS_INFO,
1710 VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO_KHR = VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO,
1711 VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO_KHR = VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO,
1712 VK_STRUCTURE_TYPE_RENDERING_END_INFO_EXT = VK_STRUCTURE_TYPE_RENDERING_END_INFO_KHR,
1713 VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
1714} VkStructureType;
1715
1716typedef enum VkObjectType {
1717 VK_OBJECT_TYPE_UNKNOWN = 0,
1718 VK_OBJECT_TYPE_INSTANCE = 1,
1719 VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2,
1720 VK_OBJECT_TYPE_DEVICE = 3,
1721 VK_OBJECT_TYPE_QUEUE = 4,
1722 VK_OBJECT_TYPE_SEMAPHORE = 5,
1723 VK_OBJECT_TYPE_COMMAND_BUFFER = 6,
1724 VK_OBJECT_TYPE_FENCE = 7,
1725 VK_OBJECT_TYPE_DEVICE_MEMORY = 8,
1726 VK_OBJECT_TYPE_BUFFER = 9,
1727 VK_OBJECT_TYPE_IMAGE = 10,
1728 VK_OBJECT_TYPE_EVENT = 11,
1729 VK_OBJECT_TYPE_QUERY_POOL = 12,
1730 VK_OBJECT_TYPE_BUFFER_VIEW = 13,
1731 VK_OBJECT_TYPE_IMAGE_VIEW = 14,
1732 VK_OBJECT_TYPE_SHADER_MODULE = 15,
1733 VK_OBJECT_TYPE_PIPELINE_CACHE = 16,
1734 VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17,
1735 VK_OBJECT_TYPE_RENDER_PASS = 18,
1736 VK_OBJECT_TYPE_PIPELINE = 19,
1737 VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20,
1738 VK_OBJECT_TYPE_SAMPLER = 21,
1739 VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22,
1740 VK_OBJECT_TYPE_DESCRIPTOR_SET = 23,
1741 VK_OBJECT_TYPE_FRAMEBUFFER = 24,
1742 VK_OBJECT_TYPE_COMMAND_POOL = 25,
1743 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000,
1744 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000,
1745 VK_OBJECT_TYPE_PRIVATE_DATA_SLOT = 1000295000,
1746 VK_OBJECT_TYPE_SURFACE_KHR = 1000000000,
1747 VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000,
1748 VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000,
1749 VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001,
1750 VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000,
1751 VK_OBJECT_TYPE_VIDEO_SESSION_KHR = 1000023000,
1752 VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR = 1000023001,
1753 VK_OBJECT_TYPE_CU_MODULE_NVX = 1000029000,
1754 VK_OBJECT_TYPE_CU_FUNCTION_NVX = 1000029001,
1755 VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000,
1756 VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000,
1757 VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000,
1758 VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000,
1759 VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL = 1000210000,
1760 VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR = 1000268000,
1761 VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV = 1000277000,
1762#ifdef VK_ENABLE_BETA_EXTENSIONS
1763 VK_OBJECT_TYPE_CUDA_MODULE_NV = 1000307000,
1764#endif
1765#ifdef VK_ENABLE_BETA_EXTENSIONS
1766 VK_OBJECT_TYPE_CUDA_FUNCTION_NV = 1000307001,
1767#endif
1768 VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA = 1000366000,
1769 VK_OBJECT_TYPE_MICROMAP_EXT = 1000396000,
1770 VK_OBJECT_TYPE_TENSOR_ARM = 1000460000,
1771 VK_OBJECT_TYPE_TENSOR_VIEW_ARM = 1000460001,
1772 VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV = 1000464000,
1773 VK_OBJECT_TYPE_SHADER_EXT = 1000482000,
1774 VK_OBJECT_TYPE_PIPELINE_BINARY_KHR = 1000483000,
1775 VK_OBJECT_TYPE_DATA_GRAPH_PIPELINE_SESSION_ARM = 1000507000,
1776 VK_OBJECT_TYPE_EXTERNAL_COMPUTE_QUEUE_NV = 1000556000,
1777 VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_EXT = 1000572000,
1778 VK_OBJECT_TYPE_INDIRECT_EXECUTION_SET_EXT = 1000572001,
1779 VK_OBJECT_TYPE_SHADER_INSTRUMENTATION_ARM = 1000607000,
1780 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
1781 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,
1782 VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT = VK_OBJECT_TYPE_PRIVATE_DATA_SLOT,
1783 VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF
1784} VkObjectType;
1785
1786typedef enum VkVendorId {
1787 VK_VENDOR_ID_KHRONOS = 0x10000,
1788 VK_VENDOR_ID_VIV = 0x10001,
1789 VK_VENDOR_ID_VSI = 0x10002,
1790 VK_VENDOR_ID_KAZAN = 0x10003,
1791 VK_VENDOR_ID_CODEPLAY = 0x10004,
1792 VK_VENDOR_ID_MESA = 0x10005,
1793 VK_VENDOR_ID_POCL = 0x10006,
1794 VK_VENDOR_ID_MOBILEYE = 0x10007,
1795 VK_VENDOR_ID_MAX_ENUM = 0x7FFFFFFF
1796} VkVendorId;
1797
1798typedef enum VkSystemAllocationScope {
1799 VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0,
1800 VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1,
1801 VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2,
1802 VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3,
1803 VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4,
1804 VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 0x7FFFFFFF
1805} VkSystemAllocationScope;
1806
1807typedef enum VkInternalAllocationType {
1808 VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0,
1809 VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF
1810} VkInternalAllocationType;
1811
1812typedef enum VkFormat {
1813 VK_FORMAT_UNDEFINED = 0,
1814 VK_FORMAT_R4G4_UNORM_PACK8 = 1,
1815 VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,
1816 VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,
1817 VK_FORMAT_R5G6B5_UNORM_PACK16 = 4,
1818 VK_FORMAT_B5G6R5_UNORM_PACK16 = 5,
1819 VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,
1820 VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,
1821 VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,
1822 VK_FORMAT_R8_UNORM = 9,
1823 VK_FORMAT_R8_SNORM = 10,
1824 VK_FORMAT_R8_USCALED = 11,
1825 VK_FORMAT_R8_SSCALED = 12,
1826 VK_FORMAT_R8_UINT = 13,
1827 VK_FORMAT_R8_SINT = 14,
1828 VK_FORMAT_R8_SRGB = 15,
1829 VK_FORMAT_R8G8_UNORM = 16,
1830 VK_FORMAT_R8G8_SNORM = 17,
1831 VK_FORMAT_R8G8_USCALED = 18,
1832 VK_FORMAT_R8G8_SSCALED = 19,
1833 VK_FORMAT_R8G8_UINT = 20,
1834 VK_FORMAT_R8G8_SINT = 21,
1835 VK_FORMAT_R8G8_SRGB = 22,
1836 VK_FORMAT_R8G8B8_UNORM = 23,
1837 VK_FORMAT_R8G8B8_SNORM = 24,
1838 VK_FORMAT_R8G8B8_USCALED = 25,
1839 VK_FORMAT_R8G8B8_SSCALED = 26,
1840 VK_FORMAT_R8G8B8_UINT = 27,
1841 VK_FORMAT_R8G8B8_SINT = 28,
1842 VK_FORMAT_R8G8B8_SRGB = 29,
1843 VK_FORMAT_B8G8R8_UNORM = 30,
1844 VK_FORMAT_B8G8R8_SNORM = 31,
1845 VK_FORMAT_B8G8R8_USCALED = 32,
1846 VK_FORMAT_B8G8R8_SSCALED = 33,
1847 VK_FORMAT_B8G8R8_UINT = 34,
1848 VK_FORMAT_B8G8R8_SINT = 35,
1849 VK_FORMAT_B8G8R8_SRGB = 36,
1850 VK_FORMAT_R8G8B8A8_UNORM = 37,
1851 VK_FORMAT_R8G8B8A8_SNORM = 38,
1852 VK_FORMAT_R8G8B8A8_USCALED = 39,
1853 VK_FORMAT_R8G8B8A8_SSCALED = 40,
1854 VK_FORMAT_R8G8B8A8_UINT = 41,
1855 VK_FORMAT_R8G8B8A8_SINT = 42,
1856 VK_FORMAT_R8G8B8A8_SRGB = 43,
1857 VK_FORMAT_B8G8R8A8_UNORM = 44,
1858 VK_FORMAT_B8G8R8A8_SNORM = 45,
1859 VK_FORMAT_B8G8R8A8_USCALED = 46,
1860 VK_FORMAT_B8G8R8A8_SSCALED = 47,
1861 VK_FORMAT_B8G8R8A8_UINT = 48,
1862 VK_FORMAT_B8G8R8A8_SINT = 49,
1863 VK_FORMAT_B8G8R8A8_SRGB = 50,
1864 VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51,
1865 VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52,
1866 VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53,
1867 VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54,
1868 VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55,
1869 VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56,
1870 VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57,
1871 VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,
1872 VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,
1873 VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60,
1874 VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61,
1875 VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62,
1876 VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63,
1877 VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,
1878 VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,
1879 VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66,
1880 VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67,
1881 VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68,
1882 VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69,
1883 VK_FORMAT_R16_UNORM = 70,
1884 VK_FORMAT_R16_SNORM = 71,
1885 VK_FORMAT_R16_USCALED = 72,
1886 VK_FORMAT_R16_SSCALED = 73,
1887 VK_FORMAT_R16_UINT = 74,
1888 VK_FORMAT_R16_SINT = 75,
1889 VK_FORMAT_R16_SFLOAT = 76,
1890 VK_FORMAT_R16G16_UNORM = 77,
1891 VK_FORMAT_R16G16_SNORM = 78,
1892 VK_FORMAT_R16G16_USCALED = 79,
1893 VK_FORMAT_R16G16_SSCALED = 80,
1894 VK_FORMAT_R16G16_UINT = 81,
1895 VK_FORMAT_R16G16_SINT = 82,
1896 VK_FORMAT_R16G16_SFLOAT = 83,
1897 VK_FORMAT_R16G16B16_UNORM = 84,
1898 VK_FORMAT_R16G16B16_SNORM = 85,
1899 VK_FORMAT_R16G16B16_USCALED = 86,
1900 VK_FORMAT_R16G16B16_SSCALED = 87,
1901 VK_FORMAT_R16G16B16_UINT = 88,
1902 VK_FORMAT_R16G16B16_SINT = 89,
1903 VK_FORMAT_R16G16B16_SFLOAT = 90,
1904 VK_FORMAT_R16G16B16A16_UNORM = 91,
1905 VK_FORMAT_R16G16B16A16_SNORM = 92,
1906 VK_FORMAT_R16G16B16A16_USCALED = 93,
1907 VK_FORMAT_R16G16B16A16_SSCALED = 94,
1908 VK_FORMAT_R16G16B16A16_UINT = 95,
1909 VK_FORMAT_R16G16B16A16_SINT = 96,
1910 VK_FORMAT_R16G16B16A16_SFLOAT = 97,
1911 VK_FORMAT_R32_UINT = 98,
1912 VK_FORMAT_R32_SINT = 99,
1913 VK_FORMAT_R32_SFLOAT = 100,
1914 VK_FORMAT_R32G32_UINT = 101,
1915 VK_FORMAT_R32G32_SINT = 102,
1916 VK_FORMAT_R32G32_SFLOAT = 103,
1917 VK_FORMAT_R32G32B32_UINT = 104,
1918 VK_FORMAT_R32G32B32_SINT = 105,
1919 VK_FORMAT_R32G32B32_SFLOAT = 106,
1920 VK_FORMAT_R32G32B32A32_UINT = 107,
1921 VK_FORMAT_R32G32B32A32_SINT = 108,
1922 VK_FORMAT_R32G32B32A32_SFLOAT = 109,
1923 VK_FORMAT_R64_UINT = 110,
1924 VK_FORMAT_R64_SINT = 111,
1925 VK_FORMAT_R64_SFLOAT = 112,
1926 VK_FORMAT_R64G64_UINT = 113,
1927 VK_FORMAT_R64G64_SINT = 114,
1928 VK_FORMAT_R64G64_SFLOAT = 115,
1929 VK_FORMAT_R64G64B64_UINT = 116,
1930 VK_FORMAT_R64G64B64_SINT = 117,
1931 VK_FORMAT_R64G64B64_SFLOAT = 118,
1932 VK_FORMAT_R64G64B64A64_UINT = 119,
1933 VK_FORMAT_R64G64B64A64_SINT = 120,
1934 VK_FORMAT_R64G64B64A64_SFLOAT = 121,
1935 VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,
1936 VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,
1937 VK_FORMAT_D16_UNORM = 124,
1938 VK_FORMAT_X8_D24_UNORM_PACK32 = 125,
1939 VK_FORMAT_D32_SFLOAT = 126,
1940 VK_FORMAT_S8_UINT = 127,
1941 VK_FORMAT_D16_UNORM_S8_UINT = 128,
1942 VK_FORMAT_D24_UNORM_S8_UINT = 129,
1943 VK_FORMAT_D32_SFLOAT_S8_UINT = 130,
1944 VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131,
1945 VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132,
1946 VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,
1947 VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,
1948 VK_FORMAT_BC2_UNORM_BLOCK = 135,
1949 VK_FORMAT_BC2_SRGB_BLOCK = 136,
1950 VK_FORMAT_BC3_UNORM_BLOCK = 137,
1951 VK_FORMAT_BC3_SRGB_BLOCK = 138,
1952 VK_FORMAT_BC4_UNORM_BLOCK = 139,
1953 VK_FORMAT_BC4_SNORM_BLOCK = 140,
1954 VK_FORMAT_BC5_UNORM_BLOCK = 141,
1955 VK_FORMAT_BC5_SNORM_BLOCK = 142,
1956 VK_FORMAT_BC6H_UFLOAT_BLOCK = 143,
1957 VK_FORMAT_BC6H_SFLOAT_BLOCK = 144,
1958 VK_FORMAT_BC7_UNORM_BLOCK = 145,
1959 VK_FORMAT_BC7_SRGB_BLOCK = 146,
1960 VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,
1961 VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,
1962 VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,
1963 VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,
1964 VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,
1965 VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,
1966 VK_FORMAT_EAC_R11_UNORM_BLOCK = 153,
1967 VK_FORMAT_EAC_R11_SNORM_BLOCK = 154,
1968 VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,
1969 VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,
1970 VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,
1971 VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,
1972 VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,
1973 VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,
1974 VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,
1975 VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,
1976 VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,
1977 VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,
1978 VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,
1979 VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,
1980 VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,
1981 VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,
1982 VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,
1983 VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,
1984 VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,
1985 VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,
1986 VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,
1987 VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,
1988 VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,
1989 VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,
1990 VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,
1991 VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,
1992 VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,
1993 VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,
1994 VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,
1995 VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
1996 VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
1997 VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
1998 VK_FORMAT_G8B8G8R8_422_UNORM = 1000156000,
1999 VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001,
2000 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002,
2001 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003,
2002 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004,
2003 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005,
2004 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006,
2005 VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007,
2006 VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008,
2007 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009,
2008 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010,
2009 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011,
2010 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012,
2011 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013,
2012 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014,
2013 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015,
2014 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016,
2015 VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017,
2016 VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018,
2017 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019,
2018 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020,
2019 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021,
2020 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022,
2021 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023,
2022 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024,
2023 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025,
2024 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026,
2025 VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027,
2026 VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028,
2027 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029,
2028 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030,
2029 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031,
2030 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032,
2031 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033,
2032 VK_FORMAT_G8_B8R8_2PLANE_444_UNORM = 1000330000,
2033 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16 = 1000330001,
2034 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16 = 1000330002,
2035 VK_FORMAT_G16_B16R16_2PLANE_444_UNORM = 1000330003,
2036 VK_FORMAT_A4R4G4B4_UNORM_PACK16 = 1000340000,
2037 VK_FORMAT_A4B4G4R4_UNORM_PACK16 = 1000340001,
2038 VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK = 1000066000,
2039 VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK = 1000066001,
2040 VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK = 1000066002,
2041 VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK = 1000066003,
2042 VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK = 1000066004,
2043 VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK = 1000066005,
2044 VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK = 1000066006,
2045 VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK = 1000066007,
2046 VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK = 1000066008,
2047 VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK = 1000066009,
2048 VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK = 1000066010,
2049 VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK = 1000066011,
2050 VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK = 1000066012,
2051 VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK = 1000066013,
2052 VK_FORMAT_A1B5G5R5_UNORM_PACK16 = 1000470000,
2053 VK_FORMAT_A8_UNORM = 1000470001,
2054 VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000,
2055 VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001,
2056 VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002,
2057 VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003,
2058 VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004,
2059 VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005,
2060 VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006,
2061 VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007,
2062 VK_FORMAT_ASTC_3x3x3_UNORM_BLOCK_EXT = 1000288000,
2063 VK_FORMAT_ASTC_3x3x3_SRGB_BLOCK_EXT = 1000288001,
2064 VK_FORMAT_ASTC_3x3x3_SFLOAT_BLOCK_EXT = 1000288002,
2065 VK_FORMAT_ASTC_4x3x3_UNORM_BLOCK_EXT = 1000288003,
2066 VK_FORMAT_ASTC_4x3x3_SRGB_BLOCK_EXT = 1000288004,
2067 VK_FORMAT_ASTC_4x3x3_SFLOAT_BLOCK_EXT = 1000288005,
2068 VK_FORMAT_ASTC_4x4x3_UNORM_BLOCK_EXT = 1000288006,
2069 VK_FORMAT_ASTC_4x4x3_SRGB_BLOCK_EXT = 1000288007,
2070 VK_FORMAT_ASTC_4x4x3_SFLOAT_BLOCK_EXT = 1000288008,
2071 VK_FORMAT_ASTC_4x4x4_UNORM_BLOCK_EXT = 1000288009,
2072 VK_FORMAT_ASTC_4x4x4_SRGB_BLOCK_EXT = 1000288010,
2073 VK_FORMAT_ASTC_4x4x4_SFLOAT_BLOCK_EXT = 1000288011,
2074 VK_FORMAT_ASTC_5x4x4_UNORM_BLOCK_EXT = 1000288012,
2075 VK_FORMAT_ASTC_5x4x4_SRGB_BLOCK_EXT = 1000288013,
2076 VK_FORMAT_ASTC_5x4x4_SFLOAT_BLOCK_EXT = 1000288014,
2077 VK_FORMAT_ASTC_5x5x4_UNORM_BLOCK_EXT = 1000288015,
2078 VK_FORMAT_ASTC_5x5x4_SRGB_BLOCK_EXT = 1000288016,
2079 VK_FORMAT_ASTC_5x5x4_SFLOAT_BLOCK_EXT = 1000288017,
2080 VK_FORMAT_ASTC_5x5x5_UNORM_BLOCK_EXT = 1000288018,
2081 VK_FORMAT_ASTC_5x5x5_SRGB_BLOCK_EXT = 1000288019,
2082 VK_FORMAT_ASTC_5x5x5_SFLOAT_BLOCK_EXT = 1000288020,
2083 VK_FORMAT_ASTC_6x5x5_UNORM_BLOCK_EXT = 1000288021,
2084 VK_FORMAT_ASTC_6x5x5_SRGB_BLOCK_EXT = 1000288022,
2085 VK_FORMAT_ASTC_6x5x5_SFLOAT_BLOCK_EXT = 1000288023,
2086 VK_FORMAT_ASTC_6x6x5_UNORM_BLOCK_EXT = 1000288024,
2087 VK_FORMAT_ASTC_6x6x5_SRGB_BLOCK_EXT = 1000288025,
2088 VK_FORMAT_ASTC_6x6x5_SFLOAT_BLOCK_EXT = 1000288026,
2089 VK_FORMAT_ASTC_6x6x6_UNORM_BLOCK_EXT = 1000288027,
2090 VK_FORMAT_ASTC_6x6x6_SRGB_BLOCK_EXT = 1000288028,
2091 VK_FORMAT_ASTC_6x6x6_SFLOAT_BLOCK_EXT = 1000288029,
2092 VK_FORMAT_R8_BOOL_ARM = 1000460000,
2093 VK_FORMAT_R16_SFLOAT_FPENCODING_BFLOAT16_ARM = 1000460001,
2094 VK_FORMAT_R8_SFLOAT_FPENCODING_FLOAT8E4M3_ARM = 1000460002,
2095 VK_FORMAT_R8_SFLOAT_FPENCODING_FLOAT8E5M2_ARM = 1000460003,
2096 VK_FORMAT_R16G16_SFIXED5_NV = 1000464000,
2097 VK_FORMAT_R10X6_UINT_PACK16_ARM = 1000609000,
2098 VK_FORMAT_R10X6G10X6_UINT_2PACK16_ARM = 1000609001,
2099 VK_FORMAT_R10X6G10X6B10X6A10X6_UINT_4PACK16_ARM = 1000609002,
2100 VK_FORMAT_R12X4_UINT_PACK16_ARM = 1000609003,
2101 VK_FORMAT_R12X4G12X4_UINT_2PACK16_ARM = 1000609004,
2102 VK_FORMAT_R12X4G12X4B12X4A12X4_UINT_4PACK16_ARM = 1000609005,
2103 VK_FORMAT_R14X2_UINT_PACK16_ARM = 1000609006,
2104 VK_FORMAT_R14X2G14X2_UINT_2PACK16_ARM = 1000609007,
2105 VK_FORMAT_R14X2G14X2B14X2A14X2_UINT_4PACK16_ARM = 1000609008,
2106 VK_FORMAT_R14X2_UNORM_PACK16_ARM = 1000609009,
2107 VK_FORMAT_R14X2G14X2_UNORM_2PACK16_ARM = 1000609010,
2108 VK_FORMAT_R14X2G14X2B14X2A14X2_UNORM_4PACK16_ARM = 1000609011,
2109 VK_FORMAT_G14X2_B14X2R14X2_2PLANE_420_UNORM_3PACK16_ARM = 1000609012,
2110 VK_FORMAT_G14X2_B14X2R14X2_2PLANE_422_UNORM_3PACK16_ARM = 1000609013,
2111 VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK,
2112 VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK,
2113 VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK,
2114 VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK,
2115 VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK,
2116 VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK,
2117 VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK,
2118 VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK,
2119 VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK,
2120 VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK,
2121 VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK,
2122 VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK,
2123 VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK,
2124 VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK,
2125 VK_FORMAT_G8B8G8R8_422_UNORM_KHR = VK_FORMAT_G8B8G8R8_422_UNORM,
2126 VK_FORMAT_B8G8R8G8_422_UNORM_KHR = VK_FORMAT_B8G8R8G8_422_UNORM,
2127 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM,
2128 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM,
2129 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM,
2130 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM,
2131 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM,
2132 VK_FORMAT_R10X6_UNORM_PACK16_KHR = VK_FORMAT_R10X6_UNORM_PACK16,
2133 VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR = VK_FORMAT_R10X6G10X6_UNORM_2PACK16,
2134 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16,
2135 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16,
2136 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16,
2137 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16,
2138 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16,
2139 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16,
2140 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16,
2141 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16,
2142 VK_FORMAT_R12X4_UNORM_PACK16_KHR = VK_FORMAT_R12X4_UNORM_PACK16,
2143 VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR = VK_FORMAT_R12X4G12X4_UNORM_2PACK16,
2144 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16,
2145 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16,
2146 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16,
2147 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16,
2148 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16,
2149 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16,
2150 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16,
2151 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16,
2152 VK_FORMAT_G16B16G16R16_422_UNORM_KHR = VK_FORMAT_G16B16G16R16_422_UNORM,
2153 VK_FORMAT_B16G16R16G16_422_UNORM_KHR = VK_FORMAT_B16G16R16G16_422_UNORM,
2154 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM,
2155 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM,
2156 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM,
2157 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM,
2158 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM,
2159 VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT = VK_FORMAT_G8_B8R8_2PLANE_444_UNORM,
2160 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16,
2161 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16,
2162 VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT = VK_FORMAT_G16_B16R16_2PLANE_444_UNORM,
2163 VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT = VK_FORMAT_A4R4G4B4_UNORM_PACK16,
2164 VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT = VK_FORMAT_A4B4G4R4_UNORM_PACK16,
2165 // VK_FORMAT_R16G16_S10_5_NV is a legacy alias
2166 VK_FORMAT_R16G16_S10_5_NV = VK_FORMAT_R16G16_SFIXED5_NV,
2167 VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR = VK_FORMAT_A1B5G5R5_UNORM_PACK16,
2168 VK_FORMAT_A8_UNORM_KHR = VK_FORMAT_A8_UNORM,
2169 VK_FORMAT_MAX_ENUM = 0x7FFFFFFF
2170} VkFormat;
2171
2172typedef enum VkImageTiling {
2173 VK_IMAGE_TILING_OPTIMAL = 0,
2174 VK_IMAGE_TILING_LINEAR = 1,
2175 VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT = 1000158000,
2176 VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF
2177} VkImageTiling;
2178
2179typedef enum VkImageType {
2180 VK_IMAGE_TYPE_1D = 0,
2181 VK_IMAGE_TYPE_2D = 1,
2182 VK_IMAGE_TYPE_3D = 2,
2183 VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF
2184} VkImageType;
2185
2186typedef enum VkPhysicalDeviceType {
2187 VK_PHYSICAL_DEVICE_TYPE_OTHER = 0,
2188 VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1,
2189 VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2,
2190 VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3,
2191 VK_PHYSICAL_DEVICE_TYPE_CPU = 4,
2192 VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF
2193} VkPhysicalDeviceType;
2194
2195typedef enum VkQueryType {
2196 VK_QUERY_TYPE_OCCLUSION = 0,
2197 VK_QUERY_TYPE_PIPELINE_STATISTICS = 1,
2198 VK_QUERY_TYPE_TIMESTAMP = 2,
2199 VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR = 1000023000,
2200 VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004,
2201 VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR = 1000116000,
2202 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR = 1000150000,
2203 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR = 1000150001,
2204 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000,
2205 VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL = 1000210000,
2206 VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR = 1000299000,
2207 VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT = 1000328000,
2208 VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT = 1000382000,
2209 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR = 1000386000,
2210 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR = 1000386001,
2211 VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT = 1000396000,
2212 VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT = 1000396001,
2213 VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF
2214} VkQueryType;
2215
2216typedef enum VkSharingMode {
2217 VK_SHARING_MODE_EXCLUSIVE = 0,
2218 VK_SHARING_MODE_CONCURRENT = 1,
2219 VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF
2220} VkSharingMode;
2221
2222typedef enum VkImageLayout {
2223 VK_IMAGE_LAYOUT_UNDEFINED = 0,
2224 VK_IMAGE_LAYOUT_GENERAL = 1,
2225 VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2,
2226 VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3,
2227 VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4,
2228 VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5,
2229 VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6,
2230 VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7,
2231 VK_IMAGE_LAYOUT_PREINITIALIZED = 8,
2232 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000,
2233 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001,
2234 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL = 1000241000,
2235 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL = 1000241001,
2236 VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL = 1000241002,
2237 VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL = 1000241003,
2238 VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL = 1000314000,
2239 VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL = 1000314001,
2240 VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ = 1000232000,
2241 VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
2242 VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR = 1000024000,
2243 VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR = 1000024001,
2244 VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR = 1000024002,
2245 VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000,
2246 VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000,
2247 VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR = 1000164003,
2248 VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR = 1000299000,
2249 VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR = 1000299001,
2250 VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR = 1000299002,
2251 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT = 1000339000,
2252 VK_IMAGE_LAYOUT_TENSOR_ALIASING_ARM = 1000460000,
2253 VK_IMAGE_LAYOUT_VIDEO_ENCODE_QUANTIZATION_MAP_KHR = 1000553000,
2254 VK_IMAGE_LAYOUT_ZERO_INITIALIZED_EXT = 1000620000,
2255 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
2256 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
2257 VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR,
2258 VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ_KHR = VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ,
2259 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL,
2260 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,
2261 VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL,
2262 VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,
2263 VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL,
2264 VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL,
2265 VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF
2266} VkImageLayout;
2267
2268typedef enum VkComponentSwizzle {
2269 VK_COMPONENT_SWIZZLE_IDENTITY = 0,
2270 VK_COMPONENT_SWIZZLE_ZERO = 1,
2271 VK_COMPONENT_SWIZZLE_ONE = 2,
2272 VK_COMPONENT_SWIZZLE_R = 3,
2273 VK_COMPONENT_SWIZZLE_G = 4,
2274 VK_COMPONENT_SWIZZLE_B = 5,
2275 VK_COMPONENT_SWIZZLE_A = 6,
2276 VK_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF
2277} VkComponentSwizzle;
2278
2279typedef enum VkImageViewType {
2280 VK_IMAGE_VIEW_TYPE_1D = 0,
2281 VK_IMAGE_VIEW_TYPE_2D = 1,
2282 VK_IMAGE_VIEW_TYPE_3D = 2,
2283 VK_IMAGE_VIEW_TYPE_CUBE = 3,
2284 VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4,
2285 VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5,
2286 VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6,
2287 VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF
2288} VkImageViewType;
2289
2290typedef enum VkCommandBufferLevel {
2291 VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0,
2292 VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1,
2293 VK_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF
2294} VkCommandBufferLevel;
2295
2296typedef enum VkIndexType {
2297 VK_INDEX_TYPE_UINT16 = 0,
2298 VK_INDEX_TYPE_UINT32 = 1,
2299 VK_INDEX_TYPE_UINT8 = 1000265000,
2300 VK_INDEX_TYPE_NONE_KHR = 1000165000,
2301 VK_INDEX_TYPE_NONE_NV = VK_INDEX_TYPE_NONE_KHR,
2302 VK_INDEX_TYPE_UINT8_EXT = VK_INDEX_TYPE_UINT8,
2303 VK_INDEX_TYPE_UINT8_KHR = VK_INDEX_TYPE_UINT8,
2304 VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF
2305} VkIndexType;
2306
2307typedef enum VkPipelineCacheHeaderVersion {
2308 VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
2309 VK_PIPELINE_CACHE_HEADER_VERSION_DATA_GRAPH_QCOM = 1000629000,
2310 VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF
2311} VkPipelineCacheHeaderVersion;
2312
2313typedef enum VkBorderColor {
2314 VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
2315 VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1,
2316 VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2,
2317 VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3,
2318 VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4,
2319 VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5,
2320 VK_BORDER_COLOR_FLOAT_CUSTOM_EXT = 1000287003,
2321 VK_BORDER_COLOR_INT_CUSTOM_EXT = 1000287004,
2322 VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF
2323} VkBorderColor;
2324
2325typedef enum VkFilter {
2326 VK_FILTER_NEAREST = 0,
2327 VK_FILTER_LINEAR = 1,
2328 VK_FILTER_CUBIC_EXT = 1000015000,
2329 VK_FILTER_CUBIC_IMG = VK_FILTER_CUBIC_EXT,
2330 VK_FILTER_MAX_ENUM = 0x7FFFFFFF
2331} VkFilter;
2332
2333typedef enum VkSamplerAddressMode {
2334 VK_SAMPLER_ADDRESS_MODE_REPEAT = 0,
2335 VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1,
2336 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2,
2337 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3,
2338 VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4,
2339 // VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR is a legacy alias
2340 VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE,
2341 VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF
2342} VkSamplerAddressMode;
2343
2344typedef enum VkCompareOp {
2345 VK_COMPARE_OP_NEVER = 0,
2346 VK_COMPARE_OP_LESS = 1,
2347 VK_COMPARE_OP_EQUAL = 2,
2348 VK_COMPARE_OP_LESS_OR_EQUAL = 3,
2349 VK_COMPARE_OP_GREATER = 4,
2350 VK_COMPARE_OP_NOT_EQUAL = 5,
2351 VK_COMPARE_OP_GREATER_OR_EQUAL = 6,
2352 VK_COMPARE_OP_ALWAYS = 7,
2353 VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF
2354} VkCompareOp;
2355
2356typedef enum VkSamplerMipmapMode {
2357 VK_SAMPLER_MIPMAP_MODE_NEAREST = 0,
2358 VK_SAMPLER_MIPMAP_MODE_LINEAR = 1,
2359 VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF
2360} VkSamplerMipmapMode;
2361
2362typedef enum VkDescriptorType {
2363 VK_DESCRIPTOR_TYPE_SAMPLER = 0,
2364 VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1,
2365 VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2,
2366 VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3,
2367 VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4,
2368 VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5,
2369 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6,
2370 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7,
2371 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8,
2372 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9,
2373 VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10,
2374 VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK = 1000138000,
2375 VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000,
2376 VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000,
2377 VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM = 1000440000,
2378 VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM = 1000440001,
2379 VK_DESCRIPTOR_TYPE_TENSOR_ARM = 1000460000,
2380 VK_DESCRIPTOR_TYPE_MUTABLE_EXT = 1000351000,
2381 VK_DESCRIPTOR_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_NV = 1000570000,
2382 VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK,
2383 VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = VK_DESCRIPTOR_TYPE_MUTABLE_EXT,
2384 VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF
2385} VkDescriptorType;
2386
2387typedef enum VkPipelineBindPoint {
2388 VK_PIPELINE_BIND_POINT_GRAPHICS = 0,
2389 VK_PIPELINE_BIND_POINT_COMPUTE = 1,
2390#ifdef VK_ENABLE_BETA_EXTENSIONS
2391 VK_PIPELINE_BIND_POINT_EXECUTION_GRAPH_AMDX = 1000134000,
2392#endif
2393 VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR = 1000165000,
2394 VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI = 1000369003,
2395 VK_PIPELINE_BIND_POINT_DATA_GRAPH_ARM = 1000507000,
2396 VK_PIPELINE_BIND_POINT_RAY_TRACING_NV = VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR,
2397 VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF
2398} VkPipelineBindPoint;
2399
2400typedef enum VkBlendFactor {
2401 VK_BLEND_FACTOR_ZERO = 0,
2402 VK_BLEND_FACTOR_ONE = 1,
2403 VK_BLEND_FACTOR_SRC_COLOR = 2,
2404 VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3,
2405 VK_BLEND_FACTOR_DST_COLOR = 4,
2406 VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5,
2407 VK_BLEND_FACTOR_SRC_ALPHA = 6,
2408 VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7,
2409 VK_BLEND_FACTOR_DST_ALPHA = 8,
2410 VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9,
2411 VK_BLEND_FACTOR_CONSTANT_COLOR = 10,
2412 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11,
2413 VK_BLEND_FACTOR_CONSTANT_ALPHA = 12,
2414 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13,
2415 VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14,
2416 VK_BLEND_FACTOR_SRC1_COLOR = 15,
2417 VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16,
2418 VK_BLEND_FACTOR_SRC1_ALPHA = 17,
2419 VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18,
2420 VK_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF
2421} VkBlendFactor;
2422
2423typedef enum VkBlendOp {
2424 VK_BLEND_OP_ADD = 0,
2425 VK_BLEND_OP_SUBTRACT = 1,
2426 VK_BLEND_OP_REVERSE_SUBTRACT = 2,
2427 VK_BLEND_OP_MIN = 3,
2428 VK_BLEND_OP_MAX = 4,
2429 VK_BLEND_OP_ZERO_EXT = 1000148000,
2430 VK_BLEND_OP_SRC_EXT = 1000148001,
2431 VK_BLEND_OP_DST_EXT = 1000148002,
2432 VK_BLEND_OP_SRC_OVER_EXT = 1000148003,
2433 VK_BLEND_OP_DST_OVER_EXT = 1000148004,
2434 VK_BLEND_OP_SRC_IN_EXT = 1000148005,
2435 VK_BLEND_OP_DST_IN_EXT = 1000148006,
2436 VK_BLEND_OP_SRC_OUT_EXT = 1000148007,
2437 VK_BLEND_OP_DST_OUT_EXT = 1000148008,
2438 VK_BLEND_OP_SRC_ATOP_EXT = 1000148009,
2439 VK_BLEND_OP_DST_ATOP_EXT = 1000148010,
2440 VK_BLEND_OP_XOR_EXT = 1000148011,
2441 VK_BLEND_OP_MULTIPLY_EXT = 1000148012,
2442 VK_BLEND_OP_SCREEN_EXT = 1000148013,
2443 VK_BLEND_OP_OVERLAY_EXT = 1000148014,
2444 VK_BLEND_OP_DARKEN_EXT = 1000148015,
2445 VK_BLEND_OP_LIGHTEN_EXT = 1000148016,
2446 VK_BLEND_OP_COLORDODGE_EXT = 1000148017,
2447 VK_BLEND_OP_COLORBURN_EXT = 1000148018,
2448 VK_BLEND_OP_HARDLIGHT_EXT = 1000148019,
2449 VK_BLEND_OP_SOFTLIGHT_EXT = 1000148020,
2450 VK_BLEND_OP_DIFFERENCE_EXT = 1000148021,
2451 VK_BLEND_OP_EXCLUSION_EXT = 1000148022,
2452 VK_BLEND_OP_INVERT_EXT = 1000148023,
2453 VK_BLEND_OP_INVERT_RGB_EXT = 1000148024,
2454 VK_BLEND_OP_LINEARDODGE_EXT = 1000148025,
2455 VK_BLEND_OP_LINEARBURN_EXT = 1000148026,
2456 VK_BLEND_OP_VIVIDLIGHT_EXT = 1000148027,
2457 VK_BLEND_OP_LINEARLIGHT_EXT = 1000148028,
2458 VK_BLEND_OP_PINLIGHT_EXT = 1000148029,
2459 VK_BLEND_OP_HARDMIX_EXT = 1000148030,
2460 VK_BLEND_OP_HSL_HUE_EXT = 1000148031,
2461 VK_BLEND_OP_HSL_SATURATION_EXT = 1000148032,
2462 VK_BLEND_OP_HSL_COLOR_EXT = 1000148033,
2463 VK_BLEND_OP_HSL_LUMINOSITY_EXT = 1000148034,
2464 VK_BLEND_OP_PLUS_EXT = 1000148035,
2465 VK_BLEND_OP_PLUS_CLAMPED_EXT = 1000148036,
2466 VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037,
2467 VK_BLEND_OP_PLUS_DARKER_EXT = 1000148038,
2468 VK_BLEND_OP_MINUS_EXT = 1000148039,
2469 VK_BLEND_OP_MINUS_CLAMPED_EXT = 1000148040,
2470 VK_BLEND_OP_CONTRAST_EXT = 1000148041,
2471 VK_BLEND_OP_INVERT_OVG_EXT = 1000148042,
2472 VK_BLEND_OP_RED_EXT = 1000148043,
2473 VK_BLEND_OP_GREEN_EXT = 1000148044,
2474 VK_BLEND_OP_BLUE_EXT = 1000148045,
2475 VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF
2476} VkBlendOp;
2477
2478typedef enum VkDynamicState {
2479 VK_DYNAMIC_STATE_VIEWPORT = 0,
2480 VK_DYNAMIC_STATE_SCISSOR = 1,
2481 VK_DYNAMIC_STATE_LINE_WIDTH = 2,
2482 VK_DYNAMIC_STATE_DEPTH_BIAS = 3,
2483 VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4,
2484 VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5,
2485 VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6,
2486 VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7,
2487 VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8,
2488 VK_DYNAMIC_STATE_CULL_MODE = 1000267000,
2489 VK_DYNAMIC_STATE_FRONT_FACE = 1000267001,
2490 VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY = 1000267002,
2491 VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT = 1000267003,
2492 VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT = 1000267004,
2493 VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE = 1000267005,
2494 VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE = 1000267006,
2495 VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE = 1000267007,
2496 VK_DYNAMIC_STATE_DEPTH_COMPARE_OP = 1000267008,
2497 VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE = 1000267009,
2498 VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE = 1000267010,
2499 VK_DYNAMIC_STATE_STENCIL_OP = 1000267011,
2500 VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE = 1000377001,
2501 VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE = 1000377002,
2502 VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE = 1000377004,
2503 VK_DYNAMIC_STATE_LINE_STIPPLE = 1000259000,
2504 VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000,
2505 VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000,
2506 VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT = 1000099001,
2507 VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT = 1000099002,
2508 VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000,
2509 VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR = 1000347000,
2510 VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV = 1000164004,
2511 VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = 1000164006,
2512 VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV = 1000205000,
2513 VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = 1000205001,
2514 VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR = 1000226000,
2515 VK_DYNAMIC_STATE_VERTEX_INPUT_EXT = 1000352000,
2516 VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT = 1000377000,
2517 VK_DYNAMIC_STATE_LOGIC_OP_EXT = 1000377003,
2518 VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT = 1000381000,
2519 VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT = 1000455003,
2520 VK_DYNAMIC_STATE_POLYGON_MODE_EXT = 1000455004,
2521 VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT = 1000455005,
2522 VK_DYNAMIC_STATE_SAMPLE_MASK_EXT = 1000455006,
2523 VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT = 1000455007,
2524 VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT = 1000455008,
2525 VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT = 1000455009,
2526 VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT = 1000455010,
2527 VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT = 1000455011,
2528 VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT = 1000455012,
2529 VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT = 1000455002,
2530 VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT = 1000455013,
2531 VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT = 1000455014,
2532 VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT = 1000455015,
2533 VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT = 1000455016,
2534 VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT = 1000455017,
2535 VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT = 1000455018,
2536 VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT = 1000455019,
2537 VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT = 1000455020,
2538 VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT = 1000455021,
2539 VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT = 1000455022,
2540 VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV = 1000455023,
2541 VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV = 1000455024,
2542 VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV = 1000455025,
2543 VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV = 1000455026,
2544 VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV = 1000455027,
2545 VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV = 1000455028,
2546 VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV = 1000455029,
2547 VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV = 1000455030,
2548 VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV = 1000455031,
2549 VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV = 1000455032,
2550 VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT = 1000524000,
2551 VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT = 1000582000,
2552 VK_DYNAMIC_STATE_LINE_STIPPLE_EXT = VK_DYNAMIC_STATE_LINE_STIPPLE,
2553 VK_DYNAMIC_STATE_CULL_MODE_EXT = VK_DYNAMIC_STATE_CULL_MODE,
2554 VK_DYNAMIC_STATE_FRONT_FACE_EXT = VK_DYNAMIC_STATE_FRONT_FACE,
2555 VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT = VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY,
2556 VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT = VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT,
2557 VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT = VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT,
2558 VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT = VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE,
2559 VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE,
2560 VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE,
2561 VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT = VK_DYNAMIC_STATE_DEPTH_COMPARE_OP,
2562 VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE,
2563 VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE,
2564 VK_DYNAMIC_STATE_STENCIL_OP_EXT = VK_DYNAMIC_STATE_STENCIL_OP,
2565 VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT = VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE,
2566 VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE,
2567 VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT = VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE,
2568 VK_DYNAMIC_STATE_LINE_STIPPLE_KHR = VK_DYNAMIC_STATE_LINE_STIPPLE,
2569 VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF
2570} VkDynamicState;
2571
2572typedef enum VkFrontFace {
2573 VK_FRONT_FACE_COUNTER_CLOCKWISE = 0,
2574 VK_FRONT_FACE_CLOCKWISE = 1,
2575 VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF
2576} VkFrontFace;
2577
2578typedef enum VkLogicOp {
2579 VK_LOGIC_OP_CLEAR = 0,
2580 VK_LOGIC_OP_AND = 1,
2581 VK_LOGIC_OP_AND_REVERSE = 2,
2582 VK_LOGIC_OP_COPY = 3,
2583 VK_LOGIC_OP_AND_INVERTED = 4,
2584 VK_LOGIC_OP_NO_OP = 5,
2585 VK_LOGIC_OP_XOR = 6,
2586 VK_LOGIC_OP_OR = 7,
2587 VK_LOGIC_OP_NOR = 8,
2588 VK_LOGIC_OP_EQUIVALENT = 9,
2589 VK_LOGIC_OP_INVERT = 10,
2590 VK_LOGIC_OP_OR_REVERSE = 11,
2591 VK_LOGIC_OP_COPY_INVERTED = 12,
2592 VK_LOGIC_OP_OR_INVERTED = 13,
2593 VK_LOGIC_OP_NAND = 14,
2594 VK_LOGIC_OP_SET = 15,
2595 VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF
2596} VkLogicOp;
2597
2598typedef enum VkStencilOp {
2599 VK_STENCIL_OP_KEEP = 0,
2600 VK_STENCIL_OP_ZERO = 1,
2601 VK_STENCIL_OP_REPLACE = 2,
2602 VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3,
2603 VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4,
2604 VK_STENCIL_OP_INVERT = 5,
2605 VK_STENCIL_OP_INCREMENT_AND_WRAP = 6,
2606 VK_STENCIL_OP_DECREMENT_AND_WRAP = 7,
2607 VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF
2608} VkStencilOp;
2609
2610typedef enum VkVertexInputRate {
2611 VK_VERTEX_INPUT_RATE_VERTEX = 0,
2612 VK_VERTEX_INPUT_RATE_INSTANCE = 1,
2613 VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF
2614} VkVertexInputRate;
2615
2616typedef enum VkPrimitiveTopology {
2617 VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0,
2618 VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1,
2619 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2,
2620 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3,
2621 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4,
2622 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5,
2623 VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6,
2624 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7,
2625 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8,
2626 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9,
2627 VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10,
2628 VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF
2629} VkPrimitiveTopology;
2630
2631typedef enum VkPolygonMode {
2632 VK_POLYGON_MODE_FILL = 0,
2633 VK_POLYGON_MODE_LINE = 1,
2634 VK_POLYGON_MODE_POINT = 2,
2635 VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000,
2636 VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF
2637} VkPolygonMode;
2638
2639typedef enum VkAttachmentLoadOp {
2640 VK_ATTACHMENT_LOAD_OP_LOAD = 0,
2641 VK_ATTACHMENT_LOAD_OP_CLEAR = 1,
2642 VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2,
2643 VK_ATTACHMENT_LOAD_OP_NONE = 1000400000,
2644 VK_ATTACHMENT_LOAD_OP_NONE_EXT = VK_ATTACHMENT_LOAD_OP_NONE,
2645 VK_ATTACHMENT_LOAD_OP_NONE_KHR = VK_ATTACHMENT_LOAD_OP_NONE,
2646 VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF
2647} VkAttachmentLoadOp;
2648
2649typedef enum VkAttachmentStoreOp {
2650 VK_ATTACHMENT_STORE_OP_STORE = 0,
2651 VK_ATTACHMENT_STORE_OP_DONT_CARE = 1,
2652 VK_ATTACHMENT_STORE_OP_NONE = 1000301000,
2653 VK_ATTACHMENT_STORE_OP_NONE_KHR = VK_ATTACHMENT_STORE_OP_NONE,
2654 VK_ATTACHMENT_STORE_OP_NONE_QCOM = VK_ATTACHMENT_STORE_OP_NONE,
2655 VK_ATTACHMENT_STORE_OP_NONE_EXT = VK_ATTACHMENT_STORE_OP_NONE,
2656 VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF
2657} VkAttachmentStoreOp;
2658
2659typedef enum VkSubpassContents {
2660 VK_SUBPASS_CONTENTS_INLINE = 0,
2661 VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1,
2662 VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR = 1000451000,
2663 VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT = VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR,
2664 VK_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF
2665} VkSubpassContents;
2666
2667typedef enum VkFormatFeatureFlagBits {
2668 VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001,
2669 VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002,
2670 VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004,
2671 VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008,
2672 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010,
2673 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020,
2674 VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040,
2675 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080,
2676 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100,
2677 VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200,
2678 VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400,
2679 VK_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800,
2680 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000,
2681 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 0x00004000,
2682 VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 0x00008000,
2683 VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000,
2684 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000,
2685 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000,
2686 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000,
2687 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000,
2688 VK_FORMAT_FEATURE_DISJOINT_BIT = 0x00400000,
2689 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000,
2690 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0x00010000,
2691 VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR = 0x02000000,
2692 VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR = 0x04000000,
2693 VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0x20000000,
2694 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 0x00002000,
2695 VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000,
2696 VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x40000000,
2697 VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR = 0x08000000,
2698 VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR = 0x10000000,
2699 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT,
2700 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,
2701 VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_DST_BIT,
2702 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT,
2703 VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,
2704 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,
2705 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,
2706 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,
2707 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,
2708 VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = VK_FORMAT_FEATURE_DISJOINT_BIT,
2709 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,
2710 VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2711} VkFormatFeatureFlagBits;
2712typedef VkFlags VkFormatFeatureFlags;
2713
2714typedef enum VkImageCreateFlagBits {
2715 VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001,
2716 VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
2717 VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
2718 VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008,
2719 VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010,
2720 VK_IMAGE_CREATE_ALIAS_BIT = 0x00000400,
2721 VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 0x00000040,
2722 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 0x00000020,
2723 VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 0x00000080,
2724 VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0x00000100,
2725 VK_IMAGE_CREATE_PROTECTED_BIT = 0x00000800,
2726 VK_IMAGE_CREATE_DISJOINT_BIT = 0x00000200,
2727 VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 0x00002000,
2728 VK_IMAGE_CREATE_DESCRIPTOR_HEAP_CAPTURE_REPLAY_BIT_EXT = 0x00010000,
2729 VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000,
2730 VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 0x00004000,
2731 VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT = 0x00040000,
2732 VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT = 0x00020000,
2733 VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR = 0x00100000,
2734 VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_EXT = 0x00008000,
2735 VK_IMAGE_CREATE_ALIAS_SINGLE_LAYER_DESCRIPTOR_BIT_KHR = 0x00400000,
2736 VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,
2737 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,
2738 VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,
2739 VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,
2740 VK_IMAGE_CREATE_DISJOINT_BIT_KHR = VK_IMAGE_CREATE_DISJOINT_BIT,
2741 VK_IMAGE_CREATE_ALIAS_BIT_KHR = VK_IMAGE_CREATE_ALIAS_BIT,
2742 VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = VK_IMAGE_CREATE_DESCRIPTOR_HEAP_CAPTURE_REPLAY_BIT_EXT,
2743 VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM = VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_EXT,
2744 VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2745} VkImageCreateFlagBits;
2746typedef VkFlags VkImageCreateFlags;
2747
2748typedef enum VkSampleCountFlagBits {
2749 VK_SAMPLE_COUNT_1_BIT = 0x00000001,
2750 VK_SAMPLE_COUNT_2_BIT = 0x00000002,
2751 VK_SAMPLE_COUNT_4_BIT = 0x00000004,
2752 VK_SAMPLE_COUNT_8_BIT = 0x00000008,
2753 VK_SAMPLE_COUNT_16_BIT = 0x00000010,
2754 VK_SAMPLE_COUNT_32_BIT = 0x00000020,
2755 VK_SAMPLE_COUNT_64_BIT = 0x00000040,
2756 VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2757} VkSampleCountFlagBits;
2758typedef VkFlags VkSampleCountFlags;
2759
2760typedef enum VkImageUsageFlagBits {
2761 VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001,
2762 VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002,
2763 VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004,
2764 VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008,
2765 VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010,
2766 VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020,
2767 VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040,
2768 VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080,
2769 VK_IMAGE_USAGE_HOST_TRANSFER_BIT = 0x00400000,
2770 VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0x00000400,
2771 VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0x00000800,
2772 VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR = 0x00001000,
2773 VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x00000200,
2774 VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00000100,
2775 VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0x00002000,
2776 VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0x00004000,
2777 VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR = 0x00008000,
2778 VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x00080000,
2779 VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI = 0x00040000,
2780 VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM = 0x00100000,
2781 VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM = 0x00200000,
2782 VK_IMAGE_USAGE_TENSOR_ALIASING_BIT_ARM = 0x00800000,
2783 VK_IMAGE_USAGE_TILE_MEMORY_BIT_QCOM = 0x08000000,
2784 VK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x02000000,
2785 VK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR = 0x04000000,
2786 VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
2787 VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT = VK_IMAGE_USAGE_HOST_TRANSFER_BIT,
2788 VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2789} VkImageUsageFlagBits;
2790typedef VkFlags VkImageUsageFlags;
2791
2792typedef enum VkInstanceCreateFlagBits {
2793 VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR = 0x00000001,
2794 VK_INSTANCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2795} VkInstanceCreateFlagBits;
2796typedef VkFlags VkInstanceCreateFlags;
2797
2798typedef enum VkMemoryHeapFlagBits {
2799 VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
2800 VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002,
2801 VK_MEMORY_HEAP_TILE_MEMORY_BIT_QCOM = 0x00000008,
2802 VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,
2803 VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2804} VkMemoryHeapFlagBits;
2805typedef VkFlags VkMemoryHeapFlags;
2806
2807typedef enum VkMemoryPropertyFlagBits {
2808 VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
2809 VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002,
2810 VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
2811 VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
2812 VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
2813 VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020,
2814 VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD = 0x00000040,
2815 VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD = 0x00000080,
2816 VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV = 0x00000100,
2817 VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2818} VkMemoryPropertyFlagBits;
2819typedef VkFlags VkMemoryPropertyFlags;
2820
2821typedef enum VkQueueFlagBits {
2822 VK_QUEUE_GRAPHICS_BIT = 0x00000001,
2823 VK_QUEUE_COMPUTE_BIT = 0x00000002,
2824 VK_QUEUE_TRANSFER_BIT = 0x00000004,
2825 VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008,
2826 VK_QUEUE_PROTECTED_BIT = 0x00000010,
2827 VK_QUEUE_VIDEO_DECODE_BIT_KHR = 0x00000020,
2828 VK_QUEUE_VIDEO_ENCODE_BIT_KHR = 0x00000040,
2829 VK_QUEUE_OPTICAL_FLOW_BIT_NV = 0x00000100,
2830 VK_QUEUE_DATA_GRAPH_BIT_ARM = 0x00000400,
2831 VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2832} VkQueueFlagBits;
2833typedef VkFlags VkQueueFlags;
2834
2835typedef enum VkShaderStageFlagBits {
2836 VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
2837 VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
2838 VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
2839 VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
2840 VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
2841 VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
2842 VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
2843 VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
2844 VK_SHADER_STAGE_RAYGEN_BIT_KHR = 0x00000100,
2845 VK_SHADER_STAGE_ANY_HIT_BIT_KHR = 0x00000200,
2846 VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR = 0x00000400,
2847 VK_SHADER_STAGE_MISS_BIT_KHR = 0x00000800,
2848 VK_SHADER_STAGE_INTERSECTION_BIT_KHR = 0x00001000,
2849 VK_SHADER_STAGE_CALLABLE_BIT_KHR = 0x00002000,
2850 VK_SHADER_STAGE_TASK_BIT_EXT = 0x00000040,
2851 VK_SHADER_STAGE_MESH_BIT_EXT = 0x00000080,
2852 VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI = 0x00004000,
2853 VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI = 0x00080000,
2854 VK_SHADER_STAGE_RAYGEN_BIT_NV = VK_SHADER_STAGE_RAYGEN_BIT_KHR,
2855 VK_SHADER_STAGE_ANY_HIT_BIT_NV = VK_SHADER_STAGE_ANY_HIT_BIT_KHR,
2856 VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR,
2857 VK_SHADER_STAGE_MISS_BIT_NV = VK_SHADER_STAGE_MISS_BIT_KHR,
2858 VK_SHADER_STAGE_INTERSECTION_BIT_NV = VK_SHADER_STAGE_INTERSECTION_BIT_KHR,
2859 VK_SHADER_STAGE_CALLABLE_BIT_NV = VK_SHADER_STAGE_CALLABLE_BIT_KHR,
2860 VK_SHADER_STAGE_TASK_BIT_NV = VK_SHADER_STAGE_TASK_BIT_EXT,
2861 VK_SHADER_STAGE_MESH_BIT_NV = VK_SHADER_STAGE_MESH_BIT_EXT,
2862 VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2863} VkShaderStageFlagBits;
2864typedef VkFlags VkShaderStageFlags;
2865typedef VkFlags VkDeviceCreateFlags;
2866
2867typedef enum VkDeviceQueueCreateFlagBits {
2868 VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0x00000001,
2869 VK_DEVICE_QUEUE_CREATE_INTERNALLY_SYNCHRONIZED_BIT_KHR = 0x00000004,
2870 VK_DEVICE_QUEUE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2871} VkDeviceQueueCreateFlagBits;
2872typedef VkFlags VkDeviceQueueCreateFlags;
2873
2874typedef enum VkPipelineStageFlagBits {
2875 VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001,
2876 VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002,
2877 VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004,
2878 VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008,
2879 VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010,
2880 VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020,
2881 VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040,
2882 VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080,
2883 VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100,
2884 VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200,
2885 VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400,
2886 VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800,
2887 VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000,
2888 VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000,
2889 VK_PIPELINE_STAGE_HOST_BIT = 0x00004000,
2890 VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000,
2891 VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000,
2892 VK_PIPELINE_STAGE_NONE = 0,
2893 VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000,
2894 VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000,
2895 VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000,
2896 VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR = 0x00200000,
2897 VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000,
2898 VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00400000,
2899 VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT = 0x00080000,
2900 VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT = 0x00100000,
2901 VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_EXT = 0x00020000,
2902 VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
2903 VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,
2904 VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,
2905 VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT,
2906 VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT,
2907 VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV = VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_EXT,
2908 VK_PIPELINE_STAGE_NONE_KHR = VK_PIPELINE_STAGE_NONE,
2909 VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2910} VkPipelineStageFlagBits;
2911typedef VkFlags VkPipelineStageFlags;
2912
2913typedef enum VkMemoryMapFlagBits {
2914 VK_MEMORY_MAP_PLACED_BIT_EXT = 0x00000001,
2915 VK_MEMORY_MAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2916} VkMemoryMapFlagBits;
2917typedef VkFlags VkMemoryMapFlags;
2918
2919typedef enum VkImageAspectFlagBits {
2920 VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
2921 VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
2922 VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
2923 VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
2924 VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010,
2925 VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020,
2926 VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040,
2927 VK_IMAGE_ASPECT_NONE = 0,
2928 VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0x00000080,
2929 VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0x00000100,
2930 VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0x00000200,
2931 VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0x00000400,
2932 VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = VK_IMAGE_ASPECT_PLANE_0_BIT,
2933 VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = VK_IMAGE_ASPECT_PLANE_1_BIT,
2934 VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = VK_IMAGE_ASPECT_PLANE_2_BIT,
2935 VK_IMAGE_ASPECT_NONE_KHR = VK_IMAGE_ASPECT_NONE,
2936 VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2937} VkImageAspectFlagBits;
2938typedef VkFlags VkImageAspectFlags;
2939
2940typedef enum VkSparseImageFormatFlagBits {
2941 VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001,
2942 VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 0x00000002,
2943 VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004,
2944 VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2945} VkSparseImageFormatFlagBits;
2946typedef VkFlags VkSparseImageFormatFlags;
2947
2948typedef enum VkSparseMemoryBindFlagBits {
2949 VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
2950 VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2951} VkSparseMemoryBindFlagBits;
2952typedef VkFlags VkSparseMemoryBindFlags;
2953
2954typedef enum VkFenceCreateFlagBits {
2955 VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
2956 VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2957} VkFenceCreateFlagBits;
2958typedef VkFlags VkFenceCreateFlags;
2959typedef VkFlags VkSemaphoreCreateFlags;
2960
2961typedef enum VkQueryPoolCreateFlagBits {
2962 VK_QUERY_POOL_CREATE_RESET_BIT_KHR = 0x00000001,
2963 VK_QUERY_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2964} VkQueryPoolCreateFlagBits;
2965typedef VkFlags VkQueryPoolCreateFlags;
2966
2967typedef enum VkQueryPipelineStatisticFlagBits {
2968 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001,
2969 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002,
2970 VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004,
2971 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008,
2972 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010,
2973 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020,
2974 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040,
2975 VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080,
2976 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100,
2977 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200,
2978 VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400,
2979 VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT = 0x00000800,
2980 VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT = 0x00001000,
2981 VK_QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI = 0x00002000,
2982 VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2983} VkQueryPipelineStatisticFlagBits;
2984typedef VkFlags VkQueryPipelineStatisticFlags;
2985
2986typedef enum VkQueryResultFlagBits {
2987 VK_QUERY_RESULT_64_BIT = 0x00000001,
2988 VK_QUERY_RESULT_WAIT_BIT = 0x00000002,
2989 VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004,
2990 VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008,
2991 VK_QUERY_RESULT_WITH_STATUS_BIT_KHR = 0x00000010,
2992 VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2993} VkQueryResultFlagBits;
2994typedef VkFlags VkQueryResultFlags;
2995
2996typedef enum VkBufferCreateFlagBits {
2997 VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001,
2998 VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
2999 VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
3000 VK_BUFFER_CREATE_PROTECTED_BIT = 0x00000008,
3001 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0x00000010,
3002 VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000020,
3003 VK_BUFFER_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR = 0x00000040,
3004 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
3005 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
3006 VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3007} VkBufferCreateFlagBits;
3008typedef VkFlags VkBufferCreateFlags;
3009
3010typedef enum VkBufferUsageFlagBits {
3011 VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001,
3012 VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002,
3013 VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004,
3014 VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008,
3015 VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010,
3016 VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020,
3017 VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040,
3018 VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080,
3019 VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100,
3020 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = 0x00020000,
3021 VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0x00002000,
3022 VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0x00004000,
3023 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800,
3024 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000,
3025 VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200,
3026#ifdef VK_ENABLE_BETA_EXTENSIONS
3027 VK_BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX = 0x02000000,
3028#endif
3029 VK_BUFFER_USAGE_DESCRIPTOR_HEAP_BIT_EXT = 0x10000000,
3030 VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 0x00080000,
3031 VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 0x00100000,
3032 VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR = 0x00000400,
3033 VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0x00008000,
3034 VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0x00010000,
3035 VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 0x00200000,
3036 VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00400000,
3037 VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 0x04000000,
3038 VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 0x00800000,
3039 VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT = 0x01000000,
3040 VK_BUFFER_USAGE_TILE_MEMORY_BIT_QCOM = 0x08000000,
3041 VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR,
3042 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
3043 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
3044 VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3045} VkBufferUsageFlagBits;
3046typedef VkFlags VkBufferUsageFlags;
3047
3048typedef enum VkImageViewCreateFlagBits {
3049 VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 0x00000001,
3050 VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000004,
3051 VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = 0x00000002,
3052 VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3053} VkImageViewCreateFlagBits;
3054typedef VkFlags VkImageViewCreateFlags;
3055
3056typedef enum VkAccessFlagBits {
3057 VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
3058 VK_ACCESS_INDEX_READ_BIT = 0x00000002,
3059 VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
3060 VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
3061 VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
3062 VK_ACCESS_SHADER_READ_BIT = 0x00000020,
3063 VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
3064 VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
3065 VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
3066 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
3067 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
3068 VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
3069 VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
3070 VK_ACCESS_HOST_READ_BIT = 0x00002000,
3071 VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
3072 VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
3073 VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
3074 VK_ACCESS_NONE = 0,
3075 VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000,
3076 VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000,
3077 VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000,
3078 VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000,
3079 VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000,
3080 VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000,
3081 VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000,
3082 VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000,
3083 VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000,
3084 VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_EXT = 0x00020000,
3085 VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_EXT = 0x00040000,
3086 VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR,
3087 VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR,
3088 VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,
3089 VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV = VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_EXT,
3090 VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV = VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_EXT,
3091 VK_ACCESS_NONE_KHR = VK_ACCESS_NONE,
3092 VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3093} VkAccessFlagBits;
3094typedef VkFlags VkAccessFlags;
3095
3096typedef enum VkDependencyFlagBits {
3097 VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
3098 VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004,
3099 VK_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002,
3100 VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT = 0x00000008,
3101 VK_DEPENDENCY_QUEUE_FAMILY_OWNERSHIP_TRANSFER_USE_ALL_STAGES_BIT_KHR = 0x00000020,
3102 VK_DEPENDENCY_ASYMMETRIC_EVENT_BIT_KHR = 0x00000040,
3103 VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = VK_DEPENDENCY_VIEW_LOCAL_BIT,
3104 VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = VK_DEPENDENCY_DEVICE_GROUP_BIT,
3105 VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3106} VkDependencyFlagBits;
3107typedef VkFlags VkDependencyFlags;
3108
3109typedef enum VkCommandPoolCreateFlagBits {
3110 VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001,
3111 VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002,
3112 VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 0x00000004,
3113 VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3114} VkCommandPoolCreateFlagBits;
3115typedef VkFlags VkCommandPoolCreateFlags;
3116
3117typedef enum VkCommandPoolResetFlagBits {
3118 VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
3119 VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3120} VkCommandPoolResetFlagBits;
3121typedef VkFlags VkCommandPoolResetFlags;
3122
3123typedef enum VkQueryControlFlagBits {
3124 VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
3125 VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3126} VkQueryControlFlagBits;
3127typedef VkFlags VkQueryControlFlags;
3128
3129typedef enum VkCommandBufferUsageFlagBits {
3130 VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
3131 VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
3132 VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
3133 VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3134} VkCommandBufferUsageFlagBits;
3135typedef VkFlags VkCommandBufferUsageFlags;
3136
3137typedef enum VkCommandBufferResetFlagBits {
3138 VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
3139 VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3140} VkCommandBufferResetFlagBits;
3141typedef VkFlags VkCommandBufferResetFlags;
3142
3143typedef enum VkEventCreateFlagBits {
3144 VK_EVENT_CREATE_DEVICE_ONLY_BIT = 0x00000001,
3145 VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR = VK_EVENT_CREATE_DEVICE_ONLY_BIT,
3146 VK_EVENT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3147} VkEventCreateFlagBits;
3148typedef VkFlags VkEventCreateFlags;
3149typedef VkFlags VkBufferViewCreateFlags;
3150typedef VkFlags VkShaderModuleCreateFlags;
3151
3152typedef enum VkPipelineCacheCreateFlagBits {
3153 VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT = 0x00000001,
3154 VK_PIPELINE_CACHE_CREATE_INTERNALLY_SYNCHRONIZED_MERGE_BIT_KHR = 0x00000008,
3155 VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT = VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT,
3156 VK_PIPELINE_CACHE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3157} VkPipelineCacheCreateFlagBits;
3158typedef VkFlags VkPipelineCacheCreateFlags;
3159
3160typedef enum VkPipelineCreateFlagBits {
3161 VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
3162 VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
3163 VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
3164 VK_PIPELINE_CREATE_DISPATCH_BASE_BIT = 0x00000010,
3165 VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008,
3166 VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT = 0x00000100,
3167 VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT = 0x00000200,
3168 VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT = 0x08000000,
3169 VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT = 0x40000000,
3170 VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = 0x00004000,
3171 VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = 0x00008000,
3172 VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = 0x00010000,
3173 VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = 0x00020000,
3174 VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = 0x00001000,
3175 VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR = 0x00002000,
3176 VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR = 0x00080000,
3177 VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV = 0x00000020,
3178 VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00400000,
3179 VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00200000,
3180 VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR = 0x00000040,
3181 VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x00000080,
3182 VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV = 0x00040000,
3183 VK_PIPELINE_CREATE_LIBRARY_BIT_KHR = 0x00000800,
3184 VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 0x20000000,
3185 VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 0x00800000,
3186 VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT = 0x00000400,
3187 VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV = 0x00100000,
3188 VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x02000000,
3189 VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x04000000,
3190 VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 0x01000000,
3191#ifdef VK_ENABLE_BETA_EXTENSIONS
3192 VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV = 0x10000000,
3193#endif
3194 // VK_PIPELINE_CREATE_DISPATCH_BASE is a legacy alias
3195 VK_PIPELINE_CREATE_DISPATCH_BASE = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,
3196 VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,
3197 VK_PIPELINE_CREATE_DISPATCH_BASE_BIT_KHR = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,
3198 // VK_PIPELINE_CREATE_DISPATCH_BASE_KHR is a legacy alias
3199 VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,
3200 // VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT is a legacy alias
3201 VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT,
3202 // VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR is a legacy alias
3203 VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
3204 VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT = VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT,
3205 VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT = VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT,
3206 VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT = VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT,
3207 VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT = VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT,
3208 VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3209} VkPipelineCreateFlagBits;
3210typedef VkFlags VkPipelineCreateFlags;
3211
3212typedef enum VkPipelineLayoutCreateFlagBits {
3213 VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT = 0x00000002,
3214 VK_PIPELINE_LAYOUT_CREATE_NO_TASK_SHADER_BIT_KHR = 0x00000004,
3215 VK_PIPELINE_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3216} VkPipelineLayoutCreateFlagBits;
3217typedef VkFlags VkPipelineLayoutCreateFlags;
3218
3219typedef enum VkPipelineShaderStageCreateFlagBits {
3220 VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT = 0x00000001,
3221 VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT = 0x00000002,
3222 VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT,
3223 VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT,
3224 VK_PIPELINE_SHADER_STAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3225} VkPipelineShaderStageCreateFlagBits;
3226typedef VkFlags VkPipelineShaderStageCreateFlags;
3227
3228typedef enum VkSamplerCreateFlagBits {
3229 VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT = 0x00000001,
3230 VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT = 0x00000002,
3231 VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000008,
3232 VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT = 0x00000004,
3233 VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM = 0x00000010,
3234 VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3235} VkSamplerCreateFlagBits;
3236typedef VkFlags VkSamplerCreateFlags;
3237
3238typedef enum VkDescriptorPoolCreateFlagBits {
3239 VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
3240 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 0x00000002,
3241 VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT = 0x00000004,
3242 VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV = 0x00000008,
3243 VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV = 0x00000010,
3244 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT,
3245 VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT,
3246 VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3247} VkDescriptorPoolCreateFlagBits;
3248typedef VkFlags VkDescriptorPoolCreateFlags;
3249typedef VkFlags VkDescriptorPoolResetFlags;
3250
3251typedef enum VkDescriptorSetLayoutCreateFlagBits {
3252 VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = 0x00000002,
3253 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT = 0x00000001,
3254 VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00000010,
3255 VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT = 0x00000020,
3256 VK_DESCRIPTOR_SET_LAYOUT_CREATE_INDIRECT_BINDABLE_BIT_NV = 0x00000080,
3257 VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT = 0x00000004,
3258 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PER_STAGE_BIT_NV = 0x00000040,
3259 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT,
3260 VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,
3261 VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE = VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT,
3262 VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3263} VkDescriptorSetLayoutCreateFlagBits;
3264typedef VkFlags VkDescriptorSetLayoutCreateFlags;
3265
3266typedef enum VkColorComponentFlagBits {
3267 VK_COLOR_COMPONENT_R_BIT = 0x00000001,
3268 VK_COLOR_COMPONENT_G_BIT = 0x00000002,
3269 VK_COLOR_COMPONENT_B_BIT = 0x00000004,
3270 VK_COLOR_COMPONENT_A_BIT = 0x00000008,
3271 VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3272} VkColorComponentFlagBits;
3273typedef VkFlags VkColorComponentFlags;
3274
3275typedef enum VkCullModeFlagBits {
3276 VK_CULL_MODE_NONE = 0,
3277 VK_CULL_MODE_FRONT_BIT = 0x00000001,
3278 VK_CULL_MODE_BACK_BIT = 0x00000002,
3279 VK_CULL_MODE_FRONT_AND_BACK = 0x00000003,
3280 VK_CULL_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3281} VkCullModeFlagBits;
3282typedef VkFlags VkCullModeFlags;
3283
3284typedef enum VkPipelineColorBlendStateCreateFlagBits {
3285 VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT = 0x00000001,
3286 VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM = VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT,
3287 VK_PIPELINE_COLOR_BLEND_STATE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3288} VkPipelineColorBlendStateCreateFlagBits;
3289typedef VkFlags VkPipelineColorBlendStateCreateFlags;
3290
3291typedef enum VkPipelineDepthStencilStateCreateFlagBits {
3292 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 0x00000001,
3293 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 0x00000002,
3294 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,
3295 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,
3296 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3297} VkPipelineDepthStencilStateCreateFlagBits;
3298typedef VkFlags VkPipelineDepthStencilStateCreateFlags;
3299typedef VkFlags VkPipelineDynamicStateCreateFlags;
3300typedef VkFlags VkPipelineInputAssemblyStateCreateFlags;
3301typedef VkFlags VkPipelineMultisampleStateCreateFlags;
3302typedef VkFlags VkPipelineRasterizationStateCreateFlags;
3303typedef VkFlags VkPipelineTessellationStateCreateFlags;
3304typedef VkFlags VkPipelineVertexInputStateCreateFlags;
3305typedef VkFlags VkPipelineViewportStateCreateFlags;
3306
3307typedef enum VkAttachmentDescriptionFlagBits {
3308 VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001,
3309 VK_ATTACHMENT_DESCRIPTION_RESOLVE_SKIP_TRANSFER_FUNCTION_BIT_KHR = 0x00000002,
3310 VK_ATTACHMENT_DESCRIPTION_RESOLVE_ENABLE_TRANSFER_FUNCTION_BIT_KHR = 0x00000004,
3311 VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3312} VkAttachmentDescriptionFlagBits;
3313typedef VkFlags VkAttachmentDescriptionFlags;
3314
3315typedef enum VkFramebufferCreateFlagBits {
3316 VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT = 0x00000001,
3317 VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT,
3318 VK_FRAMEBUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3319} VkFramebufferCreateFlagBits;
3320typedef VkFlags VkFramebufferCreateFlags;
3321
3322typedef enum VkRenderPassCreateFlagBits {
3323 VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM = 0x00000002,
3324 VK_RENDER_PASS_CREATE_PER_LAYER_FRAGMENT_DENSITY_BIT_VALVE = 0x00000004,
3325 VK_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3326} VkRenderPassCreateFlagBits;
3327typedef VkFlags VkRenderPassCreateFlags;
3328
3329typedef enum VkSubpassDescriptionFlagBits {
3330 VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001,
3331 VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002,
3332 VK_SUBPASS_DESCRIPTION_TILE_SHADING_APRON_BIT_QCOM = 0x00000100,
3333 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT = 0x00000010,
3334 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 0x00000020,
3335 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 0x00000040,
3336 VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x00000080,
3337 VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_EXT = 0x00000004,
3338 VK_SUBPASS_DESCRIPTION_CUSTOM_RESOLVE_BIT_EXT = 0x00000008,
3339 VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM = VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_EXT,
3340 VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM = VK_SUBPASS_DESCRIPTION_CUSTOM_RESOLVE_BIT_EXT,
3341 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT,
3342 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT,
3343 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT,
3344 VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3345} VkSubpassDescriptionFlagBits;
3346typedef VkFlags VkSubpassDescriptionFlags;
3347
3348typedef enum VkStencilFaceFlagBits {
3349 VK_STENCIL_FACE_FRONT_BIT = 0x00000001,
3350 VK_STENCIL_FACE_BACK_BIT = 0x00000002,
3351 VK_STENCIL_FACE_FRONT_AND_BACK = 0x00000003,
3352 // VK_STENCIL_FRONT_AND_BACK is a legacy alias
3353 VK_STENCIL_FRONT_AND_BACK = VK_STENCIL_FACE_FRONT_AND_BACK,
3354 VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3355} VkStencilFaceFlagBits;
3356typedef VkFlags VkStencilFaceFlags;
3357typedef struct VkExtent2D {
3358 uint32_t width;
3359 uint32_t height;
3360} VkExtent2D;
3361
3362typedef struct VkExtent3D {
3363 uint32_t width;
3364 uint32_t height;
3365 uint32_t depth;
3366} VkExtent3D;
3367
3368typedef struct VkOffset2D {
3369 int32_t x;
3370 int32_t y;
3371} VkOffset2D;
3372
3373typedef struct VkOffset3D {
3374 int32_t x;
3375 int32_t y;
3376 int32_t z;
3377} VkOffset3D;
3378
3379typedef struct VkRect2D {
3380 VkOffset2D offset;
3381 VkExtent2D extent;
3382} VkRect2D;
3383
3384typedef struct VkBaseInStructure {
3385 VkStructureType sType;
3386 const struct VkBaseInStructure* pNext;
3387} VkBaseInStructure;
3388
3389typedef struct VkBaseOutStructure {
3390 VkStructureType sType;
3391 struct VkBaseOutStructure* pNext;
3392} VkBaseOutStructure;
3393
3394typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)(
3395 void* pUserData,
3396 size_t size,
3397 size_t alignment,
3398 VkSystemAllocationScope allocationScope);
3399
3400typedef void (VKAPI_PTR *PFN_vkFreeFunction)(
3401 void* pUserData,
3402 void* pMemory);
3403
3404typedef void (VKAPI_PTR *PFN_vkInternalAllocationNotification)(
3405 void* pUserData,
3406 size_t size,
3407 VkInternalAllocationType allocationType,
3408 VkSystemAllocationScope allocationScope);
3409
3410typedef void (VKAPI_PTR *PFN_vkInternalFreeNotification)(
3411 void* pUserData,
3412 size_t size,
3413 VkInternalAllocationType allocationType,
3414 VkSystemAllocationScope allocationScope);
3415
3416typedef void* (VKAPI_PTR *PFN_vkReallocationFunction)(
3417 void* pUserData,
3418 void* pOriginal,
3419 size_t size,
3420 size_t alignment,
3421 VkSystemAllocationScope allocationScope);
3422
3423typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void);
3424typedef struct VkAllocationCallbacks {
3425 void* pUserData;
3426 PFN_vkAllocationFunction pfnAllocation;
3427 PFN_vkReallocationFunction pfnReallocation;
3428 PFN_vkFreeFunction pfnFree;
3429 PFN_vkInternalAllocationNotification pfnInternalAllocation;
3430 PFN_vkInternalFreeNotification pfnInternalFree;
3431} VkAllocationCallbacks;
3432
3433typedef struct VkApplicationInfo {
3434 VkStructureType sType;
3435 const void* pNext;
3436 const char* pApplicationName;
3437 uint32_t applicationVersion;
3438 const char* pEngineName;
3439 uint32_t engineVersion;
3440 uint32_t apiVersion;
3441} VkApplicationInfo;
3442
3443typedef struct VkFormatProperties {
3444 VkFormatFeatureFlags linearTilingFeatures;
3445 VkFormatFeatureFlags optimalTilingFeatures;
3446 VkFormatFeatureFlags bufferFeatures;
3447} VkFormatProperties;
3448
3449typedef struct VkImageFormatProperties {
3450 VkExtent3D maxExtent;
3451 uint32_t maxMipLevels;
3452 uint32_t maxArrayLayers;
3453 VkSampleCountFlags sampleCounts;
3454 VkDeviceSize maxResourceSize;
3455} VkImageFormatProperties;
3456
3457typedef struct VkInstanceCreateInfo {
3458 VkStructureType sType;
3459 const void* pNext;
3460 VkInstanceCreateFlags flags;
3461 const VkApplicationInfo* pApplicationInfo;
3462 uint32_t enabledLayerCount;
3463 const char* const* ppEnabledLayerNames;
3464 uint32_t enabledExtensionCount;
3465 const char* const* ppEnabledExtensionNames;
3466} VkInstanceCreateInfo;
3467
3468typedef struct VkMemoryHeap {
3469 VkDeviceSize size;
3470 VkMemoryHeapFlags flags;
3471} VkMemoryHeap;
3472
3473typedef struct VkMemoryType {
3474 VkMemoryPropertyFlags propertyFlags;
3475 uint32_t heapIndex;
3476} VkMemoryType;
3477
3478typedef struct VkPhysicalDeviceFeatures {
3479 VkBool32 robustBufferAccess;
3480 VkBool32 fullDrawIndexUint32;
3481 VkBool32 imageCubeArray;
3482 VkBool32 independentBlend;
3483 VkBool32 geometryShader;
3484 VkBool32 tessellationShader;
3485 VkBool32 sampleRateShading;
3486 VkBool32 dualSrcBlend;
3487 VkBool32 logicOp;
3488 VkBool32 multiDrawIndirect;
3489 VkBool32 drawIndirectFirstInstance;
3490 VkBool32 depthClamp;
3491 VkBool32 depthBiasClamp;
3492 VkBool32 fillModeNonSolid;
3493 VkBool32 depthBounds;
3494 VkBool32 wideLines;
3495 VkBool32 largePoints;
3496 VkBool32 alphaToOne;
3497 VkBool32 multiViewport;
3498 VkBool32 samplerAnisotropy;
3499 VkBool32 textureCompressionETC2;
3500 VkBool32 textureCompressionASTC_LDR;
3501 VkBool32 textureCompressionBC;
3502 VkBool32 occlusionQueryPrecise;
3503 VkBool32 pipelineStatisticsQuery;
3504 VkBool32 vertexPipelineStoresAndAtomics;
3505 VkBool32 fragmentStoresAndAtomics;
3506 VkBool32 shaderTessellationAndGeometryPointSize;
3507 VkBool32 shaderImageGatherExtended;
3508 VkBool32 shaderStorageImageExtendedFormats;
3509 VkBool32 shaderStorageImageMultisample;
3510 VkBool32 shaderStorageImageReadWithoutFormat;
3511 VkBool32 shaderStorageImageWriteWithoutFormat;
3512 VkBool32 shaderUniformBufferArrayDynamicIndexing;
3513 VkBool32 shaderSampledImageArrayDynamicIndexing;
3514 VkBool32 shaderStorageBufferArrayDynamicIndexing;
3515 VkBool32 shaderStorageImageArrayDynamicIndexing;
3516 VkBool32 shaderClipDistance;
3517 VkBool32 shaderCullDistance;
3518 VkBool32 shaderFloat64;
3519 VkBool32 shaderInt64;
3520 VkBool32 shaderInt16;
3521 VkBool32 shaderResourceResidency;
3522 VkBool32 shaderResourceMinLod;
3523 VkBool32 sparseBinding;
3524 VkBool32 sparseResidencyBuffer;
3525 VkBool32 sparseResidencyImage2D;
3526 VkBool32 sparseResidencyImage3D;
3527 VkBool32 sparseResidency2Samples;
3528 VkBool32 sparseResidency4Samples;
3529 VkBool32 sparseResidency8Samples;
3530 VkBool32 sparseResidency16Samples;
3531 VkBool32 sparseResidencyAliased;
3532 VkBool32 variableMultisampleRate;
3533 VkBool32 inheritedQueries;
3534} VkPhysicalDeviceFeatures;
3535
3536typedef struct VkPhysicalDeviceLimits {
3537 uint32_t maxImageDimension1D;
3538 uint32_t maxImageDimension2D;
3539 uint32_t maxImageDimension3D;
3540 uint32_t maxImageDimensionCube;
3541 uint32_t maxImageArrayLayers;
3542 uint32_t maxTexelBufferElements;
3543 uint32_t maxUniformBufferRange;
3544 uint32_t maxStorageBufferRange;
3545 uint32_t maxPushConstantsSize;
3546 uint32_t maxMemoryAllocationCount;
3547 uint32_t maxSamplerAllocationCount;
3548 VkDeviceSize bufferImageGranularity;
3549 VkDeviceSize sparseAddressSpaceSize;
3550 uint32_t maxBoundDescriptorSets;
3551 uint32_t maxPerStageDescriptorSamplers;
3552 uint32_t maxPerStageDescriptorUniformBuffers;
3553 uint32_t maxPerStageDescriptorStorageBuffers;
3554 uint32_t maxPerStageDescriptorSampledImages;
3555 uint32_t maxPerStageDescriptorStorageImages;
3556 uint32_t maxPerStageDescriptorInputAttachments;
3557 uint32_t maxPerStageResources;
3558 uint32_t maxDescriptorSetSamplers;
3559 uint32_t maxDescriptorSetUniformBuffers;
3560 uint32_t maxDescriptorSetUniformBuffersDynamic;
3561 uint32_t maxDescriptorSetStorageBuffers;
3562 uint32_t maxDescriptorSetStorageBuffersDynamic;
3563 uint32_t maxDescriptorSetSampledImages;
3564 uint32_t maxDescriptorSetStorageImages;
3565 uint32_t maxDescriptorSetInputAttachments;
3566 uint32_t maxVertexInputAttributes;
3567 uint32_t maxVertexInputBindings;
3568 uint32_t maxVertexInputAttributeOffset;
3569 uint32_t maxVertexInputBindingStride;
3570 uint32_t maxVertexOutputComponents;
3571 uint32_t maxTessellationGenerationLevel;
3572 uint32_t maxTessellationPatchSize;
3573 uint32_t maxTessellationControlPerVertexInputComponents;
3574 uint32_t maxTessellationControlPerVertexOutputComponents;
3575 uint32_t maxTessellationControlPerPatchOutputComponents;
3576 uint32_t maxTessellationControlTotalOutputComponents;
3577 uint32_t maxTessellationEvaluationInputComponents;
3578 uint32_t maxTessellationEvaluationOutputComponents;
3579 uint32_t maxGeometryShaderInvocations;
3580 uint32_t maxGeometryInputComponents;
3581 uint32_t maxGeometryOutputComponents;
3582 uint32_t maxGeometryOutputVertices;
3583 uint32_t maxGeometryTotalOutputComponents;
3584 uint32_t maxFragmentInputComponents;
3585 uint32_t maxFragmentOutputAttachments;
3586 uint32_t maxFragmentDualSrcAttachments;
3587 uint32_t maxFragmentCombinedOutputResources;
3588 uint32_t maxComputeSharedMemorySize;
3589 uint32_t maxComputeWorkGroupCount[3];
3590 uint32_t maxComputeWorkGroupInvocations;
3591 uint32_t maxComputeWorkGroupSize[3];
3592 uint32_t subPixelPrecisionBits;
3593 uint32_t subTexelPrecisionBits;
3594 uint32_t mipmapPrecisionBits;
3595 uint32_t maxDrawIndexedIndexValue;
3596 uint32_t maxDrawIndirectCount;
3597 float maxSamplerLodBias;
3598 float maxSamplerAnisotropy;
3599 uint32_t maxViewports;
3600 uint32_t maxViewportDimensions[2];
3601 float viewportBoundsRange[2];
3602 uint32_t viewportSubPixelBits;
3603 size_t minMemoryMapAlignment;
3604 VkDeviceSize minTexelBufferOffsetAlignment;
3605 VkDeviceSize minUniformBufferOffsetAlignment;
3606 VkDeviceSize minStorageBufferOffsetAlignment;
3607 int32_t minTexelOffset;
3608 uint32_t maxTexelOffset;
3609 int32_t minTexelGatherOffset;
3610 uint32_t maxTexelGatherOffset;
3611 float minInterpolationOffset;
3612 float maxInterpolationOffset;
3613 uint32_t subPixelInterpolationOffsetBits;
3614 uint32_t maxFramebufferWidth;
3615 uint32_t maxFramebufferHeight;
3616 uint32_t maxFramebufferLayers;
3617 VkSampleCountFlags framebufferColorSampleCounts;
3618 VkSampleCountFlags framebufferDepthSampleCounts;
3619 VkSampleCountFlags framebufferStencilSampleCounts;
3620 VkSampleCountFlags framebufferNoAttachmentsSampleCounts;
3621 uint32_t maxColorAttachments;
3622 VkSampleCountFlags sampledImageColorSampleCounts;
3623 VkSampleCountFlags sampledImageIntegerSampleCounts;
3624 VkSampleCountFlags sampledImageDepthSampleCounts;
3625 VkSampleCountFlags sampledImageStencilSampleCounts;
3626 VkSampleCountFlags storageImageSampleCounts;
3627 uint32_t maxSampleMaskWords;
3628 VkBool32 timestampComputeAndGraphics;
3629 float timestampPeriod;
3630 uint32_t maxClipDistances;
3631 uint32_t maxCullDistances;
3632 uint32_t maxCombinedClipAndCullDistances;
3633 uint32_t discreteQueuePriorities;
3634 float pointSizeRange[2];
3635 float lineWidthRange[2];
3636 float pointSizeGranularity;
3637 float lineWidthGranularity;
3638 VkBool32 strictLines;
3639 VkBool32 standardSampleLocations;
3640 VkDeviceSize optimalBufferCopyOffsetAlignment;
3641 VkDeviceSize optimalBufferCopyRowPitchAlignment;
3642 VkDeviceSize nonCoherentAtomSize;
3643} VkPhysicalDeviceLimits;
3644
3645typedef struct VkPhysicalDeviceMemoryProperties {
3646 uint32_t memoryTypeCount;
3647 VkMemoryType memoryTypes[VK_MAX_MEMORY_TYPES];
3648 uint32_t memoryHeapCount;
3649 VkMemoryHeap memoryHeaps[VK_MAX_MEMORY_HEAPS];
3650} VkPhysicalDeviceMemoryProperties;
3651
3652typedef struct VkPhysicalDeviceSparseProperties {
3653 VkBool32 residencyStandard2DBlockShape;
3654 VkBool32 residencyStandard2DMultisampleBlockShape;
3655 VkBool32 residencyStandard3DBlockShape;
3656 VkBool32 residencyAlignedMipSize;
3657 VkBool32 residencyNonResidentStrict;
3658} VkPhysicalDeviceSparseProperties;
3659
3660typedef struct VkPhysicalDeviceProperties {
3661 uint32_t apiVersion;
3662 uint32_t driverVersion;
3663 uint32_t vendorID;
3664 uint32_t deviceID;
3665 VkPhysicalDeviceType deviceType;
3666 char deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
3667 uint8_t pipelineCacheUUID[VK_UUID_SIZE];
3668 VkPhysicalDeviceLimits limits;
3669 VkPhysicalDeviceSparseProperties sparseProperties;
3670} VkPhysicalDeviceProperties;
3671
3672typedef struct VkQueueFamilyProperties {
3673 VkQueueFlags queueFlags;
3674 uint32_t queueCount;
3675 uint32_t timestampValidBits;
3676 VkExtent3D minImageTransferGranularity;
3677} VkQueueFamilyProperties;
3678
3679typedef struct VkDeviceQueueCreateInfo {
3680 VkStructureType sType;
3681 const void* pNext;
3682 VkDeviceQueueCreateFlags flags;
3683 uint32_t queueFamilyIndex;
3684 uint32_t queueCount;
3685 const float* pQueuePriorities;
3686} VkDeviceQueueCreateInfo;
3687
3688typedef struct VkDeviceCreateInfo {
3689 VkStructureType sType;
3690 const void* pNext;
3691 VkDeviceCreateFlags flags;
3692 uint32_t queueCreateInfoCount;
3693 const VkDeviceQueueCreateInfo* pQueueCreateInfos;
3694 // enabledLayerCount is legacy and not used
3695 uint32_t enabledLayerCount;
3696 // ppEnabledLayerNames is legacy and not used
3697 const char* const* ppEnabledLayerNames;
3698 uint32_t enabledExtensionCount;
3699 const char* const* ppEnabledExtensionNames;
3700 const VkPhysicalDeviceFeatures* pEnabledFeatures;
3701} VkDeviceCreateInfo;
3702
3703typedef struct VkExtensionProperties {
3704 char extensionName[VK_MAX_EXTENSION_NAME_SIZE];
3705 uint32_t specVersion;
3706} VkExtensionProperties;
3707
3708typedef struct VkLayerProperties {
3709 char layerName[VK_MAX_EXTENSION_NAME_SIZE];
3710 uint32_t specVersion;
3711 uint32_t implementationVersion;
3712 char description[VK_MAX_DESCRIPTION_SIZE];
3713} VkLayerProperties;
3714
3715typedef struct VkSubmitInfo {
3716 VkStructureType sType;
3717 const void* pNext;
3718 uint32_t waitSemaphoreCount;
3719 const VkSemaphore* pWaitSemaphores;
3720 const VkPipelineStageFlags* pWaitDstStageMask;
3721 uint32_t commandBufferCount;
3722 const VkCommandBuffer* pCommandBuffers;
3723 uint32_t signalSemaphoreCount;
3724 const VkSemaphore* pSignalSemaphores;
3725} VkSubmitInfo;
3726
3727typedef struct VkMappedMemoryRange {
3728 VkStructureType sType;
3729 const void* pNext;
3730 VkDeviceMemory memory;
3731 VkDeviceSize offset;
3732 VkDeviceSize size;
3733} VkMappedMemoryRange;
3734
3735typedef struct VkMemoryAllocateInfo {
3736 VkStructureType sType;
3737 const void* pNext;
3738 VkDeviceSize allocationSize;
3739 uint32_t memoryTypeIndex;
3740} VkMemoryAllocateInfo;
3741
3742typedef struct VkMemoryRequirements {
3743 VkDeviceSize size;
3744 VkDeviceSize alignment;
3745 uint32_t memoryTypeBits;
3746} VkMemoryRequirements;
3747
3748typedef struct VkImageSubresource {
3749 VkImageAspectFlags aspectMask;
3750 uint32_t mipLevel;
3751 uint32_t arrayLayer;
3752} VkImageSubresource;
3753
3754typedef struct VkSparseImageFormatProperties {
3755 VkImageAspectFlags aspectMask;
3756 VkExtent3D imageGranularity;
3757 VkSparseImageFormatFlags flags;
3758} VkSparseImageFormatProperties;
3759
3760typedef struct VkSparseImageMemoryBind {
3761 VkImageSubresource subresource;
3762 VkOffset3D offset;
3763 VkExtent3D extent;
3764 VkDeviceMemory memory;
3765 VkDeviceSize memoryOffset;
3766 VkSparseMemoryBindFlags flags;
3767} VkSparseImageMemoryBind;
3768
3769typedef struct VkSparseImageMemoryBindInfo {
3770 VkImage image;
3771 uint32_t bindCount;
3772 const VkSparseImageMemoryBind* pBinds;
3773} VkSparseImageMemoryBindInfo;
3774
3775typedef struct VkSparseImageMemoryRequirements {
3776 VkSparseImageFormatProperties formatProperties;
3777 uint32_t imageMipTailFirstLod;
3778 VkDeviceSize imageMipTailSize;
3779 VkDeviceSize imageMipTailOffset;
3780 VkDeviceSize imageMipTailStride;
3781} VkSparseImageMemoryRequirements;
3782
3783typedef struct VkSparseMemoryBind {
3784 VkDeviceSize resourceOffset;
3785 VkDeviceSize size;
3786 VkDeviceMemory memory;
3787 VkDeviceSize memoryOffset;
3788 VkSparseMemoryBindFlags flags;
3789} VkSparseMemoryBind;
3790
3791typedef struct VkSparseBufferMemoryBindInfo {
3792 VkBuffer buffer;
3793 uint32_t bindCount;
3794 const VkSparseMemoryBind* pBinds;
3795} VkSparseBufferMemoryBindInfo;
3796
3797typedef struct VkSparseImageOpaqueMemoryBindInfo {
3798 VkImage image;
3799 uint32_t bindCount;
3800 const VkSparseMemoryBind* pBinds;
3801} VkSparseImageOpaqueMemoryBindInfo;
3802
3803typedef struct VkBindSparseInfo {
3804 VkStructureType sType;
3805 const void* pNext;
3806 uint32_t waitSemaphoreCount;
3807 const VkSemaphore* pWaitSemaphores;
3808 uint32_t bufferBindCount;
3809 const VkSparseBufferMemoryBindInfo* pBufferBinds;
3810 uint32_t imageOpaqueBindCount;
3811 const VkSparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds;
3812 uint32_t imageBindCount;
3813 const VkSparseImageMemoryBindInfo* pImageBinds;
3814 uint32_t signalSemaphoreCount;
3815 const VkSemaphore* pSignalSemaphores;
3816} VkBindSparseInfo;
3817
3818typedef struct VkFenceCreateInfo {
3819 VkStructureType sType;
3820 const void* pNext;
3821 VkFenceCreateFlags flags;
3822} VkFenceCreateInfo;
3823
3824typedef struct VkSemaphoreCreateInfo {
3825 VkStructureType sType;
3826 const void* pNext;
3827 VkSemaphoreCreateFlags flags;
3828} VkSemaphoreCreateInfo;
3829
3830typedef struct VkQueryPoolCreateInfo {
3831 VkStructureType sType;
3832 const void* pNext;
3833 VkQueryPoolCreateFlags flags;
3834 VkQueryType queryType;
3835 uint32_t queryCount;
3836 VkQueryPipelineStatisticFlags pipelineStatistics;
3837} VkQueryPoolCreateInfo;
3838
3839typedef struct VkBufferCreateInfo {
3840 VkStructureType sType;
3841 const void* pNext;
3842 VkBufferCreateFlags flags;
3843 VkDeviceSize size;
3844 VkBufferUsageFlags usage;
3845 VkSharingMode sharingMode;
3846 uint32_t queueFamilyIndexCount;
3847 const uint32_t* pQueueFamilyIndices;
3848} VkBufferCreateInfo;
3849
3850typedef struct VkImageCreateInfo {
3851 VkStructureType sType;
3852 const void* pNext;
3853 VkImageCreateFlags flags;
3854 VkImageType imageType;
3855 VkFormat format;
3856 VkExtent3D extent;
3857 uint32_t mipLevels;
3858 uint32_t arrayLayers;
3859 VkSampleCountFlagBits samples;
3860 VkImageTiling tiling;
3861 VkImageUsageFlags usage;
3862 VkSharingMode sharingMode;
3863 uint32_t queueFamilyIndexCount;
3864 const uint32_t* pQueueFamilyIndices;
3865 VkImageLayout initialLayout;
3866} VkImageCreateInfo;
3867
3868typedef struct VkSubresourceLayout {
3869 VkDeviceSize offset;
3870 VkDeviceSize size;
3871 VkDeviceSize rowPitch;
3872 VkDeviceSize arrayPitch;
3873 VkDeviceSize depthPitch;
3874} VkSubresourceLayout;
3875
3876typedef struct VkComponentMapping {
3877 VkComponentSwizzle r;
3878 VkComponentSwizzle g;
3879 VkComponentSwizzle b;
3880 VkComponentSwizzle a;
3881} VkComponentMapping;
3882
3883typedef struct VkImageSubresourceRange {
3884 VkImageAspectFlags aspectMask;
3885 uint32_t baseMipLevel;
3886 uint32_t levelCount;
3887 uint32_t baseArrayLayer;
3888 uint32_t layerCount;
3889} VkImageSubresourceRange;
3890
3891typedef struct VkImageViewCreateInfo {
3892 VkStructureType sType;
3893 const void* pNext;
3894 VkImageViewCreateFlags flags;
3895 VkImage image;
3896 VkImageViewType viewType;
3897 VkFormat format;
3898 VkComponentMapping components;
3899 VkImageSubresourceRange subresourceRange;
3900} VkImageViewCreateInfo;
3901
3902typedef struct VkCommandPoolCreateInfo {
3903 VkStructureType sType;
3904 const void* pNext;
3905 VkCommandPoolCreateFlags flags;
3906 uint32_t queueFamilyIndex;
3907} VkCommandPoolCreateInfo;
3908
3909typedef struct VkCommandBufferAllocateInfo {
3910 VkStructureType sType;
3911 const void* pNext;
3912 VkCommandPool commandPool;
3913 VkCommandBufferLevel level;
3914 uint32_t commandBufferCount;
3915} VkCommandBufferAllocateInfo;
3916
3917typedef struct VkCommandBufferInheritanceInfo {
3918 VkStructureType sType;
3919 const void* pNext;
3920 VkRenderPass renderPass;
3921 uint32_t subpass;
3922 VkFramebuffer framebuffer;
3923 VkBool32 occlusionQueryEnable;
3924 VkQueryControlFlags queryFlags;
3925 VkQueryPipelineStatisticFlags pipelineStatistics;
3926} VkCommandBufferInheritanceInfo;
3927
3928typedef struct VkCommandBufferBeginInfo {
3929 VkStructureType sType;
3930 const void* pNext;
3931 VkCommandBufferUsageFlags flags;
3932 const VkCommandBufferInheritanceInfo* pInheritanceInfo;
3933} VkCommandBufferBeginInfo;
3934
3935typedef struct VkBufferCopy {
3936 VkDeviceSize srcOffset;
3937 VkDeviceSize dstOffset;
3938 VkDeviceSize size;
3939} VkBufferCopy;
3940
3941typedef struct VkImageSubresourceLayers {
3942 VkImageAspectFlags aspectMask;
3943 uint32_t mipLevel;
3944 uint32_t baseArrayLayer;
3945 uint32_t layerCount;
3946} VkImageSubresourceLayers;
3947
3948typedef struct VkBufferImageCopy {
3949 VkDeviceSize bufferOffset;
3950 uint32_t bufferRowLength;
3951 uint32_t bufferImageHeight;
3952 VkImageSubresourceLayers imageSubresource;
3953 VkOffset3D imageOffset;
3954 VkExtent3D imageExtent;
3955} VkBufferImageCopy;
3956
3957typedef struct VkImageCopy {
3958 VkImageSubresourceLayers srcSubresource;
3959 VkOffset3D srcOffset;
3960 VkImageSubresourceLayers dstSubresource;
3961 VkOffset3D dstOffset;
3962 VkExtent3D extent;
3963} VkImageCopy;
3964
3965typedef struct VkBufferMemoryBarrier {
3966 VkStructureType sType;
3967 const void* pNext;
3968 VkAccessFlags srcAccessMask;
3969 VkAccessFlags dstAccessMask;
3970 uint32_t srcQueueFamilyIndex;
3971 uint32_t dstQueueFamilyIndex;
3972 VkBuffer buffer;
3973 VkDeviceSize offset;
3974 VkDeviceSize size;
3975} VkBufferMemoryBarrier;
3976
3977typedef struct VkImageMemoryBarrier {
3978 VkStructureType sType;
3979 const void* pNext;
3980 VkAccessFlags srcAccessMask;
3981 VkAccessFlags dstAccessMask;
3982 VkImageLayout oldLayout;
3983 VkImageLayout newLayout;
3984 uint32_t srcQueueFamilyIndex;
3985 uint32_t dstQueueFamilyIndex;
3986 VkImage image;
3987 VkImageSubresourceRange subresourceRange;
3988} VkImageMemoryBarrier;
3989
3990typedef struct VkMemoryBarrier {
3991 VkStructureType sType;
3992 const void* pNext;
3993 VkAccessFlags srcAccessMask;
3994 VkAccessFlags dstAccessMask;
3995} VkMemoryBarrier;
3996
3997typedef struct VkDispatchIndirectCommand {
3998 uint32_t x;
3999 uint32_t y;
4000 uint32_t z;
4001} VkDispatchIndirectCommand;
4002
4003typedef struct VkPipelineCacheHeaderVersionOne {
4004 uint32_t headerSize;
4005 VkPipelineCacheHeaderVersion headerVersion;
4006 uint32_t vendorID;
4007 uint32_t deviceID;
4008 uint8_t pipelineCacheUUID[VK_UUID_SIZE];
4009} VkPipelineCacheHeaderVersionOne;
4010
4011typedef struct VkEventCreateInfo {
4012 VkStructureType sType;
4013 const void* pNext;
4014 VkEventCreateFlags flags;
4015} VkEventCreateInfo;
4016
4017typedef struct VkBufferViewCreateInfo {
4018 VkStructureType sType;
4019 const void* pNext;
4020 VkBufferViewCreateFlags flags;
4021 VkBuffer buffer;
4022 VkFormat format;
4023 VkDeviceSize offset;
4024 VkDeviceSize range;
4025} VkBufferViewCreateInfo;
4026
4027typedef struct VkShaderModuleCreateInfo {
4028 VkStructureType sType;
4029 const void* pNext;
4030 VkShaderModuleCreateFlags flags;
4031 size_t codeSize;
4032 const uint32_t* pCode;
4033} VkShaderModuleCreateInfo;
4034
4035typedef struct VkPipelineCacheCreateInfo {
4036 VkStructureType sType;
4037 const void* pNext;
4038 VkPipelineCacheCreateFlags flags;
4039 size_t initialDataSize;
4040 const void* pInitialData;
4041} VkPipelineCacheCreateInfo;
4042
4043typedef struct VkSpecializationMapEntry {
4044 uint32_t constantID;
4045 uint32_t offset;
4046 size_t size;
4047} VkSpecializationMapEntry;
4048
4049typedef struct VkSpecializationInfo {
4050 uint32_t mapEntryCount;
4051 const VkSpecializationMapEntry* pMapEntries;
4052 size_t dataSize;
4053 const void* pData;
4054} VkSpecializationInfo;
4055
4056typedef struct VkPipelineShaderStageCreateInfo {
4057 VkStructureType sType;
4058 const void* pNext;
4059 VkPipelineShaderStageCreateFlags flags;
4060 VkShaderStageFlagBits stage;
4061 VkShaderModule module;
4062 const char* pName;
4063 const VkSpecializationInfo* pSpecializationInfo;
4064} VkPipelineShaderStageCreateInfo;
4065
4066typedef struct VkComputePipelineCreateInfo {
4067 VkStructureType sType;
4068 const void* pNext;
4069 VkPipelineCreateFlags flags;
4070 VkPipelineShaderStageCreateInfo stage;
4071 VkPipelineLayout layout;
4072 VkPipeline basePipelineHandle;
4073 int32_t basePipelineIndex;
4074} VkComputePipelineCreateInfo;
4075
4076typedef struct VkPushConstantRange {
4077 VkShaderStageFlags stageFlags;
4078 uint32_t offset;
4079 uint32_t size;
4080} VkPushConstantRange;
4081
4082typedef struct VkPipelineLayoutCreateInfo {
4083 VkStructureType sType;
4084 const void* pNext;
4085 VkPipelineLayoutCreateFlags flags;
4086 uint32_t setLayoutCount;
4087 const VkDescriptorSetLayout* pSetLayouts;
4088 uint32_t pushConstantRangeCount;
4089 const VkPushConstantRange* pPushConstantRanges;
4090} VkPipelineLayoutCreateInfo;
4091
4092typedef struct VkSamplerCreateInfo {
4093 VkStructureType sType;
4094 const void* pNext;
4095 VkSamplerCreateFlags flags;
4096 VkFilter magFilter;
4097 VkFilter minFilter;
4098 VkSamplerMipmapMode mipmapMode;
4099 VkSamplerAddressMode addressModeU;
4100 VkSamplerAddressMode addressModeV;
4101 VkSamplerAddressMode addressModeW;
4102 float mipLodBias;
4103 VkBool32 anisotropyEnable;
4104 float maxAnisotropy;
4105 VkBool32 compareEnable;
4106 VkCompareOp compareOp;
4107 float minLod;
4108 float maxLod;
4109 VkBorderColor borderColor;
4110 VkBool32 unnormalizedCoordinates;
4111} VkSamplerCreateInfo;
4112
4113typedef struct VkCopyDescriptorSet {
4114 VkStructureType sType;
4115 const void* pNext;
4116 VkDescriptorSet srcSet;
4117 uint32_t srcBinding;
4118 uint32_t srcArrayElement;
4119 VkDescriptorSet dstSet;
4120 uint32_t dstBinding;
4121 uint32_t dstArrayElement;
4122 uint32_t descriptorCount;
4123} VkCopyDescriptorSet;
4124
4125typedef struct VkDescriptorBufferInfo {
4126 VkBuffer buffer;
4127 VkDeviceSize offset;
4128 VkDeviceSize range;
4129} VkDescriptorBufferInfo;
4130
4131typedef struct VkDescriptorImageInfo {
4132 VkSampler sampler;
4133 VkImageView imageView;
4134 VkImageLayout imageLayout;
4135} VkDescriptorImageInfo;
4136
4137typedef struct VkDescriptorPoolSize {
4138 VkDescriptorType type;
4139 uint32_t descriptorCount;
4140} VkDescriptorPoolSize;
4141
4142typedef struct VkDescriptorPoolCreateInfo {
4143 VkStructureType sType;
4144 const void* pNext;
4145 VkDescriptorPoolCreateFlags flags;
4146 uint32_t maxSets;
4147 uint32_t poolSizeCount;
4148 const VkDescriptorPoolSize* pPoolSizes;
4149} VkDescriptorPoolCreateInfo;
4150
4151typedef struct VkDescriptorSetAllocateInfo {
4152 VkStructureType sType;
4153 const void* pNext;
4154 VkDescriptorPool descriptorPool;
4155 uint32_t descriptorSetCount;
4156 const VkDescriptorSetLayout* pSetLayouts;
4157} VkDescriptorSetAllocateInfo;
4158
4159typedef struct VkDescriptorSetLayoutBinding {
4160 uint32_t binding;
4161 VkDescriptorType descriptorType;
4162 uint32_t descriptorCount;
4163 VkShaderStageFlags stageFlags;
4164 const VkSampler* pImmutableSamplers;
4165} VkDescriptorSetLayoutBinding;
4166
4167typedef struct VkDescriptorSetLayoutCreateInfo {
4168 VkStructureType sType;
4169 const void* pNext;
4170 VkDescriptorSetLayoutCreateFlags flags;
4171 uint32_t bindingCount;
4172 const VkDescriptorSetLayoutBinding* pBindings;
4173} VkDescriptorSetLayoutCreateInfo;
4174
4175typedef struct VkWriteDescriptorSet {
4176 VkStructureType sType;
4177 const void* pNext;
4178 VkDescriptorSet dstSet;
4179 uint32_t dstBinding;
4180 uint32_t dstArrayElement;
4181 uint32_t descriptorCount;
4182 VkDescriptorType descriptorType;
4183 const VkDescriptorImageInfo* pImageInfo;
4184 const VkDescriptorBufferInfo* pBufferInfo;
4185 const VkBufferView* pTexelBufferView;
4186} VkWriteDescriptorSet;
4187
4188typedef union VkClearColorValue {
4189 float float32[4];
4190 int32_t int32[4];
4191 uint32_t uint32[4];
4192} VkClearColorValue;
4193
4194typedef struct VkDrawIndexedIndirectCommand {
4195 uint32_t indexCount;
4196 uint32_t instanceCount;
4197 uint32_t firstIndex;
4198 int32_t vertexOffset;
4199 uint32_t firstInstance;
4200} VkDrawIndexedIndirectCommand;
4201
4202typedef struct VkDrawIndirectCommand {
4203 uint32_t vertexCount;
4204 uint32_t instanceCount;
4205 uint32_t firstVertex;
4206 uint32_t firstInstance;
4207} VkDrawIndirectCommand;
4208
4209typedef struct VkStencilOpState {
4210 VkStencilOp failOp;
4211 VkStencilOp passOp;
4212 VkStencilOp depthFailOp;
4213 VkCompareOp compareOp;
4214 uint32_t compareMask;
4215 uint32_t writeMask;
4216 uint32_t reference;
4217} VkStencilOpState;
4218
4219typedef struct VkVertexInputAttributeDescription {
4220 uint32_t location;
4221 uint32_t binding;
4222 VkFormat format;
4223 uint32_t offset;
4224} VkVertexInputAttributeDescription;
4225
4226typedef struct VkVertexInputBindingDescription {
4227 uint32_t binding;
4228 uint32_t stride;
4229 VkVertexInputRate inputRate;
4230} VkVertexInputBindingDescription;
4231
4232typedef struct VkViewport {
4233 float x;
4234 float y;
4235 float width;
4236 float height;
4237 float minDepth;
4238 float maxDepth;
4239} VkViewport;
4240
4241typedef struct VkPipelineColorBlendAttachmentState {
4242 VkBool32 blendEnable;
4243 VkBlendFactor srcColorBlendFactor;
4244 VkBlendFactor dstColorBlendFactor;
4245 VkBlendOp colorBlendOp;
4246 VkBlendFactor srcAlphaBlendFactor;
4247 VkBlendFactor dstAlphaBlendFactor;
4248 VkBlendOp alphaBlendOp;
4249 VkColorComponentFlags colorWriteMask;
4250} VkPipelineColorBlendAttachmentState;
4251
4252typedef struct VkPipelineColorBlendStateCreateInfo {
4253 VkStructureType sType;
4254 const void* pNext;
4255 VkPipelineColorBlendStateCreateFlags flags;
4256 VkBool32 logicOpEnable;
4257 VkLogicOp logicOp;
4258 uint32_t attachmentCount;
4259 const VkPipelineColorBlendAttachmentState* pAttachments;
4260 float blendConstants[4];
4261} VkPipelineColorBlendStateCreateInfo;
4262
4263typedef struct VkPipelineDepthStencilStateCreateInfo {
4264 VkStructureType sType;
4265 const void* pNext;
4266 VkPipelineDepthStencilStateCreateFlags flags;
4267 VkBool32 depthTestEnable;
4268 VkBool32 depthWriteEnable;
4269 VkCompareOp depthCompareOp;
4270 VkBool32 depthBoundsTestEnable;
4271 VkBool32 stencilTestEnable;
4272 VkStencilOpState front;
4273 VkStencilOpState back;
4274 float minDepthBounds;
4275 float maxDepthBounds;
4276} VkPipelineDepthStencilStateCreateInfo;
4277
4278typedef struct VkPipelineDynamicStateCreateInfo {
4279 VkStructureType sType;
4280 const void* pNext;
4281 VkPipelineDynamicStateCreateFlags flags;
4282 uint32_t dynamicStateCount;
4283 const VkDynamicState* pDynamicStates;
4284} VkPipelineDynamicStateCreateInfo;
4285
4286typedef struct VkPipelineInputAssemblyStateCreateInfo {
4287 VkStructureType sType;
4288 const void* pNext;
4289 VkPipelineInputAssemblyStateCreateFlags flags;
4290 VkPrimitiveTopology topology;
4291 VkBool32 primitiveRestartEnable;
4292} VkPipelineInputAssemblyStateCreateInfo;
4293
4294typedef struct VkPipelineMultisampleStateCreateInfo {
4295 VkStructureType sType;
4296 const void* pNext;
4297 VkPipelineMultisampleStateCreateFlags flags;
4298 VkSampleCountFlagBits rasterizationSamples;
4299 VkBool32 sampleShadingEnable;
4300 float minSampleShading;
4301 const VkSampleMask* pSampleMask;
4302 VkBool32 alphaToCoverageEnable;
4303 VkBool32 alphaToOneEnable;
4304} VkPipelineMultisampleStateCreateInfo;
4305
4306typedef struct VkPipelineRasterizationStateCreateInfo {
4307 VkStructureType sType;
4308 const void* pNext;
4309 VkPipelineRasterizationStateCreateFlags flags;
4310 VkBool32 depthClampEnable;
4311 VkBool32 rasterizerDiscardEnable;
4312 VkPolygonMode polygonMode;
4313 VkCullModeFlags cullMode;
4314 VkFrontFace frontFace;
4315 VkBool32 depthBiasEnable;
4316 float depthBiasConstantFactor;
4317 float depthBiasClamp;
4318 float depthBiasSlopeFactor;
4319 float lineWidth;
4320} VkPipelineRasterizationStateCreateInfo;
4321
4322typedef struct VkPipelineTessellationStateCreateInfo {
4323 VkStructureType sType;
4324 const void* pNext;
4325 VkPipelineTessellationStateCreateFlags flags;
4326 uint32_t patchControlPoints;
4327} VkPipelineTessellationStateCreateInfo;
4328
4329typedef struct VkPipelineVertexInputStateCreateInfo {
4330 VkStructureType sType;
4331 const void* pNext;
4332 VkPipelineVertexInputStateCreateFlags flags;
4333 uint32_t vertexBindingDescriptionCount;
4334 const VkVertexInputBindingDescription* pVertexBindingDescriptions;
4335 uint32_t vertexAttributeDescriptionCount;
4336 const VkVertexInputAttributeDescription* pVertexAttributeDescriptions;
4337} VkPipelineVertexInputStateCreateInfo;
4338
4339typedef struct VkPipelineViewportStateCreateInfo {
4340 VkStructureType sType;
4341 const void* pNext;
4342 VkPipelineViewportStateCreateFlags flags;
4343 uint32_t viewportCount;
4344 const VkViewport* pViewports;
4345 uint32_t scissorCount;
4346 const VkRect2D* pScissors;
4347} VkPipelineViewportStateCreateInfo;
4348
4349typedef struct VkGraphicsPipelineCreateInfo {
4350 VkStructureType sType;
4351 const void* pNext;
4352 VkPipelineCreateFlags flags;
4353 uint32_t stageCount;
4354 const VkPipelineShaderStageCreateInfo* pStages;
4355 const VkPipelineVertexInputStateCreateInfo* pVertexInputState;
4356 const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState;
4357 const VkPipelineTessellationStateCreateInfo* pTessellationState;
4358 const VkPipelineViewportStateCreateInfo* pViewportState;
4359 const VkPipelineRasterizationStateCreateInfo* pRasterizationState;
4360 const VkPipelineMultisampleStateCreateInfo* pMultisampleState;
4361 const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState;
4362 const VkPipelineColorBlendStateCreateInfo* pColorBlendState;
4363 const VkPipelineDynamicStateCreateInfo* pDynamicState;
4364 VkPipelineLayout layout;
4365 VkRenderPass renderPass;
4366 uint32_t subpass;
4367 VkPipeline basePipelineHandle;
4368 int32_t basePipelineIndex;
4369} VkGraphicsPipelineCreateInfo;
4370
4371typedef struct VkAttachmentDescription {
4372 VkAttachmentDescriptionFlags flags;
4373 VkFormat format;
4374 VkSampleCountFlagBits samples;
4375 VkAttachmentLoadOp loadOp;
4376 VkAttachmentStoreOp storeOp;
4377 VkAttachmentLoadOp stencilLoadOp;
4378 VkAttachmentStoreOp stencilStoreOp;
4379 VkImageLayout initialLayout;
4380 VkImageLayout finalLayout;
4381} VkAttachmentDescription;
4382
4383typedef struct VkAttachmentReference {
4384 uint32_t attachment;
4385 VkImageLayout layout;
4386} VkAttachmentReference;
4387
4388typedef struct VkFramebufferCreateInfo {
4389 VkStructureType sType;
4390 const void* pNext;
4391 VkFramebufferCreateFlags flags;
4392 VkRenderPass renderPass;
4393 uint32_t attachmentCount;
4394 const VkImageView* pAttachments;
4395 uint32_t width;
4396 uint32_t height;
4397 uint32_t layers;
4398} VkFramebufferCreateInfo;
4399
4400typedef struct VkSubpassDependency {
4401 uint32_t srcSubpass;
4402 uint32_t dstSubpass;
4403 VkPipelineStageFlags srcStageMask;
4404 VkPipelineStageFlags dstStageMask;
4405 VkAccessFlags srcAccessMask;
4406 VkAccessFlags dstAccessMask;
4407 VkDependencyFlags dependencyFlags;
4408} VkSubpassDependency;
4409
4410typedef struct VkSubpassDescription {
4411 VkSubpassDescriptionFlags flags;
4412 VkPipelineBindPoint pipelineBindPoint;
4413 uint32_t inputAttachmentCount;
4414 const VkAttachmentReference* pInputAttachments;
4415 uint32_t colorAttachmentCount;
4416 const VkAttachmentReference* pColorAttachments;
4417 const VkAttachmentReference* pResolveAttachments;
4418 const VkAttachmentReference* pDepthStencilAttachment;
4419 uint32_t preserveAttachmentCount;
4420 const uint32_t* pPreserveAttachments;
4421} VkSubpassDescription;
4422
4423typedef struct VkRenderPassCreateInfo {
4424 VkStructureType sType;
4425 const void* pNext;
4426 VkRenderPassCreateFlags flags;
4427 uint32_t attachmentCount;
4428 const VkAttachmentDescription* pAttachments;
4429 uint32_t subpassCount;
4430 const VkSubpassDescription* pSubpasses;
4431 uint32_t dependencyCount;
4432 const VkSubpassDependency* pDependencies;
4433} VkRenderPassCreateInfo;
4434
4435typedef struct VkClearDepthStencilValue {
4436 float depth;
4437 uint32_t stencil;
4438} VkClearDepthStencilValue;
4439
4440typedef struct VkClearRect {
4441 VkRect2D rect;
4442 uint32_t baseArrayLayer;
4443 uint32_t layerCount;
4444} VkClearRect;
4445
4446typedef union VkClearValue {
4447 VkClearColorValue color;
4448 VkClearDepthStencilValue depthStencil;
4449} VkClearValue;
4450
4451typedef struct VkClearAttachment {
4452 VkImageAspectFlags aspectMask;
4453 uint32_t colorAttachment;
4454 VkClearValue clearValue;
4455} VkClearAttachment;
4456
4457typedef struct VkImageBlit {
4458 VkImageSubresourceLayers srcSubresource;
4459 VkOffset3D srcOffsets[2];
4460 VkImageSubresourceLayers dstSubresource;
4461 VkOffset3D dstOffsets[2];
4462} VkImageBlit;
4463
4464typedef struct VkImageResolve {
4465 VkImageSubresourceLayers srcSubresource;
4466 VkOffset3D srcOffset;
4467 VkImageSubresourceLayers dstSubresource;
4468 VkOffset3D dstOffset;
4469 VkExtent3D extent;
4470} VkImageResolve;
4471
4472typedef struct VkRenderPassBeginInfo {
4473 VkStructureType sType;
4474 const void* pNext;
4475 VkRenderPass renderPass;
4476 VkFramebuffer framebuffer;
4477 VkRect2D renderArea;
4478 uint32_t clearValueCount;
4479 const VkClearValue* pClearValues;
4480} VkRenderPassBeginInfo;
4481
4482typedef VkResult (VKAPI_PTR *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance);
4483typedef void (VKAPI_PTR *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks* pAllocator);
4484typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
4485typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
4486typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties);
4487typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
4488typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties);
4489typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties);
4490typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties);
4491typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char* pName);
4492typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetDeviceProcAddr)(VkDevice device, const char* pName);
4493typedef VkResult (VKAPI_PTR *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice);
4494typedef void (VKAPI_PTR *PFN_vkDestroyDevice)(VkDevice device, const VkAllocationCallbacks* pAllocator);
4495typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceExtensionProperties)(const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
4496typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
4497typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceLayerProperties)(uint32_t* pPropertyCount, VkLayerProperties* pProperties);
4498typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties);
4499typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue);
4500typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence);
4501typedef VkResult (VKAPI_PTR *PFN_vkQueueWaitIdle)(VkQueue queue);
4502typedef VkResult (VKAPI_PTR *PFN_vkDeviceWaitIdle)(VkDevice device);
4503typedef VkResult (VKAPI_PTR *PFN_vkAllocateMemory)(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory);
4504typedef void (VKAPI_PTR *PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator);
4505typedef VkResult (VKAPI_PTR *PFN_vkMapMemory)(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData);
4506typedef void (VKAPI_PTR *PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory memory);
4507typedef VkResult (VKAPI_PTR *PFN_vkFlushMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
4508typedef VkResult (VKAPI_PTR *PFN_vkInvalidateMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
4509typedef void (VKAPI_PTR *PFN_vkGetDeviceMemoryCommitment)(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes);
4510typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory)(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset);
4511typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory)(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset);
4512typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements)(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements);
4513typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
4514typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
4515typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties);
4516typedef VkResult (VKAPI_PTR *PFN_vkQueueBindSparse)(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence);
4517typedef VkResult (VKAPI_PTR *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
4518typedef void (VKAPI_PTR *PFN_vkDestroyFence)(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator);
4519typedef VkResult (VKAPI_PTR *PFN_vkResetFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences);
4520typedef VkResult (VKAPI_PTR *PFN_vkGetFenceStatus)(VkDevice device, VkFence fence);
4521typedef VkResult (VKAPI_PTR *PFN_vkWaitForFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout);
4522typedef VkResult (VKAPI_PTR *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore);
4523typedef void (VKAPI_PTR *PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator);
4524typedef VkResult (VKAPI_PTR *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool);
4525typedef void (VKAPI_PTR *PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator);
4526typedef VkResult (VKAPI_PTR *PFN_vkGetQueryPoolResults)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags);
4527typedef VkResult (VKAPI_PTR *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer);
4528typedef void (VKAPI_PTR *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator);
4529typedef VkResult (VKAPI_PTR *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage);
4530typedef void (VKAPI_PTR *PFN_vkDestroyImage)(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator);
4531typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout);
4532typedef VkResult (VKAPI_PTR *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView);
4533typedef void (VKAPI_PTR *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator);
4534typedef VkResult (VKAPI_PTR *PFN_vkCreateCommandPool)(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool);
4535typedef void (VKAPI_PTR *PFN_vkDestroyCommandPool)(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator);
4536typedef VkResult (VKAPI_PTR *PFN_vkResetCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags);
4537typedef VkResult (VKAPI_PTR *PFN_vkAllocateCommandBuffers)(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers);
4538typedef void (VKAPI_PTR *PFN_vkFreeCommandBuffers)(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
4539typedef VkResult (VKAPI_PTR *PFN_vkBeginCommandBuffer)(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo);
4540typedef VkResult (VKAPI_PTR *PFN_vkEndCommandBuffer)(VkCommandBuffer commandBuffer);
4541typedef VkResult (VKAPI_PTR *PFN_vkResetCommandBuffer)(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags);
4542typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions);
4543typedef void (VKAPI_PTR *PFN_vkCmdCopyImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions);
4544typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions);
4545typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions);
4546typedef void (VKAPI_PTR *PFN_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData);
4547typedef void (VKAPI_PTR *PFN_vkCmdFillBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data);
4548typedef 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);
4549typedef void (VKAPI_PTR *PFN_vkCmdBeginQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags);
4550typedef void (VKAPI_PTR *PFN_vkCmdEndQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query);
4551typedef void (VKAPI_PTR *PFN_vkCmdResetQueryPool)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
4552typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query);
4553typedef void (VKAPI_PTR *PFN_vkCmdCopyQueryPoolResults)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags);
4554typedef void (VKAPI_PTR *PFN_vkCmdExecuteCommands)(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
4555typedef VkResult (VKAPI_PTR *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent);
4556typedef void (VKAPI_PTR *PFN_vkDestroyEvent)(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator);
4557typedef VkResult (VKAPI_PTR *PFN_vkGetEventStatus)(VkDevice device, VkEvent event);
4558typedef VkResult (VKAPI_PTR *PFN_vkSetEvent)(VkDevice device, VkEvent event);
4559typedef VkResult (VKAPI_PTR *PFN_vkResetEvent)(VkDevice device, VkEvent event);
4560typedef VkResult (VKAPI_PTR *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView);
4561typedef void (VKAPI_PTR *PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator);
4562typedef VkResult (VKAPI_PTR *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule);
4563typedef void (VKAPI_PTR *PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator);
4564typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache);
4565typedef void (VKAPI_PTR *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator);
4566typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData);
4567typedef VkResult (VKAPI_PTR *PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches);
4568typedef VkResult (VKAPI_PTR *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
4569typedef void (VKAPI_PTR *PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator);
4570typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout);
4571typedef void (VKAPI_PTR *PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator);
4572typedef VkResult (VKAPI_PTR *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler);
4573typedef void (VKAPI_PTR *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator);
4574typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout);
4575typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator);
4576typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool);
4577typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator);
4578typedef VkResult (VKAPI_PTR *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
4579typedef VkResult (VKAPI_PTR *PFN_vkAllocateDescriptorSets)(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets);
4580typedef VkResult (VKAPI_PTR *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets);
4581typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies);
4582typedef void (VKAPI_PTR *PFN_vkCmdBindPipeline)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
4583typedef 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);
4584typedef void (VKAPI_PTR *PFN_vkCmdClearColorImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
4585typedef void (VKAPI_PTR *PFN_vkCmdDispatch)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
4586typedef void (VKAPI_PTR *PFN_vkCmdDispatchIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
4587typedef void (VKAPI_PTR *PFN_vkCmdSetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
4588typedef void (VKAPI_PTR *PFN_vkCmdResetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
4589typedef 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);
4590typedef void (VKAPI_PTR *PFN_vkCmdPushConstants)(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues);
4591typedef VkResult (VKAPI_PTR *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
4592typedef VkResult (VKAPI_PTR *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer);
4593typedef void (VKAPI_PTR *PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator);
4594typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
4595typedef void (VKAPI_PTR *PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator);
4596typedef void (VKAPI_PTR *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity);
4597typedef void (VKAPI_PTR *PFN_vkCmdSetViewport)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports);
4598typedef void (VKAPI_PTR *PFN_vkCmdSetScissor)(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors);
4599typedef void (VKAPI_PTR *PFN_vkCmdSetLineWidth)(VkCommandBuffer commandBuffer, float lineWidth);
4600typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias)(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
4601typedef void (VKAPI_PTR *PFN_vkCmdSetBlendConstants)(VkCommandBuffer commandBuffer, const float blendConstants[4]);
4602typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBounds)(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds);
4603typedef void (VKAPI_PTR *PFN_vkCmdSetStencilCompareMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask);
4604typedef void (VKAPI_PTR *PFN_vkCmdSetStencilWriteMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask);
4605typedef void (VKAPI_PTR *PFN_vkCmdSetStencilReference)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference);
4606typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
4607typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets);
4608typedef void (VKAPI_PTR *PFN_vkCmdDraw)(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
4609typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexed)(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance);
4610typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
4611typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
4612typedef void (VKAPI_PTR *PFN_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter);
4613typedef void (VKAPI_PTR *PFN_vkCmdClearDepthStencilImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
4614typedef void (VKAPI_PTR *PFN_vkCmdClearAttachments)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects);
4615typedef void (VKAPI_PTR *PFN_vkCmdResolveImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions);
4616typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents);
4617typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass)(VkCommandBuffer commandBuffer, VkSubpassContents contents);
4618typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass)(VkCommandBuffer commandBuffer);
4619
4620#ifndef VK_NO_PROTOTYPES
4621VKAPI_ATTR VkResult VKAPI_CALL vkCreateInstance(
4622 const VkInstanceCreateInfo* pCreateInfo,
4623 const VkAllocationCallbacks* pAllocator,
4624 VkInstance* pInstance);
4625
4626VKAPI_ATTR void VKAPI_CALL vkDestroyInstance(
4627 VkInstance instance,
4628 const VkAllocationCallbacks* pAllocator);
4629
4630VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDevices(
4631 VkInstance instance,
4632 uint32_t* pPhysicalDeviceCount,
4633 VkPhysicalDevice* pPhysicalDevices);
4634
4635VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures(
4636 VkPhysicalDevice physicalDevice,
4637 VkPhysicalDeviceFeatures* pFeatures);
4638
4639VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties(
4640 VkPhysicalDevice physicalDevice,
4641 VkFormat format,
4642 VkFormatProperties* pFormatProperties);
4643
4644VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties(
4645 VkPhysicalDevice physicalDevice,
4646 VkFormat format,
4647 VkImageType type,
4648 VkImageTiling tiling,
4649 VkImageUsageFlags usage,
4650 VkImageCreateFlags flags,
4651 VkImageFormatProperties* pImageFormatProperties);
4652
4653VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties(
4654 VkPhysicalDevice physicalDevice,
4655 VkPhysicalDeviceProperties* pProperties);
4656
4657VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties(
4658 VkPhysicalDevice physicalDevice,
4659 uint32_t* pQueueFamilyPropertyCount,
4660 VkQueueFamilyProperties* pQueueFamilyProperties);
4661
4662VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties(
4663 VkPhysicalDevice physicalDevice,
4664 VkPhysicalDeviceMemoryProperties* pMemoryProperties);
4665
4666VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(
4667 VkInstance instance,
4668 const char* pName);
4669
4670VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr(
4671 VkDevice device,
4672 const char* pName);
4673
4674VKAPI_ATTR VkResult VKAPI_CALL vkCreateDevice(
4675 VkPhysicalDevice physicalDevice,
4676 const VkDeviceCreateInfo* pCreateInfo,
4677 const VkAllocationCallbacks* pAllocator,
4678 VkDevice* pDevice);
4679
4680VKAPI_ATTR void VKAPI_CALL vkDestroyDevice(
4681 VkDevice device,
4682 const VkAllocationCallbacks* pAllocator);
4683
4684VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceExtensionProperties(
4685 const char* pLayerName,
4686 uint32_t* pPropertyCount,
4687 VkExtensionProperties* pProperties);
4688
4689VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceExtensionProperties(
4690 VkPhysicalDevice physicalDevice,
4691 const char* pLayerName,
4692 uint32_t* pPropertyCount,
4693 VkExtensionProperties* pProperties);
4694
4695VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceLayerProperties(
4696 uint32_t* pPropertyCount,
4697 VkLayerProperties* pProperties);
4698
4699VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceLayerProperties(
4700 VkPhysicalDevice physicalDevice,
4701 uint32_t* pPropertyCount,
4702 VkLayerProperties* pProperties);
4703
4704VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue(
4705 VkDevice device,
4706 uint32_t queueFamilyIndex,
4707 uint32_t queueIndex,
4708 VkQueue* pQueue);
4709
4710VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit(
4711 VkQueue queue,
4712 uint32_t submitCount,
4713 const VkSubmitInfo* pSubmits,
4714 VkFence fence);
4715
4716VKAPI_ATTR VkResult VKAPI_CALL vkQueueWaitIdle(
4717 VkQueue queue);
4718
4719VKAPI_ATTR VkResult VKAPI_CALL vkDeviceWaitIdle(
4720 VkDevice device);
4721
4722VKAPI_ATTR VkResult VKAPI_CALL vkAllocateMemory(
4723 VkDevice device,
4724 const VkMemoryAllocateInfo* pAllocateInfo,
4725 const VkAllocationCallbacks* pAllocator,
4726 VkDeviceMemory* pMemory);
4727
4728VKAPI_ATTR void VKAPI_CALL vkFreeMemory(
4729 VkDevice device,
4730 VkDeviceMemory memory,
4731 const VkAllocationCallbacks* pAllocator);
4732
4733VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory(
4734 VkDevice device,
4735 VkDeviceMemory memory,
4736 VkDeviceSize offset,
4737 VkDeviceSize size,
4738 VkMemoryMapFlags flags,
4739 void** ppData);
4740
4741VKAPI_ATTR void VKAPI_CALL vkUnmapMemory(
4742 VkDevice device,
4743 VkDeviceMemory memory);
4744
4745VKAPI_ATTR VkResult VKAPI_CALL vkFlushMappedMemoryRanges(
4746 VkDevice device,
4747 uint32_t memoryRangeCount,
4748 const VkMappedMemoryRange* pMemoryRanges);
4749
4750VKAPI_ATTR VkResult VKAPI_CALL vkInvalidateMappedMemoryRanges(
4751 VkDevice device,
4752 uint32_t memoryRangeCount,
4753 const VkMappedMemoryRange* pMemoryRanges);
4754
4755VKAPI_ATTR void VKAPI_CALL vkGetDeviceMemoryCommitment(
4756 VkDevice device,
4757 VkDeviceMemory memory,
4758 VkDeviceSize* pCommittedMemoryInBytes);
4759
4760VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory(
4761 VkDevice device,
4762 VkBuffer buffer,
4763 VkDeviceMemory memory,
4764 VkDeviceSize memoryOffset);
4765
4766VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory(
4767 VkDevice device,
4768 VkImage image,
4769 VkDeviceMemory memory,
4770 VkDeviceSize memoryOffset);
4771
4772VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements(
4773 VkDevice device,
4774 VkBuffer buffer,
4775 VkMemoryRequirements* pMemoryRequirements);
4776
4777VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements(
4778 VkDevice device,
4779 VkImage image,
4780 VkMemoryRequirements* pMemoryRequirements);
4781
4782VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements(
4783 VkDevice device,
4784 VkImage image,
4785 uint32_t* pSparseMemoryRequirementCount,
4786 VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
4787
4788VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties(
4789 VkPhysicalDevice physicalDevice,
4790 VkFormat format,
4791 VkImageType type,
4792 VkSampleCountFlagBits samples,
4793 VkImageUsageFlags usage,
4794 VkImageTiling tiling,
4795 uint32_t* pPropertyCount,
4796 VkSparseImageFormatProperties* pProperties);
4797
4798VKAPI_ATTR VkResult VKAPI_CALL vkQueueBindSparse(
4799 VkQueue queue,
4800 uint32_t bindInfoCount,
4801 const VkBindSparseInfo* pBindInfo,
4802 VkFence fence);
4803
4804VKAPI_ATTR VkResult VKAPI_CALL vkCreateFence(
4805 VkDevice device,
4806 const VkFenceCreateInfo* pCreateInfo,
4807 const VkAllocationCallbacks* pAllocator,
4808 VkFence* pFence);
4809
4810VKAPI_ATTR void VKAPI_CALL vkDestroyFence(
4811 VkDevice device,
4812 VkFence fence,
4813 const VkAllocationCallbacks* pAllocator);
4814
4815VKAPI_ATTR VkResult VKAPI_CALL vkResetFences(
4816 VkDevice device,
4817 uint32_t fenceCount,
4818 const VkFence* pFences);
4819
4820VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceStatus(
4821 VkDevice device,
4822 VkFence fence);
4823
4824VKAPI_ATTR VkResult VKAPI_CALL vkWaitForFences(
4825 VkDevice device,
4826 uint32_t fenceCount,
4827 const VkFence* pFences,
4828 VkBool32 waitAll,
4829 uint64_t timeout);
4830
4831VKAPI_ATTR VkResult VKAPI_CALL vkCreateSemaphore(
4832 VkDevice device,
4833 const VkSemaphoreCreateInfo* pCreateInfo,
4834 const VkAllocationCallbacks* pAllocator,
4835 VkSemaphore* pSemaphore);
4836
4837VKAPI_ATTR void VKAPI_CALL vkDestroySemaphore(
4838 VkDevice device,
4839 VkSemaphore semaphore,
4840 const VkAllocationCallbacks* pAllocator);
4841
4842VKAPI_ATTR VkResult VKAPI_CALL vkCreateQueryPool(
4843 VkDevice device,
4844 const VkQueryPoolCreateInfo* pCreateInfo,
4845 const VkAllocationCallbacks* pAllocator,
4846 VkQueryPool* pQueryPool);
4847
4848VKAPI_ATTR void VKAPI_CALL vkDestroyQueryPool(
4849 VkDevice device,
4850 VkQueryPool queryPool,
4851 const VkAllocationCallbacks* pAllocator);
4852
4853VKAPI_ATTR VkResult VKAPI_CALL vkGetQueryPoolResults(
4854 VkDevice device,
4855 VkQueryPool queryPool,
4856 uint32_t firstQuery,
4857 uint32_t queryCount,
4858 size_t dataSize,
4859 void* pData,
4860 VkDeviceSize stride,
4861 VkQueryResultFlags flags);
4862
4863VKAPI_ATTR VkResult VKAPI_CALL vkCreateBuffer(
4864 VkDevice device,
4865 const VkBufferCreateInfo* pCreateInfo,
4866 const VkAllocationCallbacks* pAllocator,
4867 VkBuffer* pBuffer);
4868
4869VKAPI_ATTR void VKAPI_CALL vkDestroyBuffer(
4870 VkDevice device,
4871 VkBuffer buffer,
4872 const VkAllocationCallbacks* pAllocator);
4873
4874VKAPI_ATTR VkResult VKAPI_CALL vkCreateImage(
4875 VkDevice device,
4876 const VkImageCreateInfo* pCreateInfo,
4877 const VkAllocationCallbacks* pAllocator,
4878 VkImage* pImage);
4879
4880VKAPI_ATTR void VKAPI_CALL vkDestroyImage(
4881 VkDevice device,
4882 VkImage image,
4883 const VkAllocationCallbacks* pAllocator);
4884
4885VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout(
4886 VkDevice device,
4887 VkImage image,
4888 const VkImageSubresource* pSubresource,
4889 VkSubresourceLayout* pLayout);
4890
4891VKAPI_ATTR VkResult VKAPI_CALL vkCreateImageView(
4892 VkDevice device,
4893 const VkImageViewCreateInfo* pCreateInfo,
4894 const VkAllocationCallbacks* pAllocator,
4895 VkImageView* pView);
4896
4897VKAPI_ATTR void VKAPI_CALL vkDestroyImageView(
4898 VkDevice device,
4899 VkImageView imageView,
4900 const VkAllocationCallbacks* pAllocator);
4901
4902VKAPI_ATTR VkResult VKAPI_CALL vkCreateCommandPool(
4903 VkDevice device,
4904 const VkCommandPoolCreateInfo* pCreateInfo,
4905 const VkAllocationCallbacks* pAllocator,
4906 VkCommandPool* pCommandPool);
4907
4908VKAPI_ATTR void VKAPI_CALL vkDestroyCommandPool(
4909 VkDevice device,
4910 VkCommandPool commandPool,
4911 const VkAllocationCallbacks* pAllocator);
4912
4913VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandPool(
4914 VkDevice device,
4915 VkCommandPool commandPool,
4916 VkCommandPoolResetFlags flags);
4917
4918VKAPI_ATTR VkResult VKAPI_CALL vkAllocateCommandBuffers(
4919 VkDevice device,
4920 const VkCommandBufferAllocateInfo* pAllocateInfo,
4921 VkCommandBuffer* pCommandBuffers);
4922
4923VKAPI_ATTR void VKAPI_CALL vkFreeCommandBuffers(
4924 VkDevice device,
4925 VkCommandPool commandPool,
4926 uint32_t commandBufferCount,
4927 const VkCommandBuffer* pCommandBuffers);
4928
4929VKAPI_ATTR VkResult VKAPI_CALL vkBeginCommandBuffer(
4930 VkCommandBuffer commandBuffer,
4931 const VkCommandBufferBeginInfo* pBeginInfo);
4932
4933VKAPI_ATTR VkResult VKAPI_CALL vkEndCommandBuffer(
4934 VkCommandBuffer commandBuffer);
4935
4936VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandBuffer(
4937 VkCommandBuffer commandBuffer,
4938 VkCommandBufferResetFlags flags);
4939
4940VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer(
4941 VkCommandBuffer commandBuffer,
4942 VkBuffer srcBuffer,
4943 VkBuffer dstBuffer,
4944 uint32_t regionCount,
4945 const VkBufferCopy* pRegions);
4946
4947VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage(
4948 VkCommandBuffer commandBuffer,
4949 VkImage srcImage,
4950 VkImageLayout srcImageLayout,
4951 VkImage dstImage,
4952 VkImageLayout dstImageLayout,
4953 uint32_t regionCount,
4954 const VkImageCopy* pRegions);
4955
4956VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage(
4957 VkCommandBuffer commandBuffer,
4958 VkBuffer srcBuffer,
4959 VkImage dstImage,
4960 VkImageLayout dstImageLayout,
4961 uint32_t regionCount,
4962 const VkBufferImageCopy* pRegions);
4963
4964VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer(
4965 VkCommandBuffer commandBuffer,
4966 VkImage srcImage,
4967 VkImageLayout srcImageLayout,
4968 VkBuffer dstBuffer,
4969 uint32_t regionCount,
4970 const VkBufferImageCopy* pRegions);
4971
4972VKAPI_ATTR void VKAPI_CALL vkCmdUpdateBuffer(
4973 VkCommandBuffer commandBuffer,
4974 VkBuffer dstBuffer,
4975 VkDeviceSize dstOffset,
4976 VkDeviceSize dataSize,
4977 const void* pData);
4978
4979VKAPI_ATTR void VKAPI_CALL vkCmdFillBuffer(
4980 VkCommandBuffer commandBuffer,
4981 VkBuffer dstBuffer,
4982 VkDeviceSize dstOffset,
4983 VkDeviceSize size,
4984 uint32_t data);
4985
4986VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier(
4987 VkCommandBuffer commandBuffer,
4988 VkPipelineStageFlags srcStageMask,
4989 VkPipelineStageFlags dstStageMask,
4990 VkDependencyFlags dependencyFlags,
4991 uint32_t memoryBarrierCount,
4992 const VkMemoryBarrier* pMemoryBarriers,
4993 uint32_t bufferMemoryBarrierCount,
4994 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
4995 uint32_t imageMemoryBarrierCount,
4996 const VkImageMemoryBarrier* pImageMemoryBarriers);
4997
4998VKAPI_ATTR void VKAPI_CALL vkCmdBeginQuery(
4999 VkCommandBuffer commandBuffer,
5000 VkQueryPool queryPool,
5001 uint32_t query,
5002 VkQueryControlFlags flags);
5003
5004VKAPI_ATTR void VKAPI_CALL vkCmdEndQuery(
5005 VkCommandBuffer commandBuffer,
5006 VkQueryPool queryPool,
5007 uint32_t query);
5008
5009VKAPI_ATTR void VKAPI_CALL vkCmdResetQueryPool(
5010 VkCommandBuffer commandBuffer,
5011 VkQueryPool queryPool,
5012 uint32_t firstQuery,
5013 uint32_t queryCount);
5014
5015VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp(
5016 VkCommandBuffer commandBuffer,
5017 VkPipelineStageFlagBits pipelineStage,
5018 VkQueryPool queryPool,
5019 uint32_t query);
5020
5021VKAPI_ATTR void VKAPI_CALL vkCmdCopyQueryPoolResults(
5022 VkCommandBuffer commandBuffer,
5023 VkQueryPool queryPool,
5024 uint32_t firstQuery,
5025 uint32_t queryCount,
5026 VkBuffer dstBuffer,
5027 VkDeviceSize dstOffset,
5028 VkDeviceSize stride,
5029 VkQueryResultFlags flags);
5030
5031VKAPI_ATTR void VKAPI_CALL vkCmdExecuteCommands(
5032 VkCommandBuffer commandBuffer,
5033 uint32_t commandBufferCount,
5034 const VkCommandBuffer* pCommandBuffers);
5035
5036VKAPI_ATTR VkResult VKAPI_CALL vkCreateEvent(
5037 VkDevice device,
5038 const VkEventCreateInfo* pCreateInfo,
5039 const VkAllocationCallbacks* pAllocator,
5040 VkEvent* pEvent);
5041
5042VKAPI_ATTR void VKAPI_CALL vkDestroyEvent(
5043 VkDevice device,
5044 VkEvent event,
5045 const VkAllocationCallbacks* pAllocator);
5046
5047VKAPI_ATTR VkResult VKAPI_CALL vkGetEventStatus(
5048 VkDevice device,
5049 VkEvent event);
5050
5051VKAPI_ATTR VkResult VKAPI_CALL vkSetEvent(
5052 VkDevice device,
5053 VkEvent event);
5054
5055VKAPI_ATTR VkResult VKAPI_CALL vkResetEvent(
5056 VkDevice device,
5057 VkEvent event);
5058
5059VKAPI_ATTR VkResult VKAPI_CALL vkCreateBufferView(
5060 VkDevice device,
5061 const VkBufferViewCreateInfo* pCreateInfo,
5062 const VkAllocationCallbacks* pAllocator,
5063 VkBufferView* pView);
5064
5065VKAPI_ATTR void VKAPI_CALL vkDestroyBufferView(
5066 VkDevice device,
5067 VkBufferView bufferView,
5068 const VkAllocationCallbacks* pAllocator);
5069
5070VKAPI_ATTR VkResult VKAPI_CALL vkCreateShaderModule(
5071 VkDevice device,
5072 const VkShaderModuleCreateInfo* pCreateInfo,
5073 const VkAllocationCallbacks* pAllocator,
5074 VkShaderModule* pShaderModule);
5075
5076VKAPI_ATTR void VKAPI_CALL vkDestroyShaderModule(
5077 VkDevice device,
5078 VkShaderModule shaderModule,
5079 const VkAllocationCallbacks* pAllocator);
5080
5081VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineCache(
5082 VkDevice device,
5083 const VkPipelineCacheCreateInfo* pCreateInfo,
5084 const VkAllocationCallbacks* pAllocator,
5085 VkPipelineCache* pPipelineCache);
5086
5087VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineCache(
5088 VkDevice device,
5089 VkPipelineCache pipelineCache,
5090 const VkAllocationCallbacks* pAllocator);
5091
5092VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineCacheData(
5093 VkDevice device,
5094 VkPipelineCache pipelineCache,
5095 size_t* pDataSize,
5096 void* pData);
5097
5098VKAPI_ATTR VkResult VKAPI_CALL vkMergePipelineCaches(
5099 VkDevice device,
5100 VkPipelineCache dstCache,
5101 uint32_t srcCacheCount,
5102 const VkPipelineCache* pSrcCaches);
5103
5104VKAPI_ATTR VkResult VKAPI_CALL vkCreateComputePipelines(
5105 VkDevice device,
5106 VkPipelineCache pipelineCache,
5107 uint32_t createInfoCount,
5108 const VkComputePipelineCreateInfo* pCreateInfos,
5109 const VkAllocationCallbacks* pAllocator,
5110 VkPipeline* pPipelines);
5111
5112VKAPI_ATTR void VKAPI_CALL vkDestroyPipeline(
5113 VkDevice device,
5114 VkPipeline pipeline,
5115 const VkAllocationCallbacks* pAllocator);
5116
5117VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineLayout(
5118 VkDevice device,
5119 const VkPipelineLayoutCreateInfo* pCreateInfo,
5120 const VkAllocationCallbacks* pAllocator,
5121 VkPipelineLayout* pPipelineLayout);
5122
5123VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineLayout(
5124 VkDevice device,
5125 VkPipelineLayout pipelineLayout,
5126 const VkAllocationCallbacks* pAllocator);
5127
5128VKAPI_ATTR VkResult VKAPI_CALL vkCreateSampler(
5129 VkDevice device,
5130 const VkSamplerCreateInfo* pCreateInfo,
5131 const VkAllocationCallbacks* pAllocator,
5132 VkSampler* pSampler);
5133
5134VKAPI_ATTR void VKAPI_CALL vkDestroySampler(
5135 VkDevice device,
5136 VkSampler sampler,
5137 const VkAllocationCallbacks* pAllocator);
5138
5139VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorSetLayout(
5140 VkDevice device,
5141 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
5142 const VkAllocationCallbacks* pAllocator,
5143 VkDescriptorSetLayout* pSetLayout);
5144
5145VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorSetLayout(
5146 VkDevice device,
5147 VkDescriptorSetLayout descriptorSetLayout,
5148 const VkAllocationCallbacks* pAllocator);
5149
5150VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorPool(
5151 VkDevice device,
5152 const VkDescriptorPoolCreateInfo* pCreateInfo,
5153 const VkAllocationCallbacks* pAllocator,
5154 VkDescriptorPool* pDescriptorPool);
5155
5156VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorPool(
5157 VkDevice device,
5158 VkDescriptorPool descriptorPool,
5159 const VkAllocationCallbacks* pAllocator);
5160
5161VKAPI_ATTR VkResult VKAPI_CALL vkResetDescriptorPool(
5162 VkDevice device,
5163 VkDescriptorPool descriptorPool,
5164 VkDescriptorPoolResetFlags flags);
5165
5166VKAPI_ATTR VkResult VKAPI_CALL vkAllocateDescriptorSets(
5167 VkDevice device,
5168 const VkDescriptorSetAllocateInfo* pAllocateInfo,
5169 VkDescriptorSet* pDescriptorSets);
5170
5171VKAPI_ATTR VkResult VKAPI_CALL vkFreeDescriptorSets(
5172 VkDevice device,
5173 VkDescriptorPool descriptorPool,
5174 uint32_t descriptorSetCount,
5175 const VkDescriptorSet* pDescriptorSets);
5176
5177VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSets(
5178 VkDevice device,
5179 uint32_t descriptorWriteCount,
5180 const VkWriteDescriptorSet* pDescriptorWrites,
5181 uint32_t descriptorCopyCount,
5182 const VkCopyDescriptorSet* pDescriptorCopies);
5183
5184VKAPI_ATTR void VKAPI_CALL vkCmdBindPipeline(
5185 VkCommandBuffer commandBuffer,
5186 VkPipelineBindPoint pipelineBindPoint,
5187 VkPipeline pipeline);
5188
5189VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets(
5190 VkCommandBuffer commandBuffer,
5191 VkPipelineBindPoint pipelineBindPoint,
5192 VkPipelineLayout layout,
5193 uint32_t firstSet,
5194 uint32_t descriptorSetCount,
5195 const VkDescriptorSet* pDescriptorSets,
5196 uint32_t dynamicOffsetCount,
5197 const uint32_t* pDynamicOffsets);
5198
5199VKAPI_ATTR void VKAPI_CALL vkCmdClearColorImage(
5200 VkCommandBuffer commandBuffer,
5201 VkImage image,
5202 VkImageLayout imageLayout,
5203 const VkClearColorValue* pColor,
5204 uint32_t rangeCount,
5205 const VkImageSubresourceRange* pRanges);
5206
5207VKAPI_ATTR void VKAPI_CALL vkCmdDispatch(
5208 VkCommandBuffer commandBuffer,
5209 uint32_t groupCountX,
5210 uint32_t groupCountY,
5211 uint32_t groupCountZ);
5212
5213VKAPI_ATTR void VKAPI_CALL vkCmdDispatchIndirect(
5214 VkCommandBuffer commandBuffer,
5215 VkBuffer buffer,
5216 VkDeviceSize offset);
5217
5218VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent(
5219 VkCommandBuffer commandBuffer,
5220 VkEvent event,
5221 VkPipelineStageFlags stageMask);
5222
5223VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent(
5224 VkCommandBuffer commandBuffer,
5225 VkEvent event,
5226 VkPipelineStageFlags stageMask);
5227
5228VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents(
5229 VkCommandBuffer commandBuffer,
5230 uint32_t eventCount,
5231 const VkEvent* pEvents,
5232 VkPipelineStageFlags srcStageMask,
5233 VkPipelineStageFlags dstStageMask,
5234 uint32_t memoryBarrierCount,
5235 const VkMemoryBarrier* pMemoryBarriers,
5236 uint32_t bufferMemoryBarrierCount,
5237 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
5238 uint32_t imageMemoryBarrierCount,
5239 const VkImageMemoryBarrier* pImageMemoryBarriers);
5240
5241VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants(
5242 VkCommandBuffer commandBuffer,
5243 VkPipelineLayout layout,
5244 VkShaderStageFlags stageFlags,
5245 uint32_t offset,
5246 uint32_t size,
5247 const void* pValues);
5248
5249VKAPI_ATTR VkResult VKAPI_CALL vkCreateGraphicsPipelines(
5250 VkDevice device,
5251 VkPipelineCache pipelineCache,
5252 uint32_t createInfoCount,
5253 const VkGraphicsPipelineCreateInfo* pCreateInfos,
5254 const VkAllocationCallbacks* pAllocator,
5255 VkPipeline* pPipelines);
5256
5257VKAPI_ATTR VkResult VKAPI_CALL vkCreateFramebuffer(
5258 VkDevice device,
5259 const VkFramebufferCreateInfo* pCreateInfo,
5260 const VkAllocationCallbacks* pAllocator,
5261 VkFramebuffer* pFramebuffer);
5262
5263VKAPI_ATTR void VKAPI_CALL vkDestroyFramebuffer(
5264 VkDevice device,
5265 VkFramebuffer framebuffer,
5266 const VkAllocationCallbacks* pAllocator);
5267
5268VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass(
5269 VkDevice device,
5270 const VkRenderPassCreateInfo* pCreateInfo,
5271 const VkAllocationCallbacks* pAllocator,
5272 VkRenderPass* pRenderPass);
5273
5274VKAPI_ATTR void VKAPI_CALL vkDestroyRenderPass(
5275 VkDevice device,
5276 VkRenderPass renderPass,
5277 const VkAllocationCallbacks* pAllocator);
5278
5279VKAPI_ATTR void VKAPI_CALL vkGetRenderAreaGranularity(
5280 VkDevice device,
5281 VkRenderPass renderPass,
5282 VkExtent2D* pGranularity);
5283
5284VKAPI_ATTR void VKAPI_CALL vkCmdSetViewport(
5285 VkCommandBuffer commandBuffer,
5286 uint32_t firstViewport,
5287 uint32_t viewportCount,
5288 const VkViewport* pViewports);
5289
5290VKAPI_ATTR void VKAPI_CALL vkCmdSetScissor(
5291 VkCommandBuffer commandBuffer,
5292 uint32_t firstScissor,
5293 uint32_t scissorCount,
5294 const VkRect2D* pScissors);
5295
5296VKAPI_ATTR void VKAPI_CALL vkCmdSetLineWidth(
5297 VkCommandBuffer commandBuffer,
5298 float lineWidth);
5299
5300VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias(
5301 VkCommandBuffer commandBuffer,
5302 float depthBiasConstantFactor,
5303 float depthBiasClamp,
5304 float depthBiasSlopeFactor);
5305
5306VKAPI_ATTR void VKAPI_CALL vkCmdSetBlendConstants(
5307 VkCommandBuffer commandBuffer,
5308 const float blendConstants[4]);
5309
5310VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBounds(
5311 VkCommandBuffer commandBuffer,
5312 float minDepthBounds,
5313 float maxDepthBounds);
5314
5315VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilCompareMask(
5316 VkCommandBuffer commandBuffer,
5317 VkStencilFaceFlags faceMask,
5318 uint32_t compareMask);
5319
5320VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilWriteMask(
5321 VkCommandBuffer commandBuffer,
5322 VkStencilFaceFlags faceMask,
5323 uint32_t writeMask);
5324
5325VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilReference(
5326 VkCommandBuffer commandBuffer,
5327 VkStencilFaceFlags faceMask,
5328 uint32_t reference);
5329
5330VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer(
5331 VkCommandBuffer commandBuffer,
5332 VkBuffer buffer,
5333 VkDeviceSize offset,
5334 VkIndexType indexType);
5335
5336VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers(
5337 VkCommandBuffer commandBuffer,
5338 uint32_t firstBinding,
5339 uint32_t bindingCount,
5340 const VkBuffer* pBuffers,
5341 const VkDeviceSize* pOffsets);
5342
5343VKAPI_ATTR void VKAPI_CALL vkCmdDraw(
5344 VkCommandBuffer commandBuffer,
5345 uint32_t vertexCount,
5346 uint32_t instanceCount,
5347 uint32_t firstVertex,
5348 uint32_t firstInstance);
5349
5350VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexed(
5351 VkCommandBuffer commandBuffer,
5352 uint32_t indexCount,
5353 uint32_t instanceCount,
5354 uint32_t firstIndex,
5355 int32_t vertexOffset,
5356 uint32_t firstInstance);
5357
5358VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirect(
5359 VkCommandBuffer commandBuffer,
5360 VkBuffer buffer,
5361 VkDeviceSize offset,
5362 uint32_t drawCount,
5363 uint32_t stride);
5364
5365VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirect(
5366 VkCommandBuffer commandBuffer,
5367 VkBuffer buffer,
5368 VkDeviceSize offset,
5369 uint32_t drawCount,
5370 uint32_t stride);
5371
5372VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage(
5373 VkCommandBuffer commandBuffer,
5374 VkImage srcImage,
5375 VkImageLayout srcImageLayout,
5376 VkImage dstImage,
5377 VkImageLayout dstImageLayout,
5378 uint32_t regionCount,
5379 const VkImageBlit* pRegions,
5380 VkFilter filter);
5381
5382VKAPI_ATTR void VKAPI_CALL vkCmdClearDepthStencilImage(
5383 VkCommandBuffer commandBuffer,
5384 VkImage image,
5385 VkImageLayout imageLayout,
5386 const VkClearDepthStencilValue* pDepthStencil,
5387 uint32_t rangeCount,
5388 const VkImageSubresourceRange* pRanges);
5389
5390VKAPI_ATTR void VKAPI_CALL vkCmdClearAttachments(
5391 VkCommandBuffer commandBuffer,
5392 uint32_t attachmentCount,
5393 const VkClearAttachment* pAttachments,
5394 uint32_t rectCount,
5395 const VkClearRect* pRects);
5396
5397VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage(
5398 VkCommandBuffer commandBuffer,
5399 VkImage srcImage,
5400 VkImageLayout srcImageLayout,
5401 VkImage dstImage,
5402 VkImageLayout dstImageLayout,
5403 uint32_t regionCount,
5404 const VkImageResolve* pRegions);
5405
5406VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass(
5407 VkCommandBuffer commandBuffer,
5408 const VkRenderPassBeginInfo* pRenderPassBegin,
5409 VkSubpassContents contents);
5410
5411VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass(
5412 VkCommandBuffer commandBuffer,
5413 VkSubpassContents contents);
5414
5415VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass(
5416 VkCommandBuffer commandBuffer);
5417#endif
5418
5419
5420// VK_VERSION_1_1 is a preprocessor guard. Do not pass it to API calls.
5421#define VK_VERSION_1_1 1
5422// Vulkan 1.1 version number
5423#define VK_API_VERSION_1_1 VK_MAKE_API_VERSION(0, 1, 1, 0)// Patch version should always be set to 0
5424
5425VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorUpdateTemplate)
5426VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSamplerYcbcrConversion)
5427#define VK_MAX_DEVICE_GROUP_SIZE 32U
5428#define VK_LUID_SIZE 8U
5429#define VK_QUEUE_FAMILY_EXTERNAL (~1U)
5430
5431typedef enum VkPointClippingBehavior {
5432 VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0,
5433 VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1,
5434 VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES,
5435 VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY,
5436 VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM = 0x7FFFFFFF
5437} VkPointClippingBehavior;
5438
5439typedef enum VkDescriptorUpdateTemplateType {
5440 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0,
5441 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS = 1,
5442 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS,
5443 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,
5444 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM = 0x7FFFFFFF
5445} VkDescriptorUpdateTemplateType;
5446
5447typedef enum VkSamplerYcbcrModelConversion {
5448 VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = 0,
5449 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = 1,
5450 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = 2,
5451 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = 3,
5452 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4,
5453 VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY,
5454 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY,
5455 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709,
5456 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601,
5457 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020,
5458 VK_SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM = 0x7FFFFFFF
5459} VkSamplerYcbcrModelConversion;
5460
5461typedef enum VkSamplerYcbcrRange {
5462 VK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0,
5463 VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1,
5464 VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_FULL,
5465 VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW,
5466 VK_SAMPLER_YCBCR_RANGE_MAX_ENUM = 0x7FFFFFFF
5467} VkSamplerYcbcrRange;
5468
5469typedef enum VkChromaLocation {
5470 VK_CHROMA_LOCATION_COSITED_EVEN = 0,
5471 VK_CHROMA_LOCATION_MIDPOINT = 1,
5472 VK_CHROMA_LOCATION_COSITED_EVEN_KHR = VK_CHROMA_LOCATION_COSITED_EVEN,
5473 VK_CHROMA_LOCATION_MIDPOINT_KHR = VK_CHROMA_LOCATION_MIDPOINT,
5474 VK_CHROMA_LOCATION_MAX_ENUM = 0x7FFFFFFF
5475} VkChromaLocation;
5476
5477typedef enum VkTessellationDomainOrigin {
5478 VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0,
5479 VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1,
5480 VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT,
5481 VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT,
5482 VK_TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM = 0x7FFFFFFF
5483} VkTessellationDomainOrigin;
5484
5485typedef enum VkSubgroupFeatureFlagBits {
5486 VK_SUBGROUP_FEATURE_BASIC_BIT = 0x00000001,
5487 VK_SUBGROUP_FEATURE_VOTE_BIT = 0x00000002,
5488 VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 0x00000004,
5489 VK_SUBGROUP_FEATURE_BALLOT_BIT = 0x00000008,
5490 VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 0x00000010,
5491 VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 0x00000020,
5492 VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0x00000040,
5493 VK_SUBGROUP_FEATURE_QUAD_BIT = 0x00000080,
5494 VK_SUBGROUP_FEATURE_ROTATE_BIT = 0x00000200,
5495 VK_SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT = 0x00000400,
5496 VK_SUBGROUP_FEATURE_PARTITIONED_BIT_EXT = 0x00000100,
5497 VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = VK_SUBGROUP_FEATURE_PARTITIONED_BIT_EXT,
5498 VK_SUBGROUP_FEATURE_ROTATE_BIT_KHR = VK_SUBGROUP_FEATURE_ROTATE_BIT,
5499 VK_SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT_KHR = VK_SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT,
5500 VK_SUBGROUP_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5501} VkSubgroupFeatureFlagBits;
5502typedef VkFlags VkSubgroupFeatureFlags;
5503
5504typedef enum VkPeerMemoryFeatureFlagBits {
5505 VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 0x00000001,
5506 VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 0x00000002,
5507 VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 0x00000004,
5508 VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 0x00000008,
5509 VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT,
5510 VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_DST_BIT,
5511 VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT,
5512 VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT,
5513 VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5514} VkPeerMemoryFeatureFlagBits;
5515typedef VkFlags VkPeerMemoryFeatureFlags;
5516
5517typedef enum VkMemoryAllocateFlagBits {
5518 VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 0x00000001,
5519 VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT = 0x00000002,
5520 VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0x00000004,
5521 VK_MEMORY_ALLOCATE_ZERO_INITIALIZE_BIT_EXT = 0x00000008,
5522 VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT,
5523 VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT,
5524 VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
5525 VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5526} VkMemoryAllocateFlagBits;
5527typedef VkFlags VkMemoryAllocateFlags;
5528typedef VkFlags VkCommandPoolTrimFlags;
5529
5530typedef enum VkExternalMemoryHandleTypeFlagBits {
5531 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
5532 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
5533 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
5534 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 0x00000008,
5535 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 0x00000010,
5536 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 0x00000020,
5537 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0x00000040,
5538 VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 0x00000200,
5539 VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0x00000400,
5540 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080,
5541 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100,
5542 VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA = 0x00000800,
5543 VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV = 0x00001000,
5544 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OH_NATIVE_BUFFER_BIT_OHOS = 0x00008000,
5545 VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX = 0x00004000,
5546 VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLBUFFER_BIT_EXT = 0x00010000,
5547 VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLTEXTURE_BIT_EXT = 0x00020000,
5548 VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLHEAP_BIT_EXT = 0x00040000,
5549 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,
5550 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,
5551 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
5552 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT,
5553 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT,
5554 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT,
5555 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT,
5556 VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5557} VkExternalMemoryHandleTypeFlagBits;
5558typedef VkFlags VkExternalMemoryHandleTypeFlags;
5559
5560typedef enum VkExternalMemoryFeatureFlagBits {
5561 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 0x00000001,
5562 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 0x00000002,
5563 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 0x00000004,
5564 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT,
5565 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT,
5566 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT,
5567 VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5568} VkExternalMemoryFeatureFlagBits;
5569typedef VkFlags VkExternalMemoryFeatureFlags;
5570
5571typedef enum VkExternalFenceHandleTypeFlagBits {
5572 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
5573 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
5574 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
5575 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000008,
5576 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT,
5577 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
5578 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
5579 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT,
5580 VK_EXTERNAL_FENCE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5581} VkExternalFenceHandleTypeFlagBits;
5582typedef VkFlags VkExternalFenceHandleTypeFlags;
5583
5584typedef enum VkExternalFenceFeatureFlagBits {
5585 VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 0x00000001,
5586 VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 0x00000002,
5587 VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT,
5588 VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT,
5589 VK_EXTERNAL_FENCE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5590} VkExternalFenceFeatureFlagBits;
5591typedef VkFlags VkExternalFenceFeatureFlags;
5592
5593typedef enum VkFenceImportFlagBits {
5594 VK_FENCE_IMPORT_TEMPORARY_BIT = 0x00000001,
5595 VK_FENCE_IMPORT_TEMPORARY_BIT_KHR = VK_FENCE_IMPORT_TEMPORARY_BIT,
5596 VK_FENCE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5597} VkFenceImportFlagBits;
5598typedef VkFlags VkFenceImportFlags;
5599
5600typedef enum VkSemaphoreImportFlagBits {
5601 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 0x00000001,
5602 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR = VK_SEMAPHORE_IMPORT_TEMPORARY_BIT,
5603 VK_SEMAPHORE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5604} VkSemaphoreImportFlagBits;
5605typedef VkFlags VkSemaphoreImportFlags;
5606
5607typedef enum VkExternalSemaphoreHandleTypeFlagBits {
5608 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
5609 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
5610 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
5611 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0x00000008,
5612 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000010,
5613 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA = 0x00000080,
5614 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
5615 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,
5616 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
5617 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
5618 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
5619 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT,
5620 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5621} VkExternalSemaphoreHandleTypeFlagBits;
5622typedef VkFlags VkExternalSemaphoreHandleTypeFlags;
5623
5624typedef enum VkExternalSemaphoreFeatureFlagBits {
5625 VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 0x00000001,
5626 VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 0x00000002,
5627 VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT,
5628 VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT,
5629 VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5630} VkExternalSemaphoreFeatureFlagBits;
5631typedef VkFlags VkExternalSemaphoreFeatureFlags;
5632typedef VkFlags VkDescriptorUpdateTemplateCreateFlags;
5633typedef struct VkBindBufferMemoryInfo {
5634 VkStructureType sType;
5635 const void* pNext;
5636 VkBuffer buffer;
5637 VkDeviceMemory memory;
5638 VkDeviceSize memoryOffset;
5639} VkBindBufferMemoryInfo;
5640
5641typedef struct VkBindImageMemoryInfo {
5642 VkStructureType sType;
5643 const void* pNext;
5644 VkImage image;
5645 VkDeviceMemory memory;
5646 VkDeviceSize memoryOffset;
5647} VkBindImageMemoryInfo;
5648
5649typedef struct VkMemoryDedicatedRequirements {
5650 VkStructureType sType;
5651 void* pNext;
5652 VkBool32 prefersDedicatedAllocation;
5653 VkBool32 requiresDedicatedAllocation;
5654} VkMemoryDedicatedRequirements;
5655
5656typedef struct VkMemoryDedicatedAllocateInfo {
5657 VkStructureType sType;
5658 const void* pNext;
5659 VkImage image;
5660 VkBuffer buffer;
5661} VkMemoryDedicatedAllocateInfo;
5662
5663typedef struct VkMemoryAllocateFlagsInfo {
5664 VkStructureType sType;
5665 const void* pNext;
5666 VkMemoryAllocateFlags flags;
5667 uint32_t deviceMask;
5668} VkMemoryAllocateFlagsInfo;
5669
5670typedef struct VkDeviceGroupCommandBufferBeginInfo {
5671 VkStructureType sType;
5672 const void* pNext;
5673 uint32_t deviceMask;
5674} VkDeviceGroupCommandBufferBeginInfo;
5675
5676typedef struct VkDeviceGroupSubmitInfo {
5677 VkStructureType sType;
5678 const void* pNext;
5679 uint32_t waitSemaphoreCount;
5680 const uint32_t* pWaitSemaphoreDeviceIndices;
5681 uint32_t commandBufferCount;
5682 const uint32_t* pCommandBufferDeviceMasks;
5683 uint32_t signalSemaphoreCount;
5684 const uint32_t* pSignalSemaphoreDeviceIndices;
5685} VkDeviceGroupSubmitInfo;
5686
5687typedef struct VkDeviceGroupBindSparseInfo {
5688 VkStructureType sType;
5689 const void* pNext;
5690 uint32_t resourceDeviceIndex;
5691 uint32_t memoryDeviceIndex;
5692} VkDeviceGroupBindSparseInfo;
5693
5694typedef struct VkBindBufferMemoryDeviceGroupInfo {
5695 VkStructureType sType;
5696 const void* pNext;
5697 uint32_t deviceIndexCount;
5698 const uint32_t* pDeviceIndices;
5699} VkBindBufferMemoryDeviceGroupInfo;
5700
5701typedef struct VkBindImageMemoryDeviceGroupInfo {
5702 VkStructureType sType;
5703 const void* pNext;
5704 uint32_t deviceIndexCount;
5705 const uint32_t* pDeviceIndices;
5706 uint32_t splitInstanceBindRegionCount;
5707 const VkRect2D* pSplitInstanceBindRegions;
5708} VkBindImageMemoryDeviceGroupInfo;
5709
5710typedef struct VkPhysicalDeviceGroupProperties {
5711 VkStructureType sType;
5712 void* pNext;
5713 uint32_t physicalDeviceCount;
5714 VkPhysicalDevice physicalDevices[VK_MAX_DEVICE_GROUP_SIZE];
5715 VkBool32 subsetAllocation;
5716} VkPhysicalDeviceGroupProperties;
5717
5718typedef struct VkDeviceGroupDeviceCreateInfo {
5719 VkStructureType sType;
5720 const void* pNext;
5721 uint32_t physicalDeviceCount;
5722 const VkPhysicalDevice* pPhysicalDevices;
5723} VkDeviceGroupDeviceCreateInfo;
5724
5725typedef struct VkBufferMemoryRequirementsInfo2 {
5726 VkStructureType sType;
5727 const void* pNext;
5728 VkBuffer buffer;
5729} VkBufferMemoryRequirementsInfo2;
5730
5731typedef struct VkImageMemoryRequirementsInfo2 {
5732 VkStructureType sType;
5733 const void* pNext;
5734 VkImage image;
5735} VkImageMemoryRequirementsInfo2;
5736
5737typedef struct VkImageSparseMemoryRequirementsInfo2 {
5738 VkStructureType sType;
5739 const void* pNext;
5740 VkImage image;
5741} VkImageSparseMemoryRequirementsInfo2;
5742
5743typedef struct VkMemoryRequirements2 {
5744 VkStructureType sType;
5745 void* pNext;
5746 VkMemoryRequirements memoryRequirements;
5747} VkMemoryRequirements2;
5748
5749typedef struct VkSparseImageMemoryRequirements2 {
5750 VkStructureType sType;
5751 void* pNext;
5752 VkSparseImageMemoryRequirements memoryRequirements;
5753} VkSparseImageMemoryRequirements2;
5754
5755typedef struct VkPhysicalDeviceFeatures2 {
5756 VkStructureType sType;
5757 void* pNext;
5758 VkPhysicalDeviceFeatures features;
5759} VkPhysicalDeviceFeatures2;
5760
5761typedef struct VkPhysicalDeviceProperties2 {
5762 VkStructureType sType;
5763 void* pNext;
5764 VkPhysicalDeviceProperties properties;
5765} VkPhysicalDeviceProperties2;
5766
5767typedef struct VkFormatProperties2 {
5768 VkStructureType sType;
5769 void* pNext;
5770 VkFormatProperties formatProperties;
5771} VkFormatProperties2;
5772
5773typedef struct VkImageFormatProperties2 {
5774 VkStructureType sType;
5775 void* pNext;
5776 VkImageFormatProperties imageFormatProperties;
5777} VkImageFormatProperties2;
5778
5779typedef struct VkPhysicalDeviceImageFormatInfo2 {
5780 VkStructureType sType;
5781 const void* pNext;
5782 VkFormat format;
5783 VkImageType type;
5784 VkImageTiling tiling;
5785 VkImageUsageFlags usage;
5786 VkImageCreateFlags flags;
5787} VkPhysicalDeviceImageFormatInfo2;
5788
5789typedef struct VkQueueFamilyProperties2 {
5790 VkStructureType sType;
5791 void* pNext;
5792 VkQueueFamilyProperties queueFamilyProperties;
5793} VkQueueFamilyProperties2;
5794
5795typedef struct VkPhysicalDeviceMemoryProperties2 {
5796 VkStructureType sType;
5797 void* pNext;
5798 VkPhysicalDeviceMemoryProperties memoryProperties;
5799} VkPhysicalDeviceMemoryProperties2;
5800
5801typedef struct VkSparseImageFormatProperties2 {
5802 VkStructureType sType;
5803 void* pNext;
5804 VkSparseImageFormatProperties properties;
5805} VkSparseImageFormatProperties2;
5806
5807typedef struct VkPhysicalDeviceSparseImageFormatInfo2 {
5808 VkStructureType sType;
5809 const void* pNext;
5810 VkFormat format;
5811 VkImageType type;
5812 VkSampleCountFlagBits samples;
5813 VkImageUsageFlags usage;
5814 VkImageTiling tiling;
5815} VkPhysicalDeviceSparseImageFormatInfo2;
5816
5817typedef struct VkImageViewUsageCreateInfo {
5818 VkStructureType sType;
5819 const void* pNext;
5820 VkImageUsageFlags usage;
5821} VkImageViewUsageCreateInfo;
5822
5823typedef struct VkPhysicalDeviceProtectedMemoryFeatures {
5824 VkStructureType sType;
5825 void* pNext;
5826 VkBool32 protectedMemory;
5827} VkPhysicalDeviceProtectedMemoryFeatures;
5828
5829typedef struct VkPhysicalDeviceProtectedMemoryProperties {
5830 VkStructureType sType;
5831 void* pNext;
5832 VkBool32 protectedNoFault;
5833} VkPhysicalDeviceProtectedMemoryProperties;
5834
5835typedef struct VkDeviceQueueInfo2 {
5836 VkStructureType sType;
5837 const void* pNext;
5838 VkDeviceQueueCreateFlags flags;
5839 uint32_t queueFamilyIndex;
5840 uint32_t queueIndex;
5841} VkDeviceQueueInfo2;
5842
5843typedef struct VkProtectedSubmitInfo {
5844 VkStructureType sType;
5845 const void* pNext;
5846 VkBool32 protectedSubmit;
5847} VkProtectedSubmitInfo;
5848
5849typedef struct VkBindImagePlaneMemoryInfo {
5850 VkStructureType sType;
5851 const void* pNext;
5852 VkImageAspectFlagBits planeAspect;
5853} VkBindImagePlaneMemoryInfo;
5854
5855typedef struct VkImagePlaneMemoryRequirementsInfo {
5856 VkStructureType sType;
5857 const void* pNext;
5858 VkImageAspectFlagBits planeAspect;
5859} VkImagePlaneMemoryRequirementsInfo;
5860
5861typedef struct VkExternalMemoryProperties {
5862 VkExternalMemoryFeatureFlags externalMemoryFeatures;
5863 VkExternalMemoryHandleTypeFlags exportFromImportedHandleTypes;
5864 VkExternalMemoryHandleTypeFlags compatibleHandleTypes;
5865} VkExternalMemoryProperties;
5866
5867typedef struct VkPhysicalDeviceExternalImageFormatInfo {
5868 VkStructureType sType;
5869 const void* pNext;
5870 VkExternalMemoryHandleTypeFlagBits handleType;
5871} VkPhysicalDeviceExternalImageFormatInfo;
5872
5873typedef struct VkExternalImageFormatProperties {
5874 VkStructureType sType;
5875 void* pNext;
5876 VkExternalMemoryProperties externalMemoryProperties;
5877} VkExternalImageFormatProperties;
5878
5879typedef struct VkPhysicalDeviceExternalBufferInfo {
5880 VkStructureType sType;
5881 const void* pNext;
5882 VkBufferCreateFlags flags;
5883 VkBufferUsageFlags usage;
5884 VkExternalMemoryHandleTypeFlagBits handleType;
5885} VkPhysicalDeviceExternalBufferInfo;
5886
5887typedef struct VkExternalBufferProperties {
5888 VkStructureType sType;
5889 void* pNext;
5890 VkExternalMemoryProperties externalMemoryProperties;
5891} VkExternalBufferProperties;
5892
5893typedef struct VkPhysicalDeviceIDProperties {
5894 VkStructureType sType;
5895 void* pNext;
5896 uint8_t deviceUUID[VK_UUID_SIZE];
5897 uint8_t driverUUID[VK_UUID_SIZE];
5898 uint8_t deviceLUID[VK_LUID_SIZE];
5899 uint32_t deviceNodeMask;
5900 VkBool32 deviceLUIDValid;
5901} VkPhysicalDeviceIDProperties;
5902
5903typedef struct VkExternalMemoryImageCreateInfo {
5904 VkStructureType sType;
5905 const void* pNext;
5906 VkExternalMemoryHandleTypeFlags handleTypes;
5907} VkExternalMemoryImageCreateInfo;
5908
5909typedef struct VkExternalMemoryBufferCreateInfo {
5910 VkStructureType sType;
5911 const void* pNext;
5912 VkExternalMemoryHandleTypeFlags handleTypes;
5913} VkExternalMemoryBufferCreateInfo;
5914
5915typedef struct VkExportMemoryAllocateInfo {
5916 VkStructureType sType;
5917 const void* pNext;
5918 VkExternalMemoryHandleTypeFlags handleTypes;
5919} VkExportMemoryAllocateInfo;
5920
5921typedef struct VkPhysicalDeviceExternalFenceInfo {
5922 VkStructureType sType;
5923 const void* pNext;
5924 VkExternalFenceHandleTypeFlagBits handleType;
5925} VkPhysicalDeviceExternalFenceInfo;
5926
5927typedef struct VkExternalFenceProperties {
5928 VkStructureType sType;
5929 void* pNext;
5930 VkExternalFenceHandleTypeFlags exportFromImportedHandleTypes;
5931 VkExternalFenceHandleTypeFlags compatibleHandleTypes;
5932 VkExternalFenceFeatureFlags externalFenceFeatures;
5933} VkExternalFenceProperties;
5934
5935typedef struct VkExportFenceCreateInfo {
5936 VkStructureType sType;
5937 const void* pNext;
5938 VkExternalFenceHandleTypeFlags handleTypes;
5939} VkExportFenceCreateInfo;
5940
5941typedef struct VkExportSemaphoreCreateInfo {
5942 VkStructureType sType;
5943 const void* pNext;
5944 VkExternalSemaphoreHandleTypeFlags handleTypes;
5945} VkExportSemaphoreCreateInfo;
5946
5947typedef struct VkPhysicalDeviceExternalSemaphoreInfo {
5948 VkStructureType sType;
5949 const void* pNext;
5950 VkExternalSemaphoreHandleTypeFlagBits handleType;
5951} VkPhysicalDeviceExternalSemaphoreInfo;
5952
5953typedef struct VkExternalSemaphoreProperties {
5954 VkStructureType sType;
5955 void* pNext;
5956 VkExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes;
5957 VkExternalSemaphoreHandleTypeFlags compatibleHandleTypes;
5958 VkExternalSemaphoreFeatureFlags externalSemaphoreFeatures;
5959} VkExternalSemaphoreProperties;
5960
5961typedef struct VkPhysicalDeviceSubgroupProperties {
5962 VkStructureType sType;
5963 void* pNext;
5964 uint32_t subgroupSize;
5965 VkShaderStageFlags supportedStages;
5966 VkSubgroupFeatureFlags supportedOperations;
5967 VkBool32 quadOperationsInAllStages;
5968} VkPhysicalDeviceSubgroupProperties;
5969
5970typedef struct VkPhysicalDevice16BitStorageFeatures {
5971 VkStructureType sType;
5972 void* pNext;
5973 VkBool32 storageBuffer16BitAccess;
5974 VkBool32 uniformAndStorageBuffer16BitAccess;
5975 VkBool32 storagePushConstant16;
5976 VkBool32 storageInputOutput16;
5977} VkPhysicalDevice16BitStorageFeatures;
5978
5979typedef struct VkPhysicalDeviceVariablePointersFeatures {
5980 VkStructureType sType;
5981 void* pNext;
5982 VkBool32 variablePointersStorageBuffer;
5983 VkBool32 variablePointers;
5984} VkPhysicalDeviceVariablePointersFeatures;
5985
5986typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeatures;
5987
5988typedef struct VkDescriptorUpdateTemplateEntry {
5989 uint32_t dstBinding;
5990 uint32_t dstArrayElement;
5991 uint32_t descriptorCount;
5992 VkDescriptorType descriptorType;
5993 size_t offset;
5994 size_t stride;
5995} VkDescriptorUpdateTemplateEntry;
5996
5997typedef struct VkDescriptorUpdateTemplateCreateInfo {
5998 VkStructureType sType;
5999 const void* pNext;
6000 VkDescriptorUpdateTemplateCreateFlags flags;
6001 uint32_t descriptorUpdateEntryCount;
6002 const VkDescriptorUpdateTemplateEntry* pDescriptorUpdateEntries;
6003 VkDescriptorUpdateTemplateType templateType;
6004 VkDescriptorSetLayout descriptorSetLayout;
6005 VkPipelineBindPoint pipelineBindPoint;
6006 VkPipelineLayout pipelineLayout;
6007 uint32_t set;
6008} VkDescriptorUpdateTemplateCreateInfo;
6009
6010typedef struct VkPhysicalDeviceMaintenance3Properties {
6011 VkStructureType sType;
6012 void* pNext;
6013 uint32_t maxPerSetDescriptors;
6014 VkDeviceSize maxMemoryAllocationSize;
6015} VkPhysicalDeviceMaintenance3Properties;
6016
6017typedef struct VkDescriptorSetLayoutSupport {
6018 VkStructureType sType;
6019 void* pNext;
6020 VkBool32 supported;
6021} VkDescriptorSetLayoutSupport;
6022
6023typedef struct VkSamplerYcbcrConversionCreateInfo {
6024 VkStructureType sType;
6025 const void* pNext;
6026 VkFormat format;
6027 VkSamplerYcbcrModelConversion ycbcrModel;
6028 VkSamplerYcbcrRange ycbcrRange;
6029 VkComponentMapping components;
6030 VkChromaLocation xChromaOffset;
6031 VkChromaLocation yChromaOffset;
6032 VkFilter chromaFilter;
6033 VkBool32 forceExplicitReconstruction;
6034} VkSamplerYcbcrConversionCreateInfo;
6035
6036typedef struct VkSamplerYcbcrConversionInfo {
6037 VkStructureType sType;
6038 const void* pNext;
6039 VkSamplerYcbcrConversion conversion;
6040} VkSamplerYcbcrConversionInfo;
6041
6042typedef struct VkPhysicalDeviceSamplerYcbcrConversionFeatures {
6043 VkStructureType sType;
6044 void* pNext;
6045 VkBool32 samplerYcbcrConversion;
6046} VkPhysicalDeviceSamplerYcbcrConversionFeatures;
6047
6048typedef struct VkSamplerYcbcrConversionImageFormatProperties {
6049 VkStructureType sType;
6050 void* pNext;
6051 uint32_t combinedImageSamplerDescriptorCount;
6052} VkSamplerYcbcrConversionImageFormatProperties;
6053
6054typedef struct VkDeviceGroupRenderPassBeginInfo {
6055 VkStructureType sType;
6056 const void* pNext;
6057 uint32_t deviceMask;
6058 uint32_t deviceRenderAreaCount;
6059 const VkRect2D* pDeviceRenderAreas;
6060} VkDeviceGroupRenderPassBeginInfo;
6061
6062typedef struct VkPhysicalDevicePointClippingProperties {
6063 VkStructureType sType;
6064 void* pNext;
6065 VkPointClippingBehavior pointClippingBehavior;
6066} VkPhysicalDevicePointClippingProperties;
6067
6068typedef struct VkInputAttachmentAspectReference {
6069 uint32_t subpass;
6070 uint32_t inputAttachmentIndex;
6071 VkImageAspectFlags aspectMask;
6072} VkInputAttachmentAspectReference;
6073
6074typedef struct VkRenderPassInputAttachmentAspectCreateInfo {
6075 VkStructureType sType;
6076 const void* pNext;
6077 uint32_t aspectReferenceCount;
6078 const VkInputAttachmentAspectReference* pAspectReferences;
6079} VkRenderPassInputAttachmentAspectCreateInfo;
6080
6081typedef struct VkPipelineTessellationDomainOriginStateCreateInfo {
6082 VkStructureType sType;
6083 const void* pNext;
6084 VkTessellationDomainOrigin domainOrigin;
6085} VkPipelineTessellationDomainOriginStateCreateInfo;
6086
6087typedef struct VkRenderPassMultiviewCreateInfo {
6088 VkStructureType sType;
6089 const void* pNext;
6090 uint32_t subpassCount;
6091 const uint32_t* pViewMasks;
6092 uint32_t dependencyCount;
6093 const int32_t* pViewOffsets;
6094 uint32_t correlationMaskCount;
6095 const uint32_t* pCorrelationMasks;
6096} VkRenderPassMultiviewCreateInfo;
6097
6098typedef struct VkPhysicalDeviceMultiviewFeatures {
6099 VkStructureType sType;
6100 void* pNext;
6101 VkBool32 multiview;
6102 VkBool32 multiviewGeometryShader;
6103 VkBool32 multiviewTessellationShader;
6104} VkPhysicalDeviceMultiviewFeatures;
6105
6106typedef struct VkPhysicalDeviceMultiviewProperties {
6107 VkStructureType sType;
6108 void* pNext;
6109 uint32_t maxMultiviewViewCount;
6110 uint32_t maxMultiviewInstanceIndex;
6111} VkPhysicalDeviceMultiviewProperties;
6112
6113typedef struct VkPhysicalDeviceShaderDrawParametersFeatures {
6114 VkStructureType sType;
6115 void* pNext;
6116 VkBool32 shaderDrawParameters;
6117} VkPhysicalDeviceShaderDrawParametersFeatures;
6118
6119typedef VkPhysicalDeviceShaderDrawParametersFeatures VkPhysicalDeviceShaderDrawParameterFeatures;
6120
6121typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceVersion)(uint32_t* pApiVersion);
6122typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos);
6123typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos);
6124typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeatures)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
6125typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMask)(VkCommandBuffer commandBuffer, uint32_t deviceMask);
6126typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroups)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
6127typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
6128typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
6129typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
6130typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures);
6131typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties);
6132typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties);
6133typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties);
6134typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties);
6135typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
6136typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties);
6137typedef void (VKAPI_PTR *PFN_vkTrimCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
6138typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue2)(VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue);
6139typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties);
6140typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFenceProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties);
6141typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphoreProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
6142typedef 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);
6143typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplate)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
6144typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplate)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
6145typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplate)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData);
6146typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupport)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport);
6147typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversion)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion);
6148typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversion)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator);
6149
6150#ifndef VK_NO_PROTOTYPES
6151VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceVersion(
6152 uint32_t* pApiVersion);
6153
6154VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2(
6155 VkDevice device,
6156 uint32_t bindInfoCount,
6157 const VkBindBufferMemoryInfo* pBindInfos);
6158
6159VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2(
6160 VkDevice device,
6161 uint32_t bindInfoCount,
6162 const VkBindImageMemoryInfo* pBindInfos);
6163
6164VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeatures(
6165 VkDevice device,
6166 uint32_t heapIndex,
6167 uint32_t localDeviceIndex,
6168 uint32_t remoteDeviceIndex,
6169 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
6170
6171VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMask(
6172 VkCommandBuffer commandBuffer,
6173 uint32_t deviceMask);
6174
6175VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroups(
6176 VkInstance instance,
6177 uint32_t* pPhysicalDeviceGroupCount,
6178 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
6179
6180VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2(
6181 VkDevice device,
6182 const VkImageMemoryRequirementsInfo2* pInfo,
6183 VkMemoryRequirements2* pMemoryRequirements);
6184
6185VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2(
6186 VkDevice device,
6187 const VkBufferMemoryRequirementsInfo2* pInfo,
6188 VkMemoryRequirements2* pMemoryRequirements);
6189
6190VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2(
6191 VkDevice device,
6192 const VkImageSparseMemoryRequirementsInfo2* pInfo,
6193 uint32_t* pSparseMemoryRequirementCount,
6194 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
6195
6196VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2(
6197 VkPhysicalDevice physicalDevice,
6198 VkPhysicalDeviceFeatures2* pFeatures);
6199
6200VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2(
6201 VkPhysicalDevice physicalDevice,
6202 VkPhysicalDeviceProperties2* pProperties);
6203
6204VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2(
6205 VkPhysicalDevice physicalDevice,
6206 VkFormat format,
6207 VkFormatProperties2* pFormatProperties);
6208
6209VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2(
6210 VkPhysicalDevice physicalDevice,
6211 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
6212 VkImageFormatProperties2* pImageFormatProperties);
6213
6214VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2(
6215 VkPhysicalDevice physicalDevice,
6216 uint32_t* pQueueFamilyPropertyCount,
6217 VkQueueFamilyProperties2* pQueueFamilyProperties);
6218
6219VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2(
6220 VkPhysicalDevice physicalDevice,
6221 VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
6222
6223VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2(
6224 VkPhysicalDevice physicalDevice,
6225 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
6226 uint32_t* pPropertyCount,
6227 VkSparseImageFormatProperties2* pProperties);
6228
6229VKAPI_ATTR void VKAPI_CALL vkTrimCommandPool(
6230 VkDevice device,
6231 VkCommandPool commandPool,
6232 VkCommandPoolTrimFlags flags);
6233
6234VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue2(
6235 VkDevice device,
6236 const VkDeviceQueueInfo2* pQueueInfo,
6237 VkQueue* pQueue);
6238
6239VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferProperties(
6240 VkPhysicalDevice physicalDevice,
6241 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
6242 VkExternalBufferProperties* pExternalBufferProperties);
6243
6244VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFenceProperties(
6245 VkPhysicalDevice physicalDevice,
6246 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
6247 VkExternalFenceProperties* pExternalFenceProperties);
6248
6249VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphoreProperties(
6250 VkPhysicalDevice physicalDevice,
6251 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
6252 VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
6253
6254VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBase(
6255 VkCommandBuffer commandBuffer,
6256 uint32_t baseGroupX,
6257 uint32_t baseGroupY,
6258 uint32_t baseGroupZ,
6259 uint32_t groupCountX,
6260 uint32_t groupCountY,
6261 uint32_t groupCountZ);
6262
6263VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplate(
6264 VkDevice device,
6265 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
6266 const VkAllocationCallbacks* pAllocator,
6267 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
6268
6269VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplate(
6270 VkDevice device,
6271 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
6272 const VkAllocationCallbacks* pAllocator);
6273
6274VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplate(
6275 VkDevice device,
6276 VkDescriptorSet descriptorSet,
6277 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
6278 const void* pData);
6279
6280VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupport(
6281 VkDevice device,
6282 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
6283 VkDescriptorSetLayoutSupport* pSupport);
6284
6285VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversion(
6286 VkDevice device,
6287 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
6288 const VkAllocationCallbacks* pAllocator,
6289 VkSamplerYcbcrConversion* pYcbcrConversion);
6290
6291VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversion(
6292 VkDevice device,
6293 VkSamplerYcbcrConversion ycbcrConversion,
6294 const VkAllocationCallbacks* pAllocator);
6295#endif
6296
6297
6298// VK_VERSION_1_2 is a preprocessor guard. Do not pass it to API calls.
6299#define VK_VERSION_1_2 1
6300// Vulkan 1.2 version number
6301#define VK_API_VERSION_1_2 VK_MAKE_API_VERSION(0, 1, 2, 0)// Patch version should always be set to 0
6302
6303#define VK_MAX_DRIVER_NAME_SIZE 256U
6304#define VK_MAX_DRIVER_INFO_SIZE 256U
6305
6306typedef enum VkDriverId {
6307 VK_DRIVER_ID_AMD_PROPRIETARY = 1,
6308 VK_DRIVER_ID_AMD_OPEN_SOURCE = 2,
6309 VK_DRIVER_ID_MESA_RADV = 3,
6310 VK_DRIVER_ID_NVIDIA_PROPRIETARY = 4,
6311 VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS = 5,
6312 VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA = 6,
6313 VK_DRIVER_ID_IMAGINATION_PROPRIETARY = 7,
6314 VK_DRIVER_ID_QUALCOMM_PROPRIETARY = 8,
6315 VK_DRIVER_ID_ARM_PROPRIETARY = 9,
6316 VK_DRIVER_ID_GOOGLE_SWIFTSHADER = 10,
6317 VK_DRIVER_ID_GGP_PROPRIETARY = 11,
6318 VK_DRIVER_ID_BROADCOM_PROPRIETARY = 12,
6319 VK_DRIVER_ID_MESA_LLVMPIPE = 13,
6320 VK_DRIVER_ID_MOLTENVK = 14,
6321 VK_DRIVER_ID_COREAVI_PROPRIETARY = 15,
6322 VK_DRIVER_ID_JUICE_PROPRIETARY = 16,
6323 VK_DRIVER_ID_VERISILICON_PROPRIETARY = 17,
6324 VK_DRIVER_ID_MESA_TURNIP = 18,
6325 VK_DRIVER_ID_MESA_V3DV = 19,
6326 VK_DRIVER_ID_MESA_PANVK = 20,
6327 VK_DRIVER_ID_SAMSUNG_PROPRIETARY = 21,
6328 VK_DRIVER_ID_MESA_VENUS = 22,
6329 VK_DRIVER_ID_MESA_DOZEN = 23,
6330 VK_DRIVER_ID_MESA_NVK = 24,
6331 VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA = 25,
6332 VK_DRIVER_ID_MESA_HONEYKRISP = 26,
6333 VK_DRIVER_ID_VULKAN_SC_EMULATION_ON_VULKAN = 27,
6334 VK_DRIVER_ID_MESA_KOSMICKRISP = 28,
6335 VK_DRIVER_ID_AMD_PROPRIETARY_KHR = VK_DRIVER_ID_AMD_PROPRIETARY,
6336 VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = VK_DRIVER_ID_AMD_OPEN_SOURCE,
6337 VK_DRIVER_ID_MESA_RADV_KHR = VK_DRIVER_ID_MESA_RADV,
6338 VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR = VK_DRIVER_ID_NVIDIA_PROPRIETARY,
6339 VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR = VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS,
6340 VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA,
6341 VK_DRIVER_ID_IMAGINATION_PROPRIETARY_KHR = VK_DRIVER_ID_IMAGINATION_PROPRIETARY,
6342 VK_DRIVER_ID_QUALCOMM_PROPRIETARY_KHR = VK_DRIVER_ID_QUALCOMM_PROPRIETARY,
6343 VK_DRIVER_ID_ARM_PROPRIETARY_KHR = VK_DRIVER_ID_ARM_PROPRIETARY,
6344 VK_DRIVER_ID_GOOGLE_SWIFTSHADER_KHR = VK_DRIVER_ID_GOOGLE_SWIFTSHADER,
6345 VK_DRIVER_ID_GGP_PROPRIETARY_KHR = VK_DRIVER_ID_GGP_PROPRIETARY,
6346 VK_DRIVER_ID_BROADCOM_PROPRIETARY_KHR = VK_DRIVER_ID_BROADCOM_PROPRIETARY,
6347 VK_DRIVER_ID_MAX_ENUM = 0x7FFFFFFF
6348} VkDriverId;
6349
6350typedef enum VkShaderFloatControlsIndependence {
6351 VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY = 0,
6352 VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL = 1,
6353 VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE = 2,
6354 VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY,
6355 VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL,
6356 VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE,
6357 VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_MAX_ENUM = 0x7FFFFFFF
6358} VkShaderFloatControlsIndependence;
6359
6360typedef enum VkSemaphoreType {
6361 VK_SEMAPHORE_TYPE_BINARY = 0,
6362 VK_SEMAPHORE_TYPE_TIMELINE = 1,
6363 VK_SEMAPHORE_TYPE_BINARY_KHR = VK_SEMAPHORE_TYPE_BINARY,
6364 VK_SEMAPHORE_TYPE_TIMELINE_KHR = VK_SEMAPHORE_TYPE_TIMELINE,
6365 VK_SEMAPHORE_TYPE_MAX_ENUM = 0x7FFFFFFF
6366} VkSemaphoreType;
6367
6368typedef enum VkSamplerReductionMode {
6369 VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE = 0,
6370 VK_SAMPLER_REDUCTION_MODE_MIN = 1,
6371 VK_SAMPLER_REDUCTION_MODE_MAX = 2,
6372 VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM = 1000521000,
6373 VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE,
6374 VK_SAMPLER_REDUCTION_MODE_MIN_EXT = VK_SAMPLER_REDUCTION_MODE_MIN,
6375 VK_SAMPLER_REDUCTION_MODE_MAX_EXT = VK_SAMPLER_REDUCTION_MODE_MAX,
6376 VK_SAMPLER_REDUCTION_MODE_MAX_ENUM = 0x7FFFFFFF
6377} VkSamplerReductionMode;
6378
6379typedef enum VkResolveModeFlagBits {
6380 VK_RESOLVE_MODE_NONE = 0,
6381 VK_RESOLVE_MODE_SAMPLE_ZERO_BIT = 0x00000001,
6382 VK_RESOLVE_MODE_AVERAGE_BIT = 0x00000002,
6383 VK_RESOLVE_MODE_MIN_BIT = 0x00000004,
6384 VK_RESOLVE_MODE_MAX_BIT = 0x00000008,
6385 VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID = 0x00000010,
6386 VK_RESOLVE_MODE_CUSTOM_BIT_EXT = 0x00000020,
6387 VK_RESOLVE_MODE_NONE_KHR = VK_RESOLVE_MODE_NONE,
6388 VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR = VK_RESOLVE_MODE_SAMPLE_ZERO_BIT,
6389 VK_RESOLVE_MODE_AVERAGE_BIT_KHR = VK_RESOLVE_MODE_AVERAGE_BIT,
6390 VK_RESOLVE_MODE_MIN_BIT_KHR = VK_RESOLVE_MODE_MIN_BIT,
6391 VK_RESOLVE_MODE_MAX_BIT_KHR = VK_RESOLVE_MODE_MAX_BIT,
6392 // VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID is a legacy alias
6393 VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID = VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID,
6394 VK_RESOLVE_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6395} VkResolveModeFlagBits;
6396typedef VkFlags VkResolveModeFlags;
6397
6398typedef enum VkSemaphoreWaitFlagBits {
6399 VK_SEMAPHORE_WAIT_ANY_BIT = 0x00000001,
6400 VK_SEMAPHORE_WAIT_ANY_BIT_KHR = VK_SEMAPHORE_WAIT_ANY_BIT,
6401 VK_SEMAPHORE_WAIT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6402} VkSemaphoreWaitFlagBits;
6403typedef VkFlags VkSemaphoreWaitFlags;
6404
6405typedef enum VkDescriptorBindingFlagBits {
6406 VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT = 0x00000001,
6407 VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT = 0x00000002,
6408 VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT = 0x00000004,
6409 VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT = 0x00000008,
6410 VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT = VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT,
6411 VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT = VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT,
6412 VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT = VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT,
6413 VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT = VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT,
6414 VK_DESCRIPTOR_BINDING_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6415} VkDescriptorBindingFlagBits;
6416typedef VkFlags VkDescriptorBindingFlags;
6417typedef struct VkConformanceVersion {
6418 uint8_t major;
6419 uint8_t minor;
6420 uint8_t subminor;
6421 uint8_t patch;
6422} VkConformanceVersion;
6423
6424typedef struct VkPhysicalDeviceDriverProperties {
6425 VkStructureType sType;
6426 void* pNext;
6427 VkDriverId driverID;
6428 char driverName[VK_MAX_DRIVER_NAME_SIZE];
6429 char driverInfo[VK_MAX_DRIVER_INFO_SIZE];
6430 VkConformanceVersion conformanceVersion;
6431} VkPhysicalDeviceDriverProperties;
6432
6433typedef struct VkPhysicalDeviceVulkan11Features {
6434 VkStructureType sType;
6435 void* pNext;
6436 VkBool32 storageBuffer16BitAccess;
6437 VkBool32 uniformAndStorageBuffer16BitAccess;
6438 VkBool32 storagePushConstant16;
6439 VkBool32 storageInputOutput16;
6440 VkBool32 multiview;
6441 VkBool32 multiviewGeometryShader;
6442 VkBool32 multiviewTessellationShader;
6443 VkBool32 variablePointersStorageBuffer;
6444 VkBool32 variablePointers;
6445 VkBool32 protectedMemory;
6446 VkBool32 samplerYcbcrConversion;
6447 VkBool32 shaderDrawParameters;
6448} VkPhysicalDeviceVulkan11Features;
6449
6450typedef struct VkPhysicalDeviceVulkan11Properties {
6451 VkStructureType sType;
6452 void* pNext;
6453 uint8_t deviceUUID[VK_UUID_SIZE];
6454 uint8_t driverUUID[VK_UUID_SIZE];
6455 uint8_t deviceLUID[VK_LUID_SIZE];
6456 uint32_t deviceNodeMask;
6457 VkBool32 deviceLUIDValid;
6458 uint32_t subgroupSize;
6459 VkShaderStageFlags subgroupSupportedStages;
6460 VkSubgroupFeatureFlags subgroupSupportedOperations;
6461 VkBool32 subgroupQuadOperationsInAllStages;
6462 VkPointClippingBehavior pointClippingBehavior;
6463 uint32_t maxMultiviewViewCount;
6464 uint32_t maxMultiviewInstanceIndex;
6465 VkBool32 protectedNoFault;
6466 uint32_t maxPerSetDescriptors;
6467 VkDeviceSize maxMemoryAllocationSize;
6468} VkPhysicalDeviceVulkan11Properties;
6469
6470typedef struct VkPhysicalDeviceVulkan12Features {
6471 VkStructureType sType;
6472 void* pNext;
6473 VkBool32 samplerMirrorClampToEdge;
6474 VkBool32 drawIndirectCount;
6475 VkBool32 storageBuffer8BitAccess;
6476 VkBool32 uniformAndStorageBuffer8BitAccess;
6477 VkBool32 storagePushConstant8;
6478 VkBool32 shaderBufferInt64Atomics;
6479 VkBool32 shaderSharedInt64Atomics;
6480 VkBool32 shaderFloat16;
6481 VkBool32 shaderInt8;
6482 VkBool32 descriptorIndexing;
6483 VkBool32 shaderInputAttachmentArrayDynamicIndexing;
6484 VkBool32 shaderUniformTexelBufferArrayDynamicIndexing;
6485 VkBool32 shaderStorageTexelBufferArrayDynamicIndexing;
6486 VkBool32 shaderUniformBufferArrayNonUniformIndexing;
6487 VkBool32 shaderSampledImageArrayNonUniformIndexing;
6488 VkBool32 shaderStorageBufferArrayNonUniformIndexing;
6489 VkBool32 shaderStorageImageArrayNonUniformIndexing;
6490 VkBool32 shaderInputAttachmentArrayNonUniformIndexing;
6491 VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing;
6492 VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing;
6493 VkBool32 descriptorBindingUniformBufferUpdateAfterBind;
6494 VkBool32 descriptorBindingSampledImageUpdateAfterBind;
6495 VkBool32 descriptorBindingStorageImageUpdateAfterBind;
6496 VkBool32 descriptorBindingStorageBufferUpdateAfterBind;
6497 VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind;
6498 VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind;
6499 VkBool32 descriptorBindingUpdateUnusedWhilePending;
6500 VkBool32 descriptorBindingPartiallyBound;
6501 VkBool32 descriptorBindingVariableDescriptorCount;
6502 VkBool32 runtimeDescriptorArray;
6503 VkBool32 samplerFilterMinmax;
6504 VkBool32 scalarBlockLayout;
6505 VkBool32 imagelessFramebuffer;
6506 VkBool32 uniformBufferStandardLayout;
6507 VkBool32 shaderSubgroupExtendedTypes;
6508 VkBool32 separateDepthStencilLayouts;
6509 VkBool32 hostQueryReset;
6510 VkBool32 timelineSemaphore;
6511 VkBool32 bufferDeviceAddress;
6512 VkBool32 bufferDeviceAddressCaptureReplay;
6513 VkBool32 bufferDeviceAddressMultiDevice;
6514 VkBool32 vulkanMemoryModel;
6515 VkBool32 vulkanMemoryModelDeviceScope;
6516 VkBool32 vulkanMemoryModelAvailabilityVisibilityChains;
6517 VkBool32 shaderOutputViewportIndex;
6518 VkBool32 shaderOutputLayer;
6519 VkBool32 subgroupBroadcastDynamicId;
6520} VkPhysicalDeviceVulkan12Features;
6521
6522typedef struct VkPhysicalDeviceVulkan12Properties {
6523 VkStructureType sType;
6524 void* pNext;
6525 VkDriverId driverID;
6526 char driverName[VK_MAX_DRIVER_NAME_SIZE];
6527 char driverInfo[VK_MAX_DRIVER_INFO_SIZE];
6528 VkConformanceVersion conformanceVersion;
6529 VkShaderFloatControlsIndependence denormBehaviorIndependence;
6530 VkShaderFloatControlsIndependence roundingModeIndependence;
6531 VkBool32 shaderSignedZeroInfNanPreserveFloat16;
6532 VkBool32 shaderSignedZeroInfNanPreserveFloat32;
6533 VkBool32 shaderSignedZeroInfNanPreserveFloat64;
6534 VkBool32 shaderDenormPreserveFloat16;
6535 VkBool32 shaderDenormPreserveFloat32;
6536 VkBool32 shaderDenormPreserveFloat64;
6537 VkBool32 shaderDenormFlushToZeroFloat16;
6538 VkBool32 shaderDenormFlushToZeroFloat32;
6539 VkBool32 shaderDenormFlushToZeroFloat64;
6540 VkBool32 shaderRoundingModeRTEFloat16;
6541 VkBool32 shaderRoundingModeRTEFloat32;
6542 VkBool32 shaderRoundingModeRTEFloat64;
6543 VkBool32 shaderRoundingModeRTZFloat16;
6544 VkBool32 shaderRoundingModeRTZFloat32;
6545 VkBool32 shaderRoundingModeRTZFloat64;
6546 uint32_t maxUpdateAfterBindDescriptorsInAllPools;
6547 VkBool32 shaderUniformBufferArrayNonUniformIndexingNative;
6548 VkBool32 shaderSampledImageArrayNonUniformIndexingNative;
6549 VkBool32 shaderStorageBufferArrayNonUniformIndexingNative;
6550 VkBool32 shaderStorageImageArrayNonUniformIndexingNative;
6551 VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative;
6552 VkBool32 robustBufferAccessUpdateAfterBind;
6553 VkBool32 quadDivergentImplicitLod;
6554 uint32_t maxPerStageDescriptorUpdateAfterBindSamplers;
6555 uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers;
6556 uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers;
6557 uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages;
6558 uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages;
6559 uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments;
6560 uint32_t maxPerStageUpdateAfterBindResources;
6561 uint32_t maxDescriptorSetUpdateAfterBindSamplers;
6562 uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers;
6563 uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
6564 uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers;
6565 uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
6566 uint32_t maxDescriptorSetUpdateAfterBindSampledImages;
6567 uint32_t maxDescriptorSetUpdateAfterBindStorageImages;
6568 uint32_t maxDescriptorSetUpdateAfterBindInputAttachments;
6569 VkResolveModeFlags supportedDepthResolveModes;
6570 VkResolveModeFlags supportedStencilResolveModes;
6571 VkBool32 independentResolveNone;
6572 VkBool32 independentResolve;
6573 VkBool32 filterMinmaxSingleComponentFormats;
6574 VkBool32 filterMinmaxImageComponentMapping;
6575 uint64_t maxTimelineSemaphoreValueDifference;
6576 VkSampleCountFlags framebufferIntegerColorSampleCounts;
6577} VkPhysicalDeviceVulkan12Properties;
6578
6579typedef struct VkImageFormatListCreateInfo {
6580 VkStructureType sType;
6581 const void* pNext;
6582 uint32_t viewFormatCount;
6583 const VkFormat* pViewFormats;
6584} VkImageFormatListCreateInfo;
6585
6586typedef struct VkPhysicalDeviceVulkanMemoryModelFeatures {
6587 VkStructureType sType;
6588 void* pNext;
6589 VkBool32 vulkanMemoryModel;
6590 VkBool32 vulkanMemoryModelDeviceScope;
6591 VkBool32 vulkanMemoryModelAvailabilityVisibilityChains;
6592} VkPhysicalDeviceVulkanMemoryModelFeatures;
6593
6594typedef struct VkPhysicalDeviceHostQueryResetFeatures {
6595 VkStructureType sType;
6596 void* pNext;
6597 VkBool32 hostQueryReset;
6598} VkPhysicalDeviceHostQueryResetFeatures;
6599
6600typedef struct VkPhysicalDeviceTimelineSemaphoreFeatures {
6601 VkStructureType sType;
6602 void* pNext;
6603 VkBool32 timelineSemaphore;
6604} VkPhysicalDeviceTimelineSemaphoreFeatures;
6605
6606typedef struct VkPhysicalDeviceTimelineSemaphoreProperties {
6607 VkStructureType sType;
6608 void* pNext;
6609 uint64_t maxTimelineSemaphoreValueDifference;
6610} VkPhysicalDeviceTimelineSemaphoreProperties;
6611
6612typedef struct VkSemaphoreTypeCreateInfo {
6613 VkStructureType sType;
6614 const void* pNext;
6615 VkSemaphoreType semaphoreType;
6616 uint64_t initialValue;
6617} VkSemaphoreTypeCreateInfo;
6618
6619typedef struct VkTimelineSemaphoreSubmitInfo {
6620 VkStructureType sType;
6621 const void* pNext;
6622 uint32_t waitSemaphoreValueCount;
6623 const uint64_t* pWaitSemaphoreValues;
6624 uint32_t signalSemaphoreValueCount;
6625 const uint64_t* pSignalSemaphoreValues;
6626} VkTimelineSemaphoreSubmitInfo;
6627
6628typedef struct VkSemaphoreWaitInfo {
6629 VkStructureType sType;
6630 const void* pNext;
6631 VkSemaphoreWaitFlags flags;
6632 uint32_t semaphoreCount;
6633 const VkSemaphore* pSemaphores;
6634 const uint64_t* pValues;
6635} VkSemaphoreWaitInfo;
6636
6637typedef struct VkSemaphoreSignalInfo {
6638 VkStructureType sType;
6639 const void* pNext;
6640 VkSemaphore semaphore;
6641 uint64_t value;
6642} VkSemaphoreSignalInfo;
6643
6644typedef struct VkPhysicalDeviceBufferDeviceAddressFeatures {
6645 VkStructureType sType;
6646 void* pNext;
6647 VkBool32 bufferDeviceAddress;
6648 VkBool32 bufferDeviceAddressCaptureReplay;
6649 VkBool32 bufferDeviceAddressMultiDevice;
6650} VkPhysicalDeviceBufferDeviceAddressFeatures;
6651
6652typedef struct VkBufferDeviceAddressInfo {
6653 VkStructureType sType;
6654 const void* pNext;
6655 VkBuffer buffer;
6656} VkBufferDeviceAddressInfo;
6657
6658typedef struct VkBufferOpaqueCaptureAddressCreateInfo {
6659 VkStructureType sType;
6660 const void* pNext;
6661 uint64_t opaqueCaptureAddress;
6662} VkBufferOpaqueCaptureAddressCreateInfo;
6663
6664typedef struct VkMemoryOpaqueCaptureAddressAllocateInfo {
6665 VkStructureType sType;
6666 const void* pNext;
6667 uint64_t opaqueCaptureAddress;
6668} VkMemoryOpaqueCaptureAddressAllocateInfo;
6669
6670typedef struct VkDeviceMemoryOpaqueCaptureAddressInfo {
6671 VkStructureType sType;
6672 const void* pNext;
6673 VkDeviceMemory memory;
6674} VkDeviceMemoryOpaqueCaptureAddressInfo;
6675
6676typedef struct VkPhysicalDevice8BitStorageFeatures {
6677 VkStructureType sType;
6678 void* pNext;
6679 VkBool32 storageBuffer8BitAccess;
6680 VkBool32 uniformAndStorageBuffer8BitAccess;
6681 VkBool32 storagePushConstant8;
6682} VkPhysicalDevice8BitStorageFeatures;
6683
6684typedef struct VkPhysicalDeviceShaderAtomicInt64Features {
6685 VkStructureType sType;
6686 void* pNext;
6687 VkBool32 shaderBufferInt64Atomics;
6688 VkBool32 shaderSharedInt64Atomics;
6689} VkPhysicalDeviceShaderAtomicInt64Features;
6690
6691typedef struct VkPhysicalDeviceShaderFloat16Int8Features {
6692 VkStructureType sType;
6693 void* pNext;
6694 VkBool32 shaderFloat16;
6695 VkBool32 shaderInt8;
6696} VkPhysicalDeviceShaderFloat16Int8Features;
6697
6698typedef struct VkPhysicalDeviceFloatControlsProperties {
6699 VkStructureType sType;
6700 void* pNext;
6701 VkShaderFloatControlsIndependence denormBehaviorIndependence;
6702 VkShaderFloatControlsIndependence roundingModeIndependence;
6703 VkBool32 shaderSignedZeroInfNanPreserveFloat16;
6704 VkBool32 shaderSignedZeroInfNanPreserveFloat32;
6705 VkBool32 shaderSignedZeroInfNanPreserveFloat64;
6706 VkBool32 shaderDenormPreserveFloat16;
6707 VkBool32 shaderDenormPreserveFloat32;
6708 VkBool32 shaderDenormPreserveFloat64;
6709 VkBool32 shaderDenormFlushToZeroFloat16;
6710 VkBool32 shaderDenormFlushToZeroFloat32;
6711 VkBool32 shaderDenormFlushToZeroFloat64;
6712 VkBool32 shaderRoundingModeRTEFloat16;
6713 VkBool32 shaderRoundingModeRTEFloat32;
6714 VkBool32 shaderRoundingModeRTEFloat64;
6715 VkBool32 shaderRoundingModeRTZFloat16;
6716 VkBool32 shaderRoundingModeRTZFloat32;
6717 VkBool32 shaderRoundingModeRTZFloat64;
6718} VkPhysicalDeviceFloatControlsProperties;
6719
6720typedef struct VkDescriptorSetLayoutBindingFlagsCreateInfo {
6721 VkStructureType sType;
6722 const void* pNext;
6723 uint32_t bindingCount;
6724 const VkDescriptorBindingFlags* pBindingFlags;
6725} VkDescriptorSetLayoutBindingFlagsCreateInfo;
6726
6727typedef struct VkPhysicalDeviceDescriptorIndexingFeatures {
6728 VkStructureType sType;
6729 void* pNext;
6730 VkBool32 shaderInputAttachmentArrayDynamicIndexing;
6731 VkBool32 shaderUniformTexelBufferArrayDynamicIndexing;
6732 VkBool32 shaderStorageTexelBufferArrayDynamicIndexing;
6733 VkBool32 shaderUniformBufferArrayNonUniformIndexing;
6734 VkBool32 shaderSampledImageArrayNonUniformIndexing;
6735 VkBool32 shaderStorageBufferArrayNonUniformIndexing;
6736 VkBool32 shaderStorageImageArrayNonUniformIndexing;
6737 VkBool32 shaderInputAttachmentArrayNonUniformIndexing;
6738 VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing;
6739 VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing;
6740 VkBool32 descriptorBindingUniformBufferUpdateAfterBind;
6741 VkBool32 descriptorBindingSampledImageUpdateAfterBind;
6742 VkBool32 descriptorBindingStorageImageUpdateAfterBind;
6743 VkBool32 descriptorBindingStorageBufferUpdateAfterBind;
6744 VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind;
6745 VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind;
6746 VkBool32 descriptorBindingUpdateUnusedWhilePending;
6747 VkBool32 descriptorBindingPartiallyBound;
6748 VkBool32 descriptorBindingVariableDescriptorCount;
6749 VkBool32 runtimeDescriptorArray;
6750} VkPhysicalDeviceDescriptorIndexingFeatures;
6751
6752typedef struct VkPhysicalDeviceDescriptorIndexingProperties {
6753 VkStructureType sType;
6754 void* pNext;
6755 uint32_t maxUpdateAfterBindDescriptorsInAllPools;
6756 VkBool32 shaderUniformBufferArrayNonUniformIndexingNative;
6757 VkBool32 shaderSampledImageArrayNonUniformIndexingNative;
6758 VkBool32 shaderStorageBufferArrayNonUniformIndexingNative;
6759 VkBool32 shaderStorageImageArrayNonUniformIndexingNative;
6760 VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative;
6761 VkBool32 robustBufferAccessUpdateAfterBind;
6762 VkBool32 quadDivergentImplicitLod;
6763 uint32_t maxPerStageDescriptorUpdateAfterBindSamplers;
6764 uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers;
6765 uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers;
6766 uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages;
6767 uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages;
6768 uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments;
6769 uint32_t maxPerStageUpdateAfterBindResources;
6770 uint32_t maxDescriptorSetUpdateAfterBindSamplers;
6771 uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers;
6772 uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
6773 uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers;
6774 uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
6775 uint32_t maxDescriptorSetUpdateAfterBindSampledImages;
6776 uint32_t maxDescriptorSetUpdateAfterBindStorageImages;
6777 uint32_t maxDescriptorSetUpdateAfterBindInputAttachments;
6778} VkPhysicalDeviceDescriptorIndexingProperties;
6779
6780typedef struct VkDescriptorSetVariableDescriptorCountAllocateInfo {
6781 VkStructureType sType;
6782 const void* pNext;
6783 uint32_t descriptorSetCount;
6784 const uint32_t* pDescriptorCounts;
6785} VkDescriptorSetVariableDescriptorCountAllocateInfo;
6786
6787typedef struct VkDescriptorSetVariableDescriptorCountLayoutSupport {
6788 VkStructureType sType;
6789 void* pNext;
6790 uint32_t maxVariableDescriptorCount;
6791} VkDescriptorSetVariableDescriptorCountLayoutSupport;
6792
6793typedef struct VkPhysicalDeviceScalarBlockLayoutFeatures {
6794 VkStructureType sType;
6795 void* pNext;
6796 VkBool32 scalarBlockLayout;
6797} VkPhysicalDeviceScalarBlockLayoutFeatures;
6798
6799typedef struct VkSamplerReductionModeCreateInfo {
6800 VkStructureType sType;
6801 const void* pNext;
6802 VkSamplerReductionMode reductionMode;
6803} VkSamplerReductionModeCreateInfo;
6804
6805typedef struct VkPhysicalDeviceSamplerFilterMinmaxProperties {
6806 VkStructureType sType;
6807 void* pNext;
6808 VkBool32 filterMinmaxSingleComponentFormats;
6809 VkBool32 filterMinmaxImageComponentMapping;
6810} VkPhysicalDeviceSamplerFilterMinmaxProperties;
6811
6812typedef struct VkPhysicalDeviceUniformBufferStandardLayoutFeatures {
6813 VkStructureType sType;
6814 void* pNext;
6815 VkBool32 uniformBufferStandardLayout;
6816} VkPhysicalDeviceUniformBufferStandardLayoutFeatures;
6817
6818typedef struct VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures {
6819 VkStructureType sType;
6820 void* pNext;
6821 VkBool32 shaderSubgroupExtendedTypes;
6822} VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures;
6823
6824typedef struct VkAttachmentDescription2 {
6825 VkStructureType sType;
6826 const void* pNext;
6827 VkAttachmentDescriptionFlags flags;
6828 VkFormat format;
6829 VkSampleCountFlagBits samples;
6830 VkAttachmentLoadOp loadOp;
6831 VkAttachmentStoreOp storeOp;
6832 VkAttachmentLoadOp stencilLoadOp;
6833 VkAttachmentStoreOp stencilStoreOp;
6834 VkImageLayout initialLayout;
6835 VkImageLayout finalLayout;
6836} VkAttachmentDescription2;
6837
6838typedef struct VkAttachmentReference2 {
6839 VkStructureType sType;
6840 const void* pNext;
6841 uint32_t attachment;
6842 VkImageLayout layout;
6843 VkImageAspectFlags aspectMask;
6844} VkAttachmentReference2;
6845
6846typedef struct VkSubpassDescription2 {
6847 VkStructureType sType;
6848 const void* pNext;
6849 VkSubpassDescriptionFlags flags;
6850 VkPipelineBindPoint pipelineBindPoint;
6851 uint32_t viewMask;
6852 uint32_t inputAttachmentCount;
6853 const VkAttachmentReference2* pInputAttachments;
6854 uint32_t colorAttachmentCount;
6855 const VkAttachmentReference2* pColorAttachments;
6856 const VkAttachmentReference2* pResolveAttachments;
6857 const VkAttachmentReference2* pDepthStencilAttachment;
6858 uint32_t preserveAttachmentCount;
6859 const uint32_t* pPreserveAttachments;
6860} VkSubpassDescription2;
6861
6862typedef struct VkSubpassDependency2 {
6863 VkStructureType sType;
6864 const void* pNext;
6865 uint32_t srcSubpass;
6866 uint32_t dstSubpass;
6867 VkPipelineStageFlags srcStageMask;
6868 VkPipelineStageFlags dstStageMask;
6869 VkAccessFlags srcAccessMask;
6870 VkAccessFlags dstAccessMask;
6871 VkDependencyFlags dependencyFlags;
6872 int32_t viewOffset;
6873} VkSubpassDependency2;
6874
6875typedef struct VkSubpassBeginInfo {
6876 VkStructureType sType;
6877 const void* pNext;
6878 VkSubpassContents contents;
6879} VkSubpassBeginInfo;
6880
6881typedef struct VkSubpassEndInfo {
6882 VkStructureType sType;
6883 const void* pNext;
6884} VkSubpassEndInfo;
6885
6886typedef struct VkRenderPassCreateInfo2 {
6887 VkStructureType sType;
6888 const void* pNext;
6889 VkRenderPassCreateFlags flags;
6890 uint32_t attachmentCount;
6891 const VkAttachmentDescription2* pAttachments;
6892 uint32_t subpassCount;
6893 const VkSubpassDescription2* pSubpasses;
6894 uint32_t dependencyCount;
6895 const VkSubpassDependency2* pDependencies;
6896 uint32_t correlatedViewMaskCount;
6897 const uint32_t* pCorrelatedViewMasks;
6898} VkRenderPassCreateInfo2;
6899
6900typedef struct VkSubpassDescriptionDepthStencilResolve {
6901 VkStructureType sType;
6902 const void* pNext;
6903 VkResolveModeFlagBits depthResolveMode;
6904 VkResolveModeFlagBits stencilResolveMode;
6905 const VkAttachmentReference2* pDepthStencilResolveAttachment;
6906} VkSubpassDescriptionDepthStencilResolve;
6907
6908typedef struct VkPhysicalDeviceDepthStencilResolveProperties {
6909 VkStructureType sType;
6910 void* pNext;
6911 VkResolveModeFlags supportedDepthResolveModes;
6912 VkResolveModeFlags supportedStencilResolveModes;
6913 VkBool32 independentResolveNone;
6914 VkBool32 independentResolve;
6915} VkPhysicalDeviceDepthStencilResolveProperties;
6916
6917typedef struct VkImageStencilUsageCreateInfo {
6918 VkStructureType sType;
6919 const void* pNext;
6920 VkImageUsageFlags stencilUsage;
6921} VkImageStencilUsageCreateInfo;
6922
6923typedef struct VkPhysicalDeviceImagelessFramebufferFeatures {
6924 VkStructureType sType;
6925 void* pNext;
6926 VkBool32 imagelessFramebuffer;
6927} VkPhysicalDeviceImagelessFramebufferFeatures;
6928
6929typedef struct VkFramebufferAttachmentImageInfo {
6930 VkStructureType sType;
6931 const void* pNext;
6932 VkImageCreateFlags flags;
6933 VkImageUsageFlags usage;
6934 uint32_t width;
6935 uint32_t height;
6936 uint32_t layerCount;
6937 uint32_t viewFormatCount;
6938 const VkFormat* pViewFormats;
6939} VkFramebufferAttachmentImageInfo;
6940
6941typedef struct VkRenderPassAttachmentBeginInfo {
6942 VkStructureType sType;
6943 const void* pNext;
6944 uint32_t attachmentCount;
6945 const VkImageView* pAttachments;
6946} VkRenderPassAttachmentBeginInfo;
6947
6948typedef struct VkFramebufferAttachmentsCreateInfo {
6949 VkStructureType sType;
6950 const void* pNext;
6951 uint32_t attachmentImageInfoCount;
6952 const VkFramebufferAttachmentImageInfo* pAttachmentImageInfos;
6953} VkFramebufferAttachmentsCreateInfo;
6954
6955typedef struct VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures {
6956 VkStructureType sType;
6957 void* pNext;
6958 VkBool32 separateDepthStencilLayouts;
6959} VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures;
6960
6961typedef struct VkAttachmentReferenceStencilLayout {
6962 VkStructureType sType;
6963 void* pNext;
6964 VkImageLayout stencilLayout;
6965} VkAttachmentReferenceStencilLayout;
6966
6967typedef struct VkAttachmentDescriptionStencilLayout {
6968 VkStructureType sType;
6969 void* pNext;
6970 VkImageLayout stencilInitialLayout;
6971 VkImageLayout stencilFinalLayout;
6972} VkAttachmentDescriptionStencilLayout;
6973
6974typedef void (VKAPI_PTR *PFN_vkResetQueryPool)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
6975typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreCounterValue)(VkDevice device, VkSemaphore semaphore, uint64_t* pValue);
6976typedef VkResult (VKAPI_PTR *PFN_vkWaitSemaphores)(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout);
6977typedef VkResult (VKAPI_PTR *PFN_vkSignalSemaphore)(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo);
6978typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddress)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
6979typedef uint64_t (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureAddress)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
6980typedef uint64_t (VKAPI_PTR *PFN_vkGetDeviceMemoryOpaqueCaptureAddress)(VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
6981typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCount)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
6982typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCount)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
6983typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2)(VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
6984typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo);
6985typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo);
6986typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2)(VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo);
6987
6988#ifndef VK_NO_PROTOTYPES
6989VKAPI_ATTR void VKAPI_CALL vkResetQueryPool(
6990 VkDevice device,
6991 VkQueryPool queryPool,
6992 uint32_t firstQuery,
6993 uint32_t queryCount);
6994
6995VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreCounterValue(
6996 VkDevice device,
6997 VkSemaphore semaphore,
6998 uint64_t* pValue);
6999
7000VKAPI_ATTR VkResult VKAPI_CALL vkWaitSemaphores(
7001 VkDevice device,
7002 const VkSemaphoreWaitInfo* pWaitInfo,
7003 uint64_t timeout);
7004
7005VKAPI_ATTR VkResult VKAPI_CALL vkSignalSemaphore(
7006 VkDevice device,
7007 const VkSemaphoreSignalInfo* pSignalInfo);
7008
7009VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddress(
7010 VkDevice device,
7011 const VkBufferDeviceAddressInfo* pInfo);
7012
7013VKAPI_ATTR uint64_t VKAPI_CALL vkGetBufferOpaqueCaptureAddress(
7014 VkDevice device,
7015 const VkBufferDeviceAddressInfo* pInfo);
7016
7017VKAPI_ATTR uint64_t VKAPI_CALL vkGetDeviceMemoryOpaqueCaptureAddress(
7018 VkDevice device,
7019 const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
7020
7021VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCount(
7022 VkCommandBuffer commandBuffer,
7023 VkBuffer buffer,
7024 VkDeviceSize offset,
7025 VkBuffer countBuffer,
7026 VkDeviceSize countBufferOffset,
7027 uint32_t maxDrawCount,
7028 uint32_t stride);
7029
7030VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCount(
7031 VkCommandBuffer commandBuffer,
7032 VkBuffer buffer,
7033 VkDeviceSize offset,
7034 VkBuffer countBuffer,
7035 VkDeviceSize countBufferOffset,
7036 uint32_t maxDrawCount,
7037 uint32_t stride);
7038
7039VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2(
7040 VkDevice device,
7041 const VkRenderPassCreateInfo2* pCreateInfo,
7042 const VkAllocationCallbacks* pAllocator,
7043 VkRenderPass* pRenderPass);
7044
7045VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2(
7046 VkCommandBuffer commandBuffer,
7047 const VkRenderPassBeginInfo* pRenderPassBegin,
7048 const VkSubpassBeginInfo* pSubpassBeginInfo);
7049
7050VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2(
7051 VkCommandBuffer commandBuffer,
7052 const VkSubpassBeginInfo* pSubpassBeginInfo,
7053 const VkSubpassEndInfo* pSubpassEndInfo);
7054
7055VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2(
7056 VkCommandBuffer commandBuffer,
7057 const VkSubpassEndInfo* pSubpassEndInfo);
7058#endif
7059
7060
7061// VK_VERSION_1_3 is a preprocessor guard. Do not pass it to API calls.
7062#define VK_VERSION_1_3 1
7063// Vulkan 1.3 version number
7064#define VK_API_VERSION_1_3 VK_MAKE_API_VERSION(0, 1, 3, 0)// Patch version should always be set to 0
7065
7066typedef uint64_t VkFlags64;
7067VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPrivateDataSlot)
7068
7069typedef enum VkToolPurposeFlagBits {
7070 VK_TOOL_PURPOSE_VALIDATION_BIT = 0x00000001,
7071 VK_TOOL_PURPOSE_PROFILING_BIT = 0x00000002,
7072 VK_TOOL_PURPOSE_TRACING_BIT = 0x00000004,
7073 VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT = 0x00000008,
7074 VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT = 0x00000010,
7075 VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT = 0x00000020,
7076 VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT = 0x00000040,
7077 VK_TOOL_PURPOSE_VALIDATION_BIT_EXT = VK_TOOL_PURPOSE_VALIDATION_BIT,
7078 VK_TOOL_PURPOSE_PROFILING_BIT_EXT = VK_TOOL_PURPOSE_PROFILING_BIT,
7079 VK_TOOL_PURPOSE_TRACING_BIT_EXT = VK_TOOL_PURPOSE_TRACING_BIT,
7080 VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT = VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT,
7081 VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT = VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT,
7082 VK_TOOL_PURPOSE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
7083} VkToolPurposeFlagBits;
7084typedef VkFlags VkToolPurposeFlags;
7085typedef VkFlags VkPrivateDataSlotCreateFlags;
7086typedef VkFlags64 VkPipelineStageFlags2;
7087
7088// Flag bits for VkPipelineStageFlagBits2
7089typedef VkFlags64 VkPipelineStageFlagBits2;
7090static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_NONE = 0ULL;
7091static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT = 0x00000001ULL;
7092static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT = 0x00000002ULL;
7093static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT = 0x00000004ULL;
7094static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT = 0x00000008ULL;
7095static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010ULL;
7096static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020ULL;
7097static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT = 0x00000040ULL;
7098static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT = 0x00000080ULL;
7099static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT = 0x00000100ULL;
7100static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT = 0x00000200ULL;
7101static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400ULL;
7102static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT = 0x00000800ULL;
7103static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT = 0x00001000ULL;
7104static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFER_BIT = 0x00001000ULL;
7105static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT = 0x00002000ULL;
7106static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_HOST_BIT = 0x00004000ULL;
7107static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT = 0x00008000ULL;
7108static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT = 0x00010000ULL;
7109static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COPY_BIT = 0x100000000ULL;
7110static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RESOLVE_BIT = 0x200000000ULL;
7111static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BLIT_BIT = 0x400000000ULL;
7112static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLEAR_BIT = 0x800000000ULL;
7113static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT = 0x1000000000ULL;
7114static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT = 0x2000000000ULL;
7115static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT = 0x4000000000ULL;
7116static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR = 0x04000000ULL;
7117static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR = 0x08000000ULL;
7118static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_NONE_KHR = 0ULL;
7119static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR = 0x00000001ULL;
7120static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR = 0x00000002ULL;
7121static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR = 0x00000004ULL;
7122static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR = 0x00000008ULL;
7123static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR = 0x00000010ULL;
7124static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR = 0x00000020ULL;
7125static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR = 0x00000040ULL;
7126static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR = 0x00000080ULL;
7127static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR = 0x00000100ULL;
7128static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR = 0x00000200ULL;
7129static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR = 0x00000400ULL;
7130static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR = 0x00000800ULL;
7131static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR = 0x00001000ULL;
7132static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR = 0x00001000ULL;
7133static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR = 0x00002000ULL;
7134static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_HOST_BIT_KHR = 0x00004000ULL;
7135static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR = 0x00008000ULL;
7136static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR = 0x00010000ULL;
7137static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COPY_BIT_KHR = 0x100000000ULL;
7138static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR = 0x200000000ULL;
7139static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BLIT_BIT_KHR = 0x400000000ULL;
7140static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR = 0x800000000ULL;
7141static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR = 0x1000000000ULL;
7142static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR = 0x2000000000ULL;
7143static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR = 0x4000000000ULL;
7144static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000ULL;
7145static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000ULL;
7146static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV = 0x00020000ULL;
7147static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_EXT = 0x00020000ULL;
7148static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00400000ULL;
7149static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV = 0x00400000ULL;
7150static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000ULL;
7151static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR = 0x00200000ULL;
7152static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV = 0x00200000ULL;
7153static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 0x02000000ULL;
7154static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000ULL;
7155static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV = 0x00080000ULL;
7156static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV = 0x00100000ULL;
7157static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT = 0x00080000ULL;
7158static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT = 0x00100000ULL;
7159static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI = 0x8000000000ULL;
7160// VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI is a legacy alias
7161static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI = 0x8000000000ULL;
7162static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI = 0x10000000000ULL;
7163static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR = 0x10000000ULL;
7164static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT = 0x40000000ULL;
7165static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI = 0x20000000000ULL;
7166static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV = 0x20000000ULL;
7167static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CONVERT_COOPERATIVE_VECTOR_MATRIX_BIT_NV = 0x100000000000ULL;
7168static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_DATA_GRAPH_BIT_ARM = 0x40000000000ULL;
7169static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COPY_INDIRECT_BIT_KHR = 0x400000000000ULL;
7170static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MEMORY_DECOMPRESSION_BIT_EXT = 0x200000000000ULL;
7171
7172typedef VkFlags64 VkAccessFlags2;
7173
7174// Flag bits for VkAccessFlagBits2
7175typedef VkFlags64 VkAccessFlagBits2;
7176static const VkAccessFlagBits2 VK_ACCESS_2_NONE = 0ULL;
7177static const VkAccessFlagBits2 VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT = 0x00000001ULL;
7178static const VkAccessFlagBits2 VK_ACCESS_2_INDEX_READ_BIT = 0x00000002ULL;
7179static const VkAccessFlagBits2 VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004ULL;
7180static const VkAccessFlagBits2 VK_ACCESS_2_UNIFORM_READ_BIT = 0x00000008ULL;
7181static const VkAccessFlagBits2 VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT = 0x00000010ULL;
7182static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_READ_BIT = 0x00000020ULL;
7183static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_WRITE_BIT = 0x00000040ULL;
7184static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT = 0x00000080ULL;
7185static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100ULL;
7186static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200ULL;
7187static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400ULL;
7188static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_READ_BIT = 0x00000800ULL;
7189static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_WRITE_BIT = 0x00001000ULL;
7190static const VkAccessFlagBits2 VK_ACCESS_2_HOST_READ_BIT = 0x00002000ULL;
7191static const VkAccessFlagBits2 VK_ACCESS_2_HOST_WRITE_BIT = 0x00004000ULL;
7192static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_READ_BIT = 0x00008000ULL;
7193static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_WRITE_BIT = 0x00010000ULL;
7194static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT = 0x100000000ULL;
7195static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_READ_BIT = 0x200000000ULL;
7196static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT = 0x400000000ULL;
7197static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR = 0x800000000ULL;
7198static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR = 0x1000000000ULL;
7199static const VkAccessFlagBits2 VK_ACCESS_2_SAMPLER_HEAP_READ_BIT_EXT = 0x200000000000000ULL;
7200static const VkAccessFlagBits2 VK_ACCESS_2_RESOURCE_HEAP_READ_BIT_EXT = 0x400000000000000ULL;
7201static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR = 0x2000000000ULL;
7202static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR = 0x4000000000ULL;
7203static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_TILE_ATTACHMENT_READ_BIT_QCOM = 0x8000000000000ULL;
7204static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_TILE_ATTACHMENT_WRITE_BIT_QCOM = 0x10000000000000ULL;
7205static const VkAccessFlagBits2 VK_ACCESS_2_NONE_KHR = 0ULL;
7206static const VkAccessFlagBits2 VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR = 0x00000001ULL;
7207static const VkAccessFlagBits2 VK_ACCESS_2_INDEX_READ_BIT_KHR = 0x00000002ULL;
7208static const VkAccessFlagBits2 VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR = 0x00000004ULL;
7209static const VkAccessFlagBits2 VK_ACCESS_2_UNIFORM_READ_BIT_KHR = 0x00000008ULL;
7210static const VkAccessFlagBits2 VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR = 0x00000010ULL;
7211static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_READ_BIT_KHR = 0x00000020ULL;
7212static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_WRITE_BIT_KHR = 0x00000040ULL;
7213static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR = 0x00000080ULL;
7214static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR = 0x00000100ULL;
7215static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR = 0x00000200ULL;
7216static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR = 0x00000400ULL;
7217static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_READ_BIT_KHR = 0x00000800ULL;
7218static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR = 0x00001000ULL;
7219static const VkAccessFlagBits2 VK_ACCESS_2_HOST_READ_BIT_KHR = 0x00002000ULL;
7220static const VkAccessFlagBits2 VK_ACCESS_2_HOST_WRITE_BIT_KHR = 0x00004000ULL;
7221static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_READ_BIT_KHR = 0x00008000ULL;
7222static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_WRITE_BIT_KHR = 0x00010000ULL;
7223static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR = 0x100000000ULL;
7224static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR = 0x200000000ULL;
7225static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR = 0x400000000ULL;
7226static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000ULL;
7227static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000ULL;
7228static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000ULL;
7229static const VkAccessFlagBits2 VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000ULL;
7230static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV = 0x00020000ULL;
7231static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV = 0x00040000ULL;
7232static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_EXT = 0x00020000ULL;
7233static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_EXT = 0x00040000ULL;
7234static const VkAccessFlagBits2 VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000ULL;
7235static const VkAccessFlagBits2 VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000ULL;
7236static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000ULL;
7237static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000ULL;
7238static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV = 0x00200000ULL;
7239static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV = 0x00400000ULL;
7240static const VkAccessFlagBits2 VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000ULL;
7241static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000ULL;
7242static const VkAccessFlagBits2 VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT = 0x20000000000ULL;
7243static const VkAccessFlagBits2 VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI = 0x8000000000ULL;
7244static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR = 0x10000000000ULL;
7245static const VkAccessFlagBits2 VK_ACCESS_2_MICROMAP_READ_BIT_EXT = 0x100000000000ULL;
7246static const VkAccessFlagBits2 VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT = 0x200000000000ULL;
7247static const VkAccessFlagBits2 VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV = 0x40000000000ULL;
7248static const VkAccessFlagBits2 VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV = 0x80000000000ULL;
7249static const VkAccessFlagBits2 VK_ACCESS_2_DATA_GRAPH_READ_BIT_ARM = 0x800000000000ULL;
7250static const VkAccessFlagBits2 VK_ACCESS_2_DATA_GRAPH_WRITE_BIT_ARM = 0x1000000000000ULL;
7251static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_DECOMPRESSION_READ_BIT_EXT = 0x80000000000000ULL;
7252static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_DECOMPRESSION_WRITE_BIT_EXT = 0x100000000000000ULL;
7253
7254
7255typedef enum VkSubmitFlagBits {
7256 VK_SUBMIT_PROTECTED_BIT = 0x00000001,
7257 VK_SUBMIT_PROTECTED_BIT_KHR = VK_SUBMIT_PROTECTED_BIT,
7258 VK_SUBMIT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
7259} VkSubmitFlagBits;
7260typedef VkFlags VkSubmitFlags;
7261typedef VkFlags64 VkFormatFeatureFlags2;
7262
7263// Flag bits for VkFormatFeatureFlagBits2
7264typedef VkFlags64 VkFormatFeatureFlagBits2;
7265static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT = 0x00000001ULL;
7266static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT = 0x00000002ULL;
7267static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004ULL;
7268static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008ULL;
7269static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT = 0x00000010ULL;
7270static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020ULL;
7271static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT = 0x00000040ULL;
7272static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT = 0x00000080ULL;
7273static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100ULL;
7274static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200ULL;
7275static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_SRC_BIT = 0x00000400ULL;
7276static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_DST_BIT = 0x00000800ULL;
7277static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000ULL;
7278static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT = 0x00004000ULL;
7279static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT = 0x00008000ULL;
7280static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0x00010000ULL;
7281static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000ULL;
7282static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000ULL;
7283static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000ULL;
7284static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000ULL;
7285static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000ULL;
7286static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DISJOINT_BIT = 0x00400000ULL;
7287static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT = 0x00800000ULL;
7288static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT = 0x80000000ULL;
7289static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT = 0x100000000ULL;
7290static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT = 0x200000000ULL;
7291static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT = 0x00002000ULL;
7292static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT = 0x400000000000ULL;
7293static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR = 0x02000000ULL;
7294static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR = 0x04000000ULL;
7295static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0x20000000ULL;
7296static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000ULL;
7297static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x40000000ULL;
7298static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT = 0x400000000000ULL;
7299static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR = 0x08000000ULL;
7300static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR = 0x10000000ULL;
7301static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR = 0x00000001ULL;
7302static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT_KHR = 0x00000002ULL;
7303static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT_KHR = 0x00000004ULL;
7304static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR = 0x00000008ULL;
7305static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT_KHR = 0x00000010ULL;
7306static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT_KHR = 0x00000020ULL;
7307static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT_KHR = 0x00000040ULL;
7308static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT_KHR = 0x00000080ULL;
7309static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT_KHR = 0x00000100ULL;
7310static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT_KHR = 0x00000200ULL;
7311static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR = 0x00000400ULL;
7312static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_DST_BIT_KHR = 0x00000800ULL;
7313static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT_KHR = 0x00001000ULL;
7314static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT_KHR = 0x00004000ULL;
7315static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT_KHR = 0x00008000ULL;
7316static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = 0x00020000ULL;
7317static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = 0x00040000ULL;
7318static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = 0x00080000ULL;
7319static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = 0x00100000ULL;
7320static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 0x00200000ULL;
7321static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DISJOINT_BIT_KHR = 0x00400000ULL;
7322static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT_KHR = 0x00800000ULL;
7323static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR = 0x80000000ULL;
7324static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR = 0x100000000ULL;
7325static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR = 0x200000000ULL;
7326static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR = 0x00010000ULL;
7327static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 0x00002000ULL;
7328static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_RADIUS_BUFFER_BIT_NV = 0x8000000000000ULL;
7329static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV = 0x4000000000ULL;
7330static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM = 0x400000000ULL;
7331static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM = 0x800000000ULL;
7332static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM = 0x1000000000ULL;
7333static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM = 0x2000000000ULL;
7334static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TENSOR_SHADER_BIT_ARM = 0x8000000000ULL;
7335static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TENSOR_IMAGE_ALIASING_BIT_ARM = 0x80000000000ULL;
7336static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV = 0x10000000000ULL;
7337static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV = 0x20000000000ULL;
7338static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV = 0x40000000000ULL;
7339static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TENSOR_DATA_GRAPH_BIT_ARM = 0x1000000000000ULL;
7340static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COPY_IMAGE_INDIRECT_DST_BIT_KHR = 0x800000000000000ULL;
7341static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x2000000000000ULL;
7342static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR = 0x4000000000000ULL;
7343static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_COPY_ON_COMPUTE_QUEUE_BIT_KHR = 0x10000000000000ULL;
7344static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_COPY_ON_TRANSFER_QUEUE_BIT_KHR = 0x20000000000000ULL;
7345static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STENCIL_COPY_ON_COMPUTE_QUEUE_BIT_KHR = 0x40000000000000ULL;
7346static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STENCIL_COPY_ON_TRANSFER_QUEUE_BIT_KHR = 0x80000000000000ULL;
7347static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DATA_GRAPH_OPTICAL_FLOW_IMAGE_BIT_ARM = 0x100000000000000ULL;
7348static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DATA_GRAPH_OPTICAL_FLOW_VECTOR_BIT_ARM = 0x200000000000000ULL;
7349static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DATA_GRAPH_OPTICAL_FLOW_COST_BIT_ARM = 0x400000000000000ULL;
7350
7351
7352typedef enum VkPipelineCreationFeedbackFlagBits {
7353 VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT = 0x00000001,
7354 VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT = 0x00000002,
7355 VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT = 0x00000004,
7356 VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT,
7357 VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT,
7358 VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT,
7359 VK_PIPELINE_CREATION_FEEDBACK_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
7360} VkPipelineCreationFeedbackFlagBits;
7361typedef VkFlags VkPipelineCreationFeedbackFlags;
7362
7363typedef enum VkRenderingFlagBits {
7364 VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT = 0x00000001,
7365 VK_RENDERING_SUSPENDING_BIT = 0x00000002,
7366 VK_RENDERING_RESUMING_BIT = 0x00000004,
7367 VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x00000008,
7368 VK_RENDERING_CONTENTS_INLINE_BIT_KHR = 0x00000010,
7369 VK_RENDERING_PER_LAYER_FRAGMENT_DENSITY_BIT_VALVE = 0x00000020,
7370 VK_RENDERING_FRAGMENT_REGION_BIT_EXT = 0x00000040,
7371 VK_RENDERING_CUSTOM_RESOLVE_BIT_EXT = 0x00000080,
7372 VK_RENDERING_LOCAL_READ_CONCURRENT_ACCESS_CONTROL_BIT_KHR = 0x00000100,
7373 VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR = VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT,
7374 VK_RENDERING_SUSPENDING_BIT_KHR = VK_RENDERING_SUSPENDING_BIT,
7375 VK_RENDERING_RESUMING_BIT_KHR = VK_RENDERING_RESUMING_BIT,
7376 VK_RENDERING_CONTENTS_INLINE_BIT_EXT = VK_RENDERING_CONTENTS_INLINE_BIT_KHR,
7377 VK_RENDERING_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
7378} VkRenderingFlagBits;
7379typedef VkFlags VkRenderingFlags;
7380typedef struct VkPhysicalDeviceVulkan13Features {
7381 VkStructureType sType;
7382 void* pNext;
7383 VkBool32 robustImageAccess;
7384 VkBool32 inlineUniformBlock;
7385 VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind;
7386 VkBool32 pipelineCreationCacheControl;
7387 VkBool32 privateData;
7388 VkBool32 shaderDemoteToHelperInvocation;
7389 VkBool32 shaderTerminateInvocation;
7390 VkBool32 subgroupSizeControl;
7391 VkBool32 computeFullSubgroups;
7392 VkBool32 synchronization2;
7393 VkBool32 textureCompressionASTC_HDR;
7394 VkBool32 shaderZeroInitializeWorkgroupMemory;
7395 VkBool32 dynamicRendering;
7396 VkBool32 shaderIntegerDotProduct;
7397 VkBool32 maintenance4;
7398} VkPhysicalDeviceVulkan13Features;
7399
7400typedef struct VkPhysicalDeviceVulkan13Properties {
7401 VkStructureType sType;
7402 void* pNext;
7403 uint32_t minSubgroupSize;
7404 uint32_t maxSubgroupSize;
7405 uint32_t maxComputeWorkgroupSubgroups;
7406 VkShaderStageFlags requiredSubgroupSizeStages;
7407 uint32_t maxInlineUniformBlockSize;
7408 uint32_t maxPerStageDescriptorInlineUniformBlocks;
7409 uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
7410 uint32_t maxDescriptorSetInlineUniformBlocks;
7411 uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
7412 uint32_t maxInlineUniformTotalSize;
7413 VkBool32 integerDotProduct8BitUnsignedAccelerated;
7414 VkBool32 integerDotProduct8BitSignedAccelerated;
7415 VkBool32 integerDotProduct8BitMixedSignednessAccelerated;
7416 VkBool32 integerDotProduct4x8BitPackedUnsignedAccelerated;
7417 VkBool32 integerDotProduct4x8BitPackedSignedAccelerated;
7418 VkBool32 integerDotProduct4x8BitPackedMixedSignednessAccelerated;
7419 VkBool32 integerDotProduct16BitUnsignedAccelerated;
7420 VkBool32 integerDotProduct16BitSignedAccelerated;
7421 VkBool32 integerDotProduct16BitMixedSignednessAccelerated;
7422 VkBool32 integerDotProduct32BitUnsignedAccelerated;
7423 VkBool32 integerDotProduct32BitSignedAccelerated;
7424 VkBool32 integerDotProduct32BitMixedSignednessAccelerated;
7425 VkBool32 integerDotProduct64BitUnsignedAccelerated;
7426 VkBool32 integerDotProduct64BitSignedAccelerated;
7427 VkBool32 integerDotProduct64BitMixedSignednessAccelerated;
7428 VkBool32 integerDotProductAccumulatingSaturating8BitUnsignedAccelerated;
7429 VkBool32 integerDotProductAccumulatingSaturating8BitSignedAccelerated;
7430 VkBool32 integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated;
7431 VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated;
7432 VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated;
7433 VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated;
7434 VkBool32 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated;
7435 VkBool32 integerDotProductAccumulatingSaturating16BitSignedAccelerated;
7436 VkBool32 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated;
7437 VkBool32 integerDotProductAccumulatingSaturating32BitUnsignedAccelerated;
7438 VkBool32 integerDotProductAccumulatingSaturating32BitSignedAccelerated;
7439 VkBool32 integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated;
7440 VkBool32 integerDotProductAccumulatingSaturating64BitUnsignedAccelerated;
7441 VkBool32 integerDotProductAccumulatingSaturating64BitSignedAccelerated;
7442 VkBool32 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated;
7443 VkDeviceSize storageTexelBufferOffsetAlignmentBytes;
7444 VkBool32 storageTexelBufferOffsetSingleTexelAlignment;
7445 VkDeviceSize uniformTexelBufferOffsetAlignmentBytes;
7446 VkBool32 uniformTexelBufferOffsetSingleTexelAlignment;
7447 VkDeviceSize maxBufferSize;
7448} VkPhysicalDeviceVulkan13Properties;
7449
7450typedef struct VkPhysicalDeviceToolProperties {
7451 VkStructureType sType;
7452 void* pNext;
7453 char name[VK_MAX_EXTENSION_NAME_SIZE];
7454 char version[VK_MAX_EXTENSION_NAME_SIZE];
7455 VkToolPurposeFlags purposes;
7456 char description[VK_MAX_DESCRIPTION_SIZE];
7457 char layer[VK_MAX_EXTENSION_NAME_SIZE];
7458} VkPhysicalDeviceToolProperties;
7459
7460typedef struct VkPhysicalDevicePrivateDataFeatures {
7461 VkStructureType sType;
7462 void* pNext;
7463 VkBool32 privateData;
7464} VkPhysicalDevicePrivateDataFeatures;
7465
7466typedef struct VkDevicePrivateDataCreateInfo {
7467 VkStructureType sType;
7468 const void* pNext;
7469 uint32_t privateDataSlotRequestCount;
7470} VkDevicePrivateDataCreateInfo;
7471
7472typedef struct VkPrivateDataSlotCreateInfo {
7473 VkStructureType sType;
7474 const void* pNext;
7475 VkPrivateDataSlotCreateFlags flags;
7476} VkPrivateDataSlotCreateInfo;
7477
7478typedef struct VkMemoryBarrier2 {
7479 VkStructureType sType;
7480 const void* pNext;
7481 VkPipelineStageFlags2 srcStageMask;
7482 VkAccessFlags2 srcAccessMask;
7483 VkPipelineStageFlags2 dstStageMask;
7484 VkAccessFlags2 dstAccessMask;
7485} VkMemoryBarrier2;
7486
7487typedef struct VkBufferMemoryBarrier2 {
7488 VkStructureType sType;
7489 const void* pNext;
7490 VkPipelineStageFlags2 srcStageMask;
7491 VkAccessFlags2 srcAccessMask;
7492 VkPipelineStageFlags2 dstStageMask;
7493 VkAccessFlags2 dstAccessMask;
7494 uint32_t srcQueueFamilyIndex;
7495 uint32_t dstQueueFamilyIndex;
7496 VkBuffer buffer;
7497 VkDeviceSize offset;
7498 VkDeviceSize size;
7499} VkBufferMemoryBarrier2;
7500
7501typedef struct VkImageMemoryBarrier2 {
7502 VkStructureType sType;
7503 const void* pNext;
7504 VkPipelineStageFlags2 srcStageMask;
7505 VkAccessFlags2 srcAccessMask;
7506 VkPipelineStageFlags2 dstStageMask;
7507 VkAccessFlags2 dstAccessMask;
7508 VkImageLayout oldLayout;
7509 VkImageLayout newLayout;
7510 uint32_t srcQueueFamilyIndex;
7511 uint32_t dstQueueFamilyIndex;
7512 VkImage image;
7513 VkImageSubresourceRange subresourceRange;
7514} VkImageMemoryBarrier2;
7515
7516typedef struct VkDependencyInfo {
7517 VkStructureType sType;
7518 const void* pNext;
7519 VkDependencyFlags dependencyFlags;
7520 uint32_t memoryBarrierCount;
7521 const VkMemoryBarrier2* pMemoryBarriers;
7522 uint32_t bufferMemoryBarrierCount;
7523 const VkBufferMemoryBarrier2* pBufferMemoryBarriers;
7524 uint32_t imageMemoryBarrierCount;
7525 const VkImageMemoryBarrier2* pImageMemoryBarriers;
7526} VkDependencyInfo;
7527
7528typedef struct VkSemaphoreSubmitInfo {
7529 VkStructureType sType;
7530 const void* pNext;
7531 VkSemaphore semaphore;
7532 uint64_t value;
7533 VkPipelineStageFlags2 stageMask;
7534 uint32_t deviceIndex;
7535} VkSemaphoreSubmitInfo;
7536
7537typedef struct VkCommandBufferSubmitInfo {
7538 VkStructureType sType;
7539 const void* pNext;
7540 VkCommandBuffer commandBuffer;
7541 uint32_t deviceMask;
7542} VkCommandBufferSubmitInfo;
7543
7544typedef struct VkSubmitInfo2 {
7545 VkStructureType sType;
7546 const void* pNext;
7547 VkSubmitFlags flags;
7548 uint32_t waitSemaphoreInfoCount;
7549 const VkSemaphoreSubmitInfo* pWaitSemaphoreInfos;
7550 uint32_t commandBufferInfoCount;
7551 const VkCommandBufferSubmitInfo* pCommandBufferInfos;
7552 uint32_t signalSemaphoreInfoCount;
7553 const VkSemaphoreSubmitInfo* pSignalSemaphoreInfos;
7554} VkSubmitInfo2;
7555
7556typedef struct VkPhysicalDeviceSynchronization2Features {
7557 VkStructureType sType;
7558 void* pNext;
7559 VkBool32 synchronization2;
7560} VkPhysicalDeviceSynchronization2Features;
7561
7562typedef struct VkBufferCopy2 {
7563 VkStructureType sType;
7564 const void* pNext;
7565 VkDeviceSize srcOffset;
7566 VkDeviceSize dstOffset;
7567 VkDeviceSize size;
7568} VkBufferCopy2;
7569
7570typedef struct VkCopyBufferInfo2 {
7571 VkStructureType sType;
7572 const void* pNext;
7573 VkBuffer srcBuffer;
7574 VkBuffer dstBuffer;
7575 uint32_t regionCount;
7576 const VkBufferCopy2* pRegions;
7577} VkCopyBufferInfo2;
7578
7579typedef struct VkImageCopy2 {
7580 VkStructureType sType;
7581 const void* pNext;
7582 VkImageSubresourceLayers srcSubresource;
7583 VkOffset3D srcOffset;
7584 VkImageSubresourceLayers dstSubresource;
7585 VkOffset3D dstOffset;
7586 VkExtent3D extent;
7587} VkImageCopy2;
7588
7589typedef struct VkCopyImageInfo2 {
7590 VkStructureType sType;
7591 const void* pNext;
7592 VkImage srcImage;
7593 VkImageLayout srcImageLayout;
7594 VkImage dstImage;
7595 VkImageLayout dstImageLayout;
7596 uint32_t regionCount;
7597 const VkImageCopy2* pRegions;
7598} VkCopyImageInfo2;
7599
7600typedef struct VkBufferImageCopy2 {
7601 VkStructureType sType;
7602 const void* pNext;
7603 VkDeviceSize bufferOffset;
7604 uint32_t bufferRowLength;
7605 uint32_t bufferImageHeight;
7606 VkImageSubresourceLayers imageSubresource;
7607 VkOffset3D imageOffset;
7608 VkExtent3D imageExtent;
7609} VkBufferImageCopy2;
7610
7611typedef struct VkCopyBufferToImageInfo2 {
7612 VkStructureType sType;
7613 const void* pNext;
7614 VkBuffer srcBuffer;
7615 VkImage dstImage;
7616 VkImageLayout dstImageLayout;
7617 uint32_t regionCount;
7618 const VkBufferImageCopy2* pRegions;
7619} VkCopyBufferToImageInfo2;
7620
7621typedef struct VkCopyImageToBufferInfo2 {
7622 VkStructureType sType;
7623 const void* pNext;
7624 VkImage srcImage;
7625 VkImageLayout srcImageLayout;
7626 VkBuffer dstBuffer;
7627 uint32_t regionCount;
7628 const VkBufferImageCopy2* pRegions;
7629} VkCopyImageToBufferInfo2;
7630
7631typedef struct VkPhysicalDeviceTextureCompressionASTCHDRFeatures {
7632 VkStructureType sType;
7633 void* pNext;
7634 VkBool32 textureCompressionASTC_HDR;
7635} VkPhysicalDeviceTextureCompressionASTCHDRFeatures;
7636
7637typedef struct VkFormatProperties3 {
7638 VkStructureType sType;
7639 void* pNext;
7640 VkFormatFeatureFlags2 linearTilingFeatures;
7641 VkFormatFeatureFlags2 optimalTilingFeatures;
7642 VkFormatFeatureFlags2 bufferFeatures;
7643} VkFormatProperties3;
7644
7645typedef struct VkPhysicalDeviceMaintenance4Features {
7646 VkStructureType sType;
7647 void* pNext;
7648 VkBool32 maintenance4;
7649} VkPhysicalDeviceMaintenance4Features;
7650
7651typedef struct VkPhysicalDeviceMaintenance4Properties {
7652 VkStructureType sType;
7653 void* pNext;
7654 VkDeviceSize maxBufferSize;
7655} VkPhysicalDeviceMaintenance4Properties;
7656
7657typedef struct VkDeviceBufferMemoryRequirements {
7658 VkStructureType sType;
7659 const void* pNext;
7660 const VkBufferCreateInfo* pCreateInfo;
7661} VkDeviceBufferMemoryRequirements;
7662
7663typedef struct VkDeviceImageMemoryRequirements {
7664 VkStructureType sType;
7665 const void* pNext;
7666 const VkImageCreateInfo* pCreateInfo;
7667 VkImageAspectFlagBits planeAspect;
7668} VkDeviceImageMemoryRequirements;
7669
7670typedef struct VkPipelineCreationFeedback {
7671 VkPipelineCreationFeedbackFlags flags;
7672 uint64_t duration;
7673} VkPipelineCreationFeedback;
7674
7675typedef struct VkPipelineCreationFeedbackCreateInfo {
7676 VkStructureType sType;
7677 const void* pNext;
7678 VkPipelineCreationFeedback* pPipelineCreationFeedback;
7679 uint32_t pipelineStageCreationFeedbackCount;
7680 VkPipelineCreationFeedback* pPipelineStageCreationFeedbacks;
7681} VkPipelineCreationFeedbackCreateInfo;
7682
7683typedef struct VkPhysicalDeviceShaderTerminateInvocationFeatures {
7684 VkStructureType sType;
7685 void* pNext;
7686 VkBool32 shaderTerminateInvocation;
7687} VkPhysicalDeviceShaderTerminateInvocationFeatures;
7688
7689typedef struct VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures {
7690 VkStructureType sType;
7691 void* pNext;
7692 VkBool32 shaderDemoteToHelperInvocation;
7693} VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures;
7694
7695typedef struct VkPhysicalDevicePipelineCreationCacheControlFeatures {
7696 VkStructureType sType;
7697 void* pNext;
7698 VkBool32 pipelineCreationCacheControl;
7699} VkPhysicalDevicePipelineCreationCacheControlFeatures;
7700
7701typedef struct VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures {
7702 VkStructureType sType;
7703 void* pNext;
7704 VkBool32 shaderZeroInitializeWorkgroupMemory;
7705} VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures;
7706
7707typedef struct VkPhysicalDeviceImageRobustnessFeatures {
7708 VkStructureType sType;
7709 void* pNext;
7710 VkBool32 robustImageAccess;
7711} VkPhysicalDeviceImageRobustnessFeatures;
7712
7713typedef struct VkPhysicalDeviceSubgroupSizeControlFeatures {
7714 VkStructureType sType;
7715 void* pNext;
7716 VkBool32 subgroupSizeControl;
7717 VkBool32 computeFullSubgroups;
7718} VkPhysicalDeviceSubgroupSizeControlFeatures;
7719
7720typedef struct VkPhysicalDeviceSubgroupSizeControlProperties {
7721 VkStructureType sType;
7722 void* pNext;
7723 uint32_t minSubgroupSize;
7724 uint32_t maxSubgroupSize;
7725 uint32_t maxComputeWorkgroupSubgroups;
7726 VkShaderStageFlags requiredSubgroupSizeStages;
7727} VkPhysicalDeviceSubgroupSizeControlProperties;
7728
7729typedef struct VkPipelineShaderStageRequiredSubgroupSizeCreateInfo {
7730 VkStructureType sType;
7731 const void* pNext;
7732 uint32_t requiredSubgroupSize;
7733} VkPipelineShaderStageRequiredSubgroupSizeCreateInfo;
7734
7735typedef struct VkPhysicalDeviceInlineUniformBlockFeatures {
7736 VkStructureType sType;
7737 void* pNext;
7738 VkBool32 inlineUniformBlock;
7739 VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind;
7740} VkPhysicalDeviceInlineUniformBlockFeatures;
7741
7742typedef struct VkPhysicalDeviceInlineUniformBlockProperties {
7743 VkStructureType sType;
7744 void* pNext;
7745 uint32_t maxInlineUniformBlockSize;
7746 uint32_t maxPerStageDescriptorInlineUniformBlocks;
7747 uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
7748 uint32_t maxDescriptorSetInlineUniformBlocks;
7749 uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
7750} VkPhysicalDeviceInlineUniformBlockProperties;
7751
7752typedef struct VkWriteDescriptorSetInlineUniformBlock {
7753 VkStructureType sType;
7754 const void* pNext;
7755 uint32_t dataSize;
7756 const void* pData;
7757} VkWriteDescriptorSetInlineUniformBlock;
7758
7759typedef struct VkDescriptorPoolInlineUniformBlockCreateInfo {
7760 VkStructureType sType;
7761 const void* pNext;
7762 uint32_t maxInlineUniformBlockBindings;
7763} VkDescriptorPoolInlineUniformBlockCreateInfo;
7764
7765typedef struct VkPhysicalDeviceShaderIntegerDotProductFeatures {
7766 VkStructureType sType;
7767 void* pNext;
7768 VkBool32 shaderIntegerDotProduct;
7769} VkPhysicalDeviceShaderIntegerDotProductFeatures;
7770
7771typedef struct VkPhysicalDeviceShaderIntegerDotProductProperties {
7772 VkStructureType sType;
7773 void* pNext;
7774 VkBool32 integerDotProduct8BitUnsignedAccelerated;
7775 VkBool32 integerDotProduct8BitSignedAccelerated;
7776 VkBool32 integerDotProduct8BitMixedSignednessAccelerated;
7777 VkBool32 integerDotProduct4x8BitPackedUnsignedAccelerated;
7778 VkBool32 integerDotProduct4x8BitPackedSignedAccelerated;
7779 VkBool32 integerDotProduct4x8BitPackedMixedSignednessAccelerated;
7780 VkBool32 integerDotProduct16BitUnsignedAccelerated;
7781 VkBool32 integerDotProduct16BitSignedAccelerated;
7782 VkBool32 integerDotProduct16BitMixedSignednessAccelerated;
7783 VkBool32 integerDotProduct32BitUnsignedAccelerated;
7784 VkBool32 integerDotProduct32BitSignedAccelerated;
7785 VkBool32 integerDotProduct32BitMixedSignednessAccelerated;
7786 VkBool32 integerDotProduct64BitUnsignedAccelerated;
7787 VkBool32 integerDotProduct64BitSignedAccelerated;
7788 VkBool32 integerDotProduct64BitMixedSignednessAccelerated;
7789 VkBool32 integerDotProductAccumulatingSaturating8BitUnsignedAccelerated;
7790 VkBool32 integerDotProductAccumulatingSaturating8BitSignedAccelerated;
7791 VkBool32 integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated;
7792 VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated;
7793 VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated;
7794 VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated;
7795 VkBool32 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated;
7796 VkBool32 integerDotProductAccumulatingSaturating16BitSignedAccelerated;
7797 VkBool32 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated;
7798 VkBool32 integerDotProductAccumulatingSaturating32BitUnsignedAccelerated;
7799 VkBool32 integerDotProductAccumulatingSaturating32BitSignedAccelerated;
7800 VkBool32 integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated;
7801 VkBool32 integerDotProductAccumulatingSaturating64BitUnsignedAccelerated;
7802 VkBool32 integerDotProductAccumulatingSaturating64BitSignedAccelerated;
7803 VkBool32 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated;
7804} VkPhysicalDeviceShaderIntegerDotProductProperties;
7805
7806typedef struct VkPhysicalDeviceTexelBufferAlignmentProperties {
7807 VkStructureType sType;
7808 void* pNext;
7809 VkDeviceSize storageTexelBufferOffsetAlignmentBytes;
7810 VkBool32 storageTexelBufferOffsetSingleTexelAlignment;
7811 VkDeviceSize uniformTexelBufferOffsetAlignmentBytes;
7812 VkBool32 uniformTexelBufferOffsetSingleTexelAlignment;
7813} VkPhysicalDeviceTexelBufferAlignmentProperties;
7814
7815typedef struct VkImageBlit2 {
7816 VkStructureType sType;
7817 const void* pNext;
7818 VkImageSubresourceLayers srcSubresource;
7819 VkOffset3D srcOffsets[2];
7820 VkImageSubresourceLayers dstSubresource;
7821 VkOffset3D dstOffsets[2];
7822} VkImageBlit2;
7823
7824typedef struct VkBlitImageInfo2 {
7825 VkStructureType sType;
7826 const void* pNext;
7827 VkImage srcImage;
7828 VkImageLayout srcImageLayout;
7829 VkImage dstImage;
7830 VkImageLayout dstImageLayout;
7831 uint32_t regionCount;
7832 const VkImageBlit2* pRegions;
7833 VkFilter filter;
7834} VkBlitImageInfo2;
7835
7836typedef struct VkImageResolve2 {
7837 VkStructureType sType;
7838 const void* pNext;
7839 VkImageSubresourceLayers srcSubresource;
7840 VkOffset3D srcOffset;
7841 VkImageSubresourceLayers dstSubresource;
7842 VkOffset3D dstOffset;
7843 VkExtent3D extent;
7844} VkImageResolve2;
7845
7846typedef struct VkResolveImageInfo2 {
7847 VkStructureType sType;
7848 const void* pNext;
7849 VkImage srcImage;
7850 VkImageLayout srcImageLayout;
7851 VkImage dstImage;
7852 VkImageLayout dstImageLayout;
7853 uint32_t regionCount;
7854 const VkImageResolve2* pRegions;
7855} VkResolveImageInfo2;
7856
7857typedef struct VkRenderingAttachmentInfo {
7858 VkStructureType sType;
7859 const void* pNext;
7860 VkImageView imageView;
7861 VkImageLayout imageLayout;
7862 VkResolveModeFlagBits resolveMode;
7863 VkImageView resolveImageView;
7864 VkImageLayout resolveImageLayout;
7865 VkAttachmentLoadOp loadOp;
7866 VkAttachmentStoreOp storeOp;
7867 VkClearValue clearValue;
7868} VkRenderingAttachmentInfo;
7869
7870typedef struct VkRenderingInfo {
7871 VkStructureType sType;
7872 const void* pNext;
7873 VkRenderingFlags flags;
7874 VkRect2D renderArea;
7875 uint32_t layerCount;
7876 uint32_t viewMask;
7877 uint32_t colorAttachmentCount;
7878 const VkRenderingAttachmentInfo* pColorAttachments;
7879 const VkRenderingAttachmentInfo* pDepthAttachment;
7880 const VkRenderingAttachmentInfo* pStencilAttachment;
7881} VkRenderingInfo;
7882
7883typedef struct VkPipelineRenderingCreateInfo {
7884 VkStructureType sType;
7885 const void* pNext;
7886 uint32_t viewMask;
7887 uint32_t colorAttachmentCount;
7888 const VkFormat* pColorAttachmentFormats;
7889 VkFormat depthAttachmentFormat;
7890 VkFormat stencilAttachmentFormat;
7891} VkPipelineRenderingCreateInfo;
7892
7893typedef struct VkPhysicalDeviceDynamicRenderingFeatures {
7894 VkStructureType sType;
7895 void* pNext;
7896 VkBool32 dynamicRendering;
7897} VkPhysicalDeviceDynamicRenderingFeatures;
7898
7899typedef struct VkCommandBufferInheritanceRenderingInfo {
7900 VkStructureType sType;
7901 const void* pNext;
7902 VkRenderingFlags flags;
7903 uint32_t viewMask;
7904 uint32_t colorAttachmentCount;
7905 const VkFormat* pColorAttachmentFormats;
7906 VkFormat depthAttachmentFormat;
7907 VkFormat stencilAttachmentFormat;
7908 VkSampleCountFlagBits rasterizationSamples;
7909} VkCommandBufferInheritanceRenderingInfo;
7910
7911typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceToolProperties)(VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties);
7912typedef VkResult (VKAPI_PTR *PFN_vkCreatePrivateDataSlot)(VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot);
7913typedef void (VKAPI_PTR *PFN_vkDestroyPrivateDataSlot)(VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks* pAllocator);
7914typedef VkResult (VKAPI_PTR *PFN_vkSetPrivateData)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data);
7915typedef void (VKAPI_PTR *PFN_vkGetPrivateData)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t* pData);
7916typedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier2)(VkCommandBuffer commandBuffer, const VkDependencyInfo* pDependencyInfo);
7917typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp2)(VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkQueryPool queryPool, uint32_t query);
7918typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit2)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo2* pSubmits, VkFence fence);
7919typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer2)(VkCommandBuffer commandBuffer, const VkCopyBufferInfo2* pCopyBufferInfo);
7920typedef void (VKAPI_PTR *PFN_vkCmdCopyImage2)(VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo);
7921typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage2)(VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo);
7922typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer2)(VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo);
7923typedef void (VKAPI_PTR *PFN_vkGetDeviceBufferMemoryRequirements)(VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
7924typedef void (VKAPI_PTR *PFN_vkGetDeviceImageMemoryRequirements)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
7925typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSparseMemoryRequirements)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
7926typedef void (VKAPI_PTR *PFN_vkCmdSetEvent2)(VkCommandBuffer commandBuffer, VkEvent event, const VkDependencyInfo* pDependencyInfo);
7927typedef void (VKAPI_PTR *PFN_vkCmdResetEvent2)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags2 stageMask);
7928typedef void (VKAPI_PTR *PFN_vkCmdWaitEvents2)(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, const VkDependencyInfo* pDependencyInfos);
7929typedef void (VKAPI_PTR *PFN_vkCmdBlitImage2)(VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo);
7930typedef void (VKAPI_PTR *PFN_vkCmdResolveImage2)(VkCommandBuffer commandBuffer, const VkResolveImageInfo2* pResolveImageInfo);
7931typedef void (VKAPI_PTR *PFN_vkCmdBeginRendering)(VkCommandBuffer commandBuffer, const VkRenderingInfo* pRenderingInfo);
7932typedef void (VKAPI_PTR *PFN_vkCmdEndRendering)(VkCommandBuffer commandBuffer);
7933typedef void (VKAPI_PTR *PFN_vkCmdSetCullMode)(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode);
7934typedef void (VKAPI_PTR *PFN_vkCmdSetFrontFace)(VkCommandBuffer commandBuffer, VkFrontFace frontFace);
7935typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveTopology)(VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology);
7936typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWithCount)(VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports);
7937typedef void (VKAPI_PTR *PFN_vkCmdSetScissorWithCount)(VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors);
7938typedef 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);
7939typedef void (VKAPI_PTR *PFN_vkCmdSetDepthTestEnable)(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable);
7940typedef void (VKAPI_PTR *PFN_vkCmdSetDepthWriteEnable)(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable);
7941typedef void (VKAPI_PTR *PFN_vkCmdSetDepthCompareOp)(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp);
7942typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBoundsTestEnable)(VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable);
7943typedef void (VKAPI_PTR *PFN_vkCmdSetStencilTestEnable)(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable);
7944typedef void (VKAPI_PTR *PFN_vkCmdSetStencilOp)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp);
7945typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizerDiscardEnable)(VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable);
7946typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBiasEnable)(VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable);
7947typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveRestartEnable)(VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable);
7948
7949#ifndef VK_NO_PROTOTYPES
7950VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceToolProperties(
7951 VkPhysicalDevice physicalDevice,
7952 uint32_t* pToolCount,
7953 VkPhysicalDeviceToolProperties* pToolProperties);
7954
7955VKAPI_ATTR VkResult VKAPI_CALL vkCreatePrivateDataSlot(
7956 VkDevice device,
7957 const VkPrivateDataSlotCreateInfo* pCreateInfo,
7958 const VkAllocationCallbacks* pAllocator,
7959 VkPrivateDataSlot* pPrivateDataSlot);
7960
7961VKAPI_ATTR void VKAPI_CALL vkDestroyPrivateDataSlot(
7962 VkDevice device,
7963 VkPrivateDataSlot privateDataSlot,
7964 const VkAllocationCallbacks* pAllocator);
7965
7966VKAPI_ATTR VkResult VKAPI_CALL vkSetPrivateData(
7967 VkDevice device,
7968 VkObjectType objectType,
7969 uint64_t objectHandle,
7970 VkPrivateDataSlot privateDataSlot,
7971 uint64_t data);
7972
7973VKAPI_ATTR void VKAPI_CALL vkGetPrivateData(
7974 VkDevice device,
7975 VkObjectType objectType,
7976 uint64_t objectHandle,
7977 VkPrivateDataSlot privateDataSlot,
7978 uint64_t* pData);
7979
7980VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier2(
7981 VkCommandBuffer commandBuffer,
7982 const VkDependencyInfo* pDependencyInfo);
7983
7984VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp2(
7985 VkCommandBuffer commandBuffer,
7986 VkPipelineStageFlags2 stage,
7987 VkQueryPool queryPool,
7988 uint32_t query);
7989
7990VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit2(
7991 VkQueue queue,
7992 uint32_t submitCount,
7993 const VkSubmitInfo2* pSubmits,
7994 VkFence fence);
7995
7996VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer2(
7997 VkCommandBuffer commandBuffer,
7998 const VkCopyBufferInfo2* pCopyBufferInfo);
7999
8000VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage2(
8001 VkCommandBuffer commandBuffer,
8002 const VkCopyImageInfo2* pCopyImageInfo);
8003
8004VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage2(
8005 VkCommandBuffer commandBuffer,
8006 const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo);
8007
8008VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer2(
8009 VkCommandBuffer commandBuffer,
8010 const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo);
8011
8012VKAPI_ATTR void VKAPI_CALL vkGetDeviceBufferMemoryRequirements(
8013 VkDevice device,
8014 const VkDeviceBufferMemoryRequirements* pInfo,
8015 VkMemoryRequirements2* pMemoryRequirements);
8016
8017VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageMemoryRequirements(
8018 VkDevice device,
8019 const VkDeviceImageMemoryRequirements* pInfo,
8020 VkMemoryRequirements2* pMemoryRequirements);
8021
8022VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSparseMemoryRequirements(
8023 VkDevice device,
8024 const VkDeviceImageMemoryRequirements* pInfo,
8025 uint32_t* pSparseMemoryRequirementCount,
8026 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
8027
8028VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent2(
8029 VkCommandBuffer commandBuffer,
8030 VkEvent event,
8031 const VkDependencyInfo* pDependencyInfo);
8032
8033VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent2(
8034 VkCommandBuffer commandBuffer,
8035 VkEvent event,
8036 VkPipelineStageFlags2 stageMask);
8037
8038VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents2(
8039 VkCommandBuffer commandBuffer,
8040 uint32_t eventCount,
8041 const VkEvent* pEvents,
8042 const VkDependencyInfo* pDependencyInfos);
8043
8044VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage2(
8045 VkCommandBuffer commandBuffer,
8046 const VkBlitImageInfo2* pBlitImageInfo);
8047
8048VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage2(
8049 VkCommandBuffer commandBuffer,
8050 const VkResolveImageInfo2* pResolveImageInfo);
8051
8052VKAPI_ATTR void VKAPI_CALL vkCmdBeginRendering(
8053 VkCommandBuffer commandBuffer,
8054 const VkRenderingInfo* pRenderingInfo);
8055
8056VKAPI_ATTR void VKAPI_CALL vkCmdEndRendering(
8057 VkCommandBuffer commandBuffer);
8058
8059VKAPI_ATTR void VKAPI_CALL vkCmdSetCullMode(
8060 VkCommandBuffer commandBuffer,
8061 VkCullModeFlags cullMode);
8062
8063VKAPI_ATTR void VKAPI_CALL vkCmdSetFrontFace(
8064 VkCommandBuffer commandBuffer,
8065 VkFrontFace frontFace);
8066
8067VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveTopology(
8068 VkCommandBuffer commandBuffer,
8069 VkPrimitiveTopology primitiveTopology);
8070
8071VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWithCount(
8072 VkCommandBuffer commandBuffer,
8073 uint32_t viewportCount,
8074 const VkViewport* pViewports);
8075
8076VKAPI_ATTR void VKAPI_CALL vkCmdSetScissorWithCount(
8077 VkCommandBuffer commandBuffer,
8078 uint32_t scissorCount,
8079 const VkRect2D* pScissors);
8080
8081VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers2(
8082 VkCommandBuffer commandBuffer,
8083 uint32_t firstBinding,
8084 uint32_t bindingCount,
8085 const VkBuffer* pBuffers,
8086 const VkDeviceSize* pOffsets,
8087 const VkDeviceSize* pSizes,
8088 const VkDeviceSize* pStrides);
8089
8090VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthTestEnable(
8091 VkCommandBuffer commandBuffer,
8092 VkBool32 depthTestEnable);
8093
8094VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthWriteEnable(
8095 VkCommandBuffer commandBuffer,
8096 VkBool32 depthWriteEnable);
8097
8098VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthCompareOp(
8099 VkCommandBuffer commandBuffer,
8100 VkCompareOp depthCompareOp);
8101
8102VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBoundsTestEnable(
8103 VkCommandBuffer commandBuffer,
8104 VkBool32 depthBoundsTestEnable);
8105
8106VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilTestEnable(
8107 VkCommandBuffer commandBuffer,
8108 VkBool32 stencilTestEnable);
8109
8110VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilOp(
8111 VkCommandBuffer commandBuffer,
8112 VkStencilFaceFlags faceMask,
8113 VkStencilOp failOp,
8114 VkStencilOp passOp,
8115 VkStencilOp depthFailOp,
8116 VkCompareOp compareOp);
8117
8118VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizerDiscardEnable(
8119 VkCommandBuffer commandBuffer,
8120 VkBool32 rasterizerDiscardEnable);
8121
8122VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBiasEnable(
8123 VkCommandBuffer commandBuffer,
8124 VkBool32 depthBiasEnable);
8125
8126VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveRestartEnable(
8127 VkCommandBuffer commandBuffer,
8128 VkBool32 primitiveRestartEnable);
8129#endif
8130
8131
8132// VK_VERSION_1_4 is a preprocessor guard. Do not pass it to API calls.
8133#define VK_VERSION_1_4 1
8134// Vulkan 1.4 version number
8135#define VK_API_VERSION_1_4 VK_MAKE_API_VERSION(0, 1, 4, 0)// Patch version should always be set to 0
8136
8137#define VK_MAX_GLOBAL_PRIORITY_SIZE 16U
8138
8139typedef enum VkPipelineRobustnessBufferBehavior {
8140 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT = 0,
8141 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED = 1,
8142 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS = 2,
8143 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2 = 3,
8144 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT,
8145 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED,
8146 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS,
8147 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2,
8148 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_MAX_ENUM = 0x7FFFFFFF
8149} VkPipelineRobustnessBufferBehavior;
8150
8151typedef enum VkPipelineRobustnessImageBehavior {
8152 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT = 0,
8153 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED = 1,
8154 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS = 2,
8155 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2 = 3,
8156 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT,
8157 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED,
8158 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS,
8159 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2,
8160 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_MAX_ENUM = 0x7FFFFFFF
8161} VkPipelineRobustnessImageBehavior;
8162
8163typedef enum VkQueueGlobalPriority {
8164 VK_QUEUE_GLOBAL_PRIORITY_LOW = 128,
8165 VK_QUEUE_GLOBAL_PRIORITY_MEDIUM = 256,
8166 VK_QUEUE_GLOBAL_PRIORITY_HIGH = 512,
8167 VK_QUEUE_GLOBAL_PRIORITY_REALTIME = 1024,
8168 VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = VK_QUEUE_GLOBAL_PRIORITY_LOW,
8169 VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = VK_QUEUE_GLOBAL_PRIORITY_MEDIUM,
8170 VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = VK_QUEUE_GLOBAL_PRIORITY_HIGH,
8171 VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = VK_QUEUE_GLOBAL_PRIORITY_REALTIME,
8172 VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR = VK_QUEUE_GLOBAL_PRIORITY_LOW,
8173 VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR = VK_QUEUE_GLOBAL_PRIORITY_MEDIUM,
8174 VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR = VK_QUEUE_GLOBAL_PRIORITY_HIGH,
8175 VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR = VK_QUEUE_GLOBAL_PRIORITY_REALTIME,
8176 VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM = 0x7FFFFFFF
8177} VkQueueGlobalPriority;
8178
8179typedef enum VkLineRasterizationMode {
8180 VK_LINE_RASTERIZATION_MODE_DEFAULT = 0,
8181 VK_LINE_RASTERIZATION_MODE_RECTANGULAR = 1,
8182 VK_LINE_RASTERIZATION_MODE_BRESENHAM = 2,
8183 VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH = 3,
8184 VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = VK_LINE_RASTERIZATION_MODE_DEFAULT,
8185 VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = VK_LINE_RASTERIZATION_MODE_RECTANGULAR,
8186 VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = VK_LINE_RASTERIZATION_MODE_BRESENHAM,
8187 VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH,
8188 VK_LINE_RASTERIZATION_MODE_DEFAULT_KHR = VK_LINE_RASTERIZATION_MODE_DEFAULT,
8189 VK_LINE_RASTERIZATION_MODE_RECTANGULAR_KHR = VK_LINE_RASTERIZATION_MODE_RECTANGULAR,
8190 VK_LINE_RASTERIZATION_MODE_BRESENHAM_KHR = VK_LINE_RASTERIZATION_MODE_BRESENHAM,
8191 VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH,
8192 VK_LINE_RASTERIZATION_MODE_MAX_ENUM = 0x7FFFFFFF
8193} VkLineRasterizationMode;
8194
8195typedef enum VkMemoryUnmapFlagBits {
8196 VK_MEMORY_UNMAP_RESERVE_BIT_EXT = 0x00000001,
8197 VK_MEMORY_UNMAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
8198} VkMemoryUnmapFlagBits;
8199typedef VkFlags VkMemoryUnmapFlags;
8200typedef VkFlags64 VkBufferUsageFlags2;
8201
8202// Flag bits for VkBufferUsageFlagBits2
8203typedef VkFlags64 VkBufferUsageFlagBits2;
8204static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFER_SRC_BIT = 0x00000001ULL;
8205static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFER_DST_BIT = 0x00000002ULL;
8206static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004ULL;
8207static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT = 0x00000008ULL;
8208static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_UNIFORM_BUFFER_BIT = 0x00000010ULL;
8209static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT = 0x00000020ULL;
8210static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_INDEX_BUFFER_BIT = 0x00000040ULL;
8211static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VERTEX_BUFFER_BIT = 0x00000080ULL;
8212static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_INDIRECT_BUFFER_BIT = 0x00000100ULL;
8213static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT = 0x00020000ULL;
8214#ifdef VK_ENABLE_BETA_EXTENSIONS
8215static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX = 0x02000000ULL;
8216#endif
8217static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_DESCRIPTOR_HEAP_BIT_EXT = 0x10000000ULL;
8218static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFER_SRC_BIT_KHR = 0x00000001ULL;
8219static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFER_DST_BIT_KHR = 0x00000002ULL;
8220static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR = 0x00000004ULL;
8221static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR = 0x00000008ULL;
8222static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_UNIFORM_BUFFER_BIT_KHR = 0x00000010ULL;
8223static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR = 0x00000020ULL;
8224static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_INDEX_BUFFER_BIT_KHR = 0x00000040ULL;
8225static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VERTEX_BUFFER_BIT_KHR = 0x00000080ULL;
8226static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR = 0x00000100ULL;
8227static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200ULL;
8228static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR = 0x00000400ULL;
8229static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_RAY_TRACING_BIT_NV = 0x00000400ULL;
8230static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800ULL;
8231static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000ULL;
8232static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR = 0x00002000ULL;
8233static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR = 0x00004000ULL;
8234static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR = 0x00008000ULL;
8235static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR = 0x00010000ULL;
8236static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR = 0x00020000ULL;
8237static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 0x00080000ULL;
8238static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 0x00100000ULL;
8239static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 0x00200000ULL;
8240static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00400000ULL;
8241static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 0x04000000ULL;
8242static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 0x00800000ULL;
8243static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT = 0x01000000ULL;
8244#ifdef VK_ENABLE_BETA_EXTENSIONS
8245static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_COMPRESSED_DATA_DGF1_BIT_AMDX = 0x200000000ULL;
8246#endif
8247static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_DATA_GRAPH_FOREIGN_DESCRIPTOR_BIT_ARM = 0x20000000ULL;
8248static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TILE_MEMORY_BIT_QCOM = 0x08000000ULL;
8249static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_MEMORY_DECOMPRESSION_BIT_EXT = 0x100000000ULL;
8250static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_PREPROCESS_BUFFER_BIT_EXT = 0x80000000ULL;
8251
8252
8253typedef enum VkHostImageCopyFlagBits {
8254 VK_HOST_IMAGE_COPY_MEMCPY_BIT = 0x00000001,
8255 // VK_HOST_IMAGE_COPY_MEMCPY is a legacy alias
8256 VK_HOST_IMAGE_COPY_MEMCPY = VK_HOST_IMAGE_COPY_MEMCPY_BIT,
8257 VK_HOST_IMAGE_COPY_MEMCPY_BIT_EXT = VK_HOST_IMAGE_COPY_MEMCPY_BIT,
8258 // VK_HOST_IMAGE_COPY_MEMCPY_EXT is a legacy alias
8259 VK_HOST_IMAGE_COPY_MEMCPY_EXT = VK_HOST_IMAGE_COPY_MEMCPY_BIT,
8260 VK_HOST_IMAGE_COPY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
8261} VkHostImageCopyFlagBits;
8262typedef VkFlags VkHostImageCopyFlags;
8263typedef VkFlags64 VkPipelineCreateFlags2;
8264
8265// Flag bits for VkPipelineCreateFlagBits2
8266typedef VkFlags64 VkPipelineCreateFlagBits2;
8267static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT = 0x00000001ULL;
8268static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT = 0x00000002ULL;
8269static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DERIVATIVE_BIT = 0x00000004ULL;
8270static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008ULL;
8271static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DISPATCH_BASE_BIT = 0x00000010ULL;
8272static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT = 0x00000100ULL;
8273static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT = 0x00000200ULL;
8274static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT = 0x08000000ULL;
8275static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT = 0x40000000ULL;
8276#ifdef VK_ENABLE_BETA_EXTENSIONS
8277static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_AMDX = 0x100000000ULL;
8278#endif
8279static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DESCRIPTOR_HEAP_BIT_EXT = 0x1000000000ULL;
8280static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_BUILT_IN_PRIMITIVES_BIT_KHR = 0x00001000ULL;
8281static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_ALLOW_SPHERES_AND_LINEAR_SWEPT_SPHERES_BIT_NV = 0x200000000ULL;
8282static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x400000000ULL;
8283static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT_KHR = 0x00000001ULL;
8284static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT_KHR = 0x00000002ULL;
8285static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DERIVATIVE_BIT_KHR = 0x00000004ULL;
8286static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = 0x00000008ULL;
8287static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DISPATCH_BASE_BIT_KHR = 0x00000010ULL;
8288static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DEFER_COMPILE_BIT_NV = 0x00000020ULL;
8289static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_CAPTURE_STATISTICS_BIT_KHR = 0x00000040ULL;
8290static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x00000080ULL;
8291static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR = 0x00000100ULL;
8292static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR = 0x00000200ULL;
8293static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT = 0x00000400ULL;
8294static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 0x00800000ULL;
8295static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_LIBRARY_BIT_KHR = 0x00000800ULL;
8296static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = 0x00001000ULL;
8297static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_AABBS_BIT_KHR = 0x00002000ULL;
8298static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = 0x00004000ULL;
8299static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = 0x00008000ULL;
8300static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = 0x00010000ULL;
8301static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = 0x00020000ULL;
8302static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR = 0x00080000ULL;
8303static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_NV = 0x00040000ULL;
8304static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_ALLOW_MOTION_BIT_NV = 0x00100000ULL;
8305static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00200000ULL;
8306static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00400000ULL;
8307static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 0x01000000ULL;
8308static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x02000000ULL;
8309static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x04000000ULL;
8310static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_EXT = 0x08000000ULL;
8311static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT = 0x40000000ULL;
8312#ifdef VK_ENABLE_BETA_EXTENSIONS
8313static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV = 0x10000000ULL;
8314#endif
8315static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT = 0x20000000ULL;
8316static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DISALLOW_OPACITY_MICROMAP_BIT_ARM = 0x2000000000ULL;
8317static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_INSTRUMENT_SHADERS_BIT_ARM = 0x8000000000ULL;
8318static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR = 0x80000000ULL;
8319static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT = 0x4000000000ULL;
8320static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_PER_LAYER_FRAGMENT_DENSITY_BIT_VALVE = 0x10000000000ULL;
8321static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_64_BIT_INDEXING_BIT_EXT = 0x80000000000ULL;
8322
8323typedef struct VkPhysicalDeviceVulkan14Features {
8324 VkStructureType sType;
8325 void* pNext;
8326 VkBool32 globalPriorityQuery;
8327 VkBool32 shaderSubgroupRotate;
8328 VkBool32 shaderSubgroupRotateClustered;
8329 VkBool32 shaderFloatControls2;
8330 VkBool32 shaderExpectAssume;
8331 VkBool32 rectangularLines;
8332 VkBool32 bresenhamLines;
8333 VkBool32 smoothLines;
8334 VkBool32 stippledRectangularLines;
8335 VkBool32 stippledBresenhamLines;
8336 VkBool32 stippledSmoothLines;
8337 VkBool32 vertexAttributeInstanceRateDivisor;
8338 VkBool32 vertexAttributeInstanceRateZeroDivisor;
8339 VkBool32 indexTypeUint8;
8340 VkBool32 dynamicRenderingLocalRead;
8341 VkBool32 maintenance5;
8342 VkBool32 maintenance6;
8343 VkBool32 pipelineProtectedAccess;
8344 VkBool32 pipelineRobustness;
8345 VkBool32 hostImageCopy;
8346 VkBool32 pushDescriptor;
8347} VkPhysicalDeviceVulkan14Features;
8348
8349typedef struct VkPhysicalDeviceVulkan14Properties {
8350 VkStructureType sType;
8351 void* pNext;
8352 uint32_t lineSubPixelPrecisionBits;
8353 uint32_t maxVertexAttribDivisor;
8354 VkBool32 supportsNonZeroFirstInstance;
8355 uint32_t maxPushDescriptors;
8356 VkBool32 dynamicRenderingLocalReadDepthStencilAttachments;
8357 VkBool32 dynamicRenderingLocalReadMultisampledAttachments;
8358 VkBool32 earlyFragmentMultisampleCoverageAfterSampleCounting;
8359 VkBool32 earlyFragmentSampleMaskTestBeforeSampleCounting;
8360 VkBool32 depthStencilSwizzleOneSupport;
8361 VkBool32 polygonModePointSize;
8362 VkBool32 nonStrictSinglePixelWideLinesUseParallelogram;
8363 VkBool32 nonStrictWideLinesUseParallelogram;
8364 VkBool32 blockTexelViewCompatibleMultipleLayers;
8365 uint32_t maxCombinedImageSamplerDescriptorCount;
8366 VkBool32 fragmentShadingRateClampCombinerInputs;
8367 VkPipelineRobustnessBufferBehavior defaultRobustnessStorageBuffers;
8368 VkPipelineRobustnessBufferBehavior defaultRobustnessUniformBuffers;
8369 VkPipelineRobustnessBufferBehavior defaultRobustnessVertexInputs;
8370 VkPipelineRobustnessImageBehavior defaultRobustnessImages;
8371 uint32_t copySrcLayoutCount;
8372 VkImageLayout* pCopySrcLayouts;
8373 uint32_t copyDstLayoutCount;
8374 VkImageLayout* pCopyDstLayouts;
8375 uint8_t optimalTilingLayoutUUID[VK_UUID_SIZE];
8376 VkBool32 identicalMemoryTypeRequirements;
8377} VkPhysicalDeviceVulkan14Properties;
8378
8379typedef struct VkDeviceQueueGlobalPriorityCreateInfo {
8380 VkStructureType sType;
8381 const void* pNext;
8382 VkQueueGlobalPriority globalPriority;
8383} VkDeviceQueueGlobalPriorityCreateInfo;
8384
8385typedef struct VkPhysicalDeviceGlobalPriorityQueryFeatures {
8386 VkStructureType sType;
8387 void* pNext;
8388 VkBool32 globalPriorityQuery;
8389} VkPhysicalDeviceGlobalPriorityQueryFeatures;
8390
8391typedef struct VkQueueFamilyGlobalPriorityProperties {
8392 VkStructureType sType;
8393 void* pNext;
8394 uint32_t priorityCount;
8395 VkQueueGlobalPriority priorities[VK_MAX_GLOBAL_PRIORITY_SIZE];
8396} VkQueueFamilyGlobalPriorityProperties;
8397
8398typedef struct VkPhysicalDeviceIndexTypeUint8Features {
8399 VkStructureType sType;
8400 void* pNext;
8401 VkBool32 indexTypeUint8;
8402} VkPhysicalDeviceIndexTypeUint8Features;
8403
8404typedef struct VkMemoryMapInfo {
8405 VkStructureType sType;
8406 const void* pNext;
8407 VkMemoryMapFlags flags;
8408 VkDeviceMemory memory;
8409 VkDeviceSize offset;
8410 VkDeviceSize size;
8411} VkMemoryMapInfo;
8412
8413typedef struct VkMemoryUnmapInfo {
8414 VkStructureType sType;
8415 const void* pNext;
8416 VkMemoryUnmapFlags flags;
8417 VkDeviceMemory memory;
8418} VkMemoryUnmapInfo;
8419
8420typedef struct VkPhysicalDeviceMaintenance5Features {
8421 VkStructureType sType;
8422 void* pNext;
8423 VkBool32 maintenance5;
8424} VkPhysicalDeviceMaintenance5Features;
8425
8426typedef struct VkPhysicalDeviceMaintenance5Properties {
8427 VkStructureType sType;
8428 void* pNext;
8429 VkBool32 earlyFragmentMultisampleCoverageAfterSampleCounting;
8430 VkBool32 earlyFragmentSampleMaskTestBeforeSampleCounting;
8431 VkBool32 depthStencilSwizzleOneSupport;
8432 VkBool32 polygonModePointSize;
8433 VkBool32 nonStrictSinglePixelWideLinesUseParallelogram;
8434 VkBool32 nonStrictWideLinesUseParallelogram;
8435} VkPhysicalDeviceMaintenance5Properties;
8436
8437typedef struct VkSubresourceLayout2 {
8438 VkStructureType sType;
8439 void* pNext;
8440 VkSubresourceLayout subresourceLayout;
8441} VkSubresourceLayout2;
8442
8443typedef struct VkImageSubresource2 {
8444 VkStructureType sType;
8445 void* pNext;
8446 VkImageSubresource imageSubresource;
8447} VkImageSubresource2;
8448
8449typedef struct VkDeviceImageSubresourceInfo {
8450 VkStructureType sType;
8451 const void* pNext;
8452 const VkImageCreateInfo* pCreateInfo;
8453 const VkImageSubresource2* pSubresource;
8454} VkDeviceImageSubresourceInfo;
8455
8456typedef struct VkBufferUsageFlags2CreateInfo {
8457 VkStructureType sType;
8458 const void* pNext;
8459 VkBufferUsageFlags2 usage;
8460} VkBufferUsageFlags2CreateInfo;
8461
8462typedef struct VkPhysicalDeviceMaintenance6Features {
8463 VkStructureType sType;
8464 void* pNext;
8465 VkBool32 maintenance6;
8466} VkPhysicalDeviceMaintenance6Features;
8467
8468typedef struct VkPhysicalDeviceMaintenance6Properties {
8469 VkStructureType sType;
8470 void* pNext;
8471 VkBool32 blockTexelViewCompatibleMultipleLayers;
8472 uint32_t maxCombinedImageSamplerDescriptorCount;
8473 VkBool32 fragmentShadingRateClampCombinerInputs;
8474} VkPhysicalDeviceMaintenance6Properties;
8475
8476typedef struct VkBindMemoryStatus {
8477 VkStructureType sType;
8478 const void* pNext;
8479 VkResult* pResult;
8480} VkBindMemoryStatus;
8481
8482typedef struct VkPhysicalDeviceHostImageCopyFeatures {
8483 VkStructureType sType;
8484 void* pNext;
8485 VkBool32 hostImageCopy;
8486} VkPhysicalDeviceHostImageCopyFeatures;
8487
8488typedef struct VkPhysicalDeviceHostImageCopyProperties {
8489 VkStructureType sType;
8490 void* pNext;
8491 uint32_t copySrcLayoutCount;
8492 VkImageLayout* pCopySrcLayouts;
8493 uint32_t copyDstLayoutCount;
8494 VkImageLayout* pCopyDstLayouts;
8495 uint8_t optimalTilingLayoutUUID[VK_UUID_SIZE];
8496 VkBool32 identicalMemoryTypeRequirements;
8497} VkPhysicalDeviceHostImageCopyProperties;
8498
8499typedef struct VkMemoryToImageCopy {
8500 VkStructureType sType;
8501 const void* pNext;
8502 const void* pHostPointer;
8503 uint32_t memoryRowLength;
8504 uint32_t memoryImageHeight;
8505 VkImageSubresourceLayers imageSubresource;
8506 VkOffset3D imageOffset;
8507 VkExtent3D imageExtent;
8508} VkMemoryToImageCopy;
8509
8510typedef struct VkImageToMemoryCopy {
8511 VkStructureType sType;
8512 const void* pNext;
8513 void* pHostPointer;
8514 uint32_t memoryRowLength;
8515 uint32_t memoryImageHeight;
8516 VkImageSubresourceLayers imageSubresource;
8517 VkOffset3D imageOffset;
8518 VkExtent3D imageExtent;
8519} VkImageToMemoryCopy;
8520
8521typedef struct VkCopyMemoryToImageInfo {
8522 VkStructureType sType;
8523 const void* pNext;
8524 VkHostImageCopyFlags flags;
8525 VkImage dstImage;
8526 VkImageLayout dstImageLayout;
8527 uint32_t regionCount;
8528 const VkMemoryToImageCopy* pRegions;
8529} VkCopyMemoryToImageInfo;
8530
8531typedef struct VkCopyImageToMemoryInfo {
8532 VkStructureType sType;
8533 const void* pNext;
8534 VkHostImageCopyFlags flags;
8535 VkImage srcImage;
8536 VkImageLayout srcImageLayout;
8537 uint32_t regionCount;
8538 const VkImageToMemoryCopy* pRegions;
8539} VkCopyImageToMemoryInfo;
8540
8541typedef struct VkCopyImageToImageInfo {
8542 VkStructureType sType;
8543 const void* pNext;
8544 VkHostImageCopyFlags flags;
8545 VkImage srcImage;
8546 VkImageLayout srcImageLayout;
8547 VkImage dstImage;
8548 VkImageLayout dstImageLayout;
8549 uint32_t regionCount;
8550 const VkImageCopy2* pRegions;
8551} VkCopyImageToImageInfo;
8552
8553typedef struct VkHostImageLayoutTransitionInfo {
8554 VkStructureType sType;
8555 const void* pNext;
8556 VkImage image;
8557 VkImageLayout oldLayout;
8558 VkImageLayout newLayout;
8559 VkImageSubresourceRange subresourceRange;
8560} VkHostImageLayoutTransitionInfo;
8561
8562typedef struct VkSubresourceHostMemcpySize {
8563 VkStructureType sType;
8564 void* pNext;
8565 VkDeviceSize size;
8566} VkSubresourceHostMemcpySize;
8567
8568typedef struct VkHostImageCopyDevicePerformanceQuery {
8569 VkStructureType sType;
8570 void* pNext;
8571 VkBool32 optimalDeviceAccess;
8572 VkBool32 identicalMemoryLayout;
8573} VkHostImageCopyDevicePerformanceQuery;
8574
8575typedef struct VkPhysicalDeviceShaderSubgroupRotateFeatures {
8576 VkStructureType sType;
8577 void* pNext;
8578 VkBool32 shaderSubgroupRotate;
8579 VkBool32 shaderSubgroupRotateClustered;
8580} VkPhysicalDeviceShaderSubgroupRotateFeatures;
8581
8582typedef struct VkPhysicalDeviceShaderFloatControls2Features {
8583 VkStructureType sType;
8584 void* pNext;
8585 VkBool32 shaderFloatControls2;
8586} VkPhysicalDeviceShaderFloatControls2Features;
8587
8588typedef struct VkPhysicalDeviceShaderExpectAssumeFeatures {
8589 VkStructureType sType;
8590 void* pNext;
8591 VkBool32 shaderExpectAssume;
8592} VkPhysicalDeviceShaderExpectAssumeFeatures;
8593
8594typedef struct VkPipelineCreateFlags2CreateInfo {
8595 VkStructureType sType;
8596 const void* pNext;
8597 VkPipelineCreateFlags2 flags;
8598} VkPipelineCreateFlags2CreateInfo;
8599
8600typedef struct VkPhysicalDevicePushDescriptorProperties {
8601 VkStructureType sType;
8602 void* pNext;
8603 uint32_t maxPushDescriptors;
8604} VkPhysicalDevicePushDescriptorProperties;
8605
8606typedef struct VkBindDescriptorSetsInfo {
8607 VkStructureType sType;
8608 const void* pNext;
8609 VkShaderStageFlags stageFlags;
8610 VkPipelineLayout layout;
8611 uint32_t firstSet;
8612 uint32_t descriptorSetCount;
8613 const VkDescriptorSet* pDescriptorSets;
8614 uint32_t dynamicOffsetCount;
8615 const uint32_t* pDynamicOffsets;
8616} VkBindDescriptorSetsInfo;
8617
8618typedef struct VkPushConstantsInfo {
8619 VkStructureType sType;
8620 const void* pNext;
8621 VkPipelineLayout layout;
8622 VkShaderStageFlags stageFlags;
8623 uint32_t offset;
8624 uint32_t size;
8625 const void* pValues;
8626} VkPushConstantsInfo;
8627
8628typedef struct VkPushDescriptorSetInfo {
8629 VkStructureType sType;
8630 const void* pNext;
8631 VkShaderStageFlags stageFlags;
8632 VkPipelineLayout layout;
8633 uint32_t set;
8634 uint32_t descriptorWriteCount;
8635 const VkWriteDescriptorSet* pDescriptorWrites;
8636} VkPushDescriptorSetInfo;
8637
8638typedef struct VkPushDescriptorSetWithTemplateInfo {
8639 VkStructureType sType;
8640 const void* pNext;
8641 VkDescriptorUpdateTemplate descriptorUpdateTemplate;
8642 VkPipelineLayout layout;
8643 uint32_t set;
8644 const void* pData;
8645} VkPushDescriptorSetWithTemplateInfo;
8646
8647typedef struct VkPhysicalDevicePipelineProtectedAccessFeatures {
8648 VkStructureType sType;
8649 void* pNext;
8650 VkBool32 pipelineProtectedAccess;
8651} VkPhysicalDevicePipelineProtectedAccessFeatures;
8652
8653typedef struct VkPhysicalDevicePipelineRobustnessFeatures {
8654 VkStructureType sType;
8655 void* pNext;
8656 VkBool32 pipelineRobustness;
8657} VkPhysicalDevicePipelineRobustnessFeatures;
8658
8659typedef struct VkPhysicalDevicePipelineRobustnessProperties {
8660 VkStructureType sType;
8661 void* pNext;
8662 VkPipelineRobustnessBufferBehavior defaultRobustnessStorageBuffers;
8663 VkPipelineRobustnessBufferBehavior defaultRobustnessUniformBuffers;
8664 VkPipelineRobustnessBufferBehavior defaultRobustnessVertexInputs;
8665 VkPipelineRobustnessImageBehavior defaultRobustnessImages;
8666} VkPhysicalDevicePipelineRobustnessProperties;
8667
8668typedef struct VkPipelineRobustnessCreateInfo {
8669 VkStructureType sType;
8670 const void* pNext;
8671 VkPipelineRobustnessBufferBehavior storageBuffers;
8672 VkPipelineRobustnessBufferBehavior uniformBuffers;
8673 VkPipelineRobustnessBufferBehavior vertexInputs;
8674 VkPipelineRobustnessImageBehavior images;
8675} VkPipelineRobustnessCreateInfo;
8676
8677typedef struct VkPhysicalDeviceLineRasterizationFeatures {
8678 VkStructureType sType;
8679 void* pNext;
8680 VkBool32 rectangularLines;
8681 VkBool32 bresenhamLines;
8682 VkBool32 smoothLines;
8683 VkBool32 stippledRectangularLines;
8684 VkBool32 stippledBresenhamLines;
8685 VkBool32 stippledSmoothLines;
8686} VkPhysicalDeviceLineRasterizationFeatures;
8687
8688typedef struct VkPhysicalDeviceLineRasterizationProperties {
8689 VkStructureType sType;
8690 void* pNext;
8691 uint32_t lineSubPixelPrecisionBits;
8692} VkPhysicalDeviceLineRasterizationProperties;
8693
8694typedef struct VkPipelineRasterizationLineStateCreateInfo {
8695 VkStructureType sType;
8696 const void* pNext;
8697 VkLineRasterizationMode lineRasterizationMode;
8698 VkBool32 stippledLineEnable;
8699 uint32_t lineStippleFactor;
8700 uint16_t lineStipplePattern;
8701} VkPipelineRasterizationLineStateCreateInfo;
8702
8703typedef struct VkPhysicalDeviceVertexAttributeDivisorProperties {
8704 VkStructureType sType;
8705 void* pNext;
8706 uint32_t maxVertexAttribDivisor;
8707 VkBool32 supportsNonZeroFirstInstance;
8708} VkPhysicalDeviceVertexAttributeDivisorProperties;
8709
8710typedef struct VkVertexInputBindingDivisorDescription {
8711 uint32_t binding;
8712 uint32_t divisor;
8713} VkVertexInputBindingDivisorDescription;
8714
8715typedef struct VkPipelineVertexInputDivisorStateCreateInfo {
8716 VkStructureType sType;
8717 const void* pNext;
8718 uint32_t vertexBindingDivisorCount;
8719 const VkVertexInputBindingDivisorDescription* pVertexBindingDivisors;
8720} VkPipelineVertexInputDivisorStateCreateInfo;
8721
8722typedef struct VkPhysicalDeviceVertexAttributeDivisorFeatures {
8723 VkStructureType sType;
8724 void* pNext;
8725 VkBool32 vertexAttributeInstanceRateDivisor;
8726 VkBool32 vertexAttributeInstanceRateZeroDivisor;
8727} VkPhysicalDeviceVertexAttributeDivisorFeatures;
8728
8729typedef struct VkRenderingAreaInfo {
8730 VkStructureType sType;
8731 const void* pNext;
8732 uint32_t viewMask;
8733 uint32_t colorAttachmentCount;
8734 const VkFormat* pColorAttachmentFormats;
8735 VkFormat depthAttachmentFormat;
8736 VkFormat stencilAttachmentFormat;
8737} VkRenderingAreaInfo;
8738
8739typedef struct VkPhysicalDeviceDynamicRenderingLocalReadFeatures {
8740 VkStructureType sType;
8741 void* pNext;
8742 VkBool32 dynamicRenderingLocalRead;
8743} VkPhysicalDeviceDynamicRenderingLocalReadFeatures;
8744
8745typedef struct VkRenderingAttachmentLocationInfo {
8746 VkStructureType sType;
8747 const void* pNext;
8748 uint32_t colorAttachmentCount;
8749 const uint32_t* pColorAttachmentLocations;
8750} VkRenderingAttachmentLocationInfo;
8751
8752typedef struct VkRenderingInputAttachmentIndexInfo {
8753 VkStructureType sType;
8754 const void* pNext;
8755 uint32_t colorAttachmentCount;
8756 const uint32_t* pColorAttachmentInputIndices;
8757 const uint32_t* pDepthInputAttachmentIndex;
8758 const uint32_t* pStencilInputAttachmentIndex;
8759} VkRenderingInputAttachmentIndexInfo;
8760
8761typedef VkResult (VKAPI_PTR *PFN_vkMapMemory2)(VkDevice device, const VkMemoryMapInfo* pMemoryMapInfo, void** ppData);
8762typedef VkResult (VKAPI_PTR *PFN_vkUnmapMemory2)(VkDevice device, const VkMemoryUnmapInfo* pMemoryUnmapInfo);
8763typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSubresourceLayout)(VkDevice device, const VkDeviceImageSubresourceInfo* pInfo, VkSubresourceLayout2* pLayout);
8764typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout2)(VkDevice device, VkImage image, const VkImageSubresource2* pSubresource, VkSubresourceLayout2* pLayout);
8765typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToImage)(VkDevice device, const VkCopyMemoryToImageInfo* pCopyMemoryToImageInfo);
8766typedef VkResult (VKAPI_PTR *PFN_vkCopyImageToMemory)(VkDevice device, const VkCopyImageToMemoryInfo* pCopyImageToMemoryInfo);
8767typedef VkResult (VKAPI_PTR *PFN_vkCopyImageToImage)(VkDevice device, const VkCopyImageToImageInfo* pCopyImageToImageInfo);
8768typedef VkResult (VKAPI_PTR *PFN_vkTransitionImageLayout)(VkDevice device, uint32_t transitionCount, const VkHostImageLayoutTransitionInfo* pTransitions);
8769typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSet)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites);
8770typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplate)(VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData);
8771typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorSets2)(VkCommandBuffer commandBuffer, const VkBindDescriptorSetsInfo* pBindDescriptorSetsInfo);
8772typedef void (VKAPI_PTR *PFN_vkCmdPushConstants2)(VkCommandBuffer commandBuffer, const VkPushConstantsInfo* pPushConstantsInfo);
8773typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSet2)(VkCommandBuffer commandBuffer, const VkPushDescriptorSetInfo* pPushDescriptorSetInfo);
8774typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplate2)(VkCommandBuffer commandBuffer, const VkPushDescriptorSetWithTemplateInfo* pPushDescriptorSetWithTemplateInfo);
8775typedef void (VKAPI_PTR *PFN_vkCmdSetLineStipple)(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern);
8776typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer2)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkDeviceSize size, VkIndexType indexType);
8777typedef void (VKAPI_PTR *PFN_vkGetRenderingAreaGranularity)(VkDevice device, const VkRenderingAreaInfo* pRenderingAreaInfo, VkExtent2D* pGranularity);
8778typedef void (VKAPI_PTR *PFN_vkCmdSetRenderingAttachmentLocations)(VkCommandBuffer commandBuffer, const VkRenderingAttachmentLocationInfo* pLocationInfo);
8779typedef void (VKAPI_PTR *PFN_vkCmdSetRenderingInputAttachmentIndices)(VkCommandBuffer commandBuffer, const VkRenderingInputAttachmentIndexInfo* pInputAttachmentIndexInfo);
8780
8781#ifndef VK_NO_PROTOTYPES
8782VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory2(
8783 VkDevice device,
8784 const VkMemoryMapInfo* pMemoryMapInfo,
8785 void** ppData);
8786
8787VKAPI_ATTR VkResult VKAPI_CALL vkUnmapMemory2(
8788 VkDevice device,
8789 const VkMemoryUnmapInfo* pMemoryUnmapInfo);
8790
8791VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSubresourceLayout(
8792 VkDevice device,
8793 const VkDeviceImageSubresourceInfo* pInfo,
8794 VkSubresourceLayout2* pLayout);
8795
8796VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout2(
8797 VkDevice device,
8798 VkImage image,
8799 const VkImageSubresource2* pSubresource,
8800 VkSubresourceLayout2* pLayout);
8801
8802VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToImage(
8803 VkDevice device,
8804 const VkCopyMemoryToImageInfo* pCopyMemoryToImageInfo);
8805
8806VKAPI_ATTR VkResult VKAPI_CALL vkCopyImageToMemory(
8807 VkDevice device,
8808 const VkCopyImageToMemoryInfo* pCopyImageToMemoryInfo);
8809
8810VKAPI_ATTR VkResult VKAPI_CALL vkCopyImageToImage(
8811 VkDevice device,
8812 const VkCopyImageToImageInfo* pCopyImageToImageInfo);
8813
8814VKAPI_ATTR VkResult VKAPI_CALL vkTransitionImageLayout(
8815 VkDevice device,
8816 uint32_t transitionCount,
8817 const VkHostImageLayoutTransitionInfo* pTransitions);
8818
8819VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSet(
8820 VkCommandBuffer commandBuffer,
8821 VkPipelineBindPoint pipelineBindPoint,
8822 VkPipelineLayout layout,
8823 uint32_t set,
8824 uint32_t descriptorWriteCount,
8825 const VkWriteDescriptorSet* pDescriptorWrites);
8826
8827VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplate(
8828 VkCommandBuffer commandBuffer,
8829 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
8830 VkPipelineLayout layout,
8831 uint32_t set,
8832 const void* pData);
8833
8834VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets2(
8835 VkCommandBuffer commandBuffer,
8836 const VkBindDescriptorSetsInfo* pBindDescriptorSetsInfo);
8837
8838VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants2(
8839 VkCommandBuffer commandBuffer,
8840 const VkPushConstantsInfo* pPushConstantsInfo);
8841
8842VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSet2(
8843 VkCommandBuffer commandBuffer,
8844 const VkPushDescriptorSetInfo* pPushDescriptorSetInfo);
8845
8846VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplate2(
8847 VkCommandBuffer commandBuffer,
8848 const VkPushDescriptorSetWithTemplateInfo* pPushDescriptorSetWithTemplateInfo);
8849
8850VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStipple(
8851 VkCommandBuffer commandBuffer,
8852 uint32_t lineStippleFactor,
8853 uint16_t lineStipplePattern);
8854
8855VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer2(
8856 VkCommandBuffer commandBuffer,
8857 VkBuffer buffer,
8858 VkDeviceSize offset,
8859 VkDeviceSize size,
8860 VkIndexType indexType);
8861
8862VKAPI_ATTR void VKAPI_CALL vkGetRenderingAreaGranularity(
8863 VkDevice device,
8864 const VkRenderingAreaInfo* pRenderingAreaInfo,
8865 VkExtent2D* pGranularity);
8866
8867VKAPI_ATTR void VKAPI_CALL vkCmdSetRenderingAttachmentLocations(
8868 VkCommandBuffer commandBuffer,
8869 const VkRenderingAttachmentLocationInfo* pLocationInfo);
8870
8871VKAPI_ATTR void VKAPI_CALL vkCmdSetRenderingInputAttachmentIndices(
8872 VkCommandBuffer commandBuffer,
8873 const VkRenderingInputAttachmentIndexInfo* pInputAttachmentIndexInfo);
8874#endif
8875
8876
8877// VK_KHR_surface is a preprocessor guard. Do not pass it to API calls.
8878#define VK_KHR_surface 1
8879VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR)
8880#define VK_KHR_SURFACE_SPEC_VERSION 25
8881#define VK_KHR_SURFACE_EXTENSION_NAME "VK_KHR_surface"
8882
8883typedef enum VkPresentModeKHR {
8884 VK_PRESENT_MODE_IMMEDIATE_KHR = 0,
8885 VK_PRESENT_MODE_MAILBOX_KHR = 1,
8886 VK_PRESENT_MODE_FIFO_KHR = 2,
8887 VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3,
8888 VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000,
8889 VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001,
8890 VK_PRESENT_MODE_FIFO_LATEST_READY_KHR = 1000361000,
8891 VK_PRESENT_MODE_FIFO_LATEST_READY_EXT = VK_PRESENT_MODE_FIFO_LATEST_READY_KHR,
8892 VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
8893} VkPresentModeKHR;
8894
8895typedef enum VkColorSpaceKHR {
8896 VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0,
8897 VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001,
8898 VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002,
8899 VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT = 1000104003,
8900 VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004,
8901 VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005,
8902 VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006,
8903 VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007,
8904 VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008,
8905 // VK_COLOR_SPACE_DOLBYVISION_EXT is legacy, but no reason was given in the API XML
8906 VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009,
8907 VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010,
8908 VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011,
8909 VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012,
8910 VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013,
8911 VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014,
8912 VK_COLOR_SPACE_DISPLAY_NATIVE_AMD = 1000213000,
8913 // VK_COLORSPACE_SRGB_NONLINEAR_KHR is a legacy alias
8914 VK_COLORSPACE_SRGB_NONLINEAR_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
8915 // VK_COLOR_SPACE_DCI_P3_LINEAR_EXT is a legacy alias
8916 VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT,
8917 VK_COLOR_SPACE_MAX_ENUM_KHR = 0x7FFFFFFF
8918} VkColorSpaceKHR;
8919
8920typedef enum VkSurfaceTransformFlagBitsKHR {
8921 VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001,
8922 VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002,
8923 VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004,
8924 VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008,
8925 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010,
8926 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020,
8927 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040,
8928 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080,
8929 VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
8930 VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8931} VkSurfaceTransformFlagBitsKHR;
8932typedef VkFlags VkSurfaceTransformFlagsKHR;
8933
8934typedef enum VkCompositeAlphaFlagBitsKHR {
8935 VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
8936 VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
8937 VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
8938 VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
8939 VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8940} VkCompositeAlphaFlagBitsKHR;
8941typedef VkFlags VkCompositeAlphaFlagsKHR;
8942typedef struct VkSurfaceCapabilitiesKHR {
8943 uint32_t minImageCount;
8944 uint32_t maxImageCount;
8945 VkExtent2D currentExtent;
8946 VkExtent2D minImageExtent;
8947 VkExtent2D maxImageExtent;
8948 uint32_t maxImageArrayLayers;
8949 VkSurfaceTransformFlagsKHR supportedTransforms;
8950 VkSurfaceTransformFlagBitsKHR currentTransform;
8951 VkCompositeAlphaFlagsKHR supportedCompositeAlpha;
8952 VkImageUsageFlags supportedUsageFlags;
8953} VkSurfaceCapabilitiesKHR;
8954
8955typedef struct VkSurfaceFormatKHR {
8956 VkFormat format;
8957 VkColorSpaceKHR colorSpace;
8958} VkSurfaceFormatKHR;
8959
8960typedef void (VKAPI_PTR *PFN_vkDestroySurfaceKHR)(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator);
8961typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported);
8962typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
8963typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats);
8964typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes);
8965
8966#ifndef VK_NO_PROTOTYPES
8967#ifndef VK_ONLY_EXPORTED_PROTOTYPES
8968VKAPI_ATTR void VKAPI_CALL vkDestroySurfaceKHR(
8969 VkInstance instance,
8970 VkSurfaceKHR surface,
8971 const VkAllocationCallbacks* pAllocator);
8972#endif
8973
8974#ifndef VK_ONLY_EXPORTED_PROTOTYPES
8975VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceSupportKHR(
8976 VkPhysicalDevice physicalDevice,
8977 uint32_t queueFamilyIndex,
8978 VkSurfaceKHR surface,
8979 VkBool32* pSupported);
8980#endif
8981
8982#ifndef VK_ONLY_EXPORTED_PROTOTYPES
8983VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
8984 VkPhysicalDevice physicalDevice,
8985 VkSurfaceKHR surface,
8986 VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
8987#endif
8988
8989#ifndef VK_ONLY_EXPORTED_PROTOTYPES
8990VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormatsKHR(
8991 VkPhysicalDevice physicalDevice,
8992 VkSurfaceKHR surface,
8993 uint32_t* pSurfaceFormatCount,
8994 VkSurfaceFormatKHR* pSurfaceFormats);
8995#endif
8996
8997#ifndef VK_ONLY_EXPORTED_PROTOTYPES
8998VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModesKHR(
8999 VkPhysicalDevice physicalDevice,
9000 VkSurfaceKHR surface,
9001 uint32_t* pPresentModeCount,
9002 VkPresentModeKHR* pPresentModes);
9003#endif
9004#endif
9005
9006
9007// VK_KHR_swapchain is a preprocessor guard. Do not pass it to API calls.
9008#define VK_KHR_swapchain 1
9009VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR)
9010#define VK_KHR_SWAPCHAIN_SPEC_VERSION 70
9011#define VK_KHR_SWAPCHAIN_EXTENSION_NAME "VK_KHR_swapchain"
9012
9013typedef enum VkSwapchainCreateFlagBitsKHR {
9014 VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001,
9015 VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002,
9016 VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 0x00000004,
9017 VK_SWAPCHAIN_CREATE_PRESENT_TIMING_BIT_EXT = 0x00000200,
9018 VK_SWAPCHAIN_CREATE_PRESENT_ID_2_BIT_KHR = 0x00000040,
9019 VK_SWAPCHAIN_CREATE_PRESENT_WAIT_2_BIT_KHR = 0x00000080,
9020 VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_KHR = 0x00000008,
9021 VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT = VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_KHR,
9022 VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9023} VkSwapchainCreateFlagBitsKHR;
9024typedef VkFlags VkSwapchainCreateFlagsKHR;
9025
9026typedef enum VkDeviceGroupPresentModeFlagBitsKHR {
9027 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0x00000001,
9028 VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0x00000002,
9029 VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0x00000004,
9030 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0x00000008,
9031 VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9032} VkDeviceGroupPresentModeFlagBitsKHR;
9033typedef VkFlags VkDeviceGroupPresentModeFlagsKHR;
9034typedef struct VkSwapchainCreateInfoKHR {
9035 VkStructureType sType;
9036 const void* pNext;
9037 VkSwapchainCreateFlagsKHR flags;
9038 VkSurfaceKHR surface;
9039 uint32_t minImageCount;
9040 VkFormat imageFormat;
9041 VkColorSpaceKHR imageColorSpace;
9042 VkExtent2D imageExtent;
9043 uint32_t imageArrayLayers;
9044 VkImageUsageFlags imageUsage;
9045 VkSharingMode imageSharingMode;
9046 uint32_t queueFamilyIndexCount;
9047 const uint32_t* pQueueFamilyIndices;
9048 VkSurfaceTransformFlagBitsKHR preTransform;
9049 VkCompositeAlphaFlagBitsKHR compositeAlpha;
9050 VkPresentModeKHR presentMode;
9051 VkBool32 clipped;
9052 VkSwapchainKHR oldSwapchain;
9053} VkSwapchainCreateInfoKHR;
9054
9055typedef struct VkPresentInfoKHR {
9056 VkStructureType sType;
9057 const void* pNext;
9058 uint32_t waitSemaphoreCount;
9059 const VkSemaphore* pWaitSemaphores;
9060 uint32_t swapchainCount;
9061 const VkSwapchainKHR* pSwapchains;
9062 const uint32_t* pImageIndices;
9063 VkResult* pResults;
9064} VkPresentInfoKHR;
9065
9066typedef struct VkImageSwapchainCreateInfoKHR {
9067 VkStructureType sType;
9068 const void* pNext;
9069 VkSwapchainKHR swapchain;
9070} VkImageSwapchainCreateInfoKHR;
9071
9072typedef struct VkBindImageMemorySwapchainInfoKHR {
9073 VkStructureType sType;
9074 const void* pNext;
9075 VkSwapchainKHR swapchain;
9076 uint32_t imageIndex;
9077} VkBindImageMemorySwapchainInfoKHR;
9078
9079typedef struct VkAcquireNextImageInfoKHR {
9080 VkStructureType sType;
9081 const void* pNext;
9082 VkSwapchainKHR swapchain;
9083 uint64_t timeout;
9084 VkSemaphore semaphore;
9085 VkFence fence;
9086 uint32_t deviceMask;
9087} VkAcquireNextImageInfoKHR;
9088
9089typedef struct VkDeviceGroupPresentCapabilitiesKHR {
9090 VkStructureType sType;
9091 void* pNext;
9092 uint32_t presentMask[VK_MAX_DEVICE_GROUP_SIZE];
9093 VkDeviceGroupPresentModeFlagsKHR modes;
9094} VkDeviceGroupPresentCapabilitiesKHR;
9095
9096typedef struct VkDeviceGroupPresentInfoKHR {
9097 VkStructureType sType;
9098 const void* pNext;
9099 uint32_t swapchainCount;
9100 const uint32_t* pDeviceMasks;
9101 VkDeviceGroupPresentModeFlagBitsKHR mode;
9102} VkDeviceGroupPresentInfoKHR;
9103
9104typedef struct VkDeviceGroupSwapchainCreateInfoKHR {
9105 VkStructureType sType;
9106 const void* pNext;
9107 VkDeviceGroupPresentModeFlagsKHR modes;
9108} VkDeviceGroupSwapchainCreateInfoKHR;
9109
9110typedef VkResult (VKAPI_PTR *PFN_vkCreateSwapchainKHR)(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain);
9111typedef void (VKAPI_PTR *PFN_vkDestroySwapchainKHR)(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator);
9112typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainImagesKHR)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages);
9113typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImageKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex);
9114typedef VkResult (VKAPI_PTR *PFN_vkQueuePresentKHR)(VkQueue queue, const VkPresentInfoKHR* pPresentInfo);
9115typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupPresentCapabilitiesKHR)(VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities);
9116typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupSurfacePresentModesKHR)(VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes);
9117typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDevicePresentRectanglesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects);
9118typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImage2KHR)(VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex);
9119
9120#ifndef VK_NO_PROTOTYPES
9121#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9122VKAPI_ATTR VkResult VKAPI_CALL vkCreateSwapchainKHR(
9123 VkDevice device,
9124 const VkSwapchainCreateInfoKHR* pCreateInfo,
9125 const VkAllocationCallbacks* pAllocator,
9126 VkSwapchainKHR* pSwapchain);
9127#endif
9128
9129#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9130VKAPI_ATTR void VKAPI_CALL vkDestroySwapchainKHR(
9131 VkDevice device,
9132 VkSwapchainKHR swapchain,
9133 const VkAllocationCallbacks* pAllocator);
9134#endif
9135
9136#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9137VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainImagesKHR(
9138 VkDevice device,
9139 VkSwapchainKHR swapchain,
9140 uint32_t* pSwapchainImageCount,
9141 VkImage* pSwapchainImages);
9142#endif
9143
9144#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9145VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImageKHR(
9146 VkDevice device,
9147 VkSwapchainKHR swapchain,
9148 uint64_t timeout,
9149 VkSemaphore semaphore,
9150 VkFence fence,
9151 uint32_t* pImageIndex);
9152#endif
9153
9154#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9155VKAPI_ATTR VkResult VKAPI_CALL vkQueuePresentKHR(
9156 VkQueue queue,
9157 const VkPresentInfoKHR* pPresentInfo);
9158#endif
9159
9160#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9161VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupPresentCapabilitiesKHR(
9162 VkDevice device,
9163 VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities);
9164#endif
9165
9166#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9167VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModesKHR(
9168 VkDevice device,
9169 VkSurfaceKHR surface,
9170 VkDeviceGroupPresentModeFlagsKHR* pModes);
9171#endif
9172
9173#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9174VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDevicePresentRectanglesKHR(
9175 VkPhysicalDevice physicalDevice,
9176 VkSurfaceKHR surface,
9177 uint32_t* pRectCount,
9178 VkRect2D* pRects);
9179#endif
9180
9181#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9182VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImage2KHR(
9183 VkDevice device,
9184 const VkAcquireNextImageInfoKHR* pAcquireInfo,
9185 uint32_t* pImageIndex);
9186#endif
9187#endif
9188
9189
9190// VK_KHR_display is a preprocessor guard. Do not pass it to API calls.
9191#define VK_KHR_display 1
9192VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR)
9193VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR)
9194#define VK_KHR_DISPLAY_SPEC_VERSION 23
9195#define VK_KHR_DISPLAY_EXTENSION_NAME "VK_KHR_display"
9196typedef VkFlags VkDisplayModeCreateFlagsKHR;
9197
9198typedef enum VkDisplayPlaneAlphaFlagBitsKHR {
9199 VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
9200 VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002,
9201 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
9202 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
9203 VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9204} VkDisplayPlaneAlphaFlagBitsKHR;
9205typedef VkFlags VkDisplayPlaneAlphaFlagsKHR;
9206typedef VkFlags VkDisplaySurfaceCreateFlagsKHR;
9207typedef struct VkDisplayModeParametersKHR {
9208 VkExtent2D visibleRegion;
9209 uint32_t refreshRate;
9210} VkDisplayModeParametersKHR;
9211
9212typedef struct VkDisplayModeCreateInfoKHR {
9213 VkStructureType sType;
9214 const void* pNext;
9215 VkDisplayModeCreateFlagsKHR flags;
9216 VkDisplayModeParametersKHR parameters;
9217} VkDisplayModeCreateInfoKHR;
9218
9219typedef struct VkDisplayModePropertiesKHR {
9220 VkDisplayModeKHR displayMode;
9221 VkDisplayModeParametersKHR parameters;
9222} VkDisplayModePropertiesKHR;
9223
9224typedef struct VkDisplayPlaneCapabilitiesKHR {
9225 VkDisplayPlaneAlphaFlagsKHR supportedAlpha;
9226 VkOffset2D minSrcPosition;
9227 VkOffset2D maxSrcPosition;
9228 VkExtent2D minSrcExtent;
9229 VkExtent2D maxSrcExtent;
9230 VkOffset2D minDstPosition;
9231 VkOffset2D maxDstPosition;
9232 VkExtent2D minDstExtent;
9233 VkExtent2D maxDstExtent;
9234} VkDisplayPlaneCapabilitiesKHR;
9235
9236typedef struct VkDisplayPlanePropertiesKHR {
9237 VkDisplayKHR currentDisplay;
9238 uint32_t currentStackIndex;
9239} VkDisplayPlanePropertiesKHR;
9240
9241typedef struct VkDisplayPropertiesKHR {
9242 VkDisplayKHR display;
9243 const char* displayName;
9244 VkExtent2D physicalDimensions;
9245 VkExtent2D physicalResolution;
9246 VkSurfaceTransformFlagsKHR supportedTransforms;
9247 VkBool32 planeReorderPossible;
9248 VkBool32 persistentContent;
9249} VkDisplayPropertiesKHR;
9250
9251typedef struct VkDisplaySurfaceCreateInfoKHR {
9252 VkStructureType sType;
9253 const void* pNext;
9254 VkDisplaySurfaceCreateFlagsKHR flags;
9255 VkDisplayModeKHR displayMode;
9256 uint32_t planeIndex;
9257 uint32_t planeStackIndex;
9258 VkSurfaceTransformFlagBitsKHR transform;
9259 float globalAlpha;
9260 VkDisplayPlaneAlphaFlagBitsKHR alphaMode;
9261 VkExtent2D imageExtent;
9262} VkDisplaySurfaceCreateInfoKHR;
9263
9264typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties);
9265typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties);
9266typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays);
9267typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties);
9268typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode);
9269typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities);
9270typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayPlaneSurfaceKHR)(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
9271
9272#ifndef VK_NO_PROTOTYPES
9273#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9274VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPropertiesKHR(
9275 VkPhysicalDevice physicalDevice,
9276 uint32_t* pPropertyCount,
9277 VkDisplayPropertiesKHR* pProperties);
9278#endif
9279
9280#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9281VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
9282 VkPhysicalDevice physicalDevice,
9283 uint32_t* pPropertyCount,
9284 VkDisplayPlanePropertiesKHR* pProperties);
9285#endif
9286
9287#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9288VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneSupportedDisplaysKHR(
9289 VkPhysicalDevice physicalDevice,
9290 uint32_t planeIndex,
9291 uint32_t* pDisplayCount,
9292 VkDisplayKHR* pDisplays);
9293#endif
9294
9295#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9296VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModePropertiesKHR(
9297 VkPhysicalDevice physicalDevice,
9298 VkDisplayKHR display,
9299 uint32_t* pPropertyCount,
9300 VkDisplayModePropertiesKHR* pProperties);
9301#endif
9302
9303#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9304VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayModeKHR(
9305 VkPhysicalDevice physicalDevice,
9306 VkDisplayKHR display,
9307 const VkDisplayModeCreateInfoKHR* pCreateInfo,
9308 const VkAllocationCallbacks* pAllocator,
9309 VkDisplayModeKHR* pMode);
9310#endif
9311
9312#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9313VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilitiesKHR(
9314 VkPhysicalDevice physicalDevice,
9315 VkDisplayModeKHR mode,
9316 uint32_t planeIndex,
9317 VkDisplayPlaneCapabilitiesKHR* pCapabilities);
9318#endif
9319
9320#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9321VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayPlaneSurfaceKHR(
9322 VkInstance instance,
9323 const VkDisplaySurfaceCreateInfoKHR* pCreateInfo,
9324 const VkAllocationCallbacks* pAllocator,
9325 VkSurfaceKHR* pSurface);
9326#endif
9327#endif
9328
9329
9330// VK_KHR_display_swapchain is a preprocessor guard. Do not pass it to API calls.
9331#define VK_KHR_display_swapchain 1
9332#define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 10
9333#define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain"
9334typedef struct VkDisplayPresentInfoKHR {
9335 VkStructureType sType;
9336 const void* pNext;
9337 VkRect2D srcRect;
9338 VkRect2D dstRect;
9339 VkBool32 persistent;
9340} VkDisplayPresentInfoKHR;
9341
9342typedef VkResult (VKAPI_PTR *PFN_vkCreateSharedSwapchainsKHR)(VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains);
9343
9344#ifndef VK_NO_PROTOTYPES
9345#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9346VKAPI_ATTR VkResult VKAPI_CALL vkCreateSharedSwapchainsKHR(
9347 VkDevice device,
9348 uint32_t swapchainCount,
9349 const VkSwapchainCreateInfoKHR* pCreateInfos,
9350 const VkAllocationCallbacks* pAllocator,
9351 VkSwapchainKHR* pSwapchains);
9352#endif
9353#endif
9354
9355
9356// VK_KHR_sampler_mirror_clamp_to_edge is a preprocessor guard. Do not pass it to API calls.
9357#define VK_KHR_sampler_mirror_clamp_to_edge 1
9358#define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 3
9359#define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME "VK_KHR_sampler_mirror_clamp_to_edge"
9360
9361
9362// VK_KHR_video_queue is a preprocessor guard. Do not pass it to API calls.
9363#define VK_KHR_video_queue 1
9364VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionKHR)
9365VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionParametersKHR)
9366#define VK_KHR_VIDEO_QUEUE_SPEC_VERSION 8
9367#define VK_KHR_VIDEO_QUEUE_EXTENSION_NAME "VK_KHR_video_queue"
9368
9369typedef enum VkQueryResultStatusKHR {
9370 VK_QUERY_RESULT_STATUS_ERROR_KHR = -1,
9371 VK_QUERY_RESULT_STATUS_NOT_READY_KHR = 0,
9372 VK_QUERY_RESULT_STATUS_COMPLETE_KHR = 1,
9373 VK_QUERY_RESULT_STATUS_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_KHR = -1000299000,
9374 VK_QUERY_RESULT_STATUS_MAX_ENUM_KHR = 0x7FFFFFFF
9375} VkQueryResultStatusKHR;
9376
9377typedef enum VkVideoCodecOperationFlagBitsKHR {
9378 VK_VIDEO_CODEC_OPERATION_NONE_KHR = 0,
9379 VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR = 0x00010000,
9380 VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR = 0x00020000,
9381 VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR = 0x00000001,
9382 VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR = 0x00000002,
9383 VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR = 0x00000004,
9384 VK_VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHR = 0x00040000,
9385 VK_VIDEO_CODEC_OPERATION_DECODE_VP9_BIT_KHR = 0x00000008,
9386 VK_VIDEO_CODEC_OPERATION_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9387} VkVideoCodecOperationFlagBitsKHR;
9388typedef VkFlags VkVideoCodecOperationFlagsKHR;
9389
9390typedef enum VkVideoChromaSubsamplingFlagBitsKHR {
9391 VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR = 0,
9392 VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR = 0x00000001,
9393 VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR = 0x00000002,
9394 VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR = 0x00000004,
9395 VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR = 0x00000008,
9396 VK_VIDEO_CHROMA_SUBSAMPLING_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9397} VkVideoChromaSubsamplingFlagBitsKHR;
9398typedef VkFlags VkVideoChromaSubsamplingFlagsKHR;
9399
9400typedef enum VkVideoComponentBitDepthFlagBitsKHR {
9401 VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR = 0,
9402 VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR = 0x00000001,
9403 VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR = 0x00000004,
9404 VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR = 0x00000010,
9405 VK_VIDEO_COMPONENT_BIT_DEPTH_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9406} VkVideoComponentBitDepthFlagBitsKHR;
9407typedef VkFlags VkVideoComponentBitDepthFlagsKHR;
9408
9409typedef enum VkVideoCapabilityFlagBitsKHR {
9410 VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR = 0x00000001,
9411 VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR = 0x00000002,
9412 VK_VIDEO_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9413} VkVideoCapabilityFlagBitsKHR;
9414typedef VkFlags VkVideoCapabilityFlagsKHR;
9415
9416typedef enum VkVideoSessionCreateFlagBitsKHR {
9417 VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR = 0x00000001,
9418 VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_PARAMETER_OPTIMIZATIONS_BIT_KHR = 0x00000002,
9419 VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR = 0x00000004,
9420 VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x00000008,
9421 VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_EMPHASIS_MAP_BIT_KHR = 0x00000010,
9422 VK_VIDEO_SESSION_CREATE_INLINE_SESSION_PARAMETERS_BIT_KHR = 0x00000020,
9423 VK_VIDEO_SESSION_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9424} VkVideoSessionCreateFlagBitsKHR;
9425typedef VkFlags VkVideoSessionCreateFlagsKHR;
9426
9427typedef enum VkVideoSessionParametersCreateFlagBitsKHR {
9428 VK_VIDEO_SESSION_PARAMETERS_CREATE_QUANTIZATION_MAP_COMPATIBLE_BIT_KHR = 0x00000001,
9429 VK_VIDEO_SESSION_PARAMETERS_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9430} VkVideoSessionParametersCreateFlagBitsKHR;
9431typedef VkFlags VkVideoSessionParametersCreateFlagsKHR;
9432typedef VkFlags VkVideoBeginCodingFlagsKHR;
9433typedef VkFlags VkVideoEndCodingFlagsKHR;
9434
9435typedef enum VkVideoCodingControlFlagBitsKHR {
9436 VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR = 0x00000001,
9437 VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR = 0x00000002,
9438 VK_VIDEO_CODING_CONTROL_ENCODE_QUALITY_LEVEL_BIT_KHR = 0x00000004,
9439 VK_VIDEO_CODING_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9440} VkVideoCodingControlFlagBitsKHR;
9441typedef VkFlags VkVideoCodingControlFlagsKHR;
9442typedef struct VkQueueFamilyQueryResultStatusPropertiesKHR {
9443 VkStructureType sType;
9444 void* pNext;
9445 VkBool32 queryResultStatusSupport;
9446} VkQueueFamilyQueryResultStatusPropertiesKHR;
9447
9448typedef struct VkQueueFamilyVideoPropertiesKHR {
9449 VkStructureType sType;
9450 void* pNext;
9451 VkVideoCodecOperationFlagsKHR videoCodecOperations;
9452} VkQueueFamilyVideoPropertiesKHR;
9453
9454typedef struct VkVideoProfileInfoKHR {
9455 VkStructureType sType;
9456 const void* pNext;
9457 VkVideoCodecOperationFlagBitsKHR videoCodecOperation;
9458 VkVideoChromaSubsamplingFlagsKHR chromaSubsampling;
9459 VkVideoComponentBitDepthFlagsKHR lumaBitDepth;
9460 VkVideoComponentBitDepthFlagsKHR chromaBitDepth;
9461} VkVideoProfileInfoKHR;
9462
9463typedef struct VkVideoProfileListInfoKHR {
9464 VkStructureType sType;
9465 const void* pNext;
9466 uint32_t profileCount;
9467 const VkVideoProfileInfoKHR* pProfiles;
9468} VkVideoProfileListInfoKHR;
9469
9470typedef struct VkVideoCapabilitiesKHR {
9471 VkStructureType sType;
9472 void* pNext;
9473 VkVideoCapabilityFlagsKHR flags;
9474 VkDeviceSize minBitstreamBufferOffsetAlignment;
9475 VkDeviceSize minBitstreamBufferSizeAlignment;
9476 VkExtent2D pictureAccessGranularity;
9477 VkExtent2D minCodedExtent;
9478 VkExtent2D maxCodedExtent;
9479 uint32_t maxDpbSlots;
9480 uint32_t maxActiveReferencePictures;
9481 VkExtensionProperties stdHeaderVersion;
9482} VkVideoCapabilitiesKHR;
9483
9484typedef struct VkPhysicalDeviceVideoFormatInfoKHR {
9485 VkStructureType sType;
9486 const void* pNext;
9487 VkImageUsageFlags imageUsage;
9488} VkPhysicalDeviceVideoFormatInfoKHR;
9489
9490typedef struct VkVideoFormatPropertiesKHR {
9491 VkStructureType sType;
9492 void* pNext;
9493 VkFormat format;
9494 VkComponentMapping componentMapping;
9495 VkImageCreateFlags imageCreateFlags;
9496 VkImageType imageType;
9497 VkImageTiling imageTiling;
9498 VkImageUsageFlags imageUsageFlags;
9499} VkVideoFormatPropertiesKHR;
9500
9501typedef struct VkVideoPictureResourceInfoKHR {
9502 VkStructureType sType;
9503 const void* pNext;
9504 VkOffset2D codedOffset;
9505 VkExtent2D codedExtent;
9506 uint32_t baseArrayLayer;
9507 VkImageView imageViewBinding;
9508} VkVideoPictureResourceInfoKHR;
9509
9510typedef struct VkVideoReferenceSlotInfoKHR {
9511 VkStructureType sType;
9512 const void* pNext;
9513 int32_t slotIndex;
9514 const VkVideoPictureResourceInfoKHR* pPictureResource;
9515} VkVideoReferenceSlotInfoKHR;
9516
9517typedef struct VkVideoSessionMemoryRequirementsKHR {
9518 VkStructureType sType;
9519 void* pNext;
9520 uint32_t memoryBindIndex;
9521 VkMemoryRequirements memoryRequirements;
9522} VkVideoSessionMemoryRequirementsKHR;
9523
9524typedef struct VkBindVideoSessionMemoryInfoKHR {
9525 VkStructureType sType;
9526 const void* pNext;
9527 uint32_t memoryBindIndex;
9528 VkDeviceMemory memory;
9529 VkDeviceSize memoryOffset;
9530 VkDeviceSize memorySize;
9531} VkBindVideoSessionMemoryInfoKHR;
9532
9533typedef struct VkVideoSessionCreateInfoKHR {
9534 VkStructureType sType;
9535 const void* pNext;
9536 uint32_t queueFamilyIndex;
9537 VkVideoSessionCreateFlagsKHR flags;
9538 const VkVideoProfileInfoKHR* pVideoProfile;
9539 VkFormat pictureFormat;
9540 VkExtent2D maxCodedExtent;
9541 VkFormat referencePictureFormat;
9542 uint32_t maxDpbSlots;
9543 uint32_t maxActiveReferencePictures;
9544 const VkExtensionProperties* pStdHeaderVersion;
9545} VkVideoSessionCreateInfoKHR;
9546
9547typedef struct VkVideoSessionParametersCreateInfoKHR {
9548 VkStructureType sType;
9549 const void* pNext;
9550 VkVideoSessionParametersCreateFlagsKHR flags;
9551 VkVideoSessionParametersKHR videoSessionParametersTemplate;
9552 VkVideoSessionKHR videoSession;
9553} VkVideoSessionParametersCreateInfoKHR;
9554
9555typedef struct VkVideoSessionParametersUpdateInfoKHR {
9556 VkStructureType sType;
9557 const void* pNext;
9558 uint32_t updateSequenceCount;
9559} VkVideoSessionParametersUpdateInfoKHR;
9560
9561typedef struct VkVideoBeginCodingInfoKHR {
9562 VkStructureType sType;
9563 const void* pNext;
9564 VkVideoBeginCodingFlagsKHR flags;
9565 VkVideoSessionKHR videoSession;
9566 VkVideoSessionParametersKHR videoSessionParameters;
9567 uint32_t referenceSlotCount;
9568 const VkVideoReferenceSlotInfoKHR* pReferenceSlots;
9569} VkVideoBeginCodingInfoKHR;
9570
9571typedef struct VkVideoEndCodingInfoKHR {
9572 VkStructureType sType;
9573 const void* pNext;
9574 VkVideoEndCodingFlagsKHR flags;
9575} VkVideoEndCodingInfoKHR;
9576
9577typedef struct VkVideoCodingControlInfoKHR {
9578 VkStructureType sType;
9579 const void* pNext;
9580 VkVideoCodingControlFlagsKHR flags;
9581} VkVideoCodingControlInfoKHR;
9582
9583typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR)(VkPhysicalDevice physicalDevice, const VkVideoProfileInfoKHR* pVideoProfile, VkVideoCapabilitiesKHR* pCapabilities);
9584typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo, uint32_t* pVideoFormatPropertyCount, VkVideoFormatPropertiesKHR* pVideoFormatProperties);
9585typedef VkResult (VKAPI_PTR *PFN_vkCreateVideoSessionKHR)(VkDevice device, const VkVideoSessionCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionKHR* pVideoSession);
9586typedef void (VKAPI_PTR *PFN_vkDestroyVideoSessionKHR)(VkDevice device, VkVideoSessionKHR videoSession, const VkAllocationCallbacks* pAllocator);
9587typedef VkResult (VKAPI_PTR *PFN_vkGetVideoSessionMemoryRequirementsKHR)(VkDevice device, VkVideoSessionKHR videoSession, uint32_t* pMemoryRequirementsCount, VkVideoSessionMemoryRequirementsKHR* pMemoryRequirements);
9588typedef VkResult (VKAPI_PTR *PFN_vkBindVideoSessionMemoryKHR)(VkDevice device, VkVideoSessionKHR videoSession, uint32_t bindSessionMemoryInfoCount, const VkBindVideoSessionMemoryInfoKHR* pBindSessionMemoryInfos);
9589typedef VkResult (VKAPI_PTR *PFN_vkCreateVideoSessionParametersKHR)(VkDevice device, const VkVideoSessionParametersCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionParametersKHR* pVideoSessionParameters);
9590typedef VkResult (VKAPI_PTR *PFN_vkUpdateVideoSessionParametersKHR)(VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo);
9591typedef void (VKAPI_PTR *PFN_vkDestroyVideoSessionParametersKHR)(VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkAllocationCallbacks* pAllocator);
9592typedef void (VKAPI_PTR *PFN_vkCmdBeginVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoBeginCodingInfoKHR* pBeginInfo);
9593typedef void (VKAPI_PTR *PFN_vkCmdEndVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoEndCodingInfoKHR* pEndCodingInfo);
9594typedef void (VKAPI_PTR *PFN_vkCmdControlVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoCodingControlInfoKHR* pCodingControlInfo);
9595
9596#ifndef VK_NO_PROTOTYPES
9597#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9598VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoCapabilitiesKHR(
9599 VkPhysicalDevice physicalDevice,
9600 const VkVideoProfileInfoKHR* pVideoProfile,
9601 VkVideoCapabilitiesKHR* pCapabilities);
9602#endif
9603
9604#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9605VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoFormatPropertiesKHR(
9606 VkPhysicalDevice physicalDevice,
9607 const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo,
9608 uint32_t* pVideoFormatPropertyCount,
9609 VkVideoFormatPropertiesKHR* pVideoFormatProperties);
9610#endif
9611
9612#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9613VKAPI_ATTR VkResult VKAPI_CALL vkCreateVideoSessionKHR(
9614 VkDevice device,
9615 const VkVideoSessionCreateInfoKHR* pCreateInfo,
9616 const VkAllocationCallbacks* pAllocator,
9617 VkVideoSessionKHR* pVideoSession);
9618#endif
9619
9620#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9621VKAPI_ATTR void VKAPI_CALL vkDestroyVideoSessionKHR(
9622 VkDevice device,
9623 VkVideoSessionKHR videoSession,
9624 const VkAllocationCallbacks* pAllocator);
9625#endif
9626
9627#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9628VKAPI_ATTR VkResult VKAPI_CALL vkGetVideoSessionMemoryRequirementsKHR(
9629 VkDevice device,
9630 VkVideoSessionKHR videoSession,
9631 uint32_t* pMemoryRequirementsCount,
9632 VkVideoSessionMemoryRequirementsKHR* pMemoryRequirements);
9633#endif
9634
9635#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9636VKAPI_ATTR VkResult VKAPI_CALL vkBindVideoSessionMemoryKHR(
9637 VkDevice device,
9638 VkVideoSessionKHR videoSession,
9639 uint32_t bindSessionMemoryInfoCount,
9640 const VkBindVideoSessionMemoryInfoKHR* pBindSessionMemoryInfos);
9641#endif
9642
9643#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9644VKAPI_ATTR VkResult VKAPI_CALL vkCreateVideoSessionParametersKHR(
9645 VkDevice device,
9646 const VkVideoSessionParametersCreateInfoKHR* pCreateInfo,
9647 const VkAllocationCallbacks* pAllocator,
9648 VkVideoSessionParametersKHR* pVideoSessionParameters);
9649#endif
9650
9651#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9652VKAPI_ATTR VkResult VKAPI_CALL vkUpdateVideoSessionParametersKHR(
9653 VkDevice device,
9654 VkVideoSessionParametersKHR videoSessionParameters,
9655 const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo);
9656#endif
9657
9658#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9659VKAPI_ATTR void VKAPI_CALL vkDestroyVideoSessionParametersKHR(
9660 VkDevice device,
9661 VkVideoSessionParametersKHR videoSessionParameters,
9662 const VkAllocationCallbacks* pAllocator);
9663#endif
9664
9665#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9666VKAPI_ATTR void VKAPI_CALL vkCmdBeginVideoCodingKHR(
9667 VkCommandBuffer commandBuffer,
9668 const VkVideoBeginCodingInfoKHR* pBeginInfo);
9669#endif
9670
9671#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9672VKAPI_ATTR void VKAPI_CALL vkCmdEndVideoCodingKHR(
9673 VkCommandBuffer commandBuffer,
9674 const VkVideoEndCodingInfoKHR* pEndCodingInfo);
9675#endif
9676
9677#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9678VKAPI_ATTR void VKAPI_CALL vkCmdControlVideoCodingKHR(
9679 VkCommandBuffer commandBuffer,
9680 const VkVideoCodingControlInfoKHR* pCodingControlInfo);
9681#endif
9682#endif
9683
9684
9685// VK_KHR_video_decode_queue is a preprocessor guard. Do not pass it to API calls.
9686#define VK_KHR_video_decode_queue 1
9687#define VK_KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION 8
9688#define VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME "VK_KHR_video_decode_queue"
9689
9690typedef enum VkVideoDecodeCapabilityFlagBitsKHR {
9691 VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR = 0x00000001,
9692 VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR = 0x00000002,
9693 VK_VIDEO_DECODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9694} VkVideoDecodeCapabilityFlagBitsKHR;
9695typedef VkFlags VkVideoDecodeCapabilityFlagsKHR;
9696
9697typedef enum VkVideoDecodeUsageFlagBitsKHR {
9698 VK_VIDEO_DECODE_USAGE_DEFAULT_KHR = 0,
9699 VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR = 0x00000001,
9700 VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR = 0x00000002,
9701 VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR = 0x00000004,
9702 VK_VIDEO_DECODE_USAGE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9703} VkVideoDecodeUsageFlagBitsKHR;
9704typedef VkFlags VkVideoDecodeUsageFlagsKHR;
9705typedef VkFlags VkVideoDecodeFlagsKHR;
9706typedef struct VkVideoDecodeCapabilitiesKHR {
9707 VkStructureType sType;
9708 void* pNext;
9709 VkVideoDecodeCapabilityFlagsKHR flags;
9710} VkVideoDecodeCapabilitiesKHR;
9711
9712typedef struct VkVideoDecodeUsageInfoKHR {
9713 VkStructureType sType;
9714 const void* pNext;
9715 VkVideoDecodeUsageFlagsKHR videoUsageHints;
9716} VkVideoDecodeUsageInfoKHR;
9717
9718typedef struct VkVideoDecodeInfoKHR {
9719 VkStructureType sType;
9720 const void* pNext;
9721 VkVideoDecodeFlagsKHR flags;
9722 VkBuffer srcBuffer;
9723 VkDeviceSize srcBufferOffset;
9724 VkDeviceSize srcBufferRange;
9725 VkVideoPictureResourceInfoKHR dstPictureResource;
9726 const VkVideoReferenceSlotInfoKHR* pSetupReferenceSlot;
9727 uint32_t referenceSlotCount;
9728 const VkVideoReferenceSlotInfoKHR* pReferenceSlots;
9729} VkVideoDecodeInfoKHR;
9730
9731typedef void (VKAPI_PTR *PFN_vkCmdDecodeVideoKHR)(VkCommandBuffer commandBuffer, const VkVideoDecodeInfoKHR* pDecodeInfo);
9732
9733#ifndef VK_NO_PROTOTYPES
9734#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9735VKAPI_ATTR void VKAPI_CALL vkCmdDecodeVideoKHR(
9736 VkCommandBuffer commandBuffer,
9737 const VkVideoDecodeInfoKHR* pDecodeInfo);
9738#endif
9739#endif
9740
9741
9742// VK_KHR_video_encode_h264 is a preprocessor guard. Do not pass it to API calls.
9743#define VK_KHR_video_encode_h264 1
9744#include "vk_video/vulkan_video_codec_h264std.h"
9745#include "vk_video/vulkan_video_codec_h264std_encode.h"
9746#define VK_KHR_VIDEO_ENCODE_H264_SPEC_VERSION 14
9747#define VK_KHR_VIDEO_ENCODE_H264_EXTENSION_NAME "VK_KHR_video_encode_h264"
9748
9749typedef enum VkVideoEncodeH264CapabilityFlagBitsKHR {
9750 VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
9751 VK_VIDEO_ENCODE_H264_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR = 0x00000002,
9752 VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_KHR = 0x00000004,
9753 VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_KHR = 0x00000008,
9754 VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR = 0x00000010,
9755 VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR = 0x00000020,
9756 VK_VIDEO_ENCODE_H264_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR = 0x00000040,
9757 VK_VIDEO_ENCODE_H264_CAPABILITY_PER_SLICE_CONSTANT_QP_BIT_KHR = 0x00000080,
9758 VK_VIDEO_ENCODE_H264_CAPABILITY_GENERATE_PREFIX_NALU_BIT_KHR = 0x00000100,
9759 VK_VIDEO_ENCODE_H264_CAPABILITY_B_PICTURE_INTRA_REFRESH_BIT_KHR = 0x00000400,
9760 VK_VIDEO_ENCODE_H264_CAPABILITY_MB_QP_DIFF_WRAPAROUND_BIT_KHR = 0x00000200,
9761 VK_VIDEO_ENCODE_H264_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9762} VkVideoEncodeH264CapabilityFlagBitsKHR;
9763typedef VkFlags VkVideoEncodeH264CapabilityFlagsKHR;
9764
9765typedef enum VkVideoEncodeH264StdFlagBitsKHR {
9766 VK_VIDEO_ENCODE_H264_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR = 0x00000001,
9767 VK_VIDEO_ENCODE_H264_STD_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_FLAG_SET_BIT_KHR = 0x00000002,
9768 VK_VIDEO_ENCODE_H264_STD_SCALING_MATRIX_PRESENT_FLAG_SET_BIT_KHR = 0x00000004,
9769 VK_VIDEO_ENCODE_H264_STD_CHROMA_QP_INDEX_OFFSET_BIT_KHR = 0x00000008,
9770 VK_VIDEO_ENCODE_H264_STD_SECOND_CHROMA_QP_INDEX_OFFSET_BIT_KHR = 0x00000010,
9771 VK_VIDEO_ENCODE_H264_STD_PIC_INIT_QP_MINUS26_BIT_KHR = 0x00000020,
9772 VK_VIDEO_ENCODE_H264_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR = 0x00000040,
9773 VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_EXPLICIT_BIT_KHR = 0x00000080,
9774 VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_IMPLICIT_BIT_KHR = 0x00000100,
9775 VK_VIDEO_ENCODE_H264_STD_TRANSFORM_8X8_MODE_FLAG_SET_BIT_KHR = 0x00000200,
9776 VK_VIDEO_ENCODE_H264_STD_DIRECT_SPATIAL_MV_PRED_FLAG_UNSET_BIT_KHR = 0x00000400,
9777 VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_UNSET_BIT_KHR = 0x00000800,
9778 VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_SET_BIT_KHR = 0x00001000,
9779 VK_VIDEO_ENCODE_H264_STD_DIRECT_8X8_INFERENCE_FLAG_UNSET_BIT_KHR = 0x00002000,
9780 VK_VIDEO_ENCODE_H264_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR = 0x00004000,
9781 VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_DISABLED_BIT_KHR = 0x00008000,
9782 VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_ENABLED_BIT_KHR = 0x00010000,
9783 VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_PARTIAL_BIT_KHR = 0x00020000,
9784 VK_VIDEO_ENCODE_H264_STD_SLICE_QP_DELTA_BIT_KHR = 0x00080000,
9785 VK_VIDEO_ENCODE_H264_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHR = 0x00100000,
9786 VK_VIDEO_ENCODE_H264_STD_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9787} VkVideoEncodeH264StdFlagBitsKHR;
9788typedef VkFlags VkVideoEncodeH264StdFlagsKHR;
9789
9790typedef enum VkVideoEncodeH264RateControlFlagBitsKHR {
9791 VK_VIDEO_ENCODE_H264_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
9792 VK_VIDEO_ENCODE_H264_RATE_CONTROL_REGULAR_GOP_BIT_KHR = 0x00000002,
9793 VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR = 0x00000004,
9794 VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR = 0x00000008,
9795 VK_VIDEO_ENCODE_H264_RATE_CONTROL_TEMPORAL_LAYER_PATTERN_DYADIC_BIT_KHR = 0x00000010,
9796 VK_VIDEO_ENCODE_H264_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9797} VkVideoEncodeH264RateControlFlagBitsKHR;
9798typedef VkFlags VkVideoEncodeH264RateControlFlagsKHR;
9799typedef struct VkVideoEncodeH264CapabilitiesKHR {
9800 VkStructureType sType;
9801 void* pNext;
9802 VkVideoEncodeH264CapabilityFlagsKHR flags;
9803 StdVideoH264LevelIdc maxLevelIdc;
9804 uint32_t maxSliceCount;
9805 uint32_t maxPPictureL0ReferenceCount;
9806 uint32_t maxBPictureL0ReferenceCount;
9807 uint32_t maxL1ReferenceCount;
9808 uint32_t maxTemporalLayerCount;
9809 VkBool32 expectDyadicTemporalLayerPattern;
9810 int32_t minQp;
9811 int32_t maxQp;
9812 VkBool32 prefersGopRemainingFrames;
9813 VkBool32 requiresGopRemainingFrames;
9814 VkVideoEncodeH264StdFlagsKHR stdSyntaxFlags;
9815} VkVideoEncodeH264CapabilitiesKHR;
9816
9817typedef struct VkVideoEncodeH264QpKHR {
9818 int32_t qpI;
9819 int32_t qpP;
9820 int32_t qpB;
9821} VkVideoEncodeH264QpKHR;
9822
9823typedef struct VkVideoEncodeH264QualityLevelPropertiesKHR {
9824 VkStructureType sType;
9825 void* pNext;
9826 VkVideoEncodeH264RateControlFlagsKHR preferredRateControlFlags;
9827 uint32_t preferredGopFrameCount;
9828 uint32_t preferredIdrPeriod;
9829 uint32_t preferredConsecutiveBFrameCount;
9830 uint32_t preferredTemporalLayerCount;
9831 VkVideoEncodeH264QpKHR preferredConstantQp;
9832 uint32_t preferredMaxL0ReferenceCount;
9833 uint32_t preferredMaxL1ReferenceCount;
9834 VkBool32 preferredStdEntropyCodingModeFlag;
9835} VkVideoEncodeH264QualityLevelPropertiesKHR;
9836
9837typedef struct VkVideoEncodeH264SessionCreateInfoKHR {
9838 VkStructureType sType;
9839 const void* pNext;
9840 VkBool32 useMaxLevelIdc;
9841 StdVideoH264LevelIdc maxLevelIdc;
9842} VkVideoEncodeH264SessionCreateInfoKHR;
9843
9844typedef struct VkVideoEncodeH264SessionParametersAddInfoKHR {
9845 VkStructureType sType;
9846 const void* pNext;
9847 uint32_t stdSPSCount;
9848 const StdVideoH264SequenceParameterSet* pStdSPSs;
9849 uint32_t stdPPSCount;
9850 const StdVideoH264PictureParameterSet* pStdPPSs;
9851} VkVideoEncodeH264SessionParametersAddInfoKHR;
9852
9853typedef struct VkVideoEncodeH264SessionParametersCreateInfoKHR {
9854 VkStructureType sType;
9855 const void* pNext;
9856 uint32_t maxStdSPSCount;
9857 uint32_t maxStdPPSCount;
9858 const VkVideoEncodeH264SessionParametersAddInfoKHR* pParametersAddInfo;
9859} VkVideoEncodeH264SessionParametersCreateInfoKHR;
9860
9861typedef struct VkVideoEncodeH264SessionParametersGetInfoKHR {
9862 VkStructureType sType;
9863 const void* pNext;
9864 VkBool32 writeStdSPS;
9865 VkBool32 writeStdPPS;
9866 uint32_t stdSPSId;
9867 uint32_t stdPPSId;
9868} VkVideoEncodeH264SessionParametersGetInfoKHR;
9869
9870typedef struct VkVideoEncodeH264SessionParametersFeedbackInfoKHR {
9871 VkStructureType sType;
9872 void* pNext;
9873 VkBool32 hasStdSPSOverrides;
9874 VkBool32 hasStdPPSOverrides;
9875} VkVideoEncodeH264SessionParametersFeedbackInfoKHR;
9876
9877typedef struct VkVideoEncodeH264NaluSliceInfoKHR {
9878 VkStructureType sType;
9879 const void* pNext;
9880 int32_t constantQp;
9881 const StdVideoEncodeH264SliceHeader* pStdSliceHeader;
9882} VkVideoEncodeH264NaluSliceInfoKHR;
9883
9884typedef struct VkVideoEncodeH264PictureInfoKHR {
9885 VkStructureType sType;
9886 const void* pNext;
9887 uint32_t naluSliceEntryCount;
9888 const VkVideoEncodeH264NaluSliceInfoKHR* pNaluSliceEntries;
9889 const StdVideoEncodeH264PictureInfo* pStdPictureInfo;
9890 VkBool32 generatePrefixNalu;
9891} VkVideoEncodeH264PictureInfoKHR;
9892
9893typedef struct VkVideoEncodeH264DpbSlotInfoKHR {
9894 VkStructureType sType;
9895 const void* pNext;
9896 const StdVideoEncodeH264ReferenceInfo* pStdReferenceInfo;
9897} VkVideoEncodeH264DpbSlotInfoKHR;
9898
9899typedef struct VkVideoEncodeH264ProfileInfoKHR {
9900 VkStructureType sType;
9901 const void* pNext;
9902 StdVideoH264ProfileIdc stdProfileIdc;
9903} VkVideoEncodeH264ProfileInfoKHR;
9904
9905typedef struct VkVideoEncodeH264RateControlInfoKHR {
9906 VkStructureType sType;
9907 const void* pNext;
9908 VkVideoEncodeH264RateControlFlagsKHR flags;
9909 uint32_t gopFrameCount;
9910 uint32_t idrPeriod;
9911 uint32_t consecutiveBFrameCount;
9912 uint32_t temporalLayerCount;
9913} VkVideoEncodeH264RateControlInfoKHR;
9914
9915typedef struct VkVideoEncodeH264FrameSizeKHR {
9916 uint32_t frameISize;
9917 uint32_t framePSize;
9918 uint32_t frameBSize;
9919} VkVideoEncodeH264FrameSizeKHR;
9920
9921typedef struct VkVideoEncodeH264RateControlLayerInfoKHR {
9922 VkStructureType sType;
9923 const void* pNext;
9924 VkBool32 useMinQp;
9925 VkVideoEncodeH264QpKHR minQp;
9926 VkBool32 useMaxQp;
9927 VkVideoEncodeH264QpKHR maxQp;
9928 VkBool32 useMaxFrameSize;
9929 VkVideoEncodeH264FrameSizeKHR maxFrameSize;
9930} VkVideoEncodeH264RateControlLayerInfoKHR;
9931
9932typedef struct VkVideoEncodeH264GopRemainingFrameInfoKHR {
9933 VkStructureType sType;
9934 const void* pNext;
9935 VkBool32 useGopRemainingFrames;
9936 uint32_t gopRemainingI;
9937 uint32_t gopRemainingP;
9938 uint32_t gopRemainingB;
9939} VkVideoEncodeH264GopRemainingFrameInfoKHR;
9940
9941
9942
9943// VK_KHR_video_encode_h265 is a preprocessor guard. Do not pass it to API calls.
9944#define VK_KHR_video_encode_h265 1
9945#include "vk_video/vulkan_video_codec_h265std.h"
9946#include "vk_video/vulkan_video_codec_h265std_encode.h"
9947#define VK_KHR_VIDEO_ENCODE_H265_SPEC_VERSION 14
9948#define VK_KHR_VIDEO_ENCODE_H265_EXTENSION_NAME "VK_KHR_video_encode_h265"
9949
9950typedef enum VkVideoEncodeH265CapabilityFlagBitsKHR {
9951 VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
9952 VK_VIDEO_ENCODE_H265_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR = 0x00000002,
9953 VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_KHR = 0x00000004,
9954 VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_SEGMENT_TYPE_BIT_KHR = 0x00000008,
9955 VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR = 0x00000010,
9956 VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR = 0x00000020,
9957 VK_VIDEO_ENCODE_H265_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR = 0x00000040,
9958 VK_VIDEO_ENCODE_H265_CAPABILITY_PER_SLICE_SEGMENT_CONSTANT_QP_BIT_KHR = 0x00000080,
9959 VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILES_PER_SLICE_SEGMENT_BIT_KHR = 0x00000100,
9960 VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_SEGMENTS_PER_TILE_BIT_KHR = 0x00000200,
9961 VK_VIDEO_ENCODE_H265_CAPABILITY_B_PICTURE_INTRA_REFRESH_BIT_KHR = 0x00000800,
9962 VK_VIDEO_ENCODE_H265_CAPABILITY_CU_QP_DIFF_WRAPAROUND_BIT_KHR = 0x00000400,
9963 VK_VIDEO_ENCODE_H265_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9964} VkVideoEncodeH265CapabilityFlagBitsKHR;
9965typedef VkFlags VkVideoEncodeH265CapabilityFlagsKHR;
9966
9967typedef enum VkVideoEncodeH265StdFlagBitsKHR {
9968 VK_VIDEO_ENCODE_H265_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR = 0x00000001,
9969 VK_VIDEO_ENCODE_H265_STD_SAMPLE_ADAPTIVE_OFFSET_ENABLED_FLAG_SET_BIT_KHR = 0x00000002,
9970 VK_VIDEO_ENCODE_H265_STD_SCALING_LIST_DATA_PRESENT_FLAG_SET_BIT_KHR = 0x00000004,
9971 VK_VIDEO_ENCODE_H265_STD_PCM_ENABLED_FLAG_SET_BIT_KHR = 0x00000008,
9972 VK_VIDEO_ENCODE_H265_STD_SPS_TEMPORAL_MVP_ENABLED_FLAG_SET_BIT_KHR = 0x00000010,
9973 VK_VIDEO_ENCODE_H265_STD_INIT_QP_MINUS26_BIT_KHR = 0x00000020,
9974 VK_VIDEO_ENCODE_H265_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR = 0x00000040,
9975 VK_VIDEO_ENCODE_H265_STD_WEIGHTED_BIPRED_FLAG_SET_BIT_KHR = 0x00000080,
9976 VK_VIDEO_ENCODE_H265_STD_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_KHR = 0x00000100,
9977 VK_VIDEO_ENCODE_H265_STD_SIGN_DATA_HIDING_ENABLED_FLAG_SET_BIT_KHR = 0x00000200,
9978 VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_SET_BIT_KHR = 0x00000400,
9979 VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_UNSET_BIT_KHR = 0x00000800,
9980 VK_VIDEO_ENCODE_H265_STD_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_FLAG_SET_BIT_KHR = 0x00001000,
9981 VK_VIDEO_ENCODE_H265_STD_TRANSQUANT_BYPASS_ENABLED_FLAG_SET_BIT_KHR = 0x00002000,
9982 VK_VIDEO_ENCODE_H265_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR = 0x00004000,
9983 VK_VIDEO_ENCODE_H265_STD_ENTROPY_CODING_SYNC_ENABLED_FLAG_SET_BIT_KHR = 0x00008000,
9984 VK_VIDEO_ENCODE_H265_STD_DEBLOCKING_FILTER_OVERRIDE_ENABLED_FLAG_SET_BIT_KHR = 0x00010000,
9985 VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENTS_ENABLED_FLAG_SET_BIT_KHR = 0x00020000,
9986 VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENT_FLAG_SET_BIT_KHR = 0x00040000,
9987 VK_VIDEO_ENCODE_H265_STD_SLICE_QP_DELTA_BIT_KHR = 0x00080000,
9988 VK_VIDEO_ENCODE_H265_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHR = 0x00100000,
9989 VK_VIDEO_ENCODE_H265_STD_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9990} VkVideoEncodeH265StdFlagBitsKHR;
9991typedef VkFlags VkVideoEncodeH265StdFlagsKHR;
9992
9993typedef enum VkVideoEncodeH265CtbSizeFlagBitsKHR {
9994 VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_KHR = 0x00000001,
9995 VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_KHR = 0x00000002,
9996 VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_KHR = 0x00000004,
9997 VK_VIDEO_ENCODE_H265_CTB_SIZE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9998} VkVideoEncodeH265CtbSizeFlagBitsKHR;
9999typedef VkFlags VkVideoEncodeH265CtbSizeFlagsKHR;
10000
10001typedef enum VkVideoEncodeH265TransformBlockSizeFlagBitsKHR {
10002 VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_KHR = 0x00000001,
10003 VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_KHR = 0x00000002,
10004 VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_KHR = 0x00000004,
10005 VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_KHR = 0x00000008,
10006 VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
10007} VkVideoEncodeH265TransformBlockSizeFlagBitsKHR;
10008typedef VkFlags VkVideoEncodeH265TransformBlockSizeFlagsKHR;
10009
10010typedef enum VkVideoEncodeH265RateControlFlagBitsKHR {
10011 VK_VIDEO_ENCODE_H265_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
10012 VK_VIDEO_ENCODE_H265_RATE_CONTROL_REGULAR_GOP_BIT_KHR = 0x00000002,
10013 VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR = 0x00000004,
10014 VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR = 0x00000008,
10015 VK_VIDEO_ENCODE_H265_RATE_CONTROL_TEMPORAL_SUB_LAYER_PATTERN_DYADIC_BIT_KHR = 0x00000010,
10016 VK_VIDEO_ENCODE_H265_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
10017} VkVideoEncodeH265RateControlFlagBitsKHR;
10018typedef VkFlags VkVideoEncodeH265RateControlFlagsKHR;
10019typedef struct VkVideoEncodeH265CapabilitiesKHR {
10020 VkStructureType sType;
10021 void* pNext;
10022 VkVideoEncodeH265CapabilityFlagsKHR flags;
10023 StdVideoH265LevelIdc maxLevelIdc;
10024 uint32_t maxSliceSegmentCount;
10025 VkExtent2D maxTiles;
10026 VkVideoEncodeH265CtbSizeFlagsKHR ctbSizes;
10027 VkVideoEncodeH265TransformBlockSizeFlagsKHR transformBlockSizes;
10028 uint32_t maxPPictureL0ReferenceCount;
10029 uint32_t maxBPictureL0ReferenceCount;
10030 uint32_t maxL1ReferenceCount;
10031 uint32_t maxSubLayerCount;
10032 VkBool32 expectDyadicTemporalSubLayerPattern;
10033 int32_t minQp;
10034 int32_t maxQp;
10035 VkBool32 prefersGopRemainingFrames;
10036 VkBool32 requiresGopRemainingFrames;
10037 VkVideoEncodeH265StdFlagsKHR stdSyntaxFlags;
10038} VkVideoEncodeH265CapabilitiesKHR;
10039
10040typedef struct VkVideoEncodeH265SessionCreateInfoKHR {
10041 VkStructureType sType;
10042 const void* pNext;
10043 VkBool32 useMaxLevelIdc;
10044 StdVideoH265LevelIdc maxLevelIdc;
10045} VkVideoEncodeH265SessionCreateInfoKHR;
10046
10047typedef struct VkVideoEncodeH265QpKHR {
10048 int32_t qpI;
10049 int32_t qpP;
10050 int32_t qpB;
10051} VkVideoEncodeH265QpKHR;
10052
10053typedef struct VkVideoEncodeH265QualityLevelPropertiesKHR {
10054 VkStructureType sType;
10055 void* pNext;
10056 VkVideoEncodeH265RateControlFlagsKHR preferredRateControlFlags;
10057 uint32_t preferredGopFrameCount;
10058 uint32_t preferredIdrPeriod;
10059 uint32_t preferredConsecutiveBFrameCount;
10060 uint32_t preferredSubLayerCount;
10061 VkVideoEncodeH265QpKHR preferredConstantQp;
10062 uint32_t preferredMaxL0ReferenceCount;
10063 uint32_t preferredMaxL1ReferenceCount;
10064} VkVideoEncodeH265QualityLevelPropertiesKHR;
10065
10066typedef struct VkVideoEncodeH265SessionParametersAddInfoKHR {
10067 VkStructureType sType;
10068 const void* pNext;
10069 uint32_t stdVPSCount;
10070 const StdVideoH265VideoParameterSet* pStdVPSs;
10071 uint32_t stdSPSCount;
10072 const StdVideoH265SequenceParameterSet* pStdSPSs;
10073 uint32_t stdPPSCount;
10074 const StdVideoH265PictureParameterSet* pStdPPSs;
10075} VkVideoEncodeH265SessionParametersAddInfoKHR;
10076
10077typedef struct VkVideoEncodeH265SessionParametersCreateInfoKHR {
10078 VkStructureType sType;
10079 const void* pNext;
10080 uint32_t maxStdVPSCount;
10081 uint32_t maxStdSPSCount;
10082 uint32_t maxStdPPSCount;
10083 const VkVideoEncodeH265SessionParametersAddInfoKHR* pParametersAddInfo;
10084} VkVideoEncodeH265SessionParametersCreateInfoKHR;
10085
10086typedef struct VkVideoEncodeH265SessionParametersGetInfoKHR {
10087 VkStructureType sType;
10088 const void* pNext;
10089 VkBool32 writeStdVPS;
10090 VkBool32 writeStdSPS;
10091 VkBool32 writeStdPPS;
10092 uint32_t stdVPSId;
10093 uint32_t stdSPSId;
10094 uint32_t stdPPSId;
10095} VkVideoEncodeH265SessionParametersGetInfoKHR;
10096
10097typedef struct VkVideoEncodeH265SessionParametersFeedbackInfoKHR {
10098 VkStructureType sType;
10099 void* pNext;
10100 VkBool32 hasStdVPSOverrides;
10101 VkBool32 hasStdSPSOverrides;
10102 VkBool32 hasStdPPSOverrides;
10103} VkVideoEncodeH265SessionParametersFeedbackInfoKHR;
10104
10105typedef struct VkVideoEncodeH265NaluSliceSegmentInfoKHR {
10106 VkStructureType sType;
10107 const void* pNext;
10108 int32_t constantQp;
10109 const StdVideoEncodeH265SliceSegmentHeader* pStdSliceSegmentHeader;
10110} VkVideoEncodeH265NaluSliceSegmentInfoKHR;
10111
10112typedef struct VkVideoEncodeH265PictureInfoKHR {
10113 VkStructureType sType;
10114 const void* pNext;
10115 uint32_t naluSliceSegmentEntryCount;
10116 const VkVideoEncodeH265NaluSliceSegmentInfoKHR* pNaluSliceSegmentEntries;
10117 const StdVideoEncodeH265PictureInfo* pStdPictureInfo;
10118} VkVideoEncodeH265PictureInfoKHR;
10119
10120typedef struct VkVideoEncodeH265DpbSlotInfoKHR {
10121 VkStructureType sType;
10122 const void* pNext;
10123 const StdVideoEncodeH265ReferenceInfo* pStdReferenceInfo;
10124} VkVideoEncodeH265DpbSlotInfoKHR;
10125
10126typedef struct VkVideoEncodeH265ProfileInfoKHR {
10127 VkStructureType sType;
10128 const void* pNext;
10129 StdVideoH265ProfileIdc stdProfileIdc;
10130} VkVideoEncodeH265ProfileInfoKHR;
10131
10132typedef struct VkVideoEncodeH265RateControlInfoKHR {
10133 VkStructureType sType;
10134 const void* pNext;
10135 VkVideoEncodeH265RateControlFlagsKHR flags;
10136 uint32_t gopFrameCount;
10137 uint32_t idrPeriod;
10138 uint32_t consecutiveBFrameCount;
10139 uint32_t subLayerCount;
10140} VkVideoEncodeH265RateControlInfoKHR;
10141
10142typedef struct VkVideoEncodeH265FrameSizeKHR {
10143 uint32_t frameISize;
10144 uint32_t framePSize;
10145 uint32_t frameBSize;
10146} VkVideoEncodeH265FrameSizeKHR;
10147
10148typedef struct VkVideoEncodeH265RateControlLayerInfoKHR {
10149 VkStructureType sType;
10150 const void* pNext;
10151 VkBool32 useMinQp;
10152 VkVideoEncodeH265QpKHR minQp;
10153 VkBool32 useMaxQp;
10154 VkVideoEncodeH265QpKHR maxQp;
10155 VkBool32 useMaxFrameSize;
10156 VkVideoEncodeH265FrameSizeKHR maxFrameSize;
10157} VkVideoEncodeH265RateControlLayerInfoKHR;
10158
10159typedef struct VkVideoEncodeH265GopRemainingFrameInfoKHR {
10160 VkStructureType sType;
10161 const void* pNext;
10162 VkBool32 useGopRemainingFrames;
10163 uint32_t gopRemainingI;
10164 uint32_t gopRemainingP;
10165 uint32_t gopRemainingB;
10166} VkVideoEncodeH265GopRemainingFrameInfoKHR;
10167
10168
10169
10170// VK_KHR_video_decode_h264 is a preprocessor guard. Do not pass it to API calls.
10171#define VK_KHR_video_decode_h264 1
10172#include "vk_video/vulkan_video_codec_h264std_decode.h"
10173#define VK_KHR_VIDEO_DECODE_H264_SPEC_VERSION 9
10174#define VK_KHR_VIDEO_DECODE_H264_EXTENSION_NAME "VK_KHR_video_decode_h264"
10175
10176typedef enum VkVideoDecodeH264PictureLayoutFlagBitsKHR {
10177 VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR = 0,
10178 VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_KHR = 0x00000001,
10179 VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR = 0x00000002,
10180 VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
10181} VkVideoDecodeH264PictureLayoutFlagBitsKHR;
10182typedef VkFlags VkVideoDecodeH264PictureLayoutFlagsKHR;
10183typedef struct VkVideoDecodeH264ProfileInfoKHR {
10184 VkStructureType sType;
10185 const void* pNext;
10186 StdVideoH264ProfileIdc stdProfileIdc;
10187 VkVideoDecodeH264PictureLayoutFlagBitsKHR pictureLayout;
10188} VkVideoDecodeH264ProfileInfoKHR;
10189
10190typedef struct VkVideoDecodeH264CapabilitiesKHR {
10191 VkStructureType sType;
10192 void* pNext;
10193 StdVideoH264LevelIdc maxLevelIdc;
10194 VkOffset2D fieldOffsetGranularity;
10195} VkVideoDecodeH264CapabilitiesKHR;
10196
10197typedef struct VkVideoDecodeH264SessionParametersAddInfoKHR {
10198 VkStructureType sType;
10199 const void* pNext;
10200 uint32_t stdSPSCount;
10201 const StdVideoH264SequenceParameterSet* pStdSPSs;
10202 uint32_t stdPPSCount;
10203 const StdVideoH264PictureParameterSet* pStdPPSs;
10204} VkVideoDecodeH264SessionParametersAddInfoKHR;
10205
10206typedef struct VkVideoDecodeH264SessionParametersCreateInfoKHR {
10207 VkStructureType sType;
10208 const void* pNext;
10209 uint32_t maxStdSPSCount;
10210 uint32_t maxStdPPSCount;
10211 const VkVideoDecodeH264SessionParametersAddInfoKHR* pParametersAddInfo;
10212} VkVideoDecodeH264SessionParametersCreateInfoKHR;
10213
10214typedef struct VkVideoDecodeH264PictureInfoKHR {
10215 VkStructureType sType;
10216 const void* pNext;
10217 const StdVideoDecodeH264PictureInfo* pStdPictureInfo;
10218 uint32_t sliceCount;
10219 const uint32_t* pSliceOffsets;
10220} VkVideoDecodeH264PictureInfoKHR;
10221
10222typedef struct VkVideoDecodeH264DpbSlotInfoKHR {
10223 VkStructureType sType;
10224 const void* pNext;
10225 const StdVideoDecodeH264ReferenceInfo* pStdReferenceInfo;
10226} VkVideoDecodeH264DpbSlotInfoKHR;
10227
10228
10229
10230// VK_KHR_dynamic_rendering is a preprocessor guard. Do not pass it to API calls.
10231#define VK_KHR_dynamic_rendering 1
10232#define VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION 1
10233#define VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME "VK_KHR_dynamic_rendering"
10234typedef VkRenderingFlags VkRenderingFlagsKHR;
10235
10236typedef VkRenderingFlagBits VkRenderingFlagBitsKHR;
10237
10238typedef VkRenderingInfo VkRenderingInfoKHR;
10239
10240typedef VkRenderingAttachmentInfo VkRenderingAttachmentInfoKHR;
10241
10242typedef VkPipelineRenderingCreateInfo VkPipelineRenderingCreateInfoKHR;
10243
10244typedef VkPhysicalDeviceDynamicRenderingFeatures VkPhysicalDeviceDynamicRenderingFeaturesKHR;
10245
10246typedef VkCommandBufferInheritanceRenderingInfo VkCommandBufferInheritanceRenderingInfoKHR;
10247
10248typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderingKHR)(VkCommandBuffer commandBuffer, const VkRenderingInfo* pRenderingInfo);
10249typedef void (VKAPI_PTR *PFN_vkCmdEndRenderingKHR)(VkCommandBuffer commandBuffer);
10250
10251#ifndef VK_NO_PROTOTYPES
10252#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10253VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderingKHR(
10254 VkCommandBuffer commandBuffer,
10255 const VkRenderingInfo* pRenderingInfo);
10256#endif
10257
10258#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10259VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderingKHR(
10260 VkCommandBuffer commandBuffer);
10261#endif
10262#endif
10263
10264
10265// VK_KHR_multiview is a preprocessor guard. Do not pass it to API calls.
10266#define VK_KHR_multiview 1
10267#define VK_KHR_MULTIVIEW_SPEC_VERSION 1
10268#define VK_KHR_MULTIVIEW_EXTENSION_NAME "VK_KHR_multiview"
10269typedef VkRenderPassMultiviewCreateInfo VkRenderPassMultiviewCreateInfoKHR;
10270
10271typedef VkPhysicalDeviceMultiviewFeatures VkPhysicalDeviceMultiviewFeaturesKHR;
10272
10273typedef VkPhysicalDeviceMultiviewProperties VkPhysicalDeviceMultiviewPropertiesKHR;
10274
10275
10276
10277// VK_KHR_get_physical_device_properties2 is a preprocessor guard. Do not pass it to API calls.
10278#define VK_KHR_get_physical_device_properties2 1
10279#define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 2
10280#define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2"
10281typedef VkPhysicalDeviceFeatures2 VkPhysicalDeviceFeatures2KHR;
10282
10283typedef VkPhysicalDeviceProperties2 VkPhysicalDeviceProperties2KHR;
10284
10285typedef VkFormatProperties2 VkFormatProperties2KHR;
10286
10287typedef VkImageFormatProperties2 VkImageFormatProperties2KHR;
10288
10289typedef VkPhysicalDeviceImageFormatInfo2 VkPhysicalDeviceImageFormatInfo2KHR;
10290
10291typedef VkQueueFamilyProperties2 VkQueueFamilyProperties2KHR;
10292
10293typedef VkPhysicalDeviceMemoryProperties2 VkPhysicalDeviceMemoryProperties2KHR;
10294
10295typedef VkSparseImageFormatProperties2 VkSparseImageFormatProperties2KHR;
10296
10297typedef VkPhysicalDeviceSparseImageFormatInfo2 VkPhysicalDeviceSparseImageFormatInfo2KHR;
10298
10299typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures);
10300typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties);
10301typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2KHR)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties);
10302typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties);
10303typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties);
10304typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
10305typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties);
10306
10307#ifndef VK_NO_PROTOTYPES
10308#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10309VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2KHR(
10310 VkPhysicalDevice physicalDevice,
10311 VkPhysicalDeviceFeatures2* pFeatures);
10312#endif
10313
10314#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10315VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2KHR(
10316 VkPhysicalDevice physicalDevice,
10317 VkPhysicalDeviceProperties2* pProperties);
10318#endif
10319
10320#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10321VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2KHR(
10322 VkPhysicalDevice physicalDevice,
10323 VkFormat format,
10324 VkFormatProperties2* pFormatProperties);
10325#endif
10326
10327#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10328VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2KHR(
10329 VkPhysicalDevice physicalDevice,
10330 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
10331 VkImageFormatProperties2* pImageFormatProperties);
10332#endif
10333
10334#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10335VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2KHR(
10336 VkPhysicalDevice physicalDevice,
10337 uint32_t* pQueueFamilyPropertyCount,
10338 VkQueueFamilyProperties2* pQueueFamilyProperties);
10339#endif
10340
10341#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10342VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2KHR(
10343 VkPhysicalDevice physicalDevice,
10344 VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
10345#endif
10346
10347#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10348VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
10349 VkPhysicalDevice physicalDevice,
10350 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
10351 uint32_t* pPropertyCount,
10352 VkSparseImageFormatProperties2* pProperties);
10353#endif
10354#endif
10355
10356
10357// VK_KHR_device_group is a preprocessor guard. Do not pass it to API calls.
10358#define VK_KHR_device_group 1
10359#define VK_KHR_DEVICE_GROUP_SPEC_VERSION 4
10360#define VK_KHR_DEVICE_GROUP_EXTENSION_NAME "VK_KHR_device_group"
10361typedef VkPeerMemoryFeatureFlags VkPeerMemoryFeatureFlagsKHR;
10362
10363typedef VkPeerMemoryFeatureFlagBits VkPeerMemoryFeatureFlagBitsKHR;
10364
10365typedef VkMemoryAllocateFlags VkMemoryAllocateFlagsKHR;
10366
10367typedef VkMemoryAllocateFlagBits VkMemoryAllocateFlagBitsKHR;
10368
10369typedef VkMemoryAllocateFlagsInfo VkMemoryAllocateFlagsInfoKHR;
10370
10371typedef VkDeviceGroupRenderPassBeginInfo VkDeviceGroupRenderPassBeginInfoKHR;
10372
10373typedef VkDeviceGroupCommandBufferBeginInfo VkDeviceGroupCommandBufferBeginInfoKHR;
10374
10375typedef VkDeviceGroupSubmitInfo VkDeviceGroupSubmitInfoKHR;
10376
10377typedef VkDeviceGroupBindSparseInfo VkDeviceGroupBindSparseInfoKHR;
10378
10379typedef VkBindBufferMemoryDeviceGroupInfo VkBindBufferMemoryDeviceGroupInfoKHR;
10380
10381typedef VkBindImageMemoryDeviceGroupInfo VkBindImageMemoryDeviceGroupInfoKHR;
10382
10383typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
10384typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMaskKHR)(VkCommandBuffer commandBuffer, uint32_t deviceMask);
10385typedef 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);
10386
10387#ifndef VK_NO_PROTOTYPES
10388#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10389VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeaturesKHR(
10390 VkDevice device,
10391 uint32_t heapIndex,
10392 uint32_t localDeviceIndex,
10393 uint32_t remoteDeviceIndex,
10394 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
10395#endif
10396
10397#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10398VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMaskKHR(
10399 VkCommandBuffer commandBuffer,
10400 uint32_t deviceMask);
10401#endif
10402
10403#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10404VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBaseKHR(
10405 VkCommandBuffer commandBuffer,
10406 uint32_t baseGroupX,
10407 uint32_t baseGroupY,
10408 uint32_t baseGroupZ,
10409 uint32_t groupCountX,
10410 uint32_t groupCountY,
10411 uint32_t groupCountZ);
10412#endif
10413#endif
10414
10415
10416// VK_KHR_shader_draw_parameters is a preprocessor guard. Do not pass it to API calls.
10417#define VK_KHR_shader_draw_parameters 1
10418#define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1
10419#define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters"
10420
10421
10422// VK_KHR_maintenance1 is a preprocessor guard. Do not pass it to API calls.
10423#define VK_KHR_maintenance1 1
10424#define VK_KHR_MAINTENANCE_1_SPEC_VERSION 2
10425#define VK_KHR_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_maintenance1"
10426// VK_KHR_MAINTENANCE1_SPEC_VERSION is a legacy alias
10427#define VK_KHR_MAINTENANCE1_SPEC_VERSION VK_KHR_MAINTENANCE_1_SPEC_VERSION
10428// VK_KHR_MAINTENANCE1_EXTENSION_NAME is a legacy alias
10429#define VK_KHR_MAINTENANCE1_EXTENSION_NAME VK_KHR_MAINTENANCE_1_EXTENSION_NAME
10430typedef VkCommandPoolTrimFlags VkCommandPoolTrimFlagsKHR;
10431
10432typedef void (VKAPI_PTR *PFN_vkTrimCommandPoolKHR)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
10433
10434#ifndef VK_NO_PROTOTYPES
10435#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10436VKAPI_ATTR void VKAPI_CALL vkTrimCommandPoolKHR(
10437 VkDevice device,
10438 VkCommandPool commandPool,
10439 VkCommandPoolTrimFlags flags);
10440#endif
10441#endif
10442
10443
10444// VK_KHR_device_group_creation is a preprocessor guard. Do not pass it to API calls.
10445#define VK_KHR_device_group_creation 1
10446#define VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION 1
10447#define VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME "VK_KHR_device_group_creation"
10448#define VK_MAX_DEVICE_GROUP_SIZE_KHR VK_MAX_DEVICE_GROUP_SIZE
10449typedef VkPhysicalDeviceGroupProperties VkPhysicalDeviceGroupPropertiesKHR;
10450
10451typedef VkDeviceGroupDeviceCreateInfo VkDeviceGroupDeviceCreateInfoKHR;
10452
10453typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroupsKHR)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
10454
10455#ifndef VK_NO_PROTOTYPES
10456#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10457VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroupsKHR(
10458 VkInstance instance,
10459 uint32_t* pPhysicalDeviceGroupCount,
10460 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
10461#endif
10462#endif
10463
10464
10465// VK_KHR_external_memory_capabilities is a preprocessor guard. Do not pass it to API calls.
10466#define VK_KHR_external_memory_capabilities 1
10467#define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
10468#define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_memory_capabilities"
10469#define VK_LUID_SIZE_KHR VK_LUID_SIZE
10470typedef VkExternalMemoryHandleTypeFlags VkExternalMemoryHandleTypeFlagsKHR;
10471
10472typedef VkExternalMemoryHandleTypeFlagBits VkExternalMemoryHandleTypeFlagBitsKHR;
10473
10474typedef VkExternalMemoryFeatureFlags VkExternalMemoryFeatureFlagsKHR;
10475
10476typedef VkExternalMemoryFeatureFlagBits VkExternalMemoryFeatureFlagBitsKHR;
10477
10478typedef VkExternalMemoryProperties VkExternalMemoryPropertiesKHR;
10479
10480typedef VkPhysicalDeviceExternalImageFormatInfo VkPhysicalDeviceExternalImageFormatInfoKHR;
10481
10482typedef VkExternalImageFormatProperties VkExternalImageFormatPropertiesKHR;
10483
10484typedef VkPhysicalDeviceExternalBufferInfo VkPhysicalDeviceExternalBufferInfoKHR;
10485
10486typedef VkExternalBufferProperties VkExternalBufferPropertiesKHR;
10487
10488typedef VkPhysicalDeviceIDProperties VkPhysicalDeviceIDPropertiesKHR;
10489
10490typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties);
10491
10492#ifndef VK_NO_PROTOTYPES
10493#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10494VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferPropertiesKHR(
10495 VkPhysicalDevice physicalDevice,
10496 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
10497 VkExternalBufferProperties* pExternalBufferProperties);
10498#endif
10499#endif
10500
10501
10502// VK_KHR_external_memory is a preprocessor guard. Do not pass it to API calls.
10503#define VK_KHR_external_memory 1
10504#define VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION 1
10505#define VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME "VK_KHR_external_memory"
10506#define VK_QUEUE_FAMILY_EXTERNAL_KHR VK_QUEUE_FAMILY_EXTERNAL
10507typedef VkExternalMemoryImageCreateInfo VkExternalMemoryImageCreateInfoKHR;
10508
10509typedef VkExternalMemoryBufferCreateInfo VkExternalMemoryBufferCreateInfoKHR;
10510
10511typedef VkExportMemoryAllocateInfo VkExportMemoryAllocateInfoKHR;
10512
10513
10514
10515// VK_KHR_external_memory_fd is a preprocessor guard. Do not pass it to API calls.
10516#define VK_KHR_external_memory_fd 1
10517#define VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION 1
10518#define VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME "VK_KHR_external_memory_fd"
10519typedef struct VkImportMemoryFdInfoKHR {
10520 VkStructureType sType;
10521 const void* pNext;
10522 VkExternalMemoryHandleTypeFlagBits handleType;
10523 int fd;
10524} VkImportMemoryFdInfoKHR;
10525
10526typedef struct VkMemoryFdPropertiesKHR {
10527 VkStructureType sType;
10528 void* pNext;
10529 uint32_t memoryTypeBits;
10530} VkMemoryFdPropertiesKHR;
10531
10532typedef struct VkMemoryGetFdInfoKHR {
10533 VkStructureType sType;
10534 const void* pNext;
10535 VkDeviceMemory memory;
10536 VkExternalMemoryHandleTypeFlagBits handleType;
10537} VkMemoryGetFdInfoKHR;
10538
10539typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdKHR)(VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd);
10540typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdPropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties);
10541
10542#ifndef VK_NO_PROTOTYPES
10543#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10544VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdKHR(
10545 VkDevice device,
10546 const VkMemoryGetFdInfoKHR* pGetFdInfo,
10547 int* pFd);
10548#endif
10549
10550#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10551VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdPropertiesKHR(
10552 VkDevice device,
10553 VkExternalMemoryHandleTypeFlagBits handleType,
10554 int fd,
10555 VkMemoryFdPropertiesKHR* pMemoryFdProperties);
10556#endif
10557#endif
10558
10559
10560// VK_KHR_external_semaphore_capabilities is a preprocessor guard. Do not pass it to API calls.
10561#define VK_KHR_external_semaphore_capabilities 1
10562#define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION 1
10563#define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_semaphore_capabilities"
10564typedef VkExternalSemaphoreHandleTypeFlags VkExternalSemaphoreHandleTypeFlagsKHR;
10565
10566typedef VkExternalSemaphoreHandleTypeFlagBits VkExternalSemaphoreHandleTypeFlagBitsKHR;
10567
10568typedef VkExternalSemaphoreFeatureFlags VkExternalSemaphoreFeatureFlagsKHR;
10569
10570typedef VkExternalSemaphoreFeatureFlagBits VkExternalSemaphoreFeatureFlagBitsKHR;
10571
10572typedef VkPhysicalDeviceExternalSemaphoreInfo VkPhysicalDeviceExternalSemaphoreInfoKHR;
10573
10574typedef VkExternalSemaphoreProperties VkExternalSemaphorePropertiesKHR;
10575
10576typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
10577
10578#ifndef VK_NO_PROTOTYPES
10579#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10580VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
10581 VkPhysicalDevice physicalDevice,
10582 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
10583 VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
10584#endif
10585#endif
10586
10587
10588// VK_KHR_external_semaphore is a preprocessor guard. Do not pass it to API calls.
10589#define VK_KHR_external_semaphore 1
10590#define VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION 1
10591#define VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_KHR_external_semaphore"
10592typedef VkSemaphoreImportFlags VkSemaphoreImportFlagsKHR;
10593
10594typedef VkSemaphoreImportFlagBits VkSemaphoreImportFlagBitsKHR;
10595
10596typedef VkExportSemaphoreCreateInfo VkExportSemaphoreCreateInfoKHR;
10597
10598
10599
10600// VK_KHR_external_semaphore_fd is a preprocessor guard. Do not pass it to API calls.
10601#define VK_KHR_external_semaphore_fd 1
10602#define VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION 1
10603#define VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME "VK_KHR_external_semaphore_fd"
10604typedef struct VkImportSemaphoreFdInfoKHR {
10605 VkStructureType sType;
10606 const void* pNext;
10607 VkSemaphore semaphore;
10608 VkSemaphoreImportFlags flags;
10609 VkExternalSemaphoreHandleTypeFlagBits handleType;
10610 int fd;
10611} VkImportSemaphoreFdInfoKHR;
10612
10613typedef struct VkSemaphoreGetFdInfoKHR {
10614 VkStructureType sType;
10615 const void* pNext;
10616 VkSemaphore semaphore;
10617 VkExternalSemaphoreHandleTypeFlagBits handleType;
10618} VkSemaphoreGetFdInfoKHR;
10619
10620typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreFdKHR)(VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo);
10621typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreFdKHR)(VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd);
10622
10623#ifndef VK_NO_PROTOTYPES
10624#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10625VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreFdKHR(
10626 VkDevice device,
10627 const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo);
10628#endif
10629
10630#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10631VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreFdKHR(
10632 VkDevice device,
10633 const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
10634 int* pFd);
10635#endif
10636#endif
10637
10638
10639// VK_KHR_push_descriptor is a preprocessor guard. Do not pass it to API calls.
10640#define VK_KHR_push_descriptor 1
10641#define VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION 2
10642#define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor"
10643typedef VkPhysicalDevicePushDescriptorProperties VkPhysicalDevicePushDescriptorPropertiesKHR;
10644
10645typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetKHR)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites);
10646typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplateKHR)(VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData);
10647
10648#ifndef VK_NO_PROTOTYPES
10649#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10650VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetKHR(
10651 VkCommandBuffer commandBuffer,
10652 VkPipelineBindPoint pipelineBindPoint,
10653 VkPipelineLayout layout,
10654 uint32_t set,
10655 uint32_t descriptorWriteCount,
10656 const VkWriteDescriptorSet* pDescriptorWrites);
10657#endif
10658
10659#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10660VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplateKHR(
10661 VkCommandBuffer commandBuffer,
10662 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
10663 VkPipelineLayout layout,
10664 uint32_t set,
10665 const void* pData);
10666#endif
10667#endif
10668
10669
10670// VK_KHR_shader_float16_int8 is a preprocessor guard. Do not pass it to API calls.
10671#define VK_KHR_shader_float16_int8 1
10672#define VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION 1
10673#define VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME "VK_KHR_shader_float16_int8"
10674typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceShaderFloat16Int8FeaturesKHR;
10675
10676typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceFloat16Int8FeaturesKHR;
10677
10678
10679
10680// VK_KHR_16bit_storage is a preprocessor guard. Do not pass it to API calls.
10681#define VK_KHR_16bit_storage 1
10682#define VK_KHR_16BIT_STORAGE_SPEC_VERSION 1
10683#define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage"
10684typedef VkPhysicalDevice16BitStorageFeatures VkPhysicalDevice16BitStorageFeaturesKHR;
10685
10686
10687
10688// VK_KHR_incremental_present is a preprocessor guard. Do not pass it to API calls.
10689#define VK_KHR_incremental_present 1
10690#define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 2
10691#define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present"
10692typedef struct VkRectLayerKHR {
10693 VkOffset2D offset;
10694 VkExtent2D extent;
10695 uint32_t layer;
10696} VkRectLayerKHR;
10697
10698typedef struct VkPresentRegionKHR {
10699 uint32_t rectangleCount;
10700 const VkRectLayerKHR* pRectangles;
10701} VkPresentRegionKHR;
10702
10703typedef struct VkPresentRegionsKHR {
10704 VkStructureType sType;
10705 const void* pNext;
10706 uint32_t swapchainCount;
10707 const VkPresentRegionKHR* pRegions;
10708} VkPresentRegionsKHR;
10709
10710
10711
10712// VK_KHR_descriptor_update_template is a preprocessor guard. Do not pass it to API calls.
10713#define VK_KHR_descriptor_update_template 1
10714typedef VkDescriptorUpdateTemplate VkDescriptorUpdateTemplateKHR;
10715
10716#define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1
10717#define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME "VK_KHR_descriptor_update_template"
10718typedef VkDescriptorUpdateTemplateType VkDescriptorUpdateTemplateTypeKHR;
10719
10720typedef VkDescriptorUpdateTemplateCreateFlags VkDescriptorUpdateTemplateCreateFlagsKHR;
10721
10722typedef VkDescriptorUpdateTemplateEntry VkDescriptorUpdateTemplateEntryKHR;
10723
10724typedef VkDescriptorUpdateTemplateCreateInfo VkDescriptorUpdateTemplateCreateInfoKHR;
10725
10726typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplateKHR)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
10727typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplateKHR)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
10728typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplateKHR)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData);
10729
10730#ifndef VK_NO_PROTOTYPES
10731#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10732VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplateKHR(
10733 VkDevice device,
10734 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
10735 const VkAllocationCallbacks* pAllocator,
10736 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
10737#endif
10738
10739#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10740VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplateKHR(
10741 VkDevice device,
10742 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
10743 const VkAllocationCallbacks* pAllocator);
10744#endif
10745
10746#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10747VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplateKHR(
10748 VkDevice device,
10749 VkDescriptorSet descriptorSet,
10750 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
10751 const void* pData);
10752#endif
10753#endif
10754
10755
10756// VK_KHR_imageless_framebuffer is a preprocessor guard. Do not pass it to API calls.
10757#define VK_KHR_imageless_framebuffer 1
10758#define VK_KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION 1
10759#define VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME "VK_KHR_imageless_framebuffer"
10760typedef VkPhysicalDeviceImagelessFramebufferFeatures VkPhysicalDeviceImagelessFramebufferFeaturesKHR;
10761
10762typedef VkFramebufferAttachmentsCreateInfo VkFramebufferAttachmentsCreateInfoKHR;
10763
10764typedef VkFramebufferAttachmentImageInfo VkFramebufferAttachmentImageInfoKHR;
10765
10766typedef VkRenderPassAttachmentBeginInfo VkRenderPassAttachmentBeginInfoKHR;
10767
10768
10769
10770// VK_KHR_create_renderpass2 is a preprocessor guard. Do not pass it to API calls.
10771#define VK_KHR_create_renderpass2 1
10772#define VK_KHR_CREATE_RENDERPASS_2_SPEC_VERSION 1
10773#define VK_KHR_CREATE_RENDERPASS_2_EXTENSION_NAME "VK_KHR_create_renderpass2"
10774typedef VkRenderPassCreateInfo2 VkRenderPassCreateInfo2KHR;
10775
10776typedef VkAttachmentDescription2 VkAttachmentDescription2KHR;
10777
10778typedef VkAttachmentReference2 VkAttachmentReference2KHR;
10779
10780typedef VkSubpassDescription2 VkSubpassDescription2KHR;
10781
10782typedef VkSubpassDependency2 VkSubpassDependency2KHR;
10783
10784typedef VkSubpassBeginInfo VkSubpassBeginInfoKHR;
10785
10786typedef VkSubpassEndInfo VkSubpassEndInfoKHR;
10787
10788typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2KHR)(VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
10789typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo);
10790typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo);
10791typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo);
10792
10793#ifndef VK_NO_PROTOTYPES
10794#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10795VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2KHR(
10796 VkDevice device,
10797 const VkRenderPassCreateInfo2* pCreateInfo,
10798 const VkAllocationCallbacks* pAllocator,
10799 VkRenderPass* pRenderPass);
10800#endif
10801
10802#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10803VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2KHR(
10804 VkCommandBuffer commandBuffer,
10805 const VkRenderPassBeginInfo* pRenderPassBegin,
10806 const VkSubpassBeginInfo* pSubpassBeginInfo);
10807#endif
10808
10809#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10810VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2KHR(
10811 VkCommandBuffer commandBuffer,
10812 const VkSubpassBeginInfo* pSubpassBeginInfo,
10813 const VkSubpassEndInfo* pSubpassEndInfo);
10814#endif
10815
10816#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10817VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2KHR(
10818 VkCommandBuffer commandBuffer,
10819 const VkSubpassEndInfo* pSubpassEndInfo);
10820#endif
10821#endif
10822
10823
10824// VK_KHR_shared_presentable_image is a preprocessor guard. Do not pass it to API calls.
10825#define VK_KHR_shared_presentable_image 1
10826#define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1
10827#define VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME "VK_KHR_shared_presentable_image"
10828typedef struct VkSharedPresentSurfaceCapabilitiesKHR {
10829 VkStructureType sType;
10830 void* pNext;
10831 VkImageUsageFlags sharedPresentSupportedUsageFlags;
10832} VkSharedPresentSurfaceCapabilitiesKHR;
10833
10834typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainStatusKHR)(VkDevice device, VkSwapchainKHR swapchain);
10835
10836#ifndef VK_NO_PROTOTYPES
10837#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10838VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainStatusKHR(
10839 VkDevice device,
10840 VkSwapchainKHR swapchain);
10841#endif
10842#endif
10843
10844
10845// VK_KHR_external_fence_capabilities is a preprocessor guard. Do not pass it to API calls.
10846#define VK_KHR_external_fence_capabilities 1
10847#define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION 1
10848#define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_fence_capabilities"
10849typedef VkExternalFenceHandleTypeFlags VkExternalFenceHandleTypeFlagsKHR;
10850
10851typedef VkExternalFenceHandleTypeFlagBits VkExternalFenceHandleTypeFlagBitsKHR;
10852
10853typedef VkExternalFenceFeatureFlags VkExternalFenceFeatureFlagsKHR;
10854
10855typedef VkExternalFenceFeatureFlagBits VkExternalFenceFeatureFlagBitsKHR;
10856
10857typedef VkPhysicalDeviceExternalFenceInfo VkPhysicalDeviceExternalFenceInfoKHR;
10858
10859typedef VkExternalFenceProperties VkExternalFencePropertiesKHR;
10860
10861typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties);
10862
10863#ifndef VK_NO_PROTOTYPES
10864#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10865VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFencePropertiesKHR(
10866 VkPhysicalDevice physicalDevice,
10867 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
10868 VkExternalFenceProperties* pExternalFenceProperties);
10869#endif
10870#endif
10871
10872
10873// VK_KHR_external_fence is a preprocessor guard. Do not pass it to API calls.
10874#define VK_KHR_external_fence 1
10875#define VK_KHR_EXTERNAL_FENCE_SPEC_VERSION 1
10876#define VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME "VK_KHR_external_fence"
10877typedef VkFenceImportFlags VkFenceImportFlagsKHR;
10878
10879typedef VkFenceImportFlagBits VkFenceImportFlagBitsKHR;
10880
10881typedef VkExportFenceCreateInfo VkExportFenceCreateInfoKHR;
10882
10883
10884
10885// VK_KHR_external_fence_fd is a preprocessor guard. Do not pass it to API calls.
10886#define VK_KHR_external_fence_fd 1
10887#define VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION 1
10888#define VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME "VK_KHR_external_fence_fd"
10889typedef struct VkImportFenceFdInfoKHR {
10890 VkStructureType sType;
10891 const void* pNext;
10892 VkFence fence;
10893 VkFenceImportFlags flags;
10894 VkExternalFenceHandleTypeFlagBits handleType;
10895 int fd;
10896} VkImportFenceFdInfoKHR;
10897
10898typedef struct VkFenceGetFdInfoKHR {
10899 VkStructureType sType;
10900 const void* pNext;
10901 VkFence fence;
10902 VkExternalFenceHandleTypeFlagBits handleType;
10903} VkFenceGetFdInfoKHR;
10904
10905typedef VkResult (VKAPI_PTR *PFN_vkImportFenceFdKHR)(VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo);
10906typedef VkResult (VKAPI_PTR *PFN_vkGetFenceFdKHR)(VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd);
10907
10908#ifndef VK_NO_PROTOTYPES
10909#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10910VKAPI_ATTR VkResult VKAPI_CALL vkImportFenceFdKHR(
10911 VkDevice device,
10912 const VkImportFenceFdInfoKHR* pImportFenceFdInfo);
10913#endif
10914
10915#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10916VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceFdKHR(
10917 VkDevice device,
10918 const VkFenceGetFdInfoKHR* pGetFdInfo,
10919 int* pFd);
10920#endif
10921#endif
10922
10923
10924// VK_KHR_performance_query is a preprocessor guard. Do not pass it to API calls.
10925#define VK_KHR_performance_query 1
10926#define VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION 1
10927#define VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME "VK_KHR_performance_query"
10928
10929typedef enum VkPerformanceCounterUnitKHR {
10930 VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0,
10931 VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1,
10932 VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2,
10933 VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3,
10934 VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4,
10935 VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5,
10936 VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6,
10937 VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7,
10938 VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8,
10939 VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9,
10940 VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10,
10941 VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 0x7FFFFFFF
10942} VkPerformanceCounterUnitKHR;
10943
10944typedef enum VkPerformanceCounterScopeKHR {
10945 VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0,
10946 VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1,
10947 VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2,
10948 // VK_QUERY_SCOPE_COMMAND_BUFFER_KHR is a legacy alias
10949 VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR,
10950 // VK_QUERY_SCOPE_RENDER_PASS_KHR is a legacy alias
10951 VK_QUERY_SCOPE_RENDER_PASS_KHR = VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR,
10952 // VK_QUERY_SCOPE_COMMAND_KHR is a legacy alias
10953 VK_QUERY_SCOPE_COMMAND_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR,
10954 VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 0x7FFFFFFF
10955} VkPerformanceCounterScopeKHR;
10956
10957typedef enum VkPerformanceCounterStorageKHR {
10958 VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0,
10959 VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1,
10960 VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2,
10961 VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3,
10962 VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4,
10963 VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5,
10964 VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 0x7FFFFFFF
10965} VkPerformanceCounterStorageKHR;
10966
10967typedef enum VkPerformanceCounterDescriptionFlagBitsKHR {
10968 VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 0x00000001,
10969 VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 0x00000002,
10970 // VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR is a legacy alias
10971 VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR,
10972 // VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR is a legacy alias
10973 VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR,
10974 VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
10975} VkPerformanceCounterDescriptionFlagBitsKHR;
10976typedef VkFlags VkPerformanceCounterDescriptionFlagsKHR;
10977
10978typedef enum VkAcquireProfilingLockFlagBitsKHR {
10979 VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
10980} VkAcquireProfilingLockFlagBitsKHR;
10981typedef VkFlags VkAcquireProfilingLockFlagsKHR;
10982typedef struct VkPhysicalDevicePerformanceQueryFeaturesKHR {
10983 VkStructureType sType;
10984 void* pNext;
10985 VkBool32 performanceCounterQueryPools;
10986 VkBool32 performanceCounterMultipleQueryPools;
10987} VkPhysicalDevicePerformanceQueryFeaturesKHR;
10988
10989typedef struct VkPhysicalDevicePerformanceQueryPropertiesKHR {
10990 VkStructureType sType;
10991 void* pNext;
10992 VkBool32 allowCommandBufferQueryCopies;
10993} VkPhysicalDevicePerformanceQueryPropertiesKHR;
10994
10995typedef struct VkPerformanceCounterKHR {
10996 VkStructureType sType;
10997 void* pNext;
10998 VkPerformanceCounterUnitKHR unit;
10999 VkPerformanceCounterScopeKHR scope;
11000 VkPerformanceCounterStorageKHR storage;
11001 uint8_t uuid[VK_UUID_SIZE];
11002} VkPerformanceCounterKHR;
11003
11004typedef struct VkPerformanceCounterDescriptionKHR {
11005 VkStructureType sType;
11006 void* pNext;
11007 VkPerformanceCounterDescriptionFlagsKHR flags;
11008 char name[VK_MAX_DESCRIPTION_SIZE];
11009 char category[VK_MAX_DESCRIPTION_SIZE];
11010 char description[VK_MAX_DESCRIPTION_SIZE];
11011} VkPerformanceCounterDescriptionKHR;
11012
11013typedef struct VkQueryPoolPerformanceCreateInfoKHR {
11014 VkStructureType sType;
11015 const void* pNext;
11016 uint32_t queueFamilyIndex;
11017 uint32_t counterIndexCount;
11018 const uint32_t* pCounterIndices;
11019} VkQueryPoolPerformanceCreateInfoKHR;
11020
11021typedef union VkPerformanceCounterResultKHR {
11022 int32_t int32;
11023 int64_t int64;
11024 uint32_t uint32;
11025 uint64_t uint64;
11026 float float32;
11027 double float64;
11028} VkPerformanceCounterResultKHR;
11029
11030typedef struct VkAcquireProfilingLockInfoKHR {
11031 VkStructureType sType;
11032 const void* pNext;
11033 VkAcquireProfilingLockFlagsKHR flags;
11034 uint64_t timeout;
11035} VkAcquireProfilingLockInfoKHR;
11036
11037typedef struct VkPerformanceQuerySubmitInfoKHR {
11038 VkStructureType sType;
11039 const void* pNext;
11040 uint32_t counterPassIndex;
11041} VkPerformanceQuerySubmitInfoKHR;
11042
11043typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pCounterCount, VkPerformanceCounterKHR* pCounters, VkPerformanceCounterDescriptionKHR* pCounterDescriptions);
11044typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR)(VkPhysicalDevice physicalDevice, const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses);
11045typedef VkResult (VKAPI_PTR *PFN_vkAcquireProfilingLockKHR)(VkDevice device, const VkAcquireProfilingLockInfoKHR* pInfo);
11046typedef void (VKAPI_PTR *PFN_vkReleaseProfilingLockKHR)(VkDevice device);
11047
11048#ifndef VK_NO_PROTOTYPES
11049#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11050VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
11051 VkPhysicalDevice physicalDevice,
11052 uint32_t queueFamilyIndex,
11053 uint32_t* pCounterCount,
11054 VkPerformanceCounterKHR* pCounters,
11055 VkPerformanceCounterDescriptionKHR* pCounterDescriptions);
11056#endif
11057
11058#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11059VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
11060 VkPhysicalDevice physicalDevice,
11061 const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo,
11062 uint32_t* pNumPasses);
11063#endif
11064
11065#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11066VKAPI_ATTR VkResult VKAPI_CALL vkAcquireProfilingLockKHR(
11067 VkDevice device,
11068 const VkAcquireProfilingLockInfoKHR* pInfo);
11069#endif
11070
11071#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11072VKAPI_ATTR void VKAPI_CALL vkReleaseProfilingLockKHR(
11073 VkDevice device);
11074#endif
11075#endif
11076
11077
11078// VK_KHR_maintenance2 is a preprocessor guard. Do not pass it to API calls.
11079#define VK_KHR_maintenance2 1
11080#define VK_KHR_MAINTENANCE_2_SPEC_VERSION 1
11081#define VK_KHR_MAINTENANCE_2_EXTENSION_NAME "VK_KHR_maintenance2"
11082// VK_KHR_MAINTENANCE2_SPEC_VERSION is a legacy alias
11083#define VK_KHR_MAINTENANCE2_SPEC_VERSION VK_KHR_MAINTENANCE_2_SPEC_VERSION
11084// VK_KHR_MAINTENANCE2_EXTENSION_NAME is a legacy alias
11085#define VK_KHR_MAINTENANCE2_EXTENSION_NAME VK_KHR_MAINTENANCE_2_EXTENSION_NAME
11086typedef VkPointClippingBehavior VkPointClippingBehaviorKHR;
11087
11088typedef VkTessellationDomainOrigin VkTessellationDomainOriginKHR;
11089
11090typedef VkPhysicalDevicePointClippingProperties VkPhysicalDevicePointClippingPropertiesKHR;
11091
11092typedef VkRenderPassInputAttachmentAspectCreateInfo VkRenderPassInputAttachmentAspectCreateInfoKHR;
11093
11094typedef VkInputAttachmentAspectReference VkInputAttachmentAspectReferenceKHR;
11095
11096typedef VkImageViewUsageCreateInfo VkImageViewUsageCreateInfoKHR;
11097
11098typedef VkPipelineTessellationDomainOriginStateCreateInfo VkPipelineTessellationDomainOriginStateCreateInfoKHR;
11099
11100
11101
11102// VK_KHR_get_surface_capabilities2 is a preprocessor guard. Do not pass it to API calls.
11103#define VK_KHR_get_surface_capabilities2 1
11104#define VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION 1
11105#define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2"
11106typedef struct VkPhysicalDeviceSurfaceInfo2KHR {
11107 VkStructureType sType;
11108 const void* pNext;
11109 VkSurfaceKHR surface;
11110} VkPhysicalDeviceSurfaceInfo2KHR;
11111
11112typedef struct VkSurfaceCapabilities2KHR {
11113 VkStructureType sType;
11114 void* pNext;
11115 VkSurfaceCapabilitiesKHR surfaceCapabilities;
11116} VkSurfaceCapabilities2KHR;
11117
11118typedef struct VkSurfaceFormat2KHR {
11119 VkStructureType sType;
11120 void* pNext;
11121 VkSurfaceFormatKHR surfaceFormat;
11122} VkSurfaceFormat2KHR;
11123
11124typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities);
11125typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats);
11126
11127#ifndef VK_NO_PROTOTYPES
11128#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11129VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2KHR(
11130 VkPhysicalDevice physicalDevice,
11131 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
11132 VkSurfaceCapabilities2KHR* pSurfaceCapabilities);
11133#endif
11134
11135#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11136VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormats2KHR(
11137 VkPhysicalDevice physicalDevice,
11138 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
11139 uint32_t* pSurfaceFormatCount,
11140 VkSurfaceFormat2KHR* pSurfaceFormats);
11141#endif
11142#endif
11143
11144
11145// VK_KHR_variable_pointers is a preprocessor guard. Do not pass it to API calls.
11146#define VK_KHR_variable_pointers 1
11147#define VK_KHR_VARIABLE_POINTERS_SPEC_VERSION 1
11148#define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers"
11149typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeaturesKHR;
11150
11151typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointersFeaturesKHR;
11152
11153
11154
11155// VK_KHR_get_display_properties2 is a preprocessor guard. Do not pass it to API calls.
11156#define VK_KHR_get_display_properties2 1
11157#define VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION 1
11158#define VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_display_properties2"
11159typedef struct VkDisplayProperties2KHR {
11160 VkStructureType sType;
11161 void* pNext;
11162 VkDisplayPropertiesKHR displayProperties;
11163} VkDisplayProperties2KHR;
11164
11165typedef struct VkDisplayPlaneProperties2KHR {
11166 VkStructureType sType;
11167 void* pNext;
11168 VkDisplayPlanePropertiesKHR displayPlaneProperties;
11169} VkDisplayPlaneProperties2KHR;
11170
11171typedef struct VkDisplayModeProperties2KHR {
11172 VkStructureType sType;
11173 void* pNext;
11174 VkDisplayModePropertiesKHR displayModeProperties;
11175} VkDisplayModeProperties2KHR;
11176
11177typedef struct VkDisplayPlaneInfo2KHR {
11178 VkStructureType sType;
11179 const void* pNext;
11180 VkDisplayModeKHR mode;
11181 uint32_t planeIndex;
11182} VkDisplayPlaneInfo2KHR;
11183
11184typedef struct VkDisplayPlaneCapabilities2KHR {
11185 VkStructureType sType;
11186 void* pNext;
11187 VkDisplayPlaneCapabilitiesKHR capabilities;
11188} VkDisplayPlaneCapabilities2KHR;
11189
11190typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayProperties2KHR* pProperties);
11191typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties);
11192typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModeProperties2KHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModeProperties2KHR* pProperties);
11193typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities);
11194
11195#ifndef VK_NO_PROTOTYPES
11196#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11197VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayProperties2KHR(
11198 VkPhysicalDevice physicalDevice,
11199 uint32_t* pPropertyCount,
11200 VkDisplayProperties2KHR* pProperties);
11201#endif
11202
11203#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11204VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
11205 VkPhysicalDevice physicalDevice,
11206 uint32_t* pPropertyCount,
11207 VkDisplayPlaneProperties2KHR* pProperties);
11208#endif
11209
11210#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11211VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModeProperties2KHR(
11212 VkPhysicalDevice physicalDevice,
11213 VkDisplayKHR display,
11214 uint32_t* pPropertyCount,
11215 VkDisplayModeProperties2KHR* pProperties);
11216#endif
11217
11218#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11219VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilities2KHR(
11220 VkPhysicalDevice physicalDevice,
11221 const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo,
11222 VkDisplayPlaneCapabilities2KHR* pCapabilities);
11223#endif
11224#endif
11225
11226
11227// VK_KHR_dedicated_allocation is a preprocessor guard. Do not pass it to API calls.
11228#define VK_KHR_dedicated_allocation 1
11229#define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3
11230#define VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_KHR_dedicated_allocation"
11231typedef VkMemoryDedicatedRequirements VkMemoryDedicatedRequirementsKHR;
11232
11233typedef VkMemoryDedicatedAllocateInfo VkMemoryDedicatedAllocateInfoKHR;
11234
11235
11236
11237// VK_KHR_storage_buffer_storage_class is a preprocessor guard. Do not pass it to API calls.
11238#define VK_KHR_storage_buffer_storage_class 1
11239#define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION 1
11240#define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME "VK_KHR_storage_buffer_storage_class"
11241
11242
11243// VK_KHR_shader_bfloat16 is a preprocessor guard. Do not pass it to API calls.
11244#define VK_KHR_shader_bfloat16 1
11245#define VK_KHR_SHADER_BFLOAT16_SPEC_VERSION 1
11246#define VK_KHR_SHADER_BFLOAT16_EXTENSION_NAME "VK_KHR_shader_bfloat16"
11247typedef struct VkPhysicalDeviceShaderBfloat16FeaturesKHR {
11248 VkStructureType sType;
11249 void* pNext;
11250 VkBool32 shaderBFloat16Type;
11251 VkBool32 shaderBFloat16DotProduct;
11252 VkBool32 shaderBFloat16CooperativeMatrix;
11253} VkPhysicalDeviceShaderBfloat16FeaturesKHR;
11254
11255
11256
11257// VK_KHR_relaxed_block_layout is a preprocessor guard. Do not pass it to API calls.
11258#define VK_KHR_relaxed_block_layout 1
11259#define VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION 1
11260#define VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME "VK_KHR_relaxed_block_layout"
11261
11262
11263// VK_KHR_get_memory_requirements2 is a preprocessor guard. Do not pass it to API calls.
11264#define VK_KHR_get_memory_requirements2 1
11265#define VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION 1
11266#define VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME "VK_KHR_get_memory_requirements2"
11267typedef VkBufferMemoryRequirementsInfo2 VkBufferMemoryRequirementsInfo2KHR;
11268
11269typedef VkImageMemoryRequirementsInfo2 VkImageMemoryRequirementsInfo2KHR;
11270
11271typedef VkImageSparseMemoryRequirementsInfo2 VkImageSparseMemoryRequirementsInfo2KHR;
11272
11273typedef VkMemoryRequirements2 VkMemoryRequirements2KHR;
11274
11275typedef VkSparseImageMemoryRequirements2 VkSparseImageMemoryRequirements2KHR;
11276
11277typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2KHR)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
11278typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2KHR)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
11279typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2KHR)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
11280
11281#ifndef VK_NO_PROTOTYPES
11282#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11283VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2KHR(
11284 VkDevice device,
11285 const VkImageMemoryRequirementsInfo2* pInfo,
11286 VkMemoryRequirements2* pMemoryRequirements);
11287#endif
11288
11289#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11290VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2KHR(
11291 VkDevice device,
11292 const VkBufferMemoryRequirementsInfo2* pInfo,
11293 VkMemoryRequirements2* pMemoryRequirements);
11294#endif
11295
11296#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11297VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2KHR(
11298 VkDevice device,
11299 const VkImageSparseMemoryRequirementsInfo2* pInfo,
11300 uint32_t* pSparseMemoryRequirementCount,
11301 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
11302#endif
11303#endif
11304
11305
11306// VK_KHR_image_format_list is a preprocessor guard. Do not pass it to API calls.
11307#define VK_KHR_image_format_list 1
11308#define VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION 1
11309#define VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME "VK_KHR_image_format_list"
11310typedef VkImageFormatListCreateInfo VkImageFormatListCreateInfoKHR;
11311
11312
11313
11314// VK_KHR_sampler_ycbcr_conversion is a preprocessor guard. Do not pass it to API calls.
11315#define VK_KHR_sampler_ycbcr_conversion 1
11316typedef VkSamplerYcbcrConversion VkSamplerYcbcrConversionKHR;
11317
11318#define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 14
11319#define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion"
11320typedef VkSamplerYcbcrModelConversion VkSamplerYcbcrModelConversionKHR;
11321
11322typedef VkSamplerYcbcrRange VkSamplerYcbcrRangeKHR;
11323
11324typedef VkChromaLocation VkChromaLocationKHR;
11325
11326typedef VkSamplerYcbcrConversionCreateInfo VkSamplerYcbcrConversionCreateInfoKHR;
11327
11328typedef VkSamplerYcbcrConversionInfo VkSamplerYcbcrConversionInfoKHR;
11329
11330typedef VkBindImagePlaneMemoryInfo VkBindImagePlaneMemoryInfoKHR;
11331
11332typedef VkImagePlaneMemoryRequirementsInfo VkImagePlaneMemoryRequirementsInfoKHR;
11333
11334typedef VkPhysicalDeviceSamplerYcbcrConversionFeatures VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR;
11335
11336typedef VkSamplerYcbcrConversionImageFormatProperties VkSamplerYcbcrConversionImageFormatPropertiesKHR;
11337
11338typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversionKHR)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion);
11339typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversionKHR)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator);
11340
11341#ifndef VK_NO_PROTOTYPES
11342#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11343VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversionKHR(
11344 VkDevice device,
11345 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
11346 const VkAllocationCallbacks* pAllocator,
11347 VkSamplerYcbcrConversion* pYcbcrConversion);
11348#endif
11349
11350#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11351VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversionKHR(
11352 VkDevice device,
11353 VkSamplerYcbcrConversion ycbcrConversion,
11354 const VkAllocationCallbacks* pAllocator);
11355#endif
11356#endif
11357
11358
11359// VK_KHR_bind_memory2 is a preprocessor guard. Do not pass it to API calls.
11360#define VK_KHR_bind_memory2 1
11361#define VK_KHR_BIND_MEMORY_2_SPEC_VERSION 1
11362#define VK_KHR_BIND_MEMORY_2_EXTENSION_NAME "VK_KHR_bind_memory2"
11363typedef VkBindBufferMemoryInfo VkBindBufferMemoryInfoKHR;
11364
11365typedef VkBindImageMemoryInfo VkBindImageMemoryInfoKHR;
11366
11367typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos);
11368typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos);
11369
11370#ifndef VK_NO_PROTOTYPES
11371#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11372VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2KHR(
11373 VkDevice device,
11374 uint32_t bindInfoCount,
11375 const VkBindBufferMemoryInfo* pBindInfos);
11376#endif
11377
11378#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11379VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2KHR(
11380 VkDevice device,
11381 uint32_t bindInfoCount,
11382 const VkBindImageMemoryInfo* pBindInfos);
11383#endif
11384#endif
11385
11386
11387// VK_KHR_maintenance3 is a preprocessor guard. Do not pass it to API calls.
11388#define VK_KHR_maintenance3 1
11389#define VK_KHR_MAINTENANCE_3_SPEC_VERSION 1
11390#define VK_KHR_MAINTENANCE_3_EXTENSION_NAME "VK_KHR_maintenance3"
11391// VK_KHR_MAINTENANCE3_SPEC_VERSION is a legacy alias
11392#define VK_KHR_MAINTENANCE3_SPEC_VERSION VK_KHR_MAINTENANCE_3_SPEC_VERSION
11393// VK_KHR_MAINTENANCE3_EXTENSION_NAME is a legacy alias
11394#define VK_KHR_MAINTENANCE3_EXTENSION_NAME VK_KHR_MAINTENANCE_3_EXTENSION_NAME
11395typedef VkPhysicalDeviceMaintenance3Properties VkPhysicalDeviceMaintenance3PropertiesKHR;
11396
11397typedef VkDescriptorSetLayoutSupport VkDescriptorSetLayoutSupportKHR;
11398
11399typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupportKHR)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport);
11400
11401#ifndef VK_NO_PROTOTYPES
11402#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11403VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupportKHR(
11404 VkDevice device,
11405 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
11406 VkDescriptorSetLayoutSupport* pSupport);
11407#endif
11408#endif
11409
11410
11411// VK_KHR_draw_indirect_count is a preprocessor guard. Do not pass it to API calls.
11412#define VK_KHR_draw_indirect_count 1
11413#define VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
11414#define VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_KHR_draw_indirect_count"
11415typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
11416typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
11417
11418#ifndef VK_NO_PROTOTYPES
11419#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11420VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountKHR(
11421 VkCommandBuffer commandBuffer,
11422 VkBuffer buffer,
11423 VkDeviceSize offset,
11424 VkBuffer countBuffer,
11425 VkDeviceSize countBufferOffset,
11426 uint32_t maxDrawCount,
11427 uint32_t stride);
11428#endif
11429
11430#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11431VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountKHR(
11432 VkCommandBuffer commandBuffer,
11433 VkBuffer buffer,
11434 VkDeviceSize offset,
11435 VkBuffer countBuffer,
11436 VkDeviceSize countBufferOffset,
11437 uint32_t maxDrawCount,
11438 uint32_t stride);
11439#endif
11440#endif
11441
11442
11443// VK_KHR_shader_subgroup_extended_types is a preprocessor guard. Do not pass it to API calls.
11444#define VK_KHR_shader_subgroup_extended_types 1
11445#define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION 1
11446#define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME "VK_KHR_shader_subgroup_extended_types"
11447typedef VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR;
11448
11449
11450
11451// VK_KHR_8bit_storage is a preprocessor guard. Do not pass it to API calls.
11452#define VK_KHR_8bit_storage 1
11453#define VK_KHR_8BIT_STORAGE_SPEC_VERSION 1
11454#define VK_KHR_8BIT_STORAGE_EXTENSION_NAME "VK_KHR_8bit_storage"
11455typedef VkPhysicalDevice8BitStorageFeatures VkPhysicalDevice8BitStorageFeaturesKHR;
11456
11457
11458
11459// VK_KHR_shader_atomic_int64 is a preprocessor guard. Do not pass it to API calls.
11460#define VK_KHR_shader_atomic_int64 1
11461#define VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION 1
11462#define VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME "VK_KHR_shader_atomic_int64"
11463typedef VkPhysicalDeviceShaderAtomicInt64Features VkPhysicalDeviceShaderAtomicInt64FeaturesKHR;
11464
11465
11466
11467// VK_KHR_shader_clock is a preprocessor guard. Do not pass it to API calls.
11468#define VK_KHR_shader_clock 1
11469#define VK_KHR_SHADER_CLOCK_SPEC_VERSION 1
11470#define VK_KHR_SHADER_CLOCK_EXTENSION_NAME "VK_KHR_shader_clock"
11471typedef struct VkPhysicalDeviceShaderClockFeaturesKHR {
11472 VkStructureType sType;
11473 void* pNext;
11474 VkBool32 shaderSubgroupClock;
11475 VkBool32 shaderDeviceClock;
11476} VkPhysicalDeviceShaderClockFeaturesKHR;
11477
11478
11479
11480// VK_KHR_video_decode_h265 is a preprocessor guard. Do not pass it to API calls.
11481#define VK_KHR_video_decode_h265 1
11482#include "vk_video/vulkan_video_codec_h265std_decode.h"
11483#define VK_KHR_VIDEO_DECODE_H265_SPEC_VERSION 8
11484#define VK_KHR_VIDEO_DECODE_H265_EXTENSION_NAME "VK_KHR_video_decode_h265"
11485typedef struct VkVideoDecodeH265ProfileInfoKHR {
11486 VkStructureType sType;
11487 const void* pNext;
11488 StdVideoH265ProfileIdc stdProfileIdc;
11489} VkVideoDecodeH265ProfileInfoKHR;
11490
11491typedef struct VkVideoDecodeH265CapabilitiesKHR {
11492 VkStructureType sType;
11493 void* pNext;
11494 StdVideoH265LevelIdc maxLevelIdc;
11495} VkVideoDecodeH265CapabilitiesKHR;
11496
11497typedef struct VkVideoDecodeH265SessionParametersAddInfoKHR {
11498 VkStructureType sType;
11499 const void* pNext;
11500 uint32_t stdVPSCount;
11501 const StdVideoH265VideoParameterSet* pStdVPSs;
11502 uint32_t stdSPSCount;
11503 const StdVideoH265SequenceParameterSet* pStdSPSs;
11504 uint32_t stdPPSCount;
11505 const StdVideoH265PictureParameterSet* pStdPPSs;
11506} VkVideoDecodeH265SessionParametersAddInfoKHR;
11507
11508typedef struct VkVideoDecodeH265SessionParametersCreateInfoKHR {
11509 VkStructureType sType;
11510 const void* pNext;
11511 uint32_t maxStdVPSCount;
11512 uint32_t maxStdSPSCount;
11513 uint32_t maxStdPPSCount;
11514 const VkVideoDecodeH265SessionParametersAddInfoKHR* pParametersAddInfo;
11515} VkVideoDecodeH265SessionParametersCreateInfoKHR;
11516
11517typedef struct VkVideoDecodeH265PictureInfoKHR {
11518 VkStructureType sType;
11519 const void* pNext;
11520 const StdVideoDecodeH265PictureInfo* pStdPictureInfo;
11521 uint32_t sliceSegmentCount;
11522 const uint32_t* pSliceSegmentOffsets;
11523} VkVideoDecodeH265PictureInfoKHR;
11524
11525typedef struct VkVideoDecodeH265DpbSlotInfoKHR {
11526 VkStructureType sType;
11527 const void* pNext;
11528 const StdVideoDecodeH265ReferenceInfo* pStdReferenceInfo;
11529} VkVideoDecodeH265DpbSlotInfoKHR;
11530
11531
11532
11533// VK_KHR_global_priority is a preprocessor guard. Do not pass it to API calls.
11534#define VK_KHR_global_priority 1
11535#define VK_KHR_GLOBAL_PRIORITY_SPEC_VERSION 1
11536#define VK_KHR_GLOBAL_PRIORITY_EXTENSION_NAME "VK_KHR_global_priority"
11537#define VK_MAX_GLOBAL_PRIORITY_SIZE_KHR VK_MAX_GLOBAL_PRIORITY_SIZE
11538typedef VkQueueGlobalPriority VkQueueGlobalPriorityKHR;
11539
11540typedef VkDeviceQueueGlobalPriorityCreateInfo VkDeviceQueueGlobalPriorityCreateInfoKHR;
11541
11542typedef VkPhysicalDeviceGlobalPriorityQueryFeatures VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR;
11543
11544typedef VkQueueFamilyGlobalPriorityProperties VkQueueFamilyGlobalPriorityPropertiesKHR;
11545
11546
11547
11548// VK_KHR_driver_properties is a preprocessor guard. Do not pass it to API calls.
11549#define VK_KHR_driver_properties 1
11550#define VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION 1
11551#define VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME "VK_KHR_driver_properties"
11552#define VK_MAX_DRIVER_NAME_SIZE_KHR VK_MAX_DRIVER_NAME_SIZE
11553#define VK_MAX_DRIVER_INFO_SIZE_KHR VK_MAX_DRIVER_INFO_SIZE
11554typedef VkDriverId VkDriverIdKHR;
11555
11556typedef VkConformanceVersion VkConformanceVersionKHR;
11557
11558typedef VkPhysicalDeviceDriverProperties VkPhysicalDeviceDriverPropertiesKHR;
11559
11560
11561
11562// VK_KHR_shader_float_controls is a preprocessor guard. Do not pass it to API calls.
11563#define VK_KHR_shader_float_controls 1
11564#define VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION 4
11565#define VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME "VK_KHR_shader_float_controls"
11566typedef VkShaderFloatControlsIndependence VkShaderFloatControlsIndependenceKHR;
11567
11568typedef VkPhysicalDeviceFloatControlsProperties VkPhysicalDeviceFloatControlsPropertiesKHR;
11569
11570
11571
11572// VK_KHR_depth_stencil_resolve is a preprocessor guard. Do not pass it to API calls.
11573#define VK_KHR_depth_stencil_resolve 1
11574#define VK_KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION 1
11575#define VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME "VK_KHR_depth_stencil_resolve"
11576typedef VkResolveModeFlagBits VkResolveModeFlagBitsKHR;
11577
11578typedef VkResolveModeFlags VkResolveModeFlagsKHR;
11579
11580typedef VkSubpassDescriptionDepthStencilResolve VkSubpassDescriptionDepthStencilResolveKHR;
11581
11582typedef VkPhysicalDeviceDepthStencilResolveProperties VkPhysicalDeviceDepthStencilResolvePropertiesKHR;
11583
11584
11585
11586// VK_KHR_swapchain_mutable_format is a preprocessor guard. Do not pass it to API calls.
11587#define VK_KHR_swapchain_mutable_format 1
11588#define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_SPEC_VERSION 1
11589#define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_EXTENSION_NAME "VK_KHR_swapchain_mutable_format"
11590
11591
11592// VK_KHR_timeline_semaphore is a preprocessor guard. Do not pass it to API calls.
11593#define VK_KHR_timeline_semaphore 1
11594#define VK_KHR_TIMELINE_SEMAPHORE_SPEC_VERSION 2
11595#define VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME "VK_KHR_timeline_semaphore"
11596typedef VkSemaphoreType VkSemaphoreTypeKHR;
11597
11598typedef VkSemaphoreWaitFlagBits VkSemaphoreWaitFlagBitsKHR;
11599
11600typedef VkSemaphoreWaitFlags VkSemaphoreWaitFlagsKHR;
11601
11602typedef VkPhysicalDeviceTimelineSemaphoreFeatures VkPhysicalDeviceTimelineSemaphoreFeaturesKHR;
11603
11604typedef VkPhysicalDeviceTimelineSemaphoreProperties VkPhysicalDeviceTimelineSemaphorePropertiesKHR;
11605
11606typedef VkSemaphoreTypeCreateInfo VkSemaphoreTypeCreateInfoKHR;
11607
11608typedef VkTimelineSemaphoreSubmitInfo VkTimelineSemaphoreSubmitInfoKHR;
11609
11610typedef VkSemaphoreWaitInfo VkSemaphoreWaitInfoKHR;
11611
11612typedef VkSemaphoreSignalInfo VkSemaphoreSignalInfoKHR;
11613
11614typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreCounterValueKHR)(VkDevice device, VkSemaphore semaphore, uint64_t* pValue);
11615typedef VkResult (VKAPI_PTR *PFN_vkWaitSemaphoresKHR)(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout);
11616typedef VkResult (VKAPI_PTR *PFN_vkSignalSemaphoreKHR)(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo);
11617
11618#ifndef VK_NO_PROTOTYPES
11619#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11620VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreCounterValueKHR(
11621 VkDevice device,
11622 VkSemaphore semaphore,
11623 uint64_t* pValue);
11624#endif
11625
11626#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11627VKAPI_ATTR VkResult VKAPI_CALL vkWaitSemaphoresKHR(
11628 VkDevice device,
11629 const VkSemaphoreWaitInfo* pWaitInfo,
11630 uint64_t timeout);
11631#endif
11632
11633#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11634VKAPI_ATTR VkResult VKAPI_CALL vkSignalSemaphoreKHR(
11635 VkDevice device,
11636 const VkSemaphoreSignalInfo* pSignalInfo);
11637#endif
11638#endif
11639
11640
11641// VK_KHR_vulkan_memory_model is a preprocessor guard. Do not pass it to API calls.
11642#define VK_KHR_vulkan_memory_model 1
11643#define VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION 3
11644#define VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME "VK_KHR_vulkan_memory_model"
11645typedef VkPhysicalDeviceVulkanMemoryModelFeatures VkPhysicalDeviceVulkanMemoryModelFeaturesKHR;
11646
11647
11648
11649// VK_KHR_shader_terminate_invocation is a preprocessor guard. Do not pass it to API calls.
11650#define VK_KHR_shader_terminate_invocation 1
11651#define VK_KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION 1
11652#define VK_KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME "VK_KHR_shader_terminate_invocation"
11653typedef VkPhysicalDeviceShaderTerminateInvocationFeatures VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR;
11654
11655
11656
11657// VK_KHR_fragment_shading_rate is a preprocessor guard. Do not pass it to API calls.
11658#define VK_KHR_fragment_shading_rate 1
11659#define VK_KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION 2
11660#define VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME "VK_KHR_fragment_shading_rate"
11661
11662typedef enum VkFragmentShadingRateCombinerOpKHR {
11663 VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0,
11664 VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1,
11665 VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2,
11666 VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3,
11667 VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4,
11668 VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR = 0x7FFFFFFF
11669} VkFragmentShadingRateCombinerOpKHR;
11670typedef struct VkFragmentShadingRateAttachmentInfoKHR {
11671 VkStructureType sType;
11672 const void* pNext;
11673 const VkAttachmentReference2* pFragmentShadingRateAttachment;
11674 VkExtent2D shadingRateAttachmentTexelSize;
11675} VkFragmentShadingRateAttachmentInfoKHR;
11676
11677typedef struct VkPipelineFragmentShadingRateStateCreateInfoKHR {
11678 VkStructureType sType;
11679 const void* pNext;
11680 VkExtent2D fragmentSize;
11681 VkFragmentShadingRateCombinerOpKHR combinerOps[2];
11682} VkPipelineFragmentShadingRateStateCreateInfoKHR;
11683
11684typedef struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR {
11685 VkStructureType sType;
11686 void* pNext;
11687 VkBool32 pipelineFragmentShadingRate;
11688 VkBool32 primitiveFragmentShadingRate;
11689 VkBool32 attachmentFragmentShadingRate;
11690} VkPhysicalDeviceFragmentShadingRateFeaturesKHR;
11691
11692typedef struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR {
11693 VkStructureType sType;
11694 void* pNext;
11695 VkExtent2D minFragmentShadingRateAttachmentTexelSize;
11696 VkExtent2D maxFragmentShadingRateAttachmentTexelSize;
11697 uint32_t maxFragmentShadingRateAttachmentTexelSizeAspectRatio;
11698 VkBool32 primitiveFragmentShadingRateWithMultipleViewports;
11699 VkBool32 layeredShadingRateAttachments;
11700 VkBool32 fragmentShadingRateNonTrivialCombinerOps;
11701 VkExtent2D maxFragmentSize;
11702 uint32_t maxFragmentSizeAspectRatio;
11703 uint32_t maxFragmentShadingRateCoverageSamples;
11704 VkSampleCountFlagBits maxFragmentShadingRateRasterizationSamples;
11705 VkBool32 fragmentShadingRateWithShaderDepthStencilWrites;
11706 VkBool32 fragmentShadingRateWithSampleMask;
11707 VkBool32 fragmentShadingRateWithShaderSampleMask;
11708 VkBool32 fragmentShadingRateWithConservativeRasterization;
11709 VkBool32 fragmentShadingRateWithFragmentShaderInterlock;
11710 VkBool32 fragmentShadingRateWithCustomSampleLocations;
11711 VkBool32 fragmentShadingRateStrictMultiplyCombiner;
11712} VkPhysicalDeviceFragmentShadingRatePropertiesKHR;
11713
11714typedef struct VkPhysicalDeviceFragmentShadingRateKHR {
11715 VkStructureType sType;
11716 void* pNext;
11717 VkSampleCountFlags sampleCounts;
11718 VkExtent2D fragmentSize;
11719} VkPhysicalDeviceFragmentShadingRateKHR;
11720
11721typedef struct VkRenderingFragmentShadingRateAttachmentInfoKHR {
11722 VkStructureType sType;
11723 const void* pNext;
11724 VkImageView imageView;
11725 VkImageLayout imageLayout;
11726 VkExtent2D shadingRateAttachmentTexelSize;
11727} VkRenderingFragmentShadingRateAttachmentInfoKHR;
11728
11729typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pFragmentShadingRateCount, VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates);
11730typedef void (VKAPI_PTR *PFN_vkCmdSetFragmentShadingRateKHR)(VkCommandBuffer commandBuffer, const VkExtent2D* pFragmentSize, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]);
11731
11732#ifndef VK_NO_PROTOTYPES
11733#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11734VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceFragmentShadingRatesKHR(
11735 VkPhysicalDevice physicalDevice,
11736 uint32_t* pFragmentShadingRateCount,
11737 VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates);
11738#endif
11739
11740#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11741VKAPI_ATTR void VKAPI_CALL vkCmdSetFragmentShadingRateKHR(
11742 VkCommandBuffer commandBuffer,
11743 const VkExtent2D* pFragmentSize,
11744 const VkFragmentShadingRateCombinerOpKHR combinerOps[2]);
11745#endif
11746#endif
11747
11748
11749// VK_KHR_shader_constant_data is a preprocessor guard. Do not pass it to API calls.
11750#define VK_KHR_shader_constant_data 1
11751#define VK_KHR_SHADER_CONSTANT_DATA_SPEC_VERSION 1
11752#define VK_KHR_SHADER_CONSTANT_DATA_EXTENSION_NAME "VK_KHR_shader_constant_data"
11753typedef struct VkPhysicalDeviceShaderConstantDataFeaturesKHR {
11754 VkStructureType sType;
11755 void* pNext;
11756 VkBool32 shaderConstantData;
11757} VkPhysicalDeviceShaderConstantDataFeaturesKHR;
11758
11759
11760
11761// VK_KHR_dynamic_rendering_local_read is a preprocessor guard. Do not pass it to API calls.
11762#define VK_KHR_dynamic_rendering_local_read 1
11763#define VK_KHR_DYNAMIC_RENDERING_LOCAL_READ_SPEC_VERSION 1
11764#define VK_KHR_DYNAMIC_RENDERING_LOCAL_READ_EXTENSION_NAME "VK_KHR_dynamic_rendering_local_read"
11765typedef VkPhysicalDeviceDynamicRenderingLocalReadFeatures VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR;
11766
11767typedef VkRenderingAttachmentLocationInfo VkRenderingAttachmentLocationInfoKHR;
11768
11769typedef VkRenderingInputAttachmentIndexInfo VkRenderingInputAttachmentIndexInfoKHR;
11770
11771typedef void (VKAPI_PTR *PFN_vkCmdSetRenderingAttachmentLocationsKHR)(VkCommandBuffer commandBuffer, const VkRenderingAttachmentLocationInfo* pLocationInfo);
11772typedef void (VKAPI_PTR *PFN_vkCmdSetRenderingInputAttachmentIndicesKHR)(VkCommandBuffer commandBuffer, const VkRenderingInputAttachmentIndexInfo* pInputAttachmentIndexInfo);
11773
11774#ifndef VK_NO_PROTOTYPES
11775#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11776VKAPI_ATTR void VKAPI_CALL vkCmdSetRenderingAttachmentLocationsKHR(
11777 VkCommandBuffer commandBuffer,
11778 const VkRenderingAttachmentLocationInfo* pLocationInfo);
11779#endif
11780
11781#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11782VKAPI_ATTR void VKAPI_CALL vkCmdSetRenderingInputAttachmentIndicesKHR(
11783 VkCommandBuffer commandBuffer,
11784 const VkRenderingInputAttachmentIndexInfo* pInputAttachmentIndexInfo);
11785#endif
11786#endif
11787
11788
11789// VK_KHR_shader_abort is a preprocessor guard. Do not pass it to API calls.
11790#define VK_KHR_shader_abort 1
11791#define VK_KHR_SHADER_ABORT_SPEC_VERSION 1
11792#define VK_KHR_SHADER_ABORT_EXTENSION_NAME "VK_KHR_shader_abort"
11793typedef struct VkPhysicalDeviceShaderAbortFeaturesKHR {
11794 VkStructureType sType;
11795 void* pNext;
11796 VkBool32 shaderAbort;
11797} VkPhysicalDeviceShaderAbortFeaturesKHR;
11798
11799typedef struct VkDeviceFaultShaderAbortMessageInfoKHR {
11800 VkStructureType sType;
11801 void* pNext;
11802 uint64_t messageDataSize;
11803 void* pMessageData;
11804} VkDeviceFaultShaderAbortMessageInfoKHR;
11805
11806typedef struct VkPhysicalDeviceShaderAbortPropertiesKHR {
11807 VkStructureType sType;
11808 void* pNext;
11809 uint64_t maxShaderAbortMessageSize;
11810} VkPhysicalDeviceShaderAbortPropertiesKHR;
11811
11812
11813
11814// VK_KHR_shader_quad_control is a preprocessor guard. Do not pass it to API calls.
11815#define VK_KHR_shader_quad_control 1
11816#define VK_KHR_SHADER_QUAD_CONTROL_SPEC_VERSION 1
11817#define VK_KHR_SHADER_QUAD_CONTROL_EXTENSION_NAME "VK_KHR_shader_quad_control"
11818typedef struct VkPhysicalDeviceShaderQuadControlFeaturesKHR {
11819 VkStructureType sType;
11820 void* pNext;
11821 VkBool32 shaderQuadControl;
11822} VkPhysicalDeviceShaderQuadControlFeaturesKHR;
11823
11824
11825
11826// VK_KHR_spirv_1_4 is a preprocessor guard. Do not pass it to API calls.
11827#define VK_KHR_spirv_1_4 1
11828#define VK_KHR_SPIRV_1_4_SPEC_VERSION 1
11829#define VK_KHR_SPIRV_1_4_EXTENSION_NAME "VK_KHR_spirv_1_4"
11830
11831
11832// VK_KHR_surface_protected_capabilities is a preprocessor guard. Do not pass it to API calls.
11833#define VK_KHR_surface_protected_capabilities 1
11834#define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_SPEC_VERSION 1
11835#define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME "VK_KHR_surface_protected_capabilities"
11836typedef struct VkSurfaceProtectedCapabilitiesKHR {
11837 VkStructureType sType;
11838 void* pNext;
11839 VkBool32 supportsProtected;
11840} VkSurfaceProtectedCapabilitiesKHR;
11841
11842
11843
11844// VK_KHR_separate_depth_stencil_layouts is a preprocessor guard. Do not pass it to API calls.
11845#define VK_KHR_separate_depth_stencil_layouts 1
11846#define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_SPEC_VERSION 1
11847#define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME "VK_KHR_separate_depth_stencil_layouts"
11848typedef VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR;
11849
11850typedef VkAttachmentReferenceStencilLayout VkAttachmentReferenceStencilLayoutKHR;
11851
11852typedef VkAttachmentDescriptionStencilLayout VkAttachmentDescriptionStencilLayoutKHR;
11853
11854
11855
11856// VK_KHR_present_wait is a preprocessor guard. Do not pass it to API calls.
11857#define VK_KHR_present_wait 1
11858#define VK_KHR_PRESENT_WAIT_SPEC_VERSION 1
11859#define VK_KHR_PRESENT_WAIT_EXTENSION_NAME "VK_KHR_present_wait"
11860typedef struct VkPhysicalDevicePresentWaitFeaturesKHR {
11861 VkStructureType sType;
11862 void* pNext;
11863 VkBool32 presentWait;
11864} VkPhysicalDevicePresentWaitFeaturesKHR;
11865
11866typedef VkResult (VKAPI_PTR *PFN_vkWaitForPresentKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t presentId, uint64_t timeout);
11867
11868#ifndef VK_NO_PROTOTYPES
11869#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11870VKAPI_ATTR VkResult VKAPI_CALL vkWaitForPresentKHR(
11871 VkDevice device,
11872 VkSwapchainKHR swapchain,
11873 uint64_t presentId,
11874 uint64_t timeout);
11875#endif
11876#endif
11877
11878
11879// VK_KHR_uniform_buffer_standard_layout is a preprocessor guard. Do not pass it to API calls.
11880#define VK_KHR_uniform_buffer_standard_layout 1
11881#define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION 1
11882#define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME "VK_KHR_uniform_buffer_standard_layout"
11883typedef VkPhysicalDeviceUniformBufferStandardLayoutFeatures VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR;
11884
11885
11886
11887// VK_KHR_buffer_device_address is a preprocessor guard. Do not pass it to API calls.
11888#define VK_KHR_buffer_device_address 1
11889#define VK_KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 1
11890#define VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_KHR_buffer_device_address"
11891typedef VkPhysicalDeviceBufferDeviceAddressFeatures VkPhysicalDeviceBufferDeviceAddressFeaturesKHR;
11892
11893typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoKHR;
11894
11895typedef VkBufferOpaqueCaptureAddressCreateInfo VkBufferOpaqueCaptureAddressCreateInfoKHR;
11896
11897typedef VkMemoryOpaqueCaptureAddressAllocateInfo VkMemoryOpaqueCaptureAddressAllocateInfoKHR;
11898
11899typedef VkDeviceMemoryOpaqueCaptureAddressInfo VkDeviceMemoryOpaqueCaptureAddressInfoKHR;
11900
11901typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddressKHR)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
11902typedef uint64_t (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureAddressKHR)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
11903typedef uint64_t (VKAPI_PTR *PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR)(VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
11904
11905#ifndef VK_NO_PROTOTYPES
11906#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11907VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddressKHR(
11908 VkDevice device,
11909 const VkBufferDeviceAddressInfo* pInfo);
11910#endif
11911
11912#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11913VKAPI_ATTR uint64_t VKAPI_CALL vkGetBufferOpaqueCaptureAddressKHR(
11914 VkDevice device,
11915 const VkBufferDeviceAddressInfo* pInfo);
11916#endif
11917
11918#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11919VKAPI_ATTR uint64_t VKAPI_CALL vkGetDeviceMemoryOpaqueCaptureAddressKHR(
11920 VkDevice device,
11921 const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
11922#endif
11923#endif
11924
11925
11926// VK_KHR_deferred_host_operations is a preprocessor guard. Do not pass it to API calls.
11927#define VK_KHR_deferred_host_operations 1
11928VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeferredOperationKHR)
11929#define VK_KHR_DEFERRED_HOST_OPERATIONS_SPEC_VERSION 4
11930#define VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME "VK_KHR_deferred_host_operations"
11931typedef VkResult (VKAPI_PTR *PFN_vkCreateDeferredOperationKHR)(VkDevice device, const VkAllocationCallbacks* pAllocator, VkDeferredOperationKHR* pDeferredOperation);
11932typedef void (VKAPI_PTR *PFN_vkDestroyDeferredOperationKHR)(VkDevice device, VkDeferredOperationKHR operation, const VkAllocationCallbacks* pAllocator);
11933typedef uint32_t (VKAPI_PTR *PFN_vkGetDeferredOperationMaxConcurrencyKHR)(VkDevice device, VkDeferredOperationKHR operation);
11934typedef VkResult (VKAPI_PTR *PFN_vkGetDeferredOperationResultKHR)(VkDevice device, VkDeferredOperationKHR operation);
11935typedef VkResult (VKAPI_PTR *PFN_vkDeferredOperationJoinKHR)(VkDevice device, VkDeferredOperationKHR operation);
11936
11937#ifndef VK_NO_PROTOTYPES
11938#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11939VKAPI_ATTR VkResult VKAPI_CALL vkCreateDeferredOperationKHR(
11940 VkDevice device,
11941 const VkAllocationCallbacks* pAllocator,
11942 VkDeferredOperationKHR* pDeferredOperation);
11943#endif
11944
11945#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11946VKAPI_ATTR void VKAPI_CALL vkDestroyDeferredOperationKHR(
11947 VkDevice device,
11948 VkDeferredOperationKHR operation,
11949 const VkAllocationCallbacks* pAllocator);
11950#endif
11951
11952#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11953VKAPI_ATTR uint32_t VKAPI_CALL vkGetDeferredOperationMaxConcurrencyKHR(
11954 VkDevice device,
11955 VkDeferredOperationKHR operation);
11956#endif
11957
11958#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11959VKAPI_ATTR VkResult VKAPI_CALL vkGetDeferredOperationResultKHR(
11960 VkDevice device,
11961 VkDeferredOperationKHR operation);
11962#endif
11963
11964#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11965VKAPI_ATTR VkResult VKAPI_CALL vkDeferredOperationJoinKHR(
11966 VkDevice device,
11967 VkDeferredOperationKHR operation);
11968#endif
11969#endif
11970
11971
11972// VK_KHR_pipeline_executable_properties is a preprocessor guard. Do not pass it to API calls.
11973#define VK_KHR_pipeline_executable_properties 1
11974#define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION 1
11975#define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME "VK_KHR_pipeline_executable_properties"
11976
11977typedef enum VkPipelineExecutableStatisticFormatKHR {
11978 VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0,
11979 VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1,
11980 VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2,
11981 VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3,
11982 VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 0x7FFFFFFF
11983} VkPipelineExecutableStatisticFormatKHR;
11984typedef struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR {
11985 VkStructureType sType;
11986 void* pNext;
11987 VkBool32 pipelineExecutableInfo;
11988} VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
11989
11990typedef struct VkPipelineInfoKHR {
11991 VkStructureType sType;
11992 const void* pNext;
11993 VkPipeline pipeline;
11994} VkPipelineInfoKHR;
11995
11996typedef struct VkPipelineExecutablePropertiesKHR {
11997 VkStructureType sType;
11998 void* pNext;
11999 VkShaderStageFlags stages;
12000 char name[VK_MAX_DESCRIPTION_SIZE];
12001 char description[VK_MAX_DESCRIPTION_SIZE];
12002 uint32_t subgroupSize;
12003} VkPipelineExecutablePropertiesKHR;
12004
12005typedef struct VkPipelineExecutableInfoKHR {
12006 VkStructureType sType;
12007 const void* pNext;
12008 VkPipeline pipeline;
12009 uint32_t executableIndex;
12010} VkPipelineExecutableInfoKHR;
12011
12012typedef union VkPipelineExecutableStatisticValueKHR {
12013 VkBool32 b32;
12014 int64_t i64;
12015 uint64_t u64;
12016 double f64;
12017} VkPipelineExecutableStatisticValueKHR;
12018
12019typedef struct VkPipelineExecutableStatisticKHR {
12020 VkStructureType sType;
12021 void* pNext;
12022 char name[VK_MAX_DESCRIPTION_SIZE];
12023 char description[VK_MAX_DESCRIPTION_SIZE];
12024 VkPipelineExecutableStatisticFormatKHR format;
12025 VkPipelineExecutableStatisticValueKHR value;
12026} VkPipelineExecutableStatisticKHR;
12027
12028typedef struct VkPipelineExecutableInternalRepresentationKHR {
12029 VkStructureType sType;
12030 void* pNext;
12031 char name[VK_MAX_DESCRIPTION_SIZE];
12032 char description[VK_MAX_DESCRIPTION_SIZE];
12033 VkBool32 isText;
12034 size_t dataSize;
12035 void* pData;
12036} VkPipelineExecutableInternalRepresentationKHR;
12037
12038typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutablePropertiesKHR)(VkDevice device, const VkPipelineInfoKHR* pPipelineInfo, uint32_t* pExecutableCount, VkPipelineExecutablePropertiesKHR* pProperties);
12039typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutableStatisticsKHR)(VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics);
12040typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutableInternalRepresentationsKHR)(VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations);
12041
12042#ifndef VK_NO_PROTOTYPES
12043#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12044VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutablePropertiesKHR(
12045 VkDevice device,
12046 const VkPipelineInfoKHR* pPipelineInfo,
12047 uint32_t* pExecutableCount,
12048 VkPipelineExecutablePropertiesKHR* pProperties);
12049#endif
12050
12051#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12052VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableStatisticsKHR(
12053 VkDevice device,
12054 const VkPipelineExecutableInfoKHR* pExecutableInfo,
12055 uint32_t* pStatisticCount,
12056 VkPipelineExecutableStatisticKHR* pStatistics);
12057#endif
12058
12059#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12060VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableInternalRepresentationsKHR(
12061 VkDevice device,
12062 const VkPipelineExecutableInfoKHR* pExecutableInfo,
12063 uint32_t* pInternalRepresentationCount,
12064 VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations);
12065#endif
12066#endif
12067
12068
12069// VK_KHR_map_memory2 is a preprocessor guard. Do not pass it to API calls.
12070#define VK_KHR_map_memory2 1
12071#define VK_KHR_MAP_MEMORY_2_SPEC_VERSION 1
12072#define VK_KHR_MAP_MEMORY_2_EXTENSION_NAME "VK_KHR_map_memory2"
12073typedef VkMemoryUnmapFlagBits VkMemoryUnmapFlagBitsKHR;
12074
12075typedef VkMemoryUnmapFlags VkMemoryUnmapFlagsKHR;
12076
12077typedef VkMemoryMapInfo VkMemoryMapInfoKHR;
12078
12079typedef VkMemoryUnmapInfo VkMemoryUnmapInfoKHR;
12080
12081typedef VkResult (VKAPI_PTR *PFN_vkMapMemory2KHR)(VkDevice device, const VkMemoryMapInfo* pMemoryMapInfo, void** ppData);
12082typedef VkResult (VKAPI_PTR *PFN_vkUnmapMemory2KHR)(VkDevice device, const VkMemoryUnmapInfo* pMemoryUnmapInfo);
12083
12084#ifndef VK_NO_PROTOTYPES
12085#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12086VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory2KHR(
12087 VkDevice device,
12088 const VkMemoryMapInfo* pMemoryMapInfo,
12089 void** ppData);
12090#endif
12091
12092#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12093VKAPI_ATTR VkResult VKAPI_CALL vkUnmapMemory2KHR(
12094 VkDevice device,
12095 const VkMemoryUnmapInfo* pMemoryUnmapInfo);
12096#endif
12097#endif
12098
12099
12100// VK_KHR_shader_integer_dot_product is a preprocessor guard. Do not pass it to API calls.
12101#define VK_KHR_shader_integer_dot_product 1
12102#define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION 1
12103#define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME "VK_KHR_shader_integer_dot_product"
12104typedef VkPhysicalDeviceShaderIntegerDotProductFeatures VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR;
12105
12106typedef VkPhysicalDeviceShaderIntegerDotProductProperties VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR;
12107
12108
12109
12110// VK_KHR_pipeline_library is a preprocessor guard. Do not pass it to API calls.
12111#define VK_KHR_pipeline_library 1
12112#define VK_KHR_PIPELINE_LIBRARY_SPEC_VERSION 1
12113#define VK_KHR_PIPELINE_LIBRARY_EXTENSION_NAME "VK_KHR_pipeline_library"
12114typedef struct VkPipelineLibraryCreateInfoKHR {
12115 VkStructureType sType;
12116 const void* pNext;
12117 uint32_t libraryCount;
12118 const VkPipeline* pLibraries;
12119} VkPipelineLibraryCreateInfoKHR;
12120
12121
12122
12123// VK_KHR_shader_non_semantic_info is a preprocessor guard. Do not pass it to API calls.
12124#define VK_KHR_shader_non_semantic_info 1
12125#define VK_KHR_SHADER_NON_SEMANTIC_INFO_SPEC_VERSION 1
12126#define VK_KHR_SHADER_NON_SEMANTIC_INFO_EXTENSION_NAME "VK_KHR_shader_non_semantic_info"
12127
12128
12129// VK_KHR_present_id is a preprocessor guard. Do not pass it to API calls.
12130#define VK_KHR_present_id 1
12131#define VK_KHR_PRESENT_ID_SPEC_VERSION 1
12132#define VK_KHR_PRESENT_ID_EXTENSION_NAME "VK_KHR_present_id"
12133typedef struct VkPresentIdKHR {
12134 VkStructureType sType;
12135 const void* pNext;
12136 uint32_t swapchainCount;
12137 const uint64_t* pPresentIds;
12138} VkPresentIdKHR;
12139
12140typedef struct VkPhysicalDevicePresentIdFeaturesKHR {
12141 VkStructureType sType;
12142 void* pNext;
12143 VkBool32 presentId;
12144} VkPhysicalDevicePresentIdFeaturesKHR;
12145
12146
12147
12148// VK_KHR_video_encode_queue is a preprocessor guard. Do not pass it to API calls.
12149#define VK_KHR_video_encode_queue 1
12150#define VK_KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION 12
12151#define VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME "VK_KHR_video_encode_queue"
12152
12153typedef enum VkVideoEncodeTuningModeKHR {
12154 VK_VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHR = 0,
12155 VK_VIDEO_ENCODE_TUNING_MODE_HIGH_QUALITY_KHR = 1,
12156 VK_VIDEO_ENCODE_TUNING_MODE_LOW_LATENCY_KHR = 2,
12157 VK_VIDEO_ENCODE_TUNING_MODE_ULTRA_LOW_LATENCY_KHR = 3,
12158 VK_VIDEO_ENCODE_TUNING_MODE_LOSSLESS_KHR = 4,
12159 VK_VIDEO_ENCODE_TUNING_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
12160} VkVideoEncodeTuningModeKHR;
12161
12162typedef enum VkVideoEncodeFlagBitsKHR {
12163 VK_VIDEO_ENCODE_INTRA_REFRESH_BIT_KHR = 0x00000004,
12164 VK_VIDEO_ENCODE_WITH_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x00000001,
12165 VK_VIDEO_ENCODE_WITH_EMPHASIS_MAP_BIT_KHR = 0x00000002,
12166 VK_VIDEO_ENCODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
12167} VkVideoEncodeFlagBitsKHR;
12168typedef VkFlags VkVideoEncodeFlagsKHR;
12169
12170typedef enum VkVideoEncodeCapabilityFlagBitsKHR {
12171 VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR = 0x00000001,
12172 VK_VIDEO_ENCODE_CAPABILITY_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_DETECTION_BIT_KHR = 0x00000002,
12173 VK_VIDEO_ENCODE_CAPABILITY_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x00000004,
12174 VK_VIDEO_ENCODE_CAPABILITY_EMPHASIS_MAP_BIT_KHR = 0x00000008,
12175 VK_VIDEO_ENCODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
12176} VkVideoEncodeCapabilityFlagBitsKHR;
12177typedef VkFlags VkVideoEncodeCapabilityFlagsKHR;
12178
12179typedef enum VkVideoEncodeRateControlModeFlagBitsKHR {
12180 VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR = 0,
12181 VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR = 0x00000001,
12182 VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR = 0x00000002,
12183 VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR = 0x00000004,
12184 VK_VIDEO_ENCODE_RATE_CONTROL_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
12185} VkVideoEncodeRateControlModeFlagBitsKHR;
12186typedef VkFlags VkVideoEncodeRateControlModeFlagsKHR;
12187
12188typedef enum VkVideoEncodeFeedbackFlagBitsKHR {
12189 VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BUFFER_OFFSET_BIT_KHR = 0x00000001,
12190 VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BYTES_WRITTEN_BIT_KHR = 0x00000002,
12191 VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_HAS_OVERRIDES_BIT_KHR = 0x00000004,
12192 VK_VIDEO_ENCODE_FEEDBACK_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
12193} VkVideoEncodeFeedbackFlagBitsKHR;
12194typedef VkFlags VkVideoEncodeFeedbackFlagsKHR;
12195
12196typedef enum VkVideoEncodeUsageFlagBitsKHR {
12197 VK_VIDEO_ENCODE_USAGE_DEFAULT_KHR = 0,
12198 VK_VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHR = 0x00000001,
12199 VK_VIDEO_ENCODE_USAGE_STREAMING_BIT_KHR = 0x00000002,
12200 VK_VIDEO_ENCODE_USAGE_RECORDING_BIT_KHR = 0x00000004,
12201 VK_VIDEO_ENCODE_USAGE_CONFERENCING_BIT_KHR = 0x00000008,
12202 VK_VIDEO_ENCODE_USAGE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
12203} VkVideoEncodeUsageFlagBitsKHR;
12204typedef VkFlags VkVideoEncodeUsageFlagsKHR;
12205
12206typedef enum VkVideoEncodeContentFlagBitsKHR {
12207 VK_VIDEO_ENCODE_CONTENT_DEFAULT_KHR = 0,
12208 VK_VIDEO_ENCODE_CONTENT_CAMERA_BIT_KHR = 0x00000001,
12209 VK_VIDEO_ENCODE_CONTENT_DESKTOP_BIT_KHR = 0x00000002,
12210 VK_VIDEO_ENCODE_CONTENT_RENDERED_BIT_KHR = 0x00000004,
12211 VK_VIDEO_ENCODE_CONTENT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
12212} VkVideoEncodeContentFlagBitsKHR;
12213typedef VkFlags VkVideoEncodeContentFlagsKHR;
12214typedef VkFlags VkVideoEncodeRateControlFlagsKHR;
12215typedef struct VkVideoEncodeInfoKHR {
12216 VkStructureType sType;
12217 const void* pNext;
12218 VkVideoEncodeFlagsKHR flags;
12219 VkBuffer dstBuffer;
12220 VkDeviceSize dstBufferOffset;
12221 VkDeviceSize dstBufferRange;
12222 VkVideoPictureResourceInfoKHR srcPictureResource;
12223 const VkVideoReferenceSlotInfoKHR* pSetupReferenceSlot;
12224 uint32_t referenceSlotCount;
12225 const VkVideoReferenceSlotInfoKHR* pReferenceSlots;
12226 uint32_t precedingExternallyEncodedBytes;
12227} VkVideoEncodeInfoKHR;
12228
12229typedef struct VkVideoEncodeCapabilitiesKHR {
12230 VkStructureType sType;
12231 void* pNext;
12232 VkVideoEncodeCapabilityFlagsKHR flags;
12233 VkVideoEncodeRateControlModeFlagsKHR rateControlModes;
12234 uint32_t maxRateControlLayers;
12235 uint64_t maxBitrate;
12236 uint32_t maxQualityLevels;
12237 VkExtent2D encodeInputPictureGranularity;
12238 VkVideoEncodeFeedbackFlagsKHR supportedEncodeFeedbackFlags;
12239} VkVideoEncodeCapabilitiesKHR;
12240
12241typedef struct VkQueryPoolVideoEncodeFeedbackCreateInfoKHR {
12242 VkStructureType sType;
12243 const void* pNext;
12244 VkVideoEncodeFeedbackFlagsKHR encodeFeedbackFlags;
12245} VkQueryPoolVideoEncodeFeedbackCreateInfoKHR;
12246
12247typedef struct VkVideoEncodeUsageInfoKHR {
12248 VkStructureType sType;
12249 const void* pNext;
12250 VkVideoEncodeUsageFlagsKHR videoUsageHints;
12251 VkVideoEncodeContentFlagsKHR videoContentHints;
12252 VkVideoEncodeTuningModeKHR tuningMode;
12253} VkVideoEncodeUsageInfoKHR;
12254
12255typedef struct VkVideoEncodeRateControlLayerInfoKHR {
12256 VkStructureType sType;
12257 const void* pNext;
12258 uint64_t averageBitrate;
12259 uint64_t maxBitrate;
12260 uint32_t frameRateNumerator;
12261 uint32_t frameRateDenominator;
12262} VkVideoEncodeRateControlLayerInfoKHR;
12263
12264typedef struct VkVideoEncodeRateControlInfoKHR {
12265 VkStructureType sType;
12266 const void* pNext;
12267 VkVideoEncodeRateControlFlagsKHR flags;
12268 VkVideoEncodeRateControlModeFlagBitsKHR rateControlMode;
12269 uint32_t layerCount;
12270 const VkVideoEncodeRateControlLayerInfoKHR* pLayers;
12271 uint32_t virtualBufferSizeInMs;
12272 uint32_t initialVirtualBufferSizeInMs;
12273} VkVideoEncodeRateControlInfoKHR;
12274
12275typedef struct VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR {
12276 VkStructureType sType;
12277 const void* pNext;
12278 const VkVideoProfileInfoKHR* pVideoProfile;
12279 uint32_t qualityLevel;
12280} VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR;
12281
12282typedef struct VkVideoEncodeQualityLevelPropertiesKHR {
12283 VkStructureType sType;
12284 void* pNext;
12285 VkVideoEncodeRateControlModeFlagBitsKHR preferredRateControlMode;
12286 uint32_t preferredRateControlLayerCount;
12287} VkVideoEncodeQualityLevelPropertiesKHR;
12288
12289typedef struct VkVideoEncodeQualityLevelInfoKHR {
12290 VkStructureType sType;
12291 const void* pNext;
12292 uint32_t qualityLevel;
12293} VkVideoEncodeQualityLevelInfoKHR;
12294
12295typedef struct VkVideoEncodeSessionParametersGetInfoKHR {
12296 VkStructureType sType;
12297 const void* pNext;
12298 VkVideoSessionParametersKHR videoSessionParameters;
12299} VkVideoEncodeSessionParametersGetInfoKHR;
12300
12301typedef struct VkVideoEncodeSessionParametersFeedbackInfoKHR {
12302 VkStructureType sType;
12303 void* pNext;
12304 VkBool32 hasOverrides;
12305} VkVideoEncodeSessionParametersFeedbackInfoKHR;
12306
12307typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* pQualityLevelInfo, VkVideoEncodeQualityLevelPropertiesKHR* pQualityLevelProperties);
12308typedef VkResult (VKAPI_PTR *PFN_vkGetEncodedVideoSessionParametersKHR)(VkDevice device, const VkVideoEncodeSessionParametersGetInfoKHR* pVideoSessionParametersInfo, VkVideoEncodeSessionParametersFeedbackInfoKHR* pFeedbackInfo, size_t* pDataSize, void* pData);
12309typedef void (VKAPI_PTR *PFN_vkCmdEncodeVideoKHR)(VkCommandBuffer commandBuffer, const VkVideoEncodeInfoKHR* pEncodeInfo);
12310
12311#ifndef VK_NO_PROTOTYPES
12312#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12313VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(
12314 VkPhysicalDevice physicalDevice,
12315 const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* pQualityLevelInfo,
12316 VkVideoEncodeQualityLevelPropertiesKHR* pQualityLevelProperties);
12317#endif
12318
12319#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12320VKAPI_ATTR VkResult VKAPI_CALL vkGetEncodedVideoSessionParametersKHR(
12321 VkDevice device,
12322 const VkVideoEncodeSessionParametersGetInfoKHR* pVideoSessionParametersInfo,
12323 VkVideoEncodeSessionParametersFeedbackInfoKHR* pFeedbackInfo,
12324 size_t* pDataSize,
12325 void* pData);
12326#endif
12327
12328#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12329VKAPI_ATTR void VKAPI_CALL vkCmdEncodeVideoKHR(
12330 VkCommandBuffer commandBuffer,
12331 const VkVideoEncodeInfoKHR* pEncodeInfo);
12332#endif
12333#endif
12334
12335
12336// VK_KHR_synchronization2 is a preprocessor guard. Do not pass it to API calls.
12337#define VK_KHR_synchronization2 1
12338#define VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION 1
12339#define VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME "VK_KHR_synchronization2"
12340typedef VkPipelineStageFlags2 VkPipelineStageFlags2KHR;
12341
12342typedef VkPipelineStageFlagBits2 VkPipelineStageFlagBits2KHR;
12343
12344typedef VkAccessFlags2 VkAccessFlags2KHR;
12345
12346typedef VkAccessFlagBits2 VkAccessFlagBits2KHR;
12347
12348typedef VkSubmitFlagBits VkSubmitFlagBitsKHR;
12349
12350typedef VkSubmitFlags VkSubmitFlagsKHR;
12351
12352typedef VkMemoryBarrier2 VkMemoryBarrier2KHR;
12353
12354typedef VkBufferMemoryBarrier2 VkBufferMemoryBarrier2KHR;
12355
12356typedef VkImageMemoryBarrier2 VkImageMemoryBarrier2KHR;
12357
12358typedef VkDependencyInfo VkDependencyInfoKHR;
12359
12360typedef VkSubmitInfo2 VkSubmitInfo2KHR;
12361
12362typedef VkSemaphoreSubmitInfo VkSemaphoreSubmitInfoKHR;
12363
12364typedef VkCommandBufferSubmitInfo VkCommandBufferSubmitInfoKHR;
12365
12366typedef VkPhysicalDeviceSynchronization2Features VkPhysicalDeviceSynchronization2FeaturesKHR;
12367
12368typedef void (VKAPI_PTR *PFN_vkCmdSetEvent2KHR)(VkCommandBuffer commandBuffer, VkEvent event, const VkDependencyInfo* pDependencyInfo);
12369typedef void (VKAPI_PTR *PFN_vkCmdResetEvent2KHR)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags2 stageMask);
12370typedef void (VKAPI_PTR *PFN_vkCmdWaitEvents2KHR)(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, const VkDependencyInfo* pDependencyInfos);
12371typedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier2KHR)(VkCommandBuffer commandBuffer, const VkDependencyInfo* pDependencyInfo);
12372typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp2KHR)(VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkQueryPool queryPool, uint32_t query);
12373typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit2KHR)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo2* pSubmits, VkFence fence);
12374
12375#ifndef VK_NO_PROTOTYPES
12376#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12377VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent2KHR(
12378 VkCommandBuffer commandBuffer,
12379 VkEvent event,
12380 const VkDependencyInfo* pDependencyInfo);
12381#endif
12382
12383#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12384VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent2KHR(
12385 VkCommandBuffer commandBuffer,
12386 VkEvent event,
12387 VkPipelineStageFlags2 stageMask);
12388#endif
12389
12390#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12391VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents2KHR(
12392 VkCommandBuffer commandBuffer,
12393 uint32_t eventCount,
12394 const VkEvent* pEvents,
12395 const VkDependencyInfo* pDependencyInfos);
12396#endif
12397
12398#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12399VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier2KHR(
12400 VkCommandBuffer commandBuffer,
12401 const VkDependencyInfo* pDependencyInfo);
12402#endif
12403
12404#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12405VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp2KHR(
12406 VkCommandBuffer commandBuffer,
12407 VkPipelineStageFlags2 stage,
12408 VkQueryPool queryPool,
12409 uint32_t query);
12410#endif
12411
12412#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12413VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit2KHR(
12414 VkQueue queue,
12415 uint32_t submitCount,
12416 const VkSubmitInfo2* pSubmits,
12417 VkFence fence);
12418#endif
12419#endif
12420
12421
12422// VK_KHR_device_address_commands is a preprocessor guard. Do not pass it to API calls.
12423#define VK_KHR_device_address_commands 1
12424VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureKHR)
12425#define VK_KHR_DEVICE_ADDRESS_COMMANDS_SPEC_VERSION 1
12426#define VK_KHR_DEVICE_ADDRESS_COMMANDS_EXTENSION_NAME "VK_KHR_device_address_commands"
12427
12428typedef enum VkAccelerationStructureTypeKHR {
12429 VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0,
12430 VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1,
12431 VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = 2,
12432 VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR,
12433 VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR,
12434 VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
12435} VkAccelerationStructureTypeKHR;
12436
12437typedef enum VkAddressCommandFlagBitsKHR {
12438 VK_ADDRESS_COMMAND_PROTECTED_BIT_KHR = 0x00000001,
12439 VK_ADDRESS_COMMAND_FULLY_BOUND_BIT_KHR = 0x00000002,
12440 VK_ADDRESS_COMMAND_STORAGE_BUFFER_USAGE_BIT_KHR = 0x00000004,
12441 VK_ADDRESS_COMMAND_UNKNOWN_STORAGE_BUFFER_USAGE_BIT_KHR = 0x00000008,
12442 VK_ADDRESS_COMMAND_TRANSFORM_FEEDBACK_BUFFER_USAGE_BIT_KHR = 0x00000010,
12443 VK_ADDRESS_COMMAND_UNKNOWN_TRANSFORM_FEEDBACK_BUFFER_USAGE_BIT_KHR = 0x00000020,
12444 VK_ADDRESS_COMMAND_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
12445} VkAddressCommandFlagBitsKHR;
12446typedef VkFlags VkAddressCommandFlagsKHR;
12447
12448typedef enum VkConditionalRenderingFlagBitsEXT {
12449 VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 0x00000001,
12450 VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
12451} VkConditionalRenderingFlagBitsEXT;
12452typedef VkFlags VkConditionalRenderingFlagsEXT;
12453
12454typedef enum VkAccelerationStructureCreateFlagBitsKHR {
12455 VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 0x00000001,
12456 VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000008,
12457 VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = 0x00000004,
12458 VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
12459} VkAccelerationStructureCreateFlagBitsKHR;
12460typedef VkFlags VkAccelerationStructureCreateFlagsKHR;
12461typedef struct VkDeviceAddressRangeKHR {
12462 VkDeviceAddress address;
12463 VkDeviceSize size;
12464} VkDeviceAddressRangeKHR;
12465
12466typedef struct VkStridedDeviceAddressRangeKHR {
12467 VkDeviceAddress address;
12468 VkDeviceSize size;
12469 VkDeviceSize stride;
12470} VkStridedDeviceAddressRangeKHR;
12471
12472typedef struct VkDeviceMemoryCopyKHR {
12473 VkStructureType sType;
12474 const void* pNext;
12475 VkDeviceAddressRangeKHR srcRange;
12476 VkAddressCommandFlagsKHR srcFlags;
12477 VkDeviceAddressRangeKHR dstRange;
12478 VkAddressCommandFlagsKHR dstFlags;
12479} VkDeviceMemoryCopyKHR;
12480
12481typedef struct VkCopyDeviceMemoryInfoKHR {
12482 VkStructureType sType;
12483 const void* pNext;
12484 uint32_t regionCount;
12485 const VkDeviceMemoryCopyKHR* pRegions;
12486} VkCopyDeviceMemoryInfoKHR;
12487
12488typedef struct VkDeviceMemoryImageCopyKHR {
12489 VkStructureType sType;
12490 const void* pNext;
12491 VkDeviceAddressRangeKHR addressRange;
12492 VkAddressCommandFlagsKHR addressFlags;
12493 uint32_t addressRowLength;
12494 uint32_t addressImageHeight;
12495 VkImageSubresourceLayers imageSubresource;
12496 VkImageLayout imageLayout;
12497 VkOffset3D imageOffset;
12498 VkExtent3D imageExtent;
12499} VkDeviceMemoryImageCopyKHR;
12500
12501typedef struct VkCopyDeviceMemoryImageInfoKHR {
12502 VkStructureType sType;
12503 const void* pNext;
12504 VkImage image;
12505 uint32_t regionCount;
12506 const VkDeviceMemoryImageCopyKHR* pRegions;
12507} VkCopyDeviceMemoryImageInfoKHR;
12508
12509typedef struct VkMemoryRangeBarrierKHR {
12510 VkStructureType sType;
12511 const void* pNext;
12512 VkPipelineStageFlags2 srcStageMask;
12513 VkAccessFlags2 srcAccessMask;
12514 VkPipelineStageFlags2 dstStageMask;
12515 VkAccessFlags2 dstAccessMask;
12516 uint32_t srcQueueFamilyIndex;
12517 uint32_t dstQueueFamilyIndex;
12518 VkDeviceAddressRangeKHR addressRange;
12519 VkAddressCommandFlagsKHR addressFlags;
12520} VkMemoryRangeBarrierKHR;
12521
12522typedef struct VkMemoryRangeBarriersInfoKHR {
12523 VkStructureType sType;
12524 const void* pNext;
12525 uint32_t memoryRangeBarrierCount;
12526 const VkMemoryRangeBarrierKHR* pMemoryRangeBarriers;
12527} VkMemoryRangeBarriersInfoKHR;
12528
12529typedef struct VkPhysicalDeviceDeviceAddressCommandsFeaturesKHR {
12530 VkStructureType sType;
12531 void* pNext;
12532 VkBool32 deviceAddressCommands;
12533} VkPhysicalDeviceDeviceAddressCommandsFeaturesKHR;
12534
12535typedef struct VkBindIndexBuffer3InfoKHR {
12536 VkStructureType sType;
12537 const void* pNext;
12538 VkDeviceAddressRangeKHR addressRange;
12539 VkAddressCommandFlagsKHR addressFlags;
12540 VkIndexType indexType;
12541} VkBindIndexBuffer3InfoKHR;
12542
12543typedef struct VkBindVertexBuffer3InfoKHR {
12544 VkStructureType sType;
12545 const void* pNext;
12546 VkBool32 setStride;
12547 VkStridedDeviceAddressRangeKHR addressRange;
12548 VkAddressCommandFlagsKHR addressFlags;
12549} VkBindVertexBuffer3InfoKHR;
12550
12551typedef struct VkDrawIndirect2InfoKHR {
12552 VkStructureType sType;
12553 const void* pNext;
12554 VkStridedDeviceAddressRangeKHR addressRange;
12555 VkAddressCommandFlagsKHR addressFlags;
12556 uint32_t drawCount;
12557} VkDrawIndirect2InfoKHR;
12558
12559typedef struct VkDrawIndirectCount2InfoKHR {
12560 VkStructureType sType;
12561 const void* pNext;
12562 VkStridedDeviceAddressRangeKHR addressRange;
12563 VkAddressCommandFlagsKHR addressFlags;
12564 VkDeviceAddressRangeKHR countAddressRange;
12565 VkAddressCommandFlagsKHR countAddressFlags;
12566 uint32_t maxDrawCount;
12567} VkDrawIndirectCount2InfoKHR;
12568
12569typedef struct VkDispatchIndirect2InfoKHR {
12570 VkStructureType sType;
12571 const void* pNext;
12572 VkDeviceAddressRangeKHR addressRange;
12573 VkAddressCommandFlagsKHR addressFlags;
12574} VkDispatchIndirect2InfoKHR;
12575
12576typedef struct VkConditionalRenderingBeginInfo2EXT {
12577 VkStructureType sType;
12578 const void* pNext;
12579 VkDeviceAddressRangeKHR addressRange;
12580 VkAddressCommandFlagsKHR addressFlags;
12581 VkConditionalRenderingFlagsEXT flags;
12582} VkConditionalRenderingBeginInfo2EXT;
12583
12584typedef struct VkBindTransformFeedbackBuffer2InfoEXT {
12585 VkStructureType sType;
12586 const void* pNext;
12587 VkDeviceAddressRangeKHR addressRange;
12588 VkAddressCommandFlagsKHR addressFlags;
12589} VkBindTransformFeedbackBuffer2InfoEXT;
12590
12591typedef struct VkMemoryMarkerInfoAMD {
12592 VkStructureType sType;
12593 const void* pNext;
12594 VkPipelineStageFlags2KHR stage;
12595 VkDeviceAddressRangeKHR dstRange;
12596 VkAddressCommandFlagsKHR dstFlags;
12597 uint32_t marker;
12598} VkMemoryMarkerInfoAMD;
12599
12600typedef struct VkAccelerationStructureCreateInfo2KHR {
12601 VkStructureType sType;
12602 const void* pNext;
12603 VkAccelerationStructureCreateFlagsKHR createFlags;
12604 VkDeviceAddressRangeKHR addressRange;
12605 VkAddressCommandFlagsKHR addressFlags;
12606 VkAccelerationStructureTypeKHR type;
12607} VkAccelerationStructureCreateInfo2KHR;
12608
12609typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer3KHR)(VkCommandBuffer commandBuffer, const VkBindIndexBuffer3InfoKHR* pInfo);
12610typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers3KHR)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBindVertexBuffer3InfoKHR* pBindingInfos);
12611typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirect2KHR)(VkCommandBuffer commandBuffer, const VkDrawIndirect2InfoKHR* pInfo);
12612typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirect2KHR)(VkCommandBuffer commandBuffer, const VkDrawIndirect2InfoKHR* pInfo);
12613typedef void (VKAPI_PTR *PFN_vkCmdDispatchIndirect2KHR)(VkCommandBuffer commandBuffer, const VkDispatchIndirect2InfoKHR* pInfo);
12614typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryKHR)(VkCommandBuffer commandBuffer, const VkCopyDeviceMemoryInfoKHR* pCopyMemoryInfo);
12615typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToImageKHR)(VkCommandBuffer commandBuffer, const VkCopyDeviceMemoryImageInfoKHR* pCopyMemoryInfo);
12616typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToMemoryKHR)(VkCommandBuffer commandBuffer, const VkCopyDeviceMemoryImageInfoKHR* pCopyMemoryInfo);
12617typedef void (VKAPI_PTR *PFN_vkCmdUpdateMemoryKHR)(VkCommandBuffer commandBuffer, const VkDeviceAddressRangeKHR* pDstRange, VkAddressCommandFlagsKHR dstFlags, VkDeviceSize dataSize, const void* pData);
12618typedef void (VKAPI_PTR *PFN_vkCmdFillMemoryKHR)(VkCommandBuffer commandBuffer, const VkDeviceAddressRangeKHR* pDstRange, VkAddressCommandFlagsKHR dstFlags, uint32_t data);
12619typedef void (VKAPI_PTR *PFN_vkCmdCopyQueryPoolResultsToMemoryKHR)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, const VkStridedDeviceAddressRangeKHR* pDstRange, VkAddressCommandFlagsKHR dstFlags, VkQueryResultFlags queryResultFlags);
12620typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCount2KHR)(VkCommandBuffer commandBuffer, const VkDrawIndirectCount2InfoKHR* pInfo);
12621typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCount2KHR)(VkCommandBuffer commandBuffer, const VkDrawIndirectCount2InfoKHR* pInfo);
12622typedef void (VKAPI_PTR *PFN_vkCmdBeginConditionalRendering2EXT)(VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfo2EXT* pConditionalRenderingBegin);
12623typedef void (VKAPI_PTR *PFN_vkCmdBindTransformFeedbackBuffers2EXT)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBindTransformFeedbackBuffer2InfoEXT* pBindingInfos);
12624typedef void (VKAPI_PTR *PFN_vkCmdBeginTransformFeedback2EXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterRange, uint32_t counterRangeCount, const VkBindTransformFeedbackBuffer2InfoEXT* pCounterInfos);
12625typedef void (VKAPI_PTR *PFN_vkCmdEndTransformFeedback2EXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterRange, uint32_t counterRangeCount, const VkBindTransformFeedbackBuffer2InfoEXT* pCounterInfos);
12626typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectByteCount2EXT)(VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, const VkBindTransformFeedbackBuffer2InfoEXT* pCounterInfo, uint32_t counterOffset, uint32_t vertexStride);
12627typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirect2EXT)(VkCommandBuffer commandBuffer, const VkDrawIndirect2InfoKHR* pInfo);
12628typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectCount2EXT)(VkCommandBuffer commandBuffer, const VkDrawIndirectCount2InfoKHR* pInfo);
12629typedef void (VKAPI_PTR *PFN_vkCmdWriteMarkerToMemoryAMD)(VkCommandBuffer commandBuffer, const VkMemoryMarkerInfoAMD* pInfo);
12630typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructure2KHR)(VkDevice device, const VkAccelerationStructureCreateInfo2KHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureKHR* pAccelerationStructure);
12631
12632#ifndef VK_NO_PROTOTYPES
12633#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12634VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer3KHR(
12635 VkCommandBuffer commandBuffer,
12636 const VkBindIndexBuffer3InfoKHR* pInfo);
12637#endif
12638
12639#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12640VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers3KHR(
12641 VkCommandBuffer commandBuffer,
12642 uint32_t firstBinding,
12643 uint32_t bindingCount,
12644 const VkBindVertexBuffer3InfoKHR* pBindingInfos);
12645#endif
12646
12647#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12648VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirect2KHR(
12649 VkCommandBuffer commandBuffer,
12650 const VkDrawIndirect2InfoKHR* pInfo);
12651#endif
12652
12653#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12654VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirect2KHR(
12655 VkCommandBuffer commandBuffer,
12656 const VkDrawIndirect2InfoKHR* pInfo);
12657#endif
12658
12659#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12660VKAPI_ATTR void VKAPI_CALL vkCmdDispatchIndirect2KHR(
12661 VkCommandBuffer commandBuffer,
12662 const VkDispatchIndirect2InfoKHR* pInfo);
12663#endif
12664
12665#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12666VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryKHR(
12667 VkCommandBuffer commandBuffer,
12668 const VkCopyDeviceMemoryInfoKHR* pCopyMemoryInfo);
12669#endif
12670
12671#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12672VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToImageKHR(
12673 VkCommandBuffer commandBuffer,
12674 const VkCopyDeviceMemoryImageInfoKHR* pCopyMemoryInfo);
12675#endif
12676
12677#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12678VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToMemoryKHR(
12679 VkCommandBuffer commandBuffer,
12680 const VkCopyDeviceMemoryImageInfoKHR* pCopyMemoryInfo);
12681#endif
12682
12683#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12684VKAPI_ATTR void VKAPI_CALL vkCmdUpdateMemoryKHR(
12685 VkCommandBuffer commandBuffer,
12686 const VkDeviceAddressRangeKHR* pDstRange,
12687 VkAddressCommandFlagsKHR dstFlags,
12688 VkDeviceSize dataSize,
12689 const void* pData);
12690#endif
12691
12692#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12693VKAPI_ATTR void VKAPI_CALL vkCmdFillMemoryKHR(
12694 VkCommandBuffer commandBuffer,
12695 const VkDeviceAddressRangeKHR* pDstRange,
12696 VkAddressCommandFlagsKHR dstFlags,
12697 uint32_t data);
12698#endif
12699
12700#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12701VKAPI_ATTR void VKAPI_CALL vkCmdCopyQueryPoolResultsToMemoryKHR(
12702 VkCommandBuffer commandBuffer,
12703 VkQueryPool queryPool,
12704 uint32_t firstQuery,
12705 uint32_t queryCount,
12706 const VkStridedDeviceAddressRangeKHR* pDstRange,
12707 VkAddressCommandFlagsKHR dstFlags,
12708 VkQueryResultFlags queryResultFlags);
12709#endif
12710
12711#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12712VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCount2KHR(
12713 VkCommandBuffer commandBuffer,
12714 const VkDrawIndirectCount2InfoKHR* pInfo);
12715#endif
12716
12717#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12718VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCount2KHR(
12719 VkCommandBuffer commandBuffer,
12720 const VkDrawIndirectCount2InfoKHR* pInfo);
12721#endif
12722
12723#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12724VKAPI_ATTR void VKAPI_CALL vkCmdBeginConditionalRendering2EXT(
12725 VkCommandBuffer commandBuffer,
12726 const VkConditionalRenderingBeginInfo2EXT* pConditionalRenderingBegin);
12727#endif
12728
12729#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12730VKAPI_ATTR void VKAPI_CALL vkCmdBindTransformFeedbackBuffers2EXT(
12731 VkCommandBuffer commandBuffer,
12732 uint32_t firstBinding,
12733 uint32_t bindingCount,
12734 const VkBindTransformFeedbackBuffer2InfoEXT* pBindingInfos);
12735#endif
12736
12737#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12738VKAPI_ATTR void VKAPI_CALL vkCmdBeginTransformFeedback2EXT(
12739 VkCommandBuffer commandBuffer,
12740 uint32_t firstCounterRange,
12741 uint32_t counterRangeCount,
12742 const VkBindTransformFeedbackBuffer2InfoEXT* pCounterInfos);
12743#endif
12744
12745#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12746VKAPI_ATTR void VKAPI_CALL vkCmdEndTransformFeedback2EXT(
12747 VkCommandBuffer commandBuffer,
12748 uint32_t firstCounterRange,
12749 uint32_t counterRangeCount,
12750 const VkBindTransformFeedbackBuffer2InfoEXT* pCounterInfos);
12751#endif
12752
12753#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12754VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectByteCount2EXT(
12755 VkCommandBuffer commandBuffer,
12756 uint32_t instanceCount,
12757 uint32_t firstInstance,
12758 const VkBindTransformFeedbackBuffer2InfoEXT* pCounterInfo,
12759 uint32_t counterOffset,
12760 uint32_t vertexStride);
12761#endif
12762
12763#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12764VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirect2EXT(
12765 VkCommandBuffer commandBuffer,
12766 const VkDrawIndirect2InfoKHR* pInfo);
12767#endif
12768
12769#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12770VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectCount2EXT(
12771 VkCommandBuffer commandBuffer,
12772 const VkDrawIndirectCount2InfoKHR* pInfo);
12773#endif
12774
12775#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12776VKAPI_ATTR void VKAPI_CALL vkCmdWriteMarkerToMemoryAMD(
12777 VkCommandBuffer commandBuffer,
12778 const VkMemoryMarkerInfoAMD* pInfo);
12779#endif
12780
12781#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12782VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructure2KHR(
12783 VkDevice device,
12784 const VkAccelerationStructureCreateInfo2KHR* pCreateInfo,
12785 const VkAllocationCallbacks* pAllocator,
12786 VkAccelerationStructureKHR* pAccelerationStructure);
12787#endif
12788#endif
12789
12790
12791// VK_KHR_fragment_shader_barycentric is a preprocessor guard. Do not pass it to API calls.
12792#define VK_KHR_fragment_shader_barycentric 1
12793#define VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1
12794#define VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_KHR_fragment_shader_barycentric"
12795typedef struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR {
12796 VkStructureType sType;
12797 void* pNext;
12798 VkBool32 fragmentShaderBarycentric;
12799} VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR;
12800
12801typedef struct VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR {
12802 VkStructureType sType;
12803 void* pNext;
12804 VkBool32 triStripVertexOrderIndependentOfProvokingVertex;
12805} VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR;
12806
12807
12808
12809// VK_KHR_shader_subgroup_uniform_control_flow is a preprocessor guard. Do not pass it to API calls.
12810#define VK_KHR_shader_subgroup_uniform_control_flow 1
12811#define VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_SPEC_VERSION 1
12812#define VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_EXTENSION_NAME "VK_KHR_shader_subgroup_uniform_control_flow"
12813typedef struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR {
12814 VkStructureType sType;
12815 void* pNext;
12816 VkBool32 shaderSubgroupUniformControlFlow;
12817} VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR;
12818
12819
12820
12821// VK_KHR_zero_initialize_workgroup_memory is a preprocessor guard. Do not pass it to API calls.
12822#define VK_KHR_zero_initialize_workgroup_memory 1
12823#define VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION 1
12824#define VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME "VK_KHR_zero_initialize_workgroup_memory"
12825typedef VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR;
12826
12827
12828
12829// VK_KHR_workgroup_memory_explicit_layout is a preprocessor guard. Do not pass it to API calls.
12830#define VK_KHR_workgroup_memory_explicit_layout 1
12831#define VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION 1
12832#define VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME "VK_KHR_workgroup_memory_explicit_layout"
12833typedef struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR {
12834 VkStructureType sType;
12835 void* pNext;
12836 VkBool32 workgroupMemoryExplicitLayout;
12837 VkBool32 workgroupMemoryExplicitLayoutScalarBlockLayout;
12838 VkBool32 workgroupMemoryExplicitLayout8BitAccess;
12839 VkBool32 workgroupMemoryExplicitLayout16BitAccess;
12840} VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR;
12841
12842
12843
12844// VK_KHR_copy_commands2 is a preprocessor guard. Do not pass it to API calls.
12845#define VK_KHR_copy_commands2 1
12846#define VK_KHR_COPY_COMMANDS_2_SPEC_VERSION 1
12847#define VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME "VK_KHR_copy_commands2"
12848typedef VkCopyBufferInfo2 VkCopyBufferInfo2KHR;
12849
12850typedef VkCopyImageInfo2 VkCopyImageInfo2KHR;
12851
12852typedef VkCopyBufferToImageInfo2 VkCopyBufferToImageInfo2KHR;
12853
12854typedef VkCopyImageToBufferInfo2 VkCopyImageToBufferInfo2KHR;
12855
12856typedef VkBlitImageInfo2 VkBlitImageInfo2KHR;
12857
12858typedef VkResolveImageInfo2 VkResolveImageInfo2KHR;
12859
12860typedef VkBufferCopy2 VkBufferCopy2KHR;
12861
12862typedef VkImageCopy2 VkImageCopy2KHR;
12863
12864typedef VkImageBlit2 VkImageBlit2KHR;
12865
12866typedef VkBufferImageCopy2 VkBufferImageCopy2KHR;
12867
12868typedef VkImageResolve2 VkImageResolve2KHR;
12869
12870typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer2KHR)(VkCommandBuffer commandBuffer, const VkCopyBufferInfo2* pCopyBufferInfo);
12871typedef void (VKAPI_PTR *PFN_vkCmdCopyImage2KHR)(VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo);
12872typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage2KHR)(VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo);
12873typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer2KHR)(VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo);
12874typedef void (VKAPI_PTR *PFN_vkCmdBlitImage2KHR)(VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo);
12875typedef void (VKAPI_PTR *PFN_vkCmdResolveImage2KHR)(VkCommandBuffer commandBuffer, const VkResolveImageInfo2* pResolveImageInfo);
12876
12877#ifndef VK_NO_PROTOTYPES
12878#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12879VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer2KHR(
12880 VkCommandBuffer commandBuffer,
12881 const VkCopyBufferInfo2* pCopyBufferInfo);
12882#endif
12883
12884#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12885VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage2KHR(
12886 VkCommandBuffer commandBuffer,
12887 const VkCopyImageInfo2* pCopyImageInfo);
12888#endif
12889
12890#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12891VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage2KHR(
12892 VkCommandBuffer commandBuffer,
12893 const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo);
12894#endif
12895
12896#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12897VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer2KHR(
12898 VkCommandBuffer commandBuffer,
12899 const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo);
12900#endif
12901
12902#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12903VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage2KHR(
12904 VkCommandBuffer commandBuffer,
12905 const VkBlitImageInfo2* pBlitImageInfo);
12906#endif
12907
12908#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12909VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage2KHR(
12910 VkCommandBuffer commandBuffer,
12911 const VkResolveImageInfo2* pResolveImageInfo);
12912#endif
12913#endif
12914
12915
12916// VK_KHR_format_feature_flags2 is a preprocessor guard. Do not pass it to API calls.
12917#define VK_KHR_format_feature_flags2 1
12918#define VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION 2
12919#define VK_KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME "VK_KHR_format_feature_flags2"
12920typedef VkFormatFeatureFlags2 VkFormatFeatureFlags2KHR;
12921
12922typedef VkFormatFeatureFlagBits2 VkFormatFeatureFlagBits2KHR;
12923
12924typedef VkFormatProperties3 VkFormatProperties3KHR;
12925
12926
12927
12928// VK_KHR_ray_tracing_maintenance1 is a preprocessor guard. Do not pass it to API calls.
12929#define VK_KHR_ray_tracing_maintenance1 1
12930#define VK_KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION 1
12931#define VK_KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_ray_tracing_maintenance1"
12932typedef struct VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR {
12933 VkStructureType sType;
12934 void* pNext;
12935 VkBool32 rayTracingMaintenance1;
12936 VkBool32 rayTracingPipelineTraceRaysIndirect2;
12937} VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR;
12938
12939typedef struct VkTraceRaysIndirectCommand2KHR {
12940 VkDeviceAddress raygenShaderRecordAddress;
12941 VkDeviceSize raygenShaderRecordSize;
12942 VkDeviceAddress missShaderBindingTableAddress;
12943 VkDeviceSize missShaderBindingTableSize;
12944 VkDeviceSize missShaderBindingTableStride;
12945 VkDeviceAddress hitShaderBindingTableAddress;
12946 VkDeviceSize hitShaderBindingTableSize;
12947 VkDeviceSize hitShaderBindingTableStride;
12948 VkDeviceAddress callableShaderBindingTableAddress;
12949 VkDeviceSize callableShaderBindingTableSize;
12950 VkDeviceSize callableShaderBindingTableStride;
12951 uint32_t width;
12952 uint32_t height;
12953 uint32_t depth;
12954} VkTraceRaysIndirectCommand2KHR;
12955
12956typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysIndirect2KHR)(VkCommandBuffer commandBuffer, VkDeviceAddress indirectDeviceAddress);
12957
12958#ifndef VK_NO_PROTOTYPES
12959#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12960VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysIndirect2KHR(
12961 VkCommandBuffer commandBuffer,
12962 VkDeviceAddress indirectDeviceAddress);
12963#endif
12964#endif
12965
12966
12967// VK_KHR_shader_untyped_pointers is a preprocessor guard. Do not pass it to API calls.
12968#define VK_KHR_shader_untyped_pointers 1
12969#define VK_KHR_SHADER_UNTYPED_POINTERS_SPEC_VERSION 1
12970#define VK_KHR_SHADER_UNTYPED_POINTERS_EXTENSION_NAME "VK_KHR_shader_untyped_pointers"
12971typedef struct VkPhysicalDeviceShaderUntypedPointersFeaturesKHR {
12972 VkStructureType sType;
12973 void* pNext;
12974 VkBool32 shaderUntypedPointers;
12975} VkPhysicalDeviceShaderUntypedPointersFeaturesKHR;
12976
12977
12978
12979// VK_KHR_portability_enumeration is a preprocessor guard. Do not pass it to API calls.
12980#define VK_KHR_portability_enumeration 1
12981#define VK_KHR_PORTABILITY_ENUMERATION_SPEC_VERSION 1
12982#define VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME "VK_KHR_portability_enumeration"
12983
12984
12985// VK_KHR_maintenance4 is a preprocessor guard. Do not pass it to API calls.
12986#define VK_KHR_maintenance4 1
12987#define VK_KHR_MAINTENANCE_4_SPEC_VERSION 2
12988#define VK_KHR_MAINTENANCE_4_EXTENSION_NAME "VK_KHR_maintenance4"
12989typedef VkPhysicalDeviceMaintenance4Features VkPhysicalDeviceMaintenance4FeaturesKHR;
12990
12991typedef VkPhysicalDeviceMaintenance4Properties VkPhysicalDeviceMaintenance4PropertiesKHR;
12992
12993typedef VkDeviceBufferMemoryRequirements VkDeviceBufferMemoryRequirementsKHR;
12994
12995typedef VkDeviceImageMemoryRequirements VkDeviceImageMemoryRequirementsKHR;
12996
12997typedef void (VKAPI_PTR *PFN_vkGetDeviceBufferMemoryRequirementsKHR)(VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
12998typedef void (VKAPI_PTR *PFN_vkGetDeviceImageMemoryRequirementsKHR)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
12999typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSparseMemoryRequirementsKHR)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
13000
13001#ifndef VK_NO_PROTOTYPES
13002#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13003VKAPI_ATTR void VKAPI_CALL vkGetDeviceBufferMemoryRequirementsKHR(
13004 VkDevice device,
13005 const VkDeviceBufferMemoryRequirements* pInfo,
13006 VkMemoryRequirements2* pMemoryRequirements);
13007#endif
13008
13009#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13010VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageMemoryRequirementsKHR(
13011 VkDevice device,
13012 const VkDeviceImageMemoryRequirements* pInfo,
13013 VkMemoryRequirements2* pMemoryRequirements);
13014#endif
13015
13016#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13017VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSparseMemoryRequirementsKHR(
13018 VkDevice device,
13019 const VkDeviceImageMemoryRequirements* pInfo,
13020 uint32_t* pSparseMemoryRequirementCount,
13021 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
13022#endif
13023#endif
13024
13025
13026// VK_KHR_shader_subgroup_rotate is a preprocessor guard. Do not pass it to API calls.
13027#define VK_KHR_shader_subgroup_rotate 1
13028#define VK_KHR_SHADER_SUBGROUP_ROTATE_SPEC_VERSION 2
13029#define VK_KHR_SHADER_SUBGROUP_ROTATE_EXTENSION_NAME "VK_KHR_shader_subgroup_rotate"
13030typedef VkPhysicalDeviceShaderSubgroupRotateFeatures VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR;
13031
13032
13033
13034// VK_KHR_shader_maximal_reconvergence is a preprocessor guard. Do not pass it to API calls.
13035#define VK_KHR_shader_maximal_reconvergence 1
13036#define VK_KHR_SHADER_MAXIMAL_RECONVERGENCE_SPEC_VERSION 1
13037#define VK_KHR_SHADER_MAXIMAL_RECONVERGENCE_EXTENSION_NAME "VK_KHR_shader_maximal_reconvergence"
13038typedef struct VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR {
13039 VkStructureType sType;
13040 void* pNext;
13041 VkBool32 shaderMaximalReconvergence;
13042} VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR;
13043
13044
13045
13046// VK_KHR_maintenance5 is a preprocessor guard. Do not pass it to API calls.
13047#define VK_KHR_maintenance5 1
13048#define VK_KHR_MAINTENANCE_5_SPEC_VERSION 1
13049#define VK_KHR_MAINTENANCE_5_EXTENSION_NAME "VK_KHR_maintenance5"
13050typedef VkPipelineCreateFlags2 VkPipelineCreateFlags2KHR;
13051
13052typedef VkPipelineCreateFlagBits2 VkPipelineCreateFlagBits2KHR;
13053
13054typedef VkBufferUsageFlags2 VkBufferUsageFlags2KHR;
13055
13056typedef VkBufferUsageFlagBits2 VkBufferUsageFlagBits2KHR;
13057
13058typedef VkPhysicalDeviceMaintenance5Features VkPhysicalDeviceMaintenance5FeaturesKHR;
13059
13060typedef VkPhysicalDeviceMaintenance5Properties VkPhysicalDeviceMaintenance5PropertiesKHR;
13061
13062typedef VkRenderingAreaInfo VkRenderingAreaInfoKHR;
13063
13064typedef VkDeviceImageSubresourceInfo VkDeviceImageSubresourceInfoKHR;
13065
13066typedef VkImageSubresource2 VkImageSubresource2KHR;
13067
13068typedef VkSubresourceLayout2 VkSubresourceLayout2KHR;
13069
13070typedef VkPipelineCreateFlags2CreateInfo VkPipelineCreateFlags2CreateInfoKHR;
13071
13072typedef VkBufferUsageFlags2CreateInfo VkBufferUsageFlags2CreateInfoKHR;
13073
13074typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer2KHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkDeviceSize size, VkIndexType indexType);
13075typedef void (VKAPI_PTR *PFN_vkGetRenderingAreaGranularityKHR)(VkDevice device, const VkRenderingAreaInfo* pRenderingAreaInfo, VkExtent2D* pGranularity);
13076typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSubresourceLayoutKHR)(VkDevice device, const VkDeviceImageSubresourceInfo* pInfo, VkSubresourceLayout2* pLayout);
13077typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout2KHR)(VkDevice device, VkImage image, const VkImageSubresource2* pSubresource, VkSubresourceLayout2* pLayout);
13078
13079#ifndef VK_NO_PROTOTYPES
13080#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13081VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer2KHR(
13082 VkCommandBuffer commandBuffer,
13083 VkBuffer buffer,
13084 VkDeviceSize offset,
13085 VkDeviceSize size,
13086 VkIndexType indexType);
13087#endif
13088
13089#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13090VKAPI_ATTR void VKAPI_CALL vkGetRenderingAreaGranularityKHR(
13091 VkDevice device,
13092 const VkRenderingAreaInfo* pRenderingAreaInfo,
13093 VkExtent2D* pGranularity);
13094#endif
13095
13096#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13097VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSubresourceLayoutKHR(
13098 VkDevice device,
13099 const VkDeviceImageSubresourceInfo* pInfo,
13100 VkSubresourceLayout2* pLayout);
13101#endif
13102
13103#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13104VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout2KHR(
13105 VkDevice device,
13106 VkImage image,
13107 const VkImageSubresource2* pSubresource,
13108 VkSubresourceLayout2* pLayout);
13109#endif
13110#endif
13111
13112
13113// VK_KHR_present_id2 is a preprocessor guard. Do not pass it to API calls.
13114#define VK_KHR_present_id2 1
13115#define VK_KHR_PRESENT_ID_2_SPEC_VERSION 1
13116#define VK_KHR_PRESENT_ID_2_EXTENSION_NAME "VK_KHR_present_id2"
13117typedef struct VkSurfaceCapabilitiesPresentId2KHR {
13118 VkStructureType sType;
13119 void* pNext;
13120 VkBool32 presentId2Supported;
13121} VkSurfaceCapabilitiesPresentId2KHR;
13122
13123typedef struct VkPresentId2KHR {
13124 VkStructureType sType;
13125 const void* pNext;
13126 uint32_t swapchainCount;
13127 const uint64_t* pPresentIds;
13128} VkPresentId2KHR;
13129
13130typedef struct VkPhysicalDevicePresentId2FeaturesKHR {
13131 VkStructureType sType;
13132 void* pNext;
13133 VkBool32 presentId2;
13134} VkPhysicalDevicePresentId2FeaturesKHR;
13135
13136
13137
13138// VK_KHR_present_wait2 is a preprocessor guard. Do not pass it to API calls.
13139#define VK_KHR_present_wait2 1
13140#define VK_KHR_PRESENT_WAIT_2_SPEC_VERSION 1
13141#define VK_KHR_PRESENT_WAIT_2_EXTENSION_NAME "VK_KHR_present_wait2"
13142typedef struct VkSurfaceCapabilitiesPresentWait2KHR {
13143 VkStructureType sType;
13144 void* pNext;
13145 VkBool32 presentWait2Supported;
13146} VkSurfaceCapabilitiesPresentWait2KHR;
13147
13148typedef struct VkPhysicalDevicePresentWait2FeaturesKHR {
13149 VkStructureType sType;
13150 void* pNext;
13151 VkBool32 presentWait2;
13152} VkPhysicalDevicePresentWait2FeaturesKHR;
13153
13154typedef struct VkPresentWait2InfoKHR {
13155 VkStructureType sType;
13156 const void* pNext;
13157 uint64_t presentId;
13158 uint64_t timeout;
13159} VkPresentWait2InfoKHR;
13160
13161typedef VkResult (VKAPI_PTR *PFN_vkWaitForPresent2KHR)(VkDevice device, VkSwapchainKHR swapchain, const VkPresentWait2InfoKHR* pPresentWait2Info);
13162
13163#ifndef VK_NO_PROTOTYPES
13164#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13165VKAPI_ATTR VkResult VKAPI_CALL vkWaitForPresent2KHR(
13166 VkDevice device,
13167 VkSwapchainKHR swapchain,
13168 const VkPresentWait2InfoKHR* pPresentWait2Info);
13169#endif
13170#endif
13171
13172
13173// VK_KHR_ray_tracing_position_fetch is a preprocessor guard. Do not pass it to API calls.
13174#define VK_KHR_ray_tracing_position_fetch 1
13175#define VK_KHR_RAY_TRACING_POSITION_FETCH_SPEC_VERSION 1
13176#define VK_KHR_RAY_TRACING_POSITION_FETCH_EXTENSION_NAME "VK_KHR_ray_tracing_position_fetch"
13177typedef struct VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR {
13178 VkStructureType sType;
13179 void* pNext;
13180 VkBool32 rayTracingPositionFetch;
13181} VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR;
13182
13183
13184
13185// VK_KHR_pipeline_binary is a preprocessor guard. Do not pass it to API calls.
13186#define VK_KHR_pipeline_binary 1
13187VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineBinaryKHR)
13188#define VK_MAX_PIPELINE_BINARY_KEY_SIZE_KHR 32U
13189#define VK_KHR_PIPELINE_BINARY_SPEC_VERSION 1
13190#define VK_KHR_PIPELINE_BINARY_EXTENSION_NAME "VK_KHR_pipeline_binary"
13191typedef struct VkPhysicalDevicePipelineBinaryFeaturesKHR {
13192 VkStructureType sType;
13193 void* pNext;
13194 VkBool32 pipelineBinaries;
13195} VkPhysicalDevicePipelineBinaryFeaturesKHR;
13196
13197typedef struct VkPhysicalDevicePipelineBinaryPropertiesKHR {
13198 VkStructureType sType;
13199 void* pNext;
13200 VkBool32 pipelineBinaryInternalCache;
13201 VkBool32 pipelineBinaryInternalCacheControl;
13202 VkBool32 pipelineBinaryPrefersInternalCache;
13203 VkBool32 pipelineBinaryPrecompiledInternalCache;
13204 VkBool32 pipelineBinaryCompressedData;
13205} VkPhysicalDevicePipelineBinaryPropertiesKHR;
13206
13207typedef struct VkDevicePipelineBinaryInternalCacheControlKHR {
13208 VkStructureType sType;
13209 const void* pNext;
13210 VkBool32 disableInternalCache;
13211} VkDevicePipelineBinaryInternalCacheControlKHR;
13212
13213typedef struct VkPipelineBinaryKeyKHR {
13214 VkStructureType sType;
13215 void* pNext;
13216 uint32_t keySize;
13217 uint8_t key[VK_MAX_PIPELINE_BINARY_KEY_SIZE_KHR];
13218} VkPipelineBinaryKeyKHR;
13219
13220typedef struct VkPipelineBinaryDataKHR {
13221 size_t dataSize;
13222 void* pData;
13223} VkPipelineBinaryDataKHR;
13224
13225typedef struct VkPipelineBinaryKeysAndDataKHR {
13226 uint32_t binaryCount;
13227 const VkPipelineBinaryKeyKHR* pPipelineBinaryKeys;
13228 const VkPipelineBinaryDataKHR* pPipelineBinaryData;
13229} VkPipelineBinaryKeysAndDataKHR;
13230
13231typedef struct VkPipelineCreateInfoKHR {
13232 VkStructureType sType;
13233 void* pNext;
13234} VkPipelineCreateInfoKHR;
13235
13236typedef struct VkPipelineBinaryCreateInfoKHR {
13237 VkStructureType sType;
13238 const void* pNext;
13239 const VkPipelineBinaryKeysAndDataKHR* pKeysAndDataInfo;
13240 VkPipeline pipeline;
13241 const VkPipelineCreateInfoKHR* pPipelineCreateInfo;
13242} VkPipelineBinaryCreateInfoKHR;
13243
13244typedef struct VkPipelineBinaryInfoKHR {
13245 VkStructureType sType;
13246 const void* pNext;
13247 uint32_t binaryCount;
13248 const VkPipelineBinaryKHR* pPipelineBinaries;
13249} VkPipelineBinaryInfoKHR;
13250
13251typedef struct VkReleaseCapturedPipelineDataInfoKHR {
13252 VkStructureType sType;
13253 void* pNext;
13254 VkPipeline pipeline;
13255} VkReleaseCapturedPipelineDataInfoKHR;
13256
13257typedef struct VkPipelineBinaryDataInfoKHR {
13258 VkStructureType sType;
13259 void* pNext;
13260 VkPipelineBinaryKHR pipelineBinary;
13261} VkPipelineBinaryDataInfoKHR;
13262
13263typedef struct VkPipelineBinaryHandlesInfoKHR {
13264 VkStructureType sType;
13265 const void* pNext;
13266 uint32_t pipelineBinaryCount;
13267 VkPipelineBinaryKHR* pPipelineBinaries;
13268} VkPipelineBinaryHandlesInfoKHR;
13269
13270typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineBinariesKHR)(VkDevice device, const VkPipelineBinaryCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineBinaryHandlesInfoKHR* pBinaries);
13271typedef void (VKAPI_PTR *PFN_vkDestroyPipelineBinaryKHR)(VkDevice device, VkPipelineBinaryKHR pipelineBinary, const VkAllocationCallbacks* pAllocator);
13272typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineKeyKHR)(VkDevice device, const VkPipelineCreateInfoKHR* pPipelineCreateInfo, VkPipelineBinaryKeyKHR* pPipelineKey);
13273typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineBinaryDataKHR)(VkDevice device, const VkPipelineBinaryDataInfoKHR* pInfo, VkPipelineBinaryKeyKHR* pPipelineBinaryKey, size_t* pPipelineBinaryDataSize, void* pPipelineBinaryData);
13274typedef VkResult (VKAPI_PTR *PFN_vkReleaseCapturedPipelineDataKHR)(VkDevice device, const VkReleaseCapturedPipelineDataInfoKHR* pInfo, const VkAllocationCallbacks* pAllocator);
13275
13276#ifndef VK_NO_PROTOTYPES
13277#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13278VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineBinariesKHR(
13279 VkDevice device,
13280 const VkPipelineBinaryCreateInfoKHR* pCreateInfo,
13281 const VkAllocationCallbacks* pAllocator,
13282 VkPipelineBinaryHandlesInfoKHR* pBinaries);
13283#endif
13284
13285#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13286VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineBinaryKHR(
13287 VkDevice device,
13288 VkPipelineBinaryKHR pipelineBinary,
13289 const VkAllocationCallbacks* pAllocator);
13290#endif
13291
13292#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13293VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineKeyKHR(
13294 VkDevice device,
13295 const VkPipelineCreateInfoKHR* pPipelineCreateInfo,
13296 VkPipelineBinaryKeyKHR* pPipelineKey);
13297#endif
13298
13299#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13300VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineBinaryDataKHR(
13301 VkDevice device,
13302 const VkPipelineBinaryDataInfoKHR* pInfo,
13303 VkPipelineBinaryKeyKHR* pPipelineBinaryKey,
13304 size_t* pPipelineBinaryDataSize,
13305 void* pPipelineBinaryData);
13306#endif
13307
13308#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13309VKAPI_ATTR VkResult VKAPI_CALL vkReleaseCapturedPipelineDataKHR(
13310 VkDevice device,
13311 const VkReleaseCapturedPipelineDataInfoKHR* pInfo,
13312 const VkAllocationCallbacks* pAllocator);
13313#endif
13314#endif
13315
13316
13317// VK_KHR_surface_maintenance1 is a preprocessor guard. Do not pass it to API calls.
13318#define VK_KHR_surface_maintenance1 1
13319#define VK_KHR_SURFACE_MAINTENANCE_1_SPEC_VERSION 1
13320#define VK_KHR_SURFACE_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_surface_maintenance1"
13321
13322typedef enum VkPresentScalingFlagBitsKHR {
13323 VK_PRESENT_SCALING_ONE_TO_ONE_BIT_KHR = 0x00000001,
13324 VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_KHR = 0x00000002,
13325 VK_PRESENT_SCALING_STRETCH_BIT_KHR = 0x00000004,
13326 VK_PRESENT_SCALING_ONE_TO_ONE_BIT_EXT = VK_PRESENT_SCALING_ONE_TO_ONE_BIT_KHR,
13327 VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT = VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_KHR,
13328 VK_PRESENT_SCALING_STRETCH_BIT_EXT = VK_PRESENT_SCALING_STRETCH_BIT_KHR,
13329 VK_PRESENT_SCALING_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
13330} VkPresentScalingFlagBitsKHR;
13331typedef VkFlags VkPresentScalingFlagsKHR;
13332
13333typedef enum VkPresentGravityFlagBitsKHR {
13334 VK_PRESENT_GRAVITY_MIN_BIT_KHR = 0x00000001,
13335 VK_PRESENT_GRAVITY_MAX_BIT_KHR = 0x00000002,
13336 VK_PRESENT_GRAVITY_CENTERED_BIT_KHR = 0x00000004,
13337 VK_PRESENT_GRAVITY_MIN_BIT_EXT = VK_PRESENT_GRAVITY_MIN_BIT_KHR,
13338 VK_PRESENT_GRAVITY_MAX_BIT_EXT = VK_PRESENT_GRAVITY_MAX_BIT_KHR,
13339 VK_PRESENT_GRAVITY_CENTERED_BIT_EXT = VK_PRESENT_GRAVITY_CENTERED_BIT_KHR,
13340 VK_PRESENT_GRAVITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
13341} VkPresentGravityFlagBitsKHR;
13342typedef VkFlags VkPresentGravityFlagsKHR;
13343typedef struct VkSurfacePresentModeKHR {
13344 VkStructureType sType;
13345 void* pNext;
13346 VkPresentModeKHR presentMode;
13347} VkSurfacePresentModeKHR;
13348
13349typedef struct VkSurfacePresentScalingCapabilitiesKHR {
13350 VkStructureType sType;
13351 void* pNext;
13352 VkPresentScalingFlagsKHR supportedPresentScaling;
13353 VkPresentGravityFlagsKHR supportedPresentGravityX;
13354 VkPresentGravityFlagsKHR supportedPresentGravityY;
13355 VkExtent2D minScaledImageExtent;
13356 VkExtent2D maxScaledImageExtent;
13357} VkSurfacePresentScalingCapabilitiesKHR;
13358
13359typedef struct VkSurfacePresentModeCompatibilityKHR {
13360 VkStructureType sType;
13361 void* pNext;
13362 uint32_t presentModeCount;
13363 VkPresentModeKHR* pPresentModes;
13364} VkSurfacePresentModeCompatibilityKHR;
13365
13366
13367
13368// VK_KHR_swapchain_maintenance1 is a preprocessor guard. Do not pass it to API calls.
13369#define VK_KHR_swapchain_maintenance1 1
13370#define VK_KHR_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION 1
13371#define VK_KHR_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_swapchain_maintenance1"
13372typedef struct VkPhysicalDeviceSwapchainMaintenance1FeaturesKHR {
13373 VkStructureType sType;
13374 void* pNext;
13375 VkBool32 swapchainMaintenance1;
13376} VkPhysicalDeviceSwapchainMaintenance1FeaturesKHR;
13377
13378typedef struct VkSwapchainPresentFenceInfoKHR {
13379 VkStructureType sType;
13380 const void* pNext;
13381 uint32_t swapchainCount;
13382 const VkFence* pFences;
13383} VkSwapchainPresentFenceInfoKHR;
13384
13385typedef struct VkSwapchainPresentModesCreateInfoKHR {
13386 VkStructureType sType;
13387 const void* pNext;
13388 uint32_t presentModeCount;
13389 const VkPresentModeKHR* pPresentModes;
13390} VkSwapchainPresentModesCreateInfoKHR;
13391
13392typedef struct VkSwapchainPresentModeInfoKHR {
13393 VkStructureType sType;
13394 const void* pNext;
13395 uint32_t swapchainCount;
13396 const VkPresentModeKHR* pPresentModes;
13397} VkSwapchainPresentModeInfoKHR;
13398
13399typedef struct VkSwapchainPresentScalingCreateInfoKHR {
13400 VkStructureType sType;
13401 const void* pNext;
13402 VkPresentScalingFlagsKHR scalingBehavior;
13403 VkPresentGravityFlagsKHR presentGravityX;
13404 VkPresentGravityFlagsKHR presentGravityY;
13405} VkSwapchainPresentScalingCreateInfoKHR;
13406
13407typedef struct VkReleaseSwapchainImagesInfoKHR {
13408 VkStructureType sType;
13409 const void* pNext;
13410 VkSwapchainKHR swapchain;
13411 uint32_t imageIndexCount;
13412 const uint32_t* pImageIndices;
13413} VkReleaseSwapchainImagesInfoKHR;
13414
13415typedef VkResult (VKAPI_PTR *PFN_vkReleaseSwapchainImagesKHR)(VkDevice device, const VkReleaseSwapchainImagesInfoKHR* pReleaseInfo);
13416
13417#ifndef VK_NO_PROTOTYPES
13418#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13419VKAPI_ATTR VkResult VKAPI_CALL vkReleaseSwapchainImagesKHR(
13420 VkDevice device,
13421 const VkReleaseSwapchainImagesInfoKHR* pReleaseInfo);
13422#endif
13423#endif
13424
13425
13426// VK_KHR_internally_synchronized_queues is a preprocessor guard. Do not pass it to API calls.
13427#define VK_KHR_internally_synchronized_queues 1
13428#define VK_KHR_INTERNALLY_SYNCHRONIZED_QUEUES_SPEC_VERSION 1
13429#define VK_KHR_INTERNALLY_SYNCHRONIZED_QUEUES_EXTENSION_NAME "VK_KHR_internally_synchronized_queues"
13430typedef struct VkPhysicalDeviceInternallySynchronizedQueuesFeaturesKHR {
13431 VkStructureType sType;
13432 void* pNext;
13433 VkBool32 internallySynchronizedQueues;
13434} VkPhysicalDeviceInternallySynchronizedQueuesFeaturesKHR;
13435
13436
13437
13438// VK_KHR_cooperative_matrix is a preprocessor guard. Do not pass it to API calls.
13439#define VK_KHR_cooperative_matrix 1
13440#define VK_KHR_COOPERATIVE_MATRIX_SPEC_VERSION 2
13441#define VK_KHR_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_KHR_cooperative_matrix"
13442
13443typedef enum VkComponentTypeKHR {
13444 VK_COMPONENT_TYPE_FLOAT16_KHR = 0,
13445 VK_COMPONENT_TYPE_FLOAT32_KHR = 1,
13446 VK_COMPONENT_TYPE_FLOAT64_KHR = 2,
13447 VK_COMPONENT_TYPE_SINT8_KHR = 3,
13448 VK_COMPONENT_TYPE_SINT16_KHR = 4,
13449 VK_COMPONENT_TYPE_SINT32_KHR = 5,
13450 VK_COMPONENT_TYPE_SINT64_KHR = 6,
13451 VK_COMPONENT_TYPE_UINT8_KHR = 7,
13452 VK_COMPONENT_TYPE_UINT16_KHR = 8,
13453 VK_COMPONENT_TYPE_UINT32_KHR = 9,
13454 VK_COMPONENT_TYPE_UINT64_KHR = 10,
13455 VK_COMPONENT_TYPE_BFLOAT16_KHR = 1000141000,
13456 VK_COMPONENT_TYPE_SINT8_PACKED_NV = 1000491000,
13457 VK_COMPONENT_TYPE_UINT8_PACKED_NV = 1000491001,
13458 VK_COMPONENT_TYPE_FLOAT8_E4M3_EXT = 1000491002,
13459 VK_COMPONENT_TYPE_FLOAT8_E5M2_EXT = 1000491003,
13460 VK_COMPONENT_TYPE_FLOAT16_NV = VK_COMPONENT_TYPE_FLOAT16_KHR,
13461 VK_COMPONENT_TYPE_FLOAT32_NV = VK_COMPONENT_TYPE_FLOAT32_KHR,
13462 VK_COMPONENT_TYPE_FLOAT64_NV = VK_COMPONENT_TYPE_FLOAT64_KHR,
13463 VK_COMPONENT_TYPE_SINT8_NV = VK_COMPONENT_TYPE_SINT8_KHR,
13464 VK_COMPONENT_TYPE_SINT16_NV = VK_COMPONENT_TYPE_SINT16_KHR,
13465 VK_COMPONENT_TYPE_SINT32_NV = VK_COMPONENT_TYPE_SINT32_KHR,
13466 VK_COMPONENT_TYPE_SINT64_NV = VK_COMPONENT_TYPE_SINT64_KHR,
13467 VK_COMPONENT_TYPE_UINT8_NV = VK_COMPONENT_TYPE_UINT8_KHR,
13468 VK_COMPONENT_TYPE_UINT16_NV = VK_COMPONENT_TYPE_UINT16_KHR,
13469 VK_COMPONENT_TYPE_UINT32_NV = VK_COMPONENT_TYPE_UINT32_KHR,
13470 VK_COMPONENT_TYPE_UINT64_NV = VK_COMPONENT_TYPE_UINT64_KHR,
13471 VK_COMPONENT_TYPE_FLOAT_E4M3_NV = VK_COMPONENT_TYPE_FLOAT8_E4M3_EXT,
13472 VK_COMPONENT_TYPE_FLOAT_E5M2_NV = VK_COMPONENT_TYPE_FLOAT8_E5M2_EXT,
13473 VK_COMPONENT_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
13474} VkComponentTypeKHR;
13475
13476typedef enum VkScopeKHR {
13477 VK_SCOPE_DEVICE_KHR = 1,
13478 VK_SCOPE_WORKGROUP_KHR = 2,
13479 VK_SCOPE_SUBGROUP_KHR = 3,
13480 VK_SCOPE_QUEUE_FAMILY_KHR = 5,
13481 VK_SCOPE_DEVICE_NV = VK_SCOPE_DEVICE_KHR,
13482 VK_SCOPE_WORKGROUP_NV = VK_SCOPE_WORKGROUP_KHR,
13483 VK_SCOPE_SUBGROUP_NV = VK_SCOPE_SUBGROUP_KHR,
13484 VK_SCOPE_QUEUE_FAMILY_NV = VK_SCOPE_QUEUE_FAMILY_KHR,
13485 VK_SCOPE_MAX_ENUM_KHR = 0x7FFFFFFF
13486} VkScopeKHR;
13487typedef struct VkCooperativeMatrixPropertiesKHR {
13488 VkStructureType sType;
13489 void* pNext;
13490 uint32_t MSize;
13491 uint32_t NSize;
13492 uint32_t KSize;
13493 VkComponentTypeKHR AType;
13494 VkComponentTypeKHR BType;
13495 VkComponentTypeKHR CType;
13496 VkComponentTypeKHR ResultType;
13497 VkBool32 saturatingAccumulation;
13498 VkScopeKHR scope;
13499} VkCooperativeMatrixPropertiesKHR;
13500
13501typedef struct VkPhysicalDeviceCooperativeMatrixFeaturesKHR {
13502 VkStructureType sType;
13503 void* pNext;
13504 VkBool32 cooperativeMatrix;
13505 VkBool32 cooperativeMatrixRobustBufferAccess;
13506} VkPhysicalDeviceCooperativeMatrixFeaturesKHR;
13507
13508typedef struct VkPhysicalDeviceCooperativeMatrixPropertiesKHR {
13509 VkStructureType sType;
13510 void* pNext;
13511 VkShaderStageFlags cooperativeMatrixSupportedStages;
13512} VkPhysicalDeviceCooperativeMatrixPropertiesKHR;
13513
13514typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesKHR* pProperties);
13515
13516#ifndef VK_NO_PROTOTYPES
13517#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13518VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR(
13519 VkPhysicalDevice physicalDevice,
13520 uint32_t* pPropertyCount,
13521 VkCooperativeMatrixPropertiesKHR* pProperties);
13522#endif
13523#endif
13524
13525
13526// VK_KHR_compute_shader_derivatives is a preprocessor guard. Do not pass it to API calls.
13527#define VK_KHR_compute_shader_derivatives 1
13528#define VK_KHR_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION 1
13529#define VK_KHR_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_KHR_compute_shader_derivatives"
13530typedef struct VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR {
13531 VkStructureType sType;
13532 void* pNext;
13533 VkBool32 computeDerivativeGroupQuads;
13534 VkBool32 computeDerivativeGroupLinear;
13535} VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR;
13536
13537typedef struct VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR {
13538 VkStructureType sType;
13539 void* pNext;
13540 VkBool32 meshAndTaskShaderDerivatives;
13541} VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR;
13542
13543
13544
13545// VK_KHR_video_decode_av1 is a preprocessor guard. Do not pass it to API calls.
13546#define VK_KHR_video_decode_av1 1
13547#include "vk_video/vulkan_video_codec_av1std.h"
13548#include "vk_video/vulkan_video_codec_av1std_decode.h"
13549#define VK_MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR 7U
13550#define VK_KHR_VIDEO_DECODE_AV1_SPEC_VERSION 1
13551#define VK_KHR_VIDEO_DECODE_AV1_EXTENSION_NAME "VK_KHR_video_decode_av1"
13552typedef struct VkVideoDecodeAV1ProfileInfoKHR {
13553 VkStructureType sType;
13554 const void* pNext;
13555 StdVideoAV1Profile stdProfile;
13556 VkBool32 filmGrainSupport;
13557} VkVideoDecodeAV1ProfileInfoKHR;
13558
13559typedef struct VkVideoDecodeAV1CapabilitiesKHR {
13560 VkStructureType sType;
13561 void* pNext;
13562 StdVideoAV1Level maxLevel;
13563} VkVideoDecodeAV1CapabilitiesKHR;
13564
13565typedef struct VkVideoDecodeAV1SessionParametersCreateInfoKHR {
13566 VkStructureType sType;
13567 const void* pNext;
13568 const StdVideoAV1SequenceHeader* pStdSequenceHeader;
13569} VkVideoDecodeAV1SessionParametersCreateInfoKHR;
13570
13571typedef struct VkVideoDecodeAV1PictureInfoKHR {
13572 VkStructureType sType;
13573 const void* pNext;
13574 const StdVideoDecodeAV1PictureInfo* pStdPictureInfo;
13575 int32_t referenceNameSlotIndices[VK_MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR];
13576 uint32_t frameHeaderOffset;
13577 uint32_t tileCount;
13578 const uint32_t* pTileOffsets;
13579 const uint32_t* pTileSizes;
13580} VkVideoDecodeAV1PictureInfoKHR;
13581
13582typedef struct VkVideoDecodeAV1DpbSlotInfoKHR {
13583 VkStructureType sType;
13584 const void* pNext;
13585 const StdVideoDecodeAV1ReferenceInfo* pStdReferenceInfo;
13586} VkVideoDecodeAV1DpbSlotInfoKHR;
13587
13588
13589
13590// VK_KHR_video_encode_av1 is a preprocessor guard. Do not pass it to API calls.
13591#define VK_KHR_video_encode_av1 1
13592#include "vk_video/vulkan_video_codec_av1std_encode.h"
13593#define VK_KHR_VIDEO_ENCODE_AV1_SPEC_VERSION 1
13594#define VK_KHR_VIDEO_ENCODE_AV1_EXTENSION_NAME "VK_KHR_video_encode_av1"
13595
13596typedef enum VkVideoEncodeAV1PredictionModeKHR {
13597 VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_INTRA_ONLY_KHR = 0,
13598 VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_SINGLE_REFERENCE_KHR = 1,
13599 VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_UNIDIRECTIONAL_COMPOUND_KHR = 2,
13600 VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_BIDIRECTIONAL_COMPOUND_KHR = 3,
13601 VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
13602} VkVideoEncodeAV1PredictionModeKHR;
13603
13604typedef enum VkVideoEncodeAV1RateControlGroupKHR {
13605 VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_INTRA_KHR = 0,
13606 VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_PREDICTIVE_KHR = 1,
13607 VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_BIPREDICTIVE_KHR = 2,
13608 VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_MAX_ENUM_KHR = 0x7FFFFFFF
13609} VkVideoEncodeAV1RateControlGroupKHR;
13610
13611typedef enum VkVideoEncodeAV1CapabilityFlagBitsKHR {
13612 VK_VIDEO_ENCODE_AV1_CAPABILITY_PER_RATE_CONTROL_GROUP_MIN_MAX_Q_INDEX_BIT_KHR = 0x00000001,
13613 VK_VIDEO_ENCODE_AV1_CAPABILITY_GENERATE_OBU_EXTENSION_HEADER_BIT_KHR = 0x00000002,
13614 VK_VIDEO_ENCODE_AV1_CAPABILITY_PRIMARY_REFERENCE_CDF_ONLY_BIT_KHR = 0x00000004,
13615 VK_VIDEO_ENCODE_AV1_CAPABILITY_FRAME_SIZE_OVERRIDE_BIT_KHR = 0x00000008,
13616 VK_VIDEO_ENCODE_AV1_CAPABILITY_MOTION_VECTOR_SCALING_BIT_KHR = 0x00000010,
13617 VK_VIDEO_ENCODE_AV1_CAPABILITY_COMPOUND_PREDICTION_INTRA_REFRESH_BIT_KHR = 0x00000020,
13618 VK_VIDEO_ENCODE_AV1_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
13619} VkVideoEncodeAV1CapabilityFlagBitsKHR;
13620typedef VkFlags VkVideoEncodeAV1CapabilityFlagsKHR;
13621
13622typedef enum VkVideoEncodeAV1StdFlagBitsKHR {
13623 VK_VIDEO_ENCODE_AV1_STD_UNIFORM_TILE_SPACING_FLAG_SET_BIT_KHR = 0x00000001,
13624 VK_VIDEO_ENCODE_AV1_STD_SKIP_MODE_PRESENT_UNSET_BIT_KHR = 0x00000002,
13625 VK_VIDEO_ENCODE_AV1_STD_PRIMARY_REF_FRAME_BIT_KHR = 0x00000004,
13626 VK_VIDEO_ENCODE_AV1_STD_DELTA_Q_BIT_KHR = 0x00000008,
13627 VK_VIDEO_ENCODE_AV1_STD_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
13628} VkVideoEncodeAV1StdFlagBitsKHR;
13629typedef VkFlags VkVideoEncodeAV1StdFlagsKHR;
13630
13631typedef enum VkVideoEncodeAV1SuperblockSizeFlagBitsKHR {
13632 VK_VIDEO_ENCODE_AV1_SUPERBLOCK_SIZE_64_BIT_KHR = 0x00000001,
13633 VK_VIDEO_ENCODE_AV1_SUPERBLOCK_SIZE_128_BIT_KHR = 0x00000002,
13634 VK_VIDEO_ENCODE_AV1_SUPERBLOCK_SIZE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
13635} VkVideoEncodeAV1SuperblockSizeFlagBitsKHR;
13636typedef VkFlags VkVideoEncodeAV1SuperblockSizeFlagsKHR;
13637
13638typedef enum VkVideoEncodeAV1RateControlFlagBitsKHR {
13639 VK_VIDEO_ENCODE_AV1_RATE_CONTROL_REGULAR_GOP_BIT_KHR = 0x00000001,
13640 VK_VIDEO_ENCODE_AV1_RATE_CONTROL_TEMPORAL_LAYER_PATTERN_DYADIC_BIT_KHR = 0x00000002,
13641 VK_VIDEO_ENCODE_AV1_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR = 0x00000004,
13642 VK_VIDEO_ENCODE_AV1_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR = 0x00000008,
13643 VK_VIDEO_ENCODE_AV1_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
13644} VkVideoEncodeAV1RateControlFlagBitsKHR;
13645typedef VkFlags VkVideoEncodeAV1RateControlFlagsKHR;
13646typedef struct VkPhysicalDeviceVideoEncodeAV1FeaturesKHR {
13647 VkStructureType sType;
13648 void* pNext;
13649 VkBool32 videoEncodeAV1;
13650} VkPhysicalDeviceVideoEncodeAV1FeaturesKHR;
13651
13652typedef struct VkVideoEncodeAV1CapabilitiesKHR {
13653 VkStructureType sType;
13654 void* pNext;
13655 VkVideoEncodeAV1CapabilityFlagsKHR flags;
13656 StdVideoAV1Level maxLevel;
13657 VkExtent2D codedPictureAlignment;
13658 VkExtent2D maxTiles;
13659 VkExtent2D minTileSize;
13660 VkExtent2D maxTileSize;
13661 VkVideoEncodeAV1SuperblockSizeFlagsKHR superblockSizes;
13662 uint32_t maxSingleReferenceCount;
13663 uint32_t singleReferenceNameMask;
13664 uint32_t maxUnidirectionalCompoundReferenceCount;
13665 uint32_t maxUnidirectionalCompoundGroup1ReferenceCount;
13666 uint32_t unidirectionalCompoundReferenceNameMask;
13667 uint32_t maxBidirectionalCompoundReferenceCount;
13668 uint32_t maxBidirectionalCompoundGroup1ReferenceCount;
13669 uint32_t maxBidirectionalCompoundGroup2ReferenceCount;
13670 uint32_t bidirectionalCompoundReferenceNameMask;
13671 uint32_t maxTemporalLayerCount;
13672 uint32_t maxSpatialLayerCount;
13673 uint32_t maxOperatingPoints;
13674 uint32_t minQIndex;
13675 uint32_t maxQIndex;
13676 VkBool32 prefersGopRemainingFrames;
13677 VkBool32 requiresGopRemainingFrames;
13678 VkVideoEncodeAV1StdFlagsKHR stdSyntaxFlags;
13679} VkVideoEncodeAV1CapabilitiesKHR;
13680
13681typedef struct VkVideoEncodeAV1QIndexKHR {
13682 uint32_t intraQIndex;
13683 uint32_t predictiveQIndex;
13684 uint32_t bipredictiveQIndex;
13685} VkVideoEncodeAV1QIndexKHR;
13686
13687typedef struct VkVideoEncodeAV1QualityLevelPropertiesKHR {
13688 VkStructureType sType;
13689 void* pNext;
13690 VkVideoEncodeAV1RateControlFlagsKHR preferredRateControlFlags;
13691 uint32_t preferredGopFrameCount;
13692 uint32_t preferredKeyFramePeriod;
13693 uint32_t preferredConsecutiveBipredictiveFrameCount;
13694 uint32_t preferredTemporalLayerCount;
13695 VkVideoEncodeAV1QIndexKHR preferredConstantQIndex;
13696 uint32_t preferredMaxSingleReferenceCount;
13697 uint32_t preferredSingleReferenceNameMask;
13698 uint32_t preferredMaxUnidirectionalCompoundReferenceCount;
13699 uint32_t preferredMaxUnidirectionalCompoundGroup1ReferenceCount;
13700 uint32_t preferredUnidirectionalCompoundReferenceNameMask;
13701 uint32_t preferredMaxBidirectionalCompoundReferenceCount;
13702 uint32_t preferredMaxBidirectionalCompoundGroup1ReferenceCount;
13703 uint32_t preferredMaxBidirectionalCompoundGroup2ReferenceCount;
13704 uint32_t preferredBidirectionalCompoundReferenceNameMask;
13705} VkVideoEncodeAV1QualityLevelPropertiesKHR;
13706
13707typedef struct VkVideoEncodeAV1SessionCreateInfoKHR {
13708 VkStructureType sType;
13709 const void* pNext;
13710 VkBool32 useMaxLevel;
13711 StdVideoAV1Level maxLevel;
13712} VkVideoEncodeAV1SessionCreateInfoKHR;
13713
13714typedef struct VkVideoEncodeAV1SessionParametersCreateInfoKHR {
13715 VkStructureType sType;
13716 const void* pNext;
13717 const StdVideoAV1SequenceHeader* pStdSequenceHeader;
13718 const StdVideoEncodeAV1DecoderModelInfo* pStdDecoderModelInfo;
13719 uint32_t stdOperatingPointCount;
13720 const StdVideoEncodeAV1OperatingPointInfo* pStdOperatingPoints;
13721} VkVideoEncodeAV1SessionParametersCreateInfoKHR;
13722
13723typedef struct VkVideoEncodeAV1PictureInfoKHR {
13724 VkStructureType sType;
13725 const void* pNext;
13726 VkVideoEncodeAV1PredictionModeKHR predictionMode;
13727 VkVideoEncodeAV1RateControlGroupKHR rateControlGroup;
13728 uint32_t constantQIndex;
13729 const StdVideoEncodeAV1PictureInfo* pStdPictureInfo;
13730 int32_t referenceNameSlotIndices[VK_MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR];
13731 VkBool32 primaryReferenceCdfOnly;
13732 VkBool32 generateObuExtensionHeader;
13733} VkVideoEncodeAV1PictureInfoKHR;
13734
13735typedef struct VkVideoEncodeAV1DpbSlotInfoKHR {
13736 VkStructureType sType;
13737 const void* pNext;
13738 const StdVideoEncodeAV1ReferenceInfo* pStdReferenceInfo;
13739} VkVideoEncodeAV1DpbSlotInfoKHR;
13740
13741typedef struct VkVideoEncodeAV1ProfileInfoKHR {
13742 VkStructureType sType;
13743 const void* pNext;
13744 StdVideoAV1Profile stdProfile;
13745} VkVideoEncodeAV1ProfileInfoKHR;
13746
13747typedef struct VkVideoEncodeAV1FrameSizeKHR {
13748 uint32_t intraFrameSize;
13749 uint32_t predictiveFrameSize;
13750 uint32_t bipredictiveFrameSize;
13751} VkVideoEncodeAV1FrameSizeKHR;
13752
13753typedef struct VkVideoEncodeAV1GopRemainingFrameInfoKHR {
13754 VkStructureType sType;
13755 const void* pNext;
13756 VkBool32 useGopRemainingFrames;
13757 uint32_t gopRemainingIntra;
13758 uint32_t gopRemainingPredictive;
13759 uint32_t gopRemainingBipredictive;
13760} VkVideoEncodeAV1GopRemainingFrameInfoKHR;
13761
13762typedef struct VkVideoEncodeAV1RateControlInfoKHR {
13763 VkStructureType sType;
13764 const void* pNext;
13765 VkVideoEncodeAV1RateControlFlagsKHR flags;
13766 uint32_t gopFrameCount;
13767 uint32_t keyFramePeriod;
13768 uint32_t consecutiveBipredictiveFrameCount;
13769 uint32_t temporalLayerCount;
13770} VkVideoEncodeAV1RateControlInfoKHR;
13771
13772typedef struct VkVideoEncodeAV1RateControlLayerInfoKHR {
13773 VkStructureType sType;
13774 const void* pNext;
13775 VkBool32 useMinQIndex;
13776 VkVideoEncodeAV1QIndexKHR minQIndex;
13777 VkBool32 useMaxQIndex;
13778 VkVideoEncodeAV1QIndexKHR maxQIndex;
13779 VkBool32 useMaxFrameSize;
13780 VkVideoEncodeAV1FrameSizeKHR maxFrameSize;
13781} VkVideoEncodeAV1RateControlLayerInfoKHR;
13782
13783
13784
13785// VK_KHR_video_decode_vp9 is a preprocessor guard. Do not pass it to API calls.
13786#define VK_KHR_video_decode_vp9 1
13787#include "vk_video/vulkan_video_codec_vp9std.h"
13788#include "vk_video/vulkan_video_codec_vp9std_decode.h"
13789#define VK_MAX_VIDEO_VP9_REFERENCES_PER_FRAME_KHR 3U
13790#define VK_KHR_VIDEO_DECODE_VP9_SPEC_VERSION 1
13791#define VK_KHR_VIDEO_DECODE_VP9_EXTENSION_NAME "VK_KHR_video_decode_vp9"
13792typedef struct VkPhysicalDeviceVideoDecodeVP9FeaturesKHR {
13793 VkStructureType sType;
13794 void* pNext;
13795 VkBool32 videoDecodeVP9;
13796} VkPhysicalDeviceVideoDecodeVP9FeaturesKHR;
13797
13798typedef struct VkVideoDecodeVP9ProfileInfoKHR {
13799 VkStructureType sType;
13800 const void* pNext;
13801 StdVideoVP9Profile stdProfile;
13802} VkVideoDecodeVP9ProfileInfoKHR;
13803
13804typedef struct VkVideoDecodeVP9CapabilitiesKHR {
13805 VkStructureType sType;
13806 void* pNext;
13807 StdVideoVP9Level maxLevel;
13808} VkVideoDecodeVP9CapabilitiesKHR;
13809
13810typedef struct VkVideoDecodeVP9PictureInfoKHR {
13811 VkStructureType sType;
13812 const void* pNext;
13813 const StdVideoDecodeVP9PictureInfo* pStdPictureInfo;
13814 int32_t referenceNameSlotIndices[VK_MAX_VIDEO_VP9_REFERENCES_PER_FRAME_KHR];
13815 uint32_t uncompressedHeaderOffset;
13816 uint32_t compressedHeaderOffset;
13817 uint32_t tilesOffset;
13818} VkVideoDecodeVP9PictureInfoKHR;
13819
13820
13821
13822// VK_KHR_video_maintenance1 is a preprocessor guard. Do not pass it to API calls.
13823#define VK_KHR_video_maintenance1 1
13824#define VK_KHR_VIDEO_MAINTENANCE_1_SPEC_VERSION 1
13825#define VK_KHR_VIDEO_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_video_maintenance1"
13826typedef struct VkPhysicalDeviceVideoMaintenance1FeaturesKHR {
13827 VkStructureType sType;
13828 void* pNext;
13829 VkBool32 videoMaintenance1;
13830} VkPhysicalDeviceVideoMaintenance1FeaturesKHR;
13831
13832typedef struct VkVideoInlineQueryInfoKHR {
13833 VkStructureType sType;
13834 const void* pNext;
13835 VkQueryPool queryPool;
13836 uint32_t firstQuery;
13837 uint32_t queryCount;
13838} VkVideoInlineQueryInfoKHR;
13839
13840
13841
13842// VK_KHR_vertex_attribute_divisor is a preprocessor guard. Do not pass it to API calls.
13843#define VK_KHR_vertex_attribute_divisor 1
13844#define VK_KHR_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 1
13845#define VK_KHR_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_KHR_vertex_attribute_divisor"
13846typedef VkPhysicalDeviceVertexAttributeDivisorProperties VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR;
13847
13848typedef VkVertexInputBindingDivisorDescription VkVertexInputBindingDivisorDescriptionKHR;
13849
13850typedef VkPipelineVertexInputDivisorStateCreateInfo VkPipelineVertexInputDivisorStateCreateInfoKHR;
13851
13852typedef VkPhysicalDeviceVertexAttributeDivisorFeatures VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR;
13853
13854
13855
13856// VK_KHR_load_store_op_none is a preprocessor guard. Do not pass it to API calls.
13857#define VK_KHR_load_store_op_none 1
13858#define VK_KHR_LOAD_STORE_OP_NONE_SPEC_VERSION 1
13859#define VK_KHR_LOAD_STORE_OP_NONE_EXTENSION_NAME "VK_KHR_load_store_op_none"
13860
13861
13862// VK_KHR_unified_image_layouts is a preprocessor guard. Do not pass it to API calls.
13863#define VK_KHR_unified_image_layouts 1
13864#define VK_KHR_UNIFIED_IMAGE_LAYOUTS_SPEC_VERSION 1
13865#define VK_KHR_UNIFIED_IMAGE_LAYOUTS_EXTENSION_NAME "VK_KHR_unified_image_layouts"
13866typedef struct VkPhysicalDeviceUnifiedImageLayoutsFeaturesKHR {
13867 VkStructureType sType;
13868 void* pNext;
13869 VkBool32 unifiedImageLayouts;
13870 VkBool32 unifiedImageLayoutsVideo;
13871} VkPhysicalDeviceUnifiedImageLayoutsFeaturesKHR;
13872
13873typedef struct VkAttachmentFeedbackLoopInfoEXT {
13874 VkStructureType sType;
13875 const void* pNext;
13876 VkBool32 feedbackLoopEnable;
13877} VkAttachmentFeedbackLoopInfoEXT;
13878
13879
13880
13881// VK_KHR_shader_float_controls2 is a preprocessor guard. Do not pass it to API calls.
13882#define VK_KHR_shader_float_controls2 1
13883#define VK_KHR_SHADER_FLOAT_CONTROLS_2_SPEC_VERSION 1
13884#define VK_KHR_SHADER_FLOAT_CONTROLS_2_EXTENSION_NAME "VK_KHR_shader_float_controls2"
13885typedef VkPhysicalDeviceShaderFloatControls2Features VkPhysicalDeviceShaderFloatControls2FeaturesKHR;
13886
13887
13888
13889// VK_KHR_index_type_uint8 is a preprocessor guard. Do not pass it to API calls.
13890#define VK_KHR_index_type_uint8 1
13891#define VK_KHR_INDEX_TYPE_UINT8_SPEC_VERSION 1
13892#define VK_KHR_INDEX_TYPE_UINT8_EXTENSION_NAME "VK_KHR_index_type_uint8"
13893typedef VkPhysicalDeviceIndexTypeUint8Features VkPhysicalDeviceIndexTypeUint8FeaturesKHR;
13894
13895
13896
13897// VK_KHR_line_rasterization is a preprocessor guard. Do not pass it to API calls.
13898#define VK_KHR_line_rasterization 1
13899#define VK_KHR_LINE_RASTERIZATION_SPEC_VERSION 1
13900#define VK_KHR_LINE_RASTERIZATION_EXTENSION_NAME "VK_KHR_line_rasterization"
13901typedef VkLineRasterizationMode VkLineRasterizationModeKHR;
13902
13903typedef VkPhysicalDeviceLineRasterizationFeatures VkPhysicalDeviceLineRasterizationFeaturesKHR;
13904
13905typedef VkPhysicalDeviceLineRasterizationProperties VkPhysicalDeviceLineRasterizationPropertiesKHR;
13906
13907typedef VkPipelineRasterizationLineStateCreateInfo VkPipelineRasterizationLineStateCreateInfoKHR;
13908
13909typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleKHR)(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern);
13910
13911#ifndef VK_NO_PROTOTYPES
13912#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13913VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleKHR(
13914 VkCommandBuffer commandBuffer,
13915 uint32_t lineStippleFactor,
13916 uint16_t lineStipplePattern);
13917#endif
13918#endif
13919
13920
13921// VK_KHR_calibrated_timestamps is a preprocessor guard. Do not pass it to API calls.
13922#define VK_KHR_calibrated_timestamps 1
13923#define VK_KHR_CALIBRATED_TIMESTAMPS_SPEC_VERSION 1
13924#define VK_KHR_CALIBRATED_TIMESTAMPS_EXTENSION_NAME "VK_KHR_calibrated_timestamps"
13925
13926typedef enum VkTimeDomainKHR {
13927 VK_TIME_DOMAIN_DEVICE_KHR = 0,
13928 VK_TIME_DOMAIN_CLOCK_MONOTONIC_KHR = 1,
13929 VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR = 2,
13930 VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR = 3,
13931 VK_TIME_DOMAIN_PRESENT_STAGE_LOCAL_EXT = 1000208000,
13932 VK_TIME_DOMAIN_SWAPCHAIN_LOCAL_EXT = 1000208001,
13933 VK_TIME_DOMAIN_DEVICE_EXT = VK_TIME_DOMAIN_DEVICE_KHR,
13934 VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = VK_TIME_DOMAIN_CLOCK_MONOTONIC_KHR,
13935 VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR,
13936 VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR,
13937 VK_TIME_DOMAIN_MAX_ENUM_KHR = 0x7FFFFFFF
13938} VkTimeDomainKHR;
13939typedef struct VkCalibratedTimestampInfoKHR {
13940 VkStructureType sType;
13941 const void* pNext;
13942 VkTimeDomainKHR timeDomain;
13943} VkCalibratedTimestampInfoKHR;
13944
13945typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR)(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainKHR* pTimeDomains);
13946typedef VkResult (VKAPI_PTR *PFN_vkGetCalibratedTimestampsKHR)(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation);
13947
13948#ifndef VK_NO_PROTOTYPES
13949#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13950VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCalibrateableTimeDomainsKHR(
13951 VkPhysicalDevice physicalDevice,
13952 uint32_t* pTimeDomainCount,
13953 VkTimeDomainKHR* pTimeDomains);
13954#endif
13955
13956#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13957VKAPI_ATTR VkResult VKAPI_CALL vkGetCalibratedTimestampsKHR(
13958 VkDevice device,
13959 uint32_t timestampCount,
13960 const VkCalibratedTimestampInfoKHR* pTimestampInfos,
13961 uint64_t* pTimestamps,
13962 uint64_t* pMaxDeviation);
13963#endif
13964#endif
13965
13966
13967// VK_KHR_shader_expect_assume is a preprocessor guard. Do not pass it to API calls.
13968#define VK_KHR_shader_expect_assume 1
13969#define VK_KHR_SHADER_EXPECT_ASSUME_SPEC_VERSION 1
13970#define VK_KHR_SHADER_EXPECT_ASSUME_EXTENSION_NAME "VK_KHR_shader_expect_assume"
13971typedef VkPhysicalDeviceShaderExpectAssumeFeatures VkPhysicalDeviceShaderExpectAssumeFeaturesKHR;
13972
13973
13974
13975// VK_KHR_maintenance6 is a preprocessor guard. Do not pass it to API calls.
13976#define VK_KHR_maintenance6 1
13977#define VK_KHR_MAINTENANCE_6_SPEC_VERSION 1
13978#define VK_KHR_MAINTENANCE_6_EXTENSION_NAME "VK_KHR_maintenance6"
13979typedef VkPhysicalDeviceMaintenance6Features VkPhysicalDeviceMaintenance6FeaturesKHR;
13980
13981typedef VkPhysicalDeviceMaintenance6Properties VkPhysicalDeviceMaintenance6PropertiesKHR;
13982
13983typedef VkBindMemoryStatus VkBindMemoryStatusKHR;
13984
13985typedef VkBindDescriptorSetsInfo VkBindDescriptorSetsInfoKHR;
13986
13987typedef VkPushConstantsInfo VkPushConstantsInfoKHR;
13988
13989typedef VkPushDescriptorSetInfo VkPushDescriptorSetInfoKHR;
13990
13991typedef VkPushDescriptorSetWithTemplateInfo VkPushDescriptorSetWithTemplateInfoKHR;
13992
13993typedef struct VkSetDescriptorBufferOffsetsInfoEXT {
13994 VkStructureType sType;
13995 const void* pNext;
13996 VkShaderStageFlags stageFlags;
13997 VkPipelineLayout layout;
13998 uint32_t firstSet;
13999 uint32_t setCount;
14000 const uint32_t* pBufferIndices;
14001 const VkDeviceSize* pOffsets;
14002} VkSetDescriptorBufferOffsetsInfoEXT;
14003
14004typedef struct VkBindDescriptorBufferEmbeddedSamplersInfoEXT {
14005 VkStructureType sType;
14006 const void* pNext;
14007 VkShaderStageFlags stageFlags;
14008 VkPipelineLayout layout;
14009 uint32_t set;
14010} VkBindDescriptorBufferEmbeddedSamplersInfoEXT;
14011
14012typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorSets2KHR)(VkCommandBuffer commandBuffer, const VkBindDescriptorSetsInfo* pBindDescriptorSetsInfo);
14013typedef void (VKAPI_PTR *PFN_vkCmdPushConstants2KHR)(VkCommandBuffer commandBuffer, const VkPushConstantsInfo* pPushConstantsInfo);
14014typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSet2KHR)(VkCommandBuffer commandBuffer, const VkPushDescriptorSetInfo* pPushDescriptorSetInfo);
14015typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplate2KHR)(VkCommandBuffer commandBuffer, const VkPushDescriptorSetWithTemplateInfo* pPushDescriptorSetWithTemplateInfo);
14016typedef void (VKAPI_PTR *PFN_vkCmdSetDescriptorBufferOffsets2EXT)(VkCommandBuffer commandBuffer, const VkSetDescriptorBufferOffsetsInfoEXT* pSetDescriptorBufferOffsetsInfo);
14017typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT)(VkCommandBuffer commandBuffer, const VkBindDescriptorBufferEmbeddedSamplersInfoEXT* pBindDescriptorBufferEmbeddedSamplersInfo);
14018
14019#ifndef VK_NO_PROTOTYPES
14020#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14021VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets2KHR(
14022 VkCommandBuffer commandBuffer,
14023 const VkBindDescriptorSetsInfo* pBindDescriptorSetsInfo);
14024#endif
14025
14026#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14027VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants2KHR(
14028 VkCommandBuffer commandBuffer,
14029 const VkPushConstantsInfo* pPushConstantsInfo);
14030#endif
14031
14032#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14033VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSet2KHR(
14034 VkCommandBuffer commandBuffer,
14035 const VkPushDescriptorSetInfo* pPushDescriptorSetInfo);
14036#endif
14037
14038#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14039VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplate2KHR(
14040 VkCommandBuffer commandBuffer,
14041 const VkPushDescriptorSetWithTemplateInfo* pPushDescriptorSetWithTemplateInfo);
14042#endif
14043
14044#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14045VKAPI_ATTR void VKAPI_CALL vkCmdSetDescriptorBufferOffsets2EXT(
14046 VkCommandBuffer commandBuffer,
14047 const VkSetDescriptorBufferOffsetsInfoEXT* pSetDescriptorBufferOffsetsInfo);
14048#endif
14049
14050#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14051VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorBufferEmbeddedSamplers2EXT(
14052 VkCommandBuffer commandBuffer,
14053 const VkBindDescriptorBufferEmbeddedSamplersInfoEXT* pBindDescriptorBufferEmbeddedSamplersInfo);
14054#endif
14055#endif
14056
14057
14058// VK_KHR_copy_memory_indirect is a preprocessor guard. Do not pass it to API calls.
14059#define VK_KHR_copy_memory_indirect 1
14060#define VK_KHR_COPY_MEMORY_INDIRECT_SPEC_VERSION 1
14061#define VK_KHR_COPY_MEMORY_INDIRECT_EXTENSION_NAME "VK_KHR_copy_memory_indirect"
14062
14063typedef enum VkAddressCopyFlagBitsKHR {
14064 VK_ADDRESS_COPY_DEVICE_LOCAL_BIT_KHR = 0x00000001,
14065 VK_ADDRESS_COPY_SPARSE_BIT_KHR = 0x00000002,
14066 VK_ADDRESS_COPY_PROTECTED_BIT_KHR = 0x00000004,
14067 VK_ADDRESS_COPY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
14068} VkAddressCopyFlagBitsKHR;
14069typedef VkFlags VkAddressCopyFlagsKHR;
14070typedef struct VkCopyMemoryIndirectCommandKHR {
14071 VkDeviceAddress srcAddress;
14072 VkDeviceAddress dstAddress;
14073 VkDeviceSize size;
14074} VkCopyMemoryIndirectCommandKHR;
14075
14076typedef struct VkCopyMemoryIndirectInfoKHR {
14077 VkStructureType sType;
14078 const void* pNext;
14079 VkAddressCopyFlagsKHR srcCopyFlags;
14080 VkAddressCopyFlagsKHR dstCopyFlags;
14081 uint32_t copyCount;
14082 VkStridedDeviceAddressRangeKHR copyAddressRange;
14083} VkCopyMemoryIndirectInfoKHR;
14084
14085typedef struct VkCopyMemoryToImageIndirectCommandKHR {
14086 VkDeviceAddress srcAddress;
14087 uint32_t bufferRowLength;
14088 uint32_t bufferImageHeight;
14089 VkImageSubresourceLayers imageSubresource;
14090 VkOffset3D imageOffset;
14091 VkExtent3D imageExtent;
14092} VkCopyMemoryToImageIndirectCommandKHR;
14093
14094typedef struct VkCopyMemoryToImageIndirectInfoKHR {
14095 VkStructureType sType;
14096 const void* pNext;
14097 VkAddressCopyFlagsKHR srcCopyFlags;
14098 uint32_t copyCount;
14099 VkStridedDeviceAddressRangeKHR copyAddressRange;
14100 VkImage dstImage;
14101 VkImageLayout dstImageLayout;
14102 const VkImageSubresourceLayers* pImageSubresources;
14103} VkCopyMemoryToImageIndirectInfoKHR;
14104
14105typedef struct VkPhysicalDeviceCopyMemoryIndirectFeaturesKHR {
14106 VkStructureType sType;
14107 void* pNext;
14108 VkBool32 indirectMemoryCopy;
14109 VkBool32 indirectMemoryToImageCopy;
14110} VkPhysicalDeviceCopyMemoryIndirectFeaturesKHR;
14111
14112typedef struct VkPhysicalDeviceCopyMemoryIndirectPropertiesKHR {
14113 VkStructureType sType;
14114 void* pNext;
14115 VkQueueFlags supportedQueues;
14116} VkPhysicalDeviceCopyMemoryIndirectPropertiesKHR;
14117
14118typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryIndirectKHR)(VkCommandBuffer commandBuffer, const VkCopyMemoryIndirectInfoKHR* pCopyMemoryIndirectInfo);
14119typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToImageIndirectKHR)(VkCommandBuffer commandBuffer, const VkCopyMemoryToImageIndirectInfoKHR* pCopyMemoryToImageIndirectInfo);
14120
14121#ifndef VK_NO_PROTOTYPES
14122#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14123VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryIndirectKHR(
14124 VkCommandBuffer commandBuffer,
14125 const VkCopyMemoryIndirectInfoKHR* pCopyMemoryIndirectInfo);
14126#endif
14127
14128#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14129VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToImageIndirectKHR(
14130 VkCommandBuffer commandBuffer,
14131 const VkCopyMemoryToImageIndirectInfoKHR* pCopyMemoryToImageIndirectInfo);
14132#endif
14133#endif
14134
14135
14136// VK_KHR_video_encode_intra_refresh is a preprocessor guard. Do not pass it to API calls.
14137#define VK_KHR_video_encode_intra_refresh 1
14138#define VK_KHR_VIDEO_ENCODE_INTRA_REFRESH_SPEC_VERSION 1
14139#define VK_KHR_VIDEO_ENCODE_INTRA_REFRESH_EXTENSION_NAME "VK_KHR_video_encode_intra_refresh"
14140
14141typedef enum VkVideoEncodeIntraRefreshModeFlagBitsKHR {
14142 VK_VIDEO_ENCODE_INTRA_REFRESH_MODE_NONE_KHR = 0,
14143 VK_VIDEO_ENCODE_INTRA_REFRESH_MODE_PER_PICTURE_PARTITION_BIT_KHR = 0x00000001,
14144 VK_VIDEO_ENCODE_INTRA_REFRESH_MODE_BLOCK_BASED_BIT_KHR = 0x00000002,
14145 VK_VIDEO_ENCODE_INTRA_REFRESH_MODE_BLOCK_ROW_BASED_BIT_KHR = 0x00000004,
14146 VK_VIDEO_ENCODE_INTRA_REFRESH_MODE_BLOCK_COLUMN_BASED_BIT_KHR = 0x00000008,
14147 VK_VIDEO_ENCODE_INTRA_REFRESH_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
14148} VkVideoEncodeIntraRefreshModeFlagBitsKHR;
14149typedef VkFlags VkVideoEncodeIntraRefreshModeFlagsKHR;
14150typedef struct VkVideoEncodeIntraRefreshCapabilitiesKHR {
14151 VkStructureType sType;
14152 void* pNext;
14153 VkVideoEncodeIntraRefreshModeFlagsKHR intraRefreshModes;
14154 uint32_t maxIntraRefreshCycleDuration;
14155 uint32_t maxIntraRefreshActiveReferencePictures;
14156 VkBool32 partitionIndependentIntraRefreshRegions;
14157 VkBool32 nonRectangularIntraRefreshRegions;
14158} VkVideoEncodeIntraRefreshCapabilitiesKHR;
14159
14160typedef struct VkVideoEncodeSessionIntraRefreshCreateInfoKHR {
14161 VkStructureType sType;
14162 const void* pNext;
14163 VkVideoEncodeIntraRefreshModeFlagBitsKHR intraRefreshMode;
14164} VkVideoEncodeSessionIntraRefreshCreateInfoKHR;
14165
14166typedef struct VkVideoEncodeIntraRefreshInfoKHR {
14167 VkStructureType sType;
14168 const void* pNext;
14169 uint32_t intraRefreshCycleDuration;
14170 uint32_t intraRefreshIndex;
14171} VkVideoEncodeIntraRefreshInfoKHR;
14172
14173typedef struct VkVideoReferenceIntraRefreshInfoKHR {
14174 VkStructureType sType;
14175 const void* pNext;
14176 uint32_t dirtyIntraRefreshRegions;
14177} VkVideoReferenceIntraRefreshInfoKHR;
14178
14179typedef struct VkPhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR {
14180 VkStructureType sType;
14181 void* pNext;
14182 VkBool32 videoEncodeIntraRefresh;
14183} VkPhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR;
14184
14185
14186
14187// VK_KHR_video_encode_quantization_map is a preprocessor guard. Do not pass it to API calls.
14188#define VK_KHR_video_encode_quantization_map 1
14189#define VK_KHR_VIDEO_ENCODE_QUANTIZATION_MAP_SPEC_VERSION 2
14190#define VK_KHR_VIDEO_ENCODE_QUANTIZATION_MAP_EXTENSION_NAME "VK_KHR_video_encode_quantization_map"
14191typedef struct VkVideoEncodeQuantizationMapCapabilitiesKHR {
14192 VkStructureType sType;
14193 void* pNext;
14194 VkExtent2D maxQuantizationMapExtent;
14195} VkVideoEncodeQuantizationMapCapabilitiesKHR;
14196
14197typedef struct VkVideoFormatQuantizationMapPropertiesKHR {
14198 VkStructureType sType;
14199 void* pNext;
14200 VkExtent2D quantizationMapTexelSize;
14201} VkVideoFormatQuantizationMapPropertiesKHR;
14202
14203typedef struct VkVideoEncodeQuantizationMapInfoKHR {
14204 VkStructureType sType;
14205 const void* pNext;
14206 VkImageView quantizationMap;
14207 VkExtent2D quantizationMapExtent;
14208} VkVideoEncodeQuantizationMapInfoKHR;
14209
14210typedef struct VkVideoEncodeQuantizationMapSessionParametersCreateInfoKHR {
14211 VkStructureType sType;
14212 const void* pNext;
14213 VkExtent2D quantizationMapTexelSize;
14214} VkVideoEncodeQuantizationMapSessionParametersCreateInfoKHR;
14215
14216typedef struct VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR {
14217 VkStructureType sType;
14218 void* pNext;
14219 VkBool32 videoEncodeQuantizationMap;
14220} VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR;
14221
14222typedef struct VkVideoEncodeH264QuantizationMapCapabilitiesKHR {
14223 VkStructureType sType;
14224 void* pNext;
14225 int32_t minQpDelta;
14226 int32_t maxQpDelta;
14227} VkVideoEncodeH264QuantizationMapCapabilitiesKHR;
14228
14229typedef struct VkVideoEncodeH265QuantizationMapCapabilitiesKHR {
14230 VkStructureType sType;
14231 void* pNext;
14232 int32_t minQpDelta;
14233 int32_t maxQpDelta;
14234} VkVideoEncodeH265QuantizationMapCapabilitiesKHR;
14235
14236typedef struct VkVideoFormatH265QuantizationMapPropertiesKHR {
14237 VkStructureType sType;
14238 void* pNext;
14239 VkVideoEncodeH265CtbSizeFlagsKHR compatibleCtbSizes;
14240} VkVideoFormatH265QuantizationMapPropertiesKHR;
14241
14242typedef struct VkVideoEncodeAV1QuantizationMapCapabilitiesKHR {
14243 VkStructureType sType;
14244 void* pNext;
14245 int32_t minQIndexDelta;
14246 int32_t maxQIndexDelta;
14247} VkVideoEncodeAV1QuantizationMapCapabilitiesKHR;
14248
14249typedef struct VkVideoFormatAV1QuantizationMapPropertiesKHR {
14250 VkStructureType sType;
14251 void* pNext;
14252 VkVideoEncodeAV1SuperblockSizeFlagsKHR compatibleSuperblockSizes;
14253} VkVideoFormatAV1QuantizationMapPropertiesKHR;
14254
14255
14256
14257// VK_KHR_shader_relaxed_extended_instruction is a preprocessor guard. Do not pass it to API calls.
14258#define VK_KHR_shader_relaxed_extended_instruction 1
14259#define VK_KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_SPEC_VERSION 1
14260#define VK_KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_EXTENSION_NAME "VK_KHR_shader_relaxed_extended_instruction"
14261typedef struct VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR {
14262 VkStructureType sType;
14263 void* pNext;
14264 VkBool32 shaderRelaxedExtendedInstruction;
14265} VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR;
14266
14267
14268
14269// VK_KHR_maintenance7 is a preprocessor guard. Do not pass it to API calls.
14270#define VK_KHR_maintenance7 1
14271#define VK_KHR_MAINTENANCE_7_SPEC_VERSION 1
14272#define VK_KHR_MAINTENANCE_7_EXTENSION_NAME "VK_KHR_maintenance7"
14273
14274typedef enum VkPhysicalDeviceLayeredApiKHR {
14275 VK_PHYSICAL_DEVICE_LAYERED_API_VULKAN_KHR = 0,
14276 VK_PHYSICAL_DEVICE_LAYERED_API_D3D12_KHR = 1,
14277 VK_PHYSICAL_DEVICE_LAYERED_API_METAL_KHR = 2,
14278 VK_PHYSICAL_DEVICE_LAYERED_API_OPENGL_KHR = 3,
14279 VK_PHYSICAL_DEVICE_LAYERED_API_OPENGLES_KHR = 4,
14280 VK_PHYSICAL_DEVICE_LAYERED_API_MAX_ENUM_KHR = 0x7FFFFFFF
14281} VkPhysicalDeviceLayeredApiKHR;
14282typedef struct VkPhysicalDeviceMaintenance7FeaturesKHR {
14283 VkStructureType sType;
14284 void* pNext;
14285 VkBool32 maintenance7;
14286} VkPhysicalDeviceMaintenance7FeaturesKHR;
14287
14288typedef struct VkPhysicalDeviceMaintenance7PropertiesKHR {
14289 VkStructureType sType;
14290 void* pNext;
14291 VkBool32 robustFragmentShadingRateAttachmentAccess;
14292 VkBool32 separateDepthStencilAttachmentAccess;
14293 uint32_t maxDescriptorSetTotalUniformBuffersDynamic;
14294 uint32_t maxDescriptorSetTotalStorageBuffersDynamic;
14295 uint32_t maxDescriptorSetTotalBuffersDynamic;
14296 uint32_t maxDescriptorSetUpdateAfterBindTotalUniformBuffersDynamic;
14297 uint32_t maxDescriptorSetUpdateAfterBindTotalStorageBuffersDynamic;
14298 uint32_t maxDescriptorSetUpdateAfterBindTotalBuffersDynamic;
14299} VkPhysicalDeviceMaintenance7PropertiesKHR;
14300
14301typedef struct VkPhysicalDeviceLayeredApiPropertiesKHR {
14302 VkStructureType sType;
14303 void* pNext;
14304 uint32_t vendorID;
14305 uint32_t deviceID;
14306 VkPhysicalDeviceLayeredApiKHR layeredAPI;
14307 char deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
14308} VkPhysicalDeviceLayeredApiPropertiesKHR;
14309
14310typedef struct VkPhysicalDeviceLayeredApiPropertiesListKHR {
14311 VkStructureType sType;
14312 void* pNext;
14313 uint32_t layeredApiCount;
14314 VkPhysicalDeviceLayeredApiPropertiesKHR* pLayeredApis;
14315} VkPhysicalDeviceLayeredApiPropertiesListKHR;
14316
14317typedef struct VkPhysicalDeviceLayeredApiVulkanPropertiesKHR {
14318 VkStructureType sType;
14319 void* pNext;
14320 VkPhysicalDeviceProperties2 properties;
14321} VkPhysicalDeviceLayeredApiVulkanPropertiesKHR;
14322
14323
14324
14325// VK_KHR_device_fault is a preprocessor guard. Do not pass it to API calls.
14326#define VK_KHR_device_fault 1
14327#define VK_KHR_DEVICE_FAULT_SPEC_VERSION 1
14328#define VK_KHR_DEVICE_FAULT_EXTENSION_NAME "VK_KHR_device_fault"
14329
14330typedef enum VkDeviceFaultAddressTypeKHR {
14331 VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_KHR = 0,
14332 VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_KHR = 1,
14333 VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_KHR = 2,
14334 VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_KHR = 3,
14335 VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_KHR = 4,
14336 VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_KHR = 5,
14337 VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_KHR = 6,
14338 VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT = VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_KHR,
14339 VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT = VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_KHR,
14340 VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT = VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_KHR,
14341 VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT = VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_KHR,
14342 VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT = VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_KHR,
14343 VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT = VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_KHR,
14344 VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT = VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_KHR,
14345 VK_DEVICE_FAULT_ADDRESS_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
14346} VkDeviceFaultAddressTypeKHR;
14347
14348typedef enum VkDeviceFaultVendorBinaryHeaderVersionKHR {
14349 VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_KHR = 1,
14350 VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT = VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_KHR,
14351 VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_MAX_ENUM_KHR = 0x7FFFFFFF
14352} VkDeviceFaultVendorBinaryHeaderVersionKHR;
14353
14354typedef enum VkDeviceFaultFlagBitsKHR {
14355 VK_DEVICE_FAULT_FLAG_DEVICE_LOST_KHR = 0x00000001,
14356 VK_DEVICE_FAULT_FLAG_MEMORY_ADDRESS_KHR = 0x00000002,
14357 VK_DEVICE_FAULT_FLAG_INSTRUCTION_ADDRESS_KHR = 0x00000004,
14358 VK_DEVICE_FAULT_FLAG_VENDOR_KHR = 0x00000008,
14359 VK_DEVICE_FAULT_FLAG_WATCHDOG_TIMEOUT_KHR = 0x00000010,
14360 VK_DEVICE_FAULT_FLAG_OVERFLOW_KHR = 0x00000020,
14361 VK_DEVICE_FAULT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
14362} VkDeviceFaultFlagBitsKHR;
14363typedef VkFlags VkDeviceFaultFlagsKHR;
14364typedef struct VkPhysicalDeviceFaultFeaturesKHR {
14365 VkStructureType sType;
14366 void* pNext;
14367 VkBool32 deviceFault;
14368 VkBool32 deviceFaultVendorBinary;
14369 VkBool32 deviceFaultReportMasked;
14370 VkBool32 deviceFaultDeviceLostOnMasked;
14371} VkPhysicalDeviceFaultFeaturesKHR;
14372
14373typedef struct VkPhysicalDeviceFaultPropertiesKHR {
14374 VkStructureType sType;
14375 void* pNext;
14376 uint32_t maxDeviceFaultCount;
14377} VkPhysicalDeviceFaultPropertiesKHR;
14378
14379typedef struct VkDeviceFaultAddressInfoKHR {
14380 VkDeviceFaultAddressTypeKHR addressType;
14381 VkDeviceAddress reportedAddress;
14382 VkDeviceSize addressPrecision;
14383} VkDeviceFaultAddressInfoKHR;
14384
14385typedef struct VkDeviceFaultVendorInfoKHR {
14386 char description[VK_MAX_DESCRIPTION_SIZE];
14387 uint64_t vendorFaultCode;
14388 uint64_t vendorFaultData;
14389} VkDeviceFaultVendorInfoKHR;
14390
14391typedef struct VkDeviceFaultInfoKHR {
14392 VkStructureType sType;
14393 void* pNext;
14394 VkDeviceFaultFlagsKHR flags;
14395 uint64_t groupId;
14396 char description[VK_MAX_DESCRIPTION_SIZE];
14397 VkDeviceFaultAddressInfoKHR faultAddressInfo;
14398 VkDeviceFaultAddressInfoKHR instructionAddressInfo;
14399 VkDeviceFaultVendorInfoKHR vendorInfo;
14400} VkDeviceFaultInfoKHR;
14401
14402typedef struct VkDeviceFaultDebugInfoKHR {
14403 VkStructureType sType;
14404 void* pNext;
14405 uint32_t vendorBinarySize;
14406 void* pVendorBinaryData;
14407} VkDeviceFaultDebugInfoKHR;
14408
14409typedef struct VkDeviceFaultVendorBinaryHeaderVersionOneKHR {
14410 uint32_t headerSize;
14411 VkDeviceFaultVendorBinaryHeaderVersionKHR headerVersion;
14412 uint32_t vendorID;
14413 uint32_t deviceID;
14414 uint32_t driverVersion;
14415 uint8_t pipelineCacheUUID[VK_UUID_SIZE];
14416 uint32_t applicationNameOffset;
14417 uint32_t applicationVersion;
14418 uint32_t engineNameOffset;
14419 uint32_t engineVersion;
14420 uint32_t apiVersion;
14421} VkDeviceFaultVendorBinaryHeaderVersionOneKHR;
14422
14423typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceFaultReportsKHR)(VkDevice device, uint64_t timeout, uint32_t* pFaultCounts, VkDeviceFaultInfoKHR* pFaultInfo);
14424typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceFaultDebugInfoKHR)(VkDevice device, VkDeviceFaultDebugInfoKHR* pDebugInfo);
14425
14426#ifndef VK_NO_PROTOTYPES
14427#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14428VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceFaultReportsKHR(
14429 VkDevice device,
14430 uint64_t timeout,
14431 uint32_t* pFaultCounts,
14432 VkDeviceFaultInfoKHR* pFaultInfo);
14433#endif
14434
14435#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14436VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceFaultDebugInfoKHR(
14437 VkDevice device,
14438 VkDeviceFaultDebugInfoKHR* pDebugInfo);
14439#endif
14440#endif
14441
14442
14443// VK_KHR_maintenance8 is a preprocessor guard. Do not pass it to API calls.
14444#define VK_KHR_maintenance8 1
14445#define VK_KHR_MAINTENANCE_8_SPEC_VERSION 1
14446#define VK_KHR_MAINTENANCE_8_EXTENSION_NAME "VK_KHR_maintenance8"
14447typedef VkFlags64 VkAccessFlags3KHR;
14448
14449// Flag bits for VkAccessFlagBits3KHR
14450typedef VkFlags64 VkAccessFlagBits3KHR;
14451static const VkAccessFlagBits3KHR VK_ACCESS_3_NONE_KHR = 0ULL;
14452
14453typedef struct VkMemoryBarrierAccessFlags3KHR {
14454 VkStructureType sType;
14455 const void* pNext;
14456 VkAccessFlags3KHR srcAccessMask3;
14457 VkAccessFlags3KHR dstAccessMask3;
14458} VkMemoryBarrierAccessFlags3KHR;
14459
14460typedef struct VkPhysicalDeviceMaintenance8FeaturesKHR {
14461 VkStructureType sType;
14462 void* pNext;
14463 VkBool32 maintenance8;
14464} VkPhysicalDeviceMaintenance8FeaturesKHR;
14465
14466
14467
14468// VK_KHR_shader_fma is a preprocessor guard. Do not pass it to API calls.
14469#define VK_KHR_shader_fma 1
14470#define VK_KHR_SHADER_FMA_SPEC_VERSION 1
14471#define VK_KHR_SHADER_FMA_EXTENSION_NAME "VK_KHR_shader_fma"
14472typedef struct VkPhysicalDeviceShaderFmaFeaturesKHR {
14473 VkStructureType sType;
14474 void* pNext;
14475 VkBool32 shaderFmaFloat16;
14476 VkBool32 shaderFmaFloat32;
14477 VkBool32 shaderFmaFloat64;
14478} VkPhysicalDeviceShaderFmaFeaturesKHR;
14479
14480
14481
14482// VK_KHR_maintenance9 is a preprocessor guard. Do not pass it to API calls.
14483#define VK_KHR_maintenance9 1
14484#define VK_KHR_MAINTENANCE_9_SPEC_VERSION 1
14485#define VK_KHR_MAINTENANCE_9_EXTENSION_NAME "VK_KHR_maintenance9"
14486
14487typedef enum VkDefaultVertexAttributeValueKHR {
14488 VK_DEFAULT_VERTEX_ATTRIBUTE_VALUE_ZERO_ZERO_ZERO_ZERO_KHR = 0,
14489 VK_DEFAULT_VERTEX_ATTRIBUTE_VALUE_ZERO_ZERO_ZERO_ONE_KHR = 1,
14490 VK_DEFAULT_VERTEX_ATTRIBUTE_VALUE_MAX_ENUM_KHR = 0x7FFFFFFF
14491} VkDefaultVertexAttributeValueKHR;
14492typedef struct VkPhysicalDeviceMaintenance9FeaturesKHR {
14493 VkStructureType sType;
14494 void* pNext;
14495 VkBool32 maintenance9;
14496} VkPhysicalDeviceMaintenance9FeaturesKHR;
14497
14498typedef struct VkPhysicalDeviceMaintenance9PropertiesKHR {
14499 VkStructureType sType;
14500 void* pNext;
14501 VkBool32 image2DViewOf3DSparse;
14502 VkDefaultVertexAttributeValueKHR defaultVertexAttributeValue;
14503} VkPhysicalDeviceMaintenance9PropertiesKHR;
14504
14505typedef struct VkQueueFamilyOwnershipTransferPropertiesKHR {
14506 VkStructureType sType;
14507 void* pNext;
14508 uint32_t optimalImageTransferToQueueFamilies;
14509} VkQueueFamilyOwnershipTransferPropertiesKHR;
14510
14511
14512
14513// VK_KHR_video_maintenance2 is a preprocessor guard. Do not pass it to API calls.
14514#define VK_KHR_video_maintenance2 1
14515#define VK_KHR_VIDEO_MAINTENANCE_2_SPEC_VERSION 1
14516#define VK_KHR_VIDEO_MAINTENANCE_2_EXTENSION_NAME "VK_KHR_video_maintenance2"
14517typedef struct VkPhysicalDeviceVideoMaintenance2FeaturesKHR {
14518 VkStructureType sType;
14519 void* pNext;
14520 VkBool32 videoMaintenance2;
14521} VkPhysicalDeviceVideoMaintenance2FeaturesKHR;
14522
14523typedef struct VkVideoDecodeH264InlineSessionParametersInfoKHR {
14524 VkStructureType sType;
14525 const void* pNext;
14526 const StdVideoH264SequenceParameterSet* pStdSPS;
14527 const StdVideoH264PictureParameterSet* pStdPPS;
14528} VkVideoDecodeH264InlineSessionParametersInfoKHR;
14529
14530typedef struct VkVideoDecodeH265InlineSessionParametersInfoKHR {
14531 VkStructureType sType;
14532 const void* pNext;
14533 const StdVideoH265VideoParameterSet* pStdVPS;
14534 const StdVideoH265SequenceParameterSet* pStdSPS;
14535 const StdVideoH265PictureParameterSet* pStdPPS;
14536} VkVideoDecodeH265InlineSessionParametersInfoKHR;
14537
14538typedef struct VkVideoDecodeAV1InlineSessionParametersInfoKHR {
14539 VkStructureType sType;
14540 const void* pNext;
14541 const StdVideoAV1SequenceHeader* pStdSequenceHeader;
14542} VkVideoDecodeAV1InlineSessionParametersInfoKHR;
14543
14544
14545
14546// VK_KHR_depth_clamp_zero_one is a preprocessor guard. Do not pass it to API calls.
14547#define VK_KHR_depth_clamp_zero_one 1
14548#define VK_KHR_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION 1
14549#define VK_KHR_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME "VK_KHR_depth_clamp_zero_one"
14550typedef struct VkPhysicalDeviceDepthClampZeroOneFeaturesKHR {
14551 VkStructureType sType;
14552 void* pNext;
14553 VkBool32 depthClampZeroOne;
14554} VkPhysicalDeviceDepthClampZeroOneFeaturesKHR;
14555
14556
14557
14558// VK_KHR_robustness2 is a preprocessor guard. Do not pass it to API calls.
14559#define VK_KHR_robustness2 1
14560#define VK_KHR_ROBUSTNESS_2_SPEC_VERSION 1
14561#define VK_KHR_ROBUSTNESS_2_EXTENSION_NAME "VK_KHR_robustness2"
14562typedef struct VkPhysicalDeviceRobustness2FeaturesKHR {
14563 VkStructureType sType;
14564 void* pNext;
14565 VkBool32 robustBufferAccess2;
14566 VkBool32 robustImageAccess2;
14567 VkBool32 nullDescriptor;
14568} VkPhysicalDeviceRobustness2FeaturesKHR;
14569
14570typedef struct VkPhysicalDeviceRobustness2PropertiesKHR {
14571 VkStructureType sType;
14572 void* pNext;
14573 VkDeviceSize robustStorageBufferAccessSizeAlignment;
14574 VkDeviceSize robustUniformBufferAccessSizeAlignment;
14575} VkPhysicalDeviceRobustness2PropertiesKHR;
14576
14577
14578
14579// VK_KHR_present_mode_fifo_latest_ready is a preprocessor guard. Do not pass it to API calls.
14580#define VK_KHR_present_mode_fifo_latest_ready 1
14581#define VK_KHR_PRESENT_MODE_FIFO_LATEST_READY_SPEC_VERSION 1
14582#define VK_KHR_PRESENT_MODE_FIFO_LATEST_READY_EXTENSION_NAME "VK_KHR_present_mode_fifo_latest_ready"
14583typedef struct VkPhysicalDevicePresentModeFifoLatestReadyFeaturesKHR {
14584 VkStructureType sType;
14585 void* pNext;
14586 VkBool32 presentModeFifoLatestReady;
14587} VkPhysicalDevicePresentModeFifoLatestReadyFeaturesKHR;
14588
14589
14590
14591// VK_KHR_maintenance10 is a preprocessor guard. Do not pass it to API calls.
14592#define VK_KHR_maintenance10 1
14593#define VK_KHR_MAINTENANCE_10_SPEC_VERSION 1
14594#define VK_KHR_MAINTENANCE_10_EXTENSION_NAME "VK_KHR_maintenance10"
14595
14596typedef enum VkRenderingAttachmentFlagBitsKHR {
14597 VK_RENDERING_ATTACHMENT_INPUT_ATTACHMENT_FEEDBACK_BIT_KHR = 0x00000001,
14598 VK_RENDERING_ATTACHMENT_RESOLVE_SKIP_TRANSFER_FUNCTION_BIT_KHR = 0x00000002,
14599 VK_RENDERING_ATTACHMENT_RESOLVE_ENABLE_TRANSFER_FUNCTION_BIT_KHR = 0x00000004,
14600 VK_RENDERING_ATTACHMENT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
14601} VkRenderingAttachmentFlagBitsKHR;
14602typedef VkFlags VkRenderingAttachmentFlagsKHR;
14603
14604typedef enum VkResolveImageFlagBitsKHR {
14605 VK_RESOLVE_IMAGE_SKIP_TRANSFER_FUNCTION_BIT_KHR = 0x00000001,
14606 VK_RESOLVE_IMAGE_ENABLE_TRANSFER_FUNCTION_BIT_KHR = 0x00000002,
14607 VK_RESOLVE_IMAGE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
14608} VkResolveImageFlagBitsKHR;
14609typedef VkFlags VkResolveImageFlagsKHR;
14610typedef struct VkPhysicalDeviceMaintenance10FeaturesKHR {
14611 VkStructureType sType;
14612 void* pNext;
14613 VkBool32 maintenance10;
14614} VkPhysicalDeviceMaintenance10FeaturesKHR;
14615
14616typedef struct VkPhysicalDeviceMaintenance10PropertiesKHR {
14617 VkStructureType sType;
14618 void* pNext;
14619 VkBool32 rgba4OpaqueBlackSwizzled;
14620 VkBool32 resolveSrgbFormatAppliesTransferFunction;
14621 VkBool32 resolveSrgbFormatSupportsTransferFunctionControl;
14622} VkPhysicalDeviceMaintenance10PropertiesKHR;
14623
14624typedef struct VkRenderingEndInfoKHR {
14625 VkStructureType sType;
14626 const void* pNext;
14627} VkRenderingEndInfoKHR;
14628
14629typedef struct VkRenderingAttachmentFlagsInfoKHR {
14630 VkStructureType sType;
14631 const void* pNext;
14632 VkRenderingAttachmentFlagsKHR flags;
14633} VkRenderingAttachmentFlagsInfoKHR;
14634
14635typedef struct VkResolveImageModeInfoKHR {
14636 VkStructureType sType;
14637 const void* pNext;
14638 VkResolveImageFlagsKHR flags;
14639 VkResolveModeFlagBits resolveMode;
14640 VkResolveModeFlagBits stencilResolveMode;
14641} VkResolveImageModeInfoKHR;
14642
14643typedef void (VKAPI_PTR *PFN_vkCmdEndRendering2KHR)(VkCommandBuffer commandBuffer, const VkRenderingEndInfoKHR* pRenderingEndInfo);
14644
14645#ifndef VK_NO_PROTOTYPES
14646#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14647VKAPI_ATTR void VKAPI_CALL vkCmdEndRendering2KHR(
14648 VkCommandBuffer commandBuffer,
14649 const VkRenderingEndInfoKHR* pRenderingEndInfo);
14650#endif
14651#endif
14652
14653
14654// VK_KHR_maintenance11 is a preprocessor guard. Do not pass it to API calls.
14655#define VK_KHR_maintenance11 1
14656#define VK_KHR_MAINTENANCE_11_SPEC_VERSION 1
14657#define VK_KHR_MAINTENANCE_11_EXTENSION_NAME "VK_KHR_maintenance11"
14658typedef struct VkPhysicalDeviceMaintenance11FeaturesKHR {
14659 VkStructureType sType;
14660 void* pNext;
14661 VkBool32 maintenance11;
14662} VkPhysicalDeviceMaintenance11FeaturesKHR;
14663
14664typedef struct VkQueueFamilyOptimalImageTransferGranularityPropertiesKHR {
14665 VkStructureType sType;
14666 void* pNext;
14667 VkExtent3D optimalImageTransferGranularity;
14668} VkQueueFamilyOptimalImageTransferGranularityPropertiesKHR;
14669
14670
14671
14672// VK_EXT_debug_report is a preprocessor guard. Do not pass it to API calls.
14673#define VK_EXT_debug_report 1
14674VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)
14675#define VK_EXT_DEBUG_REPORT_SPEC_VERSION 10
14676#define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report"
14677
14678typedef enum VkDebugReportObjectTypeEXT {
14679 VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0,
14680 VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1,
14681 VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2,
14682 VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3,
14683 VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4,
14684 VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5,
14685 VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6,
14686 VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7,
14687 VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8,
14688 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9,
14689 VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10,
14690 VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11,
14691 VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12,
14692 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13,
14693 VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14,
14694 VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15,
14695 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16,
14696 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17,
14697 VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18,
14698 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19,
14699 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20,
14700 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21,
14701 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22,
14702 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23,
14703 VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24,
14704 VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25,
14705 VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
14706 VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
14707 VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28,
14708 VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29,
14709 VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
14710 VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33,
14711 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000,
14712 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000,
14713 VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT = 1000029000,
14714 VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = 1000029001,
14715 VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000,
14716 VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000,
14717 VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV_EXT = 1000307000,
14718 VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_FUNCTION_NV_EXT = 1000307001,
14719 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = 1000366000,
14720 // VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT is a legacy alias
14721 VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT,
14722 // VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT is a legacy alias
14723 VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
14724 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT,
14725 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT,
14726 VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
14727} VkDebugReportObjectTypeEXT;
14728
14729typedef enum VkDebugReportFlagBitsEXT {
14730 VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001,
14731 VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002,
14732 VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004,
14733 VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008,
14734 VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010,
14735 VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
14736} VkDebugReportFlagBitsEXT;
14737typedef VkFlags VkDebugReportFlagsEXT;
14738typedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)(
14739 VkDebugReportFlagsEXT flags,
14740 VkDebugReportObjectTypeEXT objectType,
14741 uint64_t object,
14742 size_t location,
14743 int32_t messageCode,
14744 const char* pLayerPrefix,
14745 const char* pMessage,
14746 void* pUserData);
14747
14748typedef struct VkDebugReportCallbackCreateInfoEXT {
14749 VkStructureType sType;
14750 const void* pNext;
14751 VkDebugReportFlagsEXT flags;
14752 PFN_vkDebugReportCallbackEXT pfnCallback;
14753 void* pUserData;
14754} VkDebugReportCallbackCreateInfoEXT;
14755
14756typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugReportCallbackEXT)(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback);
14757typedef void (VKAPI_PTR *PFN_vkDestroyDebugReportCallbackEXT)(VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator);
14758typedef 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);
14759
14760#ifndef VK_NO_PROTOTYPES
14761#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14762VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugReportCallbackEXT(
14763 VkInstance instance,
14764 const VkDebugReportCallbackCreateInfoEXT* pCreateInfo,
14765 const VkAllocationCallbacks* pAllocator,
14766 VkDebugReportCallbackEXT* pCallback);
14767#endif
14768
14769#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14770VKAPI_ATTR void VKAPI_CALL vkDestroyDebugReportCallbackEXT(
14771 VkInstance instance,
14772 VkDebugReportCallbackEXT callback,
14773 const VkAllocationCallbacks* pAllocator);
14774#endif
14775
14776#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14777VKAPI_ATTR void VKAPI_CALL vkDebugReportMessageEXT(
14778 VkInstance instance,
14779 VkDebugReportFlagsEXT flags,
14780 VkDebugReportObjectTypeEXT objectType,
14781 uint64_t object,
14782 size_t location,
14783 int32_t messageCode,
14784 const char* pLayerPrefix,
14785 const char* pMessage);
14786#endif
14787#endif
14788
14789
14790// VK_NV_glsl_shader is a preprocessor guard. Do not pass it to API calls.
14791#define VK_NV_glsl_shader 1
14792#define VK_NV_GLSL_SHADER_SPEC_VERSION 1
14793#define VK_NV_GLSL_SHADER_EXTENSION_NAME "VK_NV_glsl_shader"
14794
14795
14796// VK_EXT_depth_range_unrestricted is a preprocessor guard. Do not pass it to API calls.
14797#define VK_EXT_depth_range_unrestricted 1
14798#define VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION 1
14799#define VK_EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME "VK_EXT_depth_range_unrestricted"
14800
14801
14802// VK_IMG_filter_cubic is a preprocessor guard. Do not pass it to API calls.
14803#define VK_IMG_filter_cubic 1
14804#define VK_IMG_FILTER_CUBIC_SPEC_VERSION 1
14805#define VK_IMG_FILTER_CUBIC_EXTENSION_NAME "VK_IMG_filter_cubic"
14806
14807
14808// VK_AMD_rasterization_order is a preprocessor guard. Do not pass it to API calls.
14809#define VK_AMD_rasterization_order 1
14810#define VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION 1
14811#define VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME "VK_AMD_rasterization_order"
14812
14813typedef enum VkRasterizationOrderAMD {
14814 VK_RASTERIZATION_ORDER_STRICT_AMD = 0,
14815 VK_RASTERIZATION_ORDER_RELAXED_AMD = 1,
14816 VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 0x7FFFFFFF
14817} VkRasterizationOrderAMD;
14818typedef struct VkPipelineRasterizationStateRasterizationOrderAMD {
14819 VkStructureType sType;
14820 const void* pNext;
14821 VkRasterizationOrderAMD rasterizationOrder;
14822} VkPipelineRasterizationStateRasterizationOrderAMD;
14823
14824
14825
14826// VK_AMD_shader_trinary_minmax is a preprocessor guard. Do not pass it to API calls.
14827#define VK_AMD_shader_trinary_minmax 1
14828#define VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION 1
14829#define VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME "VK_AMD_shader_trinary_minmax"
14830
14831
14832// VK_AMD_shader_explicit_vertex_parameter is a preprocessor guard. Do not pass it to API calls.
14833#define VK_AMD_shader_explicit_vertex_parameter 1
14834#define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION 1
14835#define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME "VK_AMD_shader_explicit_vertex_parameter"
14836
14837
14838// VK_EXT_debug_marker is a preprocessor guard. Do not pass it to API calls.
14839#define VK_EXT_debug_marker 1
14840#define VK_EXT_DEBUG_MARKER_SPEC_VERSION 4
14841#define VK_EXT_DEBUG_MARKER_EXTENSION_NAME "VK_EXT_debug_marker"
14842typedef struct VkDebugMarkerObjectNameInfoEXT {
14843 VkStructureType sType;
14844 const void* pNext;
14845 VkDebugReportObjectTypeEXT objectType;
14846 uint64_t object;
14847 const char* pObjectName;
14848} VkDebugMarkerObjectNameInfoEXT;
14849
14850typedef struct VkDebugMarkerObjectTagInfoEXT {
14851 VkStructureType sType;
14852 const void* pNext;
14853 VkDebugReportObjectTypeEXT objectType;
14854 uint64_t object;
14855 uint64_t tagName;
14856 size_t tagSize;
14857 const void* pTag;
14858} VkDebugMarkerObjectTagInfoEXT;
14859
14860typedef struct VkDebugMarkerMarkerInfoEXT {
14861 VkStructureType sType;
14862 const void* pNext;
14863 const char* pMarkerName;
14864 float color[4];
14865} VkDebugMarkerMarkerInfoEXT;
14866
14867typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectTagEXT)(VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo);
14868typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectNameEXT)(VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo);
14869typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerBeginEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
14870typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerEndEXT)(VkCommandBuffer commandBuffer);
14871typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerInsertEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
14872
14873#ifndef VK_NO_PROTOTYPES
14874#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14875VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectTagEXT(
14876 VkDevice device,
14877 const VkDebugMarkerObjectTagInfoEXT* pTagInfo);
14878#endif
14879
14880#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14881VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectNameEXT(
14882 VkDevice device,
14883 const VkDebugMarkerObjectNameInfoEXT* pNameInfo);
14884#endif
14885
14886#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14887VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerBeginEXT(
14888 VkCommandBuffer commandBuffer,
14889 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
14890#endif
14891
14892#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14893VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerEndEXT(
14894 VkCommandBuffer commandBuffer);
14895#endif
14896
14897#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14898VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerInsertEXT(
14899 VkCommandBuffer commandBuffer,
14900 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
14901#endif
14902#endif
14903
14904
14905// VK_AMD_gcn_shader is a preprocessor guard. Do not pass it to API calls.
14906#define VK_AMD_gcn_shader 1
14907#define VK_AMD_GCN_SHADER_SPEC_VERSION 1
14908#define VK_AMD_GCN_SHADER_EXTENSION_NAME "VK_AMD_gcn_shader"
14909
14910
14911// VK_NV_dedicated_allocation is a preprocessor guard. Do not pass it to API calls.
14912#define VK_NV_dedicated_allocation 1
14913#define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1
14914#define VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_NV_dedicated_allocation"
14915typedef struct VkDedicatedAllocationImageCreateInfoNV {
14916 VkStructureType sType;
14917 const void* pNext;
14918 VkBool32 dedicatedAllocation;
14919} VkDedicatedAllocationImageCreateInfoNV;
14920
14921typedef struct VkDedicatedAllocationBufferCreateInfoNV {
14922 VkStructureType sType;
14923 const void* pNext;
14924 VkBool32 dedicatedAllocation;
14925} VkDedicatedAllocationBufferCreateInfoNV;
14926
14927typedef struct VkDedicatedAllocationMemoryAllocateInfoNV {
14928 VkStructureType sType;
14929 const void* pNext;
14930 VkImage image;
14931 VkBuffer buffer;
14932} VkDedicatedAllocationMemoryAllocateInfoNV;
14933
14934
14935
14936// VK_EXT_transform_feedback is a preprocessor guard. Do not pass it to API calls.
14937#define VK_EXT_transform_feedback 1
14938#define VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION 1
14939#define VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME "VK_EXT_transform_feedback"
14940typedef VkFlags VkPipelineRasterizationStateStreamCreateFlagsEXT;
14941typedef struct VkPhysicalDeviceTransformFeedbackFeaturesEXT {
14942 VkStructureType sType;
14943 void* pNext;
14944 VkBool32 transformFeedback;
14945 VkBool32 geometryStreams;
14946} VkPhysicalDeviceTransformFeedbackFeaturesEXT;
14947
14948typedef struct VkPhysicalDeviceTransformFeedbackPropertiesEXT {
14949 VkStructureType sType;
14950 void* pNext;
14951 uint32_t maxTransformFeedbackStreams;
14952 uint32_t maxTransformFeedbackBuffers;
14953 VkDeviceSize maxTransformFeedbackBufferSize;
14954 uint32_t maxTransformFeedbackStreamDataSize;
14955 uint32_t maxTransformFeedbackBufferDataSize;
14956 uint32_t maxTransformFeedbackBufferDataStride;
14957 VkBool32 transformFeedbackQueries;
14958 VkBool32 transformFeedbackStreamsLinesTriangles;
14959 VkBool32 transformFeedbackRasterizationStreamSelect;
14960 VkBool32 transformFeedbackDraw;
14961} VkPhysicalDeviceTransformFeedbackPropertiesEXT;
14962
14963typedef struct VkPipelineRasterizationStateStreamCreateInfoEXT {
14964 VkStructureType sType;
14965 const void* pNext;
14966 VkPipelineRasterizationStateStreamCreateFlagsEXT flags;
14967 uint32_t rasterizationStream;
14968} VkPipelineRasterizationStateStreamCreateInfoEXT;
14969
14970typedef void (VKAPI_PTR *PFN_vkCmdBindTransformFeedbackBuffersEXT)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes);
14971typedef void (VKAPI_PTR *PFN_vkCmdBeginTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets);
14972typedef void (VKAPI_PTR *PFN_vkCmdEndTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets);
14973typedef void (VKAPI_PTR *PFN_vkCmdBeginQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index);
14974typedef void (VKAPI_PTR *PFN_vkCmdEndQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index);
14975typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectByteCountEXT)(VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride);
14976
14977#ifndef VK_NO_PROTOTYPES
14978#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14979VKAPI_ATTR void VKAPI_CALL vkCmdBindTransformFeedbackBuffersEXT(
14980 VkCommandBuffer commandBuffer,
14981 uint32_t firstBinding,
14982 uint32_t bindingCount,
14983 const VkBuffer* pBuffers,
14984 const VkDeviceSize* pOffsets,
14985 const VkDeviceSize* pSizes);
14986#endif
14987
14988#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14989VKAPI_ATTR void VKAPI_CALL vkCmdBeginTransformFeedbackEXT(
14990 VkCommandBuffer commandBuffer,
14991 uint32_t firstCounterBuffer,
14992 uint32_t counterBufferCount,
14993 const VkBuffer* pCounterBuffers,
14994 const VkDeviceSize* pCounterBufferOffsets);
14995#endif
14996
14997#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14998VKAPI_ATTR void VKAPI_CALL vkCmdEndTransformFeedbackEXT(
14999 VkCommandBuffer commandBuffer,
15000 uint32_t firstCounterBuffer,
15001 uint32_t counterBufferCount,
15002 const VkBuffer* pCounterBuffers,
15003 const VkDeviceSize* pCounterBufferOffsets);
15004#endif
15005
15006#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15007VKAPI_ATTR void VKAPI_CALL vkCmdBeginQueryIndexedEXT(
15008 VkCommandBuffer commandBuffer,
15009 VkQueryPool queryPool,
15010 uint32_t query,
15011 VkQueryControlFlags flags,
15012 uint32_t index);
15013#endif
15014
15015#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15016VKAPI_ATTR void VKAPI_CALL vkCmdEndQueryIndexedEXT(
15017 VkCommandBuffer commandBuffer,
15018 VkQueryPool queryPool,
15019 uint32_t query,
15020 uint32_t index);
15021#endif
15022
15023#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15024VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectByteCountEXT(
15025 VkCommandBuffer commandBuffer,
15026 uint32_t instanceCount,
15027 uint32_t firstInstance,
15028 VkBuffer counterBuffer,
15029 VkDeviceSize counterBufferOffset,
15030 uint32_t counterOffset,
15031 uint32_t vertexStride);
15032#endif
15033#endif
15034
15035
15036// VK_NVX_binary_import is a preprocessor guard. Do not pass it to API calls.
15037#define VK_NVX_binary_import 1
15038VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuModuleNVX)
15039VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuFunctionNVX)
15040#define VK_NVX_BINARY_IMPORT_SPEC_VERSION 2
15041#define VK_NVX_BINARY_IMPORT_EXTENSION_NAME "VK_NVX_binary_import"
15042typedef struct VkCuModuleCreateInfoNVX {
15043 VkStructureType sType;
15044 const void* pNext;
15045 size_t dataSize;
15046 const void* pData;
15047} VkCuModuleCreateInfoNVX;
15048
15049typedef struct VkCuModuleTexturingModeCreateInfoNVX {
15050 VkStructureType sType;
15051 const void* pNext;
15052 VkBool32 use64bitTexturing;
15053} VkCuModuleTexturingModeCreateInfoNVX;
15054
15055typedef struct VkCuFunctionCreateInfoNVX {
15056 VkStructureType sType;
15057 const void* pNext;
15058 VkCuModuleNVX module;
15059 const char* pName;
15060} VkCuFunctionCreateInfoNVX;
15061
15062typedef struct VkCuLaunchInfoNVX {
15063 VkStructureType sType;
15064 const void* pNext;
15065 VkCuFunctionNVX function;
15066 uint32_t gridDimX;
15067 uint32_t gridDimY;
15068 uint32_t gridDimZ;
15069 uint32_t blockDimX;
15070 uint32_t blockDimY;
15071 uint32_t blockDimZ;
15072 uint32_t sharedMemBytes;
15073 size_t paramCount;
15074 const void* const * pParams;
15075 size_t extraCount;
15076 const void* const * pExtras;
15077} VkCuLaunchInfoNVX;
15078
15079typedef VkResult (VKAPI_PTR *PFN_vkCreateCuModuleNVX)(VkDevice device, const VkCuModuleCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuModuleNVX* pModule);
15080typedef VkResult (VKAPI_PTR *PFN_vkCreateCuFunctionNVX)(VkDevice device, const VkCuFunctionCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuFunctionNVX* pFunction);
15081typedef void (VKAPI_PTR *PFN_vkDestroyCuModuleNVX)(VkDevice device, VkCuModuleNVX module, const VkAllocationCallbacks* pAllocator);
15082typedef void (VKAPI_PTR *PFN_vkDestroyCuFunctionNVX)(VkDevice device, VkCuFunctionNVX function, const VkAllocationCallbacks* pAllocator);
15083typedef void (VKAPI_PTR *PFN_vkCmdCuLaunchKernelNVX)(VkCommandBuffer commandBuffer, const VkCuLaunchInfoNVX* pLaunchInfo);
15084
15085#ifndef VK_NO_PROTOTYPES
15086#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15087VKAPI_ATTR VkResult VKAPI_CALL vkCreateCuModuleNVX(
15088 VkDevice device,
15089 const VkCuModuleCreateInfoNVX* pCreateInfo,
15090 const VkAllocationCallbacks* pAllocator,
15091 VkCuModuleNVX* pModule);
15092#endif
15093
15094#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15095VKAPI_ATTR VkResult VKAPI_CALL vkCreateCuFunctionNVX(
15096 VkDevice device,
15097 const VkCuFunctionCreateInfoNVX* pCreateInfo,
15098 const VkAllocationCallbacks* pAllocator,
15099 VkCuFunctionNVX* pFunction);
15100#endif
15101
15102#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15103VKAPI_ATTR void VKAPI_CALL vkDestroyCuModuleNVX(
15104 VkDevice device,
15105 VkCuModuleNVX module,
15106 const VkAllocationCallbacks* pAllocator);
15107#endif
15108
15109#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15110VKAPI_ATTR void VKAPI_CALL vkDestroyCuFunctionNVX(
15111 VkDevice device,
15112 VkCuFunctionNVX function,
15113 const VkAllocationCallbacks* pAllocator);
15114#endif
15115
15116#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15117VKAPI_ATTR void VKAPI_CALL vkCmdCuLaunchKernelNVX(
15118 VkCommandBuffer commandBuffer,
15119 const VkCuLaunchInfoNVX* pLaunchInfo);
15120#endif
15121#endif
15122
15123
15124// VK_NVX_image_view_handle is a preprocessor guard. Do not pass it to API calls.
15125#define VK_NVX_image_view_handle 1
15126#define VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION 4
15127#define VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME "VK_NVX_image_view_handle"
15128typedef struct VkImageViewHandleInfoNVX {
15129 VkStructureType sType;
15130 const void* pNext;
15131 VkImageView imageView;
15132 VkDescriptorType descriptorType;
15133 VkSampler sampler;
15134} VkImageViewHandleInfoNVX;
15135
15136typedef struct VkImageViewAddressPropertiesNVX {
15137 VkStructureType sType;
15138 void* pNext;
15139 VkDeviceAddress deviceAddress;
15140 VkDeviceSize size;
15141} VkImageViewAddressPropertiesNVX;
15142
15143typedef uint32_t (VKAPI_PTR *PFN_vkGetImageViewHandleNVX)(VkDevice device, const VkImageViewHandleInfoNVX* pInfo);
15144typedef uint64_t (VKAPI_PTR *PFN_vkGetImageViewHandle64NVX)(VkDevice device, const VkImageViewHandleInfoNVX* pInfo);
15145typedef VkResult (VKAPI_PTR *PFN_vkGetImageViewAddressNVX)(VkDevice device, VkImageView imageView, VkImageViewAddressPropertiesNVX* pProperties);
15146typedef uint64_t (VKAPI_PTR *PFN_vkGetDeviceCombinedImageSamplerIndexNVX)(VkDevice device, uint64_t imageViewIndex, uint64_t samplerIndex);
15147
15148#ifndef VK_NO_PROTOTYPES
15149#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15150VKAPI_ATTR uint32_t VKAPI_CALL vkGetImageViewHandleNVX(
15151 VkDevice device,
15152 const VkImageViewHandleInfoNVX* pInfo);
15153#endif
15154
15155#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15156VKAPI_ATTR uint64_t VKAPI_CALL vkGetImageViewHandle64NVX(
15157 VkDevice device,
15158 const VkImageViewHandleInfoNVX* pInfo);
15159#endif
15160
15161#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15162VKAPI_ATTR VkResult VKAPI_CALL vkGetImageViewAddressNVX(
15163 VkDevice device,
15164 VkImageView imageView,
15165 VkImageViewAddressPropertiesNVX* pProperties);
15166#endif
15167
15168#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15169VKAPI_ATTR uint64_t VKAPI_CALL vkGetDeviceCombinedImageSamplerIndexNVX(
15170 VkDevice device,
15171 uint64_t imageViewIndex,
15172 uint64_t samplerIndex);
15173#endif
15174#endif
15175
15176
15177// VK_AMD_draw_indirect_count is a preprocessor guard. Do not pass it to API calls.
15178#define VK_AMD_draw_indirect_count 1
15179#define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 2
15180#define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count"
15181typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
15182typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
15183
15184#ifndef VK_NO_PROTOTYPES
15185#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15186VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountAMD(
15187 VkCommandBuffer commandBuffer,
15188 VkBuffer buffer,
15189 VkDeviceSize offset,
15190 VkBuffer countBuffer,
15191 VkDeviceSize countBufferOffset,
15192 uint32_t maxDrawCount,
15193 uint32_t stride);
15194#endif
15195
15196#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15197VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountAMD(
15198 VkCommandBuffer commandBuffer,
15199 VkBuffer buffer,
15200 VkDeviceSize offset,
15201 VkBuffer countBuffer,
15202 VkDeviceSize countBufferOffset,
15203 uint32_t maxDrawCount,
15204 uint32_t stride);
15205#endif
15206#endif
15207
15208
15209// VK_AMD_negative_viewport_height is a preprocessor guard. Do not pass it to API calls.
15210#define VK_AMD_negative_viewport_height 1
15211#define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1
15212#define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height"
15213
15214
15215// VK_AMD_gpu_shader_half_float is a preprocessor guard. Do not pass it to API calls.
15216#define VK_AMD_gpu_shader_half_float 1
15217#define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 2
15218#define VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME "VK_AMD_gpu_shader_half_float"
15219
15220
15221// VK_AMD_shader_ballot is a preprocessor guard. Do not pass it to API calls.
15222#define VK_AMD_shader_ballot 1
15223#define VK_AMD_SHADER_BALLOT_SPEC_VERSION 1
15224#define VK_AMD_SHADER_BALLOT_EXTENSION_NAME "VK_AMD_shader_ballot"
15225
15226
15227// VK_AMD_texture_gather_bias_lod is a preprocessor guard. Do not pass it to API calls.
15228#define VK_AMD_texture_gather_bias_lod 1
15229#define VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION 1
15230#define VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME "VK_AMD_texture_gather_bias_lod"
15231typedef struct VkTextureLODGatherFormatPropertiesAMD {
15232 VkStructureType sType;
15233 void* pNext;
15234 VkBool32 supportsTextureGatherLODBiasAMD;
15235} VkTextureLODGatherFormatPropertiesAMD;
15236
15237
15238
15239// VK_AMD_shader_info is a preprocessor guard. Do not pass it to API calls.
15240#define VK_AMD_shader_info 1
15241#define VK_AMD_SHADER_INFO_SPEC_VERSION 1
15242#define VK_AMD_SHADER_INFO_EXTENSION_NAME "VK_AMD_shader_info"
15243
15244typedef enum VkShaderInfoTypeAMD {
15245 VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0,
15246 VK_SHADER_INFO_TYPE_BINARY_AMD = 1,
15247 VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2,
15248 VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 0x7FFFFFFF
15249} VkShaderInfoTypeAMD;
15250typedef struct VkShaderResourceUsageAMD {
15251 uint32_t numUsedVgprs;
15252 uint32_t numUsedSgprs;
15253 uint32_t ldsSizePerLocalWorkGroup;
15254 size_t ldsUsageSizeInBytes;
15255 size_t scratchMemUsageInBytes;
15256} VkShaderResourceUsageAMD;
15257
15258typedef struct VkShaderStatisticsInfoAMD {
15259 VkShaderStageFlags shaderStageMask;
15260 VkShaderResourceUsageAMD resourceUsage;
15261 uint32_t numPhysicalVgprs;
15262 uint32_t numPhysicalSgprs;
15263 uint32_t numAvailableVgprs;
15264 uint32_t numAvailableSgprs;
15265 uint32_t computeWorkGroupSize[3];
15266} VkShaderStatisticsInfoAMD;
15267
15268typedef VkResult (VKAPI_PTR *PFN_vkGetShaderInfoAMD)(VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo);
15269
15270#ifndef VK_NO_PROTOTYPES
15271#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15272VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderInfoAMD(
15273 VkDevice device,
15274 VkPipeline pipeline,
15275 VkShaderStageFlagBits shaderStage,
15276 VkShaderInfoTypeAMD infoType,
15277 size_t* pInfoSize,
15278 void* pInfo);
15279#endif
15280#endif
15281
15282
15283// VK_AMD_shader_image_load_store_lod is a preprocessor guard. Do not pass it to API calls.
15284#define VK_AMD_shader_image_load_store_lod 1
15285#define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION 1
15286#define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME "VK_AMD_shader_image_load_store_lod"
15287
15288
15289// VK_NV_corner_sampled_image is a preprocessor guard. Do not pass it to API calls.
15290#define VK_NV_corner_sampled_image 1
15291#define VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION 2
15292#define VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME "VK_NV_corner_sampled_image"
15293typedef struct VkPhysicalDeviceCornerSampledImageFeaturesNV {
15294 VkStructureType sType;
15295 void* pNext;
15296 VkBool32 cornerSampledImage;
15297} VkPhysicalDeviceCornerSampledImageFeaturesNV;
15298
15299
15300
15301// VK_IMG_format_pvrtc is a preprocessor guard. Do not pass it to API calls.
15302#define VK_IMG_format_pvrtc 1
15303#define VK_IMG_FORMAT_PVRTC_SPEC_VERSION 1
15304#define VK_IMG_FORMAT_PVRTC_EXTENSION_NAME "VK_IMG_format_pvrtc"
15305
15306
15307// VK_NV_external_memory_capabilities is a preprocessor guard. Do not pass it to API calls.
15308#define VK_NV_external_memory_capabilities 1
15309#define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
15310#define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities"
15311
15312typedef enum VkExternalMemoryHandleTypeFlagBitsNV {
15313 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001,
15314 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002,
15315 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004,
15316 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008,
15317 VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
15318} VkExternalMemoryHandleTypeFlagBitsNV;
15319typedef VkFlags VkExternalMemoryHandleTypeFlagsNV;
15320
15321typedef enum VkExternalMemoryFeatureFlagBitsNV {
15322 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001,
15323 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002,
15324 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004,
15325 VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
15326} VkExternalMemoryFeatureFlagBitsNV;
15327typedef VkFlags VkExternalMemoryFeatureFlagsNV;
15328typedef struct VkExternalImageFormatPropertiesNV {
15329 VkImageFormatProperties imageFormatProperties;
15330 VkExternalMemoryFeatureFlagsNV externalMemoryFeatures;
15331 VkExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes;
15332 VkExternalMemoryHandleTypeFlagsNV compatibleHandleTypes;
15333} VkExternalImageFormatPropertiesNV;
15334
15335typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
15336
15337#ifndef VK_NO_PROTOTYPES
15338#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15339VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
15340 VkPhysicalDevice physicalDevice,
15341 VkFormat format,
15342 VkImageType type,
15343 VkImageTiling tiling,
15344 VkImageUsageFlags usage,
15345 VkImageCreateFlags flags,
15346 VkExternalMemoryHandleTypeFlagsNV externalHandleType,
15347 VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
15348#endif
15349#endif
15350
15351
15352// VK_NV_external_memory is a preprocessor guard. Do not pass it to API calls.
15353#define VK_NV_external_memory 1
15354#define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1
15355#define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory"
15356typedef struct VkExternalMemoryImageCreateInfoNV {
15357 VkStructureType sType;
15358 const void* pNext;
15359 VkExternalMemoryHandleTypeFlagsNV handleTypes;
15360} VkExternalMemoryImageCreateInfoNV;
15361
15362typedef struct VkExportMemoryAllocateInfoNV {
15363 VkStructureType sType;
15364 const void* pNext;
15365 VkExternalMemoryHandleTypeFlagsNV handleTypes;
15366} VkExportMemoryAllocateInfoNV;
15367
15368
15369
15370// VK_EXT_validation_flags is a preprocessor guard. Do not pass it to API calls.
15371#define VK_EXT_validation_flags 1
15372#define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 3
15373#define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags"
15374
15375typedef enum VkValidationCheckEXT {
15376 VK_VALIDATION_CHECK_ALL_EXT = 0,
15377 VK_VALIDATION_CHECK_SHADERS_EXT = 1,
15378 VK_VALIDATION_CHECK_MAX_ENUM_EXT = 0x7FFFFFFF
15379} VkValidationCheckEXT;
15380typedef struct VkValidationFlagsEXT {
15381 VkStructureType sType;
15382 const void* pNext;
15383 uint32_t disabledValidationCheckCount;
15384 const VkValidationCheckEXT* pDisabledValidationChecks;
15385} VkValidationFlagsEXT;
15386
15387
15388
15389// VK_EXT_shader_subgroup_ballot is a preprocessor guard. Do not pass it to API calls.
15390#define VK_EXT_shader_subgroup_ballot 1
15391#define VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION 1
15392#define VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME "VK_EXT_shader_subgroup_ballot"
15393
15394
15395// VK_EXT_shader_subgroup_vote is a preprocessor guard. Do not pass it to API calls.
15396#define VK_EXT_shader_subgroup_vote 1
15397#define VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION 1
15398#define VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME "VK_EXT_shader_subgroup_vote"
15399
15400
15401// VK_EXT_texture_compression_astc_hdr is a preprocessor guard. Do not pass it to API calls.
15402#define VK_EXT_texture_compression_astc_hdr 1
15403#define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION 1
15404#define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME "VK_EXT_texture_compression_astc_hdr"
15405typedef VkPhysicalDeviceTextureCompressionASTCHDRFeatures VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT;
15406
15407
15408
15409// VK_EXT_astc_decode_mode is a preprocessor guard. Do not pass it to API calls.
15410#define VK_EXT_astc_decode_mode 1
15411#define VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION 1
15412#define VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME "VK_EXT_astc_decode_mode"
15413typedef struct VkImageViewASTCDecodeModeEXT {
15414 VkStructureType sType;
15415 const void* pNext;
15416 VkFormat decodeMode;
15417} VkImageViewASTCDecodeModeEXT;
15418
15419typedef struct VkPhysicalDeviceASTCDecodeFeaturesEXT {
15420 VkStructureType sType;
15421 void* pNext;
15422 VkBool32 decodeModeSharedExponent;
15423} VkPhysicalDeviceASTCDecodeFeaturesEXT;
15424
15425
15426
15427// VK_EXT_pipeline_robustness is a preprocessor guard. Do not pass it to API calls.
15428#define VK_EXT_pipeline_robustness 1
15429#define VK_EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION 1
15430#define VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_pipeline_robustness"
15431typedef VkPipelineRobustnessBufferBehavior VkPipelineRobustnessBufferBehaviorEXT;
15432
15433typedef VkPipelineRobustnessImageBehavior VkPipelineRobustnessImageBehaviorEXT;
15434
15435typedef VkPhysicalDevicePipelineRobustnessFeatures VkPhysicalDevicePipelineRobustnessFeaturesEXT;
15436
15437typedef VkPhysicalDevicePipelineRobustnessProperties VkPhysicalDevicePipelineRobustnessPropertiesEXT;
15438
15439typedef VkPipelineRobustnessCreateInfo VkPipelineRobustnessCreateInfoEXT;
15440
15441
15442
15443// VK_EXT_conditional_rendering is a preprocessor guard. Do not pass it to API calls.
15444#define VK_EXT_conditional_rendering 1
15445#define VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION 2
15446#define VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME "VK_EXT_conditional_rendering"
15447typedef struct VkConditionalRenderingBeginInfoEXT {
15448 VkStructureType sType;
15449 const void* pNext;
15450 VkBuffer buffer;
15451 VkDeviceSize offset;
15452 VkConditionalRenderingFlagsEXT flags;
15453} VkConditionalRenderingBeginInfoEXT;
15454
15455typedef struct VkPhysicalDeviceConditionalRenderingFeaturesEXT {
15456 VkStructureType sType;
15457 void* pNext;
15458 VkBool32 conditionalRendering;
15459 VkBool32 inheritedConditionalRendering;
15460} VkPhysicalDeviceConditionalRenderingFeaturesEXT;
15461
15462typedef struct VkCommandBufferInheritanceConditionalRenderingInfoEXT {
15463 VkStructureType sType;
15464 const void* pNext;
15465 VkBool32 conditionalRenderingEnable;
15466} VkCommandBufferInheritanceConditionalRenderingInfoEXT;
15467
15468typedef void (VKAPI_PTR *PFN_vkCmdBeginConditionalRenderingEXT)(VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin);
15469typedef void (VKAPI_PTR *PFN_vkCmdEndConditionalRenderingEXT)(VkCommandBuffer commandBuffer);
15470
15471#ifndef VK_NO_PROTOTYPES
15472#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15473VKAPI_ATTR void VKAPI_CALL vkCmdBeginConditionalRenderingEXT(
15474 VkCommandBuffer commandBuffer,
15475 const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin);
15476#endif
15477
15478#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15479VKAPI_ATTR void VKAPI_CALL vkCmdEndConditionalRenderingEXT(
15480 VkCommandBuffer commandBuffer);
15481#endif
15482#endif
15483
15484
15485// VK_NV_clip_space_w_scaling is a preprocessor guard. Do not pass it to API calls.
15486#define VK_NV_clip_space_w_scaling 1
15487#define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1
15488#define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling"
15489typedef struct VkViewportWScalingNV {
15490 float xcoeff;
15491 float ycoeff;
15492} VkViewportWScalingNV;
15493
15494typedef struct VkPipelineViewportWScalingStateCreateInfoNV {
15495 VkStructureType sType;
15496 const void* pNext;
15497 VkBool32 viewportWScalingEnable;
15498 uint32_t viewportCount;
15499 const VkViewportWScalingNV* pViewportWScalings;
15500} VkPipelineViewportWScalingStateCreateInfoNV;
15501
15502typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWScalingNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings);
15503
15504#ifndef VK_NO_PROTOTYPES
15505#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15506VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWScalingNV(
15507 VkCommandBuffer commandBuffer,
15508 uint32_t firstViewport,
15509 uint32_t viewportCount,
15510 const VkViewportWScalingNV* pViewportWScalings);
15511#endif
15512#endif
15513
15514
15515// VK_EXT_direct_mode_display is a preprocessor guard. Do not pass it to API calls.
15516#define VK_EXT_direct_mode_display 1
15517#define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1
15518#define VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME "VK_EXT_direct_mode_display"
15519typedef VkResult (VKAPI_PTR *PFN_vkReleaseDisplayEXT)(VkPhysicalDevice physicalDevice, VkDisplayKHR display);
15520
15521#ifndef VK_NO_PROTOTYPES
15522#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15523VKAPI_ATTR VkResult VKAPI_CALL vkReleaseDisplayEXT(
15524 VkPhysicalDevice physicalDevice,
15525 VkDisplayKHR display);
15526#endif
15527#endif
15528
15529
15530// VK_EXT_display_surface_counter is a preprocessor guard. Do not pass it to API calls.
15531#define VK_EXT_display_surface_counter 1
15532#define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1
15533#define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter"
15534
15535typedef enum VkSurfaceCounterFlagBitsEXT {
15536 VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 0x00000001,
15537 // VK_SURFACE_COUNTER_VBLANK_EXT is a legacy alias
15538 VK_SURFACE_COUNTER_VBLANK_EXT = VK_SURFACE_COUNTER_VBLANK_BIT_EXT,
15539 VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
15540} VkSurfaceCounterFlagBitsEXT;
15541typedef VkFlags VkSurfaceCounterFlagsEXT;
15542typedef struct VkSurfaceCapabilities2EXT {
15543 VkStructureType sType;
15544 void* pNext;
15545 uint32_t minImageCount;
15546 uint32_t maxImageCount;
15547 VkExtent2D currentExtent;
15548 VkExtent2D minImageExtent;
15549 VkExtent2D maxImageExtent;
15550 uint32_t maxImageArrayLayers;
15551 VkSurfaceTransformFlagsKHR supportedTransforms;
15552 VkSurfaceTransformFlagBitsKHR currentTransform;
15553 VkCompositeAlphaFlagsKHR supportedCompositeAlpha;
15554 VkImageUsageFlags supportedUsageFlags;
15555 VkSurfaceCounterFlagsEXT supportedSurfaceCounters;
15556} VkSurfaceCapabilities2EXT;
15557
15558typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
15559
15560#ifndef VK_NO_PROTOTYPES
15561#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15562VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2EXT(
15563 VkPhysicalDevice physicalDevice,
15564 VkSurfaceKHR surface,
15565 VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
15566#endif
15567#endif
15568
15569
15570// VK_EXT_display_control is a preprocessor guard. Do not pass it to API calls.
15571#define VK_EXT_display_control 1
15572#define VK_EXT_DISPLAY_CONTROL_SPEC_VERSION 1
15573#define VK_EXT_DISPLAY_CONTROL_EXTENSION_NAME "VK_EXT_display_control"
15574
15575typedef enum VkDisplayPowerStateEXT {
15576 VK_DISPLAY_POWER_STATE_OFF_EXT = 0,
15577 VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1,
15578 VK_DISPLAY_POWER_STATE_ON_EXT = 2,
15579 VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 0x7FFFFFFF
15580} VkDisplayPowerStateEXT;
15581
15582typedef enum VkDeviceEventTypeEXT {
15583 VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0,
15584 VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
15585} VkDeviceEventTypeEXT;
15586
15587typedef enum VkDisplayEventTypeEXT {
15588 VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0,
15589 VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
15590} VkDisplayEventTypeEXT;
15591typedef struct VkDisplayPowerInfoEXT {
15592 VkStructureType sType;
15593 const void* pNext;
15594 VkDisplayPowerStateEXT powerState;
15595} VkDisplayPowerInfoEXT;
15596
15597typedef struct VkDeviceEventInfoEXT {
15598 VkStructureType sType;
15599 const void* pNext;
15600 VkDeviceEventTypeEXT deviceEvent;
15601} VkDeviceEventInfoEXT;
15602
15603typedef struct VkDisplayEventInfoEXT {
15604 VkStructureType sType;
15605 const void* pNext;
15606 VkDisplayEventTypeEXT displayEvent;
15607} VkDisplayEventInfoEXT;
15608
15609typedef struct VkSwapchainCounterCreateInfoEXT {
15610 VkStructureType sType;
15611 const void* pNext;
15612 VkSurfaceCounterFlagsEXT surfaceCounters;
15613} VkSwapchainCounterCreateInfoEXT;
15614
15615typedef VkResult (VKAPI_PTR *PFN_vkDisplayPowerControlEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo);
15616typedef VkResult (VKAPI_PTR *PFN_vkRegisterDeviceEventEXT)(VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
15617typedef VkResult (VKAPI_PTR *PFN_vkRegisterDisplayEventEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
15618typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainCounterEXT)(VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue);
15619
15620#ifndef VK_NO_PROTOTYPES
15621#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15622VKAPI_ATTR VkResult VKAPI_CALL vkDisplayPowerControlEXT(
15623 VkDevice device,
15624 VkDisplayKHR display,
15625 const VkDisplayPowerInfoEXT* pDisplayPowerInfo);
15626#endif
15627
15628#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15629VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDeviceEventEXT(
15630 VkDevice device,
15631 const VkDeviceEventInfoEXT* pDeviceEventInfo,
15632 const VkAllocationCallbacks* pAllocator,
15633 VkFence* pFence);
15634#endif
15635
15636#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15637VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDisplayEventEXT(
15638 VkDevice device,
15639 VkDisplayKHR display,
15640 const VkDisplayEventInfoEXT* pDisplayEventInfo,
15641 const VkAllocationCallbacks* pAllocator,
15642 VkFence* pFence);
15643#endif
15644
15645#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15646VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainCounterEXT(
15647 VkDevice device,
15648 VkSwapchainKHR swapchain,
15649 VkSurfaceCounterFlagBitsEXT counter,
15650 uint64_t* pCounterValue);
15651#endif
15652#endif
15653
15654
15655// VK_GOOGLE_display_timing is a preprocessor guard. Do not pass it to API calls.
15656#define VK_GOOGLE_display_timing 1
15657#define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1
15658#define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing"
15659typedef struct VkRefreshCycleDurationGOOGLE {
15660 uint64_t refreshDuration;
15661} VkRefreshCycleDurationGOOGLE;
15662
15663typedef struct VkPastPresentationTimingGOOGLE {
15664 uint32_t presentID;
15665 uint64_t desiredPresentTime;
15666 uint64_t actualPresentTime;
15667 uint64_t earliestPresentTime;
15668 uint64_t presentMargin;
15669} VkPastPresentationTimingGOOGLE;
15670
15671typedef struct VkPresentTimeGOOGLE {
15672 uint32_t presentID;
15673 uint64_t desiredPresentTime;
15674} VkPresentTimeGOOGLE;
15675
15676typedef struct VkPresentTimesInfoGOOGLE {
15677 VkStructureType sType;
15678 const void* pNext;
15679 uint32_t swapchainCount;
15680 const VkPresentTimeGOOGLE* pTimes;
15681} VkPresentTimesInfoGOOGLE;
15682
15683typedef VkResult (VKAPI_PTR *PFN_vkGetRefreshCycleDurationGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties);
15684typedef VkResult (VKAPI_PTR *PFN_vkGetPastPresentationTimingGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings);
15685
15686#ifndef VK_NO_PROTOTYPES
15687#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15688VKAPI_ATTR VkResult VKAPI_CALL vkGetRefreshCycleDurationGOOGLE(
15689 VkDevice device,
15690 VkSwapchainKHR swapchain,
15691 VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties);
15692#endif
15693
15694#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15695VKAPI_ATTR VkResult VKAPI_CALL vkGetPastPresentationTimingGOOGLE(
15696 VkDevice device,
15697 VkSwapchainKHR swapchain,
15698 uint32_t* pPresentationTimingCount,
15699 VkPastPresentationTimingGOOGLE* pPresentationTimings);
15700#endif
15701#endif
15702
15703
15704// VK_NV_sample_mask_override_coverage is a preprocessor guard. Do not pass it to API calls.
15705#define VK_NV_sample_mask_override_coverage 1
15706#define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION 1
15707#define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME "VK_NV_sample_mask_override_coverage"
15708
15709
15710// VK_NV_geometry_shader_passthrough is a preprocessor guard. Do not pass it to API calls.
15711#define VK_NV_geometry_shader_passthrough 1
15712#define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION 1
15713#define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME "VK_NV_geometry_shader_passthrough"
15714
15715
15716// VK_NV_viewport_array2 is a preprocessor guard. Do not pass it to API calls.
15717#define VK_NV_viewport_array2 1
15718#define VK_NV_VIEWPORT_ARRAY_2_SPEC_VERSION 1
15719#define VK_NV_VIEWPORT_ARRAY_2_EXTENSION_NAME "VK_NV_viewport_array2"
15720// VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION is a legacy alias
15721#define VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION VK_NV_VIEWPORT_ARRAY_2_SPEC_VERSION
15722// VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME is a legacy alias
15723#define VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME VK_NV_VIEWPORT_ARRAY_2_EXTENSION_NAME
15724
15725
15726// VK_NVX_multiview_per_view_attributes is a preprocessor guard. Do not pass it to API calls.
15727#define VK_NVX_multiview_per_view_attributes 1
15728#define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION 1
15729#define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes"
15730typedef struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
15731 VkStructureType sType;
15732 void* pNext;
15733 VkBool32 perViewPositionAllComponents;
15734} VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
15735
15736typedef struct VkMultiviewPerViewAttributesInfoNVX {
15737 VkStructureType sType;
15738 const void* pNext;
15739 VkBool32 perViewAttributes;
15740 VkBool32 perViewAttributesPositionXOnly;
15741} VkMultiviewPerViewAttributesInfoNVX;
15742
15743
15744
15745// VK_NV_viewport_swizzle is a preprocessor guard. Do not pass it to API calls.
15746#define VK_NV_viewport_swizzle 1
15747#define VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION 1
15748#define VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME "VK_NV_viewport_swizzle"
15749
15750typedef enum VkViewportCoordinateSwizzleNV {
15751 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0,
15752 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1,
15753 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2,
15754 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3,
15755 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4,
15756 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5,
15757 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6,
15758 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7,
15759 VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 0x7FFFFFFF
15760} VkViewportCoordinateSwizzleNV;
15761typedef VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV;
15762typedef struct VkViewportSwizzleNV {
15763 VkViewportCoordinateSwizzleNV x;
15764 VkViewportCoordinateSwizzleNV y;
15765 VkViewportCoordinateSwizzleNV z;
15766 VkViewportCoordinateSwizzleNV w;
15767} VkViewportSwizzleNV;
15768
15769typedef struct VkPipelineViewportSwizzleStateCreateInfoNV {
15770 VkStructureType sType;
15771 const void* pNext;
15772 VkPipelineViewportSwizzleStateCreateFlagsNV flags;
15773 uint32_t viewportCount;
15774 const VkViewportSwizzleNV* pViewportSwizzles;
15775} VkPipelineViewportSwizzleStateCreateInfoNV;
15776
15777
15778
15779// VK_EXT_discard_rectangles is a preprocessor guard. Do not pass it to API calls.
15780#define VK_EXT_discard_rectangles 1
15781#define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 2
15782#define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles"
15783
15784typedef enum VkDiscardRectangleModeEXT {
15785 VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0,
15786 VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1,
15787 VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
15788} VkDiscardRectangleModeEXT;
15789typedef VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT;
15790typedef struct VkPhysicalDeviceDiscardRectanglePropertiesEXT {
15791 VkStructureType sType;
15792 void* pNext;
15793 uint32_t maxDiscardRectangles;
15794} VkPhysicalDeviceDiscardRectanglePropertiesEXT;
15795
15796typedef struct VkPipelineDiscardRectangleStateCreateInfoEXT {
15797 VkStructureType sType;
15798 const void* pNext;
15799 VkPipelineDiscardRectangleStateCreateFlagsEXT flags;
15800 VkDiscardRectangleModeEXT discardRectangleMode;
15801 uint32_t discardRectangleCount;
15802 const VkRect2D* pDiscardRectangles;
15803} VkPipelineDiscardRectangleStateCreateInfoEXT;
15804
15805typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEXT)(VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles);
15806typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 discardRectangleEnable);
15807typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleModeEXT)(VkCommandBuffer commandBuffer, VkDiscardRectangleModeEXT discardRectangleMode);
15808
15809#ifndef VK_NO_PROTOTYPES
15810#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15811VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEXT(
15812 VkCommandBuffer commandBuffer,
15813 uint32_t firstDiscardRectangle,
15814 uint32_t discardRectangleCount,
15815 const VkRect2D* pDiscardRectangles);
15816#endif
15817
15818#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15819VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEnableEXT(
15820 VkCommandBuffer commandBuffer,
15821 VkBool32 discardRectangleEnable);
15822#endif
15823
15824#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15825VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleModeEXT(
15826 VkCommandBuffer commandBuffer,
15827 VkDiscardRectangleModeEXT discardRectangleMode);
15828#endif
15829#endif
15830
15831
15832// VK_EXT_conservative_rasterization is a preprocessor guard. Do not pass it to API calls.
15833#define VK_EXT_conservative_rasterization 1
15834#define VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION 1
15835#define VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME "VK_EXT_conservative_rasterization"
15836
15837typedef enum VkConservativeRasterizationModeEXT {
15838 VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0,
15839 VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1,
15840 VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2,
15841 VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
15842} VkConservativeRasterizationModeEXT;
15843typedef VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT;
15844typedef struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT {
15845 VkStructureType sType;
15846 void* pNext;
15847 float primitiveOverestimationSize;
15848 float maxExtraPrimitiveOverestimationSize;
15849 float extraPrimitiveOverestimationSizeGranularity;
15850 VkBool32 primitiveUnderestimation;
15851 VkBool32 conservativePointAndLineRasterization;
15852 VkBool32 degenerateTrianglesRasterized;
15853 VkBool32 degenerateLinesRasterized;
15854 VkBool32 fullyCoveredFragmentShaderInputVariable;
15855 VkBool32 conservativeRasterizationPostDepthCoverage;
15856} VkPhysicalDeviceConservativeRasterizationPropertiesEXT;
15857
15858typedef struct VkPipelineRasterizationConservativeStateCreateInfoEXT {
15859 VkStructureType sType;
15860 const void* pNext;
15861 VkPipelineRasterizationConservativeStateCreateFlagsEXT flags;
15862 VkConservativeRasterizationModeEXT conservativeRasterizationMode;
15863 float extraPrimitiveOverestimationSize;
15864} VkPipelineRasterizationConservativeStateCreateInfoEXT;
15865
15866
15867
15868// VK_EXT_depth_clip_enable is a preprocessor guard. Do not pass it to API calls.
15869#define VK_EXT_depth_clip_enable 1
15870#define VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION 1
15871#define VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME "VK_EXT_depth_clip_enable"
15872typedef VkFlags VkPipelineRasterizationDepthClipStateCreateFlagsEXT;
15873typedef struct VkPhysicalDeviceDepthClipEnableFeaturesEXT {
15874 VkStructureType sType;
15875 void* pNext;
15876 VkBool32 depthClipEnable;
15877} VkPhysicalDeviceDepthClipEnableFeaturesEXT;
15878
15879typedef struct VkPipelineRasterizationDepthClipStateCreateInfoEXT {
15880 VkStructureType sType;
15881 const void* pNext;
15882 VkPipelineRasterizationDepthClipStateCreateFlagsEXT flags;
15883 VkBool32 depthClipEnable;
15884} VkPipelineRasterizationDepthClipStateCreateInfoEXT;
15885
15886
15887
15888// VK_EXT_swapchain_colorspace is a preprocessor guard. Do not pass it to API calls.
15889#define VK_EXT_swapchain_colorspace 1
15890#define VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION 5
15891#define VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace"
15892
15893
15894// VK_EXT_hdr_metadata is a preprocessor guard. Do not pass it to API calls.
15895#define VK_EXT_hdr_metadata 1
15896#define VK_EXT_HDR_METADATA_SPEC_VERSION 3
15897#define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata"
15898typedef struct VkXYColorEXT {
15899 float x;
15900 float y;
15901} VkXYColorEXT;
15902
15903typedef struct VkHdrMetadataEXT {
15904 VkStructureType sType;
15905 const void* pNext;
15906 VkXYColorEXT displayPrimaryRed;
15907 VkXYColorEXT displayPrimaryGreen;
15908 VkXYColorEXT displayPrimaryBlue;
15909 VkXYColorEXT whitePoint;
15910 float maxLuminance;
15911 float minLuminance;
15912 float maxContentLightLevel;
15913 float maxFrameAverageLightLevel;
15914} VkHdrMetadataEXT;
15915
15916typedef void (VKAPI_PTR *PFN_vkSetHdrMetadataEXT)(VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata);
15917
15918#ifndef VK_NO_PROTOTYPES
15919#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15920VKAPI_ATTR void VKAPI_CALL vkSetHdrMetadataEXT(
15921 VkDevice device,
15922 uint32_t swapchainCount,
15923 const VkSwapchainKHR* pSwapchains,
15924 const VkHdrMetadataEXT* pMetadata);
15925#endif
15926#endif
15927
15928
15929// VK_IMG_relaxed_line_rasterization is a preprocessor guard. Do not pass it to API calls.
15930#define VK_IMG_relaxed_line_rasterization 1
15931#define VK_IMG_RELAXED_LINE_RASTERIZATION_SPEC_VERSION 1
15932#define VK_IMG_RELAXED_LINE_RASTERIZATION_EXTENSION_NAME "VK_IMG_relaxed_line_rasterization"
15933typedef struct VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG {
15934 VkStructureType sType;
15935 void* pNext;
15936 VkBool32 relaxedLineRasterization;
15937} VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG;
15938
15939
15940
15941// VK_EXT_external_memory_dma_buf is a preprocessor guard. Do not pass it to API calls.
15942#define VK_EXT_external_memory_dma_buf 1
15943#define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION 1
15944#define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME "VK_EXT_external_memory_dma_buf"
15945
15946
15947// VK_EXT_queue_family_foreign is a preprocessor guard. Do not pass it to API calls.
15948#define VK_EXT_queue_family_foreign 1
15949#define VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION 1
15950#define VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME "VK_EXT_queue_family_foreign"
15951#define VK_QUEUE_FAMILY_FOREIGN_EXT (~2U)
15952
15953
15954// VK_EXT_debug_utils is a preprocessor guard. Do not pass it to API calls.
15955#define VK_EXT_debug_utils 1
15956VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugUtilsMessengerEXT)
15957#define VK_EXT_DEBUG_UTILS_SPEC_VERSION 2
15958#define VK_EXT_DEBUG_UTILS_EXTENSION_NAME "VK_EXT_debug_utils"
15959typedef VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT;
15960
15961typedef enum VkDebugUtilsMessageSeverityFlagBitsEXT {
15962 VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001,
15963 VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0x00000010,
15964 VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0x00000100,
15965 VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000,
15966 VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
15967} VkDebugUtilsMessageSeverityFlagBitsEXT;
15968
15969typedef enum VkDebugUtilsMessageTypeFlagBitsEXT {
15970 VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001,
15971 VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0x00000002,
15972 VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0x00000004,
15973 VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT = 0x00000008,
15974 VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
15975} VkDebugUtilsMessageTypeFlagBitsEXT;
15976typedef VkFlags VkDebugUtilsMessageTypeFlagsEXT;
15977typedef VkFlags VkDebugUtilsMessageSeverityFlagsEXT;
15978typedef VkFlags VkDebugUtilsMessengerCreateFlagsEXT;
15979typedef struct VkDebugUtilsLabelEXT {
15980 VkStructureType sType;
15981 const void* pNext;
15982 const char* pLabelName;
15983 float color[4];
15984} VkDebugUtilsLabelEXT;
15985
15986typedef struct VkDebugUtilsObjectNameInfoEXT {
15987 VkStructureType sType;
15988 const void* pNext;
15989 VkObjectType objectType;
15990 uint64_t objectHandle;
15991 const char* pObjectName;
15992} VkDebugUtilsObjectNameInfoEXT;
15993
15994typedef struct VkDebugUtilsMessengerCallbackDataEXT {
15995 VkStructureType sType;
15996 const void* pNext;
15997 VkDebugUtilsMessengerCallbackDataFlagsEXT flags;
15998 const char* pMessageIdName;
15999 int32_t messageIdNumber;
16000 const char* pMessage;
16001 uint32_t queueLabelCount;
16002 const VkDebugUtilsLabelEXT* pQueueLabels;
16003 uint32_t cmdBufLabelCount;
16004 const VkDebugUtilsLabelEXT* pCmdBufLabels;
16005 uint32_t objectCount;
16006 const VkDebugUtilsObjectNameInfoEXT* pObjects;
16007} VkDebugUtilsMessengerCallbackDataEXT;
16008
16009typedef VkBool32 (VKAPI_PTR *PFN_vkDebugUtilsMessengerCallbackEXT)(
16010 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
16011 VkDebugUtilsMessageTypeFlagsEXT messageTypes,
16012 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData,
16013 void* pUserData);
16014
16015typedef struct VkDebugUtilsMessengerCreateInfoEXT {
16016 VkStructureType sType;
16017 const void* pNext;
16018 VkDebugUtilsMessengerCreateFlagsEXT flags;
16019 VkDebugUtilsMessageSeverityFlagsEXT messageSeverity;
16020 VkDebugUtilsMessageTypeFlagsEXT messageType;
16021 PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback;
16022 void* pUserData;
16023} VkDebugUtilsMessengerCreateInfoEXT;
16024
16025typedef struct VkDebugUtilsObjectTagInfoEXT {
16026 VkStructureType sType;
16027 const void* pNext;
16028 VkObjectType objectType;
16029 uint64_t objectHandle;
16030 uint64_t tagName;
16031 size_t tagSize;
16032 const void* pTag;
16033} VkDebugUtilsObjectTagInfoEXT;
16034
16035typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectNameEXT)(VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo);
16036typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectTagEXT)(VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo);
16037typedef void (VKAPI_PTR *PFN_vkQueueBeginDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo);
16038typedef void (VKAPI_PTR *PFN_vkQueueEndDebugUtilsLabelEXT)(VkQueue queue);
16039typedef void (VKAPI_PTR *PFN_vkQueueInsertDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo);
16040typedef void (VKAPI_PTR *PFN_vkCmdBeginDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo);
16041typedef void (VKAPI_PTR *PFN_vkCmdEndDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer);
16042typedef void (VKAPI_PTR *PFN_vkCmdInsertDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo);
16043typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugUtilsMessengerEXT)(VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugUtilsMessengerEXT* pMessenger);
16044typedef void (VKAPI_PTR *PFN_vkDestroyDebugUtilsMessengerEXT)(VkInstance instance, VkDebugUtilsMessengerEXT messenger, const VkAllocationCallbacks* pAllocator);
16045typedef void (VKAPI_PTR *PFN_vkSubmitDebugUtilsMessageEXT)(VkInstance instance, VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData);
16046
16047#ifndef VK_NO_PROTOTYPES
16048#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16049VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectNameEXT(
16050 VkDevice device,
16051 const VkDebugUtilsObjectNameInfoEXT* pNameInfo);
16052#endif
16053
16054#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16055VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectTagEXT(
16056 VkDevice device,
16057 const VkDebugUtilsObjectTagInfoEXT* pTagInfo);
16058#endif
16059
16060#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16061VKAPI_ATTR void VKAPI_CALL vkQueueBeginDebugUtilsLabelEXT(
16062 VkQueue queue,
16063 const VkDebugUtilsLabelEXT* pLabelInfo);
16064#endif
16065
16066#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16067VKAPI_ATTR void VKAPI_CALL vkQueueEndDebugUtilsLabelEXT(
16068 VkQueue queue);
16069#endif
16070
16071#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16072VKAPI_ATTR void VKAPI_CALL vkQueueInsertDebugUtilsLabelEXT(
16073 VkQueue queue,
16074 const VkDebugUtilsLabelEXT* pLabelInfo);
16075#endif
16076
16077#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16078VKAPI_ATTR void VKAPI_CALL vkCmdBeginDebugUtilsLabelEXT(
16079 VkCommandBuffer commandBuffer,
16080 const VkDebugUtilsLabelEXT* pLabelInfo);
16081#endif
16082
16083#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16084VKAPI_ATTR void VKAPI_CALL vkCmdEndDebugUtilsLabelEXT(
16085 VkCommandBuffer commandBuffer);
16086#endif
16087
16088#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16089VKAPI_ATTR void VKAPI_CALL vkCmdInsertDebugUtilsLabelEXT(
16090 VkCommandBuffer commandBuffer,
16091 const VkDebugUtilsLabelEXT* pLabelInfo);
16092#endif
16093
16094#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16095VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugUtilsMessengerEXT(
16096 VkInstance instance,
16097 const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
16098 const VkAllocationCallbacks* pAllocator,
16099 VkDebugUtilsMessengerEXT* pMessenger);
16100#endif
16101
16102#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16103VKAPI_ATTR void VKAPI_CALL vkDestroyDebugUtilsMessengerEXT(
16104 VkInstance instance,
16105 VkDebugUtilsMessengerEXT messenger,
16106 const VkAllocationCallbacks* pAllocator);
16107#endif
16108
16109#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16110VKAPI_ATTR void VKAPI_CALL vkSubmitDebugUtilsMessageEXT(
16111 VkInstance instance,
16112 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
16113 VkDebugUtilsMessageTypeFlagsEXT messageTypes,
16114 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData);
16115#endif
16116#endif
16117
16118
16119// VK_EXT_sampler_filter_minmax is a preprocessor guard. Do not pass it to API calls.
16120#define VK_EXT_sampler_filter_minmax 1
16121#define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 2
16122#define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax"
16123typedef VkSamplerReductionMode VkSamplerReductionModeEXT;
16124
16125typedef VkSamplerReductionModeCreateInfo VkSamplerReductionModeCreateInfoEXT;
16126
16127typedef VkPhysicalDeviceSamplerFilterMinmaxProperties VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT;
16128
16129
16130
16131// VK_AMD_gpu_shader_int16 is a preprocessor guard. Do not pass it to API calls.
16132#define VK_AMD_gpu_shader_int16 1
16133#define VK_AMD_GPU_SHADER_INT16_SPEC_VERSION 2
16134#define VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME "VK_AMD_gpu_shader_int16"
16135
16136
16137// VK_EXT_descriptor_heap is a preprocessor guard. Do not pass it to API calls.
16138#define VK_EXT_descriptor_heap 1
16139VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkTensorARM)
16140#define VK_EXT_DESCRIPTOR_HEAP_SPEC_VERSION 1
16141#define VK_EXT_DESCRIPTOR_HEAP_EXTENSION_NAME "VK_EXT_descriptor_heap"
16142
16143typedef enum VkDescriptorMappingSourceEXT {
16144 VK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_CONSTANT_OFFSET_EXT = 0,
16145 VK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_PUSH_INDEX_EXT = 1,
16146 VK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_EXT = 2,
16147 VK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_INDIRECT_INDEX_ARRAY_EXT = 3,
16148 VK_DESCRIPTOR_MAPPING_SOURCE_RESOURCE_HEAP_DATA_EXT = 4,
16149 VK_DESCRIPTOR_MAPPING_SOURCE_PUSH_DATA_EXT = 5,
16150 VK_DESCRIPTOR_MAPPING_SOURCE_PUSH_ADDRESS_EXT = 6,
16151 VK_DESCRIPTOR_MAPPING_SOURCE_INDIRECT_ADDRESS_EXT = 7,
16152 VK_DESCRIPTOR_MAPPING_SOURCE_HEAP_WITH_SHADER_RECORD_INDEX_EXT = 8,
16153 VK_DESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_DATA_EXT = 9,
16154 VK_DESCRIPTOR_MAPPING_SOURCE_SHADER_RECORD_ADDRESS_EXT = 10,
16155 VK_DESCRIPTOR_MAPPING_SOURCE_MAX_ENUM_EXT = 0x7FFFFFFF
16156} VkDescriptorMappingSourceEXT;
16157typedef VkFlags64 VkTensorViewCreateFlagsARM;
16158
16159// Flag bits for VkTensorViewCreateFlagBitsARM
16160typedef VkFlags64 VkTensorViewCreateFlagBitsARM;
16161static const VkTensorViewCreateFlagBitsARM VK_TENSOR_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_ARM = 0x00000001ULL;
16162
16163
16164typedef enum VkSpirvResourceTypeFlagBitsEXT {
16165 VK_SPIRV_RESOURCE_TYPE_ALL_EXT = 0x7FFFFFFF,
16166 VK_SPIRV_RESOURCE_TYPE_SAMPLER_BIT_EXT = 0x00000001,
16167 VK_SPIRV_RESOURCE_TYPE_SAMPLED_IMAGE_BIT_EXT = 0x00000002,
16168 VK_SPIRV_RESOURCE_TYPE_READ_ONLY_IMAGE_BIT_EXT = 0x00000004,
16169 VK_SPIRV_RESOURCE_TYPE_READ_WRITE_IMAGE_BIT_EXT = 0x00000008,
16170 VK_SPIRV_RESOURCE_TYPE_COMBINED_SAMPLED_IMAGE_BIT_EXT = 0x00000010,
16171 VK_SPIRV_RESOURCE_TYPE_UNIFORM_BUFFER_BIT_EXT = 0x00000020,
16172 VK_SPIRV_RESOURCE_TYPE_READ_ONLY_STORAGE_BUFFER_BIT_EXT = 0x00000040,
16173 VK_SPIRV_RESOURCE_TYPE_READ_WRITE_STORAGE_BUFFER_BIT_EXT = 0x00000080,
16174 VK_SPIRV_RESOURCE_TYPE_ACCELERATION_STRUCTURE_BIT_EXT = 0x00000100,
16175 VK_SPIRV_RESOURCE_TYPE_TENSOR_BIT_ARM = 0x00000200,
16176 VK_SPIRV_RESOURCE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
16177} VkSpirvResourceTypeFlagBitsEXT;
16178typedef VkFlags VkSpirvResourceTypeFlagsEXT;
16179typedef struct VkHostAddressRangeEXT {
16180 void* address;
16181 size_t size;
16182} VkHostAddressRangeEXT;
16183
16184typedef struct VkHostAddressRangeConstEXT {
16185 const void* address;
16186 size_t size;
16187} VkHostAddressRangeConstEXT;
16188
16189typedef VkDeviceAddressRangeKHR VkDeviceAddressRangeEXT;
16190
16191typedef struct VkTexelBufferDescriptorInfoEXT {
16192 VkStructureType sType;
16193 const void* pNext;
16194 VkFormat format;
16195 VkDeviceAddressRangeEXT addressRange;
16196} VkTexelBufferDescriptorInfoEXT;
16197
16198typedef struct VkImageDescriptorInfoEXT {
16199 VkStructureType sType;
16200 const void* pNext;
16201 const VkImageViewCreateInfo* pView;
16202 VkImageLayout layout;
16203} VkImageDescriptorInfoEXT;
16204
16205typedef struct VkTensorViewCreateInfoARM {
16206 VkStructureType sType;
16207 const void* pNext;
16208 VkTensorViewCreateFlagsARM flags;
16209 VkTensorARM tensor;
16210 VkFormat format;
16211} VkTensorViewCreateInfoARM;
16212
16213typedef union VkResourceDescriptorDataEXT {
16214 const VkImageDescriptorInfoEXT* pImage;
16215 const VkTexelBufferDescriptorInfoEXT* pTexelBuffer;
16216 const VkDeviceAddressRangeEXT* pAddressRange;
16217 const VkTensorViewCreateInfoARM* pTensorARM;
16218} VkResourceDescriptorDataEXT;
16219
16220typedef struct VkResourceDescriptorInfoEXT {
16221 VkStructureType sType;
16222 const void* pNext;
16223 VkDescriptorType type;
16224 VkResourceDescriptorDataEXT data;
16225} VkResourceDescriptorInfoEXT;
16226
16227typedef struct VkBindHeapInfoEXT {
16228 VkStructureType sType;
16229 const void* pNext;
16230 VkDeviceAddressRangeEXT heapRange;
16231 VkDeviceSize reservedRangeOffset;
16232 VkDeviceSize reservedRangeSize;
16233} VkBindHeapInfoEXT;
16234
16235typedef struct VkPushDataInfoEXT {
16236 VkStructureType sType;
16237 const void* pNext;
16238 uint32_t offset;
16239 VkHostAddressRangeConstEXT data;
16240} VkPushDataInfoEXT;
16241
16242typedef struct VkDescriptorMappingSourceConstantOffsetEXT {
16243 uint32_t heapOffset;
16244 uint32_t heapArrayStride;
16245 const VkSamplerCreateInfo* pEmbeddedSampler;
16246 uint32_t samplerHeapOffset;
16247 uint32_t samplerHeapArrayStride;
16248} VkDescriptorMappingSourceConstantOffsetEXT;
16249
16250typedef struct VkDescriptorMappingSourcePushIndexEXT {
16251 uint32_t heapOffset;
16252 uint32_t pushOffset;
16253 uint32_t heapIndexStride;
16254 uint32_t heapArrayStride;
16255 const VkSamplerCreateInfo* pEmbeddedSampler;
16256 VkBool32 useCombinedImageSamplerIndex;
16257 uint32_t samplerHeapOffset;
16258 uint32_t samplerPushOffset;
16259 uint32_t samplerHeapIndexStride;
16260 uint32_t samplerHeapArrayStride;
16261} VkDescriptorMappingSourcePushIndexEXT;
16262
16263typedef struct VkDescriptorMappingSourceIndirectIndexEXT {
16264 uint32_t heapOffset;
16265 uint32_t pushOffset;
16266 uint32_t addressOffset;
16267 uint32_t heapIndexStride;
16268 uint32_t heapArrayStride;
16269 const VkSamplerCreateInfo* pEmbeddedSampler;
16270 VkBool32 useCombinedImageSamplerIndex;
16271 uint32_t samplerHeapOffset;
16272 uint32_t samplerPushOffset;
16273 uint32_t samplerAddressOffset;
16274 uint32_t samplerHeapIndexStride;
16275 uint32_t samplerHeapArrayStride;
16276} VkDescriptorMappingSourceIndirectIndexEXT;
16277
16278typedef struct VkDescriptorMappingSourceHeapDataEXT {
16279 uint32_t heapOffset;
16280 uint32_t pushOffset;
16281} VkDescriptorMappingSourceHeapDataEXT;
16282
16283typedef struct VkDescriptorMappingSourceIndirectAddressEXT {
16284 uint32_t pushOffset;
16285 uint32_t addressOffset;
16286} VkDescriptorMappingSourceIndirectAddressEXT;
16287
16288typedef struct VkDescriptorMappingSourceShaderRecordIndexEXT {
16289 uint32_t heapOffset;
16290 uint32_t shaderRecordOffset;
16291 uint32_t heapIndexStride;
16292 uint32_t heapArrayStride;
16293 const VkSamplerCreateInfo* pEmbeddedSampler;
16294 VkBool32 useCombinedImageSamplerIndex;
16295 uint32_t samplerHeapOffset;
16296 uint32_t samplerShaderRecordOffset;
16297 uint32_t samplerHeapIndexStride;
16298 uint32_t samplerHeapArrayStride;
16299} VkDescriptorMappingSourceShaderRecordIndexEXT;
16300
16301typedef struct VkDescriptorMappingSourceIndirectIndexArrayEXT {
16302 uint32_t heapOffset;
16303 uint32_t pushOffset;
16304 uint32_t addressOffset;
16305 uint32_t heapIndexStride;
16306 const VkSamplerCreateInfo* pEmbeddedSampler;
16307 VkBool32 useCombinedImageSamplerIndex;
16308 uint32_t samplerHeapOffset;
16309 uint32_t samplerPushOffset;
16310 uint32_t samplerAddressOffset;
16311 uint32_t samplerHeapIndexStride;
16312} VkDescriptorMappingSourceIndirectIndexArrayEXT;
16313
16314typedef union VkDescriptorMappingSourceDataEXT {
16315 VkDescriptorMappingSourceConstantOffsetEXT constantOffset;
16316 VkDescriptorMappingSourcePushIndexEXT pushIndex;
16317 VkDescriptorMappingSourceIndirectIndexEXT indirectIndex;
16318 VkDescriptorMappingSourceIndirectIndexArrayEXT indirectIndexArray;
16319 VkDescriptorMappingSourceHeapDataEXT heapData;
16320 uint32_t pushDataOffset;
16321 uint32_t pushAddressOffset;
16322 VkDescriptorMappingSourceIndirectAddressEXT indirectAddress;
16323 VkDescriptorMappingSourceShaderRecordIndexEXT shaderRecordIndex;
16324 uint32_t shaderRecordDataOffset;
16325 uint32_t shaderRecordAddressOffset;
16326} VkDescriptorMappingSourceDataEXT;
16327
16328typedef struct VkDescriptorSetAndBindingMappingEXT {
16329 VkStructureType sType;
16330 const void* pNext;
16331 uint32_t descriptorSet;
16332 uint32_t firstBinding;
16333 uint32_t bindingCount;
16334 VkSpirvResourceTypeFlagsEXT resourceMask;
16335 VkDescriptorMappingSourceEXT source;
16336 VkDescriptorMappingSourceDataEXT sourceData;
16337} VkDescriptorSetAndBindingMappingEXT;
16338
16339typedef struct VkShaderDescriptorSetAndBindingMappingInfoEXT {
16340 VkStructureType sType;
16341 const void* pNext;
16342 uint32_t mappingCount;
16343 const VkDescriptorSetAndBindingMappingEXT* pMappings;
16344} VkShaderDescriptorSetAndBindingMappingInfoEXT;
16345
16346typedef struct VkOpaqueCaptureDataCreateInfoEXT {
16347 VkStructureType sType;
16348 const void* pNext;
16349 const VkHostAddressRangeConstEXT* pData;
16350} VkOpaqueCaptureDataCreateInfoEXT;
16351
16352typedef struct VkPhysicalDeviceDescriptorHeapFeaturesEXT {
16353 VkStructureType sType;
16354 void* pNext;
16355 VkBool32 descriptorHeap;
16356 VkBool32 descriptorHeapCaptureReplay;
16357} VkPhysicalDeviceDescriptorHeapFeaturesEXT;
16358
16359typedef struct VkPhysicalDeviceDescriptorHeapPropertiesEXT {
16360 VkStructureType sType;
16361 void* pNext;
16362 VkDeviceSize samplerHeapAlignment;
16363 VkDeviceSize resourceHeapAlignment;
16364 VkDeviceSize maxSamplerHeapSize;
16365 VkDeviceSize maxResourceHeapSize;
16366 VkDeviceSize minSamplerHeapReservedRange;
16367 VkDeviceSize minSamplerHeapReservedRangeWithEmbedded;
16368 VkDeviceSize minResourceHeapReservedRange;
16369 VkDeviceSize samplerDescriptorSize;
16370 VkDeviceSize imageDescriptorSize;
16371 VkDeviceSize bufferDescriptorSize;
16372 VkDeviceSize samplerDescriptorAlignment;
16373 VkDeviceSize imageDescriptorAlignment;
16374 VkDeviceSize bufferDescriptorAlignment;
16375 VkDeviceSize maxPushDataSize;
16376 size_t imageCaptureReplayOpaqueDataSize;
16377 uint32_t maxDescriptorHeapEmbeddedSamplers;
16378 uint32_t samplerYcbcrConversionCount;
16379 VkBool32 sparseDescriptorHeaps;
16380 VkBool32 protectedDescriptorHeaps;
16381} VkPhysicalDeviceDescriptorHeapPropertiesEXT;
16382
16383typedef struct VkCommandBufferInheritanceDescriptorHeapInfoEXT {
16384 VkStructureType sType;
16385 const void* pNext;
16386 const VkBindHeapInfoEXT* pSamplerHeapBindInfo;
16387 const VkBindHeapInfoEXT* pResourceHeapBindInfo;
16388} VkCommandBufferInheritanceDescriptorHeapInfoEXT;
16389
16390typedef struct VkSamplerCustomBorderColorIndexCreateInfoEXT {
16391 VkStructureType sType;
16392 const void* pNext;
16393 uint32_t index;
16394} VkSamplerCustomBorderColorIndexCreateInfoEXT;
16395
16396typedef struct VkSamplerCustomBorderColorCreateInfoEXT {
16397 VkStructureType sType;
16398 const void* pNext;
16399 VkClearColorValue customBorderColor;
16400 VkFormat format;
16401} VkSamplerCustomBorderColorCreateInfoEXT;
16402
16403typedef struct VkIndirectCommandsLayoutPushDataTokenNV {
16404 VkStructureType sType;
16405 const void* pNext;
16406 uint32_t pushDataOffset;
16407 uint32_t pushDataSize;
16408} VkIndirectCommandsLayoutPushDataTokenNV;
16409
16410typedef struct VkSubsampledImageFormatPropertiesEXT {
16411 VkStructureType sType;
16412 const void* pNext;
16413 uint32_t subsampledImageDescriptorCount;
16414} VkSubsampledImageFormatPropertiesEXT;
16415
16416typedef struct VkPhysicalDeviceDescriptorHeapTensorPropertiesARM {
16417 VkStructureType sType;
16418 void* pNext;
16419 VkDeviceSize tensorDescriptorSize;
16420 VkDeviceSize tensorDescriptorAlignment;
16421 size_t tensorCaptureReplayOpaqueDataSize;
16422} VkPhysicalDeviceDescriptorHeapTensorPropertiesARM;
16423
16424typedef VkResult (VKAPI_PTR *PFN_vkWriteSamplerDescriptorsEXT)(VkDevice device, uint32_t samplerCount, const VkSamplerCreateInfo* pSamplers, const VkHostAddressRangeEXT* pDescriptors);
16425typedef VkResult (VKAPI_PTR *PFN_vkWriteResourceDescriptorsEXT)(VkDevice device, uint32_t resourceCount, const VkResourceDescriptorInfoEXT* pResources, const VkHostAddressRangeEXT* pDescriptors);
16426typedef void (VKAPI_PTR *PFN_vkCmdBindSamplerHeapEXT)(VkCommandBuffer commandBuffer, const VkBindHeapInfoEXT* pBindInfo);
16427typedef void (VKAPI_PTR *PFN_vkCmdBindResourceHeapEXT)(VkCommandBuffer commandBuffer, const VkBindHeapInfoEXT* pBindInfo);
16428typedef void (VKAPI_PTR *PFN_vkCmdPushDataEXT)(VkCommandBuffer commandBuffer, const VkPushDataInfoEXT* pPushDataInfo);
16429typedef VkResult (VKAPI_PTR *PFN_vkGetImageOpaqueCaptureDataEXT)(VkDevice device, uint32_t imageCount, const VkImage* pImages, VkHostAddressRangeEXT* pDatas);
16430typedef VkDeviceSize (VKAPI_PTR *PFN_vkGetPhysicalDeviceDescriptorSizeEXT)(VkPhysicalDevice physicalDevice, VkDescriptorType descriptorType);
16431typedef VkResult (VKAPI_PTR *PFN_vkRegisterCustomBorderColorEXT)(VkDevice device, const VkSamplerCustomBorderColorCreateInfoEXT* pBorderColor, VkBool32 requestIndex, uint32_t* pIndex);
16432typedef void (VKAPI_PTR *PFN_vkUnregisterCustomBorderColorEXT)(VkDevice device, uint32_t index);
16433typedef VkResult (VKAPI_PTR *PFN_vkGetTensorOpaqueCaptureDataARM)(VkDevice device, uint32_t tensorCount, const VkTensorARM* pTensors, VkHostAddressRangeEXT* pDatas);
16434
16435#ifndef VK_NO_PROTOTYPES
16436#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16437VKAPI_ATTR VkResult VKAPI_CALL vkWriteSamplerDescriptorsEXT(
16438 VkDevice device,
16439 uint32_t samplerCount,
16440 const VkSamplerCreateInfo* pSamplers,
16441 const VkHostAddressRangeEXT* pDescriptors);
16442#endif
16443
16444#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16445VKAPI_ATTR VkResult VKAPI_CALL vkWriteResourceDescriptorsEXT(
16446 VkDevice device,
16447 uint32_t resourceCount,
16448 const VkResourceDescriptorInfoEXT* pResources,
16449 const VkHostAddressRangeEXT* pDescriptors);
16450#endif
16451
16452#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16453VKAPI_ATTR void VKAPI_CALL vkCmdBindSamplerHeapEXT(
16454 VkCommandBuffer commandBuffer,
16455 const VkBindHeapInfoEXT* pBindInfo);
16456#endif
16457
16458#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16459VKAPI_ATTR void VKAPI_CALL vkCmdBindResourceHeapEXT(
16460 VkCommandBuffer commandBuffer,
16461 const VkBindHeapInfoEXT* pBindInfo);
16462#endif
16463
16464#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16465VKAPI_ATTR void VKAPI_CALL vkCmdPushDataEXT(
16466 VkCommandBuffer commandBuffer,
16467 const VkPushDataInfoEXT* pPushDataInfo);
16468#endif
16469
16470#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16471VKAPI_ATTR VkResult VKAPI_CALL vkGetImageOpaqueCaptureDataEXT(
16472 VkDevice device,
16473 uint32_t imageCount,
16474 const VkImage* pImages,
16475 VkHostAddressRangeEXT* pDatas);
16476#endif
16477
16478#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16479VKAPI_ATTR VkDeviceSize VKAPI_CALL vkGetPhysicalDeviceDescriptorSizeEXT(
16480 VkPhysicalDevice physicalDevice,
16481 VkDescriptorType descriptorType);
16482#endif
16483
16484#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16485VKAPI_ATTR VkResult VKAPI_CALL vkRegisterCustomBorderColorEXT(
16486 VkDevice device,
16487 const VkSamplerCustomBorderColorCreateInfoEXT* pBorderColor,
16488 VkBool32 requestIndex,
16489 uint32_t* pIndex);
16490#endif
16491
16492#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16493VKAPI_ATTR void VKAPI_CALL vkUnregisterCustomBorderColorEXT(
16494 VkDevice device,
16495 uint32_t index);
16496#endif
16497
16498#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16499VKAPI_ATTR VkResult VKAPI_CALL vkGetTensorOpaqueCaptureDataARM(
16500 VkDevice device,
16501 uint32_t tensorCount,
16502 const VkTensorARM* pTensors,
16503 VkHostAddressRangeEXT* pDatas);
16504#endif
16505#endif
16506
16507
16508// VK_AMD_mixed_attachment_samples is a preprocessor guard. Do not pass it to API calls.
16509#define VK_AMD_mixed_attachment_samples 1
16510#define VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION 1
16511#define VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME "VK_AMD_mixed_attachment_samples"
16512typedef struct VkAttachmentSampleCountInfoAMD {
16513 VkStructureType sType;
16514 const void* pNext;
16515 uint32_t colorAttachmentCount;
16516 const VkSampleCountFlagBits* pColorAttachmentSamples;
16517 VkSampleCountFlagBits depthStencilAttachmentSamples;
16518} VkAttachmentSampleCountInfoAMD;
16519
16520
16521
16522// VK_AMD_shader_fragment_mask is a preprocessor guard. Do not pass it to API calls.
16523#define VK_AMD_shader_fragment_mask 1
16524#define VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION 1
16525#define VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME "VK_AMD_shader_fragment_mask"
16526
16527
16528// VK_EXT_inline_uniform_block is a preprocessor guard. Do not pass it to API calls.
16529#define VK_EXT_inline_uniform_block 1
16530#define VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION 1
16531#define VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME "VK_EXT_inline_uniform_block"
16532typedef VkPhysicalDeviceInlineUniformBlockFeatures VkPhysicalDeviceInlineUniformBlockFeaturesEXT;
16533
16534typedef VkPhysicalDeviceInlineUniformBlockProperties VkPhysicalDeviceInlineUniformBlockPropertiesEXT;
16535
16536typedef VkWriteDescriptorSetInlineUniformBlock VkWriteDescriptorSetInlineUniformBlockEXT;
16537
16538typedef VkDescriptorPoolInlineUniformBlockCreateInfo VkDescriptorPoolInlineUniformBlockCreateInfoEXT;
16539
16540
16541
16542// VK_EXT_shader_stencil_export is a preprocessor guard. Do not pass it to API calls.
16543#define VK_EXT_shader_stencil_export 1
16544#define VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION 1
16545#define VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME "VK_EXT_shader_stencil_export"
16546
16547
16548// VK_EXT_sample_locations is a preprocessor guard. Do not pass it to API calls.
16549#define VK_EXT_sample_locations 1
16550#define VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION 1
16551#define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations"
16552typedef struct VkSampleLocationEXT {
16553 float x;
16554 float y;
16555} VkSampleLocationEXT;
16556
16557typedef struct VkSampleLocationsInfoEXT {
16558 VkStructureType sType;
16559 const void* pNext;
16560 VkSampleCountFlagBits sampleLocationsPerPixel;
16561 VkExtent2D sampleLocationGridSize;
16562 uint32_t sampleLocationsCount;
16563 const VkSampleLocationEXT* pSampleLocations;
16564} VkSampleLocationsInfoEXT;
16565
16566typedef struct VkAttachmentSampleLocationsEXT {
16567 uint32_t attachmentIndex;
16568 VkSampleLocationsInfoEXT sampleLocationsInfo;
16569} VkAttachmentSampleLocationsEXT;
16570
16571typedef struct VkSubpassSampleLocationsEXT {
16572 uint32_t subpassIndex;
16573 VkSampleLocationsInfoEXT sampleLocationsInfo;
16574} VkSubpassSampleLocationsEXT;
16575
16576typedef struct VkRenderPassSampleLocationsBeginInfoEXT {
16577 VkStructureType sType;
16578 const void* pNext;
16579 uint32_t attachmentInitialSampleLocationsCount;
16580 const VkAttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations;
16581 uint32_t postSubpassSampleLocationsCount;
16582 const VkSubpassSampleLocationsEXT* pPostSubpassSampleLocations;
16583} VkRenderPassSampleLocationsBeginInfoEXT;
16584
16585typedef struct VkPipelineSampleLocationsStateCreateInfoEXT {
16586 VkStructureType sType;
16587 const void* pNext;
16588 VkBool32 sampleLocationsEnable;
16589 VkSampleLocationsInfoEXT sampleLocationsInfo;
16590} VkPipelineSampleLocationsStateCreateInfoEXT;
16591
16592typedef struct VkPhysicalDeviceSampleLocationsPropertiesEXT {
16593 VkStructureType sType;
16594 void* pNext;
16595 VkSampleCountFlags sampleLocationSampleCounts;
16596 VkExtent2D maxSampleLocationGridSize;
16597 float sampleLocationCoordinateRange[2];
16598 uint32_t sampleLocationSubPixelBits;
16599 VkBool32 variableSampleLocations;
16600} VkPhysicalDeviceSampleLocationsPropertiesEXT;
16601
16602typedef struct VkMultisamplePropertiesEXT {
16603 VkStructureType sType;
16604 void* pNext;
16605 VkExtent2D maxSampleLocationGridSize;
16606} VkMultisamplePropertiesEXT;
16607
16608typedef void (VKAPI_PTR *PFN_vkCmdSetSampleLocationsEXT)(VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo);
16609typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)(VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties);
16610
16611#ifndef VK_NO_PROTOTYPES
16612#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16613VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleLocationsEXT(
16614 VkCommandBuffer commandBuffer,
16615 const VkSampleLocationsInfoEXT* pSampleLocationsInfo);
16616#endif
16617
16618#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16619VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMultisamplePropertiesEXT(
16620 VkPhysicalDevice physicalDevice,
16621 VkSampleCountFlagBits samples,
16622 VkMultisamplePropertiesEXT* pMultisampleProperties);
16623#endif
16624#endif
16625
16626
16627// VK_EXT_blend_operation_advanced is a preprocessor guard. Do not pass it to API calls.
16628#define VK_EXT_blend_operation_advanced 1
16629#define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2
16630#define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced"
16631
16632typedef enum VkBlendOverlapEXT {
16633 VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0,
16634 VK_BLEND_OVERLAP_DISJOINT_EXT = 1,
16635 VK_BLEND_OVERLAP_CONJOINT_EXT = 2,
16636 VK_BLEND_OVERLAP_MAX_ENUM_EXT = 0x7FFFFFFF
16637} VkBlendOverlapEXT;
16638typedef struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT {
16639 VkStructureType sType;
16640 void* pNext;
16641 VkBool32 advancedBlendCoherentOperations;
16642} VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT;
16643
16644typedef struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT {
16645 VkStructureType sType;
16646 void* pNext;
16647 uint32_t advancedBlendMaxColorAttachments;
16648 VkBool32 advancedBlendIndependentBlend;
16649 VkBool32 advancedBlendNonPremultipliedSrcColor;
16650 VkBool32 advancedBlendNonPremultipliedDstColor;
16651 VkBool32 advancedBlendCorrelatedOverlap;
16652 VkBool32 advancedBlendAllOperations;
16653} VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT;
16654
16655typedef struct VkPipelineColorBlendAdvancedStateCreateInfoEXT {
16656 VkStructureType sType;
16657 const void* pNext;
16658 VkBool32 srcPremultiplied;
16659 VkBool32 dstPremultiplied;
16660 VkBlendOverlapEXT blendOverlap;
16661} VkPipelineColorBlendAdvancedStateCreateInfoEXT;
16662
16663
16664
16665// VK_NV_fragment_coverage_to_color is a preprocessor guard. Do not pass it to API calls.
16666#define VK_NV_fragment_coverage_to_color 1
16667#define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION 1
16668#define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME "VK_NV_fragment_coverage_to_color"
16669typedef VkFlags VkPipelineCoverageToColorStateCreateFlagsNV;
16670typedef struct VkPipelineCoverageToColorStateCreateInfoNV {
16671 VkStructureType sType;
16672 const void* pNext;
16673 VkPipelineCoverageToColorStateCreateFlagsNV flags;
16674 VkBool32 coverageToColorEnable;
16675 uint32_t coverageToColorLocation;
16676} VkPipelineCoverageToColorStateCreateInfoNV;
16677
16678
16679
16680// VK_NV_framebuffer_mixed_samples is a preprocessor guard. Do not pass it to API calls.
16681#define VK_NV_framebuffer_mixed_samples 1
16682#define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION 1
16683#define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME "VK_NV_framebuffer_mixed_samples"
16684
16685typedef enum VkCoverageModulationModeNV {
16686 VK_COVERAGE_MODULATION_MODE_NONE_NV = 0,
16687 VK_COVERAGE_MODULATION_MODE_RGB_NV = 1,
16688 VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2,
16689 VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3,
16690 VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 0x7FFFFFFF
16691} VkCoverageModulationModeNV;
16692typedef VkFlags VkPipelineCoverageModulationStateCreateFlagsNV;
16693typedef struct VkPipelineCoverageModulationStateCreateInfoNV {
16694 VkStructureType sType;
16695 const void* pNext;
16696 VkPipelineCoverageModulationStateCreateFlagsNV flags;
16697 VkCoverageModulationModeNV coverageModulationMode;
16698 VkBool32 coverageModulationTableEnable;
16699 uint32_t coverageModulationTableCount;
16700 const float* pCoverageModulationTable;
16701} VkPipelineCoverageModulationStateCreateInfoNV;
16702
16703typedef VkAttachmentSampleCountInfoAMD VkAttachmentSampleCountInfoNV;
16704
16705
16706
16707// VK_NV_fill_rectangle is a preprocessor guard. Do not pass it to API calls.
16708#define VK_NV_fill_rectangle 1
16709#define VK_NV_FILL_RECTANGLE_SPEC_VERSION 1
16710#define VK_NV_FILL_RECTANGLE_EXTENSION_NAME "VK_NV_fill_rectangle"
16711
16712
16713// VK_NV_shader_sm_builtins is a preprocessor guard. Do not pass it to API calls.
16714#define VK_NV_shader_sm_builtins 1
16715#define VK_NV_SHADER_SM_BUILTINS_SPEC_VERSION 1
16716#define VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME "VK_NV_shader_sm_builtins"
16717typedef struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV {
16718 VkStructureType sType;
16719 void* pNext;
16720 uint32_t shaderSMCount;
16721 uint32_t shaderWarpsPerSM;
16722} VkPhysicalDeviceShaderSMBuiltinsPropertiesNV;
16723
16724typedef struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV {
16725 VkStructureType sType;
16726 void* pNext;
16727 VkBool32 shaderSMBuiltins;
16728} VkPhysicalDeviceShaderSMBuiltinsFeaturesNV;
16729
16730
16731
16732// VK_EXT_post_depth_coverage is a preprocessor guard. Do not pass it to API calls.
16733#define VK_EXT_post_depth_coverage 1
16734#define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1
16735#define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage"
16736
16737
16738// VK_EXT_image_drm_format_modifier is a preprocessor guard. Do not pass it to API calls.
16739#define VK_EXT_image_drm_format_modifier 1
16740#define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION 2
16741#define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME "VK_EXT_image_drm_format_modifier"
16742typedef struct VkDrmFormatModifierPropertiesEXT {
16743 uint64_t drmFormatModifier;
16744 uint32_t drmFormatModifierPlaneCount;
16745 VkFormatFeatureFlags drmFormatModifierTilingFeatures;
16746} VkDrmFormatModifierPropertiesEXT;
16747
16748typedef struct VkDrmFormatModifierPropertiesListEXT {
16749 VkStructureType sType;
16750 void* pNext;
16751 uint32_t drmFormatModifierCount;
16752 VkDrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties;
16753} VkDrmFormatModifierPropertiesListEXT;
16754
16755typedef struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT {
16756 VkStructureType sType;
16757 const void* pNext;
16758 uint64_t drmFormatModifier;
16759 VkSharingMode sharingMode;
16760 uint32_t queueFamilyIndexCount;
16761 const uint32_t* pQueueFamilyIndices;
16762} VkPhysicalDeviceImageDrmFormatModifierInfoEXT;
16763
16764typedef struct VkImageDrmFormatModifierListCreateInfoEXT {
16765 VkStructureType sType;
16766 const void* pNext;
16767 uint32_t drmFormatModifierCount;
16768 const uint64_t* pDrmFormatModifiers;
16769} VkImageDrmFormatModifierListCreateInfoEXT;
16770
16771typedef struct VkImageDrmFormatModifierExplicitCreateInfoEXT {
16772 VkStructureType sType;
16773 const void* pNext;
16774 uint64_t drmFormatModifier;
16775 uint32_t drmFormatModifierPlaneCount;
16776 const VkSubresourceLayout* pPlaneLayouts;
16777} VkImageDrmFormatModifierExplicitCreateInfoEXT;
16778
16779typedef struct VkImageDrmFormatModifierPropertiesEXT {
16780 VkStructureType sType;
16781 void* pNext;
16782 uint64_t drmFormatModifier;
16783} VkImageDrmFormatModifierPropertiesEXT;
16784
16785typedef struct VkDrmFormatModifierProperties2EXT {
16786 uint64_t drmFormatModifier;
16787 uint32_t drmFormatModifierPlaneCount;
16788 VkFormatFeatureFlags2 drmFormatModifierTilingFeatures;
16789} VkDrmFormatModifierProperties2EXT;
16790
16791typedef struct VkDrmFormatModifierPropertiesList2EXT {
16792 VkStructureType sType;
16793 void* pNext;
16794 uint32_t drmFormatModifierCount;
16795 VkDrmFormatModifierProperties2EXT* pDrmFormatModifierProperties;
16796} VkDrmFormatModifierPropertiesList2EXT;
16797
16798typedef VkResult (VKAPI_PTR *PFN_vkGetImageDrmFormatModifierPropertiesEXT)(VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties);
16799
16800#ifndef VK_NO_PROTOTYPES
16801#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16802VKAPI_ATTR VkResult VKAPI_CALL vkGetImageDrmFormatModifierPropertiesEXT(
16803 VkDevice device,
16804 VkImage image,
16805 VkImageDrmFormatModifierPropertiesEXT* pProperties);
16806#endif
16807#endif
16808
16809
16810// VK_EXT_validation_cache is a preprocessor guard. Do not pass it to API calls.
16811#define VK_EXT_validation_cache 1
16812VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkValidationCacheEXT)
16813#define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1
16814#define VK_EXT_VALIDATION_CACHE_EXTENSION_NAME "VK_EXT_validation_cache"
16815
16816typedef enum VkValidationCacheHeaderVersionEXT {
16817 VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1,
16818 VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF
16819} VkValidationCacheHeaderVersionEXT;
16820typedef VkFlags VkValidationCacheCreateFlagsEXT;
16821typedef struct VkValidationCacheCreateInfoEXT {
16822 VkStructureType sType;
16823 const void* pNext;
16824 VkValidationCacheCreateFlagsEXT flags;
16825 size_t initialDataSize;
16826 const void* pInitialData;
16827} VkValidationCacheCreateInfoEXT;
16828
16829typedef struct VkShaderModuleValidationCacheCreateInfoEXT {
16830 VkStructureType sType;
16831 const void* pNext;
16832 VkValidationCacheEXT validationCache;
16833} VkShaderModuleValidationCacheCreateInfoEXT;
16834
16835typedef VkResult (VKAPI_PTR *PFN_vkCreateValidationCacheEXT)(VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache);
16836typedef void (VKAPI_PTR *PFN_vkDestroyValidationCacheEXT)(VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator);
16837typedef VkResult (VKAPI_PTR *PFN_vkMergeValidationCachesEXT)(VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches);
16838typedef VkResult (VKAPI_PTR *PFN_vkGetValidationCacheDataEXT)(VkDevice device, VkValidationCacheEXT validationCache, size_t* pDataSize, void* pData);
16839
16840#ifndef VK_NO_PROTOTYPES
16841#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16842VKAPI_ATTR VkResult VKAPI_CALL vkCreateValidationCacheEXT(
16843 VkDevice device,
16844 const VkValidationCacheCreateInfoEXT* pCreateInfo,
16845 const VkAllocationCallbacks* pAllocator,
16846 VkValidationCacheEXT* pValidationCache);
16847#endif
16848
16849#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16850VKAPI_ATTR void VKAPI_CALL vkDestroyValidationCacheEXT(
16851 VkDevice device,
16852 VkValidationCacheEXT validationCache,
16853 const VkAllocationCallbacks* pAllocator);
16854#endif
16855
16856#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16857VKAPI_ATTR VkResult VKAPI_CALL vkMergeValidationCachesEXT(
16858 VkDevice device,
16859 VkValidationCacheEXT dstCache,
16860 uint32_t srcCacheCount,
16861 const VkValidationCacheEXT* pSrcCaches);
16862#endif
16863
16864#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16865VKAPI_ATTR VkResult VKAPI_CALL vkGetValidationCacheDataEXT(
16866 VkDevice device,
16867 VkValidationCacheEXT validationCache,
16868 size_t* pDataSize,
16869 void* pData);
16870#endif
16871#endif
16872
16873
16874// VK_EXT_descriptor_indexing is a preprocessor guard. Do not pass it to API calls.
16875#define VK_EXT_descriptor_indexing 1
16876#define VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION 2
16877#define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME "VK_EXT_descriptor_indexing"
16878typedef VkDescriptorBindingFlagBits VkDescriptorBindingFlagBitsEXT;
16879
16880typedef VkDescriptorBindingFlags VkDescriptorBindingFlagsEXT;
16881
16882typedef VkDescriptorSetLayoutBindingFlagsCreateInfo VkDescriptorSetLayoutBindingFlagsCreateInfoEXT;
16883
16884typedef VkPhysicalDeviceDescriptorIndexingFeatures VkPhysicalDeviceDescriptorIndexingFeaturesEXT;
16885
16886typedef VkPhysicalDeviceDescriptorIndexingProperties VkPhysicalDeviceDescriptorIndexingPropertiesEXT;
16887
16888typedef VkDescriptorSetVariableDescriptorCountAllocateInfo VkDescriptorSetVariableDescriptorCountAllocateInfoEXT;
16889
16890typedef VkDescriptorSetVariableDescriptorCountLayoutSupport VkDescriptorSetVariableDescriptorCountLayoutSupportEXT;
16891
16892
16893
16894// VK_EXT_shader_viewport_index_layer is a preprocessor guard. Do not pass it to API calls.
16895#define VK_EXT_shader_viewport_index_layer 1
16896#define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION 1
16897#define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME "VK_EXT_shader_viewport_index_layer"
16898
16899
16900// VK_NV_shading_rate_image is a preprocessor guard. Do not pass it to API calls.
16901#define VK_NV_shading_rate_image 1
16902#define VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION 3
16903#define VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME "VK_NV_shading_rate_image"
16904
16905typedef enum VkShadingRatePaletteEntryNV {
16906 VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0,
16907 VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1,
16908 VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2,
16909 VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3,
16910 VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4,
16911 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5,
16912 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6,
16913 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7,
16914 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8,
16915 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9,
16916 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10,
16917 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11,
16918 VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 0x7FFFFFFF
16919} VkShadingRatePaletteEntryNV;
16920
16921typedef enum VkCoarseSampleOrderTypeNV {
16922 VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0,
16923 VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1,
16924 VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2,
16925 VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3,
16926 VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
16927} VkCoarseSampleOrderTypeNV;
16928typedef struct VkShadingRatePaletteNV {
16929 uint32_t shadingRatePaletteEntryCount;
16930 const VkShadingRatePaletteEntryNV* pShadingRatePaletteEntries;
16931} VkShadingRatePaletteNV;
16932
16933typedef struct VkPipelineViewportShadingRateImageStateCreateInfoNV {
16934 VkStructureType sType;
16935 const void* pNext;
16936 VkBool32 shadingRateImageEnable;
16937 uint32_t viewportCount;
16938 const VkShadingRatePaletteNV* pShadingRatePalettes;
16939} VkPipelineViewportShadingRateImageStateCreateInfoNV;
16940
16941typedef struct VkPhysicalDeviceShadingRateImageFeaturesNV {
16942 VkStructureType sType;
16943 void* pNext;
16944 VkBool32 shadingRateImage;
16945 VkBool32 shadingRateCoarseSampleOrder;
16946} VkPhysicalDeviceShadingRateImageFeaturesNV;
16947
16948typedef struct VkPhysicalDeviceShadingRateImagePropertiesNV {
16949 VkStructureType sType;
16950 void* pNext;
16951 VkExtent2D shadingRateTexelSize;
16952 uint32_t shadingRatePaletteSize;
16953 uint32_t shadingRateMaxCoarseSamples;
16954} VkPhysicalDeviceShadingRateImagePropertiesNV;
16955
16956typedef struct VkCoarseSampleLocationNV {
16957 uint32_t pixelX;
16958 uint32_t pixelY;
16959 uint32_t sample;
16960} VkCoarseSampleLocationNV;
16961
16962typedef struct VkCoarseSampleOrderCustomNV {
16963 VkShadingRatePaletteEntryNV shadingRate;
16964 uint32_t sampleCount;
16965 uint32_t sampleLocationCount;
16966 const VkCoarseSampleLocationNV* pSampleLocations;
16967} VkCoarseSampleOrderCustomNV;
16968
16969typedef struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV {
16970 VkStructureType sType;
16971 const void* pNext;
16972 VkCoarseSampleOrderTypeNV sampleOrderType;
16973 uint32_t customSampleOrderCount;
16974 const VkCoarseSampleOrderCustomNV* pCustomSampleOrders;
16975} VkPipelineViewportCoarseSampleOrderStateCreateInfoNV;
16976
16977typedef void (VKAPI_PTR *PFN_vkCmdBindShadingRateImageNV)(VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout);
16978typedef void (VKAPI_PTR *PFN_vkCmdSetViewportShadingRatePaletteNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes);
16979typedef void (VKAPI_PTR *PFN_vkCmdSetCoarseSampleOrderNV)(VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders);
16980
16981#ifndef VK_NO_PROTOTYPES
16982#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16983VKAPI_ATTR void VKAPI_CALL vkCmdBindShadingRateImageNV(
16984 VkCommandBuffer commandBuffer,
16985 VkImageView imageView,
16986 VkImageLayout imageLayout);
16987#endif
16988
16989#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16990VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportShadingRatePaletteNV(
16991 VkCommandBuffer commandBuffer,
16992 uint32_t firstViewport,
16993 uint32_t viewportCount,
16994 const VkShadingRatePaletteNV* pShadingRatePalettes);
16995#endif
16996
16997#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16998VKAPI_ATTR void VKAPI_CALL vkCmdSetCoarseSampleOrderNV(
16999 VkCommandBuffer commandBuffer,
17000 VkCoarseSampleOrderTypeNV sampleOrderType,
17001 uint32_t customSampleOrderCount,
17002 const VkCoarseSampleOrderCustomNV* pCustomSampleOrders);
17003#endif
17004#endif
17005
17006
17007// VK_NV_ray_tracing is a preprocessor guard. Do not pass it to API calls.
17008#define VK_NV_ray_tracing 1
17009VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureNV)
17010#define VK_NV_RAY_TRACING_SPEC_VERSION 3
17011#define VK_NV_RAY_TRACING_EXTENSION_NAME "VK_NV_ray_tracing"
17012#define VK_SHADER_UNUSED_KHR (~0U)
17013#define VK_SHADER_UNUSED_NV VK_SHADER_UNUSED_KHR
17014
17015typedef enum VkRayTracingShaderGroupTypeKHR {
17016 VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0,
17017 VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1,
17018 VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2,
17019 VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR,
17020 VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR,
17021 VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR,
17022 VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
17023} VkRayTracingShaderGroupTypeKHR;
17024typedef VkRayTracingShaderGroupTypeKHR VkRayTracingShaderGroupTypeNV;
17025
17026
17027typedef enum VkGeometryTypeKHR {
17028 VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0,
17029 VK_GEOMETRY_TYPE_AABBS_KHR = 1,
17030 VK_GEOMETRY_TYPE_INSTANCES_KHR = 2,
17031 VK_GEOMETRY_TYPE_SPHERES_NV = 1000429004,
17032 VK_GEOMETRY_TYPE_LINEAR_SWEPT_SPHERES_NV = 1000429005,
17033#ifdef VK_ENABLE_BETA_EXTENSIONS
17034 VK_GEOMETRY_TYPE_DENSE_GEOMETRY_FORMAT_TRIANGLES_AMDX = 1000478000,
17035#endif
17036 VK_GEOMETRY_TYPE_TRIANGLES_NV = VK_GEOMETRY_TYPE_TRIANGLES_KHR,
17037 VK_GEOMETRY_TYPE_AABBS_NV = VK_GEOMETRY_TYPE_AABBS_KHR,
17038 VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
17039} VkGeometryTypeKHR;
17040typedef VkGeometryTypeKHR VkGeometryTypeNV;
17041
17042typedef VkAccelerationStructureTypeKHR VkAccelerationStructureTypeNV;
17043
17044
17045typedef enum VkCopyAccelerationStructureModeKHR {
17046 VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0,
17047 VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1,
17048 VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2,
17049 VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3,
17050 VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR,
17051 VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR,
17052 VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
17053} VkCopyAccelerationStructureModeKHR;
17054typedef VkCopyAccelerationStructureModeKHR VkCopyAccelerationStructureModeNV;
17055
17056
17057typedef enum VkAccelerationStructureMemoryRequirementsTypeNV {
17058 VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0,
17059 VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1,
17060 VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2,
17061 VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
17062} VkAccelerationStructureMemoryRequirementsTypeNV;
17063
17064typedef enum VkGeometryFlagBitsKHR {
17065 VK_GEOMETRY_OPAQUE_BIT_KHR = 0x00000001,
17066 VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 0x00000002,
17067 VK_GEOMETRY_OPAQUE_BIT_NV = VK_GEOMETRY_OPAQUE_BIT_KHR,
17068 VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR,
17069 VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
17070} VkGeometryFlagBitsKHR;
17071typedef VkFlags VkGeometryFlagsKHR;
17072typedef VkGeometryFlagsKHR VkGeometryFlagsNV;
17073
17074typedef VkGeometryFlagBitsKHR VkGeometryFlagBitsNV;
17075
17076
17077typedef enum VkGeometryInstanceFlagBitsKHR {
17078 VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 0x00000001,
17079 VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 0x00000002,
17080 VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 0x00000004,
17081 VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 0x00000008,
17082 VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_BIT_EXT = 0x00000010,
17083 VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_BIT_EXT = 0x00000020,
17084 VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR,
17085 VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR,
17086 VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR,
17087 VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR,
17088 VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR,
17089 // VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT is a legacy alias
17090 VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT = VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_BIT_EXT,
17091 // VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT is a legacy alias
17092 VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT = VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_BIT_EXT,
17093 VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
17094} VkGeometryInstanceFlagBitsKHR;
17095typedef VkFlags VkGeometryInstanceFlagsKHR;
17096typedef VkGeometryInstanceFlagsKHR VkGeometryInstanceFlagsNV;
17097
17098typedef VkGeometryInstanceFlagBitsKHR VkGeometryInstanceFlagBitsNV;
17099
17100
17101typedef enum VkBuildAccelerationStructureFlagBitsKHR {
17102 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 0x00000001,
17103 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 0x00000002,
17104 VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 0x00000004,
17105 VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 0x00000008,
17106 VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 0x00000010,
17107 VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 0x00000020,
17108 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_BIT_EXT = 0x00000040,
17109 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_BIT_EXT = 0x00000080,
17110 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_BIT_EXT = 0x00000100,
17111#ifdef VK_ENABLE_BETA_EXTENSIONS
17112 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_BIT_NV = 0x00000200,
17113#endif
17114 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_BIT_KHR = 0x00000800,
17115 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_CLUSTER_OPACITY_MICROMAPS_BIT_NV = 0x00001000,
17116 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,
17117 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,
17118 VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR,
17119 VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR,
17120 VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR,
17121 // VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT is a legacy alias
17122 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_BIT_EXT,
17123 // VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT is a legacy alias
17124 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_BIT_EXT,
17125 // VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT is a legacy alias
17126 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_BIT_EXT,
17127#ifdef VK_ENABLE_BETA_EXTENSIONS
17128 // VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV is a legacy alias
17129 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_BIT_NV,
17130#endif
17131 // VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR is a legacy alias
17132 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_BIT_KHR,
17133 VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
17134} VkBuildAccelerationStructureFlagBitsKHR;
17135typedef VkFlags VkBuildAccelerationStructureFlagsKHR;
17136typedef VkBuildAccelerationStructureFlagBitsKHR VkBuildAccelerationStructureFlagBitsNV;
17137
17138typedef VkBuildAccelerationStructureFlagsKHR VkBuildAccelerationStructureFlagsNV;
17139
17140typedef struct VkRayTracingShaderGroupCreateInfoNV {
17141 VkStructureType sType;
17142 const void* pNext;
17143 VkRayTracingShaderGroupTypeKHR type;
17144 uint32_t generalShader;
17145 uint32_t closestHitShader;
17146 uint32_t anyHitShader;
17147 uint32_t intersectionShader;
17148} VkRayTracingShaderGroupCreateInfoNV;
17149
17150typedef struct VkRayTracingPipelineCreateInfoNV {
17151 VkStructureType sType;
17152 const void* pNext;
17153 VkPipelineCreateFlags flags;
17154 uint32_t stageCount;
17155 const VkPipelineShaderStageCreateInfo* pStages;
17156 uint32_t groupCount;
17157 const VkRayTracingShaderGroupCreateInfoNV* pGroups;
17158 uint32_t maxRecursionDepth;
17159 VkPipelineLayout layout;
17160 VkPipeline basePipelineHandle;
17161 int32_t basePipelineIndex;
17162} VkRayTracingPipelineCreateInfoNV;
17163
17164typedef struct VkGeometryTrianglesNV {
17165 VkStructureType sType;
17166 const void* pNext;
17167 VkBuffer vertexData;
17168 VkDeviceSize vertexOffset;
17169 uint32_t vertexCount;
17170 VkDeviceSize vertexStride;
17171 VkFormat vertexFormat;
17172 VkBuffer indexData;
17173 VkDeviceSize indexOffset;
17174 uint32_t indexCount;
17175 VkIndexType indexType;
17176 VkBuffer transformData;
17177 VkDeviceSize transformOffset;
17178} VkGeometryTrianglesNV;
17179
17180typedef struct VkGeometryAABBNV {
17181 VkStructureType sType;
17182 const void* pNext;
17183 VkBuffer aabbData;
17184 uint32_t numAABBs;
17185 uint32_t stride;
17186 VkDeviceSize offset;
17187} VkGeometryAABBNV;
17188
17189typedef struct VkGeometryDataNV {
17190 VkGeometryTrianglesNV triangles;
17191 VkGeometryAABBNV aabbs;
17192} VkGeometryDataNV;
17193
17194typedef struct VkGeometryNV {
17195 VkStructureType sType;
17196 const void* pNext;
17197 VkGeometryTypeKHR geometryType;
17198 VkGeometryDataNV geometry;
17199 VkGeometryFlagsKHR flags;
17200} VkGeometryNV;
17201
17202typedef struct VkAccelerationStructureInfoNV {
17203 VkStructureType sType;
17204 const void* pNext;
17205 VkAccelerationStructureTypeNV type;
17206 VkBuildAccelerationStructureFlagsKHR flags;
17207 uint32_t instanceCount;
17208 uint32_t geometryCount;
17209 const VkGeometryNV* pGeometries;
17210} VkAccelerationStructureInfoNV;
17211
17212typedef struct VkAccelerationStructureCreateInfoNV {
17213 VkStructureType sType;
17214 const void* pNext;
17215 VkDeviceSize compactedSize;
17216 VkAccelerationStructureInfoNV info;
17217} VkAccelerationStructureCreateInfoNV;
17218
17219typedef struct VkBindAccelerationStructureMemoryInfoNV {
17220 VkStructureType sType;
17221 const void* pNext;
17222 VkAccelerationStructureNV accelerationStructure;
17223 VkDeviceMemory memory;
17224 VkDeviceSize memoryOffset;
17225 uint32_t deviceIndexCount;
17226 const uint32_t* pDeviceIndices;
17227} VkBindAccelerationStructureMemoryInfoNV;
17228
17229typedef struct VkWriteDescriptorSetAccelerationStructureNV {
17230 VkStructureType sType;
17231 const void* pNext;
17232 uint32_t accelerationStructureCount;
17233 const VkAccelerationStructureNV* pAccelerationStructures;
17234} VkWriteDescriptorSetAccelerationStructureNV;
17235
17236typedef struct VkAccelerationStructureMemoryRequirementsInfoNV {
17237 VkStructureType sType;
17238 const void* pNext;
17239 VkAccelerationStructureMemoryRequirementsTypeNV type;
17240 VkAccelerationStructureNV accelerationStructure;
17241} VkAccelerationStructureMemoryRequirementsInfoNV;
17242
17243typedef struct VkPhysicalDeviceRayTracingPropertiesNV {
17244 VkStructureType sType;
17245 void* pNext;
17246 uint32_t shaderGroupHandleSize;
17247 uint32_t maxRecursionDepth;
17248 uint32_t maxShaderGroupStride;
17249 uint32_t shaderGroupBaseAlignment;
17250 uint64_t maxGeometryCount;
17251 uint64_t maxInstanceCount;
17252 uint64_t maxTriangleCount;
17253 uint32_t maxDescriptorSetAccelerationStructures;
17254} VkPhysicalDeviceRayTracingPropertiesNV;
17255
17256typedef struct VkTransformMatrixKHR {
17257 float matrix[3][4];
17258} VkTransformMatrixKHR;
17259
17260typedef VkTransformMatrixKHR VkTransformMatrixNV;
17261
17262typedef struct VkAabbPositionsKHR {
17263 float minX;
17264 float minY;
17265 float minZ;
17266 float maxX;
17267 float maxY;
17268 float maxZ;
17269} VkAabbPositionsKHR;
17270
17271typedef VkAabbPositionsKHR VkAabbPositionsNV;
17272
17273typedef struct VkAccelerationStructureInstanceKHR {
17274 VkTransformMatrixKHR transform;
17275 uint32_t instanceCustomIndex:24;
17276 uint32_t mask:8;
17277 uint32_t instanceShaderBindingTableRecordOffset:24;
17278 VkGeometryInstanceFlagsKHR flags:8;
17279 uint64_t accelerationStructureReference;
17280} VkAccelerationStructureInstanceKHR;
17281
17282typedef VkAccelerationStructureInstanceKHR VkAccelerationStructureInstanceNV;
17283
17284typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureNV)(VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNV* pAccelerationStructure);
17285typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, const VkAllocationCallbacks* pAllocator);
17286typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureMemoryRequirementsNV)(VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2* pMemoryRequirements);
17287typedef VkResult (VKAPI_PTR *PFN_vkBindAccelerationStructureMemoryNV)(VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoNV* pBindInfos);
17288typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructureNV)(VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV* pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkBuffer scratch, VkDeviceSize scratchOffset);
17289typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureNV)(VkCommandBuffer commandBuffer, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkCopyAccelerationStructureModeKHR mode);
17290typedef 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);
17291typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesNV)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoNV* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
17292typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupHandlesKHR)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
17293typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupHandlesNV)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
17294typedef VkResult (VKAPI_PTR *PFN_vkGetAccelerationStructureHandleNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, size_t dataSize, void* pData);
17295typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesNV)(VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureNV* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
17296typedef VkResult (VKAPI_PTR *PFN_vkCompileDeferredNV)(VkDevice device, VkPipeline pipeline, uint32_t shader);
17297
17298#ifndef VK_NO_PROTOTYPES
17299#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17300VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureNV(
17301 VkDevice device,
17302 const VkAccelerationStructureCreateInfoNV* pCreateInfo,
17303 const VkAllocationCallbacks* pAllocator,
17304 VkAccelerationStructureNV* pAccelerationStructure);
17305#endif
17306
17307#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17308VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureNV(
17309 VkDevice device,
17310 VkAccelerationStructureNV accelerationStructure,
17311 const VkAllocationCallbacks* pAllocator);
17312#endif
17313
17314#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17315VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureMemoryRequirementsNV(
17316 VkDevice device,
17317 const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo,
17318 VkMemoryRequirements2* pMemoryRequirements);
17319#endif
17320
17321#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17322VKAPI_ATTR VkResult VKAPI_CALL vkBindAccelerationStructureMemoryNV(
17323 VkDevice device,
17324 uint32_t bindInfoCount,
17325 const VkBindAccelerationStructureMemoryInfoNV* pBindInfos);
17326#endif
17327
17328#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17329VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructureNV(
17330 VkCommandBuffer commandBuffer,
17331 const VkAccelerationStructureInfoNV* pInfo,
17332 VkBuffer instanceData,
17333 VkDeviceSize instanceOffset,
17334 VkBool32 update,
17335 VkAccelerationStructureNV dst,
17336 VkAccelerationStructureNV src,
17337 VkBuffer scratch,
17338 VkDeviceSize scratchOffset);
17339#endif
17340
17341#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17342VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureNV(
17343 VkCommandBuffer commandBuffer,
17344 VkAccelerationStructureNV dst,
17345 VkAccelerationStructureNV src,
17346 VkCopyAccelerationStructureModeKHR mode);
17347#endif
17348
17349#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17350VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysNV(
17351 VkCommandBuffer commandBuffer,
17352 VkBuffer raygenShaderBindingTableBuffer,
17353 VkDeviceSize raygenShaderBindingOffset,
17354 VkBuffer missShaderBindingTableBuffer,
17355 VkDeviceSize missShaderBindingOffset,
17356 VkDeviceSize missShaderBindingStride,
17357 VkBuffer hitShaderBindingTableBuffer,
17358 VkDeviceSize hitShaderBindingOffset,
17359 VkDeviceSize hitShaderBindingStride,
17360 VkBuffer callableShaderBindingTableBuffer,
17361 VkDeviceSize callableShaderBindingOffset,
17362 VkDeviceSize callableShaderBindingStride,
17363 uint32_t width,
17364 uint32_t height,
17365 uint32_t depth);
17366#endif
17367
17368#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17369VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesNV(
17370 VkDevice device,
17371 VkPipelineCache pipelineCache,
17372 uint32_t createInfoCount,
17373 const VkRayTracingPipelineCreateInfoNV* pCreateInfos,
17374 const VkAllocationCallbacks* pAllocator,
17375 VkPipeline* pPipelines);
17376#endif
17377
17378#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17379VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesKHR(
17380 VkDevice device,
17381 VkPipeline pipeline,
17382 uint32_t firstGroup,
17383 uint32_t groupCount,
17384 size_t dataSize,
17385 void* pData);
17386#endif
17387
17388#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17389VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesNV(
17390 VkDevice device,
17391 VkPipeline pipeline,
17392 uint32_t firstGroup,
17393 uint32_t groupCount,
17394 size_t dataSize,
17395 void* pData);
17396#endif
17397
17398#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17399VKAPI_ATTR VkResult VKAPI_CALL vkGetAccelerationStructureHandleNV(
17400 VkDevice device,
17401 VkAccelerationStructureNV accelerationStructure,
17402 size_t dataSize,
17403 void* pData);
17404#endif
17405
17406#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17407VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructuresPropertiesNV(
17408 VkCommandBuffer commandBuffer,
17409 uint32_t accelerationStructureCount,
17410 const VkAccelerationStructureNV* pAccelerationStructures,
17411 VkQueryType queryType,
17412 VkQueryPool queryPool,
17413 uint32_t firstQuery);
17414#endif
17415
17416#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17417VKAPI_ATTR VkResult VKAPI_CALL vkCompileDeferredNV(
17418 VkDevice device,
17419 VkPipeline pipeline,
17420 uint32_t shader);
17421#endif
17422#endif
17423
17424
17425// VK_NV_representative_fragment_test is a preprocessor guard. Do not pass it to API calls.
17426#define VK_NV_representative_fragment_test 1
17427#define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION 2
17428#define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME "VK_NV_representative_fragment_test"
17429typedef struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV {
17430 VkStructureType sType;
17431 void* pNext;
17432 VkBool32 representativeFragmentTest;
17433} VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV;
17434
17435typedef struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV {
17436 VkStructureType sType;
17437 const void* pNext;
17438 VkBool32 representativeFragmentTestEnable;
17439} VkPipelineRepresentativeFragmentTestStateCreateInfoNV;
17440
17441
17442
17443// VK_EXT_filter_cubic is a preprocessor guard. Do not pass it to API calls.
17444#define VK_EXT_filter_cubic 1
17445#define VK_EXT_FILTER_CUBIC_SPEC_VERSION 3
17446#define VK_EXT_FILTER_CUBIC_EXTENSION_NAME "VK_EXT_filter_cubic"
17447typedef struct VkPhysicalDeviceImageViewImageFormatInfoEXT {
17448 VkStructureType sType;
17449 void* pNext;
17450 VkImageViewType imageViewType;
17451} VkPhysicalDeviceImageViewImageFormatInfoEXT;
17452
17453typedef struct VkFilterCubicImageViewImageFormatPropertiesEXT {
17454 VkStructureType sType;
17455 void* pNext;
17456 VkBool32 filterCubic;
17457 VkBool32 filterCubicMinmax;
17458} VkFilterCubicImageViewImageFormatPropertiesEXT;
17459
17460
17461
17462// VK_QCOM_render_pass_shader_resolve is a preprocessor guard. Do not pass it to API calls.
17463#define VK_QCOM_render_pass_shader_resolve 1
17464#define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_SPEC_VERSION 4
17465#define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_EXTENSION_NAME "VK_QCOM_render_pass_shader_resolve"
17466
17467
17468// VK_QCOM_cooperative_matrix_conversion is a preprocessor guard. Do not pass it to API calls.
17469#define VK_QCOM_cooperative_matrix_conversion 1
17470#define VK_QCOM_COOPERATIVE_MATRIX_CONVERSION_SPEC_VERSION 1
17471#define VK_QCOM_COOPERATIVE_MATRIX_CONVERSION_EXTENSION_NAME "VK_QCOM_cooperative_matrix_conversion"
17472typedef struct VkPhysicalDeviceCooperativeMatrixConversionFeaturesQCOM {
17473 VkStructureType sType;
17474 void* pNext;
17475 VkBool32 cooperativeMatrixConversion;
17476} VkPhysicalDeviceCooperativeMatrixConversionFeaturesQCOM;
17477
17478
17479
17480// VK_EXT_global_priority is a preprocessor guard. Do not pass it to API calls.
17481#define VK_EXT_global_priority 1
17482#define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 2
17483#define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority"
17484typedef VkQueueGlobalPriority VkQueueGlobalPriorityEXT;
17485
17486typedef VkDeviceQueueGlobalPriorityCreateInfo VkDeviceQueueGlobalPriorityCreateInfoEXT;
17487
17488
17489
17490// VK_EXT_external_memory_host is a preprocessor guard. Do not pass it to API calls.
17491#define VK_EXT_external_memory_host 1
17492#define VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION 1
17493#define VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME "VK_EXT_external_memory_host"
17494typedef struct VkImportMemoryHostPointerInfoEXT {
17495 VkStructureType sType;
17496 const void* pNext;
17497 VkExternalMemoryHandleTypeFlagBits handleType;
17498 void* pHostPointer;
17499} VkImportMemoryHostPointerInfoEXT;
17500
17501typedef struct VkMemoryHostPointerPropertiesEXT {
17502 VkStructureType sType;
17503 void* pNext;
17504 uint32_t memoryTypeBits;
17505} VkMemoryHostPointerPropertiesEXT;
17506
17507typedef struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT {
17508 VkStructureType sType;
17509 void* pNext;
17510 VkDeviceSize minImportedHostPointerAlignment;
17511} VkPhysicalDeviceExternalMemoryHostPropertiesEXT;
17512
17513typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryHostPointerPropertiesEXT)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties);
17514
17515#ifndef VK_NO_PROTOTYPES
17516#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17517VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryHostPointerPropertiesEXT(
17518 VkDevice device,
17519 VkExternalMemoryHandleTypeFlagBits handleType,
17520 const void* pHostPointer,
17521 VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties);
17522#endif
17523#endif
17524
17525
17526// VK_AMD_buffer_marker is a preprocessor guard. Do not pass it to API calls.
17527#define VK_AMD_buffer_marker 1
17528#define VK_AMD_BUFFER_MARKER_SPEC_VERSION 1
17529#define VK_AMD_BUFFER_MARKER_EXTENSION_NAME "VK_AMD_buffer_marker"
17530typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarkerAMD)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker);
17531typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarker2AMD)(VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker);
17532
17533#ifndef VK_NO_PROTOTYPES
17534#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17535VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarkerAMD(
17536 VkCommandBuffer commandBuffer,
17537 VkPipelineStageFlagBits pipelineStage,
17538 VkBuffer dstBuffer,
17539 VkDeviceSize dstOffset,
17540 uint32_t marker);
17541#endif
17542
17543#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17544VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarker2AMD(
17545 VkCommandBuffer commandBuffer,
17546 VkPipelineStageFlags2 stage,
17547 VkBuffer dstBuffer,
17548 VkDeviceSize dstOffset,
17549 uint32_t marker);
17550#endif
17551#endif
17552
17553
17554// VK_AMD_pipeline_compiler_control is a preprocessor guard. Do not pass it to API calls.
17555#define VK_AMD_pipeline_compiler_control 1
17556#define VK_AMD_PIPELINE_COMPILER_CONTROL_SPEC_VERSION 1
17557#define VK_AMD_PIPELINE_COMPILER_CONTROL_EXTENSION_NAME "VK_AMD_pipeline_compiler_control"
17558
17559typedef enum VkPipelineCompilerControlFlagBitsAMD {
17560 VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD = 0x7FFFFFFF
17561} VkPipelineCompilerControlFlagBitsAMD;
17562typedef VkFlags VkPipelineCompilerControlFlagsAMD;
17563typedef struct VkPipelineCompilerControlCreateInfoAMD {
17564 VkStructureType sType;
17565 const void* pNext;
17566 VkPipelineCompilerControlFlagsAMD compilerControlFlags;
17567} VkPipelineCompilerControlCreateInfoAMD;
17568
17569
17570
17571// VK_EXT_calibrated_timestamps is a preprocessor guard. Do not pass it to API calls.
17572#define VK_EXT_calibrated_timestamps 1
17573#define VK_EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION 2
17574#define VK_EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME "VK_EXT_calibrated_timestamps"
17575typedef VkTimeDomainKHR VkTimeDomainEXT;
17576
17577typedef VkCalibratedTimestampInfoKHR VkCalibratedTimestampInfoEXT;
17578
17579typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainKHR* pTimeDomains);
17580typedef VkResult (VKAPI_PTR *PFN_vkGetCalibratedTimestampsEXT)(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation);
17581
17582#ifndef VK_NO_PROTOTYPES
17583#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17584VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(
17585 VkPhysicalDevice physicalDevice,
17586 uint32_t* pTimeDomainCount,
17587 VkTimeDomainKHR* pTimeDomains);
17588#endif
17589
17590#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17591VKAPI_ATTR VkResult VKAPI_CALL vkGetCalibratedTimestampsEXT(
17592 VkDevice device,
17593 uint32_t timestampCount,
17594 const VkCalibratedTimestampInfoKHR* pTimestampInfos,
17595 uint64_t* pTimestamps,
17596 uint64_t* pMaxDeviation);
17597#endif
17598#endif
17599
17600
17601// VK_AMD_shader_core_properties is a preprocessor guard. Do not pass it to API calls.
17602#define VK_AMD_shader_core_properties 1
17603#define VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION 2
17604#define VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_AMD_shader_core_properties"
17605typedef struct VkPhysicalDeviceShaderCorePropertiesAMD {
17606 VkStructureType sType;
17607 void* pNext;
17608 uint32_t shaderEngineCount;
17609 uint32_t shaderArraysPerEngineCount;
17610 uint32_t computeUnitsPerShaderArray;
17611 uint32_t simdPerComputeUnit;
17612 uint32_t wavefrontsPerSimd;
17613 uint32_t wavefrontSize;
17614 uint32_t sgprsPerSimd;
17615 uint32_t minSgprAllocation;
17616 uint32_t maxSgprAllocation;
17617 uint32_t sgprAllocationGranularity;
17618 uint32_t vgprsPerSimd;
17619 uint32_t minVgprAllocation;
17620 uint32_t maxVgprAllocation;
17621 uint32_t vgprAllocationGranularity;
17622} VkPhysicalDeviceShaderCorePropertiesAMD;
17623
17624
17625
17626// VK_AMD_memory_overallocation_behavior is a preprocessor guard. Do not pass it to API calls.
17627#define VK_AMD_memory_overallocation_behavior 1
17628#define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_SPEC_VERSION 1
17629#define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_EXTENSION_NAME "VK_AMD_memory_overallocation_behavior"
17630
17631typedef enum VkMemoryOverallocationBehaviorAMD {
17632 VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0,
17633 VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1,
17634 VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2,
17635 VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 0x7FFFFFFF
17636} VkMemoryOverallocationBehaviorAMD;
17637typedef struct VkDeviceMemoryOverallocationCreateInfoAMD {
17638 VkStructureType sType;
17639 const void* pNext;
17640 VkMemoryOverallocationBehaviorAMD overallocationBehavior;
17641} VkDeviceMemoryOverallocationCreateInfoAMD;
17642
17643
17644
17645// VK_EXT_vertex_attribute_divisor is a preprocessor guard. Do not pass it to API calls.
17646#define VK_EXT_vertex_attribute_divisor 1
17647#define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 3
17648#define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_EXT_vertex_attribute_divisor"
17649typedef struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT {
17650 VkStructureType sType;
17651 void* pNext;
17652 uint32_t maxVertexAttribDivisor;
17653} VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT;
17654
17655typedef VkVertexInputBindingDivisorDescription VkVertexInputBindingDivisorDescriptionEXT;
17656
17657typedef VkPipelineVertexInputDivisorStateCreateInfo VkPipelineVertexInputDivisorStateCreateInfoEXT;
17658
17659typedef VkPhysicalDeviceVertexAttributeDivisorFeatures VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT;
17660
17661
17662
17663// VK_EXT_pipeline_creation_feedback is a preprocessor guard. Do not pass it to API calls.
17664#define VK_EXT_pipeline_creation_feedback 1
17665#define VK_EXT_PIPELINE_CREATION_FEEDBACK_SPEC_VERSION 1
17666#define VK_EXT_PIPELINE_CREATION_FEEDBACK_EXTENSION_NAME "VK_EXT_pipeline_creation_feedback"
17667typedef VkPipelineCreationFeedbackFlagBits VkPipelineCreationFeedbackFlagBitsEXT;
17668
17669typedef VkPipelineCreationFeedbackFlags VkPipelineCreationFeedbackFlagsEXT;
17670
17671typedef VkPipelineCreationFeedbackCreateInfo VkPipelineCreationFeedbackCreateInfoEXT;
17672
17673typedef VkPipelineCreationFeedback VkPipelineCreationFeedbackEXT;
17674
17675
17676
17677// VK_NV_shader_subgroup_partitioned is a preprocessor guard. Do not pass it to API calls.
17678#define VK_NV_shader_subgroup_partitioned 1
17679#define VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION 1
17680#define VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME "VK_NV_shader_subgroup_partitioned"
17681
17682
17683// VK_NV_compute_shader_derivatives is a preprocessor guard. Do not pass it to API calls.
17684#define VK_NV_compute_shader_derivatives 1
17685#define VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION 1
17686#define VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_NV_compute_shader_derivatives"
17687typedef VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR VkPhysicalDeviceComputeShaderDerivativesFeaturesNV;
17688
17689
17690
17691// VK_NV_mesh_shader is a preprocessor guard. Do not pass it to API calls.
17692#define VK_NV_mesh_shader 1
17693#define VK_NV_MESH_SHADER_SPEC_VERSION 1
17694#define VK_NV_MESH_SHADER_EXTENSION_NAME "VK_NV_mesh_shader"
17695typedef struct VkPhysicalDeviceMeshShaderFeaturesNV {
17696 VkStructureType sType;
17697 void* pNext;
17698 VkBool32 taskShader;
17699 VkBool32 meshShader;
17700} VkPhysicalDeviceMeshShaderFeaturesNV;
17701
17702typedef struct VkPhysicalDeviceMeshShaderPropertiesNV {
17703 VkStructureType sType;
17704 void* pNext;
17705 uint32_t maxDrawMeshTasksCount;
17706 uint32_t maxTaskWorkGroupInvocations;
17707 uint32_t maxTaskWorkGroupSize[3];
17708 uint32_t maxTaskTotalMemorySize;
17709 uint32_t maxTaskOutputCount;
17710 uint32_t maxMeshWorkGroupInvocations;
17711 uint32_t maxMeshWorkGroupSize[3];
17712 uint32_t maxMeshTotalMemorySize;
17713 uint32_t maxMeshOutputVertices;
17714 uint32_t maxMeshOutputPrimitives;
17715 uint32_t maxMeshMultiviewViewCount;
17716 uint32_t meshOutputPerVertexGranularity;
17717 uint32_t meshOutputPerPrimitiveGranularity;
17718} VkPhysicalDeviceMeshShaderPropertiesNV;
17719
17720typedef struct VkDrawMeshTasksIndirectCommandNV {
17721 uint32_t taskCount;
17722 uint32_t firstTask;
17723} VkDrawMeshTasksIndirectCommandNV;
17724
17725typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksNV)(VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask);
17726typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
17727typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectCountNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
17728
17729#ifndef VK_NO_PROTOTYPES
17730#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17731VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksNV(
17732 VkCommandBuffer commandBuffer,
17733 uint32_t taskCount,
17734 uint32_t firstTask);
17735#endif
17736
17737#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17738VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectNV(
17739 VkCommandBuffer commandBuffer,
17740 VkBuffer buffer,
17741 VkDeviceSize offset,
17742 uint32_t drawCount,
17743 uint32_t stride);
17744#endif
17745
17746#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17747VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectCountNV(
17748 VkCommandBuffer commandBuffer,
17749 VkBuffer buffer,
17750 VkDeviceSize offset,
17751 VkBuffer countBuffer,
17752 VkDeviceSize countBufferOffset,
17753 uint32_t maxDrawCount,
17754 uint32_t stride);
17755#endif
17756#endif
17757
17758
17759// VK_NV_fragment_shader_barycentric is a preprocessor guard. Do not pass it to API calls.
17760#define VK_NV_fragment_shader_barycentric 1
17761#define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1
17762#define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_NV_fragment_shader_barycentric"
17763typedef VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV;
17764
17765
17766
17767// VK_NV_shader_image_footprint is a preprocessor guard. Do not pass it to API calls.
17768#define VK_NV_shader_image_footprint 1
17769#define VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION 2
17770#define VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME "VK_NV_shader_image_footprint"
17771typedef struct VkPhysicalDeviceShaderImageFootprintFeaturesNV {
17772 VkStructureType sType;
17773 void* pNext;
17774 VkBool32 imageFootprint;
17775} VkPhysicalDeviceShaderImageFootprintFeaturesNV;
17776
17777
17778
17779// VK_NV_scissor_exclusive is a preprocessor guard. Do not pass it to API calls.
17780#define VK_NV_scissor_exclusive 1
17781#define VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION 2
17782#define VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME "VK_NV_scissor_exclusive"
17783typedef struct VkPipelineViewportExclusiveScissorStateCreateInfoNV {
17784 VkStructureType sType;
17785 const void* pNext;
17786 uint32_t exclusiveScissorCount;
17787 const VkRect2D* pExclusiveScissors;
17788} VkPipelineViewportExclusiveScissorStateCreateInfoNV;
17789
17790typedef struct VkPhysicalDeviceExclusiveScissorFeaturesNV {
17791 VkStructureType sType;
17792 void* pNext;
17793 VkBool32 exclusiveScissor;
17794} VkPhysicalDeviceExclusiveScissorFeaturesNV;
17795
17796typedef void (VKAPI_PTR *PFN_vkCmdSetExclusiveScissorEnableNV)(VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkBool32* pExclusiveScissorEnables);
17797typedef void (VKAPI_PTR *PFN_vkCmdSetExclusiveScissorNV)(VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors);
17798
17799#ifndef VK_NO_PROTOTYPES
17800#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17801VKAPI_ATTR void VKAPI_CALL vkCmdSetExclusiveScissorEnableNV(
17802 VkCommandBuffer commandBuffer,
17803 uint32_t firstExclusiveScissor,
17804 uint32_t exclusiveScissorCount,
17805 const VkBool32* pExclusiveScissorEnables);
17806#endif
17807
17808#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17809VKAPI_ATTR void VKAPI_CALL vkCmdSetExclusiveScissorNV(
17810 VkCommandBuffer commandBuffer,
17811 uint32_t firstExclusiveScissor,
17812 uint32_t exclusiveScissorCount,
17813 const VkRect2D* pExclusiveScissors);
17814#endif
17815#endif
17816
17817
17818// VK_NV_device_diagnostic_checkpoints is a preprocessor guard. Do not pass it to API calls.
17819#define VK_NV_device_diagnostic_checkpoints 1
17820#define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION 2
17821#define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME "VK_NV_device_diagnostic_checkpoints"
17822typedef struct VkQueueFamilyCheckpointPropertiesNV {
17823 VkStructureType sType;
17824 void* pNext;
17825 VkPipelineStageFlags checkpointExecutionStageMask;
17826} VkQueueFamilyCheckpointPropertiesNV;
17827
17828typedef struct VkCheckpointDataNV {
17829 VkStructureType sType;
17830 void* pNext;
17831 VkPipelineStageFlagBits stage;
17832 void* pCheckpointMarker;
17833} VkCheckpointDataNV;
17834
17835typedef struct VkQueueFamilyCheckpointProperties2NV {
17836 VkStructureType sType;
17837 void* pNext;
17838 VkPipelineStageFlags2 checkpointExecutionStageMask;
17839} VkQueueFamilyCheckpointProperties2NV;
17840
17841typedef struct VkCheckpointData2NV {
17842 VkStructureType sType;
17843 void* pNext;
17844 VkPipelineStageFlags2 stage;
17845 void* pCheckpointMarker;
17846} VkCheckpointData2NV;
17847
17848typedef void (VKAPI_PTR *PFN_vkCmdSetCheckpointNV)(VkCommandBuffer commandBuffer, const void* pCheckpointMarker);
17849typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointDataNV)(VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData);
17850typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointData2NV)(VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointData2NV* pCheckpointData);
17851
17852#ifndef VK_NO_PROTOTYPES
17853#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17854VKAPI_ATTR void VKAPI_CALL vkCmdSetCheckpointNV(
17855 VkCommandBuffer commandBuffer,
17856 const void* pCheckpointMarker);
17857#endif
17858
17859#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17860VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointDataNV(
17861 VkQueue queue,
17862 uint32_t* pCheckpointDataCount,
17863 VkCheckpointDataNV* pCheckpointData);
17864#endif
17865
17866#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17867VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointData2NV(
17868 VkQueue queue,
17869 uint32_t* pCheckpointDataCount,
17870 VkCheckpointData2NV* pCheckpointData);
17871#endif
17872#endif
17873
17874
17875// VK_EXT_present_timing is a preprocessor guard. Do not pass it to API calls.
17876#define VK_EXT_present_timing 1
17877#define VK_EXT_PRESENT_TIMING_SPEC_VERSION 3
17878#define VK_EXT_PRESENT_TIMING_EXTENSION_NAME "VK_EXT_present_timing"
17879
17880typedef enum VkPresentStageFlagBitsEXT {
17881 VK_PRESENT_STAGE_QUEUE_OPERATIONS_END_BIT_EXT = 0x00000001,
17882 VK_PRESENT_STAGE_REQUEST_DEQUEUED_BIT_EXT = 0x00000002,
17883 VK_PRESENT_STAGE_IMAGE_FIRST_PIXEL_OUT_BIT_EXT = 0x00000004,
17884 VK_PRESENT_STAGE_IMAGE_FIRST_PIXEL_VISIBLE_BIT_EXT = 0x00000008,
17885 VK_PRESENT_STAGE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
17886} VkPresentStageFlagBitsEXT;
17887typedef VkFlags VkPresentStageFlagsEXT;
17888
17889typedef enum VkPastPresentationTimingFlagBitsEXT {
17890 VK_PAST_PRESENTATION_TIMING_ALLOW_PARTIAL_RESULTS_BIT_EXT = 0x00000001,
17891 VK_PAST_PRESENTATION_TIMING_ALLOW_OUT_OF_ORDER_RESULTS_BIT_EXT = 0x00000002,
17892 VK_PAST_PRESENTATION_TIMING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
17893} VkPastPresentationTimingFlagBitsEXT;
17894typedef VkFlags VkPastPresentationTimingFlagsEXT;
17895
17896typedef enum VkPresentTimingInfoFlagBitsEXT {
17897 VK_PRESENT_TIMING_INFO_PRESENT_AT_RELATIVE_TIME_BIT_EXT = 0x00000001,
17898 VK_PRESENT_TIMING_INFO_PRESENT_AT_NEAREST_REFRESH_CYCLE_BIT_EXT = 0x00000002,
17899 VK_PRESENT_TIMING_INFO_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
17900} VkPresentTimingInfoFlagBitsEXT;
17901typedef VkFlags VkPresentTimingInfoFlagsEXT;
17902typedef struct VkPhysicalDevicePresentTimingFeaturesEXT {
17903 VkStructureType sType;
17904 void* pNext;
17905 VkBool32 presentTiming;
17906 VkBool32 presentAtAbsoluteTime;
17907 VkBool32 presentAtRelativeTime;
17908} VkPhysicalDevicePresentTimingFeaturesEXT;
17909
17910typedef struct VkPresentTimingSurfaceCapabilitiesEXT {
17911 VkStructureType sType;
17912 void* pNext;
17913 VkBool32 presentTimingSupported;
17914 VkBool32 presentAtAbsoluteTimeSupported;
17915 VkBool32 presentAtRelativeTimeSupported;
17916 VkPresentStageFlagsEXT presentStageQueries;
17917} VkPresentTimingSurfaceCapabilitiesEXT;
17918
17919typedef struct VkSwapchainCalibratedTimestampInfoEXT {
17920 VkStructureType sType;
17921 const void* pNext;
17922 VkSwapchainKHR swapchain;
17923 VkPresentStageFlagsEXT presentStage;
17924 uint64_t timeDomainId;
17925} VkSwapchainCalibratedTimestampInfoEXT;
17926
17927typedef struct VkSwapchainTimingPropertiesEXT {
17928 VkStructureType sType;
17929 void* pNext;
17930 uint64_t refreshDuration;
17931 uint64_t refreshInterval;
17932} VkSwapchainTimingPropertiesEXT;
17933
17934typedef struct VkSwapchainTimeDomainPropertiesEXT {
17935 VkStructureType sType;
17936 void* pNext;
17937 uint32_t timeDomainCount;
17938 VkTimeDomainKHR* pTimeDomains;
17939 uint64_t* pTimeDomainIds;
17940} VkSwapchainTimeDomainPropertiesEXT;
17941
17942typedef struct VkPastPresentationTimingInfoEXT {
17943 VkStructureType sType;
17944 const void* pNext;
17945 VkPastPresentationTimingFlagsEXT flags;
17946 VkSwapchainKHR swapchain;
17947} VkPastPresentationTimingInfoEXT;
17948
17949typedef struct VkPresentStageTimeEXT {
17950 VkPresentStageFlagsEXT stage;
17951 uint64_t time;
17952} VkPresentStageTimeEXT;
17953
17954typedef struct VkPastPresentationTimingEXT {
17955 VkStructureType sType;
17956 void* pNext;
17957 uint64_t presentId;
17958 uint64_t targetTime;
17959 uint32_t presentStageCount;
17960 VkPresentStageTimeEXT* pPresentStages;
17961 VkTimeDomainKHR timeDomain;
17962 uint64_t timeDomainId;
17963 VkBool32 reportComplete;
17964} VkPastPresentationTimingEXT;
17965
17966typedef struct VkPastPresentationTimingPropertiesEXT {
17967 VkStructureType sType;
17968 void* pNext;
17969 uint64_t timingPropertiesCounter;
17970 uint64_t timeDomainsCounter;
17971 uint32_t presentationTimingCount;
17972 VkPastPresentationTimingEXT* pPresentationTimings;
17973} VkPastPresentationTimingPropertiesEXT;
17974
17975typedef struct VkPresentTimingInfoEXT {
17976 VkStructureType sType;
17977 const void* pNext;
17978 VkPresentTimingInfoFlagsEXT flags;
17979 uint64_t targetTime;
17980 uint64_t timeDomainId;
17981 VkPresentStageFlagsEXT presentStageQueries;
17982 VkPresentStageFlagsEXT targetTimeDomainPresentStage;
17983} VkPresentTimingInfoEXT;
17984
17985typedef struct VkPresentTimingsInfoEXT {
17986 VkStructureType sType;
17987 const void* pNext;
17988 uint32_t swapchainCount;
17989 const VkPresentTimingInfoEXT* pTimingInfos;
17990} VkPresentTimingsInfoEXT;
17991
17992typedef VkResult (VKAPI_PTR *PFN_vkSetSwapchainPresentTimingQueueSizeEXT)(VkDevice device, VkSwapchainKHR swapchain, uint32_t size);
17993typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainTimingPropertiesEXT)(VkDevice device, VkSwapchainKHR swapchain, VkSwapchainTimingPropertiesEXT* pSwapchainTimingProperties, uint64_t* pSwapchainTimingPropertiesCounter);
17994typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainTimeDomainPropertiesEXT)(VkDevice device, VkSwapchainKHR swapchain, VkSwapchainTimeDomainPropertiesEXT* pSwapchainTimeDomainProperties, uint64_t* pTimeDomainsCounter);
17995typedef VkResult (VKAPI_PTR *PFN_vkGetPastPresentationTimingEXT)(VkDevice device, const VkPastPresentationTimingInfoEXT* pPastPresentationTimingInfo, VkPastPresentationTimingPropertiesEXT* pPastPresentationTimingProperties);
17996
17997#ifndef VK_NO_PROTOTYPES
17998#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17999VKAPI_ATTR VkResult VKAPI_CALL vkSetSwapchainPresentTimingQueueSizeEXT(
18000 VkDevice device,
18001 VkSwapchainKHR swapchain,
18002 uint32_t size);
18003#endif
18004
18005#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18006VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainTimingPropertiesEXT(
18007 VkDevice device,
18008 VkSwapchainKHR swapchain,
18009 VkSwapchainTimingPropertiesEXT* pSwapchainTimingProperties,
18010 uint64_t* pSwapchainTimingPropertiesCounter);
18011#endif
18012
18013#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18014VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainTimeDomainPropertiesEXT(
18015 VkDevice device,
18016 VkSwapchainKHR swapchain,
18017 VkSwapchainTimeDomainPropertiesEXT* pSwapchainTimeDomainProperties,
18018 uint64_t* pTimeDomainsCounter);
18019#endif
18020
18021#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18022VKAPI_ATTR VkResult VKAPI_CALL vkGetPastPresentationTimingEXT(
18023 VkDevice device,
18024 const VkPastPresentationTimingInfoEXT* pPastPresentationTimingInfo,
18025 VkPastPresentationTimingPropertiesEXT* pPastPresentationTimingProperties);
18026#endif
18027#endif
18028
18029
18030// VK_INTEL_shader_integer_functions2 is a preprocessor guard. Do not pass it to API calls.
18031#define VK_INTEL_shader_integer_functions2 1
18032#define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION 1
18033#define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME "VK_INTEL_shader_integer_functions2"
18034typedef struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL {
18035 VkStructureType sType;
18036 void* pNext;
18037 VkBool32 shaderIntegerFunctions2;
18038} VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
18039
18040
18041
18042// VK_INTEL_performance_query is a preprocessor guard. Do not pass it to API calls.
18043#define VK_INTEL_performance_query 1
18044VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPerformanceConfigurationINTEL)
18045#define VK_INTEL_PERFORMANCE_QUERY_SPEC_VERSION 2
18046#define VK_INTEL_PERFORMANCE_QUERY_EXTENSION_NAME "VK_INTEL_performance_query"
18047
18048typedef enum VkPerformanceConfigurationTypeINTEL {
18049 VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0,
18050 VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
18051} VkPerformanceConfigurationTypeINTEL;
18052
18053typedef enum VkQueryPoolSamplingModeINTEL {
18054 VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0,
18055 VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 0x7FFFFFFF
18056} VkQueryPoolSamplingModeINTEL;
18057
18058typedef enum VkPerformanceOverrideTypeINTEL {
18059 VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0,
18060 VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1,
18061 VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
18062} VkPerformanceOverrideTypeINTEL;
18063
18064typedef enum VkPerformanceParameterTypeINTEL {
18065 VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0,
18066 VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1,
18067 VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
18068} VkPerformanceParameterTypeINTEL;
18069
18070typedef enum VkPerformanceValueTypeINTEL {
18071 VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0,
18072 VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1,
18073 VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2,
18074 VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3,
18075 VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4,
18076 VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
18077} VkPerformanceValueTypeINTEL;
18078typedef union VkPerformanceValueDataINTEL {
18079 uint32_t value32;
18080 uint64_t value64;
18081 float valueFloat;
18082 VkBool32 valueBool;
18083 const char* valueString;
18084} VkPerformanceValueDataINTEL;
18085
18086typedef struct VkPerformanceValueINTEL {
18087 VkPerformanceValueTypeINTEL type;
18088 VkPerformanceValueDataINTEL data;
18089} VkPerformanceValueINTEL;
18090
18091typedef struct VkInitializePerformanceApiInfoINTEL {
18092 VkStructureType sType;
18093 const void* pNext;
18094 void* pUserData;
18095} VkInitializePerformanceApiInfoINTEL;
18096
18097typedef struct VkQueryPoolPerformanceQueryCreateInfoINTEL {
18098 VkStructureType sType;
18099 const void* pNext;
18100 VkQueryPoolSamplingModeINTEL performanceCountersSampling;
18101} VkQueryPoolPerformanceQueryCreateInfoINTEL;
18102
18103typedef VkQueryPoolPerformanceQueryCreateInfoINTEL VkQueryPoolCreateInfoINTEL;
18104
18105typedef struct VkPerformanceMarkerInfoINTEL {
18106 VkStructureType sType;
18107 const void* pNext;
18108 uint64_t marker;
18109} VkPerformanceMarkerInfoINTEL;
18110
18111typedef struct VkPerformanceStreamMarkerInfoINTEL {
18112 VkStructureType sType;
18113 const void* pNext;
18114 uint32_t marker;
18115} VkPerformanceStreamMarkerInfoINTEL;
18116
18117typedef struct VkPerformanceOverrideInfoINTEL {
18118 VkStructureType sType;
18119 const void* pNext;
18120 VkPerformanceOverrideTypeINTEL type;
18121 VkBool32 enable;
18122 uint64_t parameter;
18123} VkPerformanceOverrideInfoINTEL;
18124
18125typedef struct VkPerformanceConfigurationAcquireInfoINTEL {
18126 VkStructureType sType;
18127 const void* pNext;
18128 VkPerformanceConfigurationTypeINTEL type;
18129} VkPerformanceConfigurationAcquireInfoINTEL;
18130
18131typedef VkResult (VKAPI_PTR *PFN_vkInitializePerformanceApiINTEL)(VkDevice device, const VkInitializePerformanceApiInfoINTEL* pInitializeInfo);
18132typedef void (VKAPI_PTR *PFN_vkUninitializePerformanceApiINTEL)(VkDevice device);
18133typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceMarkerINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceMarkerInfoINTEL* pMarkerInfo);
18134typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceStreamMarkerINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo);
18135typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceOverrideINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceOverrideInfoINTEL* pOverrideInfo);
18136typedef VkResult (VKAPI_PTR *PFN_vkAcquirePerformanceConfigurationINTEL)(VkDevice device, const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, VkPerformanceConfigurationINTEL* pConfiguration);
18137typedef VkResult (VKAPI_PTR *PFN_vkReleasePerformanceConfigurationINTEL)(VkDevice device, VkPerformanceConfigurationINTEL configuration);
18138typedef VkResult (VKAPI_PTR *PFN_vkQueueSetPerformanceConfigurationINTEL)(VkQueue queue, VkPerformanceConfigurationINTEL configuration);
18139typedef VkResult (VKAPI_PTR *PFN_vkGetPerformanceParameterINTEL)(VkDevice device, VkPerformanceParameterTypeINTEL parameter, VkPerformanceValueINTEL* pValue);
18140
18141#ifndef VK_NO_PROTOTYPES
18142#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18143VKAPI_ATTR VkResult VKAPI_CALL vkInitializePerformanceApiINTEL(
18144 VkDevice device,
18145 const VkInitializePerformanceApiInfoINTEL* pInitializeInfo);
18146#endif
18147
18148#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18149VKAPI_ATTR void VKAPI_CALL vkUninitializePerformanceApiINTEL(
18150 VkDevice device);
18151#endif
18152
18153#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18154VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceMarkerINTEL(
18155 VkCommandBuffer commandBuffer,
18156 const VkPerformanceMarkerInfoINTEL* pMarkerInfo);
18157#endif
18158
18159#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18160VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceStreamMarkerINTEL(
18161 VkCommandBuffer commandBuffer,
18162 const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo);
18163#endif
18164
18165#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18166VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceOverrideINTEL(
18167 VkCommandBuffer commandBuffer,
18168 const VkPerformanceOverrideInfoINTEL* pOverrideInfo);
18169#endif
18170
18171#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18172VKAPI_ATTR VkResult VKAPI_CALL vkAcquirePerformanceConfigurationINTEL(
18173 VkDevice device,
18174 const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo,
18175 VkPerformanceConfigurationINTEL* pConfiguration);
18176#endif
18177
18178#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18179VKAPI_ATTR VkResult VKAPI_CALL vkReleasePerformanceConfigurationINTEL(
18180 VkDevice device,
18181 VkPerformanceConfigurationINTEL configuration);
18182#endif
18183
18184#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18185VKAPI_ATTR VkResult VKAPI_CALL vkQueueSetPerformanceConfigurationINTEL(
18186 VkQueue queue,
18187 VkPerformanceConfigurationINTEL configuration);
18188#endif
18189
18190#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18191VKAPI_ATTR VkResult VKAPI_CALL vkGetPerformanceParameterINTEL(
18192 VkDevice device,
18193 VkPerformanceParameterTypeINTEL parameter,
18194 VkPerformanceValueINTEL* pValue);
18195#endif
18196#endif
18197
18198
18199// VK_EXT_pci_bus_info is a preprocessor guard. Do not pass it to API calls.
18200#define VK_EXT_pci_bus_info 1
18201#define VK_EXT_PCI_BUS_INFO_SPEC_VERSION 2
18202#define VK_EXT_PCI_BUS_INFO_EXTENSION_NAME "VK_EXT_pci_bus_info"
18203typedef struct VkPhysicalDevicePCIBusInfoPropertiesEXT {
18204 VkStructureType sType;
18205 void* pNext;
18206 uint32_t pciDomain;
18207 uint32_t pciBus;
18208 uint32_t pciDevice;
18209 uint32_t pciFunction;
18210} VkPhysicalDevicePCIBusInfoPropertiesEXT;
18211
18212
18213
18214// VK_AMD_display_native_hdr is a preprocessor guard. Do not pass it to API calls.
18215#define VK_AMD_display_native_hdr 1
18216#define VK_AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION 1
18217#define VK_AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME "VK_AMD_display_native_hdr"
18218typedef struct VkDisplayNativeHdrSurfaceCapabilitiesAMD {
18219 VkStructureType sType;
18220 void* pNext;
18221 VkBool32 localDimmingSupport;
18222} VkDisplayNativeHdrSurfaceCapabilitiesAMD;
18223
18224typedef struct VkSwapchainDisplayNativeHdrCreateInfoAMD {
18225 VkStructureType sType;
18226 const void* pNext;
18227 VkBool32 localDimmingEnable;
18228} VkSwapchainDisplayNativeHdrCreateInfoAMD;
18229
18230typedef void (VKAPI_PTR *PFN_vkSetLocalDimmingAMD)(VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable);
18231
18232#ifndef VK_NO_PROTOTYPES
18233#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18234VKAPI_ATTR void VKAPI_CALL vkSetLocalDimmingAMD(
18235 VkDevice device,
18236 VkSwapchainKHR swapChain,
18237 VkBool32 localDimmingEnable);
18238#endif
18239#endif
18240
18241
18242// VK_EXT_fragment_density_map is a preprocessor guard. Do not pass it to API calls.
18243#define VK_EXT_fragment_density_map 1
18244#define VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION 3
18245#define VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME "VK_EXT_fragment_density_map"
18246typedef struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT {
18247 VkStructureType sType;
18248 void* pNext;
18249 VkBool32 fragmentDensityMap;
18250 VkBool32 fragmentDensityMapDynamic;
18251 VkBool32 fragmentDensityMapNonSubsampledImages;
18252} VkPhysicalDeviceFragmentDensityMapFeaturesEXT;
18253
18254typedef struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT {
18255 VkStructureType sType;
18256 void* pNext;
18257 VkExtent2D minFragmentDensityTexelSize;
18258 VkExtent2D maxFragmentDensityTexelSize;
18259 VkBool32 fragmentDensityInvocations;
18260} VkPhysicalDeviceFragmentDensityMapPropertiesEXT;
18261
18262typedef struct VkRenderPassFragmentDensityMapCreateInfoEXT {
18263 VkStructureType sType;
18264 const void* pNext;
18265 VkAttachmentReference fragmentDensityMapAttachment;
18266} VkRenderPassFragmentDensityMapCreateInfoEXT;
18267
18268typedef struct VkRenderingFragmentDensityMapAttachmentInfoEXT {
18269 VkStructureType sType;
18270 const void* pNext;
18271 VkImageView imageView;
18272 VkImageLayout imageLayout;
18273} VkRenderingFragmentDensityMapAttachmentInfoEXT;
18274
18275
18276
18277// VK_EXT_scalar_block_layout is a preprocessor guard. Do not pass it to API calls.
18278#define VK_EXT_scalar_block_layout 1
18279#define VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION 1
18280#define VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME "VK_EXT_scalar_block_layout"
18281typedef VkPhysicalDeviceScalarBlockLayoutFeatures VkPhysicalDeviceScalarBlockLayoutFeaturesEXT;
18282
18283
18284
18285// VK_GOOGLE_hlsl_functionality1 is a preprocessor guard. Do not pass it to API calls.
18286#define VK_GOOGLE_hlsl_functionality1 1
18287#define VK_GOOGLE_HLSL_FUNCTIONALITY_1_SPEC_VERSION 1
18288#define VK_GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME "VK_GOOGLE_hlsl_functionality1"
18289// VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION is a legacy alias
18290#define VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION VK_GOOGLE_HLSL_FUNCTIONALITY_1_SPEC_VERSION
18291// VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME is a legacy alias
18292#define VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME VK_GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME
18293
18294
18295// VK_GOOGLE_decorate_string is a preprocessor guard. Do not pass it to API calls.
18296#define VK_GOOGLE_decorate_string 1
18297#define VK_GOOGLE_DECORATE_STRING_SPEC_VERSION 1
18298#define VK_GOOGLE_DECORATE_STRING_EXTENSION_NAME "VK_GOOGLE_decorate_string"
18299
18300
18301// VK_EXT_subgroup_size_control is a preprocessor guard. Do not pass it to API calls.
18302#define VK_EXT_subgroup_size_control 1
18303#define VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION 2
18304#define VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME "VK_EXT_subgroup_size_control"
18305typedef VkPhysicalDeviceSubgroupSizeControlFeatures VkPhysicalDeviceSubgroupSizeControlFeaturesEXT;
18306
18307typedef VkPhysicalDeviceSubgroupSizeControlProperties VkPhysicalDeviceSubgroupSizeControlPropertiesEXT;
18308
18309typedef VkPipelineShaderStageRequiredSubgroupSizeCreateInfo VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT;
18310
18311
18312
18313// VK_AMD_shader_core_properties2 is a preprocessor guard. Do not pass it to API calls.
18314#define VK_AMD_shader_core_properties2 1
18315#define VK_AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION 1
18316#define VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME "VK_AMD_shader_core_properties2"
18317
18318typedef enum VkShaderCorePropertiesFlagBitsAMD {
18319 VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD = 0x7FFFFFFF
18320} VkShaderCorePropertiesFlagBitsAMD;
18321typedef VkFlags VkShaderCorePropertiesFlagsAMD;
18322typedef struct VkPhysicalDeviceShaderCoreProperties2AMD {
18323 VkStructureType sType;
18324 void* pNext;
18325 VkShaderCorePropertiesFlagsAMD shaderCoreFeatures;
18326 uint32_t activeComputeUnitCount;
18327} VkPhysicalDeviceShaderCoreProperties2AMD;
18328
18329
18330
18331// VK_AMD_device_coherent_memory is a preprocessor guard. Do not pass it to API calls.
18332#define VK_AMD_device_coherent_memory 1
18333#define VK_AMD_DEVICE_COHERENT_MEMORY_SPEC_VERSION 1
18334#define VK_AMD_DEVICE_COHERENT_MEMORY_EXTENSION_NAME "VK_AMD_device_coherent_memory"
18335typedef struct VkPhysicalDeviceCoherentMemoryFeaturesAMD {
18336 VkStructureType sType;
18337 void* pNext;
18338 VkBool32 deviceCoherentMemory;
18339} VkPhysicalDeviceCoherentMemoryFeaturesAMD;
18340
18341
18342
18343// VK_EXT_shader_image_atomic_int64 is a preprocessor guard. Do not pass it to API calls.
18344#define VK_EXT_shader_image_atomic_int64 1
18345#define VK_EXT_SHADER_IMAGE_ATOMIC_INT64_SPEC_VERSION 1
18346#define VK_EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME "VK_EXT_shader_image_atomic_int64"
18347typedef struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT {
18348 VkStructureType sType;
18349 void* pNext;
18350 VkBool32 shaderImageInt64Atomics;
18351 VkBool32 sparseImageInt64Atomics;
18352} VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT;
18353
18354
18355
18356// VK_EXT_memory_budget is a preprocessor guard. Do not pass it to API calls.
18357#define VK_EXT_memory_budget 1
18358#define VK_EXT_MEMORY_BUDGET_SPEC_VERSION 1
18359#define VK_EXT_MEMORY_BUDGET_EXTENSION_NAME "VK_EXT_memory_budget"
18360typedef struct VkPhysicalDeviceMemoryBudgetPropertiesEXT {
18361 VkStructureType sType;
18362 void* pNext;
18363 VkDeviceSize heapBudget[VK_MAX_MEMORY_HEAPS];
18364 VkDeviceSize heapUsage[VK_MAX_MEMORY_HEAPS];
18365} VkPhysicalDeviceMemoryBudgetPropertiesEXT;
18366
18367
18368
18369// VK_EXT_memory_priority is a preprocessor guard. Do not pass it to API calls.
18370#define VK_EXT_memory_priority 1
18371#define VK_EXT_MEMORY_PRIORITY_SPEC_VERSION 1
18372#define VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME "VK_EXT_memory_priority"
18373typedef struct VkPhysicalDeviceMemoryPriorityFeaturesEXT {
18374 VkStructureType sType;
18375 void* pNext;
18376 VkBool32 memoryPriority;
18377} VkPhysicalDeviceMemoryPriorityFeaturesEXT;
18378
18379typedef struct VkMemoryPriorityAllocateInfoEXT {
18380 VkStructureType sType;
18381 const void* pNext;
18382 float priority;
18383} VkMemoryPriorityAllocateInfoEXT;
18384
18385
18386
18387// VK_NV_dedicated_allocation_image_aliasing is a preprocessor guard. Do not pass it to API calls.
18388#define VK_NV_dedicated_allocation_image_aliasing 1
18389#define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION 1
18390#define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME "VK_NV_dedicated_allocation_image_aliasing"
18391typedef struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV {
18392 VkStructureType sType;
18393 void* pNext;
18394 VkBool32 dedicatedAllocationImageAliasing;
18395} VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
18396
18397
18398
18399// VK_EXT_buffer_device_address is a preprocessor guard. Do not pass it to API calls.
18400#define VK_EXT_buffer_device_address 1
18401#define VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 2
18402#define VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_EXT_buffer_device_address"
18403typedef struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT {
18404 VkStructureType sType;
18405 void* pNext;
18406 VkBool32 bufferDeviceAddress;
18407 VkBool32 bufferDeviceAddressCaptureReplay;
18408 VkBool32 bufferDeviceAddressMultiDevice;
18409} VkPhysicalDeviceBufferDeviceAddressFeaturesEXT;
18410
18411typedef VkPhysicalDeviceBufferDeviceAddressFeaturesEXT VkPhysicalDeviceBufferAddressFeaturesEXT;
18412
18413typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoEXT;
18414
18415typedef struct VkBufferDeviceAddressCreateInfoEXT {
18416 VkStructureType sType;
18417 const void* pNext;
18418 VkDeviceAddress deviceAddress;
18419} VkBufferDeviceAddressCreateInfoEXT;
18420
18421typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddressEXT)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
18422
18423#ifndef VK_NO_PROTOTYPES
18424#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18425VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddressEXT(
18426 VkDevice device,
18427 const VkBufferDeviceAddressInfo* pInfo);
18428#endif
18429#endif
18430
18431
18432// VK_EXT_tooling_info is a preprocessor guard. Do not pass it to API calls.
18433#define VK_EXT_tooling_info 1
18434#define VK_EXT_TOOLING_INFO_SPEC_VERSION 1
18435#define VK_EXT_TOOLING_INFO_EXTENSION_NAME "VK_EXT_tooling_info"
18436typedef VkToolPurposeFlagBits VkToolPurposeFlagBitsEXT;
18437
18438typedef VkToolPurposeFlags VkToolPurposeFlagsEXT;
18439
18440typedef VkPhysicalDeviceToolProperties VkPhysicalDeviceToolPropertiesEXT;
18441
18442typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceToolPropertiesEXT)(VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties);
18443
18444#ifndef VK_NO_PROTOTYPES
18445#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18446VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceToolPropertiesEXT(
18447 VkPhysicalDevice physicalDevice,
18448 uint32_t* pToolCount,
18449 VkPhysicalDeviceToolProperties* pToolProperties);
18450#endif
18451#endif
18452
18453
18454// VK_EXT_separate_stencil_usage is a preprocessor guard. Do not pass it to API calls.
18455#define VK_EXT_separate_stencil_usage 1
18456#define VK_EXT_SEPARATE_STENCIL_USAGE_SPEC_VERSION 1
18457#define VK_EXT_SEPARATE_STENCIL_USAGE_EXTENSION_NAME "VK_EXT_separate_stencil_usage"
18458typedef VkImageStencilUsageCreateInfo VkImageStencilUsageCreateInfoEXT;
18459
18460
18461
18462// VK_EXT_validation_features is a preprocessor guard. Do not pass it to API calls.
18463#define VK_EXT_validation_features 1
18464#define VK_EXT_VALIDATION_FEATURES_SPEC_VERSION 6
18465#define VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME "VK_EXT_validation_features"
18466
18467typedef enum VkValidationFeatureEnableEXT {
18468 VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0,
18469 VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1,
18470 VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2,
18471 VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3,
18472 VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4,
18473 VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 0x7FFFFFFF
18474} VkValidationFeatureEnableEXT;
18475
18476typedef enum VkValidationFeatureDisableEXT {
18477 VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0,
18478 VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1,
18479 VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2,
18480 VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3,
18481 VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4,
18482 VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5,
18483 VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6,
18484 VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7,
18485 VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 0x7FFFFFFF
18486} VkValidationFeatureDisableEXT;
18487typedef struct VkValidationFeaturesEXT {
18488 VkStructureType sType;
18489 const void* pNext;
18490 uint32_t enabledValidationFeatureCount;
18491 const VkValidationFeatureEnableEXT* pEnabledValidationFeatures;
18492 uint32_t disabledValidationFeatureCount;
18493 const VkValidationFeatureDisableEXT* pDisabledValidationFeatures;
18494} VkValidationFeaturesEXT;
18495
18496
18497
18498// VK_NV_cooperative_matrix is a preprocessor guard. Do not pass it to API calls.
18499#define VK_NV_cooperative_matrix 1
18500#define VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION 1
18501#define VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_NV_cooperative_matrix"
18502typedef VkComponentTypeKHR VkComponentTypeNV;
18503
18504typedef VkScopeKHR VkScopeNV;
18505
18506typedef struct VkCooperativeMatrixPropertiesNV {
18507 VkStructureType sType;
18508 void* pNext;
18509 uint32_t MSize;
18510 uint32_t NSize;
18511 uint32_t KSize;
18512 VkComponentTypeNV AType;
18513 VkComponentTypeNV BType;
18514 VkComponentTypeNV CType;
18515 VkComponentTypeNV DType;
18516 VkScopeNV scope;
18517} VkCooperativeMatrixPropertiesNV;
18518
18519typedef struct VkPhysicalDeviceCooperativeMatrixFeaturesNV {
18520 VkStructureType sType;
18521 void* pNext;
18522 VkBool32 cooperativeMatrix;
18523 VkBool32 cooperativeMatrixRobustBufferAccess;
18524} VkPhysicalDeviceCooperativeMatrixFeaturesNV;
18525
18526typedef struct VkPhysicalDeviceCooperativeMatrixPropertiesNV {
18527 VkStructureType sType;
18528 void* pNext;
18529 VkShaderStageFlags cooperativeMatrixSupportedStages;
18530} VkPhysicalDeviceCooperativeMatrixPropertiesNV;
18531
18532typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties);
18533
18534#ifndef VK_NO_PROTOTYPES
18535#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18536VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(
18537 VkPhysicalDevice physicalDevice,
18538 uint32_t* pPropertyCount,
18539 VkCooperativeMatrixPropertiesNV* pProperties);
18540#endif
18541#endif
18542
18543
18544// VK_NV_coverage_reduction_mode is a preprocessor guard. Do not pass it to API calls.
18545#define VK_NV_coverage_reduction_mode 1
18546#define VK_NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION 1
18547#define VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME "VK_NV_coverage_reduction_mode"
18548
18549typedef enum VkCoverageReductionModeNV {
18550 VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0,
18551 VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1,
18552 VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 0x7FFFFFFF
18553} VkCoverageReductionModeNV;
18554typedef VkFlags VkPipelineCoverageReductionStateCreateFlagsNV;
18555typedef struct VkPhysicalDeviceCoverageReductionModeFeaturesNV {
18556 VkStructureType sType;
18557 void* pNext;
18558 VkBool32 coverageReductionMode;
18559} VkPhysicalDeviceCoverageReductionModeFeaturesNV;
18560
18561typedef struct VkPipelineCoverageReductionStateCreateInfoNV {
18562 VkStructureType sType;
18563 const void* pNext;
18564 VkPipelineCoverageReductionStateCreateFlagsNV flags;
18565 VkCoverageReductionModeNV coverageReductionMode;
18566} VkPipelineCoverageReductionStateCreateInfoNV;
18567
18568typedef struct VkFramebufferMixedSamplesCombinationNV {
18569 VkStructureType sType;
18570 void* pNext;
18571 VkCoverageReductionModeNV coverageReductionMode;
18572 VkSampleCountFlagBits rasterizationSamples;
18573 VkSampleCountFlags depthStencilSamples;
18574 VkSampleCountFlags colorSamples;
18575} VkFramebufferMixedSamplesCombinationNV;
18576
18577typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV)(VkPhysicalDevice physicalDevice, uint32_t* pCombinationCount, VkFramebufferMixedSamplesCombinationNV* pCombinations);
18578
18579#ifndef VK_NO_PROTOTYPES
18580#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18581VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
18582 VkPhysicalDevice physicalDevice,
18583 uint32_t* pCombinationCount,
18584 VkFramebufferMixedSamplesCombinationNV* pCombinations);
18585#endif
18586#endif
18587
18588
18589// VK_EXT_fragment_shader_interlock is a preprocessor guard. Do not pass it to API calls.
18590#define VK_EXT_fragment_shader_interlock 1
18591#define VK_EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION 1
18592#define VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME "VK_EXT_fragment_shader_interlock"
18593typedef struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT {
18594 VkStructureType sType;
18595 void* pNext;
18596 VkBool32 fragmentShaderSampleInterlock;
18597 VkBool32 fragmentShaderPixelInterlock;
18598 VkBool32 fragmentShaderShadingRateInterlock;
18599} VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT;
18600
18601
18602
18603// VK_EXT_ycbcr_image_arrays is a preprocessor guard. Do not pass it to API calls.
18604#define VK_EXT_ycbcr_image_arrays 1
18605#define VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION 1
18606#define VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME "VK_EXT_ycbcr_image_arrays"
18607typedef struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT {
18608 VkStructureType sType;
18609 void* pNext;
18610 VkBool32 ycbcrImageArrays;
18611} VkPhysicalDeviceYcbcrImageArraysFeaturesEXT;
18612
18613
18614
18615// VK_EXT_provoking_vertex is a preprocessor guard. Do not pass it to API calls.
18616#define VK_EXT_provoking_vertex 1
18617#define VK_EXT_PROVOKING_VERTEX_SPEC_VERSION 1
18618#define VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME "VK_EXT_provoking_vertex"
18619
18620typedef enum VkProvokingVertexModeEXT {
18621 VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = 0,
18622 VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = 1,
18623 VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
18624} VkProvokingVertexModeEXT;
18625typedef struct VkPhysicalDeviceProvokingVertexFeaturesEXT {
18626 VkStructureType sType;
18627 void* pNext;
18628 VkBool32 provokingVertexLast;
18629 VkBool32 transformFeedbackPreservesProvokingVertex;
18630} VkPhysicalDeviceProvokingVertexFeaturesEXT;
18631
18632typedef struct VkPhysicalDeviceProvokingVertexPropertiesEXT {
18633 VkStructureType sType;
18634 void* pNext;
18635 VkBool32 provokingVertexModePerPipeline;
18636 VkBool32 transformFeedbackPreservesTriangleFanProvokingVertex;
18637} VkPhysicalDeviceProvokingVertexPropertiesEXT;
18638
18639typedef struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT {
18640 VkStructureType sType;
18641 const void* pNext;
18642 VkProvokingVertexModeEXT provokingVertexMode;
18643} VkPipelineRasterizationProvokingVertexStateCreateInfoEXT;
18644
18645
18646
18647// VK_EXT_headless_surface is a preprocessor guard. Do not pass it to API calls.
18648#define VK_EXT_headless_surface 1
18649#define VK_EXT_HEADLESS_SURFACE_SPEC_VERSION 1
18650#define VK_EXT_HEADLESS_SURFACE_EXTENSION_NAME "VK_EXT_headless_surface"
18651typedef VkFlags VkHeadlessSurfaceCreateFlagsEXT;
18652typedef struct VkHeadlessSurfaceCreateInfoEXT {
18653 VkStructureType sType;
18654 const void* pNext;
18655 VkHeadlessSurfaceCreateFlagsEXT flags;
18656} VkHeadlessSurfaceCreateInfoEXT;
18657
18658typedef VkResult (VKAPI_PTR *PFN_vkCreateHeadlessSurfaceEXT)(VkInstance instance, const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
18659
18660#ifndef VK_NO_PROTOTYPES
18661#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18662VKAPI_ATTR VkResult VKAPI_CALL vkCreateHeadlessSurfaceEXT(
18663 VkInstance instance,
18664 const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo,
18665 const VkAllocationCallbacks* pAllocator,
18666 VkSurfaceKHR* pSurface);
18667#endif
18668#endif
18669
18670
18671// VK_EXT_line_rasterization is a preprocessor guard. Do not pass it to API calls.
18672#define VK_EXT_line_rasterization 1
18673#define VK_EXT_LINE_RASTERIZATION_SPEC_VERSION 1
18674#define VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME "VK_EXT_line_rasterization"
18675typedef VkLineRasterizationMode VkLineRasterizationModeEXT;
18676
18677typedef VkPhysicalDeviceLineRasterizationFeatures VkPhysicalDeviceLineRasterizationFeaturesEXT;
18678
18679typedef VkPhysicalDeviceLineRasterizationProperties VkPhysicalDeviceLineRasterizationPropertiesEXT;
18680
18681typedef VkPipelineRasterizationLineStateCreateInfo VkPipelineRasterizationLineStateCreateInfoEXT;
18682
18683typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleEXT)(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern);
18684
18685#ifndef VK_NO_PROTOTYPES
18686#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18687VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleEXT(
18688 VkCommandBuffer commandBuffer,
18689 uint32_t lineStippleFactor,
18690 uint16_t lineStipplePattern);
18691#endif
18692#endif
18693
18694
18695// VK_EXT_shader_atomic_float is a preprocessor guard. Do not pass it to API calls.
18696#define VK_EXT_shader_atomic_float 1
18697#define VK_EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION 1
18698#define VK_EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME "VK_EXT_shader_atomic_float"
18699typedef struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT {
18700 VkStructureType sType;
18701 void* pNext;
18702 VkBool32 shaderBufferFloat32Atomics;
18703 VkBool32 shaderBufferFloat32AtomicAdd;
18704 VkBool32 shaderBufferFloat64Atomics;
18705 VkBool32 shaderBufferFloat64AtomicAdd;
18706 VkBool32 shaderSharedFloat32Atomics;
18707 VkBool32 shaderSharedFloat32AtomicAdd;
18708 VkBool32 shaderSharedFloat64Atomics;
18709 VkBool32 shaderSharedFloat64AtomicAdd;
18710 VkBool32 shaderImageFloat32Atomics;
18711 VkBool32 shaderImageFloat32AtomicAdd;
18712 VkBool32 sparseImageFloat32Atomics;
18713 VkBool32 sparseImageFloat32AtomicAdd;
18714} VkPhysicalDeviceShaderAtomicFloatFeaturesEXT;
18715
18716
18717
18718// VK_EXT_host_query_reset is a preprocessor guard. Do not pass it to API calls.
18719#define VK_EXT_host_query_reset 1
18720#define VK_EXT_HOST_QUERY_RESET_SPEC_VERSION 1
18721#define VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME "VK_EXT_host_query_reset"
18722typedef VkPhysicalDeviceHostQueryResetFeatures VkPhysicalDeviceHostQueryResetFeaturesEXT;
18723
18724typedef void (VKAPI_PTR *PFN_vkResetQueryPoolEXT)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
18725
18726#ifndef VK_NO_PROTOTYPES
18727#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18728VKAPI_ATTR void VKAPI_CALL vkResetQueryPoolEXT(
18729 VkDevice device,
18730 VkQueryPool queryPool,
18731 uint32_t firstQuery,
18732 uint32_t queryCount);
18733#endif
18734#endif
18735
18736
18737// VK_EXT_index_type_uint8 is a preprocessor guard. Do not pass it to API calls.
18738#define VK_EXT_index_type_uint8 1
18739#define VK_EXT_INDEX_TYPE_UINT8_SPEC_VERSION 1
18740#define VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME "VK_EXT_index_type_uint8"
18741typedef VkPhysicalDeviceIndexTypeUint8Features VkPhysicalDeviceIndexTypeUint8FeaturesEXT;
18742
18743
18744
18745// VK_EXT_extended_dynamic_state is a preprocessor guard. Do not pass it to API calls.
18746#define VK_EXT_extended_dynamic_state 1
18747#define VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION 1
18748#define VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_extended_dynamic_state"
18749typedef struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT {
18750 VkStructureType sType;
18751 void* pNext;
18752 VkBool32 extendedDynamicState;
18753} VkPhysicalDeviceExtendedDynamicStateFeaturesEXT;
18754
18755typedef void (VKAPI_PTR *PFN_vkCmdSetCullModeEXT)(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode);
18756typedef void (VKAPI_PTR *PFN_vkCmdSetFrontFaceEXT)(VkCommandBuffer commandBuffer, VkFrontFace frontFace);
18757typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveTopologyEXT)(VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology);
18758typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWithCountEXT)(VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports);
18759typedef void (VKAPI_PTR *PFN_vkCmdSetScissorWithCountEXT)(VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors);
18760typedef 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);
18761typedef void (VKAPI_PTR *PFN_vkCmdSetDepthTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable);
18762typedef void (VKAPI_PTR *PFN_vkCmdSetDepthWriteEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable);
18763typedef void (VKAPI_PTR *PFN_vkCmdSetDepthCompareOpEXT)(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp);
18764typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBoundsTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable);
18765typedef void (VKAPI_PTR *PFN_vkCmdSetStencilTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable);
18766typedef void (VKAPI_PTR *PFN_vkCmdSetStencilOpEXT)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp);
18767
18768#ifndef VK_NO_PROTOTYPES
18769#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18770VKAPI_ATTR void VKAPI_CALL vkCmdSetCullModeEXT(
18771 VkCommandBuffer commandBuffer,
18772 VkCullModeFlags cullMode);
18773#endif
18774
18775#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18776VKAPI_ATTR void VKAPI_CALL vkCmdSetFrontFaceEXT(
18777 VkCommandBuffer commandBuffer,
18778 VkFrontFace frontFace);
18779#endif
18780
18781#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18782VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveTopologyEXT(
18783 VkCommandBuffer commandBuffer,
18784 VkPrimitiveTopology primitiveTopology);
18785#endif
18786
18787#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18788VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWithCountEXT(
18789 VkCommandBuffer commandBuffer,
18790 uint32_t viewportCount,
18791 const VkViewport* pViewports);
18792#endif
18793
18794#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18795VKAPI_ATTR void VKAPI_CALL vkCmdSetScissorWithCountEXT(
18796 VkCommandBuffer commandBuffer,
18797 uint32_t scissorCount,
18798 const VkRect2D* pScissors);
18799#endif
18800
18801#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18802VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers2EXT(
18803 VkCommandBuffer commandBuffer,
18804 uint32_t firstBinding,
18805 uint32_t bindingCount,
18806 const VkBuffer* pBuffers,
18807 const VkDeviceSize* pOffsets,
18808 const VkDeviceSize* pSizes,
18809 const VkDeviceSize* pStrides);
18810#endif
18811
18812#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18813VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthTestEnableEXT(
18814 VkCommandBuffer commandBuffer,
18815 VkBool32 depthTestEnable);
18816#endif
18817
18818#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18819VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthWriteEnableEXT(
18820 VkCommandBuffer commandBuffer,
18821 VkBool32 depthWriteEnable);
18822#endif
18823
18824#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18825VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthCompareOpEXT(
18826 VkCommandBuffer commandBuffer,
18827 VkCompareOp depthCompareOp);
18828#endif
18829
18830#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18831VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBoundsTestEnableEXT(
18832 VkCommandBuffer commandBuffer,
18833 VkBool32 depthBoundsTestEnable);
18834#endif
18835
18836#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18837VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilTestEnableEXT(
18838 VkCommandBuffer commandBuffer,
18839 VkBool32 stencilTestEnable);
18840#endif
18841
18842#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18843VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilOpEXT(
18844 VkCommandBuffer commandBuffer,
18845 VkStencilFaceFlags faceMask,
18846 VkStencilOp failOp,
18847 VkStencilOp passOp,
18848 VkStencilOp depthFailOp,
18849 VkCompareOp compareOp);
18850#endif
18851#endif
18852
18853
18854// VK_EXT_host_image_copy is a preprocessor guard. Do not pass it to API calls.
18855#define VK_EXT_host_image_copy 1
18856#define VK_EXT_HOST_IMAGE_COPY_SPEC_VERSION 1
18857#define VK_EXT_HOST_IMAGE_COPY_EXTENSION_NAME "VK_EXT_host_image_copy"
18858typedef VkHostImageCopyFlagBits VkHostImageCopyFlagBitsEXT;
18859
18860typedef VkHostImageCopyFlags VkHostImageCopyFlagsEXT;
18861
18862typedef VkPhysicalDeviceHostImageCopyFeatures VkPhysicalDeviceHostImageCopyFeaturesEXT;
18863
18864typedef VkPhysicalDeviceHostImageCopyProperties VkPhysicalDeviceHostImageCopyPropertiesEXT;
18865
18866typedef VkMemoryToImageCopy VkMemoryToImageCopyEXT;
18867
18868typedef VkImageToMemoryCopy VkImageToMemoryCopyEXT;
18869
18870typedef VkCopyMemoryToImageInfo VkCopyMemoryToImageInfoEXT;
18871
18872typedef VkCopyImageToMemoryInfo VkCopyImageToMemoryInfoEXT;
18873
18874typedef VkCopyImageToImageInfo VkCopyImageToImageInfoEXT;
18875
18876typedef VkHostImageLayoutTransitionInfo VkHostImageLayoutTransitionInfoEXT;
18877
18878typedef VkSubresourceHostMemcpySize VkSubresourceHostMemcpySizeEXT;
18879
18880typedef VkHostImageCopyDevicePerformanceQuery VkHostImageCopyDevicePerformanceQueryEXT;
18881
18882typedef VkSubresourceLayout2 VkSubresourceLayout2EXT;
18883
18884typedef VkImageSubresource2 VkImageSubresource2EXT;
18885
18886typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToImageEXT)(VkDevice device, const VkCopyMemoryToImageInfo* pCopyMemoryToImageInfo);
18887typedef VkResult (VKAPI_PTR *PFN_vkCopyImageToMemoryEXT)(VkDevice device, const VkCopyImageToMemoryInfo* pCopyImageToMemoryInfo);
18888typedef VkResult (VKAPI_PTR *PFN_vkCopyImageToImageEXT)(VkDevice device, const VkCopyImageToImageInfo* pCopyImageToImageInfo);
18889typedef VkResult (VKAPI_PTR *PFN_vkTransitionImageLayoutEXT)(VkDevice device, uint32_t transitionCount, const VkHostImageLayoutTransitionInfo* pTransitions);
18890typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout2EXT)(VkDevice device, VkImage image, const VkImageSubresource2* pSubresource, VkSubresourceLayout2* pLayout);
18891
18892#ifndef VK_NO_PROTOTYPES
18893#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18894VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToImageEXT(
18895 VkDevice device,
18896 const VkCopyMemoryToImageInfo* pCopyMemoryToImageInfo);
18897#endif
18898
18899#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18900VKAPI_ATTR VkResult VKAPI_CALL vkCopyImageToMemoryEXT(
18901 VkDevice device,
18902 const VkCopyImageToMemoryInfo* pCopyImageToMemoryInfo);
18903#endif
18904
18905#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18906VKAPI_ATTR VkResult VKAPI_CALL vkCopyImageToImageEXT(
18907 VkDevice device,
18908 const VkCopyImageToImageInfo* pCopyImageToImageInfo);
18909#endif
18910
18911#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18912VKAPI_ATTR VkResult VKAPI_CALL vkTransitionImageLayoutEXT(
18913 VkDevice device,
18914 uint32_t transitionCount,
18915 const VkHostImageLayoutTransitionInfo* pTransitions);
18916#endif
18917
18918#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18919VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout2EXT(
18920 VkDevice device,
18921 VkImage image,
18922 const VkImageSubresource2* pSubresource,
18923 VkSubresourceLayout2* pLayout);
18924#endif
18925#endif
18926
18927
18928// VK_EXT_map_memory_placed is a preprocessor guard. Do not pass it to API calls.
18929#define VK_EXT_map_memory_placed 1
18930#define VK_EXT_MAP_MEMORY_PLACED_SPEC_VERSION 1
18931#define VK_EXT_MAP_MEMORY_PLACED_EXTENSION_NAME "VK_EXT_map_memory_placed"
18932typedef struct VkPhysicalDeviceMapMemoryPlacedFeaturesEXT {
18933 VkStructureType sType;
18934 void* pNext;
18935 VkBool32 memoryMapPlaced;
18936 VkBool32 memoryMapRangePlaced;
18937 VkBool32 memoryUnmapReserve;
18938} VkPhysicalDeviceMapMemoryPlacedFeaturesEXT;
18939
18940typedef struct VkPhysicalDeviceMapMemoryPlacedPropertiesEXT {
18941 VkStructureType sType;
18942 void* pNext;
18943 VkDeviceSize minPlacedMemoryMapAlignment;
18944} VkPhysicalDeviceMapMemoryPlacedPropertiesEXT;
18945
18946typedef struct VkMemoryMapPlacedInfoEXT {
18947 VkStructureType sType;
18948 const void* pNext;
18949 void* pPlacedAddress;
18950} VkMemoryMapPlacedInfoEXT;
18951
18952
18953
18954// VK_EXT_shader_atomic_float2 is a preprocessor guard. Do not pass it to API calls.
18955#define VK_EXT_shader_atomic_float2 1
18956#define VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION 1
18957#define VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME "VK_EXT_shader_atomic_float2"
18958typedef struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT {
18959 VkStructureType sType;
18960 void* pNext;
18961 VkBool32 shaderBufferFloat16Atomics;
18962 VkBool32 shaderBufferFloat16AtomicAdd;
18963 VkBool32 shaderBufferFloat16AtomicMinMax;
18964 VkBool32 shaderBufferFloat32AtomicMinMax;
18965 VkBool32 shaderBufferFloat64AtomicMinMax;
18966 VkBool32 shaderSharedFloat16Atomics;
18967 VkBool32 shaderSharedFloat16AtomicAdd;
18968 VkBool32 shaderSharedFloat16AtomicMinMax;
18969 VkBool32 shaderSharedFloat32AtomicMinMax;
18970 VkBool32 shaderSharedFloat64AtomicMinMax;
18971 VkBool32 shaderImageFloat32AtomicMinMax;
18972 VkBool32 sparseImageFloat32AtomicMinMax;
18973} VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT;
18974
18975
18976
18977// VK_EXT_surface_maintenance1 is a preprocessor guard. Do not pass it to API calls.
18978#define VK_EXT_surface_maintenance1 1
18979#define VK_EXT_SURFACE_MAINTENANCE_1_SPEC_VERSION 1
18980#define VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME "VK_EXT_surface_maintenance1"
18981typedef VkPresentScalingFlagBitsKHR VkPresentScalingFlagBitsEXT;
18982
18983typedef VkPresentScalingFlagsKHR VkPresentScalingFlagsEXT;
18984
18985typedef VkPresentGravityFlagBitsKHR VkPresentGravityFlagBitsEXT;
18986
18987typedef VkPresentGravityFlagsKHR VkPresentGravityFlagsEXT;
18988
18989typedef VkSurfacePresentModeKHR VkSurfacePresentModeEXT;
18990
18991typedef VkSurfacePresentScalingCapabilitiesKHR VkSurfacePresentScalingCapabilitiesEXT;
18992
18993typedef VkSurfacePresentModeCompatibilityKHR VkSurfacePresentModeCompatibilityEXT;
18994
18995
18996
18997// VK_EXT_swapchain_maintenance1 is a preprocessor guard. Do not pass it to API calls.
18998#define VK_EXT_swapchain_maintenance1 1
18999#define VK_EXT_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION 1
19000#define VK_EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME "VK_EXT_swapchain_maintenance1"
19001typedef VkPhysicalDeviceSwapchainMaintenance1FeaturesKHR VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT;
19002
19003typedef VkSwapchainPresentFenceInfoKHR VkSwapchainPresentFenceInfoEXT;
19004
19005typedef VkSwapchainPresentModesCreateInfoKHR VkSwapchainPresentModesCreateInfoEXT;
19006
19007typedef VkSwapchainPresentModeInfoKHR VkSwapchainPresentModeInfoEXT;
19008
19009typedef VkSwapchainPresentScalingCreateInfoKHR VkSwapchainPresentScalingCreateInfoEXT;
19010
19011typedef VkReleaseSwapchainImagesInfoKHR VkReleaseSwapchainImagesInfoEXT;
19012
19013typedef VkResult (VKAPI_PTR *PFN_vkReleaseSwapchainImagesEXT)(VkDevice device, const VkReleaseSwapchainImagesInfoKHR* pReleaseInfo);
19014
19015#ifndef VK_NO_PROTOTYPES
19016#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19017VKAPI_ATTR VkResult VKAPI_CALL vkReleaseSwapchainImagesEXT(
19018 VkDevice device,
19019 const VkReleaseSwapchainImagesInfoKHR* pReleaseInfo);
19020#endif
19021#endif
19022
19023
19024// VK_EXT_shader_demote_to_helper_invocation is a preprocessor guard. Do not pass it to API calls.
19025#define VK_EXT_shader_demote_to_helper_invocation 1
19026#define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION 1
19027#define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME "VK_EXT_shader_demote_to_helper_invocation"
19028typedef VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT;
19029
19030
19031
19032// VK_NV_device_generated_commands is a preprocessor guard. Do not pass it to API calls.
19033#define VK_NV_device_generated_commands 1
19034VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNV)
19035#define VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3
19036#define VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NV_device_generated_commands"
19037
19038typedef enum VkIndirectCommandsTokenTypeNV {
19039 VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0,
19040 VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1,
19041 VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2,
19042 VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3,
19043 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4,
19044 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5,
19045 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6,
19046 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7,
19047 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_DATA_NV = 1000135000,
19048 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV = 1000328000,
19049 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV = 1000428003,
19050 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV = 1000428004,
19051 VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
19052} VkIndirectCommandsTokenTypeNV;
19053
19054typedef enum VkIndirectStateFlagBitsNV {
19055 VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 0x00000001,
19056 VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
19057} VkIndirectStateFlagBitsNV;
19058typedef VkFlags VkIndirectStateFlagsNV;
19059
19060typedef enum VkIndirectCommandsLayoutUsageFlagBitsNV {
19061 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 0x00000001,
19062 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 0x00000002,
19063 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 0x00000004,
19064 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
19065} VkIndirectCommandsLayoutUsageFlagBitsNV;
19066typedef VkFlags VkIndirectCommandsLayoutUsageFlagsNV;
19067typedef struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV {
19068 VkStructureType sType;
19069 void* pNext;
19070 uint32_t maxGraphicsShaderGroupCount;
19071 uint32_t maxIndirectSequenceCount;
19072 uint32_t maxIndirectCommandsTokenCount;
19073 uint32_t maxIndirectCommandsStreamCount;
19074 uint32_t maxIndirectCommandsTokenOffset;
19075 uint32_t maxIndirectCommandsStreamStride;
19076 uint32_t minSequencesCountBufferOffsetAlignment;
19077 uint32_t minSequencesIndexBufferOffsetAlignment;
19078 uint32_t minIndirectCommandsBufferOffsetAlignment;
19079} VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
19080
19081typedef struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV {
19082 VkStructureType sType;
19083 void* pNext;
19084 VkBool32 deviceGeneratedCommands;
19085} VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
19086
19087typedef struct VkGraphicsShaderGroupCreateInfoNV {
19088 VkStructureType sType;
19089 const void* pNext;
19090 uint32_t stageCount;
19091 const VkPipelineShaderStageCreateInfo* pStages;
19092 const VkPipelineVertexInputStateCreateInfo* pVertexInputState;
19093 const VkPipelineTessellationStateCreateInfo* pTessellationState;
19094} VkGraphicsShaderGroupCreateInfoNV;
19095
19096typedef struct VkGraphicsPipelineShaderGroupsCreateInfoNV {
19097 VkStructureType sType;
19098 const void* pNext;
19099 uint32_t groupCount;
19100 const VkGraphicsShaderGroupCreateInfoNV* pGroups;
19101 uint32_t pipelineCount;
19102 const VkPipeline* pPipelines;
19103} VkGraphicsPipelineShaderGroupsCreateInfoNV;
19104
19105typedef struct VkBindShaderGroupIndirectCommandNV {
19106 uint32_t groupIndex;
19107} VkBindShaderGroupIndirectCommandNV;
19108
19109typedef struct VkBindIndexBufferIndirectCommandNV {
19110 VkDeviceAddress bufferAddress;
19111 uint32_t size;
19112 VkIndexType indexType;
19113} VkBindIndexBufferIndirectCommandNV;
19114
19115typedef struct VkBindVertexBufferIndirectCommandNV {
19116 VkDeviceAddress bufferAddress;
19117 uint32_t size;
19118 uint32_t stride;
19119} VkBindVertexBufferIndirectCommandNV;
19120
19121typedef struct VkSetStateFlagsIndirectCommandNV {
19122 uint32_t data;
19123} VkSetStateFlagsIndirectCommandNV;
19124
19125typedef struct VkIndirectCommandsStreamNV {
19126 VkBuffer buffer;
19127 VkDeviceSize offset;
19128} VkIndirectCommandsStreamNV;
19129
19130typedef struct VkIndirectCommandsLayoutTokenNV {
19131 VkStructureType sType;
19132 const void* pNext;
19133 VkIndirectCommandsTokenTypeNV tokenType;
19134 uint32_t stream;
19135 uint32_t offset;
19136 uint32_t vertexBindingUnit;
19137 VkBool32 vertexDynamicStride;
19138 VkPipelineLayout pushconstantPipelineLayout;
19139 VkShaderStageFlags pushconstantShaderStageFlags;
19140 uint32_t pushconstantOffset;
19141 uint32_t pushconstantSize;
19142 VkIndirectStateFlagsNV indirectStateFlags;
19143 uint32_t indexTypeCount;
19144 const VkIndexType* pIndexTypes;
19145 const uint32_t* pIndexTypeValues;
19146} VkIndirectCommandsLayoutTokenNV;
19147
19148typedef struct VkIndirectCommandsLayoutCreateInfoNV {
19149 VkStructureType sType;
19150 const void* pNext;
19151 VkIndirectCommandsLayoutUsageFlagsNV flags;
19152 VkPipelineBindPoint pipelineBindPoint;
19153 uint32_t tokenCount;
19154 const VkIndirectCommandsLayoutTokenNV* pTokens;
19155 uint32_t streamCount;
19156 const uint32_t* pStreamStrides;
19157} VkIndirectCommandsLayoutCreateInfoNV;
19158
19159typedef struct VkGeneratedCommandsInfoNV {
19160 VkStructureType sType;
19161 const void* pNext;
19162 VkPipelineBindPoint pipelineBindPoint;
19163 VkPipeline pipeline;
19164 VkIndirectCommandsLayoutNV indirectCommandsLayout;
19165 uint32_t streamCount;
19166 const VkIndirectCommandsStreamNV* pStreams;
19167 uint32_t sequencesCount;
19168 VkBuffer preprocessBuffer;
19169 VkDeviceSize preprocessOffset;
19170 VkDeviceSize preprocessSize;
19171 VkBuffer sequencesCountBuffer;
19172 VkDeviceSize sequencesCountOffset;
19173 VkBuffer sequencesIndexBuffer;
19174 VkDeviceSize sequencesIndexOffset;
19175} VkGeneratedCommandsInfoNV;
19176
19177typedef struct VkGeneratedCommandsMemoryRequirementsInfoNV {
19178 VkStructureType sType;
19179 const void* pNext;
19180 VkPipelineBindPoint pipelineBindPoint;
19181 VkPipeline pipeline;
19182 VkIndirectCommandsLayoutNV indirectCommandsLayout;
19183 uint32_t maxSequencesCount;
19184} VkGeneratedCommandsMemoryRequirementsInfoNV;
19185
19186typedef void (VKAPI_PTR *PFN_vkGetGeneratedCommandsMemoryRequirementsNV)(VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2* pMemoryRequirements);
19187typedef void (VKAPI_PTR *PFN_vkCmdPreprocessGeneratedCommandsNV)(VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
19188typedef void (VKAPI_PTR *PFN_vkCmdExecuteGeneratedCommandsNV)(VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
19189typedef void (VKAPI_PTR *PFN_vkCmdBindPipelineShaderGroupNV)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline, uint32_t groupIndex);
19190typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutNV)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNV* pIndirectCommandsLayout);
19191typedef void (VKAPI_PTR *PFN_vkDestroyIndirectCommandsLayoutNV)(VkDevice device, VkIndirectCommandsLayoutNV indirectCommandsLayout, const VkAllocationCallbacks* pAllocator);
19192
19193#ifndef VK_NO_PROTOTYPES
19194#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19195VKAPI_ATTR void VKAPI_CALL vkGetGeneratedCommandsMemoryRequirementsNV(
19196 VkDevice device,
19197 const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo,
19198 VkMemoryRequirements2* pMemoryRequirements);
19199#endif
19200
19201#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19202VKAPI_ATTR void VKAPI_CALL vkCmdPreprocessGeneratedCommandsNV(
19203 VkCommandBuffer commandBuffer,
19204 const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
19205#endif
19206
19207#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19208VKAPI_ATTR void VKAPI_CALL vkCmdExecuteGeneratedCommandsNV(
19209 VkCommandBuffer commandBuffer,
19210 VkBool32 isPreprocessed,
19211 const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
19212#endif
19213
19214#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19215VKAPI_ATTR void VKAPI_CALL vkCmdBindPipelineShaderGroupNV(
19216 VkCommandBuffer commandBuffer,
19217 VkPipelineBindPoint pipelineBindPoint,
19218 VkPipeline pipeline,
19219 uint32_t groupIndex);
19220#endif
19221
19222#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19223VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutNV(
19224 VkDevice device,
19225 const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo,
19226 const VkAllocationCallbacks* pAllocator,
19227 VkIndirectCommandsLayoutNV* pIndirectCommandsLayout);
19228#endif
19229
19230#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19231VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutNV(
19232 VkDevice device,
19233 VkIndirectCommandsLayoutNV indirectCommandsLayout,
19234 const VkAllocationCallbacks* pAllocator);
19235#endif
19236#endif
19237
19238
19239// VK_NV_inherited_viewport_scissor is a preprocessor guard. Do not pass it to API calls.
19240#define VK_NV_inherited_viewport_scissor 1
19241#define VK_NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION 1
19242#define VK_NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME "VK_NV_inherited_viewport_scissor"
19243typedef struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV {
19244 VkStructureType sType;
19245 void* pNext;
19246 VkBool32 inheritedViewportScissor2D;
19247} VkPhysicalDeviceInheritedViewportScissorFeaturesNV;
19248
19249typedef struct VkCommandBufferInheritanceViewportScissorInfoNV {
19250 VkStructureType sType;
19251 const void* pNext;
19252 VkBool32 viewportScissor2D;
19253 uint32_t viewportDepthCount;
19254 const VkViewport* pViewportDepths;
19255} VkCommandBufferInheritanceViewportScissorInfoNV;
19256
19257
19258
19259// VK_EXT_texel_buffer_alignment is a preprocessor guard. Do not pass it to API calls.
19260#define VK_EXT_texel_buffer_alignment 1
19261#define VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION 1
19262#define VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME "VK_EXT_texel_buffer_alignment"
19263typedef struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT {
19264 VkStructureType sType;
19265 void* pNext;
19266 VkBool32 texelBufferAlignment;
19267} VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT;
19268
19269typedef VkPhysicalDeviceTexelBufferAlignmentProperties VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT;
19270
19271
19272
19273// VK_QCOM_render_pass_transform is a preprocessor guard. Do not pass it to API calls.
19274#define VK_QCOM_render_pass_transform 1
19275#define VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION 5
19276#define VK_QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME "VK_QCOM_render_pass_transform"
19277typedef struct VkRenderPassTransformBeginInfoQCOM {
19278 VkStructureType sType;
19279 const void* pNext;
19280 VkSurfaceTransformFlagBitsKHR transform;
19281} VkRenderPassTransformBeginInfoQCOM;
19282
19283typedef struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM {
19284 VkStructureType sType;
19285 const void* pNext;
19286 VkSurfaceTransformFlagBitsKHR transform;
19287 VkRect2D renderArea;
19288} VkCommandBufferInheritanceRenderPassTransformInfoQCOM;
19289
19290
19291
19292// VK_EXT_depth_bias_control is a preprocessor guard. Do not pass it to API calls.
19293#define VK_EXT_depth_bias_control 1
19294#define VK_EXT_DEPTH_BIAS_CONTROL_SPEC_VERSION 1
19295#define VK_EXT_DEPTH_BIAS_CONTROL_EXTENSION_NAME "VK_EXT_depth_bias_control"
19296
19297typedef enum VkDepthBiasRepresentationEXT {
19298 VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORMAT_EXT = 0,
19299 VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORCE_UNORM_EXT = 1,
19300 VK_DEPTH_BIAS_REPRESENTATION_FLOAT_EXT = 2,
19301 VK_DEPTH_BIAS_REPRESENTATION_MAX_ENUM_EXT = 0x7FFFFFFF
19302} VkDepthBiasRepresentationEXT;
19303typedef struct VkPhysicalDeviceDepthBiasControlFeaturesEXT {
19304 VkStructureType sType;
19305 void* pNext;
19306 VkBool32 depthBiasControl;
19307 VkBool32 leastRepresentableValueForceUnormRepresentation;
19308 VkBool32 floatRepresentation;
19309 VkBool32 depthBiasExact;
19310} VkPhysicalDeviceDepthBiasControlFeaturesEXT;
19311
19312typedef struct VkDepthBiasInfoEXT {
19313 VkStructureType sType;
19314 const void* pNext;
19315 float depthBiasConstantFactor;
19316 float depthBiasClamp;
19317 float depthBiasSlopeFactor;
19318} VkDepthBiasInfoEXT;
19319
19320typedef struct VkDepthBiasRepresentationInfoEXT {
19321 VkStructureType sType;
19322 const void* pNext;
19323 VkDepthBiasRepresentationEXT depthBiasRepresentation;
19324 VkBool32 depthBiasExact;
19325} VkDepthBiasRepresentationInfoEXT;
19326
19327typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias2EXT)(VkCommandBuffer commandBuffer, const VkDepthBiasInfoEXT* pDepthBiasInfo);
19328
19329#ifndef VK_NO_PROTOTYPES
19330#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19331VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias2EXT(
19332 VkCommandBuffer commandBuffer,
19333 const VkDepthBiasInfoEXT* pDepthBiasInfo);
19334#endif
19335#endif
19336
19337
19338// VK_EXT_device_memory_report is a preprocessor guard. Do not pass it to API calls.
19339#define VK_EXT_device_memory_report 1
19340#define VK_EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION 2
19341#define VK_EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME "VK_EXT_device_memory_report"
19342
19343typedef enum VkDeviceMemoryReportEventTypeEXT {
19344 VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0,
19345 VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1,
19346 VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2,
19347 VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3,
19348 VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4,
19349 VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
19350} VkDeviceMemoryReportEventTypeEXT;
19351typedef VkFlags VkDeviceMemoryReportFlagsEXT;
19352typedef struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT {
19353 VkStructureType sType;
19354 void* pNext;
19355 VkBool32 deviceMemoryReport;
19356} VkPhysicalDeviceDeviceMemoryReportFeaturesEXT;
19357
19358typedef struct VkDeviceMemoryReportCallbackDataEXT {
19359 VkStructureType sType;
19360 void* pNext;
19361 VkDeviceMemoryReportFlagsEXT flags;
19362 VkDeviceMemoryReportEventTypeEXT type;
19363 uint64_t memoryObjectId;
19364 VkDeviceSize size;
19365 VkObjectType objectType;
19366 uint64_t objectHandle;
19367 uint32_t heapIndex;
19368} VkDeviceMemoryReportCallbackDataEXT;
19369
19370typedef void (VKAPI_PTR *PFN_vkDeviceMemoryReportCallbackEXT)(
19371 const VkDeviceMemoryReportCallbackDataEXT* pCallbackData,
19372 void* pUserData);
19373
19374typedef struct VkDeviceDeviceMemoryReportCreateInfoEXT {
19375 VkStructureType sType;
19376 const void* pNext;
19377 VkDeviceMemoryReportFlagsEXT flags;
19378 PFN_vkDeviceMemoryReportCallbackEXT pfnUserCallback;
19379 void* pUserData;
19380} VkDeviceDeviceMemoryReportCreateInfoEXT;
19381
19382
19383
19384// VK_EXT_acquire_drm_display is a preprocessor guard. Do not pass it to API calls.
19385#define VK_EXT_acquire_drm_display 1
19386#define VK_EXT_ACQUIRE_DRM_DISPLAY_SPEC_VERSION 1
19387#define VK_EXT_ACQUIRE_DRM_DISPLAY_EXTENSION_NAME "VK_EXT_acquire_drm_display"
19388typedef VkResult (VKAPI_PTR *PFN_vkAcquireDrmDisplayEXT)(VkPhysicalDevice physicalDevice, int32_t drmFd, VkDisplayKHR display);
19389typedef VkResult (VKAPI_PTR *PFN_vkGetDrmDisplayEXT)(VkPhysicalDevice physicalDevice, int32_t drmFd, uint32_t connectorId, VkDisplayKHR* display);
19390
19391#ifndef VK_NO_PROTOTYPES
19392#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19393VKAPI_ATTR VkResult VKAPI_CALL vkAcquireDrmDisplayEXT(
19394 VkPhysicalDevice physicalDevice,
19395 int32_t drmFd,
19396 VkDisplayKHR display);
19397#endif
19398
19399#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19400VKAPI_ATTR VkResult VKAPI_CALL vkGetDrmDisplayEXT(
19401 VkPhysicalDevice physicalDevice,
19402 int32_t drmFd,
19403 uint32_t connectorId,
19404 VkDisplayKHR* display);
19405#endif
19406#endif
19407
19408
19409// VK_EXT_robustness2 is a preprocessor guard. Do not pass it to API calls.
19410#define VK_EXT_robustness2 1
19411#define VK_EXT_ROBUSTNESS_2_SPEC_VERSION 1
19412#define VK_EXT_ROBUSTNESS_2_EXTENSION_NAME "VK_EXT_robustness2"
19413typedef VkPhysicalDeviceRobustness2FeaturesKHR VkPhysicalDeviceRobustness2FeaturesEXT;
19414
19415typedef VkPhysicalDeviceRobustness2PropertiesKHR VkPhysicalDeviceRobustness2PropertiesEXT;
19416
19417
19418
19419// VK_EXT_custom_border_color is a preprocessor guard. Do not pass it to API calls.
19420#define VK_EXT_custom_border_color 1
19421#define VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION 12
19422#define VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME "VK_EXT_custom_border_color"
19423typedef struct VkPhysicalDeviceCustomBorderColorPropertiesEXT {
19424 VkStructureType sType;
19425 void* pNext;
19426 uint32_t maxCustomBorderColorSamplers;
19427} VkPhysicalDeviceCustomBorderColorPropertiesEXT;
19428
19429typedef struct VkPhysicalDeviceCustomBorderColorFeaturesEXT {
19430 VkStructureType sType;
19431 void* pNext;
19432 VkBool32 customBorderColors;
19433 VkBool32 customBorderColorWithoutFormat;
19434} VkPhysicalDeviceCustomBorderColorFeaturesEXT;
19435
19436
19437
19438// VK_EXT_texture_compression_astc_3d is a preprocessor guard. Do not pass it to API calls.
19439#define VK_EXT_texture_compression_astc_3d 1
19440#define VK_EXT_TEXTURE_COMPRESSION_ASTC_3D_SPEC_VERSION 1
19441#define VK_EXT_TEXTURE_COMPRESSION_ASTC_3D_EXTENSION_NAME "VK_EXT_texture_compression_astc_3d"
19442typedef struct VkPhysicalDeviceTextureCompressionASTC3DFeaturesEXT {
19443 VkStructureType sType;
19444 void* pNext;
19445 VkBool32 textureCompressionASTC_3D;
19446} VkPhysicalDeviceTextureCompressionASTC3DFeaturesEXT;
19447
19448
19449
19450// VK_GOOGLE_user_type is a preprocessor guard. Do not pass it to API calls.
19451#define VK_GOOGLE_user_type 1
19452#define VK_GOOGLE_USER_TYPE_SPEC_VERSION 1
19453#define VK_GOOGLE_USER_TYPE_EXTENSION_NAME "VK_GOOGLE_user_type"
19454
19455
19456// VK_NV_present_barrier is a preprocessor guard. Do not pass it to API calls.
19457#define VK_NV_present_barrier 1
19458#define VK_NV_PRESENT_BARRIER_SPEC_VERSION 1
19459#define VK_NV_PRESENT_BARRIER_EXTENSION_NAME "VK_NV_present_barrier"
19460typedef struct VkPhysicalDevicePresentBarrierFeaturesNV {
19461 VkStructureType sType;
19462 void* pNext;
19463 VkBool32 presentBarrier;
19464} VkPhysicalDevicePresentBarrierFeaturesNV;
19465
19466typedef struct VkSurfaceCapabilitiesPresentBarrierNV {
19467 VkStructureType sType;
19468 void* pNext;
19469 VkBool32 presentBarrierSupported;
19470} VkSurfaceCapabilitiesPresentBarrierNV;
19471
19472typedef struct VkSwapchainPresentBarrierCreateInfoNV {
19473 VkStructureType sType;
19474 void* pNext;
19475 VkBool32 presentBarrierEnable;
19476} VkSwapchainPresentBarrierCreateInfoNV;
19477
19478
19479
19480// VK_EXT_private_data is a preprocessor guard. Do not pass it to API calls.
19481#define VK_EXT_private_data 1
19482typedef VkPrivateDataSlot VkPrivateDataSlotEXT;
19483
19484#define VK_EXT_PRIVATE_DATA_SPEC_VERSION 1
19485#define VK_EXT_PRIVATE_DATA_EXTENSION_NAME "VK_EXT_private_data"
19486typedef VkPrivateDataSlotCreateFlags VkPrivateDataSlotCreateFlagsEXT;
19487
19488typedef VkPhysicalDevicePrivateDataFeatures VkPhysicalDevicePrivateDataFeaturesEXT;
19489
19490typedef VkDevicePrivateDataCreateInfo VkDevicePrivateDataCreateInfoEXT;
19491
19492typedef VkPrivateDataSlotCreateInfo VkPrivateDataSlotCreateInfoEXT;
19493
19494typedef VkResult (VKAPI_PTR *PFN_vkCreatePrivateDataSlotEXT)(VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot);
19495typedef void (VKAPI_PTR *PFN_vkDestroyPrivateDataSlotEXT)(VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks* pAllocator);
19496typedef VkResult (VKAPI_PTR *PFN_vkSetPrivateDataEXT)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data);
19497typedef void (VKAPI_PTR *PFN_vkGetPrivateDataEXT)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t* pData);
19498
19499#ifndef VK_NO_PROTOTYPES
19500#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19501VKAPI_ATTR VkResult VKAPI_CALL vkCreatePrivateDataSlotEXT(
19502 VkDevice device,
19503 const VkPrivateDataSlotCreateInfo* pCreateInfo,
19504 const VkAllocationCallbacks* pAllocator,
19505 VkPrivateDataSlot* pPrivateDataSlot);
19506#endif
19507
19508#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19509VKAPI_ATTR void VKAPI_CALL vkDestroyPrivateDataSlotEXT(
19510 VkDevice device,
19511 VkPrivateDataSlot privateDataSlot,
19512 const VkAllocationCallbacks* pAllocator);
19513#endif
19514
19515#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19516VKAPI_ATTR VkResult VKAPI_CALL vkSetPrivateDataEXT(
19517 VkDevice device,
19518 VkObjectType objectType,
19519 uint64_t objectHandle,
19520 VkPrivateDataSlot privateDataSlot,
19521 uint64_t data);
19522#endif
19523
19524#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19525VKAPI_ATTR void VKAPI_CALL vkGetPrivateDataEXT(
19526 VkDevice device,
19527 VkObjectType objectType,
19528 uint64_t objectHandle,
19529 VkPrivateDataSlot privateDataSlot,
19530 uint64_t* pData);
19531#endif
19532#endif
19533
19534
19535// VK_EXT_pipeline_creation_cache_control is a preprocessor guard. Do not pass it to API calls.
19536#define VK_EXT_pipeline_creation_cache_control 1
19537#define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION 3
19538#define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME "VK_EXT_pipeline_creation_cache_control"
19539typedef VkPhysicalDevicePipelineCreationCacheControlFeatures VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT;
19540
19541
19542
19543// VK_NV_device_diagnostics_config is a preprocessor guard. Do not pass it to API calls.
19544#define VK_NV_device_diagnostics_config 1
19545#define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION 2
19546#define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME "VK_NV_device_diagnostics_config"
19547
19548typedef enum VkDeviceDiagnosticsConfigFlagBitsNV {
19549 VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 0x00000001,
19550 VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 0x00000002,
19551 VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 0x00000004,
19552 VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV = 0x00000008,
19553 VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
19554} VkDeviceDiagnosticsConfigFlagBitsNV;
19555typedef VkFlags VkDeviceDiagnosticsConfigFlagsNV;
19556typedef struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV {
19557 VkStructureType sType;
19558 void* pNext;
19559 VkBool32 diagnosticsConfig;
19560} VkPhysicalDeviceDiagnosticsConfigFeaturesNV;
19561
19562typedef struct VkDeviceDiagnosticsConfigCreateInfoNV {
19563 VkStructureType sType;
19564 const void* pNext;
19565 VkDeviceDiagnosticsConfigFlagsNV flags;
19566} VkDeviceDiagnosticsConfigCreateInfoNV;
19567
19568
19569
19570// VK_QCOM_render_pass_store_ops is a preprocessor guard. Do not pass it to API calls.
19571#define VK_QCOM_render_pass_store_ops 1
19572#define VK_QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION 2
19573#define VK_QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME "VK_QCOM_render_pass_store_ops"
19574
19575
19576// VK_QCOM_queue_perf_hint is a preprocessor guard. Do not pass it to API calls.
19577#define VK_QCOM_queue_perf_hint 1
19578#define VK_QCOM_QUEUE_PERF_HINT_SPEC_VERSION 1
19579#define VK_QCOM_QUEUE_PERF_HINT_EXTENSION_NAME "VK_QCOM_queue_perf_hint"
19580
19581typedef enum VkPerfHintTypeQCOM {
19582 VK_PERF_HINT_TYPE_DEFAULT_QCOM = 0,
19583 VK_PERF_HINT_TYPE_FREQUENCY_MIN_QCOM = 1,
19584 VK_PERF_HINT_TYPE_FREQUENCY_MAX_QCOM = 2,
19585 VK_PERF_HINT_TYPE_FREQUENCY_SCALED_QCOM = 3,
19586 VK_PERF_HINT_TYPE_MAX_ENUM_QCOM = 0x7FFFFFFF
19587} VkPerfHintTypeQCOM;
19588typedef struct VkPerfHintInfoQCOM {
19589 VkStructureType sType;
19590 void* pNext;
19591 VkPerfHintTypeQCOM type;
19592 uint32_t scale;
19593} VkPerfHintInfoQCOM;
19594
19595typedef struct VkPhysicalDeviceQueuePerfHintFeaturesQCOM {
19596 VkStructureType sType;
19597 void* pNext;
19598 VkBool32 queuePerfHint;
19599} VkPhysicalDeviceQueuePerfHintFeaturesQCOM;
19600
19601typedef struct VkPhysicalDeviceQueuePerfHintPropertiesQCOM {
19602 VkStructureType sType;
19603 void* pNext;
19604 VkQueueFlags supportedQueues;
19605} VkPhysicalDeviceQueuePerfHintPropertiesQCOM;
19606
19607typedef VkResult (VKAPI_PTR *PFN_vkQueueSetPerfHintQCOM)(VkQueue queue, const VkPerfHintInfoQCOM* pPerfHintInfo);
19608
19609#ifndef VK_NO_PROTOTYPES
19610#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19611VKAPI_ATTR VkResult VKAPI_CALL vkQueueSetPerfHintQCOM(
19612 VkQueue queue,
19613 const VkPerfHintInfoQCOM* pPerfHintInfo);
19614#endif
19615#endif
19616
19617
19618// VK_QCOM_tile_shading is a preprocessor guard. Do not pass it to API calls.
19619#define VK_QCOM_tile_shading 1
19620#define VK_QCOM_TILE_SHADING_SPEC_VERSION 2
19621#define VK_QCOM_TILE_SHADING_EXTENSION_NAME "VK_QCOM_tile_shading"
19622
19623typedef enum VkTileShadingRenderPassFlagBitsQCOM {
19624 VK_TILE_SHADING_RENDER_PASS_ENABLE_BIT_QCOM = 0x00000001,
19625 VK_TILE_SHADING_RENDER_PASS_PER_TILE_EXECUTION_BIT_QCOM = 0x00000002,
19626 VK_TILE_SHADING_RENDER_PASS_FLAG_BITS_MAX_ENUM_QCOM = 0x7FFFFFFF
19627} VkTileShadingRenderPassFlagBitsQCOM;
19628typedef VkFlags VkTileShadingRenderPassFlagsQCOM;
19629typedef struct VkPhysicalDeviceTileShadingFeaturesQCOM {
19630 VkStructureType sType;
19631 void* pNext;
19632 VkBool32 tileShading;
19633 VkBool32 tileShadingFragmentStage;
19634 VkBool32 tileShadingColorAttachments;
19635 VkBool32 tileShadingDepthAttachments;
19636 VkBool32 tileShadingStencilAttachments;
19637 VkBool32 tileShadingInputAttachments;
19638 VkBool32 tileShadingSampledAttachments;
19639 VkBool32 tileShadingPerTileDraw;
19640 VkBool32 tileShadingPerTileDispatch;
19641 VkBool32 tileShadingDispatchTile;
19642 VkBool32 tileShadingApron;
19643 VkBool32 tileShadingAnisotropicApron;
19644 VkBool32 tileShadingAtomicOps;
19645 VkBool32 tileShadingImageProcessing;
19646} VkPhysicalDeviceTileShadingFeaturesQCOM;
19647
19648typedef struct VkPhysicalDeviceTileShadingPropertiesQCOM {
19649 VkStructureType sType;
19650 void* pNext;
19651 uint32_t maxApronSize;
19652 VkBool32 preferNonCoherent;
19653 VkExtent2D tileGranularity;
19654 VkExtent2D maxTileShadingRate;
19655} VkPhysicalDeviceTileShadingPropertiesQCOM;
19656
19657typedef struct VkRenderPassTileShadingCreateInfoQCOM {
19658 VkStructureType sType;
19659 const void* pNext;
19660 VkTileShadingRenderPassFlagsQCOM flags;
19661 VkExtent2D tileApronSize;
19662} VkRenderPassTileShadingCreateInfoQCOM;
19663
19664typedef struct VkPerTileBeginInfoQCOM {
19665 VkStructureType sType;
19666 const void* pNext;
19667} VkPerTileBeginInfoQCOM;
19668
19669typedef struct VkPerTileEndInfoQCOM {
19670 VkStructureType sType;
19671 const void* pNext;
19672} VkPerTileEndInfoQCOM;
19673
19674typedef struct VkDispatchTileInfoQCOM {
19675 VkStructureType sType;
19676 const void* pNext;
19677} VkDispatchTileInfoQCOM;
19678
19679typedef void (VKAPI_PTR *PFN_vkCmdDispatchTileQCOM)(VkCommandBuffer commandBuffer, const VkDispatchTileInfoQCOM* pDispatchTileInfo);
19680typedef void (VKAPI_PTR *PFN_vkCmdBeginPerTileExecutionQCOM)(VkCommandBuffer commandBuffer, const VkPerTileBeginInfoQCOM* pPerTileBeginInfo);
19681typedef void (VKAPI_PTR *PFN_vkCmdEndPerTileExecutionQCOM)(VkCommandBuffer commandBuffer, const VkPerTileEndInfoQCOM* pPerTileEndInfo);
19682
19683#ifndef VK_NO_PROTOTYPES
19684#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19685VKAPI_ATTR void VKAPI_CALL vkCmdDispatchTileQCOM(
19686 VkCommandBuffer commandBuffer,
19687 const VkDispatchTileInfoQCOM* pDispatchTileInfo);
19688#endif
19689
19690#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19691VKAPI_ATTR void VKAPI_CALL vkCmdBeginPerTileExecutionQCOM(
19692 VkCommandBuffer commandBuffer,
19693 const VkPerTileBeginInfoQCOM* pPerTileBeginInfo);
19694#endif
19695
19696#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19697VKAPI_ATTR void VKAPI_CALL vkCmdEndPerTileExecutionQCOM(
19698 VkCommandBuffer commandBuffer,
19699 const VkPerTileEndInfoQCOM* pPerTileEndInfo);
19700#endif
19701#endif
19702
19703
19704// VK_NV_low_latency is a preprocessor guard. Do not pass it to API calls.
19705#define VK_NV_low_latency 1
19706#define VK_NV_LOW_LATENCY_SPEC_VERSION 1
19707#define VK_NV_LOW_LATENCY_EXTENSION_NAME "VK_NV_low_latency"
19708typedef struct VkQueryLowLatencySupportNV {
19709 VkStructureType sType;
19710 const void* pNext;
19711 void* pQueriedLowLatencyData;
19712} VkQueryLowLatencySupportNV;
19713
19714
19715
19716// VK_EXT_descriptor_buffer is a preprocessor guard. Do not pass it to API calls.
19717#define VK_EXT_descriptor_buffer 1
19718#define VK_EXT_DESCRIPTOR_BUFFER_SPEC_VERSION 1
19719#define VK_EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME "VK_EXT_descriptor_buffer"
19720typedef struct VkPhysicalDeviceDescriptorBufferPropertiesEXT {
19721 VkStructureType sType;
19722 void* pNext;
19723 VkBool32 combinedImageSamplerDescriptorSingleArray;
19724 VkBool32 bufferlessPushDescriptors;
19725 VkBool32 allowSamplerImageViewPostSubmitCreation;
19726 VkDeviceSize descriptorBufferOffsetAlignment;
19727 uint32_t maxDescriptorBufferBindings;
19728 uint32_t maxResourceDescriptorBufferBindings;
19729 uint32_t maxSamplerDescriptorBufferBindings;
19730 uint32_t maxEmbeddedImmutableSamplerBindings;
19731 uint32_t maxEmbeddedImmutableSamplers;
19732 size_t bufferCaptureReplayDescriptorDataSize;
19733 size_t imageCaptureReplayDescriptorDataSize;
19734 size_t imageViewCaptureReplayDescriptorDataSize;
19735 size_t samplerCaptureReplayDescriptorDataSize;
19736 size_t accelerationStructureCaptureReplayDescriptorDataSize;
19737 size_t samplerDescriptorSize;
19738 size_t combinedImageSamplerDescriptorSize;
19739 size_t sampledImageDescriptorSize;
19740 size_t storageImageDescriptorSize;
19741 size_t uniformTexelBufferDescriptorSize;
19742 size_t robustUniformTexelBufferDescriptorSize;
19743 size_t storageTexelBufferDescriptorSize;
19744 size_t robustStorageTexelBufferDescriptorSize;
19745 size_t uniformBufferDescriptorSize;
19746 size_t robustUniformBufferDescriptorSize;
19747 size_t storageBufferDescriptorSize;
19748 size_t robustStorageBufferDescriptorSize;
19749 size_t inputAttachmentDescriptorSize;
19750 size_t accelerationStructureDescriptorSize;
19751 VkDeviceSize maxSamplerDescriptorBufferRange;
19752 VkDeviceSize maxResourceDescriptorBufferRange;
19753 VkDeviceSize samplerDescriptorBufferAddressSpaceSize;
19754 VkDeviceSize resourceDescriptorBufferAddressSpaceSize;
19755 VkDeviceSize descriptorBufferAddressSpaceSize;
19756} VkPhysicalDeviceDescriptorBufferPropertiesEXT;
19757
19758typedef struct VkPhysicalDeviceDescriptorBufferFeaturesEXT {
19759 VkStructureType sType;
19760 void* pNext;
19761 VkBool32 descriptorBuffer;
19762 VkBool32 descriptorBufferCaptureReplay;
19763 VkBool32 descriptorBufferImageLayoutIgnored;
19764 VkBool32 descriptorBufferPushDescriptors;
19765} VkPhysicalDeviceDescriptorBufferFeaturesEXT;
19766
19767typedef struct VkDescriptorAddressInfoEXT {
19768 VkStructureType sType;
19769 void* pNext;
19770 VkDeviceAddress address;
19771 VkDeviceSize range;
19772 VkFormat format;
19773} VkDescriptorAddressInfoEXT;
19774
19775typedef struct VkDescriptorBufferBindingInfoEXT {
19776 VkStructureType sType;
19777 const void* pNext;
19778 VkDeviceAddress address;
19779 VkBufferUsageFlags usage;
19780} VkDescriptorBufferBindingInfoEXT;
19781
19782typedef struct VkDescriptorBufferBindingPushDescriptorBufferHandleEXT {
19783 VkStructureType sType;
19784 const void* pNext;
19785 VkBuffer buffer;
19786} VkDescriptorBufferBindingPushDescriptorBufferHandleEXT;
19787
19788typedef union VkDescriptorDataEXT {
19789 const VkSampler* pSampler;
19790 const VkDescriptorImageInfo* pCombinedImageSampler;
19791 const VkDescriptorImageInfo* pInputAttachmentImage;
19792 const VkDescriptorImageInfo* pSampledImage;
19793 const VkDescriptorImageInfo* pStorageImage;
19794 const VkDescriptorAddressInfoEXT* pUniformTexelBuffer;
19795 const VkDescriptorAddressInfoEXT* pStorageTexelBuffer;
19796 const VkDescriptorAddressInfoEXT* pUniformBuffer;
19797 const VkDescriptorAddressInfoEXT* pStorageBuffer;
19798 VkDeviceAddress accelerationStructure;
19799} VkDescriptorDataEXT;
19800
19801typedef struct VkDescriptorGetInfoEXT {
19802 VkStructureType sType;
19803 const void* pNext;
19804 VkDescriptorType type;
19805 VkDescriptorDataEXT data;
19806} VkDescriptorGetInfoEXT;
19807
19808typedef struct VkBufferCaptureDescriptorDataInfoEXT {
19809 VkStructureType sType;
19810 const void* pNext;
19811 VkBuffer buffer;
19812} VkBufferCaptureDescriptorDataInfoEXT;
19813
19814typedef struct VkImageCaptureDescriptorDataInfoEXT {
19815 VkStructureType sType;
19816 const void* pNext;
19817 VkImage image;
19818} VkImageCaptureDescriptorDataInfoEXT;
19819
19820typedef struct VkImageViewCaptureDescriptorDataInfoEXT {
19821 VkStructureType sType;
19822 const void* pNext;
19823 VkImageView imageView;
19824} VkImageViewCaptureDescriptorDataInfoEXT;
19825
19826typedef struct VkSamplerCaptureDescriptorDataInfoEXT {
19827 VkStructureType sType;
19828 const void* pNext;
19829 VkSampler sampler;
19830} VkSamplerCaptureDescriptorDataInfoEXT;
19831
19832typedef struct VkOpaqueCaptureDescriptorDataCreateInfoEXT {
19833 VkStructureType sType;
19834 const void* pNext;
19835 const void* opaqueCaptureDescriptorData;
19836} VkOpaqueCaptureDescriptorDataCreateInfoEXT;
19837
19838typedef struct VkAccelerationStructureCaptureDescriptorDataInfoEXT {
19839 VkStructureType sType;
19840 const void* pNext;
19841 VkAccelerationStructureKHR accelerationStructure;
19842 VkAccelerationStructureNV accelerationStructureNV;
19843} VkAccelerationStructureCaptureDescriptorDataInfoEXT;
19844
19845typedef struct VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT {
19846 VkStructureType sType;
19847 void* pNext;
19848 size_t combinedImageSamplerDensityMapDescriptorSize;
19849} VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT;
19850
19851typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSizeEXT)(VkDevice device, VkDescriptorSetLayout layout, VkDeviceSize* pLayoutSizeInBytes);
19852typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutBindingOffsetEXT)(VkDevice device, VkDescriptorSetLayout layout, uint32_t binding, VkDeviceSize* pOffset);
19853typedef void (VKAPI_PTR *PFN_vkGetDescriptorEXT)(VkDevice device, const VkDescriptorGetInfoEXT* pDescriptorInfo, size_t dataSize, void* pDescriptor);
19854typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorBuffersEXT)(VkCommandBuffer commandBuffer, uint32_t bufferCount, const VkDescriptorBufferBindingInfoEXT* pBindingInfos);
19855typedef void (VKAPI_PTR *PFN_vkCmdSetDescriptorBufferOffsetsEXT)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t setCount, const uint32_t* pBufferIndices, const VkDeviceSize* pOffsets);
19856typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set);
19857typedef VkResult (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkBufferCaptureDescriptorDataInfoEXT* pInfo, void* pData);
19858typedef VkResult (VKAPI_PTR *PFN_vkGetImageOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkImageCaptureDescriptorDataInfoEXT* pInfo, void* pData);
19859typedef VkResult (VKAPI_PTR *PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkImageViewCaptureDescriptorDataInfoEXT* pInfo, void* pData);
19860typedef VkResult (VKAPI_PTR *PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkSamplerCaptureDescriptorDataInfoEXT* pInfo, void* pData);
19861typedef VkResult (VKAPI_PTR *PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkAccelerationStructureCaptureDescriptorDataInfoEXT* pInfo, void* pData);
19862
19863#ifndef VK_NO_PROTOTYPES
19864#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19865VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSizeEXT(
19866 VkDevice device,
19867 VkDescriptorSetLayout layout,
19868 VkDeviceSize* pLayoutSizeInBytes);
19869#endif
19870
19871#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19872VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutBindingOffsetEXT(
19873 VkDevice device,
19874 VkDescriptorSetLayout layout,
19875 uint32_t binding,
19876 VkDeviceSize* pOffset);
19877#endif
19878
19879#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19880VKAPI_ATTR void VKAPI_CALL vkGetDescriptorEXT(
19881 VkDevice device,
19882 const VkDescriptorGetInfoEXT* pDescriptorInfo,
19883 size_t dataSize,
19884 void* pDescriptor);
19885#endif
19886
19887#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19888VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorBuffersEXT(
19889 VkCommandBuffer commandBuffer,
19890 uint32_t bufferCount,
19891 const VkDescriptorBufferBindingInfoEXT* pBindingInfos);
19892#endif
19893
19894#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19895VKAPI_ATTR void VKAPI_CALL vkCmdSetDescriptorBufferOffsetsEXT(
19896 VkCommandBuffer commandBuffer,
19897 VkPipelineBindPoint pipelineBindPoint,
19898 VkPipelineLayout layout,
19899 uint32_t firstSet,
19900 uint32_t setCount,
19901 const uint32_t* pBufferIndices,
19902 const VkDeviceSize* pOffsets);
19903#endif
19904
19905#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19906VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorBufferEmbeddedSamplersEXT(
19907 VkCommandBuffer commandBuffer,
19908 VkPipelineBindPoint pipelineBindPoint,
19909 VkPipelineLayout layout,
19910 uint32_t set);
19911#endif
19912
19913#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19914VKAPI_ATTR VkResult VKAPI_CALL vkGetBufferOpaqueCaptureDescriptorDataEXT(
19915 VkDevice device,
19916 const VkBufferCaptureDescriptorDataInfoEXT* pInfo,
19917 void* pData);
19918#endif
19919
19920#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19921VKAPI_ATTR VkResult VKAPI_CALL vkGetImageOpaqueCaptureDescriptorDataEXT(
19922 VkDevice device,
19923 const VkImageCaptureDescriptorDataInfoEXT* pInfo,
19924 void* pData);
19925#endif
19926
19927#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19928VKAPI_ATTR VkResult VKAPI_CALL vkGetImageViewOpaqueCaptureDescriptorDataEXT(
19929 VkDevice device,
19930 const VkImageViewCaptureDescriptorDataInfoEXT* pInfo,
19931 void* pData);
19932#endif
19933
19934#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19935VKAPI_ATTR VkResult VKAPI_CALL vkGetSamplerOpaqueCaptureDescriptorDataEXT(
19936 VkDevice device,
19937 const VkSamplerCaptureDescriptorDataInfoEXT* pInfo,
19938 void* pData);
19939#endif
19940
19941#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19942VKAPI_ATTR VkResult VKAPI_CALL vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(
19943 VkDevice device,
19944 const VkAccelerationStructureCaptureDescriptorDataInfoEXT* pInfo,
19945 void* pData);
19946#endif
19947#endif
19948
19949
19950// VK_EXT_graphics_pipeline_library is a preprocessor guard. Do not pass it to API calls.
19951#define VK_EXT_graphics_pipeline_library 1
19952#define VK_EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION 1
19953#define VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME "VK_EXT_graphics_pipeline_library"
19954
19955typedef enum VkGraphicsPipelineLibraryFlagBitsEXT {
19956 VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT = 0x00000001,
19957 VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT = 0x00000002,
19958 VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT = 0x00000004,
19959 VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT = 0x00000008,
19960 VK_GRAPHICS_PIPELINE_LIBRARY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
19961} VkGraphicsPipelineLibraryFlagBitsEXT;
19962typedef VkFlags VkGraphicsPipelineLibraryFlagsEXT;
19963typedef struct VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT {
19964 VkStructureType sType;
19965 void* pNext;
19966 VkBool32 graphicsPipelineLibrary;
19967} VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT;
19968
19969typedef struct VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT {
19970 VkStructureType sType;
19971 void* pNext;
19972 VkBool32 graphicsPipelineLibraryFastLinking;
19973 VkBool32 graphicsPipelineLibraryIndependentInterpolationDecoration;
19974} VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT;
19975
19976typedef struct VkGraphicsPipelineLibraryCreateInfoEXT {
19977 VkStructureType sType;
19978 const void* pNext;
19979 VkGraphicsPipelineLibraryFlagsEXT flags;
19980} VkGraphicsPipelineLibraryCreateInfoEXT;
19981
19982
19983
19984// VK_AMD_shader_early_and_late_fragment_tests is a preprocessor guard. Do not pass it to API calls.
19985#define VK_AMD_shader_early_and_late_fragment_tests 1
19986#define VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION 1
19987#define VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME "VK_AMD_shader_early_and_late_fragment_tests"
19988typedef struct VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD {
19989 VkStructureType sType;
19990 void* pNext;
19991 VkBool32 shaderEarlyAndLateFragmentTests;
19992} VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD;
19993
19994
19995
19996// VK_NV_fragment_shading_rate_enums is a preprocessor guard. Do not pass it to API calls.
19997#define VK_NV_fragment_shading_rate_enums 1
19998#define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION 1
19999#define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME "VK_NV_fragment_shading_rate_enums"
20000
20001typedef enum VkFragmentShadingRateTypeNV {
20002 VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = 0,
20003 VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = 1,
20004 VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
20005} VkFragmentShadingRateTypeNV;
20006
20007typedef enum VkFragmentShadingRateNV {
20008 VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0,
20009 VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1,
20010 VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 4,
20011 VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 5,
20012 VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 6,
20013 VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 9,
20014 VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 10,
20015 VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 11,
20016 VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 12,
20017 VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 13,
20018 VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 14,
20019 VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = 15,
20020 VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV = 0x7FFFFFFF
20021} VkFragmentShadingRateNV;
20022typedef struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV {
20023 VkStructureType sType;
20024 void* pNext;
20025 VkBool32 fragmentShadingRateEnums;
20026 VkBool32 supersampleFragmentShadingRates;
20027 VkBool32 noInvocationFragmentShadingRates;
20028} VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV;
20029
20030typedef struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV {
20031 VkStructureType sType;
20032 void* pNext;
20033 VkSampleCountFlagBits maxFragmentShadingRateInvocationCount;
20034} VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV;
20035
20036typedef struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV {
20037 VkStructureType sType;
20038 const void* pNext;
20039 VkFragmentShadingRateTypeNV shadingRateType;
20040 VkFragmentShadingRateNV shadingRate;
20041 VkFragmentShadingRateCombinerOpKHR combinerOps[2];
20042} VkPipelineFragmentShadingRateEnumStateCreateInfoNV;
20043
20044typedef void (VKAPI_PTR *PFN_vkCmdSetFragmentShadingRateEnumNV)(VkCommandBuffer commandBuffer, VkFragmentShadingRateNV shadingRate, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]);
20045
20046#ifndef VK_NO_PROTOTYPES
20047#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20048VKAPI_ATTR void VKAPI_CALL vkCmdSetFragmentShadingRateEnumNV(
20049 VkCommandBuffer commandBuffer,
20050 VkFragmentShadingRateNV shadingRate,
20051 const VkFragmentShadingRateCombinerOpKHR combinerOps[2]);
20052#endif
20053#endif
20054
20055
20056// VK_NV_ray_tracing_motion_blur is a preprocessor guard. Do not pass it to API calls.
20057#define VK_NV_ray_tracing_motion_blur 1
20058#define VK_NV_RAY_TRACING_MOTION_BLUR_SPEC_VERSION 1
20059#define VK_NV_RAY_TRACING_MOTION_BLUR_EXTENSION_NAME "VK_NV_ray_tracing_motion_blur"
20060
20061typedef enum VkAccelerationStructureMotionInstanceTypeNV {
20062 VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV = 0,
20063 VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1,
20064 VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV = 2,
20065 VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
20066} VkAccelerationStructureMotionInstanceTypeNV;
20067typedef VkFlags VkAccelerationStructureMotionInfoFlagsNV;
20068typedef VkFlags VkAccelerationStructureMotionInstanceFlagsNV;
20069typedef union VkDeviceOrHostAddressConstKHR {
20070 VkDeviceAddress deviceAddress;
20071 const void* hostAddress;
20072} VkDeviceOrHostAddressConstKHR;
20073
20074typedef struct VkAccelerationStructureGeometryMotionTrianglesDataNV {
20075 VkStructureType sType;
20076 const void* pNext;
20077 VkDeviceOrHostAddressConstKHR vertexData;
20078} VkAccelerationStructureGeometryMotionTrianglesDataNV;
20079
20080typedef struct VkAccelerationStructureMotionInfoNV {
20081 VkStructureType sType;
20082 const void* pNext;
20083 uint32_t maxInstances;
20084 VkAccelerationStructureMotionInfoFlagsNV flags;
20085} VkAccelerationStructureMotionInfoNV;
20086
20087typedef struct VkAccelerationStructureMatrixMotionInstanceNV {
20088 VkTransformMatrixKHR transformT0;
20089 VkTransformMatrixKHR transformT1;
20090 uint32_t instanceCustomIndex:24;
20091 uint32_t mask:8;
20092 uint32_t instanceShaderBindingTableRecordOffset:24;
20093 VkGeometryInstanceFlagsKHR flags:8;
20094 uint64_t accelerationStructureReference;
20095} VkAccelerationStructureMatrixMotionInstanceNV;
20096
20097typedef struct VkSRTDataNV {
20098 float sx;
20099 float a;
20100 float b;
20101 float pvx;
20102 float sy;
20103 float c;
20104 float pvy;
20105 float sz;
20106 float pvz;
20107 float qx;
20108 float qy;
20109 float qz;
20110 float qw;
20111 float tx;
20112 float ty;
20113 float tz;
20114} VkSRTDataNV;
20115
20116typedef struct VkAccelerationStructureSRTMotionInstanceNV {
20117 VkSRTDataNV transformT0;
20118 VkSRTDataNV transformT1;
20119 uint32_t instanceCustomIndex:24;
20120 uint32_t mask:8;
20121 uint32_t instanceShaderBindingTableRecordOffset:24;
20122 VkGeometryInstanceFlagsKHR flags:8;
20123 uint64_t accelerationStructureReference;
20124} VkAccelerationStructureSRTMotionInstanceNV;
20125
20126typedef union VkAccelerationStructureMotionInstanceDataNV {
20127 VkAccelerationStructureInstanceKHR staticInstance;
20128 VkAccelerationStructureMatrixMotionInstanceNV matrixMotionInstance;
20129 VkAccelerationStructureSRTMotionInstanceNV srtMotionInstance;
20130} VkAccelerationStructureMotionInstanceDataNV;
20131
20132typedef struct VkAccelerationStructureMotionInstanceNV {
20133 VkAccelerationStructureMotionInstanceTypeNV type;
20134 VkAccelerationStructureMotionInstanceFlagsNV flags;
20135 VkAccelerationStructureMotionInstanceDataNV data;
20136} VkAccelerationStructureMotionInstanceNV;
20137
20138typedef struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV {
20139 VkStructureType sType;
20140 void* pNext;
20141 VkBool32 rayTracingMotionBlur;
20142 VkBool32 rayTracingMotionBlurPipelineTraceRaysIndirect;
20143} VkPhysicalDeviceRayTracingMotionBlurFeaturesNV;
20144
20145
20146
20147// VK_EXT_ycbcr_2plane_444_formats is a preprocessor guard. Do not pass it to API calls.
20148#define VK_EXT_ycbcr_2plane_444_formats 1
20149#define VK_EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION 1
20150#define VK_EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME "VK_EXT_ycbcr_2plane_444_formats"
20151typedef struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT {
20152 VkStructureType sType;
20153 void* pNext;
20154 VkBool32 ycbcr2plane444Formats;
20155} VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT;
20156
20157
20158
20159// VK_EXT_fragment_density_map2 is a preprocessor guard. Do not pass it to API calls.
20160#define VK_EXT_fragment_density_map2 1
20161#define VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION 1
20162#define VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME "VK_EXT_fragment_density_map2"
20163typedef struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT {
20164 VkStructureType sType;
20165 void* pNext;
20166 VkBool32 fragmentDensityMapDeferred;
20167} VkPhysicalDeviceFragmentDensityMap2FeaturesEXT;
20168
20169typedef struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT {
20170 VkStructureType sType;
20171 void* pNext;
20172 VkBool32 subsampledLoads;
20173 VkBool32 subsampledCoarseReconstructionEarlyAccess;
20174 uint32_t maxSubsampledArrayLayers;
20175 uint32_t maxDescriptorSetSubsampledSamplers;
20176} VkPhysicalDeviceFragmentDensityMap2PropertiesEXT;
20177
20178
20179
20180// VK_QCOM_rotated_copy_commands is a preprocessor guard. Do not pass it to API calls.
20181#define VK_QCOM_rotated_copy_commands 1
20182#define VK_QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION 2
20183#define VK_QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME "VK_QCOM_rotated_copy_commands"
20184typedef struct VkCopyCommandTransformInfoQCOM {
20185 VkStructureType sType;
20186 const void* pNext;
20187 VkSurfaceTransformFlagBitsKHR transform;
20188} VkCopyCommandTransformInfoQCOM;
20189
20190
20191
20192// VK_EXT_image_robustness is a preprocessor guard. Do not pass it to API calls.
20193#define VK_EXT_image_robustness 1
20194#define VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION 1
20195#define VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_image_robustness"
20196typedef VkPhysicalDeviceImageRobustnessFeatures VkPhysicalDeviceImageRobustnessFeaturesEXT;
20197
20198
20199
20200// VK_EXT_image_compression_control is a preprocessor guard. Do not pass it to API calls.
20201#define VK_EXT_image_compression_control 1
20202#define VK_EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION 1
20203#define VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME "VK_EXT_image_compression_control"
20204
20205typedef enum VkImageCompressionFlagBitsEXT {
20206 VK_IMAGE_COMPRESSION_DEFAULT_EXT = 0,
20207 VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT = 0x00000001,
20208 VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT = 0x00000002,
20209 VK_IMAGE_COMPRESSION_DISABLED_EXT = 0x00000004,
20210 VK_IMAGE_COMPRESSION_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
20211} VkImageCompressionFlagBitsEXT;
20212typedef VkFlags VkImageCompressionFlagsEXT;
20213
20214typedef enum VkImageCompressionFixedRateFlagBitsEXT {
20215 VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT = 0,
20216 VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT = 0x00000001,
20217 VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT = 0x00000002,
20218 VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT = 0x00000004,
20219 VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT = 0x00000008,
20220 VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT = 0x00000010,
20221 VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT = 0x00000020,
20222 VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT = 0x00000040,
20223 VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT = 0x00000080,
20224 VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT = 0x00000100,
20225 VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT = 0x00000200,
20226 VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT = 0x00000400,
20227 VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT = 0x00000800,
20228 VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT = 0x00001000,
20229 VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT = 0x00002000,
20230 VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT = 0x00004000,
20231 VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT = 0x00008000,
20232 VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT = 0x00010000,
20233 VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT = 0x00020000,
20234 VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT = 0x00040000,
20235 VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT = 0x00080000,
20236 VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT = 0x00100000,
20237 VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT = 0x00200000,
20238 VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT = 0x00400000,
20239 VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT = 0x00800000,
20240 VK_IMAGE_COMPRESSION_FIXED_RATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
20241} VkImageCompressionFixedRateFlagBitsEXT;
20242typedef VkFlags VkImageCompressionFixedRateFlagsEXT;
20243typedef struct VkPhysicalDeviceImageCompressionControlFeaturesEXT {
20244 VkStructureType sType;
20245 void* pNext;
20246 VkBool32 imageCompressionControl;
20247} VkPhysicalDeviceImageCompressionControlFeaturesEXT;
20248
20249typedef struct VkImageCompressionControlEXT {
20250 VkStructureType sType;
20251 const void* pNext;
20252 VkImageCompressionFlagsEXT flags;
20253 uint32_t compressionControlPlaneCount;
20254 VkImageCompressionFixedRateFlagsEXT* pFixedRateFlags;
20255} VkImageCompressionControlEXT;
20256
20257typedef struct VkImageCompressionPropertiesEXT {
20258 VkStructureType sType;
20259 void* pNext;
20260 VkImageCompressionFlagsEXT imageCompressionFlags;
20261 VkImageCompressionFixedRateFlagsEXT imageCompressionFixedRateFlags;
20262} VkImageCompressionPropertiesEXT;
20263
20264
20265
20266// VK_EXT_attachment_feedback_loop_layout is a preprocessor guard. Do not pass it to API calls.
20267#define VK_EXT_attachment_feedback_loop_layout 1
20268#define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_SPEC_VERSION 2
20269#define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME "VK_EXT_attachment_feedback_loop_layout"
20270typedef struct VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT {
20271 VkStructureType sType;
20272 void* pNext;
20273 VkBool32 attachmentFeedbackLoopLayout;
20274} VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT;
20275
20276
20277
20278// VK_EXT_4444_formats is a preprocessor guard. Do not pass it to API calls.
20279#define VK_EXT_4444_formats 1
20280#define VK_EXT_4444_FORMATS_SPEC_VERSION 1
20281#define VK_EXT_4444_FORMATS_EXTENSION_NAME "VK_EXT_4444_formats"
20282typedef struct VkPhysicalDevice4444FormatsFeaturesEXT {
20283 VkStructureType sType;
20284 void* pNext;
20285 VkBool32 formatA4R4G4B4;
20286 VkBool32 formatA4B4G4R4;
20287} VkPhysicalDevice4444FormatsFeaturesEXT;
20288
20289
20290
20291// VK_EXT_device_fault is a preprocessor guard. Do not pass it to API calls.
20292#define VK_EXT_device_fault 1
20293#define VK_EXT_DEVICE_FAULT_SPEC_VERSION 2
20294#define VK_EXT_DEVICE_FAULT_EXTENSION_NAME "VK_EXT_device_fault"
20295typedef VkDeviceFaultAddressTypeKHR VkDeviceFaultAddressTypeEXT;
20296
20297typedef VkDeviceFaultVendorBinaryHeaderVersionKHR VkDeviceFaultVendorBinaryHeaderVersionEXT;
20298
20299typedef struct VkPhysicalDeviceFaultFeaturesEXT {
20300 VkStructureType sType;
20301 void* pNext;
20302 VkBool32 deviceFault;
20303 VkBool32 deviceFaultVendorBinary;
20304} VkPhysicalDeviceFaultFeaturesEXT;
20305
20306typedef struct VkDeviceFaultCountsEXT {
20307 VkStructureType sType;
20308 void* pNext;
20309 uint32_t addressInfoCount;
20310 uint32_t vendorInfoCount;
20311 VkDeviceSize vendorBinarySize;
20312} VkDeviceFaultCountsEXT;
20313
20314typedef struct VkDeviceFaultInfoEXT {
20315 VkStructureType sType;
20316 void* pNext;
20317 char description[VK_MAX_DESCRIPTION_SIZE];
20318 VkDeviceFaultAddressInfoKHR* pAddressInfos;
20319 VkDeviceFaultVendorInfoKHR* pVendorInfos;
20320 void* pVendorBinaryData;
20321} VkDeviceFaultInfoEXT;
20322
20323typedef VkDeviceFaultAddressInfoKHR VkDeviceFaultAddressInfoEXT;
20324
20325typedef VkDeviceFaultVendorInfoKHR VkDeviceFaultVendorInfoEXT;
20326
20327typedef VkDeviceFaultVendorBinaryHeaderVersionOneKHR VkDeviceFaultVendorBinaryHeaderVersionOneEXT;
20328
20329typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceFaultInfoEXT)(VkDevice device, VkDeviceFaultCountsEXT* pFaultCounts, VkDeviceFaultInfoEXT* pFaultInfo);
20330
20331#ifndef VK_NO_PROTOTYPES
20332#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20333VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceFaultInfoEXT(
20334 VkDevice device,
20335 VkDeviceFaultCountsEXT* pFaultCounts,
20336 VkDeviceFaultInfoEXT* pFaultInfo);
20337#endif
20338#endif
20339
20340
20341// VK_ARM_rasterization_order_attachment_access is a preprocessor guard. Do not pass it to API calls.
20342#define VK_ARM_rasterization_order_attachment_access 1
20343#define VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION 1
20344#define VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME "VK_ARM_rasterization_order_attachment_access"
20345typedef struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT {
20346 VkStructureType sType;
20347 void* pNext;
20348 VkBool32 rasterizationOrderColorAttachmentAccess;
20349 VkBool32 rasterizationOrderDepthAttachmentAccess;
20350 VkBool32 rasterizationOrderStencilAttachmentAccess;
20351} VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT;
20352
20353typedef VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM;
20354
20355
20356
20357// VK_EXT_rgba10x6_formats is a preprocessor guard. Do not pass it to API calls.
20358#define VK_EXT_rgba10x6_formats 1
20359#define VK_EXT_RGBA10X6_FORMATS_SPEC_VERSION 1
20360#define VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME "VK_EXT_rgba10x6_formats"
20361typedef struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT {
20362 VkStructureType sType;
20363 void* pNext;
20364 VkBool32 formatRgba10x6WithoutYCbCrSampler;
20365} VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT;
20366
20367
20368
20369// VK_VALVE_mutable_descriptor_type is a preprocessor guard. Do not pass it to API calls.
20370#define VK_VALVE_mutable_descriptor_type 1
20371#define VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION 1
20372#define VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME "VK_VALVE_mutable_descriptor_type"
20373typedef struct VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT {
20374 VkStructureType sType;
20375 void* pNext;
20376 VkBool32 mutableDescriptorType;
20377} VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT;
20378
20379typedef VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE;
20380
20381typedef struct VkMutableDescriptorTypeListEXT {
20382 uint32_t descriptorTypeCount;
20383 const VkDescriptorType* pDescriptorTypes;
20384} VkMutableDescriptorTypeListEXT;
20385
20386typedef VkMutableDescriptorTypeListEXT VkMutableDescriptorTypeListVALVE;
20387
20388typedef struct VkMutableDescriptorTypeCreateInfoEXT {
20389 VkStructureType sType;
20390 const void* pNext;
20391 uint32_t mutableDescriptorTypeListCount;
20392 const VkMutableDescriptorTypeListEXT* pMutableDescriptorTypeLists;
20393} VkMutableDescriptorTypeCreateInfoEXT;
20394
20395typedef VkMutableDescriptorTypeCreateInfoEXT VkMutableDescriptorTypeCreateInfoVALVE;
20396
20397
20398
20399// VK_EXT_vertex_input_dynamic_state is a preprocessor guard. Do not pass it to API calls.
20400#define VK_EXT_vertex_input_dynamic_state 1
20401#define VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION 2
20402#define VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_vertex_input_dynamic_state"
20403typedef struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT {
20404 VkStructureType sType;
20405 void* pNext;
20406 VkBool32 vertexInputDynamicState;
20407} VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT;
20408
20409typedef struct VkVertexInputBindingDescription2EXT {
20410 VkStructureType sType;
20411 void* pNext;
20412 uint32_t binding;
20413 uint32_t stride;
20414 VkVertexInputRate inputRate;
20415 uint32_t divisor;
20416} VkVertexInputBindingDescription2EXT;
20417
20418typedef struct VkVertexInputAttributeDescription2EXT {
20419 VkStructureType sType;
20420 void* pNext;
20421 uint32_t location;
20422 uint32_t binding;
20423 VkFormat format;
20424 uint32_t offset;
20425} VkVertexInputAttributeDescription2EXT;
20426
20427typedef void (VKAPI_PTR *PFN_vkCmdSetVertexInputEXT)(VkCommandBuffer commandBuffer, uint32_t vertexBindingDescriptionCount, const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions, uint32_t vertexAttributeDescriptionCount, const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions);
20428
20429#ifndef VK_NO_PROTOTYPES
20430#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20431VKAPI_ATTR void VKAPI_CALL vkCmdSetVertexInputEXT(
20432 VkCommandBuffer commandBuffer,
20433 uint32_t vertexBindingDescriptionCount,
20434 const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions,
20435 uint32_t vertexAttributeDescriptionCount,
20436 const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions);
20437#endif
20438#endif
20439
20440
20441// VK_EXT_physical_device_drm is a preprocessor guard. Do not pass it to API calls.
20442#define VK_EXT_physical_device_drm 1
20443#define VK_EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION 1
20444#define VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME "VK_EXT_physical_device_drm"
20445typedef struct VkPhysicalDeviceDrmPropertiesEXT {
20446 VkStructureType sType;
20447 void* pNext;
20448 VkBool32 hasPrimary;
20449 VkBool32 hasRender;
20450 int64_t primaryMajor;
20451 int64_t primaryMinor;
20452 int64_t renderMajor;
20453 int64_t renderMinor;
20454} VkPhysicalDeviceDrmPropertiesEXT;
20455
20456
20457
20458// VK_EXT_device_address_binding_report is a preprocessor guard. Do not pass it to API calls.
20459#define VK_EXT_device_address_binding_report 1
20460#define VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_SPEC_VERSION 1
20461#define VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_EXTENSION_NAME "VK_EXT_device_address_binding_report"
20462
20463typedef enum VkDeviceAddressBindingTypeEXT {
20464 VK_DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT = 0,
20465 VK_DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT = 1,
20466 VK_DEVICE_ADDRESS_BINDING_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
20467} VkDeviceAddressBindingTypeEXT;
20468
20469typedef enum VkDeviceAddressBindingFlagBitsEXT {
20470 VK_DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT = 0x00000001,
20471 VK_DEVICE_ADDRESS_BINDING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
20472} VkDeviceAddressBindingFlagBitsEXT;
20473typedef VkFlags VkDeviceAddressBindingFlagsEXT;
20474typedef struct VkPhysicalDeviceAddressBindingReportFeaturesEXT {
20475 VkStructureType sType;
20476 void* pNext;
20477 VkBool32 reportAddressBinding;
20478} VkPhysicalDeviceAddressBindingReportFeaturesEXT;
20479
20480typedef struct VkDeviceAddressBindingCallbackDataEXT {
20481 VkStructureType sType;
20482 void* pNext;
20483 VkDeviceAddressBindingFlagsEXT flags;
20484 VkDeviceAddress baseAddress;
20485 VkDeviceSize size;
20486 VkDeviceAddressBindingTypeEXT bindingType;
20487} VkDeviceAddressBindingCallbackDataEXT;
20488
20489
20490
20491// VK_EXT_depth_clip_control is a preprocessor guard. Do not pass it to API calls.
20492#define VK_EXT_depth_clip_control 1
20493#define VK_EXT_DEPTH_CLIP_CONTROL_SPEC_VERSION 1
20494#define VK_EXT_DEPTH_CLIP_CONTROL_EXTENSION_NAME "VK_EXT_depth_clip_control"
20495typedef struct VkPhysicalDeviceDepthClipControlFeaturesEXT {
20496 VkStructureType sType;
20497 void* pNext;
20498 VkBool32 depthClipControl;
20499} VkPhysicalDeviceDepthClipControlFeaturesEXT;
20500
20501typedef struct VkPipelineViewportDepthClipControlCreateInfoEXT {
20502 VkStructureType sType;
20503 const void* pNext;
20504 VkBool32 negativeOneToOne;
20505} VkPipelineViewportDepthClipControlCreateInfoEXT;
20506
20507
20508
20509// VK_EXT_primitive_topology_list_restart is a preprocessor guard. Do not pass it to API calls.
20510#define VK_EXT_primitive_topology_list_restart 1
20511#define VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_SPEC_VERSION 1
20512#define VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_EXTENSION_NAME "VK_EXT_primitive_topology_list_restart"
20513typedef struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT {
20514 VkStructureType sType;
20515 void* pNext;
20516 VkBool32 primitiveTopologyListRestart;
20517 VkBool32 primitiveTopologyPatchListRestart;
20518} VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT;
20519
20520
20521
20522// VK_EXT_present_mode_fifo_latest_ready is a preprocessor guard. Do not pass it to API calls.
20523#define VK_EXT_present_mode_fifo_latest_ready 1
20524#define VK_EXT_PRESENT_MODE_FIFO_LATEST_READY_SPEC_VERSION 1
20525#define VK_EXT_PRESENT_MODE_FIFO_LATEST_READY_EXTENSION_NAME "VK_EXT_present_mode_fifo_latest_ready"
20526typedef VkPhysicalDevicePresentModeFifoLatestReadyFeaturesKHR VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT;
20527
20528
20529
20530// VK_HUAWEI_subpass_shading is a preprocessor guard. Do not pass it to API calls.
20531#define VK_HUAWEI_subpass_shading 1
20532#define VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION 3
20533#define VK_HUAWEI_SUBPASS_SHADING_EXTENSION_NAME "VK_HUAWEI_subpass_shading"
20534typedef struct VkSubpassShadingPipelineCreateInfoHUAWEI {
20535 VkStructureType sType;
20536 void* pNext;
20537 VkRenderPass renderPass;
20538 uint32_t subpass;
20539} VkSubpassShadingPipelineCreateInfoHUAWEI;
20540
20541typedef struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI {
20542 VkStructureType sType;
20543 void* pNext;
20544 VkBool32 subpassShading;
20545} VkPhysicalDeviceSubpassShadingFeaturesHUAWEI;
20546
20547typedef struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI {
20548 VkStructureType sType;
20549 void* pNext;
20550 uint32_t maxSubpassShadingWorkgroupSizeAspectRatio;
20551} VkPhysicalDeviceSubpassShadingPropertiesHUAWEI;
20552
20553typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI)(VkDevice device, VkRenderPass renderpass, VkExtent2D* pMaxWorkgroupSize);
20554typedef void (VKAPI_PTR *PFN_vkCmdSubpassShadingHUAWEI)(VkCommandBuffer commandBuffer);
20555
20556#ifndef VK_NO_PROTOTYPES
20557#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20558VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(
20559 VkDevice device,
20560 VkRenderPass renderpass,
20561 VkExtent2D* pMaxWorkgroupSize);
20562#endif
20563
20564#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20565VKAPI_ATTR void VKAPI_CALL vkCmdSubpassShadingHUAWEI(
20566 VkCommandBuffer commandBuffer);
20567#endif
20568#endif
20569
20570
20571// VK_HUAWEI_invocation_mask is a preprocessor guard. Do not pass it to API calls.
20572#define VK_HUAWEI_invocation_mask 1
20573#define VK_HUAWEI_INVOCATION_MASK_SPEC_VERSION 1
20574#define VK_HUAWEI_INVOCATION_MASK_EXTENSION_NAME "VK_HUAWEI_invocation_mask"
20575typedef struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI {
20576 VkStructureType sType;
20577 void* pNext;
20578 VkBool32 invocationMask;
20579} VkPhysicalDeviceInvocationMaskFeaturesHUAWEI;
20580
20581typedef void (VKAPI_PTR *PFN_vkCmdBindInvocationMaskHUAWEI)(VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout);
20582
20583#ifndef VK_NO_PROTOTYPES
20584#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20585VKAPI_ATTR void VKAPI_CALL vkCmdBindInvocationMaskHUAWEI(
20586 VkCommandBuffer commandBuffer,
20587 VkImageView imageView,
20588 VkImageLayout imageLayout);
20589#endif
20590#endif
20591
20592
20593// VK_NV_external_memory_rdma is a preprocessor guard. Do not pass it to API calls.
20594#define VK_NV_external_memory_rdma 1
20595typedef void* VkRemoteAddressNV;
20596#define VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION 1
20597#define VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME "VK_NV_external_memory_rdma"
20598typedef struct VkMemoryGetRemoteAddressInfoNV {
20599 VkStructureType sType;
20600 const void* pNext;
20601 VkDeviceMemory memory;
20602 VkExternalMemoryHandleTypeFlagBits handleType;
20603} VkMemoryGetRemoteAddressInfoNV;
20604
20605typedef struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV {
20606 VkStructureType sType;
20607 void* pNext;
20608 VkBool32 externalMemoryRDMA;
20609} VkPhysicalDeviceExternalMemoryRDMAFeaturesNV;
20610
20611typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryRemoteAddressNV)(VkDevice device, const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo, VkRemoteAddressNV* pAddress);
20612
20613#ifndef VK_NO_PROTOTYPES
20614#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20615VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryRemoteAddressNV(
20616 VkDevice device,
20617 const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo,
20618 VkRemoteAddressNV* pAddress);
20619#endif
20620#endif
20621
20622
20623// VK_EXT_pipeline_properties is a preprocessor guard. Do not pass it to API calls.
20624#define VK_EXT_pipeline_properties 1
20625#define VK_EXT_PIPELINE_PROPERTIES_SPEC_VERSION 1
20626#define VK_EXT_PIPELINE_PROPERTIES_EXTENSION_NAME "VK_EXT_pipeline_properties"
20627typedef VkPipelineInfoKHR VkPipelineInfoEXT;
20628
20629typedef struct VkPipelinePropertiesIdentifierEXT {
20630 VkStructureType sType;
20631 void* pNext;
20632 uint8_t pipelineIdentifier[VK_UUID_SIZE];
20633} VkPipelinePropertiesIdentifierEXT;
20634
20635typedef struct VkPhysicalDevicePipelinePropertiesFeaturesEXT {
20636 VkStructureType sType;
20637 void* pNext;
20638 VkBool32 pipelinePropertiesIdentifier;
20639} VkPhysicalDevicePipelinePropertiesFeaturesEXT;
20640
20641typedef VkResult (VKAPI_PTR *PFN_vkGetPipelinePropertiesEXT)(VkDevice device, const VkPipelineInfoKHR* pPipelineInfo, VkBaseOutStructure* pPipelineProperties);
20642
20643#ifndef VK_NO_PROTOTYPES
20644#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20645VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelinePropertiesEXT(
20646 VkDevice device,
20647 const VkPipelineInfoKHR* pPipelineInfo,
20648 VkBaseOutStructure* pPipelineProperties);
20649#endif
20650#endif
20651
20652
20653// VK_EXT_frame_boundary is a preprocessor guard. Do not pass it to API calls.
20654#define VK_EXT_frame_boundary 1
20655#define VK_EXT_FRAME_BOUNDARY_SPEC_VERSION 1
20656#define VK_EXT_FRAME_BOUNDARY_EXTENSION_NAME "VK_EXT_frame_boundary"
20657
20658typedef enum VkFrameBoundaryFlagBitsEXT {
20659 VK_FRAME_BOUNDARY_FRAME_END_BIT_EXT = 0x00000001,
20660 VK_FRAME_BOUNDARY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
20661} VkFrameBoundaryFlagBitsEXT;
20662typedef VkFlags VkFrameBoundaryFlagsEXT;
20663typedef struct VkPhysicalDeviceFrameBoundaryFeaturesEXT {
20664 VkStructureType sType;
20665 void* pNext;
20666 VkBool32 frameBoundary;
20667} VkPhysicalDeviceFrameBoundaryFeaturesEXT;
20668
20669typedef struct VkFrameBoundaryEXT {
20670 VkStructureType sType;
20671 const void* pNext;
20672 VkFrameBoundaryFlagsEXT flags;
20673 uint64_t frameID;
20674 uint32_t imageCount;
20675 const VkImage* pImages;
20676 uint32_t bufferCount;
20677 const VkBuffer* pBuffers;
20678 uint64_t tagName;
20679 size_t tagSize;
20680 const void* pTag;
20681} VkFrameBoundaryEXT;
20682
20683
20684
20685// VK_EXT_multisampled_render_to_single_sampled is a preprocessor guard. Do not pass it to API calls.
20686#define VK_EXT_multisampled_render_to_single_sampled 1
20687#define VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION 1
20688#define VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME "VK_EXT_multisampled_render_to_single_sampled"
20689typedef struct VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT {
20690 VkStructureType sType;
20691 void* pNext;
20692 VkBool32 multisampledRenderToSingleSampled;
20693} VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT;
20694
20695typedef struct VkSubpassResolvePerformanceQueryEXT {
20696 VkStructureType sType;
20697 void* pNext;
20698 VkBool32 optimal;
20699} VkSubpassResolvePerformanceQueryEXT;
20700
20701typedef struct VkMultisampledRenderToSingleSampledInfoEXT {
20702 VkStructureType sType;
20703 const void* pNext;
20704 VkBool32 multisampledRenderToSingleSampledEnable;
20705 VkSampleCountFlagBits rasterizationSamples;
20706} VkMultisampledRenderToSingleSampledInfoEXT;
20707
20708
20709
20710// VK_EXT_extended_dynamic_state2 is a preprocessor guard. Do not pass it to API calls.
20711#define VK_EXT_extended_dynamic_state2 1
20712#define VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION 1
20713#define VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME "VK_EXT_extended_dynamic_state2"
20714typedef struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT {
20715 VkStructureType sType;
20716 void* pNext;
20717 VkBool32 extendedDynamicState2;
20718 VkBool32 extendedDynamicState2LogicOp;
20719 VkBool32 extendedDynamicState2PatchControlPoints;
20720} VkPhysicalDeviceExtendedDynamicState2FeaturesEXT;
20721
20722typedef void (VKAPI_PTR *PFN_vkCmdSetPatchControlPointsEXT)(VkCommandBuffer commandBuffer, uint32_t patchControlPoints);
20723typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizerDiscardEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable);
20724typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBiasEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable);
20725typedef void (VKAPI_PTR *PFN_vkCmdSetLogicOpEXT)(VkCommandBuffer commandBuffer, VkLogicOp logicOp);
20726typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveRestartEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable);
20727
20728#ifndef VK_NO_PROTOTYPES
20729#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20730VKAPI_ATTR void VKAPI_CALL vkCmdSetPatchControlPointsEXT(
20731 VkCommandBuffer commandBuffer,
20732 uint32_t patchControlPoints);
20733#endif
20734
20735#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20736VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizerDiscardEnableEXT(
20737 VkCommandBuffer commandBuffer,
20738 VkBool32 rasterizerDiscardEnable);
20739#endif
20740
20741#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20742VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBiasEnableEXT(
20743 VkCommandBuffer commandBuffer,
20744 VkBool32 depthBiasEnable);
20745#endif
20746
20747#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20748VKAPI_ATTR void VKAPI_CALL vkCmdSetLogicOpEXT(
20749 VkCommandBuffer commandBuffer,
20750 VkLogicOp logicOp);
20751#endif
20752
20753#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20754VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveRestartEnableEXT(
20755 VkCommandBuffer commandBuffer,
20756 VkBool32 primitiveRestartEnable);
20757#endif
20758#endif
20759
20760
20761// VK_EXT_color_write_enable is a preprocessor guard. Do not pass it to API calls.
20762#define VK_EXT_color_write_enable 1
20763#define VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION 1
20764#define VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME "VK_EXT_color_write_enable"
20765typedef struct VkPhysicalDeviceColorWriteEnableFeaturesEXT {
20766 VkStructureType sType;
20767 void* pNext;
20768 VkBool32 colorWriteEnable;
20769} VkPhysicalDeviceColorWriteEnableFeaturesEXT;
20770
20771typedef struct VkPipelineColorWriteCreateInfoEXT {
20772 VkStructureType sType;
20773 const void* pNext;
20774 uint32_t attachmentCount;
20775 const VkBool32* pColorWriteEnables;
20776} VkPipelineColorWriteCreateInfoEXT;
20777
20778typedef void (VKAPI_PTR *PFN_vkCmdSetColorWriteEnableEXT)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkBool32* pColorWriteEnables);
20779
20780#ifndef VK_NO_PROTOTYPES
20781#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20782VKAPI_ATTR void VKAPI_CALL vkCmdSetColorWriteEnableEXT(
20783 VkCommandBuffer commandBuffer,
20784 uint32_t attachmentCount,
20785 const VkBool32* pColorWriteEnables);
20786#endif
20787#endif
20788
20789
20790// VK_EXT_primitives_generated_query is a preprocessor guard. Do not pass it to API calls.
20791#define VK_EXT_primitives_generated_query 1
20792#define VK_EXT_PRIMITIVES_GENERATED_QUERY_SPEC_VERSION 1
20793#define VK_EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME "VK_EXT_primitives_generated_query"
20794typedef struct VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT {
20795 VkStructureType sType;
20796 void* pNext;
20797 VkBool32 primitivesGeneratedQuery;
20798 VkBool32 primitivesGeneratedQueryWithRasterizerDiscard;
20799 VkBool32 primitivesGeneratedQueryWithNonZeroStreams;
20800} VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT;
20801
20802
20803
20804// VK_EXT_global_priority_query is a preprocessor guard. Do not pass it to API calls.
20805#define VK_EXT_global_priority_query 1
20806#define VK_EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION 1
20807#define VK_EXT_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME "VK_EXT_global_priority_query"
20808#define VK_MAX_GLOBAL_PRIORITY_SIZE_EXT VK_MAX_GLOBAL_PRIORITY_SIZE
20809typedef VkPhysicalDeviceGlobalPriorityQueryFeatures VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT;
20810
20811typedef VkQueueFamilyGlobalPriorityProperties VkQueueFamilyGlobalPriorityPropertiesEXT;
20812
20813
20814
20815// VK_VALVE_video_encode_rgb_conversion is a preprocessor guard. Do not pass it to API calls.
20816#define VK_VALVE_video_encode_rgb_conversion 1
20817#define VK_VALVE_VIDEO_ENCODE_RGB_CONVERSION_SPEC_VERSION 1
20818#define VK_VALVE_VIDEO_ENCODE_RGB_CONVERSION_EXTENSION_NAME "VK_VALVE_video_encode_rgb_conversion"
20819
20820typedef enum VkVideoEncodeRgbModelConversionFlagBitsVALVE {
20821 VK_VIDEO_ENCODE_RGB_MODEL_CONVERSION_RGB_IDENTITY_BIT_VALVE = 0x00000001,
20822 VK_VIDEO_ENCODE_RGB_MODEL_CONVERSION_YCBCR_IDENTITY_BIT_VALVE = 0x00000002,
20823 VK_VIDEO_ENCODE_RGB_MODEL_CONVERSION_YCBCR_709_BIT_VALVE = 0x00000004,
20824 VK_VIDEO_ENCODE_RGB_MODEL_CONVERSION_YCBCR_601_BIT_VALVE = 0x00000008,
20825 VK_VIDEO_ENCODE_RGB_MODEL_CONVERSION_YCBCR_2020_BIT_VALVE = 0x00000010,
20826 VK_VIDEO_ENCODE_RGB_MODEL_CONVERSION_FLAG_BITS_MAX_ENUM_VALVE = 0x7FFFFFFF
20827} VkVideoEncodeRgbModelConversionFlagBitsVALVE;
20828typedef VkFlags VkVideoEncodeRgbModelConversionFlagsVALVE;
20829
20830typedef enum VkVideoEncodeRgbRangeCompressionFlagBitsVALVE {
20831 VK_VIDEO_ENCODE_RGB_RANGE_COMPRESSION_FULL_RANGE_BIT_VALVE = 0x00000001,
20832 VK_VIDEO_ENCODE_RGB_RANGE_COMPRESSION_NARROW_RANGE_BIT_VALVE = 0x00000002,
20833 VK_VIDEO_ENCODE_RGB_RANGE_COMPRESSION_FLAG_BITS_MAX_ENUM_VALVE = 0x7FFFFFFF
20834} VkVideoEncodeRgbRangeCompressionFlagBitsVALVE;
20835typedef VkFlags VkVideoEncodeRgbRangeCompressionFlagsVALVE;
20836
20837typedef enum VkVideoEncodeRgbChromaOffsetFlagBitsVALVE {
20838 VK_VIDEO_ENCODE_RGB_CHROMA_OFFSET_COSITED_EVEN_BIT_VALVE = 0x00000001,
20839 VK_VIDEO_ENCODE_RGB_CHROMA_OFFSET_MIDPOINT_BIT_VALVE = 0x00000002,
20840 VK_VIDEO_ENCODE_RGB_CHROMA_OFFSET_FLAG_BITS_MAX_ENUM_VALVE = 0x7FFFFFFF
20841} VkVideoEncodeRgbChromaOffsetFlagBitsVALVE;
20842typedef VkFlags VkVideoEncodeRgbChromaOffsetFlagsVALVE;
20843typedef struct VkPhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE {
20844 VkStructureType sType;
20845 void* pNext;
20846 VkBool32 videoEncodeRgbConversion;
20847} VkPhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE;
20848
20849typedef struct VkVideoEncodeRgbConversionCapabilitiesVALVE {
20850 VkStructureType sType;
20851 void* pNext;
20852 VkVideoEncodeRgbModelConversionFlagsVALVE rgbModels;
20853 VkVideoEncodeRgbRangeCompressionFlagsVALVE rgbRanges;
20854 VkVideoEncodeRgbChromaOffsetFlagsVALVE xChromaOffsets;
20855 VkVideoEncodeRgbChromaOffsetFlagsVALVE yChromaOffsets;
20856} VkVideoEncodeRgbConversionCapabilitiesVALVE;
20857
20858typedef struct VkVideoEncodeProfileRgbConversionInfoVALVE {
20859 VkStructureType sType;
20860 const void* pNext;
20861 VkBool32 performEncodeRgbConversion;
20862} VkVideoEncodeProfileRgbConversionInfoVALVE;
20863
20864typedef struct VkVideoEncodeSessionRgbConversionCreateInfoVALVE {
20865 VkStructureType sType;
20866 const void* pNext;
20867 VkVideoEncodeRgbModelConversionFlagBitsVALVE rgbModel;
20868 VkVideoEncodeRgbRangeCompressionFlagBitsVALVE rgbRange;
20869 VkVideoEncodeRgbChromaOffsetFlagBitsVALVE xChromaOffset;
20870 VkVideoEncodeRgbChromaOffsetFlagBitsVALVE yChromaOffset;
20871} VkVideoEncodeSessionRgbConversionCreateInfoVALVE;
20872
20873
20874
20875// VK_EXT_image_view_min_lod is a preprocessor guard. Do not pass it to API calls.
20876#define VK_EXT_image_view_min_lod 1
20877#define VK_EXT_IMAGE_VIEW_MIN_LOD_SPEC_VERSION 1
20878#define VK_EXT_IMAGE_VIEW_MIN_LOD_EXTENSION_NAME "VK_EXT_image_view_min_lod"
20879typedef struct VkPhysicalDeviceImageViewMinLodFeaturesEXT {
20880 VkStructureType sType;
20881 void* pNext;
20882 VkBool32 minLod;
20883} VkPhysicalDeviceImageViewMinLodFeaturesEXT;
20884
20885typedef struct VkImageViewMinLodCreateInfoEXT {
20886 VkStructureType sType;
20887 const void* pNext;
20888 float minLod;
20889} VkImageViewMinLodCreateInfoEXT;
20890
20891
20892
20893// VK_EXT_multi_draw is a preprocessor guard. Do not pass it to API calls.
20894#define VK_EXT_multi_draw 1
20895#define VK_EXT_MULTI_DRAW_SPEC_VERSION 1
20896#define VK_EXT_MULTI_DRAW_EXTENSION_NAME "VK_EXT_multi_draw"
20897typedef struct VkPhysicalDeviceMultiDrawFeaturesEXT {
20898 VkStructureType sType;
20899 void* pNext;
20900 VkBool32 multiDraw;
20901} VkPhysicalDeviceMultiDrawFeaturesEXT;
20902
20903typedef struct VkPhysicalDeviceMultiDrawPropertiesEXT {
20904 VkStructureType sType;
20905 void* pNext;
20906 uint32_t maxMultiDrawCount;
20907} VkPhysicalDeviceMultiDrawPropertiesEXT;
20908
20909typedef struct VkMultiDrawInfoEXT {
20910 uint32_t firstVertex;
20911 uint32_t vertexCount;
20912} VkMultiDrawInfoEXT;
20913
20914typedef struct VkMultiDrawIndexedInfoEXT {
20915 uint32_t firstIndex;
20916 uint32_t indexCount;
20917 int32_t vertexOffset;
20918} VkMultiDrawIndexedInfoEXT;
20919
20920typedef void (VKAPI_PTR *PFN_vkCmdDrawMultiEXT)(VkCommandBuffer commandBuffer, uint32_t drawCount, const VkMultiDrawInfoEXT* pVertexInfo, uint32_t instanceCount, uint32_t firstInstance, uint32_t stride);
20921typedef 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);
20922
20923#ifndef VK_NO_PROTOTYPES
20924#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20925VKAPI_ATTR void VKAPI_CALL vkCmdDrawMultiEXT(
20926 VkCommandBuffer commandBuffer,
20927 uint32_t drawCount,
20928 const VkMultiDrawInfoEXT* pVertexInfo,
20929 uint32_t instanceCount,
20930 uint32_t firstInstance,
20931 uint32_t stride);
20932#endif
20933
20934#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20935VKAPI_ATTR void VKAPI_CALL vkCmdDrawMultiIndexedEXT(
20936 VkCommandBuffer commandBuffer,
20937 uint32_t drawCount,
20938 const VkMultiDrawIndexedInfoEXT* pIndexInfo,
20939 uint32_t instanceCount,
20940 uint32_t firstInstance,
20941 uint32_t stride,
20942 const int32_t* pVertexOffset);
20943#endif
20944#endif
20945
20946
20947// VK_EXT_image_2d_view_of_3d is a preprocessor guard. Do not pass it to API calls.
20948#define VK_EXT_image_2d_view_of_3d 1
20949#define VK_EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION 1
20950#define VK_EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME "VK_EXT_image_2d_view_of_3d"
20951typedef struct VkPhysicalDeviceImage2DViewOf3DFeaturesEXT {
20952 VkStructureType sType;
20953 void* pNext;
20954 VkBool32 image2DViewOf3D;
20955 VkBool32 sampler2DViewOf3D;
20956} VkPhysicalDeviceImage2DViewOf3DFeaturesEXT;
20957
20958
20959
20960// VK_EXT_shader_tile_image is a preprocessor guard. Do not pass it to API calls.
20961#define VK_EXT_shader_tile_image 1
20962#define VK_EXT_SHADER_TILE_IMAGE_SPEC_VERSION 1
20963#define VK_EXT_SHADER_TILE_IMAGE_EXTENSION_NAME "VK_EXT_shader_tile_image"
20964typedef struct VkPhysicalDeviceShaderTileImageFeaturesEXT {
20965 VkStructureType sType;
20966 void* pNext;
20967 VkBool32 shaderTileImageColorReadAccess;
20968 VkBool32 shaderTileImageDepthReadAccess;
20969 VkBool32 shaderTileImageStencilReadAccess;
20970} VkPhysicalDeviceShaderTileImageFeaturesEXT;
20971
20972typedef struct VkPhysicalDeviceShaderTileImagePropertiesEXT {
20973 VkStructureType sType;
20974 void* pNext;
20975 VkBool32 shaderTileImageCoherentReadAccelerated;
20976 VkBool32 shaderTileImageReadSampleFromPixelRateInvocation;
20977 VkBool32 shaderTileImageReadFromHelperInvocation;
20978} VkPhysicalDeviceShaderTileImagePropertiesEXT;
20979
20980
20981
20982// VK_EXT_opacity_micromap is a preprocessor guard. Do not pass it to API calls.
20983#define VK_EXT_opacity_micromap 1
20984VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkMicromapEXT)
20985#define VK_EXT_OPACITY_MICROMAP_SPEC_VERSION 2
20986#define VK_EXT_OPACITY_MICROMAP_EXTENSION_NAME "VK_EXT_opacity_micromap"
20987
20988typedef enum VkMicromapTypeEXT {
20989 VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT = 0,
20990#ifdef VK_ENABLE_BETA_EXTENSIONS
20991 VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV = 1000397000,
20992#endif
20993 VK_MICROMAP_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
20994} VkMicromapTypeEXT;
20995
20996typedef enum VkBuildMicromapModeEXT {
20997 VK_BUILD_MICROMAP_MODE_BUILD_EXT = 0,
20998 VK_BUILD_MICROMAP_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
20999} VkBuildMicromapModeEXT;
21000
21001typedef enum VkCopyMicromapModeEXT {
21002 VK_COPY_MICROMAP_MODE_CLONE_EXT = 0,
21003 VK_COPY_MICROMAP_MODE_SERIALIZE_EXT = 1,
21004 VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT = 2,
21005 VK_COPY_MICROMAP_MODE_COMPACT_EXT = 3,
21006 VK_COPY_MICROMAP_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
21007} VkCopyMicromapModeEXT;
21008
21009typedef enum VkOpacityMicromapFormatEXT {
21010 VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT = 1,
21011 VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT = 2,
21012 VK_OPACITY_MICROMAP_FORMAT_MAX_ENUM_EXT = 0x7FFFFFFF
21013} VkOpacityMicromapFormatEXT;
21014
21015typedef enum VkOpacityMicromapSpecialIndexEXT {
21016 VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT = -1,
21017 VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT = -2,
21018 VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT = -3,
21019 VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT = -4,
21020 VK_OPACITY_MICROMAP_SPECIAL_INDEX_CLUSTER_GEOMETRY_DISABLE_OPACITY_MICROMAP_NV = -5,
21021 VK_OPACITY_MICROMAP_SPECIAL_INDEX_MAX_ENUM_EXT = 0x7FFFFFFF
21022} VkOpacityMicromapSpecialIndexEXT;
21023
21024typedef enum VkAccelerationStructureCompatibilityKHR {
21025 VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0,
21026 VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1,
21027 VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR = 0x7FFFFFFF
21028} VkAccelerationStructureCompatibilityKHR;
21029
21030typedef enum VkAccelerationStructureBuildTypeKHR {
21031 VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0,
21032 VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1,
21033 VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2,
21034 VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
21035} VkAccelerationStructureBuildTypeKHR;
21036
21037typedef enum VkBuildMicromapFlagBitsEXT {
21038 VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT = 0x00000001,
21039 VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT = 0x00000002,
21040 VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT = 0x00000004,
21041 VK_BUILD_MICROMAP_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
21042} VkBuildMicromapFlagBitsEXT;
21043typedef VkFlags VkBuildMicromapFlagsEXT;
21044
21045typedef enum VkMicromapCreateFlagBitsEXT {
21046 VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 0x00000001,
21047 VK_MICROMAP_CREATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
21048} VkMicromapCreateFlagBitsEXT;
21049typedef VkFlags VkMicromapCreateFlagsEXT;
21050typedef struct VkMicromapUsageEXT {
21051 uint32_t count;
21052 uint32_t subdivisionLevel;
21053 uint32_t format;
21054} VkMicromapUsageEXT;
21055
21056typedef union VkDeviceOrHostAddressKHR {
21057 VkDeviceAddress deviceAddress;
21058 void* hostAddress;
21059} VkDeviceOrHostAddressKHR;
21060
21061typedef struct VkMicromapBuildInfoEXT {
21062 VkStructureType sType;
21063 const void* pNext;
21064 VkMicromapTypeEXT type;
21065 VkBuildMicromapFlagsEXT flags;
21066 VkBuildMicromapModeEXT mode;
21067 VkMicromapEXT dstMicromap;
21068 uint32_t usageCountsCount;
21069 const VkMicromapUsageEXT* pUsageCounts;
21070 const VkMicromapUsageEXT* const* ppUsageCounts;
21071 VkDeviceOrHostAddressConstKHR data;
21072 VkDeviceOrHostAddressKHR scratchData;
21073 VkDeviceOrHostAddressConstKHR triangleArray;
21074 VkDeviceSize triangleArrayStride;
21075} VkMicromapBuildInfoEXT;
21076
21077typedef struct VkMicromapCreateInfoEXT {
21078 VkStructureType sType;
21079 const void* pNext;
21080 VkMicromapCreateFlagsEXT createFlags;
21081 VkBuffer buffer;
21082 VkDeviceSize offset;
21083 VkDeviceSize size;
21084 VkMicromapTypeEXT type;
21085 VkDeviceAddress deviceAddress;
21086} VkMicromapCreateInfoEXT;
21087
21088typedef struct VkPhysicalDeviceOpacityMicromapFeaturesEXT {
21089 VkStructureType sType;
21090 void* pNext;
21091 VkBool32 micromap;
21092 VkBool32 micromapCaptureReplay;
21093 VkBool32 micromapHostCommands;
21094} VkPhysicalDeviceOpacityMicromapFeaturesEXT;
21095
21096typedef struct VkPhysicalDeviceOpacityMicromapPropertiesEXT {
21097 VkStructureType sType;
21098 void* pNext;
21099 uint32_t maxOpacity2StateSubdivisionLevel;
21100 uint32_t maxOpacity4StateSubdivisionLevel;
21101} VkPhysicalDeviceOpacityMicromapPropertiesEXT;
21102
21103typedef struct VkMicromapVersionInfoEXT {
21104 VkStructureType sType;
21105 const void* pNext;
21106 const uint8_t* pVersionData;
21107} VkMicromapVersionInfoEXT;
21108
21109typedef struct VkCopyMicromapToMemoryInfoEXT {
21110 VkStructureType sType;
21111 const void* pNext;
21112 VkMicromapEXT src;
21113 VkDeviceOrHostAddressKHR dst;
21114 VkCopyMicromapModeEXT mode;
21115} VkCopyMicromapToMemoryInfoEXT;
21116
21117typedef struct VkCopyMemoryToMicromapInfoEXT {
21118 VkStructureType sType;
21119 const void* pNext;
21120 VkDeviceOrHostAddressConstKHR src;
21121 VkMicromapEXT dst;
21122 VkCopyMicromapModeEXT mode;
21123} VkCopyMemoryToMicromapInfoEXT;
21124
21125typedef struct VkCopyMicromapInfoEXT {
21126 VkStructureType sType;
21127 const void* pNext;
21128 VkMicromapEXT src;
21129 VkMicromapEXT dst;
21130 VkCopyMicromapModeEXT mode;
21131} VkCopyMicromapInfoEXT;
21132
21133typedef struct VkMicromapBuildSizesInfoEXT {
21134 VkStructureType sType;
21135 const void* pNext;
21136 VkDeviceSize micromapSize;
21137 VkDeviceSize buildScratchSize;
21138 VkBool32 discardable;
21139} VkMicromapBuildSizesInfoEXT;
21140
21141typedef struct VkAccelerationStructureTrianglesOpacityMicromapEXT {
21142 VkStructureType sType;
21143 void* pNext;
21144 VkIndexType indexType;
21145 VkDeviceOrHostAddressConstKHR indexBuffer;
21146 VkDeviceSize indexStride;
21147 uint32_t baseTriangle;
21148 uint32_t usageCountsCount;
21149 const VkMicromapUsageEXT* pUsageCounts;
21150 const VkMicromapUsageEXT* const* ppUsageCounts;
21151 VkMicromapEXT micromap;
21152} VkAccelerationStructureTrianglesOpacityMicromapEXT;
21153
21154typedef struct VkMicromapTriangleEXT {
21155 uint32_t dataOffset;
21156 uint16_t subdivisionLevel;
21157 uint16_t format;
21158} VkMicromapTriangleEXT;
21159
21160typedef VkResult (VKAPI_PTR *PFN_vkCreateMicromapEXT)(VkDevice device, const VkMicromapCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkMicromapEXT* pMicromap);
21161typedef void (VKAPI_PTR *PFN_vkDestroyMicromapEXT)(VkDevice device, VkMicromapEXT micromap, const VkAllocationCallbacks* pAllocator);
21162typedef void (VKAPI_PTR *PFN_vkCmdBuildMicromapsEXT)(VkCommandBuffer commandBuffer, uint32_t infoCount, const VkMicromapBuildInfoEXT* pInfos);
21163typedef VkResult (VKAPI_PTR *PFN_vkBuildMicromapsEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const VkMicromapBuildInfoEXT* pInfos);
21164typedef VkResult (VKAPI_PTR *PFN_vkCopyMicromapEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMicromapInfoEXT* pInfo);
21165typedef VkResult (VKAPI_PTR *PFN_vkCopyMicromapToMemoryEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMicromapToMemoryInfoEXT* pInfo);
21166typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToMicromapEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToMicromapInfoEXT* pInfo);
21167typedef VkResult (VKAPI_PTR *PFN_vkWriteMicromapsPropertiesEXT)(VkDevice device, uint32_t micromapCount, const VkMicromapEXT* pMicromaps, VkQueryType queryType, size_t dataSize, void* pData, size_t stride);
21168typedef void (VKAPI_PTR *PFN_vkCmdCopyMicromapEXT)(VkCommandBuffer commandBuffer, const VkCopyMicromapInfoEXT* pInfo);
21169typedef void (VKAPI_PTR *PFN_vkCmdCopyMicromapToMemoryEXT)(VkCommandBuffer commandBuffer, const VkCopyMicromapToMemoryInfoEXT* pInfo);
21170typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToMicromapEXT)(VkCommandBuffer commandBuffer, const VkCopyMemoryToMicromapInfoEXT* pInfo);
21171typedef void (VKAPI_PTR *PFN_vkCmdWriteMicromapsPropertiesEXT)(VkCommandBuffer commandBuffer, uint32_t micromapCount, const VkMicromapEXT* pMicromaps, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
21172typedef void (VKAPI_PTR *PFN_vkGetDeviceMicromapCompatibilityEXT)(VkDevice device, const VkMicromapVersionInfoEXT* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility);
21173typedef void (VKAPI_PTR *PFN_vkGetMicromapBuildSizesEXT)(VkDevice device, VkAccelerationStructureBuildTypeKHR buildType, const VkMicromapBuildInfoEXT* pBuildInfo, VkMicromapBuildSizesInfoEXT* pSizeInfo);
21174
21175#ifndef VK_NO_PROTOTYPES
21176#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21177VKAPI_ATTR VkResult VKAPI_CALL vkCreateMicromapEXT(
21178 VkDevice device,
21179 const VkMicromapCreateInfoEXT* pCreateInfo,
21180 const VkAllocationCallbacks* pAllocator,
21181 VkMicromapEXT* pMicromap);
21182#endif
21183
21184#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21185VKAPI_ATTR void VKAPI_CALL vkDestroyMicromapEXT(
21186 VkDevice device,
21187 VkMicromapEXT micromap,
21188 const VkAllocationCallbacks* pAllocator);
21189#endif
21190
21191#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21192VKAPI_ATTR void VKAPI_CALL vkCmdBuildMicromapsEXT(
21193 VkCommandBuffer commandBuffer,
21194 uint32_t infoCount,
21195 const VkMicromapBuildInfoEXT* pInfos);
21196#endif
21197
21198#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21199VKAPI_ATTR VkResult VKAPI_CALL vkBuildMicromapsEXT(
21200 VkDevice device,
21201 VkDeferredOperationKHR deferredOperation,
21202 uint32_t infoCount,
21203 const VkMicromapBuildInfoEXT* pInfos);
21204#endif
21205
21206#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21207VKAPI_ATTR VkResult VKAPI_CALL vkCopyMicromapEXT(
21208 VkDevice device,
21209 VkDeferredOperationKHR deferredOperation,
21210 const VkCopyMicromapInfoEXT* pInfo);
21211#endif
21212
21213#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21214VKAPI_ATTR VkResult VKAPI_CALL vkCopyMicromapToMemoryEXT(
21215 VkDevice device,
21216 VkDeferredOperationKHR deferredOperation,
21217 const VkCopyMicromapToMemoryInfoEXT* pInfo);
21218#endif
21219
21220#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21221VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToMicromapEXT(
21222 VkDevice device,
21223 VkDeferredOperationKHR deferredOperation,
21224 const VkCopyMemoryToMicromapInfoEXT* pInfo);
21225#endif
21226
21227#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21228VKAPI_ATTR VkResult VKAPI_CALL vkWriteMicromapsPropertiesEXT(
21229 VkDevice device,
21230 uint32_t micromapCount,
21231 const VkMicromapEXT* pMicromaps,
21232 VkQueryType queryType,
21233 size_t dataSize,
21234 void* pData,
21235 size_t stride);
21236#endif
21237
21238#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21239VKAPI_ATTR void VKAPI_CALL vkCmdCopyMicromapEXT(
21240 VkCommandBuffer commandBuffer,
21241 const VkCopyMicromapInfoEXT* pInfo);
21242#endif
21243
21244#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21245VKAPI_ATTR void VKAPI_CALL vkCmdCopyMicromapToMemoryEXT(
21246 VkCommandBuffer commandBuffer,
21247 const VkCopyMicromapToMemoryInfoEXT* pInfo);
21248#endif
21249
21250#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21251VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToMicromapEXT(
21252 VkCommandBuffer commandBuffer,
21253 const VkCopyMemoryToMicromapInfoEXT* pInfo);
21254#endif
21255
21256#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21257VKAPI_ATTR void VKAPI_CALL vkCmdWriteMicromapsPropertiesEXT(
21258 VkCommandBuffer commandBuffer,
21259 uint32_t micromapCount,
21260 const VkMicromapEXT* pMicromaps,
21261 VkQueryType queryType,
21262 VkQueryPool queryPool,
21263 uint32_t firstQuery);
21264#endif
21265
21266#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21267VKAPI_ATTR void VKAPI_CALL vkGetDeviceMicromapCompatibilityEXT(
21268 VkDevice device,
21269 const VkMicromapVersionInfoEXT* pVersionInfo,
21270 VkAccelerationStructureCompatibilityKHR* pCompatibility);
21271#endif
21272
21273#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21274VKAPI_ATTR void VKAPI_CALL vkGetMicromapBuildSizesEXT(
21275 VkDevice device,
21276 VkAccelerationStructureBuildTypeKHR buildType,
21277 const VkMicromapBuildInfoEXT* pBuildInfo,
21278 VkMicromapBuildSizesInfoEXT* pSizeInfo);
21279#endif
21280#endif
21281
21282
21283// VK_EXT_load_store_op_none is a preprocessor guard. Do not pass it to API calls.
21284#define VK_EXT_load_store_op_none 1
21285#define VK_EXT_LOAD_STORE_OP_NONE_SPEC_VERSION 1
21286#define VK_EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME "VK_EXT_load_store_op_none"
21287
21288
21289// VK_HUAWEI_cluster_culling_shader is a preprocessor guard. Do not pass it to API calls.
21290#define VK_HUAWEI_cluster_culling_shader 1
21291#define VK_HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION 3
21292#define VK_HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME "VK_HUAWEI_cluster_culling_shader"
21293typedef struct VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI {
21294 VkStructureType sType;
21295 void* pNext;
21296 VkBool32 clustercullingShader;
21297 VkBool32 multiviewClusterCullingShader;
21298} VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI;
21299
21300typedef struct VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI {
21301 VkStructureType sType;
21302 void* pNext;
21303 uint32_t maxWorkGroupCount[3];
21304 uint32_t maxWorkGroupSize[3];
21305 uint32_t maxOutputClusterCount;
21306 VkDeviceSize indirectBufferOffsetAlignment;
21307} VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI;
21308
21309typedef struct VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI {
21310 VkStructureType sType;
21311 void* pNext;
21312 VkBool32 clusterShadingRate;
21313} VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI;
21314
21315typedef void (VKAPI_PTR *PFN_vkCmdDrawClusterHUAWEI)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
21316typedef void (VKAPI_PTR *PFN_vkCmdDrawClusterIndirectHUAWEI)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
21317
21318#ifndef VK_NO_PROTOTYPES
21319#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21320VKAPI_ATTR void VKAPI_CALL vkCmdDrawClusterHUAWEI(
21321 VkCommandBuffer commandBuffer,
21322 uint32_t groupCountX,
21323 uint32_t groupCountY,
21324 uint32_t groupCountZ);
21325#endif
21326
21327#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21328VKAPI_ATTR void VKAPI_CALL vkCmdDrawClusterIndirectHUAWEI(
21329 VkCommandBuffer commandBuffer,
21330 VkBuffer buffer,
21331 VkDeviceSize offset);
21332#endif
21333#endif
21334
21335
21336// VK_EXT_border_color_swizzle is a preprocessor guard. Do not pass it to API calls.
21337#define VK_EXT_border_color_swizzle 1
21338#define VK_EXT_BORDER_COLOR_SWIZZLE_SPEC_VERSION 1
21339#define VK_EXT_BORDER_COLOR_SWIZZLE_EXTENSION_NAME "VK_EXT_border_color_swizzle"
21340typedef struct VkPhysicalDeviceBorderColorSwizzleFeaturesEXT {
21341 VkStructureType sType;
21342 void* pNext;
21343 VkBool32 borderColorSwizzle;
21344 VkBool32 borderColorSwizzleFromImage;
21345} VkPhysicalDeviceBorderColorSwizzleFeaturesEXT;
21346
21347typedef struct VkSamplerBorderColorComponentMappingCreateInfoEXT {
21348 VkStructureType sType;
21349 const void* pNext;
21350 VkComponentMapping components;
21351 VkBool32 srgb;
21352} VkSamplerBorderColorComponentMappingCreateInfoEXT;
21353
21354
21355
21356// VK_EXT_pageable_device_local_memory is a preprocessor guard. Do not pass it to API calls.
21357#define VK_EXT_pageable_device_local_memory 1
21358#define VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_SPEC_VERSION 1
21359#define VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_EXTENSION_NAME "VK_EXT_pageable_device_local_memory"
21360typedef struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT {
21361 VkStructureType sType;
21362 void* pNext;
21363 VkBool32 pageableDeviceLocalMemory;
21364} VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT;
21365
21366typedef void (VKAPI_PTR *PFN_vkSetDeviceMemoryPriorityEXT)(VkDevice device, VkDeviceMemory memory, float priority);
21367
21368#ifndef VK_NO_PROTOTYPES
21369#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21370VKAPI_ATTR void VKAPI_CALL vkSetDeviceMemoryPriorityEXT(
21371 VkDevice device,
21372 VkDeviceMemory memory,
21373 float priority);
21374#endif
21375#endif
21376
21377
21378// VK_ARM_shader_core_properties is a preprocessor guard. Do not pass it to API calls.
21379#define VK_ARM_shader_core_properties 1
21380#define VK_ARM_SHADER_CORE_PROPERTIES_SPEC_VERSION 1
21381#define VK_ARM_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_ARM_shader_core_properties"
21382typedef struct VkPhysicalDeviceShaderCorePropertiesARM {
21383 VkStructureType sType;
21384 void* pNext;
21385 uint32_t pixelRate;
21386 uint32_t texelRate;
21387 uint32_t fmaRate;
21388} VkPhysicalDeviceShaderCorePropertiesARM;
21389
21390
21391
21392// VK_ARM_scheduling_controls is a preprocessor guard. Do not pass it to API calls.
21393#define VK_ARM_scheduling_controls 1
21394#define VK_ARM_SCHEDULING_CONTROLS_SPEC_VERSION 2
21395#define VK_ARM_SCHEDULING_CONTROLS_EXTENSION_NAME "VK_ARM_scheduling_controls"
21396typedef VkFlags64 VkPhysicalDeviceSchedulingControlsFlagsARM;
21397
21398// Flag bits for VkPhysicalDeviceSchedulingControlsFlagBitsARM
21399typedef VkFlags64 VkPhysicalDeviceSchedulingControlsFlagBitsARM;
21400static const VkPhysicalDeviceSchedulingControlsFlagBitsARM VK_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_SHADER_CORE_COUNT_ARM = 0x00000001ULL;
21401static const VkPhysicalDeviceSchedulingControlsFlagBitsARM VK_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_DISPATCH_PARAMETERS_ARM = 0x00000002ULL;
21402
21403typedef struct VkDeviceQueueShaderCoreControlCreateInfoARM {
21404 VkStructureType sType;
21405 void* pNext;
21406 uint32_t shaderCoreCount;
21407} VkDeviceQueueShaderCoreControlCreateInfoARM;
21408
21409typedef struct VkPhysicalDeviceSchedulingControlsFeaturesARM {
21410 VkStructureType sType;
21411 void* pNext;
21412 VkBool32 schedulingControls;
21413} VkPhysicalDeviceSchedulingControlsFeaturesARM;
21414
21415typedef struct VkPhysicalDeviceSchedulingControlsPropertiesARM {
21416 VkStructureType sType;
21417 void* pNext;
21418 VkPhysicalDeviceSchedulingControlsFlagsARM schedulingControlsFlags;
21419} VkPhysicalDeviceSchedulingControlsPropertiesARM;
21420
21421typedef struct VkDispatchParametersARM {
21422 VkStructureType sType;
21423 void* pNext;
21424 uint32_t workGroupBatchSize;
21425 uint32_t maxQueuedWorkGroupBatches;
21426 uint32_t maxWarpsPerShaderCore;
21427} VkDispatchParametersARM;
21428
21429typedef struct VkPhysicalDeviceSchedulingControlsDispatchParametersPropertiesARM {
21430 VkStructureType sType;
21431 void* pNext;
21432 uint32_t schedulingControlsMaxWarpsCount;
21433 uint32_t schedulingControlsMaxQueuedBatchesCount;
21434 uint32_t schedulingControlsMaxWorkGroupBatchSize;
21435} VkPhysicalDeviceSchedulingControlsDispatchParametersPropertiesARM;
21436
21437typedef void (VKAPI_PTR *PFN_vkCmdSetDispatchParametersARM)(VkCommandBuffer commandBuffer, const VkDispatchParametersARM* pDispatchParameters);
21438
21439#ifndef VK_NO_PROTOTYPES
21440#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21441VKAPI_ATTR void VKAPI_CALL vkCmdSetDispatchParametersARM(
21442 VkCommandBuffer commandBuffer,
21443 const VkDispatchParametersARM* pDispatchParameters);
21444#endif
21445#endif
21446
21447
21448// VK_EXT_image_sliced_view_of_3d is a preprocessor guard. Do not pass it to API calls.
21449#define VK_EXT_image_sliced_view_of_3d 1
21450#define VK_EXT_IMAGE_SLICED_VIEW_OF_3D_SPEC_VERSION 1
21451#define VK_EXT_IMAGE_SLICED_VIEW_OF_3D_EXTENSION_NAME "VK_EXT_image_sliced_view_of_3d"
21452#define VK_REMAINING_3D_SLICES_EXT (~0U)
21453typedef struct VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT {
21454 VkStructureType sType;
21455 void* pNext;
21456 VkBool32 imageSlicedViewOf3D;
21457} VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT;
21458
21459typedef struct VkImageViewSlicedCreateInfoEXT {
21460 VkStructureType sType;
21461 const void* pNext;
21462 uint32_t sliceOffset;
21463 uint32_t sliceCount;
21464} VkImageViewSlicedCreateInfoEXT;
21465
21466
21467
21468// VK_VALVE_descriptor_set_host_mapping is a preprocessor guard. Do not pass it to API calls.
21469#define VK_VALVE_descriptor_set_host_mapping 1
21470#define VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_SPEC_VERSION 1
21471#define VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_EXTENSION_NAME "VK_VALVE_descriptor_set_host_mapping"
21472typedef struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE {
21473 VkStructureType sType;
21474 void* pNext;
21475 VkBool32 descriptorSetHostMapping;
21476} VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE;
21477
21478typedef struct VkDescriptorSetBindingReferenceVALVE {
21479 VkStructureType sType;
21480 const void* pNext;
21481 VkDescriptorSetLayout descriptorSetLayout;
21482 uint32_t binding;
21483} VkDescriptorSetBindingReferenceVALVE;
21484
21485typedef struct VkDescriptorSetLayoutHostMappingInfoVALVE {
21486 VkStructureType sType;
21487 void* pNext;
21488 size_t descriptorOffset;
21489 uint32_t descriptorSize;
21490} VkDescriptorSetLayoutHostMappingInfoVALVE;
21491
21492typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE)(VkDevice device, const VkDescriptorSetBindingReferenceVALVE* pBindingReference, VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping);
21493typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetHostMappingVALVE)(VkDevice device, VkDescriptorSet descriptorSet, void** ppData);
21494
21495#ifndef VK_NO_PROTOTYPES
21496#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21497VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutHostMappingInfoVALVE(
21498 VkDevice device,
21499 const VkDescriptorSetBindingReferenceVALVE* pBindingReference,
21500 VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping);
21501#endif
21502
21503#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21504VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetHostMappingVALVE(
21505 VkDevice device,
21506 VkDescriptorSet descriptorSet,
21507 void** ppData);
21508#endif
21509#endif
21510
21511
21512// VK_EXT_depth_clamp_zero_one is a preprocessor guard. Do not pass it to API calls.
21513#define VK_EXT_depth_clamp_zero_one 1
21514#define VK_EXT_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION 1
21515#define VK_EXT_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME "VK_EXT_depth_clamp_zero_one"
21516typedef VkPhysicalDeviceDepthClampZeroOneFeaturesKHR VkPhysicalDeviceDepthClampZeroOneFeaturesEXT;
21517
21518
21519
21520// VK_EXT_non_seamless_cube_map is a preprocessor guard. Do not pass it to API calls.
21521#define VK_EXT_non_seamless_cube_map 1
21522#define VK_EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION 1
21523#define VK_EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME "VK_EXT_non_seamless_cube_map"
21524typedef struct VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT {
21525 VkStructureType sType;
21526 void* pNext;
21527 VkBool32 nonSeamlessCubeMap;
21528} VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT;
21529
21530
21531
21532// VK_ARM_render_pass_striped is a preprocessor guard. Do not pass it to API calls.
21533#define VK_ARM_render_pass_striped 1
21534#define VK_ARM_RENDER_PASS_STRIPED_SPEC_VERSION 1
21535#define VK_ARM_RENDER_PASS_STRIPED_EXTENSION_NAME "VK_ARM_render_pass_striped"
21536typedef struct VkPhysicalDeviceRenderPassStripedFeaturesARM {
21537 VkStructureType sType;
21538 void* pNext;
21539 VkBool32 renderPassStriped;
21540} VkPhysicalDeviceRenderPassStripedFeaturesARM;
21541
21542typedef struct VkPhysicalDeviceRenderPassStripedPropertiesARM {
21543 VkStructureType sType;
21544 void* pNext;
21545 VkExtent2D renderPassStripeGranularity;
21546 uint32_t maxRenderPassStripes;
21547} VkPhysicalDeviceRenderPassStripedPropertiesARM;
21548
21549typedef struct VkRenderPassStripeInfoARM {
21550 VkStructureType sType;
21551 const void* pNext;
21552 VkRect2D stripeArea;
21553} VkRenderPassStripeInfoARM;
21554
21555typedef struct VkRenderPassStripeBeginInfoARM {
21556 VkStructureType sType;
21557 const void* pNext;
21558 uint32_t stripeInfoCount;
21559 const VkRenderPassStripeInfoARM* pStripeInfos;
21560} VkRenderPassStripeBeginInfoARM;
21561
21562typedef struct VkRenderPassStripeSubmitInfoARM {
21563 VkStructureType sType;
21564 const void* pNext;
21565 uint32_t stripeSemaphoreInfoCount;
21566 const VkSemaphoreSubmitInfo* pStripeSemaphoreInfos;
21567} VkRenderPassStripeSubmitInfoARM;
21568
21569
21570
21571// VK_QCOM_fragment_density_map_offset is a preprocessor guard. Do not pass it to API calls.
21572#define VK_QCOM_fragment_density_map_offset 1
21573#define VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION 3
21574#define VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME "VK_QCOM_fragment_density_map_offset"
21575typedef struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesEXT {
21576 VkStructureType sType;
21577 void* pNext;
21578 VkBool32 fragmentDensityMapOffset;
21579} VkPhysicalDeviceFragmentDensityMapOffsetFeaturesEXT;
21580
21581typedef VkPhysicalDeviceFragmentDensityMapOffsetFeaturesEXT VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM;
21582
21583typedef struct VkPhysicalDeviceFragmentDensityMapOffsetPropertiesEXT {
21584 VkStructureType sType;
21585 void* pNext;
21586 VkExtent2D fragmentDensityOffsetGranularity;
21587} VkPhysicalDeviceFragmentDensityMapOffsetPropertiesEXT;
21588
21589typedef VkPhysicalDeviceFragmentDensityMapOffsetPropertiesEXT VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM;
21590
21591typedef struct VkRenderPassFragmentDensityMapOffsetEndInfoEXT {
21592 VkStructureType sType;
21593 const void* pNext;
21594 uint32_t fragmentDensityOffsetCount;
21595 const VkOffset2D* pFragmentDensityOffsets;
21596} VkRenderPassFragmentDensityMapOffsetEndInfoEXT;
21597
21598typedef VkRenderPassFragmentDensityMapOffsetEndInfoEXT VkSubpassFragmentDensityMapOffsetEndInfoQCOM;
21599
21600
21601
21602// VK_NV_copy_memory_indirect is a preprocessor guard. Do not pass it to API calls.
21603#define VK_NV_copy_memory_indirect 1
21604#define VK_NV_COPY_MEMORY_INDIRECT_SPEC_VERSION 1
21605#define VK_NV_COPY_MEMORY_INDIRECT_EXTENSION_NAME "VK_NV_copy_memory_indirect"
21606typedef VkCopyMemoryIndirectCommandKHR VkCopyMemoryIndirectCommandNV;
21607
21608typedef VkCopyMemoryToImageIndirectCommandKHR VkCopyMemoryToImageIndirectCommandNV;
21609
21610typedef struct VkPhysicalDeviceCopyMemoryIndirectFeaturesNV {
21611 VkStructureType sType;
21612 void* pNext;
21613 VkBool32 indirectCopy;
21614} VkPhysicalDeviceCopyMemoryIndirectFeaturesNV;
21615
21616typedef VkPhysicalDeviceCopyMemoryIndirectPropertiesKHR VkPhysicalDeviceCopyMemoryIndirectPropertiesNV;
21617
21618typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryIndirectNV)(VkCommandBuffer commandBuffer, VkDeviceAddress copyBufferAddress, uint32_t copyCount, uint32_t stride);
21619typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToImageIndirectNV)(VkCommandBuffer commandBuffer, VkDeviceAddress copyBufferAddress, uint32_t copyCount, uint32_t stride, VkImage dstImage, VkImageLayout dstImageLayout, const VkImageSubresourceLayers* pImageSubresources);
21620
21621#ifndef VK_NO_PROTOTYPES
21622#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21623VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryIndirectNV(
21624 VkCommandBuffer commandBuffer,
21625 VkDeviceAddress copyBufferAddress,
21626 uint32_t copyCount,
21627 uint32_t stride);
21628#endif
21629
21630#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21631VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToImageIndirectNV(
21632 VkCommandBuffer commandBuffer,
21633 VkDeviceAddress copyBufferAddress,
21634 uint32_t copyCount,
21635 uint32_t stride,
21636 VkImage dstImage,
21637 VkImageLayout dstImageLayout,
21638 const VkImageSubresourceLayers* pImageSubresources);
21639#endif
21640#endif
21641
21642
21643// VK_NV_memory_decompression is a preprocessor guard. Do not pass it to API calls.
21644#define VK_NV_memory_decompression 1
21645#define VK_NV_MEMORY_DECOMPRESSION_SPEC_VERSION 1
21646#define VK_NV_MEMORY_DECOMPRESSION_EXTENSION_NAME "VK_NV_memory_decompression"
21647
21648// Flag bits for VkMemoryDecompressionMethodFlagBitsEXT
21649typedef VkFlags64 VkMemoryDecompressionMethodFlagBitsEXT;
21650static const VkMemoryDecompressionMethodFlagBitsEXT VK_MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_EXT = 0x00000001ULL;
21651static const VkMemoryDecompressionMethodFlagBitsEXT VK_MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_NV = 0x00000001ULL;
21652
21653typedef VkMemoryDecompressionMethodFlagBitsEXT VkMemoryDecompressionMethodFlagBitsNV;
21654
21655typedef VkFlags64 VkMemoryDecompressionMethodFlagsEXT;
21656typedef VkMemoryDecompressionMethodFlagsEXT VkMemoryDecompressionMethodFlagsNV;
21657
21658typedef struct VkDecompressMemoryRegionNV {
21659 VkDeviceAddress srcAddress;
21660 VkDeviceAddress dstAddress;
21661 VkDeviceSize compressedSize;
21662 VkDeviceSize decompressedSize;
21663 VkMemoryDecompressionMethodFlagsEXT decompressionMethod;
21664} VkDecompressMemoryRegionNV;
21665
21666typedef struct VkPhysicalDeviceMemoryDecompressionFeaturesEXT {
21667 VkStructureType sType;
21668 void* pNext;
21669 VkBool32 memoryDecompression;
21670} VkPhysicalDeviceMemoryDecompressionFeaturesEXT;
21671
21672typedef VkPhysicalDeviceMemoryDecompressionFeaturesEXT VkPhysicalDeviceMemoryDecompressionFeaturesNV;
21673
21674typedef struct VkPhysicalDeviceMemoryDecompressionPropertiesEXT {
21675 VkStructureType sType;
21676 void* pNext;
21677 VkMemoryDecompressionMethodFlagsEXT decompressionMethods;
21678 uint64_t maxDecompressionIndirectCount;
21679} VkPhysicalDeviceMemoryDecompressionPropertiesEXT;
21680
21681typedef VkPhysicalDeviceMemoryDecompressionPropertiesEXT VkPhysicalDeviceMemoryDecompressionPropertiesNV;
21682
21683typedef void (VKAPI_PTR *PFN_vkCmdDecompressMemoryNV)(VkCommandBuffer commandBuffer, uint32_t decompressRegionCount, const VkDecompressMemoryRegionNV* pDecompressMemoryRegions);
21684typedef void (VKAPI_PTR *PFN_vkCmdDecompressMemoryIndirectCountNV)(VkCommandBuffer commandBuffer, VkDeviceAddress indirectCommandsAddress, VkDeviceAddress indirectCommandsCountAddress, uint32_t stride);
21685
21686#ifndef VK_NO_PROTOTYPES
21687#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21688VKAPI_ATTR void VKAPI_CALL vkCmdDecompressMemoryNV(
21689 VkCommandBuffer commandBuffer,
21690 uint32_t decompressRegionCount,
21691 const VkDecompressMemoryRegionNV* pDecompressMemoryRegions);
21692#endif
21693
21694#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21695VKAPI_ATTR void VKAPI_CALL vkCmdDecompressMemoryIndirectCountNV(
21696 VkCommandBuffer commandBuffer,
21697 VkDeviceAddress indirectCommandsAddress,
21698 VkDeviceAddress indirectCommandsCountAddress,
21699 uint32_t stride);
21700#endif
21701#endif
21702
21703
21704// VK_NV_device_generated_commands_compute is a preprocessor guard. Do not pass it to API calls.
21705#define VK_NV_device_generated_commands_compute 1
21706#define VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_SPEC_VERSION 2
21707#define VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_EXTENSION_NAME "VK_NV_device_generated_commands_compute"
21708typedef struct VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV {
21709 VkStructureType sType;
21710 void* pNext;
21711 VkBool32 deviceGeneratedCompute;
21712 VkBool32 deviceGeneratedComputePipelines;
21713 VkBool32 deviceGeneratedComputeCaptureReplay;
21714} VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV;
21715
21716typedef struct VkComputePipelineIndirectBufferInfoNV {
21717 VkStructureType sType;
21718 const void* pNext;
21719 VkDeviceAddress deviceAddress;
21720 VkDeviceSize size;
21721 VkDeviceAddress pipelineDeviceAddressCaptureReplay;
21722} VkComputePipelineIndirectBufferInfoNV;
21723
21724typedef struct VkPipelineIndirectDeviceAddressInfoNV {
21725 VkStructureType sType;
21726 const void* pNext;
21727 VkPipelineBindPoint pipelineBindPoint;
21728 VkPipeline pipeline;
21729} VkPipelineIndirectDeviceAddressInfoNV;
21730
21731typedef struct VkBindPipelineIndirectCommandNV {
21732 VkDeviceAddress pipelineAddress;
21733} VkBindPipelineIndirectCommandNV;
21734
21735typedef void (VKAPI_PTR *PFN_vkGetPipelineIndirectMemoryRequirementsNV)(VkDevice device, const VkComputePipelineCreateInfo* pCreateInfo, VkMemoryRequirements2* pMemoryRequirements);
21736typedef void (VKAPI_PTR *PFN_vkCmdUpdatePipelineIndirectBufferNV)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
21737typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetPipelineIndirectDeviceAddressNV)(VkDevice device, const VkPipelineIndirectDeviceAddressInfoNV* pInfo);
21738
21739#ifndef VK_NO_PROTOTYPES
21740#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21741VKAPI_ATTR void VKAPI_CALL vkGetPipelineIndirectMemoryRequirementsNV(
21742 VkDevice device,
21743 const VkComputePipelineCreateInfo* pCreateInfo,
21744 VkMemoryRequirements2* pMemoryRequirements);
21745#endif
21746
21747#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21748VKAPI_ATTR void VKAPI_CALL vkCmdUpdatePipelineIndirectBufferNV(
21749 VkCommandBuffer commandBuffer,
21750 VkPipelineBindPoint pipelineBindPoint,
21751 VkPipeline pipeline);
21752#endif
21753
21754#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21755VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetPipelineIndirectDeviceAddressNV(
21756 VkDevice device,
21757 const VkPipelineIndirectDeviceAddressInfoNV* pInfo);
21758#endif
21759#endif
21760
21761
21762// VK_NV_ray_tracing_linear_swept_spheres is a preprocessor guard. Do not pass it to API calls.
21763#define VK_NV_ray_tracing_linear_swept_spheres 1
21764#define VK_NV_RAY_TRACING_LINEAR_SWEPT_SPHERES_SPEC_VERSION 1
21765#define VK_NV_RAY_TRACING_LINEAR_SWEPT_SPHERES_EXTENSION_NAME "VK_NV_ray_tracing_linear_swept_spheres"
21766
21767typedef enum VkRayTracingLssIndexingModeNV {
21768 VK_RAY_TRACING_LSS_INDEXING_MODE_LIST_NV = 0,
21769 VK_RAY_TRACING_LSS_INDEXING_MODE_SUCCESSIVE_NV = 1,
21770 VK_RAY_TRACING_LSS_INDEXING_MODE_MAX_ENUM_NV = 0x7FFFFFFF
21771} VkRayTracingLssIndexingModeNV;
21772
21773typedef enum VkRayTracingLssPrimitiveEndCapsModeNV {
21774 VK_RAY_TRACING_LSS_PRIMITIVE_END_CAPS_MODE_NONE_NV = 0,
21775 VK_RAY_TRACING_LSS_PRIMITIVE_END_CAPS_MODE_CHAINED_NV = 1,
21776 VK_RAY_TRACING_LSS_PRIMITIVE_END_CAPS_MODE_MAX_ENUM_NV = 0x7FFFFFFF
21777} VkRayTracingLssPrimitiveEndCapsModeNV;
21778typedef struct VkPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV {
21779 VkStructureType sType;
21780 void* pNext;
21781 VkBool32 spheres;
21782 VkBool32 linearSweptSpheres;
21783} VkPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV;
21784
21785typedef struct VkAccelerationStructureGeometryLinearSweptSpheresDataNV {
21786 VkStructureType sType;
21787 const void* pNext;
21788 VkFormat vertexFormat;
21789 VkDeviceOrHostAddressConstKHR vertexData;
21790 VkDeviceSize vertexStride;
21791 VkFormat radiusFormat;
21792 VkDeviceOrHostAddressConstKHR radiusData;
21793 VkDeviceSize radiusStride;
21794 VkIndexType indexType;
21795 VkDeviceOrHostAddressConstKHR indexData;
21796 VkDeviceSize indexStride;
21797 VkRayTracingLssIndexingModeNV indexingMode;
21798 VkRayTracingLssPrimitiveEndCapsModeNV endCapsMode;
21799} VkAccelerationStructureGeometryLinearSweptSpheresDataNV;
21800
21801typedef struct VkAccelerationStructureGeometrySpheresDataNV {
21802 VkStructureType sType;
21803 const void* pNext;
21804 VkFormat vertexFormat;
21805 VkDeviceOrHostAddressConstKHR vertexData;
21806 VkDeviceSize vertexStride;
21807 VkFormat radiusFormat;
21808 VkDeviceOrHostAddressConstKHR radiusData;
21809 VkDeviceSize radiusStride;
21810 VkIndexType indexType;
21811 VkDeviceOrHostAddressConstKHR indexData;
21812 VkDeviceSize indexStride;
21813} VkAccelerationStructureGeometrySpheresDataNV;
21814
21815
21816
21817// VK_NV_linear_color_attachment is a preprocessor guard. Do not pass it to API calls.
21818#define VK_NV_linear_color_attachment 1
21819#define VK_NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION 1
21820#define VK_NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME "VK_NV_linear_color_attachment"
21821typedef struct VkPhysicalDeviceLinearColorAttachmentFeaturesNV {
21822 VkStructureType sType;
21823 void* pNext;
21824 VkBool32 linearColorAttachment;
21825} VkPhysicalDeviceLinearColorAttachmentFeaturesNV;
21826
21827
21828
21829// VK_GOOGLE_surfaceless_query is a preprocessor guard. Do not pass it to API calls.
21830#define VK_GOOGLE_surfaceless_query 1
21831#define VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION 2
21832#define VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME "VK_GOOGLE_surfaceless_query"
21833
21834
21835// VK_EXT_image_compression_control_swapchain is a preprocessor guard. Do not pass it to API calls.
21836#define VK_EXT_image_compression_control_swapchain 1
21837#define VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION 1
21838#define VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME "VK_EXT_image_compression_control_swapchain"
21839typedef struct VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT {
21840 VkStructureType sType;
21841 void* pNext;
21842 VkBool32 imageCompressionControlSwapchain;
21843} VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT;
21844
21845
21846
21847// VK_QCOM_image_processing is a preprocessor guard. Do not pass it to API calls.
21848#define VK_QCOM_image_processing 1
21849#define VK_QCOM_IMAGE_PROCESSING_SPEC_VERSION 1
21850#define VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME "VK_QCOM_image_processing"
21851typedef struct VkImageViewSampleWeightCreateInfoQCOM {
21852 VkStructureType sType;
21853 const void* pNext;
21854 VkOffset2D filterCenter;
21855 VkExtent2D filterSize;
21856 uint32_t numPhases;
21857} VkImageViewSampleWeightCreateInfoQCOM;
21858
21859typedef struct VkPhysicalDeviceImageProcessingFeaturesQCOM {
21860 VkStructureType sType;
21861 void* pNext;
21862 VkBool32 textureSampleWeighted;
21863 VkBool32 textureBoxFilter;
21864 VkBool32 textureBlockMatch;
21865} VkPhysicalDeviceImageProcessingFeaturesQCOM;
21866
21867typedef struct VkPhysicalDeviceImageProcessingPropertiesQCOM {
21868 VkStructureType sType;
21869 void* pNext;
21870 uint32_t maxWeightFilterPhases;
21871 VkExtent2D maxWeightFilterDimension;
21872 VkExtent2D maxBlockMatchRegion;
21873 VkExtent2D maxBoxFilterBlockSize;
21874} VkPhysicalDeviceImageProcessingPropertiesQCOM;
21875
21876
21877
21878// VK_EXT_nested_command_buffer is a preprocessor guard. Do not pass it to API calls.
21879#define VK_EXT_nested_command_buffer 1
21880#define VK_EXT_NESTED_COMMAND_BUFFER_SPEC_VERSION 1
21881#define VK_EXT_NESTED_COMMAND_BUFFER_EXTENSION_NAME "VK_EXT_nested_command_buffer"
21882typedef struct VkPhysicalDeviceNestedCommandBufferFeaturesEXT {
21883 VkStructureType sType;
21884 void* pNext;
21885 VkBool32 nestedCommandBuffer;
21886 VkBool32 nestedCommandBufferRendering;
21887 VkBool32 nestedCommandBufferSimultaneousUse;
21888} VkPhysicalDeviceNestedCommandBufferFeaturesEXT;
21889
21890typedef struct VkPhysicalDeviceNestedCommandBufferPropertiesEXT {
21891 VkStructureType sType;
21892 void* pNext;
21893 uint32_t maxCommandBufferNestingLevel;
21894} VkPhysicalDeviceNestedCommandBufferPropertiesEXT;
21895
21896
21897
21898// VK_EXT_external_memory_acquire_unmodified is a preprocessor guard. Do not pass it to API calls.
21899#define VK_EXT_external_memory_acquire_unmodified 1
21900#define VK_EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_SPEC_VERSION 1
21901#define VK_EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXTENSION_NAME "VK_EXT_external_memory_acquire_unmodified"
21902typedef struct VkExternalMemoryAcquireUnmodifiedEXT {
21903 VkStructureType sType;
21904 const void* pNext;
21905 VkBool32 acquireUnmodifiedMemory;
21906} VkExternalMemoryAcquireUnmodifiedEXT;
21907
21908
21909
21910// VK_EXT_extended_dynamic_state3 is a preprocessor guard. Do not pass it to API calls.
21911#define VK_EXT_extended_dynamic_state3 1
21912#define VK_EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION 2
21913#define VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME "VK_EXT_extended_dynamic_state3"
21914typedef struct VkPhysicalDeviceExtendedDynamicState3FeaturesEXT {
21915 VkStructureType sType;
21916 void* pNext;
21917 VkBool32 extendedDynamicState3TessellationDomainOrigin;
21918 VkBool32 extendedDynamicState3DepthClampEnable;
21919 VkBool32 extendedDynamicState3PolygonMode;
21920 VkBool32 extendedDynamicState3RasterizationSamples;
21921 VkBool32 extendedDynamicState3SampleMask;
21922 VkBool32 extendedDynamicState3AlphaToCoverageEnable;
21923 VkBool32 extendedDynamicState3AlphaToOneEnable;
21924 VkBool32 extendedDynamicState3LogicOpEnable;
21925 VkBool32 extendedDynamicState3ColorBlendEnable;
21926 VkBool32 extendedDynamicState3ColorBlendEquation;
21927 VkBool32 extendedDynamicState3ColorWriteMask;
21928 VkBool32 extendedDynamicState3RasterizationStream;
21929 VkBool32 extendedDynamicState3ConservativeRasterizationMode;
21930 VkBool32 extendedDynamicState3ExtraPrimitiveOverestimationSize;
21931 VkBool32 extendedDynamicState3DepthClipEnable;
21932 VkBool32 extendedDynamicState3SampleLocationsEnable;
21933 VkBool32 extendedDynamicState3ColorBlendAdvanced;
21934 VkBool32 extendedDynamicState3ProvokingVertexMode;
21935 VkBool32 extendedDynamicState3LineRasterizationMode;
21936 VkBool32 extendedDynamicState3LineStippleEnable;
21937 VkBool32 extendedDynamicState3DepthClipNegativeOneToOne;
21938 VkBool32 extendedDynamicState3ViewportWScalingEnable;
21939 VkBool32 extendedDynamicState3ViewportSwizzle;
21940 VkBool32 extendedDynamicState3CoverageToColorEnable;
21941 VkBool32 extendedDynamicState3CoverageToColorLocation;
21942 VkBool32 extendedDynamicState3CoverageModulationMode;
21943 VkBool32 extendedDynamicState3CoverageModulationTableEnable;
21944 VkBool32 extendedDynamicState3CoverageModulationTable;
21945 VkBool32 extendedDynamicState3CoverageReductionMode;
21946 VkBool32 extendedDynamicState3RepresentativeFragmentTestEnable;
21947 VkBool32 extendedDynamicState3ShadingRateImageEnable;
21948} VkPhysicalDeviceExtendedDynamicState3FeaturesEXT;
21949
21950typedef struct VkPhysicalDeviceExtendedDynamicState3PropertiesEXT {
21951 VkStructureType sType;
21952 void* pNext;
21953 VkBool32 dynamicPrimitiveTopologyUnrestricted;
21954} VkPhysicalDeviceExtendedDynamicState3PropertiesEXT;
21955
21956typedef struct VkColorBlendEquationEXT {
21957 VkBlendFactor srcColorBlendFactor;
21958 VkBlendFactor dstColorBlendFactor;
21959 VkBlendOp colorBlendOp;
21960 VkBlendFactor srcAlphaBlendFactor;
21961 VkBlendFactor dstAlphaBlendFactor;
21962 VkBlendOp alphaBlendOp;
21963} VkColorBlendEquationEXT;
21964
21965typedef struct VkColorBlendAdvancedEXT {
21966 VkBlendOp advancedBlendOp;
21967 VkBool32 srcPremultiplied;
21968 VkBool32 dstPremultiplied;
21969 VkBlendOverlapEXT blendOverlap;
21970 VkBool32 clampResults;
21971} VkColorBlendAdvancedEXT;
21972
21973typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClampEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthClampEnable);
21974typedef void (VKAPI_PTR *PFN_vkCmdSetPolygonModeEXT)(VkCommandBuffer commandBuffer, VkPolygonMode polygonMode);
21975typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizationSamplesEXT)(VkCommandBuffer commandBuffer, VkSampleCountFlagBits rasterizationSamples);
21976typedef void (VKAPI_PTR *PFN_vkCmdSetSampleMaskEXT)(VkCommandBuffer commandBuffer, VkSampleCountFlagBits samples, const VkSampleMask* pSampleMask);
21977typedef void (VKAPI_PTR *PFN_vkCmdSetAlphaToCoverageEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 alphaToCoverageEnable);
21978typedef void (VKAPI_PTR *PFN_vkCmdSetAlphaToOneEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 alphaToOneEnable);
21979typedef void (VKAPI_PTR *PFN_vkCmdSetLogicOpEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 logicOpEnable);
21980typedef void (VKAPI_PTR *PFN_vkCmdSetColorBlendEnableEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkBool32* pColorBlendEnables);
21981typedef void (VKAPI_PTR *PFN_vkCmdSetColorBlendEquationEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkColorBlendEquationEXT* pColorBlendEquations);
21982typedef void (VKAPI_PTR *PFN_vkCmdSetColorWriteMaskEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkColorComponentFlags* pColorWriteMasks);
21983typedef void (VKAPI_PTR *PFN_vkCmdSetTessellationDomainOriginEXT)(VkCommandBuffer commandBuffer, VkTessellationDomainOrigin domainOrigin);
21984typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizationStreamEXT)(VkCommandBuffer commandBuffer, uint32_t rasterizationStream);
21985typedef void (VKAPI_PTR *PFN_vkCmdSetConservativeRasterizationModeEXT)(VkCommandBuffer commandBuffer, VkConservativeRasterizationModeEXT conservativeRasterizationMode);
21986typedef void (VKAPI_PTR *PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT)(VkCommandBuffer commandBuffer, float extraPrimitiveOverestimationSize);
21987typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClipEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthClipEnable);
21988typedef void (VKAPI_PTR *PFN_vkCmdSetSampleLocationsEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 sampleLocationsEnable);
21989typedef void (VKAPI_PTR *PFN_vkCmdSetColorBlendAdvancedEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkColorBlendAdvancedEXT* pColorBlendAdvanced);
21990typedef void (VKAPI_PTR *PFN_vkCmdSetProvokingVertexModeEXT)(VkCommandBuffer commandBuffer, VkProvokingVertexModeEXT provokingVertexMode);
21991typedef void (VKAPI_PTR *PFN_vkCmdSetLineRasterizationModeEXT)(VkCommandBuffer commandBuffer, VkLineRasterizationModeEXT lineRasterizationMode);
21992typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 stippledLineEnable);
21993typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClipNegativeOneToOneEXT)(VkCommandBuffer commandBuffer, VkBool32 negativeOneToOne);
21994typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWScalingEnableNV)(VkCommandBuffer commandBuffer, VkBool32 viewportWScalingEnable);
21995typedef void (VKAPI_PTR *PFN_vkCmdSetViewportSwizzleNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportSwizzleNV* pViewportSwizzles);
21996typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageToColorEnableNV)(VkCommandBuffer commandBuffer, VkBool32 coverageToColorEnable);
21997typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageToColorLocationNV)(VkCommandBuffer commandBuffer, uint32_t coverageToColorLocation);
21998typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageModulationModeNV)(VkCommandBuffer commandBuffer, VkCoverageModulationModeNV coverageModulationMode);
21999typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageModulationTableEnableNV)(VkCommandBuffer commandBuffer, VkBool32 coverageModulationTableEnable);
22000typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageModulationTableNV)(VkCommandBuffer commandBuffer, uint32_t coverageModulationTableCount, const float* pCoverageModulationTable);
22001typedef void (VKAPI_PTR *PFN_vkCmdSetShadingRateImageEnableNV)(VkCommandBuffer commandBuffer, VkBool32 shadingRateImageEnable);
22002typedef void (VKAPI_PTR *PFN_vkCmdSetRepresentativeFragmentTestEnableNV)(VkCommandBuffer commandBuffer, VkBool32 representativeFragmentTestEnable);
22003typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageReductionModeNV)(VkCommandBuffer commandBuffer, VkCoverageReductionModeNV coverageReductionMode);
22004
22005#ifndef VK_NO_PROTOTYPES
22006#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22007VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClampEnableEXT(
22008 VkCommandBuffer commandBuffer,
22009 VkBool32 depthClampEnable);
22010#endif
22011
22012#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22013VKAPI_ATTR void VKAPI_CALL vkCmdSetPolygonModeEXT(
22014 VkCommandBuffer commandBuffer,
22015 VkPolygonMode polygonMode);
22016#endif
22017
22018#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22019VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizationSamplesEXT(
22020 VkCommandBuffer commandBuffer,
22021 VkSampleCountFlagBits rasterizationSamples);
22022#endif
22023
22024#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22025VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleMaskEXT(
22026 VkCommandBuffer commandBuffer,
22027 VkSampleCountFlagBits samples,
22028 const VkSampleMask* pSampleMask);
22029#endif
22030
22031#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22032VKAPI_ATTR void VKAPI_CALL vkCmdSetAlphaToCoverageEnableEXT(
22033 VkCommandBuffer commandBuffer,
22034 VkBool32 alphaToCoverageEnable);
22035#endif
22036
22037#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22038VKAPI_ATTR void VKAPI_CALL vkCmdSetAlphaToOneEnableEXT(
22039 VkCommandBuffer commandBuffer,
22040 VkBool32 alphaToOneEnable);
22041#endif
22042
22043#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22044VKAPI_ATTR void VKAPI_CALL vkCmdSetLogicOpEnableEXT(
22045 VkCommandBuffer commandBuffer,
22046 VkBool32 logicOpEnable);
22047#endif
22048
22049#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22050VKAPI_ATTR void VKAPI_CALL vkCmdSetColorBlendEnableEXT(
22051 VkCommandBuffer commandBuffer,
22052 uint32_t firstAttachment,
22053 uint32_t attachmentCount,
22054 const VkBool32* pColorBlendEnables);
22055#endif
22056
22057#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22058VKAPI_ATTR void VKAPI_CALL vkCmdSetColorBlendEquationEXT(
22059 VkCommandBuffer commandBuffer,
22060 uint32_t firstAttachment,
22061 uint32_t attachmentCount,
22062 const VkColorBlendEquationEXT* pColorBlendEquations);
22063#endif
22064
22065#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22066VKAPI_ATTR void VKAPI_CALL vkCmdSetColorWriteMaskEXT(
22067 VkCommandBuffer commandBuffer,
22068 uint32_t firstAttachment,
22069 uint32_t attachmentCount,
22070 const VkColorComponentFlags* pColorWriteMasks);
22071#endif
22072
22073#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22074VKAPI_ATTR void VKAPI_CALL vkCmdSetTessellationDomainOriginEXT(
22075 VkCommandBuffer commandBuffer,
22076 VkTessellationDomainOrigin domainOrigin);
22077#endif
22078
22079#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22080VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizationStreamEXT(
22081 VkCommandBuffer commandBuffer,
22082 uint32_t rasterizationStream);
22083#endif
22084
22085#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22086VKAPI_ATTR void VKAPI_CALL vkCmdSetConservativeRasterizationModeEXT(
22087 VkCommandBuffer commandBuffer,
22088 VkConservativeRasterizationModeEXT conservativeRasterizationMode);
22089#endif
22090
22091#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22092VKAPI_ATTR void VKAPI_CALL vkCmdSetExtraPrimitiveOverestimationSizeEXT(
22093 VkCommandBuffer commandBuffer,
22094 float extraPrimitiveOverestimationSize);
22095#endif
22096
22097#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22098VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClipEnableEXT(
22099 VkCommandBuffer commandBuffer,
22100 VkBool32 depthClipEnable);
22101#endif
22102
22103#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22104VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleLocationsEnableEXT(
22105 VkCommandBuffer commandBuffer,
22106 VkBool32 sampleLocationsEnable);
22107#endif
22108
22109#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22110VKAPI_ATTR void VKAPI_CALL vkCmdSetColorBlendAdvancedEXT(
22111 VkCommandBuffer commandBuffer,
22112 uint32_t firstAttachment,
22113 uint32_t attachmentCount,
22114 const VkColorBlendAdvancedEXT* pColorBlendAdvanced);
22115#endif
22116
22117#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22118VKAPI_ATTR void VKAPI_CALL vkCmdSetProvokingVertexModeEXT(
22119 VkCommandBuffer commandBuffer,
22120 VkProvokingVertexModeEXT provokingVertexMode);
22121#endif
22122
22123#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22124VKAPI_ATTR void VKAPI_CALL vkCmdSetLineRasterizationModeEXT(
22125 VkCommandBuffer commandBuffer,
22126 VkLineRasterizationModeEXT lineRasterizationMode);
22127#endif
22128
22129#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22130VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleEnableEXT(
22131 VkCommandBuffer commandBuffer,
22132 VkBool32 stippledLineEnable);
22133#endif
22134
22135#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22136VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClipNegativeOneToOneEXT(
22137 VkCommandBuffer commandBuffer,
22138 VkBool32 negativeOneToOne);
22139#endif
22140
22141#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22142VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWScalingEnableNV(
22143 VkCommandBuffer commandBuffer,
22144 VkBool32 viewportWScalingEnable);
22145#endif
22146
22147#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22148VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportSwizzleNV(
22149 VkCommandBuffer commandBuffer,
22150 uint32_t firstViewport,
22151 uint32_t viewportCount,
22152 const VkViewportSwizzleNV* pViewportSwizzles);
22153#endif
22154
22155#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22156VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageToColorEnableNV(
22157 VkCommandBuffer commandBuffer,
22158 VkBool32 coverageToColorEnable);
22159#endif
22160
22161#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22162VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageToColorLocationNV(
22163 VkCommandBuffer commandBuffer,
22164 uint32_t coverageToColorLocation);
22165#endif
22166
22167#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22168VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageModulationModeNV(
22169 VkCommandBuffer commandBuffer,
22170 VkCoverageModulationModeNV coverageModulationMode);
22171#endif
22172
22173#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22174VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageModulationTableEnableNV(
22175 VkCommandBuffer commandBuffer,
22176 VkBool32 coverageModulationTableEnable);
22177#endif
22178
22179#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22180VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageModulationTableNV(
22181 VkCommandBuffer commandBuffer,
22182 uint32_t coverageModulationTableCount,
22183 const float* pCoverageModulationTable);
22184#endif
22185
22186#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22187VKAPI_ATTR void VKAPI_CALL vkCmdSetShadingRateImageEnableNV(
22188 VkCommandBuffer commandBuffer,
22189 VkBool32 shadingRateImageEnable);
22190#endif
22191
22192#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22193VKAPI_ATTR void VKAPI_CALL vkCmdSetRepresentativeFragmentTestEnableNV(
22194 VkCommandBuffer commandBuffer,
22195 VkBool32 representativeFragmentTestEnable);
22196#endif
22197
22198#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22199VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageReductionModeNV(
22200 VkCommandBuffer commandBuffer,
22201 VkCoverageReductionModeNV coverageReductionMode);
22202#endif
22203#endif
22204
22205
22206// VK_EXT_subpass_merge_feedback is a preprocessor guard. Do not pass it to API calls.
22207#define VK_EXT_subpass_merge_feedback 1
22208#define VK_EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION 2
22209#define VK_EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME "VK_EXT_subpass_merge_feedback"
22210
22211typedef enum VkSubpassMergeStatusEXT {
22212 VK_SUBPASS_MERGE_STATUS_MERGED_EXT = 0,
22213 VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT = 1,
22214 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT = 2,
22215 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT = 3,
22216 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT = 4,
22217 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT = 5,
22218 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT = 6,
22219 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT = 7,
22220 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT = 8,
22221 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT = 9,
22222 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT = 10,
22223 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT = 11,
22224 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT = 12,
22225 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT = 13,
22226 VK_SUBPASS_MERGE_STATUS_MAX_ENUM_EXT = 0x7FFFFFFF
22227} VkSubpassMergeStatusEXT;
22228typedef struct VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT {
22229 VkStructureType sType;
22230 void* pNext;
22231 VkBool32 subpassMergeFeedback;
22232} VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT;
22233
22234typedef struct VkRenderPassCreationControlEXT {
22235 VkStructureType sType;
22236 const void* pNext;
22237 VkBool32 disallowMerging;
22238} VkRenderPassCreationControlEXT;
22239
22240typedef struct VkRenderPassCreationFeedbackInfoEXT {
22241 uint32_t postMergeSubpassCount;
22242} VkRenderPassCreationFeedbackInfoEXT;
22243
22244typedef struct VkRenderPassCreationFeedbackCreateInfoEXT {
22245 VkStructureType sType;
22246 const void* pNext;
22247 VkRenderPassCreationFeedbackInfoEXT* pRenderPassFeedback;
22248} VkRenderPassCreationFeedbackCreateInfoEXT;
22249
22250typedef struct VkRenderPassSubpassFeedbackInfoEXT {
22251 VkSubpassMergeStatusEXT subpassMergeStatus;
22252 char description[VK_MAX_DESCRIPTION_SIZE];
22253 uint32_t postMergeIndex;
22254} VkRenderPassSubpassFeedbackInfoEXT;
22255
22256typedef struct VkRenderPassSubpassFeedbackCreateInfoEXT {
22257 VkStructureType sType;
22258 const void* pNext;
22259 VkRenderPassSubpassFeedbackInfoEXT* pSubpassFeedback;
22260} VkRenderPassSubpassFeedbackCreateInfoEXT;
22261
22262
22263
22264// VK_LUNARG_direct_driver_loading is a preprocessor guard. Do not pass it to API calls.
22265#define VK_LUNARG_direct_driver_loading 1
22266#define VK_LUNARG_DIRECT_DRIVER_LOADING_SPEC_VERSION 1
22267#define VK_LUNARG_DIRECT_DRIVER_LOADING_EXTENSION_NAME "VK_LUNARG_direct_driver_loading"
22268
22269typedef enum VkDirectDriverLoadingModeLUNARG {
22270 VK_DIRECT_DRIVER_LOADING_MODE_EXCLUSIVE_LUNARG = 0,
22271 VK_DIRECT_DRIVER_LOADING_MODE_INCLUSIVE_LUNARG = 1,
22272 VK_DIRECT_DRIVER_LOADING_MODE_MAX_ENUM_LUNARG = 0x7FFFFFFF
22273} VkDirectDriverLoadingModeLUNARG;
22274typedef VkFlags VkDirectDriverLoadingFlagsLUNARG;
22275typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddrLUNARG)(
22276 VkInstance instance,
22277 const char* pName);
22278
22279typedef struct VkDirectDriverLoadingInfoLUNARG {
22280 VkStructureType sType;
22281 void* pNext;
22282 VkDirectDriverLoadingFlagsLUNARG flags;
22283 PFN_vkGetInstanceProcAddrLUNARG pfnGetInstanceProcAddr;
22284} VkDirectDriverLoadingInfoLUNARG;
22285
22286typedef struct VkDirectDriverLoadingListLUNARG {
22287 VkStructureType sType;
22288 const void* pNext;
22289 VkDirectDriverLoadingModeLUNARG mode;
22290 uint32_t driverCount;
22291 const VkDirectDriverLoadingInfoLUNARG* pDrivers;
22292} VkDirectDriverLoadingListLUNARG;
22293
22294
22295
22296// VK_ARM_tensors is a preprocessor guard. Do not pass it to API calls.
22297#define VK_ARM_tensors 1
22298VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkTensorViewARM)
22299#define VK_ARM_TENSORS_SPEC_VERSION 2
22300#define VK_ARM_TENSORS_EXTENSION_NAME "VK_ARM_tensors"
22301
22302typedef enum VkTensorTilingARM {
22303 VK_TENSOR_TILING_OPTIMAL_ARM = 0,
22304 VK_TENSOR_TILING_LINEAR_ARM = 1,
22305 VK_TENSOR_TILING_MAX_ENUM_ARM = 0x7FFFFFFF
22306} VkTensorTilingARM;
22307typedef VkFlags64 VkTensorCreateFlagsARM;
22308
22309// Flag bits for VkTensorCreateFlagBitsARM
22310typedef VkFlags64 VkTensorCreateFlagBitsARM;
22311static const VkTensorCreateFlagBitsARM VK_TENSOR_CREATE_MUTABLE_FORMAT_BIT_ARM = 0x00000001ULL;
22312static const VkTensorCreateFlagBitsARM VK_TENSOR_CREATE_PROTECTED_BIT_ARM = 0x00000002ULL;
22313static const VkTensorCreateFlagBitsARM VK_TENSOR_CREATE_DESCRIPTOR_HEAP_CAPTURE_REPLAY_BIT_ARM = 0x00000008ULL;
22314static const VkTensorCreateFlagBitsARM VK_TENSOR_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_ARM = 0x00000004ULL;
22315
22316typedef VkFlags64 VkTensorUsageFlagsARM;
22317
22318// Flag bits for VkTensorUsageFlagBitsARM
22319typedef VkFlags64 VkTensorUsageFlagBitsARM;
22320static const VkTensorUsageFlagBitsARM VK_TENSOR_USAGE_SHADER_BIT_ARM = 0x00000002ULL;
22321static const VkTensorUsageFlagBitsARM VK_TENSOR_USAGE_TRANSFER_SRC_BIT_ARM = 0x00000004ULL;
22322static const VkTensorUsageFlagBitsARM VK_TENSOR_USAGE_TRANSFER_DST_BIT_ARM = 0x00000008ULL;
22323static const VkTensorUsageFlagBitsARM VK_TENSOR_USAGE_IMAGE_ALIASING_BIT_ARM = 0x00000010ULL;
22324static const VkTensorUsageFlagBitsARM VK_TENSOR_USAGE_DATA_GRAPH_BIT_ARM = 0x00000020ULL;
22325
22326typedef struct VkTensorDescriptionARM {
22327 VkStructureType sType;
22328 const void* pNext;
22329 VkTensorTilingARM tiling;
22330 VkFormat format;
22331 uint32_t dimensionCount;
22332 const int64_t* pDimensions;
22333 const int64_t* pStrides;
22334 VkTensorUsageFlagsARM usage;
22335} VkTensorDescriptionARM;
22336
22337typedef struct VkTensorCreateInfoARM {
22338 VkStructureType sType;
22339 const void* pNext;
22340 VkTensorCreateFlagsARM flags;
22341 const VkTensorDescriptionARM* pDescription;
22342 VkSharingMode sharingMode;
22343 uint32_t queueFamilyIndexCount;
22344 const uint32_t* pQueueFamilyIndices;
22345} VkTensorCreateInfoARM;
22346
22347typedef struct VkTensorMemoryRequirementsInfoARM {
22348 VkStructureType sType;
22349 const void* pNext;
22350 VkTensorARM tensor;
22351} VkTensorMemoryRequirementsInfoARM;
22352
22353typedef struct VkBindTensorMemoryInfoARM {
22354 VkStructureType sType;
22355 const void* pNext;
22356 VkTensorARM tensor;
22357 VkDeviceMemory memory;
22358 VkDeviceSize memoryOffset;
22359} VkBindTensorMemoryInfoARM;
22360
22361typedef struct VkWriteDescriptorSetTensorARM {
22362 VkStructureType sType;
22363 const void* pNext;
22364 uint32_t tensorViewCount;
22365 const VkTensorViewARM* pTensorViews;
22366} VkWriteDescriptorSetTensorARM;
22367
22368typedef struct VkTensorFormatPropertiesARM {
22369 VkStructureType sType;
22370 void* pNext;
22371 VkFormatFeatureFlags2 optimalTilingTensorFeatures;
22372 VkFormatFeatureFlags2 linearTilingTensorFeatures;
22373} VkTensorFormatPropertiesARM;
22374
22375typedef struct VkPhysicalDeviceTensorPropertiesARM {
22376 VkStructureType sType;
22377 void* pNext;
22378 uint32_t maxTensorDimensionCount;
22379 uint64_t maxTensorElements;
22380 uint64_t maxPerDimensionTensorElements;
22381 int64_t maxTensorStride;
22382 uint64_t maxTensorSize;
22383 uint32_t maxTensorShaderAccessArrayLength;
22384 uint32_t maxTensorShaderAccessSize;
22385 uint32_t maxDescriptorSetStorageTensors;
22386 uint32_t maxPerStageDescriptorSetStorageTensors;
22387 uint32_t maxDescriptorSetUpdateAfterBindStorageTensors;
22388 uint32_t maxPerStageDescriptorUpdateAfterBindStorageTensors;
22389 VkBool32 shaderStorageTensorArrayNonUniformIndexingNative;
22390 VkShaderStageFlags shaderTensorSupportedStages;
22391} VkPhysicalDeviceTensorPropertiesARM;
22392
22393typedef struct VkTensorMemoryBarrierARM {
22394 VkStructureType sType;
22395 const void* pNext;
22396 VkPipelineStageFlags2 srcStageMask;
22397 VkAccessFlags2 srcAccessMask;
22398 VkPipelineStageFlags2 dstStageMask;
22399 VkAccessFlags2 dstAccessMask;
22400 uint32_t srcQueueFamilyIndex;
22401 uint32_t dstQueueFamilyIndex;
22402 VkTensorARM tensor;
22403} VkTensorMemoryBarrierARM;
22404
22405typedef struct VkTensorDependencyInfoARM {
22406 VkStructureType sType;
22407 const void* pNext;
22408 uint32_t tensorMemoryBarrierCount;
22409 const VkTensorMemoryBarrierARM* pTensorMemoryBarriers;
22410} VkTensorDependencyInfoARM;
22411
22412typedef struct VkPhysicalDeviceTensorFeaturesARM {
22413 VkStructureType sType;
22414 void* pNext;
22415 VkBool32 tensorNonPacked;
22416 VkBool32 shaderTensorAccess;
22417 VkBool32 shaderStorageTensorArrayDynamicIndexing;
22418 VkBool32 shaderStorageTensorArrayNonUniformIndexing;
22419 VkBool32 descriptorBindingStorageTensorUpdateAfterBind;
22420 VkBool32 tensors;
22421} VkPhysicalDeviceTensorFeaturesARM;
22422
22423typedef struct VkDeviceTensorMemoryRequirementsARM {
22424 VkStructureType sType;
22425 const void* pNext;
22426 const VkTensorCreateInfoARM* pCreateInfo;
22427} VkDeviceTensorMemoryRequirementsARM;
22428
22429typedef struct VkTensorCopyARM {
22430 VkStructureType sType;
22431 const void* pNext;
22432 uint32_t dimensionCount;
22433 const uint64_t* pSrcOffset;
22434 const uint64_t* pDstOffset;
22435 const uint64_t* pExtent;
22436} VkTensorCopyARM;
22437
22438typedef struct VkCopyTensorInfoARM {
22439 VkStructureType sType;
22440 const void* pNext;
22441 VkTensorARM srcTensor;
22442 VkTensorARM dstTensor;
22443 uint32_t regionCount;
22444 const VkTensorCopyARM* pRegions;
22445} VkCopyTensorInfoARM;
22446
22447typedef struct VkMemoryDedicatedAllocateInfoTensorARM {
22448 VkStructureType sType;
22449 const void* pNext;
22450 VkTensorARM tensor;
22451} VkMemoryDedicatedAllocateInfoTensorARM;
22452
22453typedef struct VkPhysicalDeviceExternalTensorInfoARM {
22454 VkStructureType sType;
22455 const void* pNext;
22456 VkTensorCreateFlagsARM flags;
22457 const VkTensorDescriptionARM* pDescription;
22458 VkExternalMemoryHandleTypeFlagBits handleType;
22459} VkPhysicalDeviceExternalTensorInfoARM;
22460
22461typedef struct VkExternalTensorPropertiesARM {
22462 VkStructureType sType;
22463 const void* pNext;
22464 VkExternalMemoryProperties externalMemoryProperties;
22465} VkExternalTensorPropertiesARM;
22466
22467typedef struct VkExternalMemoryTensorCreateInfoARM {
22468 VkStructureType sType;
22469 const void* pNext;
22470 VkExternalMemoryHandleTypeFlags handleTypes;
22471} VkExternalMemoryTensorCreateInfoARM;
22472
22473typedef struct VkPhysicalDeviceDescriptorBufferTensorFeaturesARM {
22474 VkStructureType sType;
22475 void* pNext;
22476 VkBool32 descriptorBufferTensorDescriptors;
22477} VkPhysicalDeviceDescriptorBufferTensorFeaturesARM;
22478
22479typedef struct VkPhysicalDeviceDescriptorBufferTensorPropertiesARM {
22480 VkStructureType sType;
22481 void* pNext;
22482 size_t tensorCaptureReplayDescriptorDataSize;
22483 size_t tensorViewCaptureReplayDescriptorDataSize;
22484 size_t tensorDescriptorSize;
22485} VkPhysicalDeviceDescriptorBufferTensorPropertiesARM;
22486
22487typedef struct VkDescriptorGetTensorInfoARM {
22488 VkStructureType sType;
22489 const void* pNext;
22490 VkTensorViewARM tensorView;
22491} VkDescriptorGetTensorInfoARM;
22492
22493typedef struct VkTensorCaptureDescriptorDataInfoARM {
22494 VkStructureType sType;
22495 const void* pNext;
22496 VkTensorARM tensor;
22497} VkTensorCaptureDescriptorDataInfoARM;
22498
22499typedef struct VkTensorViewCaptureDescriptorDataInfoARM {
22500 VkStructureType sType;
22501 const void* pNext;
22502 VkTensorViewARM tensorView;
22503} VkTensorViewCaptureDescriptorDataInfoARM;
22504
22505typedef struct VkFrameBoundaryTensorsARM {
22506 VkStructureType sType;
22507 const void* pNext;
22508 uint32_t tensorCount;
22509 const VkTensorARM* pTensors;
22510} VkFrameBoundaryTensorsARM;
22511
22512typedef VkResult (VKAPI_PTR *PFN_vkCreateTensorARM)(VkDevice device, const VkTensorCreateInfoARM* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkTensorARM* pTensor);
22513typedef void (VKAPI_PTR *PFN_vkDestroyTensorARM)(VkDevice device, VkTensorARM tensor, const VkAllocationCallbacks* pAllocator);
22514typedef VkResult (VKAPI_PTR *PFN_vkCreateTensorViewARM)(VkDevice device, const VkTensorViewCreateInfoARM* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkTensorViewARM* pView);
22515typedef void (VKAPI_PTR *PFN_vkDestroyTensorViewARM)(VkDevice device, VkTensorViewARM tensorView, const VkAllocationCallbacks* pAllocator);
22516typedef void (VKAPI_PTR *PFN_vkGetTensorMemoryRequirementsARM)(VkDevice device, const VkTensorMemoryRequirementsInfoARM* pInfo, VkMemoryRequirements2* pMemoryRequirements);
22517typedef VkResult (VKAPI_PTR *PFN_vkBindTensorMemoryARM)(VkDevice device, uint32_t bindInfoCount, const VkBindTensorMemoryInfoARM* pBindInfos);
22518typedef void (VKAPI_PTR *PFN_vkGetDeviceTensorMemoryRequirementsARM)(VkDevice device, const VkDeviceTensorMemoryRequirementsARM* pInfo, VkMemoryRequirements2* pMemoryRequirements);
22519typedef void (VKAPI_PTR *PFN_vkCmdCopyTensorARM)(VkCommandBuffer commandBuffer, const VkCopyTensorInfoARM* pCopyTensorInfo);
22520typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalTensorPropertiesARM)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalTensorInfoARM* pExternalTensorInfo, VkExternalTensorPropertiesARM* pExternalTensorProperties);
22521typedef VkResult (VKAPI_PTR *PFN_vkGetTensorOpaqueCaptureDescriptorDataARM)(VkDevice device, const VkTensorCaptureDescriptorDataInfoARM* pInfo, void* pData);
22522typedef VkResult (VKAPI_PTR *PFN_vkGetTensorViewOpaqueCaptureDescriptorDataARM)(VkDevice device, const VkTensorViewCaptureDescriptorDataInfoARM* pInfo, void* pData);
22523
22524#ifndef VK_NO_PROTOTYPES
22525#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22526VKAPI_ATTR VkResult VKAPI_CALL vkCreateTensorARM(
22527 VkDevice device,
22528 const VkTensorCreateInfoARM* pCreateInfo,
22529 const VkAllocationCallbacks* pAllocator,
22530 VkTensorARM* pTensor);
22531#endif
22532
22533#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22534VKAPI_ATTR void VKAPI_CALL vkDestroyTensorARM(
22535 VkDevice device,
22536 VkTensorARM tensor,
22537 const VkAllocationCallbacks* pAllocator);
22538#endif
22539
22540#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22541VKAPI_ATTR VkResult VKAPI_CALL vkCreateTensorViewARM(
22542 VkDevice device,
22543 const VkTensorViewCreateInfoARM* pCreateInfo,
22544 const VkAllocationCallbacks* pAllocator,
22545 VkTensorViewARM* pView);
22546#endif
22547
22548#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22549VKAPI_ATTR void VKAPI_CALL vkDestroyTensorViewARM(
22550 VkDevice device,
22551 VkTensorViewARM tensorView,
22552 const VkAllocationCallbacks* pAllocator);
22553#endif
22554
22555#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22556VKAPI_ATTR void VKAPI_CALL vkGetTensorMemoryRequirementsARM(
22557 VkDevice device,
22558 const VkTensorMemoryRequirementsInfoARM* pInfo,
22559 VkMemoryRequirements2* pMemoryRequirements);
22560#endif
22561
22562#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22563VKAPI_ATTR VkResult VKAPI_CALL vkBindTensorMemoryARM(
22564 VkDevice device,
22565 uint32_t bindInfoCount,
22566 const VkBindTensorMemoryInfoARM* pBindInfos);
22567#endif
22568
22569#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22570VKAPI_ATTR void VKAPI_CALL vkGetDeviceTensorMemoryRequirementsARM(
22571 VkDevice device,
22572 const VkDeviceTensorMemoryRequirementsARM* pInfo,
22573 VkMemoryRequirements2* pMemoryRequirements);
22574#endif
22575
22576#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22577VKAPI_ATTR void VKAPI_CALL vkCmdCopyTensorARM(
22578 VkCommandBuffer commandBuffer,
22579 const VkCopyTensorInfoARM* pCopyTensorInfo);
22580#endif
22581
22582#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22583VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalTensorPropertiesARM(
22584 VkPhysicalDevice physicalDevice,
22585 const VkPhysicalDeviceExternalTensorInfoARM* pExternalTensorInfo,
22586 VkExternalTensorPropertiesARM* pExternalTensorProperties);
22587#endif
22588
22589#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22590VKAPI_ATTR VkResult VKAPI_CALL vkGetTensorOpaqueCaptureDescriptorDataARM(
22591 VkDevice device,
22592 const VkTensorCaptureDescriptorDataInfoARM* pInfo,
22593 void* pData);
22594#endif
22595
22596#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22597VKAPI_ATTR VkResult VKAPI_CALL vkGetTensorViewOpaqueCaptureDescriptorDataARM(
22598 VkDevice device,
22599 const VkTensorViewCaptureDescriptorDataInfoARM* pInfo,
22600 void* pData);
22601#endif
22602#endif
22603
22604
22605// VK_EXT_shader_module_identifier is a preprocessor guard. Do not pass it to API calls.
22606#define VK_EXT_shader_module_identifier 1
22607#define VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT 32U
22608#define VK_EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION 1
22609#define VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME "VK_EXT_shader_module_identifier"
22610typedef struct VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT {
22611 VkStructureType sType;
22612 void* pNext;
22613 VkBool32 shaderModuleIdentifier;
22614} VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT;
22615
22616typedef struct VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT {
22617 VkStructureType sType;
22618 void* pNext;
22619 uint8_t shaderModuleIdentifierAlgorithmUUID[VK_UUID_SIZE];
22620} VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT;
22621
22622typedef struct VkPipelineShaderStageModuleIdentifierCreateInfoEXT {
22623 VkStructureType sType;
22624 const void* pNext;
22625 uint32_t identifierSize;
22626 const uint8_t* pIdentifier;
22627} VkPipelineShaderStageModuleIdentifierCreateInfoEXT;
22628
22629typedef struct VkShaderModuleIdentifierEXT {
22630 VkStructureType sType;
22631 void* pNext;
22632 uint32_t identifierSize;
22633 uint8_t identifier[VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT];
22634} VkShaderModuleIdentifierEXT;
22635
22636typedef void (VKAPI_PTR *PFN_vkGetShaderModuleIdentifierEXT)(VkDevice device, VkShaderModule shaderModule, VkShaderModuleIdentifierEXT* pIdentifier);
22637typedef void (VKAPI_PTR *PFN_vkGetShaderModuleCreateInfoIdentifierEXT)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, VkShaderModuleIdentifierEXT* pIdentifier);
22638
22639#ifndef VK_NO_PROTOTYPES
22640#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22641VKAPI_ATTR void VKAPI_CALL vkGetShaderModuleIdentifierEXT(
22642 VkDevice device,
22643 VkShaderModule shaderModule,
22644 VkShaderModuleIdentifierEXT* pIdentifier);
22645#endif
22646
22647#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22648VKAPI_ATTR void VKAPI_CALL vkGetShaderModuleCreateInfoIdentifierEXT(
22649 VkDevice device,
22650 const VkShaderModuleCreateInfo* pCreateInfo,
22651 VkShaderModuleIdentifierEXT* pIdentifier);
22652#endif
22653#endif
22654
22655
22656// VK_EXT_rasterization_order_attachment_access is a preprocessor guard. Do not pass it to API calls.
22657#define VK_EXT_rasterization_order_attachment_access 1
22658#define VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION 1
22659#define VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME "VK_EXT_rasterization_order_attachment_access"
22660
22661
22662// VK_NV_optical_flow is a preprocessor guard. Do not pass it to API calls.
22663#define VK_NV_optical_flow 1
22664VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkOpticalFlowSessionNV)
22665#define VK_NV_OPTICAL_FLOW_SPEC_VERSION 1
22666#define VK_NV_OPTICAL_FLOW_EXTENSION_NAME "VK_NV_optical_flow"
22667
22668typedef enum VkOpticalFlowPerformanceLevelNV {
22669 VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV = 0,
22670 VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV = 1,
22671 VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV = 2,
22672 VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV = 3,
22673 VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MAX_ENUM_NV = 0x7FFFFFFF
22674} VkOpticalFlowPerformanceLevelNV;
22675
22676typedef enum VkOpticalFlowSessionBindingPointNV {
22677 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV = 0,
22678 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV = 1,
22679 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV = 2,
22680 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV = 3,
22681 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV = 4,
22682 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV = 5,
22683 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV = 6,
22684 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV = 7,
22685 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV = 8,
22686 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_MAX_ENUM_NV = 0x7FFFFFFF
22687} VkOpticalFlowSessionBindingPointNV;
22688
22689typedef enum VkOpticalFlowGridSizeFlagBitsNV {
22690 VK_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV = 0,
22691 VK_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV = 0x00000001,
22692 VK_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV = 0x00000002,
22693 VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV = 0x00000004,
22694 VK_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV = 0x00000008,
22695 VK_OPTICAL_FLOW_GRID_SIZE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
22696} VkOpticalFlowGridSizeFlagBitsNV;
22697typedef VkFlags VkOpticalFlowGridSizeFlagsNV;
22698
22699typedef enum VkOpticalFlowUsageFlagBitsNV {
22700 VK_OPTICAL_FLOW_USAGE_UNKNOWN_NV = 0,
22701 VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV = 0x00000001,
22702 VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV = 0x00000002,
22703 VK_OPTICAL_FLOW_USAGE_HINT_BIT_NV = 0x00000004,
22704 VK_OPTICAL_FLOW_USAGE_COST_BIT_NV = 0x00000008,
22705 VK_OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV = 0x00000010,
22706 VK_OPTICAL_FLOW_USAGE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
22707} VkOpticalFlowUsageFlagBitsNV;
22708typedef VkFlags VkOpticalFlowUsageFlagsNV;
22709
22710typedef enum VkOpticalFlowSessionCreateFlagBitsNV {
22711 VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV = 0x00000001,
22712 VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV = 0x00000002,
22713 VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV = 0x00000004,
22714 VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV = 0x00000008,
22715 VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV = 0x00000010,
22716 VK_OPTICAL_FLOW_SESSION_CREATE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
22717} VkOpticalFlowSessionCreateFlagBitsNV;
22718typedef VkFlags VkOpticalFlowSessionCreateFlagsNV;
22719
22720typedef enum VkOpticalFlowExecuteFlagBitsNV {
22721 VK_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV = 0x00000001,
22722 VK_OPTICAL_FLOW_EXECUTE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
22723} VkOpticalFlowExecuteFlagBitsNV;
22724typedef VkFlags VkOpticalFlowExecuteFlagsNV;
22725typedef struct VkPhysicalDeviceOpticalFlowFeaturesNV {
22726 VkStructureType sType;
22727 void* pNext;
22728 VkBool32 opticalFlow;
22729} VkPhysicalDeviceOpticalFlowFeaturesNV;
22730
22731typedef struct VkPhysicalDeviceOpticalFlowPropertiesNV {
22732 VkStructureType sType;
22733 void* pNext;
22734 VkOpticalFlowGridSizeFlagsNV supportedOutputGridSizes;
22735 VkOpticalFlowGridSizeFlagsNV supportedHintGridSizes;
22736 VkBool32 hintSupported;
22737 VkBool32 costSupported;
22738 VkBool32 bidirectionalFlowSupported;
22739 VkBool32 globalFlowSupported;
22740 uint32_t minWidth;
22741 uint32_t minHeight;
22742 uint32_t maxWidth;
22743 uint32_t maxHeight;
22744 uint32_t maxNumRegionsOfInterest;
22745} VkPhysicalDeviceOpticalFlowPropertiesNV;
22746
22747typedef struct VkOpticalFlowImageFormatInfoNV {
22748 VkStructureType sType;
22749 const void* pNext;
22750 VkOpticalFlowUsageFlagsNV usage;
22751} VkOpticalFlowImageFormatInfoNV;
22752
22753typedef struct VkOpticalFlowImageFormatPropertiesNV {
22754 VkStructureType sType;
22755 void* pNext;
22756 VkFormat format;
22757} VkOpticalFlowImageFormatPropertiesNV;
22758
22759typedef struct VkOpticalFlowSessionCreateInfoNV {
22760 VkStructureType sType;
22761 void* pNext;
22762 uint32_t width;
22763 uint32_t height;
22764 VkFormat imageFormat;
22765 VkFormat flowVectorFormat;
22766 VkFormat costFormat;
22767 VkOpticalFlowGridSizeFlagsNV outputGridSize;
22768 VkOpticalFlowGridSizeFlagsNV hintGridSize;
22769 VkOpticalFlowPerformanceLevelNV performanceLevel;
22770 VkOpticalFlowSessionCreateFlagsNV flags;
22771} VkOpticalFlowSessionCreateInfoNV;
22772
22773typedef struct VkOpticalFlowSessionCreatePrivateDataInfoNV {
22774 VkStructureType sType;
22775 void* pNext;
22776 uint32_t id;
22777 uint32_t size;
22778 const void* pPrivateData;
22779} VkOpticalFlowSessionCreatePrivateDataInfoNV;
22780
22781typedef struct VkOpticalFlowExecuteInfoNV {
22782 VkStructureType sType;
22783 void* pNext;
22784 VkOpticalFlowExecuteFlagsNV flags;
22785 uint32_t regionCount;
22786 const VkRect2D* pRegions;
22787} VkOpticalFlowExecuteInfoNV;
22788
22789typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV)(VkPhysicalDevice physicalDevice, const VkOpticalFlowImageFormatInfoNV* pOpticalFlowImageFormatInfo, uint32_t* pFormatCount, VkOpticalFlowImageFormatPropertiesNV* pImageFormatProperties);
22790typedef VkResult (VKAPI_PTR *PFN_vkCreateOpticalFlowSessionNV)(VkDevice device, const VkOpticalFlowSessionCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkOpticalFlowSessionNV* pSession);
22791typedef void (VKAPI_PTR *PFN_vkDestroyOpticalFlowSessionNV)(VkDevice device, VkOpticalFlowSessionNV session, const VkAllocationCallbacks* pAllocator);
22792typedef VkResult (VKAPI_PTR *PFN_vkBindOpticalFlowSessionImageNV)(VkDevice device, VkOpticalFlowSessionNV session, VkOpticalFlowSessionBindingPointNV bindingPoint, VkImageView view, VkImageLayout layout);
22793typedef void (VKAPI_PTR *PFN_vkCmdOpticalFlowExecuteNV)(VkCommandBuffer commandBuffer, VkOpticalFlowSessionNV session, const VkOpticalFlowExecuteInfoNV* pExecuteInfo);
22794
22795#ifndef VK_NO_PROTOTYPES
22796#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22797VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceOpticalFlowImageFormatsNV(
22798 VkPhysicalDevice physicalDevice,
22799 const VkOpticalFlowImageFormatInfoNV* pOpticalFlowImageFormatInfo,
22800 uint32_t* pFormatCount,
22801 VkOpticalFlowImageFormatPropertiesNV* pImageFormatProperties);
22802#endif
22803
22804#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22805VKAPI_ATTR VkResult VKAPI_CALL vkCreateOpticalFlowSessionNV(
22806 VkDevice device,
22807 const VkOpticalFlowSessionCreateInfoNV* pCreateInfo,
22808 const VkAllocationCallbacks* pAllocator,
22809 VkOpticalFlowSessionNV* pSession);
22810#endif
22811
22812#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22813VKAPI_ATTR void VKAPI_CALL vkDestroyOpticalFlowSessionNV(
22814 VkDevice device,
22815 VkOpticalFlowSessionNV session,
22816 const VkAllocationCallbacks* pAllocator);
22817#endif
22818
22819#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22820VKAPI_ATTR VkResult VKAPI_CALL vkBindOpticalFlowSessionImageNV(
22821 VkDevice device,
22822 VkOpticalFlowSessionNV session,
22823 VkOpticalFlowSessionBindingPointNV bindingPoint,
22824 VkImageView view,
22825 VkImageLayout layout);
22826#endif
22827
22828#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22829VKAPI_ATTR void VKAPI_CALL vkCmdOpticalFlowExecuteNV(
22830 VkCommandBuffer commandBuffer,
22831 VkOpticalFlowSessionNV session,
22832 const VkOpticalFlowExecuteInfoNV* pExecuteInfo);
22833#endif
22834#endif
22835
22836
22837// VK_EXT_legacy_dithering is a preprocessor guard. Do not pass it to API calls.
22838#define VK_EXT_legacy_dithering 1
22839#define VK_EXT_LEGACY_DITHERING_SPEC_VERSION 2
22840#define VK_EXT_LEGACY_DITHERING_EXTENSION_NAME "VK_EXT_legacy_dithering"
22841typedef struct VkPhysicalDeviceLegacyDitheringFeaturesEXT {
22842 VkStructureType sType;
22843 void* pNext;
22844 VkBool32 legacyDithering;
22845} VkPhysicalDeviceLegacyDitheringFeaturesEXT;
22846
22847
22848
22849// VK_EXT_pipeline_protected_access is a preprocessor guard. Do not pass it to API calls.
22850#define VK_EXT_pipeline_protected_access 1
22851#define VK_EXT_PIPELINE_PROTECTED_ACCESS_SPEC_VERSION 1
22852#define VK_EXT_PIPELINE_PROTECTED_ACCESS_EXTENSION_NAME "VK_EXT_pipeline_protected_access"
22853typedef VkPhysicalDevicePipelineProtectedAccessFeatures VkPhysicalDevicePipelineProtectedAccessFeaturesEXT;
22854
22855
22856
22857// VK_AMD_anti_lag is a preprocessor guard. Do not pass it to API calls.
22858#define VK_AMD_anti_lag 1
22859#define VK_AMD_ANTI_LAG_SPEC_VERSION 1
22860#define VK_AMD_ANTI_LAG_EXTENSION_NAME "VK_AMD_anti_lag"
22861
22862typedef enum VkAntiLagModeAMD {
22863 VK_ANTI_LAG_MODE_DRIVER_CONTROL_AMD = 0,
22864 VK_ANTI_LAG_MODE_ON_AMD = 1,
22865 VK_ANTI_LAG_MODE_OFF_AMD = 2,
22866 VK_ANTI_LAG_MODE_MAX_ENUM_AMD = 0x7FFFFFFF
22867} VkAntiLagModeAMD;
22868
22869typedef enum VkAntiLagStageAMD {
22870 VK_ANTI_LAG_STAGE_INPUT_AMD = 0,
22871 VK_ANTI_LAG_STAGE_PRESENT_AMD = 1,
22872 VK_ANTI_LAG_STAGE_MAX_ENUM_AMD = 0x7FFFFFFF
22873} VkAntiLagStageAMD;
22874typedef struct VkPhysicalDeviceAntiLagFeaturesAMD {
22875 VkStructureType sType;
22876 void* pNext;
22877 VkBool32 antiLag;
22878} VkPhysicalDeviceAntiLagFeaturesAMD;
22879
22880typedef struct VkAntiLagPresentationInfoAMD {
22881 VkStructureType sType;
22882 void* pNext;
22883 VkAntiLagStageAMD stage;
22884 uint64_t frameIndex;
22885} VkAntiLagPresentationInfoAMD;
22886
22887typedef struct VkAntiLagDataAMD {
22888 VkStructureType sType;
22889 const void* pNext;
22890 VkAntiLagModeAMD mode;
22891 uint32_t maxFPS;
22892 const VkAntiLagPresentationInfoAMD* pPresentationInfo;
22893} VkAntiLagDataAMD;
22894
22895typedef void (VKAPI_PTR *PFN_vkAntiLagUpdateAMD)(VkDevice device, const VkAntiLagDataAMD* pData);
22896
22897#ifndef VK_NO_PROTOTYPES
22898#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22899VKAPI_ATTR void VKAPI_CALL vkAntiLagUpdateAMD(
22900 VkDevice device,
22901 const VkAntiLagDataAMD* pData);
22902#endif
22903#endif
22904
22905
22906// VK_EXT_shader_object is a preprocessor guard. Do not pass it to API calls.
22907#define VK_EXT_shader_object 1
22908VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderEXT)
22909#define VK_EXT_SHADER_OBJECT_SPEC_VERSION 1
22910#define VK_EXT_SHADER_OBJECT_EXTENSION_NAME "VK_EXT_shader_object"
22911
22912typedef enum VkShaderCodeTypeEXT {
22913 VK_SHADER_CODE_TYPE_BINARY_EXT = 0,
22914 VK_SHADER_CODE_TYPE_SPIRV_EXT = 1,
22915 VK_SHADER_CODE_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
22916} VkShaderCodeTypeEXT;
22917
22918typedef enum VkDepthClampModeEXT {
22919 VK_DEPTH_CLAMP_MODE_VIEWPORT_RANGE_EXT = 0,
22920 VK_DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT = 1,
22921 VK_DEPTH_CLAMP_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
22922} VkDepthClampModeEXT;
22923
22924typedef enum VkShaderCreateFlagBitsEXT {
22925 VK_SHADER_CREATE_LINK_STAGE_BIT_EXT = 0x00000001,
22926 VK_SHADER_CREATE_DESCRIPTOR_HEAP_BIT_EXT = 0x00000400,
22927 VK_SHADER_CREATE_INSTRUMENT_SHADER_BIT_ARM = 0x00000800,
22928 VK_SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = 0x00000002,
22929 VK_SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = 0x00000004,
22930 VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT = 0x00000008,
22931 VK_SHADER_CREATE_DISPATCH_BASE_BIT_EXT = 0x00000010,
22932 VK_SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT = 0x00000020,
22933 VK_SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00000040,
22934 VK_SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT = 0x00000080,
22935 VK_SHADER_CREATE_64_BIT_INDEXING_BIT_EXT = 0x00008000,
22936 VK_SHADER_CREATE_INDEPENDENT_SETS_BIT_KHR = 0x00040000,
22937 VK_SHADER_CREATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
22938} VkShaderCreateFlagBitsEXT;
22939typedef VkFlags VkShaderCreateFlagsEXT;
22940typedef struct VkPhysicalDeviceShaderObjectFeaturesEXT {
22941 VkStructureType sType;
22942 void* pNext;
22943 VkBool32 shaderObject;
22944} VkPhysicalDeviceShaderObjectFeaturesEXT;
22945
22946typedef struct VkPhysicalDeviceShaderObjectPropertiesEXT {
22947 VkStructureType sType;
22948 void* pNext;
22949 uint8_t shaderBinaryUUID[VK_UUID_SIZE];
22950 uint32_t shaderBinaryVersion;
22951} VkPhysicalDeviceShaderObjectPropertiesEXT;
22952
22953typedef struct VkShaderCreateInfoEXT {
22954 VkStructureType sType;
22955 const void* pNext;
22956 VkShaderCreateFlagsEXT flags;
22957 VkShaderStageFlagBits stage;
22958 VkShaderStageFlags nextStage;
22959 VkShaderCodeTypeEXT codeType;
22960 size_t codeSize;
22961 const void* pCode;
22962 const char* pName;
22963 uint32_t setLayoutCount;
22964 const VkDescriptorSetLayout* pSetLayouts;
22965 uint32_t pushConstantRangeCount;
22966 const VkPushConstantRange* pPushConstantRanges;
22967 const VkSpecializationInfo* pSpecializationInfo;
22968} VkShaderCreateInfoEXT;
22969
22970typedef VkPipelineShaderStageRequiredSubgroupSizeCreateInfo VkShaderRequiredSubgroupSizeCreateInfoEXT;
22971
22972typedef struct VkDepthClampRangeEXT {
22973 float minDepthClamp;
22974 float maxDepthClamp;
22975} VkDepthClampRangeEXT;
22976
22977typedef VkResult (VKAPI_PTR *PFN_vkCreateShadersEXT)(VkDevice device, uint32_t createInfoCount, const VkShaderCreateInfoEXT* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkShaderEXT* pShaders);
22978typedef void (VKAPI_PTR *PFN_vkDestroyShaderEXT)(VkDevice device, VkShaderEXT shader, const VkAllocationCallbacks* pAllocator);
22979typedef VkResult (VKAPI_PTR *PFN_vkGetShaderBinaryDataEXT)(VkDevice device, VkShaderEXT shader, size_t* pDataSize, void* pData);
22980typedef void (VKAPI_PTR *PFN_vkCmdBindShadersEXT)(VkCommandBuffer commandBuffer, uint32_t stageCount, const VkShaderStageFlagBits* pStages, const VkShaderEXT* pShaders);
22981typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClampRangeEXT)(VkCommandBuffer commandBuffer, VkDepthClampModeEXT depthClampMode, const VkDepthClampRangeEXT* pDepthClampRange);
22982
22983#ifndef VK_NO_PROTOTYPES
22984#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22985VKAPI_ATTR VkResult VKAPI_CALL vkCreateShadersEXT(
22986 VkDevice device,
22987 uint32_t createInfoCount,
22988 const VkShaderCreateInfoEXT* pCreateInfos,
22989 const VkAllocationCallbacks* pAllocator,
22990 VkShaderEXT* pShaders);
22991#endif
22992
22993#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22994VKAPI_ATTR void VKAPI_CALL vkDestroyShaderEXT(
22995 VkDevice device,
22996 VkShaderEXT shader,
22997 const VkAllocationCallbacks* pAllocator);
22998#endif
22999
23000#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23001VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderBinaryDataEXT(
23002 VkDevice device,
23003 VkShaderEXT shader,
23004 size_t* pDataSize,
23005 void* pData);
23006#endif
23007
23008#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23009VKAPI_ATTR void VKAPI_CALL vkCmdBindShadersEXT(
23010 VkCommandBuffer commandBuffer,
23011 uint32_t stageCount,
23012 const VkShaderStageFlagBits* pStages,
23013 const VkShaderEXT* pShaders);
23014#endif
23015
23016#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23017VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClampRangeEXT(
23018 VkCommandBuffer commandBuffer,
23019 VkDepthClampModeEXT depthClampMode,
23020 const VkDepthClampRangeEXT* pDepthClampRange);
23021#endif
23022#endif
23023
23024
23025// VK_QCOM_tile_properties is a preprocessor guard. Do not pass it to API calls.
23026#define VK_QCOM_tile_properties 1
23027#define VK_QCOM_TILE_PROPERTIES_SPEC_VERSION 1
23028#define VK_QCOM_TILE_PROPERTIES_EXTENSION_NAME "VK_QCOM_tile_properties"
23029typedef struct VkPhysicalDeviceTilePropertiesFeaturesQCOM {
23030 VkStructureType sType;
23031 void* pNext;
23032 VkBool32 tileProperties;
23033} VkPhysicalDeviceTilePropertiesFeaturesQCOM;
23034
23035typedef struct VkTilePropertiesQCOM {
23036 VkStructureType sType;
23037 void* pNext;
23038 VkExtent3D tileSize;
23039 VkExtent2D apronSize;
23040 VkOffset2D origin;
23041} VkTilePropertiesQCOM;
23042
23043typedef VkResult (VKAPI_PTR *PFN_vkGetFramebufferTilePropertiesQCOM)(VkDevice device, VkFramebuffer framebuffer, uint32_t* pPropertiesCount, VkTilePropertiesQCOM* pProperties);
23044typedef VkResult (VKAPI_PTR *PFN_vkGetDynamicRenderingTilePropertiesQCOM)(VkDevice device, const VkRenderingInfo* pRenderingInfo, VkTilePropertiesQCOM* pProperties);
23045
23046#ifndef VK_NO_PROTOTYPES
23047#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23048VKAPI_ATTR VkResult VKAPI_CALL vkGetFramebufferTilePropertiesQCOM(
23049 VkDevice device,
23050 VkFramebuffer framebuffer,
23051 uint32_t* pPropertiesCount,
23052 VkTilePropertiesQCOM* pProperties);
23053#endif
23054
23055#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23056VKAPI_ATTR VkResult VKAPI_CALL vkGetDynamicRenderingTilePropertiesQCOM(
23057 VkDevice device,
23058 const VkRenderingInfo* pRenderingInfo,
23059 VkTilePropertiesQCOM* pProperties);
23060#endif
23061#endif
23062
23063
23064// VK_SEC_amigo_profiling is a preprocessor guard. Do not pass it to API calls.
23065#define VK_SEC_amigo_profiling 1
23066#define VK_SEC_AMIGO_PROFILING_SPEC_VERSION 1
23067#define VK_SEC_AMIGO_PROFILING_EXTENSION_NAME "VK_SEC_amigo_profiling"
23068typedef struct VkPhysicalDeviceAmigoProfilingFeaturesSEC {
23069 VkStructureType sType;
23070 void* pNext;
23071 VkBool32 amigoProfiling;
23072} VkPhysicalDeviceAmigoProfilingFeaturesSEC;
23073
23074typedef struct VkAmigoProfilingSubmitInfoSEC {
23075 VkStructureType sType;
23076 const void* pNext;
23077 uint64_t firstDrawTimestamp;
23078 uint64_t swapBufferTimestamp;
23079} VkAmigoProfilingSubmitInfoSEC;
23080
23081
23082
23083// VK_QCOM_multiview_per_view_viewports is a preprocessor guard. Do not pass it to API calls.
23084#define VK_QCOM_multiview_per_view_viewports 1
23085#define VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_SPEC_VERSION 1
23086#define VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_EXTENSION_NAME "VK_QCOM_multiview_per_view_viewports"
23087typedef struct VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM {
23088 VkStructureType sType;
23089 void* pNext;
23090 VkBool32 multiviewPerViewViewports;
23091} VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM;
23092
23093
23094
23095// VK_NV_ray_tracing_invocation_reorder is a preprocessor guard. Do not pass it to API calls.
23096#define VK_NV_ray_tracing_invocation_reorder 1
23097#define VK_NV_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION 1
23098#define VK_NV_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME "VK_NV_ray_tracing_invocation_reorder"
23099
23100typedef enum VkRayTracingInvocationReorderModeEXT {
23101 VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_EXT = 0,
23102 VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_EXT = 1,
23103 VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV = VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_EXT,
23104 VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV = VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_EXT,
23105 VK_RAY_TRACING_INVOCATION_REORDER_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
23106} VkRayTracingInvocationReorderModeEXT;
23107typedef VkRayTracingInvocationReorderModeEXT VkRayTracingInvocationReorderModeNV;
23108
23109typedef struct VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV {
23110 VkStructureType sType;
23111 void* pNext;
23112 VkRayTracingInvocationReorderModeEXT rayTracingInvocationReorderReorderingHint;
23113} VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV;
23114
23115typedef struct VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV {
23116 VkStructureType sType;
23117 void* pNext;
23118 VkBool32 rayTracingInvocationReorder;
23119} VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV;
23120
23121
23122
23123// VK_NV_cooperative_vector is a preprocessor guard. Do not pass it to API calls.
23124#define VK_NV_cooperative_vector 1
23125#define VK_NV_COOPERATIVE_VECTOR_SPEC_VERSION 4
23126#define VK_NV_COOPERATIVE_VECTOR_EXTENSION_NAME "VK_NV_cooperative_vector"
23127
23128typedef enum VkCooperativeVectorMatrixLayoutNV {
23129 VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_ROW_MAJOR_NV = 0,
23130 VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_COLUMN_MAJOR_NV = 1,
23131 VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_INFERENCING_OPTIMAL_NV = 2,
23132 VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_TRAINING_OPTIMAL_NV = 3,
23133 VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_MAX_ENUM_NV = 0x7FFFFFFF
23134} VkCooperativeVectorMatrixLayoutNV;
23135typedef struct VkPhysicalDeviceCooperativeVectorPropertiesNV {
23136 VkStructureType sType;
23137 void* pNext;
23138 VkShaderStageFlags cooperativeVectorSupportedStages;
23139 VkBool32 cooperativeVectorTrainingFloat16Accumulation;
23140 VkBool32 cooperativeVectorTrainingFloat32Accumulation;
23141 uint32_t maxCooperativeVectorComponents;
23142} VkPhysicalDeviceCooperativeVectorPropertiesNV;
23143
23144typedef struct VkPhysicalDeviceCooperativeVectorFeaturesNV {
23145 VkStructureType sType;
23146 void* pNext;
23147 VkBool32 cooperativeVector;
23148 VkBool32 cooperativeVectorTraining;
23149} VkPhysicalDeviceCooperativeVectorFeaturesNV;
23150
23151typedef struct VkCooperativeVectorPropertiesNV {
23152 VkStructureType sType;
23153 void* pNext;
23154 VkComponentTypeKHR inputType;
23155 VkComponentTypeKHR inputInterpretation;
23156 VkComponentTypeKHR matrixInterpretation;
23157 VkComponentTypeKHR biasInterpretation;
23158 VkComponentTypeKHR resultType;
23159 VkBool32 transpose;
23160} VkCooperativeVectorPropertiesNV;
23161
23162typedef struct VkConvertCooperativeVectorMatrixInfoNV {
23163 VkStructureType sType;
23164 const void* pNext;
23165 size_t srcSize;
23166 VkDeviceOrHostAddressConstKHR srcData;
23167 size_t* pDstSize;
23168 VkDeviceOrHostAddressKHR dstData;
23169 VkComponentTypeKHR srcComponentType;
23170 VkComponentTypeKHR dstComponentType;
23171 uint32_t numRows;
23172 uint32_t numColumns;
23173 VkCooperativeVectorMatrixLayoutNV srcLayout;
23174 size_t srcStride;
23175 VkCooperativeVectorMatrixLayoutNV dstLayout;
23176 size_t dstStride;
23177} VkConvertCooperativeVectorMatrixInfoNV;
23178
23179typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeVectorPropertiesNV)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeVectorPropertiesNV* pProperties);
23180typedef VkResult (VKAPI_PTR *PFN_vkConvertCooperativeVectorMatrixNV)(VkDevice device, const VkConvertCooperativeVectorMatrixInfoNV* pInfo);
23181typedef void (VKAPI_PTR *PFN_vkCmdConvertCooperativeVectorMatrixNV)(VkCommandBuffer commandBuffer, uint32_t infoCount, const VkConvertCooperativeVectorMatrixInfoNV* pInfos);
23182
23183#ifndef VK_NO_PROTOTYPES
23184#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23185VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeVectorPropertiesNV(
23186 VkPhysicalDevice physicalDevice,
23187 uint32_t* pPropertyCount,
23188 VkCooperativeVectorPropertiesNV* pProperties);
23189#endif
23190
23191#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23192VKAPI_ATTR VkResult VKAPI_CALL vkConvertCooperativeVectorMatrixNV(
23193 VkDevice device,
23194 const VkConvertCooperativeVectorMatrixInfoNV* pInfo);
23195#endif
23196
23197#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23198VKAPI_ATTR void VKAPI_CALL vkCmdConvertCooperativeVectorMatrixNV(
23199 VkCommandBuffer commandBuffer,
23200 uint32_t infoCount,
23201 const VkConvertCooperativeVectorMatrixInfoNV* pInfos);
23202#endif
23203#endif
23204
23205
23206// VK_NV_extended_sparse_address_space is a preprocessor guard. Do not pass it to API calls.
23207#define VK_NV_extended_sparse_address_space 1
23208#define VK_NV_EXTENDED_SPARSE_ADDRESS_SPACE_SPEC_VERSION 1
23209#define VK_NV_EXTENDED_SPARSE_ADDRESS_SPACE_EXTENSION_NAME "VK_NV_extended_sparse_address_space"
23210typedef struct VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV {
23211 VkStructureType sType;
23212 void* pNext;
23213 VkBool32 extendedSparseAddressSpace;
23214} VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV;
23215
23216typedef struct VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV {
23217 VkStructureType sType;
23218 void* pNext;
23219 VkDeviceSize extendedSparseAddressSpaceSize;
23220 VkImageUsageFlags extendedSparseImageUsageFlags;
23221 VkBufferUsageFlags extendedSparseBufferUsageFlags;
23222} VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV;
23223
23224
23225
23226// VK_EXT_mutable_descriptor_type is a preprocessor guard. Do not pass it to API calls.
23227#define VK_EXT_mutable_descriptor_type 1
23228#define VK_EXT_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION 1
23229#define VK_EXT_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME "VK_EXT_mutable_descriptor_type"
23230
23231
23232// VK_EXT_legacy_vertex_attributes is a preprocessor guard. Do not pass it to API calls.
23233#define VK_EXT_legacy_vertex_attributes 1
23234#define VK_EXT_LEGACY_VERTEX_ATTRIBUTES_SPEC_VERSION 1
23235#define VK_EXT_LEGACY_VERTEX_ATTRIBUTES_EXTENSION_NAME "VK_EXT_legacy_vertex_attributes"
23236typedef struct VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT {
23237 VkStructureType sType;
23238 void* pNext;
23239 VkBool32 legacyVertexAttributes;
23240} VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT;
23241
23242typedef struct VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT {
23243 VkStructureType sType;
23244 void* pNext;
23245 VkBool32 nativeUnalignedPerformance;
23246} VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT;
23247
23248
23249
23250// VK_EXT_layer_settings is a preprocessor guard. Do not pass it to API calls.
23251#define VK_EXT_layer_settings 1
23252#define VK_EXT_LAYER_SETTINGS_SPEC_VERSION 2
23253#define VK_EXT_LAYER_SETTINGS_EXTENSION_NAME "VK_EXT_layer_settings"
23254
23255typedef enum VkLayerSettingTypeEXT {
23256 VK_LAYER_SETTING_TYPE_BOOL32_EXT = 0,
23257 VK_LAYER_SETTING_TYPE_INT32_EXT = 1,
23258 VK_LAYER_SETTING_TYPE_INT64_EXT = 2,
23259 VK_LAYER_SETTING_TYPE_UINT32_EXT = 3,
23260 VK_LAYER_SETTING_TYPE_UINT64_EXT = 4,
23261 VK_LAYER_SETTING_TYPE_FLOAT32_EXT = 5,
23262 VK_LAYER_SETTING_TYPE_FLOAT64_EXT = 6,
23263 VK_LAYER_SETTING_TYPE_STRING_EXT = 7,
23264 VK_LAYER_SETTING_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
23265} VkLayerSettingTypeEXT;
23266typedef struct VkLayerSettingEXT {
23267 const char* pLayerName;
23268 const char* pSettingName;
23269 VkLayerSettingTypeEXT type;
23270 uint32_t valueCount;
23271 const void* pValues;
23272} VkLayerSettingEXT;
23273
23274typedef struct VkLayerSettingsCreateInfoEXT {
23275 VkStructureType sType;
23276 const void* pNext;
23277 uint32_t settingCount;
23278 const VkLayerSettingEXT* pSettings;
23279} VkLayerSettingsCreateInfoEXT;
23280
23281
23282
23283// VK_ARM_shader_core_builtins is a preprocessor guard. Do not pass it to API calls.
23284#define VK_ARM_shader_core_builtins 1
23285#define VK_ARM_SHADER_CORE_BUILTINS_SPEC_VERSION 2
23286#define VK_ARM_SHADER_CORE_BUILTINS_EXTENSION_NAME "VK_ARM_shader_core_builtins"
23287typedef struct VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM {
23288 VkStructureType sType;
23289 void* pNext;
23290 VkBool32 shaderCoreBuiltins;
23291} VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM;
23292
23293typedef struct VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM {
23294 VkStructureType sType;
23295 void* pNext;
23296 uint64_t shaderCoreMask;
23297 uint32_t shaderCoreCount;
23298 uint32_t shaderWarpsPerCore;
23299} VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM;
23300
23301
23302
23303// VK_EXT_pipeline_library_group_handles is a preprocessor guard. Do not pass it to API calls.
23304#define VK_EXT_pipeline_library_group_handles 1
23305#define VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_SPEC_VERSION 1
23306#define VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_EXTENSION_NAME "VK_EXT_pipeline_library_group_handles"
23307typedef struct VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT {
23308 VkStructureType sType;
23309 void* pNext;
23310 VkBool32 pipelineLibraryGroupHandles;
23311} VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT;
23312
23313
23314
23315// VK_EXT_dynamic_rendering_unused_attachments is a preprocessor guard. Do not pass it to API calls.
23316#define VK_EXT_dynamic_rendering_unused_attachments 1
23317#define VK_EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_SPEC_VERSION 1
23318#define VK_EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_EXTENSION_NAME "VK_EXT_dynamic_rendering_unused_attachments"
23319typedef struct VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT {
23320 VkStructureType sType;
23321 void* pNext;
23322 VkBool32 dynamicRenderingUnusedAttachments;
23323} VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT;
23324
23325
23326
23327// VK_NV_low_latency2 is a preprocessor guard. Do not pass it to API calls.
23328#define VK_NV_low_latency2 1
23329#define VK_NV_LOW_LATENCY_2_SPEC_VERSION 2
23330#define VK_NV_LOW_LATENCY_2_EXTENSION_NAME "VK_NV_low_latency2"
23331
23332typedef enum VkLatencyMarkerNV {
23333 VK_LATENCY_MARKER_SIMULATION_START_NV = 0,
23334 VK_LATENCY_MARKER_SIMULATION_END_NV = 1,
23335 VK_LATENCY_MARKER_RENDERSUBMIT_START_NV = 2,
23336 VK_LATENCY_MARKER_RENDERSUBMIT_END_NV = 3,
23337 VK_LATENCY_MARKER_PRESENT_START_NV = 4,
23338 VK_LATENCY_MARKER_PRESENT_END_NV = 5,
23339 VK_LATENCY_MARKER_INPUT_SAMPLE_NV = 6,
23340 VK_LATENCY_MARKER_TRIGGER_FLASH_NV = 7,
23341 VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_START_NV = 8,
23342 VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_END_NV = 9,
23343 VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_START_NV = 10,
23344 VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_END_NV = 11,
23345 VK_LATENCY_MARKER_MAX_ENUM_NV = 0x7FFFFFFF
23346} VkLatencyMarkerNV;
23347
23348typedef enum VkOutOfBandQueueTypeNV {
23349 VK_OUT_OF_BAND_QUEUE_TYPE_RENDER_NV = 0,
23350 VK_OUT_OF_BAND_QUEUE_TYPE_PRESENT_NV = 1,
23351 VK_OUT_OF_BAND_QUEUE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
23352} VkOutOfBandQueueTypeNV;
23353typedef struct VkLatencySleepModeInfoNV {
23354 VkStructureType sType;
23355 const void* pNext;
23356 VkBool32 lowLatencyMode;
23357 VkBool32 lowLatencyBoost;
23358 uint32_t minimumIntervalUs;
23359} VkLatencySleepModeInfoNV;
23360
23361typedef struct VkLatencySleepInfoNV {
23362 VkStructureType sType;
23363 const void* pNext;
23364 VkSemaphore signalSemaphore;
23365 uint64_t value;
23366} VkLatencySleepInfoNV;
23367
23368typedef struct VkSetLatencyMarkerInfoNV {
23369 VkStructureType sType;
23370 const void* pNext;
23371 uint64_t presentID;
23372 VkLatencyMarkerNV marker;
23373} VkSetLatencyMarkerInfoNV;
23374
23375typedef struct VkLatencyTimingsFrameReportNV {
23376 VkStructureType sType;
23377 void* pNext;
23378 uint64_t presentID;
23379 uint64_t inputSampleTimeUs;
23380 uint64_t simStartTimeUs;
23381 uint64_t simEndTimeUs;
23382 uint64_t renderSubmitStartTimeUs;
23383 uint64_t renderSubmitEndTimeUs;
23384 uint64_t presentStartTimeUs;
23385 uint64_t presentEndTimeUs;
23386 uint64_t driverStartTimeUs;
23387 uint64_t driverEndTimeUs;
23388 uint64_t osRenderQueueStartTimeUs;
23389 uint64_t osRenderQueueEndTimeUs;
23390 uint64_t gpuRenderStartTimeUs;
23391 uint64_t gpuRenderEndTimeUs;
23392} VkLatencyTimingsFrameReportNV;
23393
23394typedef struct VkGetLatencyMarkerInfoNV {
23395 VkStructureType sType;
23396 const void* pNext;
23397 uint32_t timingCount;
23398 VkLatencyTimingsFrameReportNV* pTimings;
23399} VkGetLatencyMarkerInfoNV;
23400
23401typedef struct VkLatencySubmissionPresentIdNV {
23402 VkStructureType sType;
23403 const void* pNext;
23404 uint64_t presentID;
23405} VkLatencySubmissionPresentIdNV;
23406
23407typedef struct VkSwapchainLatencyCreateInfoNV {
23408 VkStructureType sType;
23409 const void* pNext;
23410 VkBool32 latencyModeEnable;
23411} VkSwapchainLatencyCreateInfoNV;
23412
23413typedef struct VkOutOfBandQueueTypeInfoNV {
23414 VkStructureType sType;
23415 const void* pNext;
23416 VkOutOfBandQueueTypeNV queueType;
23417} VkOutOfBandQueueTypeInfoNV;
23418
23419typedef struct VkLatencySurfaceCapabilitiesNV {
23420 VkStructureType sType;
23421 const void* pNext;
23422 uint32_t presentModeCount;
23423 VkPresentModeKHR* pPresentModes;
23424} VkLatencySurfaceCapabilitiesNV;
23425
23426typedef VkResult (VKAPI_PTR *PFN_vkSetLatencySleepModeNV)(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepModeInfoNV* pSleepModeInfo);
23427typedef VkResult (VKAPI_PTR *PFN_vkLatencySleepNV)(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepInfoNV* pSleepInfo);
23428typedef void (VKAPI_PTR *PFN_vkSetLatencyMarkerNV)(VkDevice device, VkSwapchainKHR swapchain, const VkSetLatencyMarkerInfoNV* pLatencyMarkerInfo);
23429typedef void (VKAPI_PTR *PFN_vkGetLatencyTimingsNV)(VkDevice device, VkSwapchainKHR swapchain, VkGetLatencyMarkerInfoNV* pLatencyMarkerInfo);
23430typedef void (VKAPI_PTR *PFN_vkQueueNotifyOutOfBandNV)(VkQueue queue, const VkOutOfBandQueueTypeInfoNV* pQueueTypeInfo);
23431
23432#ifndef VK_NO_PROTOTYPES
23433#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23434VKAPI_ATTR VkResult VKAPI_CALL vkSetLatencySleepModeNV(
23435 VkDevice device,
23436 VkSwapchainKHR swapchain,
23437 const VkLatencySleepModeInfoNV* pSleepModeInfo);
23438#endif
23439
23440#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23441VKAPI_ATTR VkResult VKAPI_CALL vkLatencySleepNV(
23442 VkDevice device,
23443 VkSwapchainKHR swapchain,
23444 const VkLatencySleepInfoNV* pSleepInfo);
23445#endif
23446
23447#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23448VKAPI_ATTR void VKAPI_CALL vkSetLatencyMarkerNV(
23449 VkDevice device,
23450 VkSwapchainKHR swapchain,
23451 const VkSetLatencyMarkerInfoNV* pLatencyMarkerInfo);
23452#endif
23453
23454#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23455VKAPI_ATTR void VKAPI_CALL vkGetLatencyTimingsNV(
23456 VkDevice device,
23457 VkSwapchainKHR swapchain,
23458 VkGetLatencyMarkerInfoNV* pLatencyMarkerInfo);
23459#endif
23460
23461#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23462VKAPI_ATTR void VKAPI_CALL vkQueueNotifyOutOfBandNV(
23463 VkQueue queue,
23464 const VkOutOfBandQueueTypeInfoNV* pQueueTypeInfo);
23465#endif
23466#endif
23467
23468
23469// VK_ARM_data_graph is a preprocessor guard. Do not pass it to API calls.
23470#define VK_ARM_data_graph 1
23471VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDataGraphPipelineSessionARM)
23472#define VK_MAX_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_SET_NAME_SIZE_ARM 128U
23473#define VK_ARM_DATA_GRAPH_SPEC_VERSION 1
23474#define VK_ARM_DATA_GRAPH_EXTENSION_NAME "VK_ARM_data_graph"
23475
23476typedef enum VkDataGraphPipelineSessionBindPointARM {
23477 VK_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_TRANSIENT_ARM = 0,
23478 VK_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_OPTICAL_FLOW_CACHE_ARM = 1000631001,
23479 VK_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_NEURAL_ACCELERATOR_STATISTICS_ARM = 1000676000,
23480 VK_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_MAX_ENUM_ARM = 0x7FFFFFFF
23481} VkDataGraphPipelineSessionBindPointARM;
23482
23483typedef enum VkDataGraphPipelineSessionBindPointTypeARM {
23484 VK_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_TYPE_MEMORY_ARM = 0,
23485 VK_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_TYPE_MAX_ENUM_ARM = 0x7FFFFFFF
23486} VkDataGraphPipelineSessionBindPointTypeARM;
23487
23488typedef enum VkDataGraphPipelinePropertyARM {
23489 VK_DATA_GRAPH_PIPELINE_PROPERTY_CREATION_LOG_ARM = 0,
23490 VK_DATA_GRAPH_PIPELINE_PROPERTY_IDENTIFIER_ARM = 1,
23491 VK_DATA_GRAPH_PIPELINE_PROPERTY_NEURAL_ACCELERATOR_DEBUG_DATABASE_ARM = 1000676000,
23492 VK_DATA_GRAPH_PIPELINE_PROPERTY_NEURAL_ACCELERATOR_STATISTICS_INFO_ARM = 1000676001,
23493 VK_DATA_GRAPH_PIPELINE_PROPERTY_MAX_ENUM_ARM = 0x7FFFFFFF
23494} VkDataGraphPipelinePropertyARM;
23495
23496typedef enum VkPhysicalDeviceDataGraphProcessingEngineTypeARM {
23497 VK_PHYSICAL_DEVICE_DATA_GRAPH_PROCESSING_ENGINE_TYPE_DEFAULT_ARM = 0,
23498 VK_PHYSICAL_DEVICE_DATA_GRAPH_PROCESSING_ENGINE_TYPE_NEURAL_QCOM = 1000629000,
23499 VK_PHYSICAL_DEVICE_DATA_GRAPH_PROCESSING_ENGINE_TYPE_COMPUTE_QCOM = 1000629001,
23500 VK_PHYSICAL_DEVICE_DATA_GRAPH_PROCESSING_ENGINE_TYPE_MAX_ENUM_ARM = 0x7FFFFFFF
23501} VkPhysicalDeviceDataGraphProcessingEngineTypeARM;
23502
23503typedef enum VkPhysicalDeviceDataGraphOperationTypeARM {
23504 VK_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_TYPE_SPIRV_EXTENDED_INSTRUCTION_SET_ARM = 0,
23505 VK_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_TYPE_NEURAL_MODEL_QCOM = 1000629000,
23506 VK_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_TYPE_BUILTIN_MODEL_QCOM = 1000629001,
23507 VK_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_TYPE_OPTICAL_FLOW_ARM = 1000631000,
23508 VK_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_TYPE_MAX_ENUM_ARM = 0x7FFFFFFF
23509} VkPhysicalDeviceDataGraphOperationTypeARM;
23510typedef VkFlags64 VkDataGraphPipelineSessionCreateFlagsARM;
23511
23512// Flag bits for VkDataGraphPipelineSessionCreateFlagBitsARM
23513typedef VkFlags64 VkDataGraphPipelineSessionCreateFlagBitsARM;
23514static const VkDataGraphPipelineSessionCreateFlagBitsARM VK_DATA_GRAPH_PIPELINE_SESSION_CREATE_PROTECTED_BIT_ARM = 0x00000001ULL;
23515static const VkDataGraphPipelineSessionCreateFlagBitsARM VK_DATA_GRAPH_PIPELINE_SESSION_CREATE_OPTICAL_FLOW_CACHE_BIT_ARM = 0x00000002ULL;
23516
23517typedef VkFlags64 VkDataGraphPipelineDispatchFlagsARM;
23518
23519// Flag bits for VkDataGraphPipelineDispatchFlagBitsARM
23520typedef VkFlags64 VkDataGraphPipelineDispatchFlagBitsARM;
23521
23522typedef struct VkPhysicalDeviceDataGraphFeaturesARM {
23523 VkStructureType sType;
23524 void* pNext;
23525 VkBool32 dataGraph;
23526 VkBool32 dataGraphUpdateAfterBind;
23527 VkBool32 dataGraphSpecializationConstants;
23528 VkBool32 dataGraphDescriptorBuffer;
23529 VkBool32 dataGraphShaderModule;
23530} VkPhysicalDeviceDataGraphFeaturesARM;
23531
23532typedef struct VkDataGraphPipelineConstantARM {
23533 VkStructureType sType;
23534 const void* pNext;
23535 uint32_t id;
23536 const void* pConstantData;
23537} VkDataGraphPipelineConstantARM;
23538
23539typedef struct VkDataGraphPipelineResourceInfoARM {
23540 VkStructureType sType;
23541 const void* pNext;
23542 uint32_t descriptorSet;
23543 uint32_t binding;
23544 uint32_t arrayElement;
23545} VkDataGraphPipelineResourceInfoARM;
23546
23547typedef struct VkDataGraphPipelineCompilerControlCreateInfoARM {
23548 VkStructureType sType;
23549 const void* pNext;
23550 const char* pVendorOptions;
23551} VkDataGraphPipelineCompilerControlCreateInfoARM;
23552
23553typedef struct VkDataGraphPipelineCreateInfoARM {
23554 VkStructureType sType;
23555 const void* pNext;
23556 VkPipelineCreateFlags2 flags;
23557 VkPipelineLayout layout;
23558 uint32_t resourceInfoCount;
23559 const VkDataGraphPipelineResourceInfoARM* pResourceInfos;
23560} VkDataGraphPipelineCreateInfoARM;
23561
23562typedef struct VkDataGraphPipelineShaderModuleCreateInfoARM {
23563 VkStructureType sType;
23564 const void* pNext;
23565 VkShaderModule module;
23566 const char* pName;
23567 const VkSpecializationInfo* pSpecializationInfo;
23568 uint32_t constantCount;
23569 const VkDataGraphPipelineConstantARM* pConstants;
23570} VkDataGraphPipelineShaderModuleCreateInfoARM;
23571
23572typedef struct VkDataGraphPipelineSessionCreateInfoARM {
23573 VkStructureType sType;
23574 const void* pNext;
23575 VkDataGraphPipelineSessionCreateFlagsARM flags;
23576 VkPipeline dataGraphPipeline;
23577} VkDataGraphPipelineSessionCreateInfoARM;
23578
23579typedef struct VkDataGraphPipelineSessionBindPointRequirementsInfoARM {
23580 VkStructureType sType;
23581 const void* pNext;
23582 VkDataGraphPipelineSessionARM session;
23583} VkDataGraphPipelineSessionBindPointRequirementsInfoARM;
23584
23585typedef struct VkDataGraphPipelineSessionBindPointRequirementARM {
23586 VkStructureType sType;
23587 void* pNext;
23588 VkDataGraphPipelineSessionBindPointARM bindPoint;
23589 VkDataGraphPipelineSessionBindPointTypeARM bindPointType;
23590 uint32_t numObjects;
23591} VkDataGraphPipelineSessionBindPointRequirementARM;
23592
23593typedef struct VkDataGraphPipelineSessionMemoryRequirementsInfoARM {
23594 VkStructureType sType;
23595 const void* pNext;
23596 VkDataGraphPipelineSessionARM session;
23597 VkDataGraphPipelineSessionBindPointARM bindPoint;
23598 uint32_t objectIndex;
23599} VkDataGraphPipelineSessionMemoryRequirementsInfoARM;
23600
23601typedef struct VkBindDataGraphPipelineSessionMemoryInfoARM {
23602 VkStructureType sType;
23603 const void* pNext;
23604 VkDataGraphPipelineSessionARM session;
23605 VkDataGraphPipelineSessionBindPointARM bindPoint;
23606 uint32_t objectIndex;
23607 VkDeviceMemory memory;
23608 VkDeviceSize memoryOffset;
23609} VkBindDataGraphPipelineSessionMemoryInfoARM;
23610
23611typedef struct VkDataGraphPipelineInfoARM {
23612 VkStructureType sType;
23613 const void* pNext;
23614 VkPipeline dataGraphPipeline;
23615} VkDataGraphPipelineInfoARM;
23616
23617typedef struct VkDataGraphPipelinePropertyQueryResultARM {
23618 VkStructureType sType;
23619 void* pNext;
23620 VkDataGraphPipelinePropertyARM property;
23621 VkBool32 isText;
23622 size_t dataSize;
23623 void* pData;
23624} VkDataGraphPipelinePropertyQueryResultARM;
23625
23626typedef struct VkDataGraphPipelineIdentifierCreateInfoARM {
23627 VkStructureType sType;
23628 const void* pNext;
23629 uint32_t identifierSize;
23630 const uint8_t* pIdentifier;
23631} VkDataGraphPipelineIdentifierCreateInfoARM;
23632
23633typedef struct VkDataGraphPipelineDispatchInfoARM {
23634 VkStructureType sType;
23635 void* pNext;
23636 VkDataGraphPipelineDispatchFlagsARM flags;
23637} VkDataGraphPipelineDispatchInfoARM;
23638
23639typedef struct VkPhysicalDeviceDataGraphProcessingEngineARM {
23640 VkPhysicalDeviceDataGraphProcessingEngineTypeARM type;
23641 VkBool32 isForeign;
23642} VkPhysicalDeviceDataGraphProcessingEngineARM;
23643
23644typedef struct VkPhysicalDeviceDataGraphOperationSupportARM {
23645 VkPhysicalDeviceDataGraphOperationTypeARM operationType;
23646 char name[VK_MAX_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_SET_NAME_SIZE_ARM];
23647 uint32_t version;
23648} VkPhysicalDeviceDataGraphOperationSupportARM;
23649
23650typedef struct VkQueueFamilyDataGraphPropertiesARM {
23651 VkStructureType sType;
23652 void* pNext;
23653 VkPhysicalDeviceDataGraphProcessingEngineARM engine;
23654 VkPhysicalDeviceDataGraphOperationSupportARM operation;
23655} VkQueueFamilyDataGraphPropertiesARM;
23656
23657typedef struct VkDataGraphProcessingEngineCreateInfoARM {
23658 VkStructureType sType;
23659 const void* pNext;
23660 uint32_t processingEngineCount;
23661 VkPhysicalDeviceDataGraphProcessingEngineARM* pProcessingEngines;
23662} VkDataGraphProcessingEngineCreateInfoARM;
23663
23664typedef struct VkPhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM {
23665 VkStructureType sType;
23666 const void* pNext;
23667 uint32_t queueFamilyIndex;
23668 VkPhysicalDeviceDataGraphProcessingEngineTypeARM engineType;
23669} VkPhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM;
23670
23671typedef struct VkQueueFamilyDataGraphProcessingEnginePropertiesARM {
23672 VkStructureType sType;
23673 void* pNext;
23674 VkExternalSemaphoreHandleTypeFlags foreignSemaphoreHandleTypes;
23675 VkExternalMemoryHandleTypeFlags foreignMemoryHandleTypes;
23676} VkQueueFamilyDataGraphProcessingEnginePropertiesARM;
23677
23678typedef struct VkDataGraphPipelineConstantTensorSemiStructuredSparsityInfoARM {
23679 VkStructureType sType;
23680 const void* pNext;
23681 uint32_t dimension;
23682 uint32_t zeroCount;
23683 uint32_t groupSize;
23684} VkDataGraphPipelineConstantTensorSemiStructuredSparsityInfoARM;
23685
23686typedef VkResult (VKAPI_PTR *PFN_vkCreateDataGraphPipelinesARM)(VkDevice device, VkDeferredOperationKHR deferredOperation, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkDataGraphPipelineCreateInfoARM* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
23687typedef VkResult (VKAPI_PTR *PFN_vkCreateDataGraphPipelineSessionARM)(VkDevice device, const VkDataGraphPipelineSessionCreateInfoARM* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDataGraphPipelineSessionARM* pSession);
23688typedef VkResult (VKAPI_PTR *PFN_vkGetDataGraphPipelineSessionBindPointRequirementsARM)(VkDevice device, const VkDataGraphPipelineSessionBindPointRequirementsInfoARM* pInfo, uint32_t* pBindPointRequirementCount, VkDataGraphPipelineSessionBindPointRequirementARM* pBindPointRequirements);
23689typedef void (VKAPI_PTR *PFN_vkGetDataGraphPipelineSessionMemoryRequirementsARM)(VkDevice device, const VkDataGraphPipelineSessionMemoryRequirementsInfoARM* pInfo, VkMemoryRequirements2* pMemoryRequirements);
23690typedef VkResult (VKAPI_PTR *PFN_vkBindDataGraphPipelineSessionMemoryARM)(VkDevice device, uint32_t bindInfoCount, const VkBindDataGraphPipelineSessionMemoryInfoARM* pBindInfos);
23691typedef void (VKAPI_PTR *PFN_vkDestroyDataGraphPipelineSessionARM)(VkDevice device, VkDataGraphPipelineSessionARM session, const VkAllocationCallbacks* pAllocator);
23692typedef void (VKAPI_PTR *PFN_vkCmdDispatchDataGraphARM)(VkCommandBuffer commandBuffer, VkDataGraphPipelineSessionARM session, const VkDataGraphPipelineDispatchInfoARM* pInfo);
23693typedef VkResult (VKAPI_PTR *PFN_vkGetDataGraphPipelineAvailablePropertiesARM)(VkDevice device, const VkDataGraphPipelineInfoARM* pPipelineInfo, uint32_t* pPropertiesCount, VkDataGraphPipelinePropertyARM* pProperties);
23694typedef VkResult (VKAPI_PTR *PFN_vkGetDataGraphPipelinePropertiesARM)(VkDevice device, const VkDataGraphPipelineInfoARM* pPipelineInfo, uint32_t propertiesCount, VkDataGraphPipelinePropertyQueryResultARM* pProperties);
23695typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pQueueFamilyDataGraphPropertyCount, VkQueueFamilyDataGraphPropertiesARM* pQueueFamilyDataGraphProperties);
23696typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM* pQueueFamilyDataGraphProcessingEngineInfo, VkQueueFamilyDataGraphProcessingEnginePropertiesARM* pQueueFamilyDataGraphProcessingEngineProperties);
23697
23698#ifndef VK_NO_PROTOTYPES
23699#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23700VKAPI_ATTR VkResult VKAPI_CALL vkCreateDataGraphPipelinesARM(
23701 VkDevice device,
23702 VkDeferredOperationKHR deferredOperation,
23703 VkPipelineCache pipelineCache,
23704 uint32_t createInfoCount,
23705 const VkDataGraphPipelineCreateInfoARM* pCreateInfos,
23706 const VkAllocationCallbacks* pAllocator,
23707 VkPipeline* pPipelines);
23708#endif
23709
23710#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23711VKAPI_ATTR VkResult VKAPI_CALL vkCreateDataGraphPipelineSessionARM(
23712 VkDevice device,
23713 const VkDataGraphPipelineSessionCreateInfoARM* pCreateInfo,
23714 const VkAllocationCallbacks* pAllocator,
23715 VkDataGraphPipelineSessionARM* pSession);
23716#endif
23717
23718#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23719VKAPI_ATTR VkResult VKAPI_CALL vkGetDataGraphPipelineSessionBindPointRequirementsARM(
23720 VkDevice device,
23721 const VkDataGraphPipelineSessionBindPointRequirementsInfoARM* pInfo,
23722 uint32_t* pBindPointRequirementCount,
23723 VkDataGraphPipelineSessionBindPointRequirementARM* pBindPointRequirements);
23724#endif
23725
23726#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23727VKAPI_ATTR void VKAPI_CALL vkGetDataGraphPipelineSessionMemoryRequirementsARM(
23728 VkDevice device,
23729 const VkDataGraphPipelineSessionMemoryRequirementsInfoARM* pInfo,
23730 VkMemoryRequirements2* pMemoryRequirements);
23731#endif
23732
23733#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23734VKAPI_ATTR VkResult VKAPI_CALL vkBindDataGraphPipelineSessionMemoryARM(
23735 VkDevice device,
23736 uint32_t bindInfoCount,
23737 const VkBindDataGraphPipelineSessionMemoryInfoARM* pBindInfos);
23738#endif
23739
23740#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23741VKAPI_ATTR void VKAPI_CALL vkDestroyDataGraphPipelineSessionARM(
23742 VkDevice device,
23743 VkDataGraphPipelineSessionARM session,
23744 const VkAllocationCallbacks* pAllocator);
23745#endif
23746
23747#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23748VKAPI_ATTR void VKAPI_CALL vkCmdDispatchDataGraphARM(
23749 VkCommandBuffer commandBuffer,
23750 VkDataGraphPipelineSessionARM session,
23751 const VkDataGraphPipelineDispatchInfoARM* pInfo);
23752#endif
23753
23754#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23755VKAPI_ATTR VkResult VKAPI_CALL vkGetDataGraphPipelineAvailablePropertiesARM(
23756 VkDevice device,
23757 const VkDataGraphPipelineInfoARM* pPipelineInfo,
23758 uint32_t* pPropertiesCount,
23759 VkDataGraphPipelinePropertyARM* pProperties);
23760#endif
23761
23762#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23763VKAPI_ATTR VkResult VKAPI_CALL vkGetDataGraphPipelinePropertiesARM(
23764 VkDevice device,
23765 const VkDataGraphPipelineInfoARM* pPipelineInfo,
23766 uint32_t propertiesCount,
23767 VkDataGraphPipelinePropertyQueryResultARM* pProperties);
23768#endif
23769
23770#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23771VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM(
23772 VkPhysicalDevice physicalDevice,
23773 uint32_t queueFamilyIndex,
23774 uint32_t* pQueueFamilyDataGraphPropertyCount,
23775 VkQueueFamilyDataGraphPropertiesARM* pQueueFamilyDataGraphProperties);
23776#endif
23777
23778#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23779VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM(
23780 VkPhysicalDevice physicalDevice,
23781 const VkPhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM* pQueueFamilyDataGraphProcessingEngineInfo,
23782 VkQueueFamilyDataGraphProcessingEnginePropertiesARM* pQueueFamilyDataGraphProcessingEngineProperties);
23783#endif
23784#endif
23785
23786
23787// VK_ARM_data_graph_instruction_set_tosa is a preprocessor guard. Do not pass it to API calls.
23788#define VK_ARM_data_graph_instruction_set_tosa 1
23789#define VK_MAX_DATA_GRAPH_TOSA_NAME_SIZE_ARM 128U
23790#define VK_ARM_DATA_GRAPH_INSTRUCTION_SET_TOSA_SPEC_VERSION 1
23791#define VK_ARM_DATA_GRAPH_INSTRUCTION_SET_TOSA_EXTENSION_NAME "VK_ARM_data_graph_instruction_set_tosa"
23792
23793typedef enum VkDataGraphTOSALevelARM {
23794 VK_DATA_GRAPH_TOSA_LEVEL_NONE_ARM = 0,
23795 VK_DATA_GRAPH_TOSA_LEVEL_8K_ARM = 1,
23796 VK_DATA_GRAPH_TOSALEVEL_MAX_ENUM_ARM = 0x7FFFFFFF
23797} VkDataGraphTOSALevelARM;
23798
23799typedef enum VkDataGraphTOSAQualityFlagBitsARM {
23800 VK_DATA_GRAPH_TOSA_QUALITY_ACCELERATED_ARM = 0x00000001,
23801 VK_DATA_GRAPH_TOSA_QUALITY_CONFORMANT_ARM = 0x00000002,
23802 VK_DATA_GRAPH_TOSA_QUALITY_EXPERIMENTAL_ARM = 0x00000004,
23803 VK_DATA_GRAPH_TOSA_QUALITY_DEPRECATED_ARM = 0x00000008,
23804 VK_DATA_GRAPH_TOSAQUALITY_FLAG_BITS_MAX_ENUM_ARM = 0x7FFFFFFF
23805} VkDataGraphTOSAQualityFlagBitsARM;
23806typedef VkFlags VkDataGraphTOSAQualityFlagsARM;
23807typedef struct VkDataGraphTOSANameQualityARM {
23808 char name[VK_MAX_DATA_GRAPH_TOSA_NAME_SIZE_ARM];
23809 VkDataGraphTOSAQualityFlagsARM qualityFlags;
23810} VkDataGraphTOSANameQualityARM;
23811
23812typedef struct VkQueueFamilyDataGraphTOSAPropertiesARM {
23813 VkStructureType sType;
23814 void* pNext;
23815 uint32_t profileCount;
23816 const VkDataGraphTOSANameQualityARM* pProfiles;
23817 uint32_t extensionCount;
23818 const VkDataGraphTOSANameQualityARM* pExtensions;
23819 VkDataGraphTOSALevelARM level;
23820} VkQueueFamilyDataGraphTOSAPropertiesARM;
23821
23822typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyDataGraphEngineOperationPropertiesARM)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, const VkQueueFamilyDataGraphPropertiesARM* pQueueFamilyDataGraphProperties, VkBaseOutStructure* pProperties);
23823
23824#ifndef VK_NO_PROTOTYPES
23825#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23826VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceQueueFamilyDataGraphEngineOperationPropertiesARM(
23827 VkPhysicalDevice physicalDevice,
23828 uint32_t queueFamilyIndex,
23829 const VkQueueFamilyDataGraphPropertiesARM* pQueueFamilyDataGraphProperties,
23830 VkBaseOutStructure* pProperties);
23831#endif
23832#endif
23833
23834
23835// VK_QCOM_multiview_per_view_render_areas is a preprocessor guard. Do not pass it to API calls.
23836#define VK_QCOM_multiview_per_view_render_areas 1
23837#define VK_QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_SPEC_VERSION 1
23838#define VK_QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_EXTENSION_NAME "VK_QCOM_multiview_per_view_render_areas"
23839typedef struct VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM {
23840 VkStructureType sType;
23841 void* pNext;
23842 VkBool32 multiviewPerViewRenderAreas;
23843} VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM;
23844
23845typedef struct VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM {
23846 VkStructureType sType;
23847 const void* pNext;
23848 uint32_t perViewRenderAreaCount;
23849 const VkRect2D* pPerViewRenderAreas;
23850} VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM;
23851
23852
23853
23854// VK_NV_per_stage_descriptor_set is a preprocessor guard. Do not pass it to API calls.
23855#define VK_NV_per_stage_descriptor_set 1
23856#define VK_NV_PER_STAGE_DESCRIPTOR_SET_SPEC_VERSION 1
23857#define VK_NV_PER_STAGE_DESCRIPTOR_SET_EXTENSION_NAME "VK_NV_per_stage_descriptor_set"
23858typedef struct VkPhysicalDevicePerStageDescriptorSetFeaturesNV {
23859 VkStructureType sType;
23860 void* pNext;
23861 VkBool32 perStageDescriptorSet;
23862 VkBool32 dynamicPipelineLayout;
23863} VkPhysicalDevicePerStageDescriptorSetFeaturesNV;
23864
23865
23866
23867// VK_QCOM_image_processing2 is a preprocessor guard. Do not pass it to API calls.
23868#define VK_QCOM_image_processing2 1
23869#define VK_QCOM_IMAGE_PROCESSING_2_SPEC_VERSION 1
23870#define VK_QCOM_IMAGE_PROCESSING_2_EXTENSION_NAME "VK_QCOM_image_processing2"
23871
23872typedef enum VkBlockMatchWindowCompareModeQCOM {
23873 VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MIN_QCOM = 0,
23874 VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_QCOM = 1,
23875 VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_ENUM_QCOM = 0x7FFFFFFF
23876} VkBlockMatchWindowCompareModeQCOM;
23877typedef struct VkPhysicalDeviceImageProcessing2FeaturesQCOM {
23878 VkStructureType sType;
23879 void* pNext;
23880 VkBool32 textureBlockMatch2;
23881} VkPhysicalDeviceImageProcessing2FeaturesQCOM;
23882
23883typedef struct VkPhysicalDeviceImageProcessing2PropertiesQCOM {
23884 VkStructureType sType;
23885 void* pNext;
23886 VkExtent2D maxBlockMatchWindow;
23887} VkPhysicalDeviceImageProcessing2PropertiesQCOM;
23888
23889typedef struct VkSamplerBlockMatchWindowCreateInfoQCOM {
23890 VkStructureType sType;
23891 const void* pNext;
23892 VkExtent2D windowExtent;
23893 VkBlockMatchWindowCompareModeQCOM windowCompareMode;
23894} VkSamplerBlockMatchWindowCreateInfoQCOM;
23895
23896
23897
23898// VK_QCOM_filter_cubic_weights is a preprocessor guard. Do not pass it to API calls.
23899#define VK_QCOM_filter_cubic_weights 1
23900#define VK_QCOM_FILTER_CUBIC_WEIGHTS_SPEC_VERSION 1
23901#define VK_QCOM_FILTER_CUBIC_WEIGHTS_EXTENSION_NAME "VK_QCOM_filter_cubic_weights"
23902
23903typedef enum VkCubicFilterWeightsQCOM {
23904 VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM = 0,
23905 VK_CUBIC_FILTER_WEIGHTS_ZERO_TANGENT_CARDINAL_QCOM = 1,
23906 VK_CUBIC_FILTER_WEIGHTS_B_SPLINE_QCOM = 2,
23907 VK_CUBIC_FILTER_WEIGHTS_MITCHELL_NETRAVALI_QCOM = 3,
23908 VK_CUBIC_FILTER_WEIGHTS_MAX_ENUM_QCOM = 0x7FFFFFFF
23909} VkCubicFilterWeightsQCOM;
23910typedef struct VkPhysicalDeviceCubicWeightsFeaturesQCOM {
23911 VkStructureType sType;
23912 void* pNext;
23913 VkBool32 selectableCubicWeights;
23914} VkPhysicalDeviceCubicWeightsFeaturesQCOM;
23915
23916typedef struct VkSamplerCubicWeightsCreateInfoQCOM {
23917 VkStructureType sType;
23918 const void* pNext;
23919 VkCubicFilterWeightsQCOM cubicWeights;
23920} VkSamplerCubicWeightsCreateInfoQCOM;
23921
23922typedef struct VkBlitImageCubicWeightsInfoQCOM {
23923 VkStructureType sType;
23924 const void* pNext;
23925 VkCubicFilterWeightsQCOM cubicWeights;
23926} VkBlitImageCubicWeightsInfoQCOM;
23927
23928
23929
23930// VK_QCOM_ycbcr_degamma is a preprocessor guard. Do not pass it to API calls.
23931#define VK_QCOM_ycbcr_degamma 1
23932#define VK_QCOM_YCBCR_DEGAMMA_SPEC_VERSION 1
23933#define VK_QCOM_YCBCR_DEGAMMA_EXTENSION_NAME "VK_QCOM_ycbcr_degamma"
23934typedef struct VkPhysicalDeviceYcbcrDegammaFeaturesQCOM {
23935 VkStructureType sType;
23936 void* pNext;
23937 VkBool32 ycbcrDegamma;
23938} VkPhysicalDeviceYcbcrDegammaFeaturesQCOM;
23939
23940typedef struct VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM {
23941 VkStructureType sType;
23942 void* pNext;
23943 VkBool32 enableYDegamma;
23944 VkBool32 enableCbCrDegamma;
23945} VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM;
23946
23947
23948
23949// VK_QCOM_filter_cubic_clamp is a preprocessor guard. Do not pass it to API calls.
23950#define VK_QCOM_filter_cubic_clamp 1
23951#define VK_QCOM_FILTER_CUBIC_CLAMP_SPEC_VERSION 1
23952#define VK_QCOM_FILTER_CUBIC_CLAMP_EXTENSION_NAME "VK_QCOM_filter_cubic_clamp"
23953typedef struct VkPhysicalDeviceCubicClampFeaturesQCOM {
23954 VkStructureType sType;
23955 void* pNext;
23956 VkBool32 cubicRangeClamp;
23957} VkPhysicalDeviceCubicClampFeaturesQCOM;
23958
23959
23960
23961// VK_EXT_attachment_feedback_loop_dynamic_state is a preprocessor guard. Do not pass it to API calls.
23962#define VK_EXT_attachment_feedback_loop_dynamic_state 1
23963#define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_SPEC_VERSION 1
23964#define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_attachment_feedback_loop_dynamic_state"
23965typedef struct VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT {
23966 VkStructureType sType;
23967 void* pNext;
23968 VkBool32 attachmentFeedbackLoopDynamicState;
23969} VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT;
23970
23971typedef void (VKAPI_PTR *PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT)(VkCommandBuffer commandBuffer, VkImageAspectFlags aspectMask);
23972
23973#ifndef VK_NO_PROTOTYPES
23974#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23975VKAPI_ATTR void VKAPI_CALL vkCmdSetAttachmentFeedbackLoopEnableEXT(
23976 VkCommandBuffer commandBuffer,
23977 VkImageAspectFlags aspectMask);
23978#endif
23979#endif
23980
23981
23982// VK_MSFT_layered_driver is a preprocessor guard. Do not pass it to API calls.
23983#define VK_MSFT_layered_driver 1
23984#define VK_MSFT_LAYERED_DRIVER_SPEC_VERSION 1
23985#define VK_MSFT_LAYERED_DRIVER_EXTENSION_NAME "VK_MSFT_layered_driver"
23986
23987typedef enum VkLayeredDriverUnderlyingApiMSFT {
23988 VK_LAYERED_DRIVER_UNDERLYING_API_NONE_MSFT = 0,
23989 VK_LAYERED_DRIVER_UNDERLYING_API_D3D12_MSFT = 1,
23990 VK_LAYERED_DRIVER_UNDERLYING_API_MAX_ENUM_MSFT = 0x7FFFFFFF
23991} VkLayeredDriverUnderlyingApiMSFT;
23992typedef struct VkPhysicalDeviceLayeredDriverPropertiesMSFT {
23993 VkStructureType sType;
23994 void* pNext;
23995 VkLayeredDriverUnderlyingApiMSFT underlyingAPI;
23996} VkPhysicalDeviceLayeredDriverPropertiesMSFT;
23997
23998
23999
24000// VK_NV_descriptor_pool_overallocation is a preprocessor guard. Do not pass it to API calls.
24001#define VK_NV_descriptor_pool_overallocation 1
24002#define VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_SPEC_VERSION 1
24003#define VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_EXTENSION_NAME "VK_NV_descriptor_pool_overallocation"
24004typedef struct VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV {
24005 VkStructureType sType;
24006 void* pNext;
24007 VkBool32 descriptorPoolOverallocation;
24008} VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV;
24009
24010
24011
24012// VK_QCOM_tile_memory_heap is a preprocessor guard. Do not pass it to API calls.
24013#define VK_QCOM_tile_memory_heap 1
24014#define VK_QCOM_TILE_MEMORY_HEAP_SPEC_VERSION 1
24015#define VK_QCOM_TILE_MEMORY_HEAP_EXTENSION_NAME "VK_QCOM_tile_memory_heap"
24016typedef struct VkPhysicalDeviceTileMemoryHeapFeaturesQCOM {
24017 VkStructureType sType;
24018 void* pNext;
24019 VkBool32 tileMemoryHeap;
24020} VkPhysicalDeviceTileMemoryHeapFeaturesQCOM;
24021
24022typedef struct VkPhysicalDeviceTileMemoryHeapPropertiesQCOM {
24023 VkStructureType sType;
24024 void* pNext;
24025 VkBool32 queueSubmitBoundary;
24026 VkBool32 tileBufferTransfers;
24027} VkPhysicalDeviceTileMemoryHeapPropertiesQCOM;
24028
24029typedef struct VkTileMemoryRequirementsQCOM {
24030 VkStructureType sType;
24031 void* pNext;
24032 VkDeviceSize size;
24033 VkDeviceSize alignment;
24034} VkTileMemoryRequirementsQCOM;
24035
24036typedef struct VkTileMemoryBindInfoQCOM {
24037 VkStructureType sType;
24038 const void* pNext;
24039 VkDeviceMemory memory;
24040} VkTileMemoryBindInfoQCOM;
24041
24042typedef struct VkTileMemorySizeInfoQCOM {
24043 VkStructureType sType;
24044 const void* pNext;
24045 VkDeviceSize size;
24046} VkTileMemorySizeInfoQCOM;
24047
24048typedef void (VKAPI_PTR *PFN_vkCmdBindTileMemoryQCOM)(VkCommandBuffer commandBuffer, const VkTileMemoryBindInfoQCOM* pTileMemoryBindInfo);
24049
24050#ifndef VK_NO_PROTOTYPES
24051#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24052VKAPI_ATTR void VKAPI_CALL vkCmdBindTileMemoryQCOM(
24053 VkCommandBuffer commandBuffer,
24054 const VkTileMemoryBindInfoQCOM* pTileMemoryBindInfo);
24055#endif
24056#endif
24057
24058
24059// VK_EXT_memory_decompression is a preprocessor guard. Do not pass it to API calls.
24060#define VK_EXT_memory_decompression 1
24061#define VK_EXT_MEMORY_DECOMPRESSION_SPEC_VERSION 1
24062#define VK_EXT_MEMORY_DECOMPRESSION_EXTENSION_NAME "VK_EXT_memory_decompression"
24063typedef struct VkDecompressMemoryRegionEXT {
24064 VkDeviceAddress srcAddress;
24065 VkDeviceAddress dstAddress;
24066 VkDeviceSize compressedSize;
24067 VkDeviceSize decompressedSize;
24068} VkDecompressMemoryRegionEXT;
24069
24070typedef struct VkDecompressMemoryInfoEXT {
24071 VkStructureType sType;
24072 const void* pNext;
24073 VkMemoryDecompressionMethodFlagsEXT decompressionMethod;
24074 uint32_t regionCount;
24075 const VkDecompressMemoryRegionEXT* pRegions;
24076} VkDecompressMemoryInfoEXT;
24077
24078typedef void (VKAPI_PTR *PFN_vkCmdDecompressMemoryEXT)(VkCommandBuffer commandBuffer, const VkDecompressMemoryInfoEXT* pDecompressMemoryInfoEXT);
24079typedef void (VKAPI_PTR *PFN_vkCmdDecompressMemoryIndirectCountEXT)(VkCommandBuffer commandBuffer, VkMemoryDecompressionMethodFlagsEXT decompressionMethod, VkDeviceAddress indirectCommandsAddress, VkDeviceAddress indirectCommandsCountAddress, uint32_t maxDecompressionCount, uint32_t stride);
24080
24081#ifndef VK_NO_PROTOTYPES
24082#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24083VKAPI_ATTR void VKAPI_CALL vkCmdDecompressMemoryEXT(
24084 VkCommandBuffer commandBuffer,
24085 const VkDecompressMemoryInfoEXT* pDecompressMemoryInfoEXT);
24086#endif
24087
24088#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24089VKAPI_ATTR void VKAPI_CALL vkCmdDecompressMemoryIndirectCountEXT(
24090 VkCommandBuffer commandBuffer,
24091 VkMemoryDecompressionMethodFlagsEXT decompressionMethod,
24092 VkDeviceAddress indirectCommandsAddress,
24093 VkDeviceAddress indirectCommandsCountAddress,
24094 uint32_t maxDecompressionCount,
24095 uint32_t stride);
24096#endif
24097#endif
24098
24099
24100// VK_NV_display_stereo is a preprocessor guard. Do not pass it to API calls.
24101#define VK_NV_display_stereo 1
24102#define VK_NV_DISPLAY_STEREO_SPEC_VERSION 1
24103#define VK_NV_DISPLAY_STEREO_EXTENSION_NAME "VK_NV_display_stereo"
24104
24105typedef enum VkDisplaySurfaceStereoTypeNV {
24106 VK_DISPLAY_SURFACE_STEREO_TYPE_NONE_NV = 0,
24107 VK_DISPLAY_SURFACE_STEREO_TYPE_ONBOARD_DIN_NV = 1,
24108 VK_DISPLAY_SURFACE_STEREO_TYPE_HDMI_3D_NV = 2,
24109 VK_DISPLAY_SURFACE_STEREO_TYPE_INBAND_DISPLAYPORT_NV = 3,
24110 VK_DISPLAY_SURFACE_STEREO_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
24111} VkDisplaySurfaceStereoTypeNV;
24112typedef struct VkDisplaySurfaceStereoCreateInfoNV {
24113 VkStructureType sType;
24114 const void* pNext;
24115 VkDisplaySurfaceStereoTypeNV stereoType;
24116} VkDisplaySurfaceStereoCreateInfoNV;
24117
24118typedef struct VkDisplayModeStereoPropertiesNV {
24119 VkStructureType sType;
24120 void* pNext;
24121 VkBool32 hdmi3DSupported;
24122} VkDisplayModeStereoPropertiesNV;
24123
24124
24125
24126// VK_NV_raw_access_chains is a preprocessor guard. Do not pass it to API calls.
24127#define VK_NV_raw_access_chains 1
24128#define VK_NV_RAW_ACCESS_CHAINS_SPEC_VERSION 1
24129#define VK_NV_RAW_ACCESS_CHAINS_EXTENSION_NAME "VK_NV_raw_access_chains"
24130typedef struct VkPhysicalDeviceRawAccessChainsFeaturesNV {
24131 VkStructureType sType;
24132 void* pNext;
24133 VkBool32 shaderRawAccessChains;
24134} VkPhysicalDeviceRawAccessChainsFeaturesNV;
24135
24136
24137
24138// VK_NV_external_compute_queue is a preprocessor guard. Do not pass it to API calls.
24139#define VK_NV_external_compute_queue 1
24140VK_DEFINE_HANDLE(VkExternalComputeQueueNV)
24141#define VK_NV_EXTERNAL_COMPUTE_QUEUE_SPEC_VERSION 1
24142#define VK_NV_EXTERNAL_COMPUTE_QUEUE_EXTENSION_NAME "VK_NV_external_compute_queue"
24143typedef struct VkExternalComputeQueueDeviceCreateInfoNV {
24144 VkStructureType sType;
24145 const void* pNext;
24146 uint32_t reservedExternalQueues;
24147} VkExternalComputeQueueDeviceCreateInfoNV;
24148
24149typedef struct VkExternalComputeQueueCreateInfoNV {
24150 VkStructureType sType;
24151 const void* pNext;
24152 VkQueue preferredQueue;
24153} VkExternalComputeQueueCreateInfoNV;
24154
24155typedef struct VkExternalComputeQueueDataParamsNV {
24156 VkStructureType sType;
24157 const void* pNext;
24158 uint32_t deviceIndex;
24159} VkExternalComputeQueueDataParamsNV;
24160
24161typedef struct VkPhysicalDeviceExternalComputeQueuePropertiesNV {
24162 VkStructureType sType;
24163 void* pNext;
24164 uint32_t externalDataSize;
24165 uint32_t maxExternalQueues;
24166} VkPhysicalDeviceExternalComputeQueuePropertiesNV;
24167
24168typedef VkResult (VKAPI_PTR *PFN_vkCreateExternalComputeQueueNV)(VkDevice device, const VkExternalComputeQueueCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkExternalComputeQueueNV* pExternalQueue);
24169typedef void (VKAPI_PTR *PFN_vkDestroyExternalComputeQueueNV)(VkDevice device, VkExternalComputeQueueNV externalQueue, const VkAllocationCallbacks* pAllocator);
24170typedef void (VKAPI_PTR *PFN_vkGetExternalComputeQueueDataNV)(VkExternalComputeQueueNV externalQueue, VkExternalComputeQueueDataParamsNV* params, void* pData);
24171
24172#ifndef VK_NO_PROTOTYPES
24173#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24174VKAPI_ATTR VkResult VKAPI_CALL vkCreateExternalComputeQueueNV(
24175 VkDevice device,
24176 const VkExternalComputeQueueCreateInfoNV* pCreateInfo,
24177 const VkAllocationCallbacks* pAllocator,
24178 VkExternalComputeQueueNV* pExternalQueue);
24179#endif
24180
24181#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24182VKAPI_ATTR void VKAPI_CALL vkDestroyExternalComputeQueueNV(
24183 VkDevice device,
24184 VkExternalComputeQueueNV externalQueue,
24185 const VkAllocationCallbacks* pAllocator);
24186#endif
24187
24188#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24189VKAPI_ATTR void VKAPI_CALL vkGetExternalComputeQueueDataNV(
24190 VkExternalComputeQueueNV externalQueue,
24191 VkExternalComputeQueueDataParamsNV* params,
24192 void* pData);
24193#endif
24194#endif
24195
24196
24197// VK_NV_command_buffer_inheritance is a preprocessor guard. Do not pass it to API calls.
24198#define VK_NV_command_buffer_inheritance 1
24199#define VK_NV_COMMAND_BUFFER_INHERITANCE_SPEC_VERSION 1
24200#define VK_NV_COMMAND_BUFFER_INHERITANCE_EXTENSION_NAME "VK_NV_command_buffer_inheritance"
24201typedef struct VkPhysicalDeviceCommandBufferInheritanceFeaturesNV {
24202 VkStructureType sType;
24203 void* pNext;
24204 VkBool32 commandBufferInheritance;
24205} VkPhysicalDeviceCommandBufferInheritanceFeaturesNV;
24206
24207
24208
24209// VK_NV_shader_atomic_float16_vector is a preprocessor guard. Do not pass it to API calls.
24210#define VK_NV_shader_atomic_float16_vector 1
24211#define VK_NV_SHADER_ATOMIC_FLOAT16_VECTOR_SPEC_VERSION 1
24212#define VK_NV_SHADER_ATOMIC_FLOAT16_VECTOR_EXTENSION_NAME "VK_NV_shader_atomic_float16_vector"
24213typedef struct VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV {
24214 VkStructureType sType;
24215 void* pNext;
24216 VkBool32 shaderFloat16VectorAtomics;
24217} VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV;
24218
24219
24220
24221// VK_EXT_shader_replicated_composites is a preprocessor guard. Do not pass it to API calls.
24222#define VK_EXT_shader_replicated_composites 1
24223#define VK_EXT_SHADER_REPLICATED_COMPOSITES_SPEC_VERSION 1
24224#define VK_EXT_SHADER_REPLICATED_COMPOSITES_EXTENSION_NAME "VK_EXT_shader_replicated_composites"
24225typedef struct VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT {
24226 VkStructureType sType;
24227 void* pNext;
24228 VkBool32 shaderReplicatedComposites;
24229} VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT;
24230
24231
24232
24233// VK_EXT_shader_float8 is a preprocessor guard. Do not pass it to API calls.
24234#define VK_EXT_shader_float8 1
24235#define VK_EXT_SHADER_FLOAT8_SPEC_VERSION 1
24236#define VK_EXT_SHADER_FLOAT8_EXTENSION_NAME "VK_EXT_shader_float8"
24237typedef struct VkPhysicalDeviceShaderFloat8FeaturesEXT {
24238 VkStructureType sType;
24239 void* pNext;
24240 VkBool32 shaderFloat8;
24241 VkBool32 shaderFloat8CooperativeMatrix;
24242} VkPhysicalDeviceShaderFloat8FeaturesEXT;
24243
24244
24245
24246// VK_NV_ray_tracing_validation is a preprocessor guard. Do not pass it to API calls.
24247#define VK_NV_ray_tracing_validation 1
24248#define VK_NV_RAY_TRACING_VALIDATION_SPEC_VERSION 1
24249#define VK_NV_RAY_TRACING_VALIDATION_EXTENSION_NAME "VK_NV_ray_tracing_validation"
24250typedef struct VkPhysicalDeviceRayTracingValidationFeaturesNV {
24251 VkStructureType sType;
24252 void* pNext;
24253 VkBool32 rayTracingValidation;
24254} VkPhysicalDeviceRayTracingValidationFeaturesNV;
24255
24256
24257
24258// VK_NV_cluster_acceleration_structure is a preprocessor guard. Do not pass it to API calls.
24259#define VK_NV_cluster_acceleration_structure 1
24260#define VK_NV_CLUSTER_ACCELERATION_STRUCTURE_SPEC_VERSION 4
24261#define VK_NV_CLUSTER_ACCELERATION_STRUCTURE_EXTENSION_NAME "VK_NV_cluster_acceleration_structure"
24262
24263typedef enum VkClusterAccelerationStructureTypeNV {
24264 VK_CLUSTER_ACCELERATION_STRUCTURE_TYPE_CLUSTERS_BOTTOM_LEVEL_NV = 0,
24265 VK_CLUSTER_ACCELERATION_STRUCTURE_TYPE_TRIANGLE_CLUSTER_NV = 1,
24266 VK_CLUSTER_ACCELERATION_STRUCTURE_TYPE_TRIANGLE_CLUSTER_TEMPLATE_NV = 2,
24267 VK_CLUSTER_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
24268} VkClusterAccelerationStructureTypeNV;
24269
24270typedef enum VkClusterAccelerationStructureOpTypeNV {
24271 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_MOVE_OBJECTS_NV = 0,
24272 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_BUILD_CLUSTERS_BOTTOM_LEVEL_NV = 1,
24273 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_BUILD_TRIANGLE_CLUSTER_NV = 2,
24274 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_BUILD_TRIANGLE_CLUSTER_TEMPLATE_NV = 3,
24275 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_INSTANTIATE_TRIANGLE_CLUSTER_NV = 4,
24276 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_GET_CLUSTER_TEMPLATE_INDICES_NV = 5,
24277 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
24278} VkClusterAccelerationStructureOpTypeNV;
24279
24280typedef enum VkClusterAccelerationStructureOpModeNV {
24281 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_IMPLICIT_DESTINATIONS_NV = 0,
24282 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_EXPLICIT_DESTINATIONS_NV = 1,
24283 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_COMPUTE_SIZES_NV = 2,
24284 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_MAX_ENUM_NV = 0x7FFFFFFF
24285} VkClusterAccelerationStructureOpModeNV;
24286
24287typedef enum VkClusterAccelerationStructureAddressResolutionFlagBitsNV {
24288 VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_NONE_NV = 0,
24289 VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_DST_IMPLICIT_DATA_BIT_NV = 0x00000001,
24290 VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_SCRATCH_DATA_BIT_NV = 0x00000002,
24291 VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_DST_ADDRESS_ARRAY_BIT_NV = 0x00000004,
24292 VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_DST_SIZES_ARRAY_BIT_NV = 0x00000008,
24293 VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_SRC_INFOS_ARRAY_BIT_NV = 0x00000010,
24294 VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_SRC_INFOS_COUNT_BIT_NV = 0x00000020,
24295 VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
24296} VkClusterAccelerationStructureAddressResolutionFlagBitsNV;
24297typedef VkFlags VkClusterAccelerationStructureAddressResolutionFlagsNV;
24298
24299typedef enum VkClusterAccelerationStructureClusterFlagBitsNV {
24300 VK_CLUSTER_ACCELERATION_STRUCTURE_CLUSTER_ALLOW_DISABLE_OPACITY_MICROMAPS_NV = 0x00000001,
24301 VK_CLUSTER_ACCELERATION_STRUCTURE_CLUSTER_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
24302} VkClusterAccelerationStructureClusterFlagBitsNV;
24303typedef VkFlags VkClusterAccelerationStructureClusterFlagsNV;
24304
24305typedef enum VkClusterAccelerationStructureGeometryFlagBitsNV {
24306 VK_CLUSTER_ACCELERATION_STRUCTURE_GEOMETRY_CULL_DISABLE_BIT_NV = 0x00000001,
24307 VK_CLUSTER_ACCELERATION_STRUCTURE_GEOMETRY_NO_DUPLICATE_ANYHIT_INVOCATION_BIT_NV = 0x00000002,
24308 VK_CLUSTER_ACCELERATION_STRUCTURE_GEOMETRY_OPAQUE_BIT_NV = 0x00000004,
24309 VK_CLUSTER_ACCELERATION_STRUCTURE_GEOMETRY_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
24310} VkClusterAccelerationStructureGeometryFlagBitsNV;
24311typedef VkFlags VkClusterAccelerationStructureGeometryFlagsNV;
24312
24313typedef enum VkClusterAccelerationStructureIndexFormatFlagBitsNV {
24314 VK_CLUSTER_ACCELERATION_STRUCTURE_INDEX_FORMAT_8BIT_NV = 0x00000001,
24315 VK_CLUSTER_ACCELERATION_STRUCTURE_INDEX_FORMAT_16BIT_NV = 0x00000002,
24316 VK_CLUSTER_ACCELERATION_STRUCTURE_INDEX_FORMAT_32BIT_NV = 0x00000004,
24317 VK_CLUSTER_ACCELERATION_STRUCTURE_INDEX_FORMAT_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
24318} VkClusterAccelerationStructureIndexFormatFlagBitsNV;
24319typedef VkFlags VkClusterAccelerationStructureIndexFormatFlagsNV;
24320typedef struct VkPhysicalDeviceClusterAccelerationStructureFeaturesNV {
24321 VkStructureType sType;
24322 void* pNext;
24323 VkBool32 clusterAccelerationStructure;
24324} VkPhysicalDeviceClusterAccelerationStructureFeaturesNV;
24325
24326typedef struct VkPhysicalDeviceClusterAccelerationStructurePropertiesNV {
24327 VkStructureType sType;
24328 void* pNext;
24329 uint32_t maxVerticesPerCluster;
24330 uint32_t maxTrianglesPerCluster;
24331 uint32_t clusterScratchByteAlignment;
24332 uint32_t clusterByteAlignment;
24333 uint32_t clusterTemplateByteAlignment;
24334 uint32_t clusterBottomLevelByteAlignment;
24335 uint32_t clusterTemplateBoundsByteAlignment;
24336 uint32_t maxClusterGeometryIndex;
24337} VkPhysicalDeviceClusterAccelerationStructurePropertiesNV;
24338
24339typedef struct VkClusterAccelerationStructureClustersBottomLevelInputNV {
24340 VkStructureType sType;
24341 void* pNext;
24342 uint32_t maxTotalClusterCount;
24343 uint32_t maxClusterCountPerAccelerationStructure;
24344} VkClusterAccelerationStructureClustersBottomLevelInputNV;
24345
24346typedef struct VkClusterAccelerationStructureTriangleClusterInputNV {
24347 VkStructureType sType;
24348 void* pNext;
24349 VkFormat vertexFormat;
24350 uint32_t maxGeometryIndexValue;
24351 uint32_t maxClusterUniqueGeometryCount;
24352 uint32_t maxClusterTriangleCount;
24353 uint32_t maxClusterVertexCount;
24354 uint32_t maxTotalTriangleCount;
24355 uint32_t maxTotalVertexCount;
24356 uint32_t minPositionTruncateBitCount;
24357} VkClusterAccelerationStructureTriangleClusterInputNV;
24358
24359typedef struct VkClusterAccelerationStructureMoveObjectsInputNV {
24360 VkStructureType sType;
24361 void* pNext;
24362 VkClusterAccelerationStructureTypeNV type;
24363 VkBool32 noMoveOverlap;
24364 VkDeviceSize maxMovedBytes;
24365} VkClusterAccelerationStructureMoveObjectsInputNV;
24366
24367typedef union VkClusterAccelerationStructureOpInputNV {
24368 VkClusterAccelerationStructureClustersBottomLevelInputNV* pClustersBottomLevel;
24369 VkClusterAccelerationStructureTriangleClusterInputNV* pTriangleClusters;
24370 VkClusterAccelerationStructureMoveObjectsInputNV* pMoveObjects;
24371} VkClusterAccelerationStructureOpInputNV;
24372
24373typedef struct VkClusterAccelerationStructureInputInfoNV {
24374 VkStructureType sType;
24375 void* pNext;
24376 uint32_t maxAccelerationStructureCount;
24377 VkBuildAccelerationStructureFlagsKHR flags;
24378 VkClusterAccelerationStructureOpTypeNV opType;
24379 VkClusterAccelerationStructureOpModeNV opMode;
24380 VkClusterAccelerationStructureOpInputNV opInput;
24381} VkClusterAccelerationStructureInputInfoNV;
24382
24383typedef struct VkStridedDeviceAddressRegionKHR {
24384 VkDeviceAddress deviceAddress;
24385 VkDeviceSize stride;
24386 VkDeviceSize size;
24387} VkStridedDeviceAddressRegionKHR;
24388
24389typedef struct VkClusterAccelerationStructureCommandsInfoNV {
24390 VkStructureType sType;
24391 void* pNext;
24392 VkClusterAccelerationStructureInputInfoNV input;
24393 VkDeviceAddress dstImplicitData;
24394 VkDeviceAddress scratchData;
24395 VkStridedDeviceAddressRegionKHR dstAddressesArray;
24396 VkStridedDeviceAddressRegionKHR dstSizesArray;
24397 VkStridedDeviceAddressRegionKHR srcInfosArray;
24398 VkDeviceAddress srcInfosCount;
24399 VkClusterAccelerationStructureAddressResolutionFlagsNV addressResolutionFlags;
24400} VkClusterAccelerationStructureCommandsInfoNV;
24401
24402typedef struct VkStridedDeviceAddressNV {
24403 VkDeviceAddress startAddress;
24404 VkDeviceSize strideInBytes;
24405} VkStridedDeviceAddressNV;
24406
24407typedef struct VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV {
24408 uint32_t geometryIndex:24;
24409 uint32_t reserved:5;
24410 uint32_t geometryFlags:3;
24411} VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV;
24412
24413typedef struct VkClusterAccelerationStructureMoveObjectsInfoNV {
24414 VkDeviceAddress srcAccelerationStructure;
24415} VkClusterAccelerationStructureMoveObjectsInfoNV;
24416
24417typedef struct VkClusterAccelerationStructureBuildClustersBottomLevelInfoNV {
24418 uint32_t clusterReferencesCount;
24419 uint32_t clusterReferencesStride;
24420 VkDeviceAddress clusterReferences;
24421} VkClusterAccelerationStructureBuildClustersBottomLevelInfoNV;
24422
24423typedef struct VkClusterAccelerationStructureBuildTriangleClusterInfoNV {
24424 uint32_t clusterID;
24425 VkClusterAccelerationStructureClusterFlagsNV clusterFlags;
24426 uint32_t triangleCount:9;
24427 uint32_t vertexCount:9;
24428 uint32_t positionTruncateBitCount:6;
24429 uint32_t indexType:4;
24430 uint32_t opacityMicromapIndexType:4;
24431 VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV baseGeometryIndexAndGeometryFlags;
24432 uint16_t indexBufferStride;
24433 uint16_t vertexBufferStride;
24434 uint16_t geometryIndexAndFlagsBufferStride;
24435 uint16_t opacityMicromapIndexBufferStride;
24436 VkDeviceAddress indexBuffer;
24437 VkDeviceAddress vertexBuffer;
24438 VkDeviceAddress geometryIndexAndFlagsBuffer;
24439 VkDeviceAddress opacityMicromapArray;
24440 VkDeviceAddress opacityMicromapIndexBuffer;
24441} VkClusterAccelerationStructureBuildTriangleClusterInfoNV;
24442
24443typedef struct VkClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV {
24444 uint32_t clusterID;
24445 VkClusterAccelerationStructureClusterFlagsNV clusterFlags;
24446 uint32_t triangleCount:9;
24447 uint32_t vertexCount:9;
24448 uint32_t positionTruncateBitCount:6;
24449 uint32_t indexType:4;
24450 uint32_t opacityMicromapIndexType:4;
24451 VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV baseGeometryIndexAndGeometryFlags;
24452 uint16_t indexBufferStride;
24453 uint16_t vertexBufferStride;
24454 uint16_t geometryIndexAndFlagsBufferStride;
24455 uint16_t opacityMicromapIndexBufferStride;
24456 VkDeviceAddress indexBuffer;
24457 VkDeviceAddress vertexBuffer;
24458 VkDeviceAddress geometryIndexAndFlagsBuffer;
24459 VkDeviceAddress opacityMicromapArray;
24460 VkDeviceAddress opacityMicromapIndexBuffer;
24461 VkDeviceAddress instantiationBoundingBoxLimit;
24462} VkClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV;
24463
24464typedef struct VkClusterAccelerationStructureInstantiateClusterInfoNV {
24465 uint32_t clusterIdOffset;
24466 uint32_t geometryIndexOffset:24;
24467 uint32_t reserved:8;
24468 VkDeviceAddress clusterTemplateAddress;
24469 VkStridedDeviceAddressNV vertexBuffer;
24470} VkClusterAccelerationStructureInstantiateClusterInfoNV;
24471
24472typedef struct VkClusterAccelerationStructureGetTemplateIndicesInfoNV {
24473 VkDeviceAddress clusterTemplateAddress;
24474} VkClusterAccelerationStructureGetTemplateIndicesInfoNV;
24475
24476typedef struct VkAccelerationStructureBuildSizesInfoKHR {
24477 VkStructureType sType;
24478 void* pNext;
24479 VkDeviceSize accelerationStructureSize;
24480 VkDeviceSize updateScratchSize;
24481 VkDeviceSize buildScratchSize;
24482} VkAccelerationStructureBuildSizesInfoKHR;
24483
24484typedef struct VkRayTracingPipelineClusterAccelerationStructureCreateInfoNV {
24485 VkStructureType sType;
24486 void* pNext;
24487 VkBool32 allowClusterAccelerationStructure;
24488} VkRayTracingPipelineClusterAccelerationStructureCreateInfoNV;
24489
24490typedef void (VKAPI_PTR *PFN_vkGetClusterAccelerationStructureBuildSizesNV)(VkDevice device, const VkClusterAccelerationStructureInputInfoNV* pInfo, VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo);
24491typedef void (VKAPI_PTR *PFN_vkCmdBuildClusterAccelerationStructureIndirectNV)(VkCommandBuffer commandBuffer, const VkClusterAccelerationStructureCommandsInfoNV* pCommandInfos);
24492
24493#ifndef VK_NO_PROTOTYPES
24494#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24495VKAPI_ATTR void VKAPI_CALL vkGetClusterAccelerationStructureBuildSizesNV(
24496 VkDevice device,
24497 const VkClusterAccelerationStructureInputInfoNV* pInfo,
24498 VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo);
24499#endif
24500
24501#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24502VKAPI_ATTR void VKAPI_CALL vkCmdBuildClusterAccelerationStructureIndirectNV(
24503 VkCommandBuffer commandBuffer,
24504 const VkClusterAccelerationStructureCommandsInfoNV* pCommandInfos);
24505#endif
24506#endif
24507
24508
24509// VK_NV_partitioned_acceleration_structure is a preprocessor guard. Do not pass it to API calls.
24510#define VK_NV_partitioned_acceleration_structure 1
24511#define VK_NV_PARTITIONED_ACCELERATION_STRUCTURE_SPEC_VERSION 1
24512#define VK_NV_PARTITIONED_ACCELERATION_STRUCTURE_EXTENSION_NAME "VK_NV_partitioned_acceleration_structure"
24513#define VK_PARTITIONED_ACCELERATION_STRUCTURE_PARTITION_INDEX_GLOBAL_NV (~0U)
24514
24515typedef enum VkPartitionedAccelerationStructureOpTypeNV {
24516 VK_PARTITIONED_ACCELERATION_STRUCTURE_OP_TYPE_WRITE_INSTANCE_NV = 0,
24517 VK_PARTITIONED_ACCELERATION_STRUCTURE_OP_TYPE_UPDATE_INSTANCE_NV = 1,
24518 VK_PARTITIONED_ACCELERATION_STRUCTURE_OP_TYPE_WRITE_PARTITION_TRANSLATION_NV = 2,
24519 VK_PARTITIONED_ACCELERATION_STRUCTURE_OP_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
24520} VkPartitionedAccelerationStructureOpTypeNV;
24521
24522typedef enum VkPartitionedAccelerationStructureInstanceFlagBitsNV {
24523 VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_TRIANGLE_FACING_CULL_DISABLE_BIT_NV = 0x00000001,
24524 VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_TRIANGLE_FLIP_FACING_BIT_NV = 0x00000002,
24525 VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_FORCE_OPAQUE_BIT_NV = 0x00000004,
24526 VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_FORCE_NO_OPAQUE_BIT_NV = 0x00000008,
24527 VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_ENABLE_EXPLICIT_BOUNDING_BOX_NV = 0x00000010,
24528 VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
24529} VkPartitionedAccelerationStructureInstanceFlagBitsNV;
24530typedef VkFlags VkPartitionedAccelerationStructureInstanceFlagsNV;
24531typedef struct VkPhysicalDevicePartitionedAccelerationStructureFeaturesNV {
24532 VkStructureType sType;
24533 void* pNext;
24534 VkBool32 partitionedAccelerationStructure;
24535} VkPhysicalDevicePartitionedAccelerationStructureFeaturesNV;
24536
24537typedef struct VkPhysicalDevicePartitionedAccelerationStructurePropertiesNV {
24538 VkStructureType sType;
24539 void* pNext;
24540 uint32_t maxPartitionCount;
24541} VkPhysicalDevicePartitionedAccelerationStructurePropertiesNV;
24542
24543typedef struct VkPartitionedAccelerationStructureFlagsNV {
24544 VkStructureType sType;
24545 void* pNext;
24546 VkBool32 enablePartitionTranslation;
24547} VkPartitionedAccelerationStructureFlagsNV;
24548
24549typedef struct VkBuildPartitionedAccelerationStructureIndirectCommandNV {
24550 VkPartitionedAccelerationStructureOpTypeNV opType;
24551 uint32_t argCount;
24552 VkStridedDeviceAddressNV argData;
24553} VkBuildPartitionedAccelerationStructureIndirectCommandNV;
24554
24555typedef struct VkPartitionedAccelerationStructureWriteInstanceDataNV {
24556 VkTransformMatrixKHR transform;
24557 float explicitAABB[6];
24558 uint32_t instanceID;
24559 uint32_t instanceMask;
24560 uint32_t instanceContributionToHitGroupIndex;
24561 VkPartitionedAccelerationStructureInstanceFlagsNV instanceFlags;
24562 uint32_t instanceIndex;
24563 uint32_t partitionIndex;
24564 VkDeviceAddress accelerationStructure;
24565} VkPartitionedAccelerationStructureWriteInstanceDataNV;
24566
24567typedef struct VkPartitionedAccelerationStructureUpdateInstanceDataNV {
24568 uint32_t instanceIndex;
24569 uint32_t instanceContributionToHitGroupIndex;
24570 VkDeviceAddress accelerationStructure;
24571} VkPartitionedAccelerationStructureUpdateInstanceDataNV;
24572
24573typedef struct VkPartitionedAccelerationStructureWritePartitionTranslationDataNV {
24574 uint32_t partitionIndex;
24575 float partitionTranslation[3];
24576} VkPartitionedAccelerationStructureWritePartitionTranslationDataNV;
24577
24578typedef struct VkWriteDescriptorSetPartitionedAccelerationStructureNV {
24579 VkStructureType sType;
24580 void* pNext;
24581 uint32_t accelerationStructureCount;
24582 const VkDeviceAddress* pAccelerationStructures;
24583} VkWriteDescriptorSetPartitionedAccelerationStructureNV;
24584
24585typedef struct VkPartitionedAccelerationStructureInstancesInputNV {
24586 VkStructureType sType;
24587 void* pNext;
24588 VkBuildAccelerationStructureFlagsKHR flags;
24589 uint32_t instanceCount;
24590 uint32_t maxInstancePerPartitionCount;
24591 uint32_t partitionCount;
24592 uint32_t maxInstanceInGlobalPartitionCount;
24593} VkPartitionedAccelerationStructureInstancesInputNV;
24594
24595typedef struct VkBuildPartitionedAccelerationStructureInfoNV {
24596 VkStructureType sType;
24597 void* pNext;
24598 VkPartitionedAccelerationStructureInstancesInputNV input;
24599 VkDeviceAddress srcAccelerationStructureData;
24600 VkDeviceAddress dstAccelerationStructureData;
24601 VkDeviceAddress scratchData;
24602 VkDeviceAddress srcInfos;
24603 VkDeviceAddress srcInfosCount;
24604} VkBuildPartitionedAccelerationStructureInfoNV;
24605
24606typedef void (VKAPI_PTR *PFN_vkGetPartitionedAccelerationStructuresBuildSizesNV)(VkDevice device, const VkPartitionedAccelerationStructureInstancesInputNV* pInfo, VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo);
24607typedef void (VKAPI_PTR *PFN_vkCmdBuildPartitionedAccelerationStructuresNV)(VkCommandBuffer commandBuffer, const VkBuildPartitionedAccelerationStructureInfoNV* pBuildInfo);
24608
24609#ifndef VK_NO_PROTOTYPES
24610#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24611VKAPI_ATTR void VKAPI_CALL vkGetPartitionedAccelerationStructuresBuildSizesNV(
24612 VkDevice device,
24613 const VkPartitionedAccelerationStructureInstancesInputNV* pInfo,
24614 VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo);
24615#endif
24616
24617#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24618VKAPI_ATTR void VKAPI_CALL vkCmdBuildPartitionedAccelerationStructuresNV(
24619 VkCommandBuffer commandBuffer,
24620 const VkBuildPartitionedAccelerationStructureInfoNV* pBuildInfo);
24621#endif
24622#endif
24623
24624
24625// VK_EXT_device_generated_commands is a preprocessor guard. Do not pass it to API calls.
24626#define VK_EXT_device_generated_commands 1
24627VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectExecutionSetEXT)
24628VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutEXT)
24629#define VK_EXT_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 1
24630#define VK_EXT_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_EXT_device_generated_commands"
24631
24632typedef enum VkIndirectExecutionSetInfoTypeEXT {
24633 VK_INDIRECT_EXECUTION_SET_INFO_TYPE_PIPELINES_EXT = 0,
24634 VK_INDIRECT_EXECUTION_SET_INFO_TYPE_SHADER_OBJECTS_EXT = 1,
24635 VK_INDIRECT_EXECUTION_SET_INFO_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
24636} VkIndirectExecutionSetInfoTypeEXT;
24637
24638typedef enum VkIndirectCommandsTokenTypeEXT {
24639 VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT = 0,
24640 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT = 1,
24641 VK_INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT = 2,
24642 VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_EXT = 3,
24643 VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT = 4,
24644 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_EXT = 5,
24645 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_EXT = 6,
24646 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_COUNT_EXT = 7,
24647 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_COUNT_EXT = 8,
24648 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_EXT = 9,
24649 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_DATA_EXT = 1000135000,
24650 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_DATA_SEQUENCE_INDEX_EXT = 1000135001,
24651 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV_EXT = 1000202002,
24652 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_NV_EXT = 1000202003,
24653 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_EXT = 1000328000,
24654 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_EXT = 1000328001,
24655 VK_INDIRECT_COMMANDS_TOKEN_TYPE_TRACE_RAYS2_EXT = 1000386004,
24656 VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
24657} VkIndirectCommandsTokenTypeEXT;
24658
24659typedef enum VkIndirectCommandsInputModeFlagBitsEXT {
24660 VK_INDIRECT_COMMANDS_INPUT_MODE_VULKAN_INDEX_BUFFER_EXT = 0x00000001,
24661 VK_INDIRECT_COMMANDS_INPUT_MODE_DXGI_INDEX_BUFFER_EXT = 0x00000002,
24662 VK_INDIRECT_COMMANDS_INPUT_MODE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
24663} VkIndirectCommandsInputModeFlagBitsEXT;
24664typedef VkFlags VkIndirectCommandsInputModeFlagsEXT;
24665
24666typedef enum VkIndirectCommandsLayoutUsageFlagBitsEXT {
24667 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_EXT = 0x00000001,
24668 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_EXT = 0x00000002,
24669 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
24670} VkIndirectCommandsLayoutUsageFlagBitsEXT;
24671typedef VkFlags VkIndirectCommandsLayoutUsageFlagsEXT;
24672typedef struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT {
24673 VkStructureType sType;
24674 void* pNext;
24675 VkBool32 deviceGeneratedCommands;
24676 VkBool32 dynamicGeneratedPipelineLayout;
24677} VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT;
24678
24679typedef struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT {
24680 VkStructureType sType;
24681 void* pNext;
24682 uint32_t maxIndirectPipelineCount;
24683 uint32_t maxIndirectShaderObjectCount;
24684 uint32_t maxIndirectSequenceCount;
24685 uint32_t maxIndirectCommandsTokenCount;
24686 uint32_t maxIndirectCommandsTokenOffset;
24687 uint32_t maxIndirectCommandsIndirectStride;
24688 VkIndirectCommandsInputModeFlagsEXT supportedIndirectCommandsInputModes;
24689 VkShaderStageFlags supportedIndirectCommandsShaderStages;
24690 VkShaderStageFlags supportedIndirectCommandsShaderStagesPipelineBinding;
24691 VkShaderStageFlags supportedIndirectCommandsShaderStagesShaderBinding;
24692 VkBool32 deviceGeneratedCommandsTransformFeedback;
24693 VkBool32 deviceGeneratedCommandsMultiDrawIndirectCount;
24694} VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT;
24695
24696typedef struct VkGeneratedCommandsMemoryRequirementsInfoEXT {
24697 VkStructureType sType;
24698 const void* pNext;
24699 VkIndirectExecutionSetEXT indirectExecutionSet;
24700 VkIndirectCommandsLayoutEXT indirectCommandsLayout;
24701 uint32_t maxSequenceCount;
24702 uint32_t maxDrawCount;
24703} VkGeneratedCommandsMemoryRequirementsInfoEXT;
24704
24705typedef struct VkIndirectExecutionSetPipelineInfoEXT {
24706 VkStructureType sType;
24707 const void* pNext;
24708 VkPipeline initialPipeline;
24709 uint32_t maxPipelineCount;
24710} VkIndirectExecutionSetPipelineInfoEXT;
24711
24712typedef struct VkIndirectExecutionSetShaderLayoutInfoEXT {
24713 VkStructureType sType;
24714 const void* pNext;
24715 uint32_t setLayoutCount;
24716 const VkDescriptorSetLayout* pSetLayouts;
24717} VkIndirectExecutionSetShaderLayoutInfoEXT;
24718
24719typedef struct VkIndirectExecutionSetShaderInfoEXT {
24720 VkStructureType sType;
24721 const void* pNext;
24722 uint32_t shaderCount;
24723 const VkShaderEXT* pInitialShaders;
24724 const VkIndirectExecutionSetShaderLayoutInfoEXT* pSetLayoutInfos;
24725 uint32_t maxShaderCount;
24726 uint32_t pushConstantRangeCount;
24727 const VkPushConstantRange* pPushConstantRanges;
24728} VkIndirectExecutionSetShaderInfoEXT;
24729
24730typedef union VkIndirectExecutionSetInfoEXT {
24731 const VkIndirectExecutionSetPipelineInfoEXT* pPipelineInfo;
24732 const VkIndirectExecutionSetShaderInfoEXT* pShaderInfo;
24733} VkIndirectExecutionSetInfoEXT;
24734
24735typedef struct VkIndirectExecutionSetCreateInfoEXT {
24736 VkStructureType sType;
24737 const void* pNext;
24738 VkIndirectExecutionSetInfoTypeEXT type;
24739 VkIndirectExecutionSetInfoEXT info;
24740} VkIndirectExecutionSetCreateInfoEXT;
24741
24742typedef struct VkGeneratedCommandsInfoEXT {
24743 VkStructureType sType;
24744 const void* pNext;
24745 VkShaderStageFlags shaderStages;
24746 VkIndirectExecutionSetEXT indirectExecutionSet;
24747 VkIndirectCommandsLayoutEXT indirectCommandsLayout;
24748 VkDeviceAddress indirectAddress;
24749 VkDeviceSize indirectAddressSize;
24750 VkDeviceAddress preprocessAddress;
24751 VkDeviceSize preprocessSize;
24752 uint32_t maxSequenceCount;
24753 VkDeviceAddress sequenceCountAddress;
24754 uint32_t maxDrawCount;
24755} VkGeneratedCommandsInfoEXT;
24756
24757typedef struct VkWriteIndirectExecutionSetPipelineEXT {
24758 VkStructureType sType;
24759 const void* pNext;
24760 uint32_t index;
24761 VkPipeline pipeline;
24762} VkWriteIndirectExecutionSetPipelineEXT;
24763
24764typedef struct VkIndirectCommandsPushConstantTokenEXT {
24765 VkPushConstantRange updateRange;
24766} VkIndirectCommandsPushConstantTokenEXT;
24767
24768typedef struct VkIndirectCommandsVertexBufferTokenEXT {
24769 uint32_t vertexBindingUnit;
24770} VkIndirectCommandsVertexBufferTokenEXT;
24771
24772typedef struct VkIndirectCommandsIndexBufferTokenEXT {
24773 VkIndirectCommandsInputModeFlagBitsEXT mode;
24774} VkIndirectCommandsIndexBufferTokenEXT;
24775
24776typedef struct VkIndirectCommandsExecutionSetTokenEXT {
24777 VkIndirectExecutionSetInfoTypeEXT type;
24778 VkShaderStageFlags shaderStages;
24779} VkIndirectCommandsExecutionSetTokenEXT;
24780
24781typedef union VkIndirectCommandsTokenDataEXT {
24782 const VkIndirectCommandsPushConstantTokenEXT* pPushConstant;
24783 const VkIndirectCommandsVertexBufferTokenEXT* pVertexBuffer;
24784 const VkIndirectCommandsIndexBufferTokenEXT* pIndexBuffer;
24785 const VkIndirectCommandsExecutionSetTokenEXT* pExecutionSet;
24786} VkIndirectCommandsTokenDataEXT;
24787
24788typedef struct VkIndirectCommandsLayoutTokenEXT {
24789 VkStructureType sType;
24790 const void* pNext;
24791 VkIndirectCommandsTokenTypeEXT type;
24792 VkIndirectCommandsTokenDataEXT data;
24793 uint32_t offset;
24794} VkIndirectCommandsLayoutTokenEXT;
24795
24796typedef struct VkIndirectCommandsLayoutCreateInfoEXT {
24797 VkStructureType sType;
24798 const void* pNext;
24799 VkIndirectCommandsLayoutUsageFlagsEXT flags;
24800 VkShaderStageFlags shaderStages;
24801 uint32_t indirectStride;
24802 VkPipelineLayout pipelineLayout;
24803 uint32_t tokenCount;
24804 const VkIndirectCommandsLayoutTokenEXT* pTokens;
24805} VkIndirectCommandsLayoutCreateInfoEXT;
24806
24807typedef struct VkDrawIndirectCountIndirectCommandEXT {
24808 VkDeviceAddress bufferAddress;
24809 uint32_t stride;
24810 uint32_t commandCount;
24811} VkDrawIndirectCountIndirectCommandEXT;
24812
24813typedef struct VkBindVertexBufferIndirectCommandEXT {
24814 VkDeviceAddress bufferAddress;
24815 uint32_t size;
24816 uint32_t stride;
24817} VkBindVertexBufferIndirectCommandEXT;
24818
24819typedef struct VkBindIndexBufferIndirectCommandEXT {
24820 VkDeviceAddress bufferAddress;
24821 uint32_t size;
24822 VkIndexType indexType;
24823} VkBindIndexBufferIndirectCommandEXT;
24824
24825typedef struct VkGeneratedCommandsPipelineInfoEXT {
24826 VkStructureType sType;
24827 void* pNext;
24828 VkPipeline pipeline;
24829} VkGeneratedCommandsPipelineInfoEXT;
24830
24831typedef struct VkGeneratedCommandsShaderInfoEXT {
24832 VkStructureType sType;
24833 void* pNext;
24834 uint32_t shaderCount;
24835 const VkShaderEXT* pShaders;
24836} VkGeneratedCommandsShaderInfoEXT;
24837
24838typedef struct VkWriteIndirectExecutionSetShaderEXT {
24839 VkStructureType sType;
24840 const void* pNext;
24841 uint32_t index;
24842 VkShaderEXT shader;
24843} VkWriteIndirectExecutionSetShaderEXT;
24844
24845typedef void (VKAPI_PTR *PFN_vkGetGeneratedCommandsMemoryRequirementsEXT)(VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoEXT* pInfo, VkMemoryRequirements2* pMemoryRequirements);
24846typedef void (VKAPI_PTR *PFN_vkCmdPreprocessGeneratedCommandsEXT)(VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoEXT* pGeneratedCommandsInfo, VkCommandBuffer stateCommandBuffer);
24847typedef void (VKAPI_PTR *PFN_vkCmdExecuteGeneratedCommandsEXT)(VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoEXT* pGeneratedCommandsInfo);
24848typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutEXT)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutEXT* pIndirectCommandsLayout);
24849typedef void (VKAPI_PTR *PFN_vkDestroyIndirectCommandsLayoutEXT)(VkDevice device, VkIndirectCommandsLayoutEXT indirectCommandsLayout, const VkAllocationCallbacks* pAllocator);
24850typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectExecutionSetEXT)(VkDevice device, const VkIndirectExecutionSetCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectExecutionSetEXT* pIndirectExecutionSet);
24851typedef void (VKAPI_PTR *PFN_vkDestroyIndirectExecutionSetEXT)(VkDevice device, VkIndirectExecutionSetEXT indirectExecutionSet, const VkAllocationCallbacks* pAllocator);
24852typedef void (VKAPI_PTR *PFN_vkUpdateIndirectExecutionSetPipelineEXT)(VkDevice device, VkIndirectExecutionSetEXT indirectExecutionSet, uint32_t executionSetWriteCount, const VkWriteIndirectExecutionSetPipelineEXT* pExecutionSetWrites);
24853typedef void (VKAPI_PTR *PFN_vkUpdateIndirectExecutionSetShaderEXT)(VkDevice device, VkIndirectExecutionSetEXT indirectExecutionSet, uint32_t executionSetWriteCount, const VkWriteIndirectExecutionSetShaderEXT* pExecutionSetWrites);
24854
24855#ifndef VK_NO_PROTOTYPES
24856#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24857VKAPI_ATTR void VKAPI_CALL vkGetGeneratedCommandsMemoryRequirementsEXT(
24858 VkDevice device,
24859 const VkGeneratedCommandsMemoryRequirementsInfoEXT* pInfo,
24860 VkMemoryRequirements2* pMemoryRequirements);
24861#endif
24862
24863#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24864VKAPI_ATTR void VKAPI_CALL vkCmdPreprocessGeneratedCommandsEXT(
24865 VkCommandBuffer commandBuffer,
24866 const VkGeneratedCommandsInfoEXT* pGeneratedCommandsInfo,
24867 VkCommandBuffer stateCommandBuffer);
24868#endif
24869
24870#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24871VKAPI_ATTR void VKAPI_CALL vkCmdExecuteGeneratedCommandsEXT(
24872 VkCommandBuffer commandBuffer,
24873 VkBool32 isPreprocessed,
24874 const VkGeneratedCommandsInfoEXT* pGeneratedCommandsInfo);
24875#endif
24876
24877#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24878VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutEXT(
24879 VkDevice device,
24880 const VkIndirectCommandsLayoutCreateInfoEXT* pCreateInfo,
24881 const VkAllocationCallbacks* pAllocator,
24882 VkIndirectCommandsLayoutEXT* pIndirectCommandsLayout);
24883#endif
24884
24885#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24886VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutEXT(
24887 VkDevice device,
24888 VkIndirectCommandsLayoutEXT indirectCommandsLayout,
24889 const VkAllocationCallbacks* pAllocator);
24890#endif
24891
24892#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24893VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectExecutionSetEXT(
24894 VkDevice device,
24895 const VkIndirectExecutionSetCreateInfoEXT* pCreateInfo,
24896 const VkAllocationCallbacks* pAllocator,
24897 VkIndirectExecutionSetEXT* pIndirectExecutionSet);
24898#endif
24899
24900#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24901VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectExecutionSetEXT(
24902 VkDevice device,
24903 VkIndirectExecutionSetEXT indirectExecutionSet,
24904 const VkAllocationCallbacks* pAllocator);
24905#endif
24906
24907#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24908VKAPI_ATTR void VKAPI_CALL vkUpdateIndirectExecutionSetPipelineEXT(
24909 VkDevice device,
24910 VkIndirectExecutionSetEXT indirectExecutionSet,
24911 uint32_t executionSetWriteCount,
24912 const VkWriteIndirectExecutionSetPipelineEXT* pExecutionSetWrites);
24913#endif
24914
24915#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24916VKAPI_ATTR void VKAPI_CALL vkUpdateIndirectExecutionSetShaderEXT(
24917 VkDevice device,
24918 VkIndirectExecutionSetEXT indirectExecutionSet,
24919 uint32_t executionSetWriteCount,
24920 const VkWriteIndirectExecutionSetShaderEXT* pExecutionSetWrites);
24921#endif
24922#endif
24923
24924
24925// VK_MESA_image_alignment_control is a preprocessor guard. Do not pass it to API calls.
24926#define VK_MESA_image_alignment_control 1
24927#define VK_MESA_IMAGE_ALIGNMENT_CONTROL_SPEC_VERSION 1
24928#define VK_MESA_IMAGE_ALIGNMENT_CONTROL_EXTENSION_NAME "VK_MESA_image_alignment_control"
24929typedef struct VkPhysicalDeviceImageAlignmentControlFeaturesMESA {
24930 VkStructureType sType;
24931 void* pNext;
24932 VkBool32 imageAlignmentControl;
24933} VkPhysicalDeviceImageAlignmentControlFeaturesMESA;
24934
24935typedef struct VkPhysicalDeviceImageAlignmentControlPropertiesMESA {
24936 VkStructureType sType;
24937 void* pNext;
24938 uint32_t supportedImageAlignmentMask;
24939} VkPhysicalDeviceImageAlignmentControlPropertiesMESA;
24940
24941typedef struct VkImageAlignmentControlCreateInfoMESA {
24942 VkStructureType sType;
24943 const void* pNext;
24944 uint32_t maximumRequestedAlignment;
24945} VkImageAlignmentControlCreateInfoMESA;
24946
24947
24948
24949// VK_NV_push_constant_bank is a preprocessor guard. Do not pass it to API calls.
24950#define VK_NV_push_constant_bank 1
24951#define VK_NV_PUSH_CONSTANT_BANK_SPEC_VERSION 1
24952#define VK_NV_PUSH_CONSTANT_BANK_EXTENSION_NAME "VK_NV_push_constant_bank"
24953typedef struct VkPushConstantBankInfoNV {
24954 VkStructureType sType;
24955 const void* pNext;
24956 uint32_t bank;
24957} VkPushConstantBankInfoNV;
24958
24959typedef struct VkPhysicalDevicePushConstantBankFeaturesNV {
24960 VkStructureType sType;
24961 void* pNext;
24962 VkBool32 pushConstantBank;
24963} VkPhysicalDevicePushConstantBankFeaturesNV;
24964
24965typedef struct VkPhysicalDevicePushConstantBankPropertiesNV {
24966 VkStructureType sType;
24967 void* pNext;
24968 uint32_t maxGraphicsPushConstantBanks;
24969 uint32_t maxComputePushConstantBanks;
24970 uint32_t maxGraphicsPushDataBanks;
24971 uint32_t maxComputePushDataBanks;
24972} VkPhysicalDevicePushConstantBankPropertiesNV;
24973
24974
24975
24976// VK_EXT_ray_tracing_invocation_reorder is a preprocessor guard. Do not pass it to API calls.
24977#define VK_EXT_ray_tracing_invocation_reorder 1
24978#define VK_EXT_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION 2
24979#define VK_EXT_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME "VK_EXT_ray_tracing_invocation_reorder"
24980typedef struct VkPhysicalDeviceRayTracingInvocationReorderPropertiesEXT {
24981 VkStructureType sType;
24982 void* pNext;
24983 VkRayTracingInvocationReorderModeEXT rayTracingInvocationReorderReorderingHint;
24984 uint32_t maxShaderBindingTableRecordIndex;
24985} VkPhysicalDeviceRayTracingInvocationReorderPropertiesEXT;
24986
24987typedef struct VkPhysicalDeviceRayTracingInvocationReorderFeaturesEXT {
24988 VkStructureType sType;
24989 void* pNext;
24990 VkBool32 rayTracingInvocationReorder;
24991} VkPhysicalDeviceRayTracingInvocationReorderFeaturesEXT;
24992
24993
24994
24995// VK_EXT_depth_clamp_control is a preprocessor guard. Do not pass it to API calls.
24996#define VK_EXT_depth_clamp_control 1
24997#define VK_EXT_DEPTH_CLAMP_CONTROL_SPEC_VERSION 1
24998#define VK_EXT_DEPTH_CLAMP_CONTROL_EXTENSION_NAME "VK_EXT_depth_clamp_control"
24999typedef struct VkPhysicalDeviceDepthClampControlFeaturesEXT {
25000 VkStructureType sType;
25001 void* pNext;
25002 VkBool32 depthClampControl;
25003} VkPhysicalDeviceDepthClampControlFeaturesEXT;
25004
25005typedef struct VkPipelineViewportDepthClampControlCreateInfoEXT {
25006 VkStructureType sType;
25007 const void* pNext;
25008 VkDepthClampModeEXT depthClampMode;
25009 const VkDepthClampRangeEXT* pDepthClampRange;
25010} VkPipelineViewportDepthClampControlCreateInfoEXT;
25011
25012
25013
25014// VK_HUAWEI_hdr_vivid is a preprocessor guard. Do not pass it to API calls.
25015#define VK_HUAWEI_hdr_vivid 1
25016#define VK_HUAWEI_HDR_VIVID_SPEC_VERSION 1
25017#define VK_HUAWEI_HDR_VIVID_EXTENSION_NAME "VK_HUAWEI_hdr_vivid"
25018typedef struct VkPhysicalDeviceHdrVividFeaturesHUAWEI {
25019 VkStructureType sType;
25020 void* pNext;
25021 VkBool32 hdrVivid;
25022} VkPhysicalDeviceHdrVividFeaturesHUAWEI;
25023
25024typedef struct VkHdrVividDynamicMetadataHUAWEI {
25025 VkStructureType sType;
25026 const void* pNext;
25027 size_t dynamicMetadataSize;
25028 const void* pDynamicMetadata;
25029} VkHdrVividDynamicMetadataHUAWEI;
25030
25031
25032
25033// VK_NV_cooperative_matrix2 is a preprocessor guard. Do not pass it to API calls.
25034#define VK_NV_cooperative_matrix2 1
25035#define VK_NV_COOPERATIVE_MATRIX_2_SPEC_VERSION 1
25036#define VK_NV_COOPERATIVE_MATRIX_2_EXTENSION_NAME "VK_NV_cooperative_matrix2"
25037typedef struct VkCooperativeMatrixFlexibleDimensionsPropertiesNV {
25038 VkStructureType sType;
25039 void* pNext;
25040 uint32_t MGranularity;
25041 uint32_t NGranularity;
25042 uint32_t KGranularity;
25043 VkComponentTypeKHR AType;
25044 VkComponentTypeKHR BType;
25045 VkComponentTypeKHR CType;
25046 VkComponentTypeKHR ResultType;
25047 VkBool32 saturatingAccumulation;
25048 VkScopeKHR scope;
25049 uint32_t workgroupInvocations;
25050} VkCooperativeMatrixFlexibleDimensionsPropertiesNV;
25051
25052typedef struct VkPhysicalDeviceCooperativeMatrix2FeaturesNV {
25053 VkStructureType sType;
25054 void* pNext;
25055 VkBool32 cooperativeMatrixWorkgroupScope;
25056 VkBool32 cooperativeMatrixFlexibleDimensions;
25057 VkBool32 cooperativeMatrixReductions;
25058 VkBool32 cooperativeMatrixConversions;
25059 VkBool32 cooperativeMatrixPerElementOperations;
25060 VkBool32 cooperativeMatrixTensorAddressing;
25061 VkBool32 cooperativeMatrixBlockLoads;
25062} VkPhysicalDeviceCooperativeMatrix2FeaturesNV;
25063
25064typedef struct VkPhysicalDeviceCooperativeMatrix2PropertiesNV {
25065 VkStructureType sType;
25066 void* pNext;
25067 uint32_t cooperativeMatrixWorkgroupScopeMaxWorkgroupSize;
25068 uint32_t cooperativeMatrixFlexibleDimensionsMaxDimension;
25069 uint32_t cooperativeMatrixWorkgroupScopeReservedSharedMemory;
25070} VkPhysicalDeviceCooperativeMatrix2PropertiesNV;
25071
25072typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixFlexibleDimensionsPropertiesNV* pProperties);
25073
25074#ifndef VK_NO_PROTOTYPES
25075#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25076VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV(
25077 VkPhysicalDevice physicalDevice,
25078 uint32_t* pPropertyCount,
25079 VkCooperativeMatrixFlexibleDimensionsPropertiesNV* pProperties);
25080#endif
25081#endif
25082
25083
25084// VK_ARM_pipeline_opacity_micromap is a preprocessor guard. Do not pass it to API calls.
25085#define VK_ARM_pipeline_opacity_micromap 1
25086#define VK_ARM_PIPELINE_OPACITY_MICROMAP_SPEC_VERSION 1
25087#define VK_ARM_PIPELINE_OPACITY_MICROMAP_EXTENSION_NAME "VK_ARM_pipeline_opacity_micromap"
25088typedef struct VkPhysicalDevicePipelineOpacityMicromapFeaturesARM {
25089 VkStructureType sType;
25090 void* pNext;
25091 VkBool32 pipelineOpacityMicromap;
25092} VkPhysicalDevicePipelineOpacityMicromapFeaturesARM;
25093
25094
25095
25096// VK_ARM_performance_counters_by_region is a preprocessor guard. Do not pass it to API calls.
25097#define VK_ARM_performance_counters_by_region 1
25098#define VK_ARM_PERFORMANCE_COUNTERS_BY_REGION_SPEC_VERSION 1
25099#define VK_ARM_PERFORMANCE_COUNTERS_BY_REGION_EXTENSION_NAME "VK_ARM_performance_counters_by_region"
25100typedef VkFlags VkPerformanceCounterDescriptionFlagsARM;
25101typedef struct VkPhysicalDevicePerformanceCountersByRegionFeaturesARM {
25102 VkStructureType sType;
25103 void* pNext;
25104 VkBool32 performanceCountersByRegion;
25105} VkPhysicalDevicePerformanceCountersByRegionFeaturesARM;
25106
25107typedef struct VkPhysicalDevicePerformanceCountersByRegionPropertiesARM {
25108 VkStructureType sType;
25109 void* pNext;
25110 uint32_t maxPerRegionPerformanceCounters;
25111 VkExtent2D performanceCounterRegionSize;
25112 uint32_t rowStrideAlignment;
25113 uint32_t regionAlignment;
25114 VkBool32 identityTransformOrder;
25115} VkPhysicalDevicePerformanceCountersByRegionPropertiesARM;
25116
25117typedef struct VkPerformanceCounterARM {
25118 VkStructureType sType;
25119 void* pNext;
25120 uint32_t counterID;
25121} VkPerformanceCounterARM;
25122
25123typedef struct VkPerformanceCounterDescriptionARM {
25124 VkStructureType sType;
25125 void* pNext;
25126 VkPerformanceCounterDescriptionFlagsARM flags;
25127 char name[VK_MAX_DESCRIPTION_SIZE];
25128} VkPerformanceCounterDescriptionARM;
25129
25130typedef struct VkRenderPassPerformanceCountersByRegionBeginInfoARM {
25131 VkStructureType sType;
25132 void* pNext;
25133 uint32_t counterAddressCount;
25134 const VkDeviceAddress* pCounterAddresses;
25135 VkBool32 serializeRegions;
25136 uint32_t counterIndexCount;
25137 uint32_t* pCounterIndices;
25138} VkRenderPassPerformanceCountersByRegionBeginInfoARM;
25139
25140typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pCounterCount, VkPerformanceCounterARM* pCounters, VkPerformanceCounterDescriptionARM* pCounterDescriptions);
25141
25142#ifndef VK_NO_PROTOTYPES
25143#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25144VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceQueueFamilyPerformanceCountersByRegionARM(
25145 VkPhysicalDevice physicalDevice,
25146 uint32_t queueFamilyIndex,
25147 uint32_t* pCounterCount,
25148 VkPerformanceCounterARM* pCounters,
25149 VkPerformanceCounterDescriptionARM* pCounterDescriptions);
25150#endif
25151#endif
25152
25153
25154// VK_ARM_shader_instrumentation is a preprocessor guard. Do not pass it to API calls.
25155#define VK_ARM_shader_instrumentation 1
25156VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderInstrumentationARM)
25157#define VK_ARM_SHADER_INSTRUMENTATION_SPEC_VERSION 1
25158#define VK_ARM_SHADER_INSTRUMENTATION_EXTENSION_NAME "VK_ARM_shader_instrumentation"
25159typedef VkFlags VkShaderInstrumentationValuesFlagsARM;
25160typedef struct VkPhysicalDeviceShaderInstrumentationFeaturesARM {
25161 VkStructureType sType;
25162 void* pNext;
25163 VkBool32 shaderInstrumentation;
25164} VkPhysicalDeviceShaderInstrumentationFeaturesARM;
25165
25166typedef struct VkPhysicalDeviceShaderInstrumentationPropertiesARM {
25167 VkStructureType sType;
25168 void* pNext;
25169 uint32_t numMetrics;
25170 VkBool32 perBasicBlockGranularity;
25171} VkPhysicalDeviceShaderInstrumentationPropertiesARM;
25172
25173typedef struct VkShaderInstrumentationCreateInfoARM {
25174 VkStructureType sType;
25175 void* pNext;
25176} VkShaderInstrumentationCreateInfoARM;
25177
25178typedef struct VkShaderInstrumentationMetricDescriptionARM {
25179 VkStructureType sType;
25180 void* pNext;
25181 char name[VK_MAX_DESCRIPTION_SIZE];
25182 char description[VK_MAX_DESCRIPTION_SIZE];
25183} VkShaderInstrumentationMetricDescriptionARM;
25184
25185typedef struct VkShaderInstrumentationMetricDataHeaderARM {
25186 uint32_t resultIndex;
25187 uint32_t resultSubIndex;
25188 VkShaderStageFlags stages;
25189 uint32_t basicBlockIndex;
25190} VkShaderInstrumentationMetricDataHeaderARM;
25191
25192typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceShaderInstrumentationMetricsARM)(VkPhysicalDevice physicalDevice, uint32_t* pDescriptionCount, VkShaderInstrumentationMetricDescriptionARM* pDescriptions);
25193typedef VkResult (VKAPI_PTR *PFN_vkCreateShaderInstrumentationARM)(VkDevice device, const VkShaderInstrumentationCreateInfoARM* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderInstrumentationARM* pInstrumentation);
25194typedef void (VKAPI_PTR *PFN_vkDestroyShaderInstrumentationARM)(VkDevice device, VkShaderInstrumentationARM instrumentation, const VkAllocationCallbacks* pAllocator);
25195typedef void (VKAPI_PTR *PFN_vkCmdBeginShaderInstrumentationARM)(VkCommandBuffer commandBuffer, VkShaderInstrumentationARM instrumentation);
25196typedef void (VKAPI_PTR *PFN_vkCmdEndShaderInstrumentationARM)(VkCommandBuffer commandBuffer);
25197typedef VkResult (VKAPI_PTR *PFN_vkGetShaderInstrumentationValuesARM)(VkDevice device, VkShaderInstrumentationARM instrumentation, uint32_t* pMetricBlockCount, void* pMetricValues, VkShaderInstrumentationValuesFlagsARM flags);
25198typedef void (VKAPI_PTR *PFN_vkClearShaderInstrumentationMetricsARM)(VkDevice device, VkShaderInstrumentationARM instrumentation);
25199
25200#ifndef VK_NO_PROTOTYPES
25201#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25202VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceShaderInstrumentationMetricsARM(
25203 VkPhysicalDevice physicalDevice,
25204 uint32_t* pDescriptionCount,
25205 VkShaderInstrumentationMetricDescriptionARM* pDescriptions);
25206#endif
25207
25208#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25209VKAPI_ATTR VkResult VKAPI_CALL vkCreateShaderInstrumentationARM(
25210 VkDevice device,
25211 const VkShaderInstrumentationCreateInfoARM* pCreateInfo,
25212 const VkAllocationCallbacks* pAllocator,
25213 VkShaderInstrumentationARM* pInstrumentation);
25214#endif
25215
25216#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25217VKAPI_ATTR void VKAPI_CALL vkDestroyShaderInstrumentationARM(
25218 VkDevice device,
25219 VkShaderInstrumentationARM instrumentation,
25220 const VkAllocationCallbacks* pAllocator);
25221#endif
25222
25223#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25224VKAPI_ATTR void VKAPI_CALL vkCmdBeginShaderInstrumentationARM(
25225 VkCommandBuffer commandBuffer,
25226 VkShaderInstrumentationARM instrumentation);
25227#endif
25228
25229#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25230VKAPI_ATTR void VKAPI_CALL vkCmdEndShaderInstrumentationARM(
25231 VkCommandBuffer commandBuffer);
25232#endif
25233
25234#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25235VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderInstrumentationValuesARM(
25236 VkDevice device,
25237 VkShaderInstrumentationARM instrumentation,
25238 uint32_t* pMetricBlockCount,
25239 void* pMetricValues,
25240 VkShaderInstrumentationValuesFlagsARM flags);
25241#endif
25242
25243#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25244VKAPI_ATTR void VKAPI_CALL vkClearShaderInstrumentationMetricsARM(
25245 VkDevice device,
25246 VkShaderInstrumentationARM instrumentation);
25247#endif
25248#endif
25249
25250
25251// VK_EXT_vertex_attribute_robustness is a preprocessor guard. Do not pass it to API calls.
25252#define VK_EXT_vertex_attribute_robustness 1
25253#define VK_EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_SPEC_VERSION 1
25254#define VK_EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_vertex_attribute_robustness"
25255typedef struct VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT {
25256 VkStructureType sType;
25257 void* pNext;
25258 VkBool32 vertexAttributeRobustness;
25259} VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT;
25260
25261
25262
25263// VK_ARM_format_pack is a preprocessor guard. Do not pass it to API calls.
25264#define VK_ARM_format_pack 1
25265#define VK_ARM_FORMAT_PACK_SPEC_VERSION 1
25266#define VK_ARM_FORMAT_PACK_EXTENSION_NAME "VK_ARM_format_pack"
25267typedef struct VkPhysicalDeviceFormatPackFeaturesARM {
25268 VkStructureType sType;
25269 void* pNext;
25270 VkBool32 formatPack;
25271} VkPhysicalDeviceFormatPackFeaturesARM;
25272
25273
25274
25275// VK_VALVE_fragment_density_map_layered is a preprocessor guard. Do not pass it to API calls.
25276#define VK_VALVE_fragment_density_map_layered 1
25277#define VK_VALVE_FRAGMENT_DENSITY_MAP_LAYERED_SPEC_VERSION 1
25278#define VK_VALVE_FRAGMENT_DENSITY_MAP_LAYERED_EXTENSION_NAME "VK_VALVE_fragment_density_map_layered"
25279typedef struct VkPhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE {
25280 VkStructureType sType;
25281 void* pNext;
25282 VkBool32 fragmentDensityMapLayered;
25283} VkPhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE;
25284
25285typedef struct VkPhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE {
25286 VkStructureType sType;
25287 void* pNext;
25288 uint32_t maxFragmentDensityMapLayers;
25289} VkPhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE;
25290
25291typedef struct VkPipelineFragmentDensityMapLayeredCreateInfoVALVE {
25292 VkStructureType sType;
25293 const void* pNext;
25294 uint32_t maxFragmentDensityMapLayers;
25295} VkPipelineFragmentDensityMapLayeredCreateInfoVALVE;
25296
25297
25298
25299// VK_NV_present_metering is a preprocessor guard. Do not pass it to API calls.
25300#define VK_NV_present_metering 1
25301#define VK_NV_PRESENT_METERING_SPEC_VERSION 1
25302#define VK_NV_PRESENT_METERING_EXTENSION_NAME "VK_NV_present_metering"
25303typedef struct VkSetPresentConfigNV {
25304 VkStructureType sType;
25305 const void* pNext;
25306 uint32_t numFramesPerBatch;
25307 uint32_t presentConfigFeedback;
25308} VkSetPresentConfigNV;
25309
25310typedef struct VkPhysicalDevicePresentMeteringFeaturesNV {
25311 VkStructureType sType;
25312 void* pNext;
25313 VkBool32 presentMetering;
25314} VkPhysicalDevicePresentMeteringFeaturesNV;
25315
25316
25317
25318// VK_EXT_fragment_density_map_offset is a preprocessor guard. Do not pass it to API calls.
25319#define VK_EXT_fragment_density_map_offset 1
25320#define VK_EXT_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION 1
25321#define VK_EXT_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME "VK_EXT_fragment_density_map_offset"
25322typedef VkRenderingEndInfoKHR VkRenderingEndInfoEXT;
25323
25324typedef void (VKAPI_PTR *PFN_vkCmdEndRendering2EXT)(VkCommandBuffer commandBuffer, const VkRenderingEndInfoKHR* pRenderingEndInfo);
25325
25326#ifndef VK_NO_PROTOTYPES
25327#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25328VKAPI_ATTR void VKAPI_CALL vkCmdEndRendering2EXT(
25329 VkCommandBuffer commandBuffer,
25330 const VkRenderingEndInfoKHR* pRenderingEndInfo);
25331#endif
25332#endif
25333
25334
25335// VK_EXT_zero_initialize_device_memory is a preprocessor guard. Do not pass it to API calls.
25336#define VK_EXT_zero_initialize_device_memory 1
25337#define VK_EXT_ZERO_INITIALIZE_DEVICE_MEMORY_SPEC_VERSION 1
25338#define VK_EXT_ZERO_INITIALIZE_DEVICE_MEMORY_EXTENSION_NAME "VK_EXT_zero_initialize_device_memory"
25339typedef struct VkPhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT {
25340 VkStructureType sType;
25341 void* pNext;
25342 VkBool32 zeroInitializeDeviceMemory;
25343} VkPhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT;
25344
25345
25346
25347// VK_EXT_shader_64bit_indexing is a preprocessor guard. Do not pass it to API calls.
25348#define VK_EXT_shader_64bit_indexing 1
25349#define VK_EXT_SHADER_64BIT_INDEXING_SPEC_VERSION 1
25350#define VK_EXT_SHADER_64BIT_INDEXING_EXTENSION_NAME "VK_EXT_shader_64bit_indexing"
25351typedef struct VkPhysicalDeviceShader64BitIndexingFeaturesEXT {
25352 VkStructureType sType;
25353 void* pNext;
25354 VkBool32 shader64BitIndexing;
25355} VkPhysicalDeviceShader64BitIndexingFeaturesEXT;
25356
25357
25358
25359// VK_EXT_custom_resolve is a preprocessor guard. Do not pass it to API calls.
25360#define VK_EXT_custom_resolve 1
25361#define VK_EXT_CUSTOM_RESOLVE_SPEC_VERSION 1
25362#define VK_EXT_CUSTOM_RESOLVE_EXTENSION_NAME "VK_EXT_custom_resolve"
25363typedef struct VkPhysicalDeviceCustomResolveFeaturesEXT {
25364 VkStructureType sType;
25365 void* pNext;
25366 VkBool32 customResolve;
25367} VkPhysicalDeviceCustomResolveFeaturesEXT;
25368
25369typedef struct VkBeginCustomResolveInfoEXT {
25370 VkStructureType sType;
25371 void* pNext;
25372} VkBeginCustomResolveInfoEXT;
25373
25374typedef struct VkCustomResolveCreateInfoEXT {
25375 VkStructureType sType;
25376 const void* pNext;
25377 VkBool32 customResolve;
25378 uint32_t colorAttachmentCount;
25379 const VkFormat* pColorAttachmentFormats;
25380 VkFormat depthAttachmentFormat;
25381 VkFormat stencilAttachmentFormat;
25382} VkCustomResolveCreateInfoEXT;
25383
25384typedef void (VKAPI_PTR *PFN_vkCmdBeginCustomResolveEXT)(VkCommandBuffer commandBuffer, const VkBeginCustomResolveInfoEXT* pBeginCustomResolveInfo);
25385
25386#ifndef VK_NO_PROTOTYPES
25387#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25388VKAPI_ATTR void VKAPI_CALL vkCmdBeginCustomResolveEXT(
25389 VkCommandBuffer commandBuffer,
25390 const VkBeginCustomResolveInfoEXT* pBeginCustomResolveInfo);
25391#endif
25392#endif
25393
25394
25395// VK_QCOM_data_graph_model is a preprocessor guard. Do not pass it to API calls.
25396#define VK_QCOM_data_graph_model 1
25397#define VK_DATA_GRAPH_MODEL_TOOLCHAIN_VERSION_LENGTH_QCOM 3U
25398#define VK_QCOM_DATA_GRAPH_MODEL_SPEC_VERSION 1
25399#define VK_QCOM_DATA_GRAPH_MODEL_EXTENSION_NAME "VK_QCOM_data_graph_model"
25400
25401typedef enum VkDataGraphModelCacheTypeQCOM {
25402 VK_DATA_GRAPH_MODEL_CACHE_TYPE_GENERIC_BINARY_QCOM = 0,
25403 VK_DATA_GRAPH_MODEL_CACHE_TYPE_MAX_ENUM_QCOM = 0x7FFFFFFF
25404} VkDataGraphModelCacheTypeQCOM;
25405typedef struct VkPipelineCacheHeaderVersionDataGraphQCOM {
25406 uint32_t headerSize;
25407 VkPipelineCacheHeaderVersion headerVersion;
25408 VkDataGraphModelCacheTypeQCOM cacheType;
25409 uint32_t cacheVersion;
25410 uint32_t toolchainVersion[VK_DATA_GRAPH_MODEL_TOOLCHAIN_VERSION_LENGTH_QCOM];
25411} VkPipelineCacheHeaderVersionDataGraphQCOM;
25412
25413typedef struct VkDataGraphPipelineBuiltinModelCreateInfoQCOM {
25414 VkStructureType sType;
25415 const void* pNext;
25416 const VkPhysicalDeviceDataGraphOperationSupportARM* pOperation;
25417} VkDataGraphPipelineBuiltinModelCreateInfoQCOM;
25418
25419typedef struct VkPhysicalDeviceDataGraphModelFeaturesQCOM {
25420 VkStructureType sType;
25421 void* pNext;
25422 VkBool32 dataGraphModel;
25423} VkPhysicalDeviceDataGraphModelFeaturesQCOM;
25424
25425
25426
25427// VK_ARM_data_graph_optical_flow is a preprocessor guard. Do not pass it to API calls.
25428#define VK_ARM_data_graph_optical_flow 1
25429#define VK_ARM_DATA_GRAPH_OPTICAL_FLOW_SPEC_VERSION 1
25430#define VK_ARM_DATA_GRAPH_OPTICAL_FLOW_EXTENSION_NAME "VK_ARM_data_graph_optical_flow"
25431
25432typedef enum VkDataGraphOpticalFlowPerformanceLevelARM {
25433 VK_DATA_GRAPH_OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_ARM = 0,
25434 VK_DATA_GRAPH_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_ARM = 1,
25435 VK_DATA_GRAPH_OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_ARM = 2,
25436 VK_DATA_GRAPH_OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_ARM = 3,
25437 VK_DATA_GRAPH_OPTICAL_FLOW_PERFORMANCE_LEVEL_MAX_ENUM_ARM = 0x7FFFFFFF
25438} VkDataGraphOpticalFlowPerformanceLevelARM;
25439
25440typedef enum VkDataGraphPipelineNodeTypeARM {
25441 VK_DATA_GRAPH_PIPELINE_NODE_TYPE_OPTICAL_FLOW_ARM = 1000631000,
25442 VK_DATA_GRAPH_PIPELINE_NODE_TYPE_MAX_ENUM_ARM = 0x7FFFFFFF
25443} VkDataGraphPipelineNodeTypeARM;
25444
25445typedef enum VkDataGraphPipelineNodeConnectionTypeARM {
25446 VK_DATA_GRAPH_PIPELINE_NODE_CONNECTION_TYPE_OPTICAL_FLOW_INPUT_ARM = 1000631000,
25447 VK_DATA_GRAPH_PIPELINE_NODE_CONNECTION_TYPE_OPTICAL_FLOW_REFERENCE_ARM = 1000631001,
25448 VK_DATA_GRAPH_PIPELINE_NODE_CONNECTION_TYPE_OPTICAL_FLOW_HINT_ARM = 1000631002,
25449 VK_DATA_GRAPH_PIPELINE_NODE_CONNECTION_TYPE_OPTICAL_FLOW_FLOW_VECTOR_ARM = 1000631003,
25450 VK_DATA_GRAPH_PIPELINE_NODE_CONNECTION_TYPE_OPTICAL_FLOW_COST_ARM = 1000631004,
25451 VK_DATA_GRAPH_PIPELINE_NODE_CONNECTION_TYPE_MAX_ENUM_ARM = 0x7FFFFFFF
25452} VkDataGraphPipelineNodeConnectionTypeARM;
25453
25454typedef enum VkDataGraphOpticalFlowGridSizeFlagBitsARM {
25455 VK_DATA_GRAPH_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_ARM = 0,
25456 VK_DATA_GRAPH_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_ARM = 0x00000001,
25457 VK_DATA_GRAPH_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_ARM = 0x00000002,
25458 VK_DATA_GRAPH_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_ARM = 0x00000004,
25459 VK_DATA_GRAPH_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_ARM = 0x00000008,
25460 VK_DATA_GRAPH_OPTICAL_FLOW_GRID_SIZE_FLAG_BITS_MAX_ENUM_ARM = 0x7FFFFFFF
25461} VkDataGraphOpticalFlowGridSizeFlagBitsARM;
25462typedef VkFlags VkDataGraphOpticalFlowGridSizeFlagsARM;
25463
25464typedef enum VkDataGraphOpticalFlowCreateFlagBitsARM {
25465 VK_DATA_GRAPH_OPTICAL_FLOW_CREATE_ENABLE_HINT_BIT_ARM = 0x00000001,
25466 VK_DATA_GRAPH_OPTICAL_FLOW_CREATE_ENABLE_COST_BIT_ARM = 0x00000002,
25467 VK_DATA_GRAPH_OPTICAL_FLOW_CREATE_RESERVED_30_BIT_ARM = 0x40000000,
25468 VK_DATA_GRAPH_OPTICAL_FLOW_CREATE_FLAG_BITS_MAX_ENUM_ARM = 0x7FFFFFFF
25469} VkDataGraphOpticalFlowCreateFlagBitsARM;
25470typedef VkFlags VkDataGraphOpticalFlowCreateFlagsARM;
25471
25472typedef enum VkDataGraphOpticalFlowImageUsageFlagBitsARM {
25473 VK_DATA_GRAPH_OPTICAL_FLOW_IMAGE_USAGE_UNKNOWN_ARM = 0,
25474 VK_DATA_GRAPH_OPTICAL_FLOW_IMAGE_USAGE_INPUT_BIT_ARM = 0x00000001,
25475 VK_DATA_GRAPH_OPTICAL_FLOW_IMAGE_USAGE_OUTPUT_BIT_ARM = 0x00000002,
25476 VK_DATA_GRAPH_OPTICAL_FLOW_IMAGE_USAGE_HINT_BIT_ARM = 0x00000004,
25477 VK_DATA_GRAPH_OPTICAL_FLOW_IMAGE_USAGE_COST_BIT_ARM = 0x00000008,
25478 VK_DATA_GRAPH_OPTICAL_FLOW_IMAGE_USAGE_FLAG_BITS_MAX_ENUM_ARM = 0x7FFFFFFF
25479} VkDataGraphOpticalFlowImageUsageFlagBitsARM;
25480typedef VkFlags VkDataGraphOpticalFlowImageUsageFlagsARM;
25481
25482typedef enum VkDataGraphOpticalFlowExecuteFlagBitsARM {
25483 VK_DATA_GRAPH_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_ARM = 0x00000001,
25484 VK_DATA_GRAPH_OPTICAL_FLOW_EXECUTE_INPUT_UNCHANGED_BIT_ARM = 0x00000002,
25485 VK_DATA_GRAPH_OPTICAL_FLOW_EXECUTE_REFERENCE_UNCHANGED_BIT_ARM = 0x00000004,
25486 VK_DATA_GRAPH_OPTICAL_FLOW_EXECUTE_INPUT_IS_PREVIOUS_REFERENCE_BIT_ARM = 0x00000008,
25487 VK_DATA_GRAPH_OPTICAL_FLOW_EXECUTE_REFERENCE_IS_PREVIOUS_INPUT_BIT_ARM = 0x00000010,
25488 VK_DATA_GRAPH_OPTICAL_FLOW_EXECUTE_FLAG_BITS_MAX_ENUM_ARM = 0x7FFFFFFF
25489} VkDataGraphOpticalFlowExecuteFlagBitsARM;
25490typedef VkFlags VkDataGraphOpticalFlowExecuteFlagsARM;
25491typedef struct VkPhysicalDeviceDataGraphOpticalFlowFeaturesARM {
25492 VkStructureType sType;
25493 void* pNext;
25494 VkBool32 dataGraphOpticalFlow;
25495} VkPhysicalDeviceDataGraphOpticalFlowFeaturesARM;
25496
25497typedef struct VkQueueFamilyDataGraphOpticalFlowPropertiesARM {
25498 VkStructureType sType;
25499 void* pNext;
25500 VkDataGraphOpticalFlowGridSizeFlagsARM supportedOutputGridSizes;
25501 VkDataGraphOpticalFlowGridSizeFlagsARM supportedHintGridSizes;
25502 VkBool32 hintSupported;
25503 VkBool32 costSupported;
25504 uint32_t minWidth;
25505 uint32_t minHeight;
25506 uint32_t maxWidth;
25507 uint32_t maxHeight;
25508} VkQueueFamilyDataGraphOpticalFlowPropertiesARM;
25509
25510typedef struct VkDataGraphPipelineOpticalFlowCreateInfoARM {
25511 VkStructureType sType;
25512 void* pNext;
25513 uint32_t width;
25514 uint32_t height;
25515 VkFormat imageFormat;
25516 VkFormat flowVectorFormat;
25517 VkFormat costFormat;
25518 VkDataGraphOpticalFlowGridSizeFlagsARM outputGridSize;
25519 VkDataGraphOpticalFlowGridSizeFlagsARM hintGridSize;
25520 VkDataGraphOpticalFlowPerformanceLevelARM performanceLevel;
25521 VkDataGraphOpticalFlowCreateFlagsARM flags;
25522} VkDataGraphPipelineOpticalFlowCreateInfoARM;
25523
25524typedef struct VkDataGraphOpticalFlowImageFormatPropertiesARM {
25525 VkStructureType sType;
25526 void* pNext;
25527 VkFormat format;
25528} VkDataGraphOpticalFlowImageFormatPropertiesARM;
25529
25530typedef struct VkDataGraphOpticalFlowImageFormatInfoARM {
25531 VkStructureType sType;
25532 const void* pNext;
25533 VkDataGraphOpticalFlowImageUsageFlagsARM usage;
25534} VkDataGraphOpticalFlowImageFormatInfoARM;
25535
25536typedef struct VkDataGraphPipelineOpticalFlowDispatchInfoARM {
25537 VkStructureType sType;
25538 void* pNext;
25539 VkDataGraphOpticalFlowExecuteFlagsARM flags;
25540 uint32_t meanFlowL1NormHint;
25541} VkDataGraphPipelineOpticalFlowDispatchInfoARM;
25542
25543typedef struct VkDataGraphPipelineResourceInfoImageLayoutARM {
25544 VkStructureType sType;
25545 const void* pNext;
25546 VkImageLayout layout;
25547} VkDataGraphPipelineResourceInfoImageLayoutARM;
25548
25549typedef struct VkDataGraphPipelineSingleNodeConnectionARM {
25550 VkStructureType sType;
25551 void* pNext;
25552 uint32_t set;
25553 uint32_t binding;
25554 VkDataGraphPipelineNodeConnectionTypeARM connection;
25555} VkDataGraphPipelineSingleNodeConnectionARM;
25556
25557typedef struct VkDataGraphPipelineSingleNodeCreateInfoARM {
25558 VkStructureType sType;
25559 void* pNext;
25560 VkDataGraphPipelineNodeTypeARM nodeType;
25561 uint32_t connectionCount;
25562 const VkDataGraphPipelineSingleNodeConnectionARM* pConnections;
25563} VkDataGraphPipelineSingleNodeCreateInfoARM;
25564
25565typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyDataGraphOpticalFlowImageFormatsARM)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, const VkQueueFamilyDataGraphPropertiesARM* pQueueFamilyDataGraphProperties, const VkDataGraphOpticalFlowImageFormatInfoARM* pOpticalFlowImageFormatInfo, uint32_t* pFormatCount, VkDataGraphOpticalFlowImageFormatPropertiesARM* pImageFormatProperties);
25566
25567#ifndef VK_NO_PROTOTYPES
25568#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25569VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceQueueFamilyDataGraphOpticalFlowImageFormatsARM(
25570 VkPhysicalDevice physicalDevice,
25571 uint32_t queueFamilyIndex,
25572 const VkQueueFamilyDataGraphPropertiesARM* pQueueFamilyDataGraphProperties,
25573 const VkDataGraphOpticalFlowImageFormatInfoARM* pOpticalFlowImageFormatInfo,
25574 uint32_t* pFormatCount,
25575 VkDataGraphOpticalFlowImageFormatPropertiesARM* pImageFormatProperties);
25576#endif
25577#endif
25578
25579
25580// VK_EXT_shader_long_vector is a preprocessor guard. Do not pass it to API calls.
25581#define VK_EXT_shader_long_vector 1
25582#define VK_EXT_SHADER_LONG_VECTOR_SPEC_VERSION 1
25583#define VK_EXT_SHADER_LONG_VECTOR_EXTENSION_NAME "VK_EXT_shader_long_vector"
25584typedef struct VkPhysicalDeviceShaderLongVectorFeaturesEXT {
25585 VkStructureType sType;
25586 void* pNext;
25587 VkBool32 longVector;
25588} VkPhysicalDeviceShaderLongVectorFeaturesEXT;
25589
25590typedef struct VkPhysicalDeviceShaderLongVectorPropertiesEXT {
25591 VkStructureType sType;
25592 void* pNext;
25593 uint32_t maxVectorComponents;
25594} VkPhysicalDeviceShaderLongVectorPropertiesEXT;
25595
25596
25597
25598// VK_SEC_pipeline_cache_incremental_mode is a preprocessor guard. Do not pass it to API calls.
25599#define VK_SEC_pipeline_cache_incremental_mode 1
25600#define VK_SEC_PIPELINE_CACHE_INCREMENTAL_MODE_SPEC_VERSION 1
25601#define VK_SEC_PIPELINE_CACHE_INCREMENTAL_MODE_EXTENSION_NAME "VK_SEC_pipeline_cache_incremental_mode"
25602typedef struct VkPhysicalDevicePipelineCacheIncrementalModeFeaturesSEC {
25603 VkStructureType sType;
25604 void* pNext;
25605 VkBool32 pipelineCacheIncrementalMode;
25606} VkPhysicalDevicePipelineCacheIncrementalModeFeaturesSEC;
25607
25608
25609
25610// VK_EXT_shader_uniform_buffer_unsized_array is a preprocessor guard. Do not pass it to API calls.
25611#define VK_EXT_shader_uniform_buffer_unsized_array 1
25612#define VK_EXT_SHADER_UNIFORM_BUFFER_UNSIZED_ARRAY_SPEC_VERSION 1
25613#define VK_EXT_SHADER_UNIFORM_BUFFER_UNSIZED_ARRAY_EXTENSION_NAME "VK_EXT_shader_uniform_buffer_unsized_array"
25614typedef struct VkPhysicalDeviceShaderUniformBufferUnsizedArrayFeaturesEXT {
25615 VkStructureType sType;
25616 void* pNext;
25617 VkBool32 shaderUniformBufferUnsizedArray;
25618} VkPhysicalDeviceShaderUniformBufferUnsizedArrayFeaturesEXT;
25619
25620
25621
25622// VK_NV_compute_occupancy_priority is a preprocessor guard. Do not pass it to API calls.
25623#define VK_NV_compute_occupancy_priority 1
25624#define VK_NV_COMPUTE_OCCUPANCY_PRIORITY_SPEC_VERSION 1
25625#define VK_NV_COMPUTE_OCCUPANCY_PRIORITY_EXTENSION_NAME "VK_NV_compute_occupancy_priority"
25626#define VK_COMPUTE_OCCUPANCY_PRIORITY_LOW_NV 0.25f
25627#define VK_COMPUTE_OCCUPANCY_PRIORITY_NORMAL_NV 0.50f
25628#define VK_COMPUTE_OCCUPANCY_PRIORITY_HIGH_NV 0.75f
25629typedef struct VkComputeOccupancyPriorityParametersNV {
25630 VkStructureType sType;
25631 const void* pNext;
25632 float occupancyPriority;
25633 float occupancyThrottling;
25634} VkComputeOccupancyPriorityParametersNV;
25635
25636typedef struct VkPhysicalDeviceComputeOccupancyPriorityFeaturesNV {
25637 VkStructureType sType;
25638 void* pNext;
25639 VkBool32 computeOccupancyPriority;
25640} VkPhysicalDeviceComputeOccupancyPriorityFeaturesNV;
25641
25642typedef void (VKAPI_PTR *PFN_vkCmdSetComputeOccupancyPriorityNV)(VkCommandBuffer commandBuffer, const VkComputeOccupancyPriorityParametersNV* pParameters);
25643
25644#ifndef VK_NO_PROTOTYPES
25645#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25646VKAPI_ATTR void VKAPI_CALL vkCmdSetComputeOccupancyPriorityNV(
25647 VkCommandBuffer commandBuffer,
25648 const VkComputeOccupancyPriorityParametersNV* pParameters);
25649#endif
25650#endif
25651
25652
25653// VK_EXT_shader_subgroup_partitioned is a preprocessor guard. Do not pass it to API calls.
25654#define VK_EXT_shader_subgroup_partitioned 1
25655#define VK_EXT_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION 1
25656#define VK_EXT_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME "VK_EXT_shader_subgroup_partitioned"
25657typedef struct VkPhysicalDeviceShaderSubgroupPartitionedFeaturesEXT {
25658 VkStructureType sType;
25659 void* pNext;
25660 VkBool32 shaderSubgroupPartitioned;
25661} VkPhysicalDeviceShaderSubgroupPartitionedFeaturesEXT;
25662
25663
25664
25665// VK_VALVE_shader_mixed_float_dot_product is a preprocessor guard. Do not pass it to API calls.
25666#define VK_VALVE_shader_mixed_float_dot_product 1
25667#define VK_VALVE_SHADER_MIXED_FLOAT_DOT_PRODUCT_SPEC_VERSION 1
25668#define VK_VALVE_SHADER_MIXED_FLOAT_DOT_PRODUCT_EXTENSION_NAME "VK_VALVE_shader_mixed_float_dot_product"
25669typedef struct VkPhysicalDeviceShaderMixedFloatDotProductFeaturesVALVE {
25670 VkStructureType sType;
25671 void* pNext;
25672 VkBool32 shaderMixedFloatDotProductFloat16AccFloat32;
25673 VkBool32 shaderMixedFloatDotProductFloat16AccFloat16;
25674 VkBool32 shaderMixedFloatDotProductBFloat16Acc;
25675 VkBool32 shaderMixedFloatDotProductFloat8AccFloat32;
25676} VkPhysicalDeviceShaderMixedFloatDotProductFeaturesVALVE;
25677
25678
25679
25680// VK_SEC_throttle_hint is a preprocessor guard. Do not pass it to API calls.
25681#define VK_SEC_throttle_hint 1
25682#define VK_SEC_THROTTLE_HINT_SPEC_VERSION 1
25683#define VK_SEC_THROTTLE_HINT_EXTENSION_NAME "VK_SEC_throttle_hint"
25684
25685typedef enum VkThrottleHintTypeSEC {
25686 VK_THROTTLE_HINT_TYPE_DEFAULT_SEC = 0,
25687 VK_THROTTLE_HINT_TYPE_LOW_SEC = 1,
25688 VK_THROTTLE_HINT_TYPE_HIGH_SEC = 2,
25689 VK_THROTTLE_HINT_TYPE_MAX_ENUM_SEC = 0x7FFFFFFF
25690} VkThrottleHintTypeSEC;
25691typedef struct VkThrottleHintSubmitInfoSEC {
25692 VkStructureType sType;
25693 const void* pNext;
25694 VkThrottleHintTypeSEC throttleHint;
25695} VkThrottleHintSubmitInfoSEC;
25696
25697typedef struct VkPhysicalDeviceThrottleHintFeaturesSEC {
25698 VkStructureType sType;
25699 void* pNext;
25700 VkBool32 throttleHint;
25701} VkPhysicalDeviceThrottleHintFeaturesSEC;
25702
25703
25704
25705// VK_ARM_data_graph_neural_accelerator_statistics is a preprocessor guard. Do not pass it to API calls.
25706#define VK_ARM_data_graph_neural_accelerator_statistics 1
25707#define VK_ARM_DATA_GRAPH_NEURAL_ACCELERATOR_STATISTICS_SPEC_VERSION 1
25708#define VK_ARM_DATA_GRAPH_NEURAL_ACCELERATOR_STATISTICS_EXTENSION_NAME "VK_ARM_data_graph_neural_accelerator_statistics"
25709
25710typedef enum VkNeuralAcceleratorStatisticsModeARM {
25711 VK_NEURAL_ACCELERATOR_STATISTICS_MODE_DISABLED_ARM = 0,
25712 VK_NEURAL_ACCELERATOR_STATISTICS_MODE_STATISTICS0_ARM = 1,
25713 VK_NEURAL_ACCELERATOR_STATISTICS_MODE_STATISTICS1_ARM = 2,
25714 VK_NEURAL_ACCELERATOR_STATISTICS_MODE_MAX_ENUM_ARM = 0x7FFFFFFF
25715} VkNeuralAcceleratorStatisticsModeARM;
25716typedef struct VkPhysicalDeviceDataGraphNeuralAcceleratorStatisticsFeaturesARM {
25717 VkStructureType sType;
25718 void* pNext;
25719 VkBool32 dataGraphNeuralAcceleratorStatistics;
25720} VkPhysicalDeviceDataGraphNeuralAcceleratorStatisticsFeaturesARM;
25721
25722typedef struct VkDataGraphPipelineNeuralStatisticsCreateInfoARM {
25723 VkStructureType sType;
25724 const void* pNext;
25725 VkBool32 allowNeuralStatistics;
25726} VkDataGraphPipelineNeuralStatisticsCreateInfoARM;
25727
25728typedef struct VkDataGraphPipelineSessionNeuralStatisticsCreateInfoARM {
25729 VkStructureType sType;
25730 const void* pNext;
25731 VkNeuralAcceleratorStatisticsModeARM mode;
25732} VkDataGraphPipelineSessionNeuralStatisticsCreateInfoARM;
25733
25734
25735
25736// VK_EXT_primitive_restart_index is a preprocessor guard. Do not pass it to API calls.
25737#define VK_EXT_primitive_restart_index 1
25738#define VK_EXT_PRIMITIVE_RESTART_INDEX_SPEC_VERSION 1
25739#define VK_EXT_PRIMITIVE_RESTART_INDEX_EXTENSION_NAME "VK_EXT_primitive_restart_index"
25740typedef struct VkPhysicalDevicePrimitiveRestartIndexFeaturesEXT {
25741 VkStructureType sType;
25742 void* pNext;
25743 VkBool32 primitiveRestartIndex;
25744} VkPhysicalDevicePrimitiveRestartIndexFeaturesEXT;
25745
25746typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveRestartIndexEXT)(VkCommandBuffer commandBuffer, uint32_t primitiveRestartIndex);
25747
25748#ifndef VK_NO_PROTOTYPES
25749#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25750VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveRestartIndexEXT(
25751 VkCommandBuffer commandBuffer,
25752 uint32_t primitiveRestartIndex);
25753#endif
25754#endif
25755
25756
25757// VK_KHR_acceleration_structure is a preprocessor guard. Do not pass it to API calls.
25758#define VK_KHR_acceleration_structure 1
25759#define VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION 13
25760#define VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME "VK_KHR_acceleration_structure"
25761
25762typedef enum VkBuildAccelerationStructureModeKHR {
25763 VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = 0,
25764 VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = 1,
25765 VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
25766} VkBuildAccelerationStructureModeKHR;
25767typedef struct VkAccelerationStructureBuildRangeInfoKHR {
25768 uint32_t primitiveCount;
25769 uint32_t primitiveOffset;
25770 uint32_t firstVertex;
25771 uint32_t transformOffset;
25772} VkAccelerationStructureBuildRangeInfoKHR;
25773
25774typedef struct VkAccelerationStructureGeometryTrianglesDataKHR {
25775 VkStructureType sType;
25776 const void* pNext;
25777 VkFormat vertexFormat;
25778 VkDeviceOrHostAddressConstKHR vertexData;
25779 VkDeviceSize vertexStride;
25780 uint32_t maxVertex;
25781 VkIndexType indexType;
25782 VkDeviceOrHostAddressConstKHR indexData;
25783 VkDeviceOrHostAddressConstKHR transformData;
25784} VkAccelerationStructureGeometryTrianglesDataKHR;
25785
25786typedef struct VkAccelerationStructureGeometryAabbsDataKHR {
25787 VkStructureType sType;
25788 const void* pNext;
25789 VkDeviceOrHostAddressConstKHR data;
25790 VkDeviceSize stride;
25791} VkAccelerationStructureGeometryAabbsDataKHR;
25792
25793typedef struct VkAccelerationStructureGeometryInstancesDataKHR {
25794 VkStructureType sType;
25795 const void* pNext;
25796 VkBool32 arrayOfPointers;
25797 VkDeviceOrHostAddressConstKHR data;
25798} VkAccelerationStructureGeometryInstancesDataKHR;
25799
25800typedef union VkAccelerationStructureGeometryDataKHR {
25801 VkAccelerationStructureGeometryTrianglesDataKHR triangles;
25802 VkAccelerationStructureGeometryAabbsDataKHR aabbs;
25803 VkAccelerationStructureGeometryInstancesDataKHR instances;
25804} VkAccelerationStructureGeometryDataKHR;
25805
25806typedef struct VkAccelerationStructureGeometryKHR {
25807 VkStructureType sType;
25808 const void* pNext;
25809 VkGeometryTypeKHR geometryType;
25810 VkAccelerationStructureGeometryDataKHR geometry;
25811 VkGeometryFlagsKHR flags;
25812} VkAccelerationStructureGeometryKHR;
25813
25814typedef struct VkAccelerationStructureBuildGeometryInfoKHR {
25815 VkStructureType sType;
25816 const void* pNext;
25817 VkAccelerationStructureTypeKHR type;
25818 VkBuildAccelerationStructureFlagsKHR flags;
25819 VkBuildAccelerationStructureModeKHR mode;
25820 VkAccelerationStructureKHR srcAccelerationStructure;
25821 VkAccelerationStructureKHR dstAccelerationStructure;
25822 uint32_t geometryCount;
25823 const VkAccelerationStructureGeometryKHR* pGeometries;
25824 const VkAccelerationStructureGeometryKHR* const* ppGeometries;
25825 VkDeviceOrHostAddressKHR scratchData;
25826} VkAccelerationStructureBuildGeometryInfoKHR;
25827
25828typedef struct VkAccelerationStructureCreateInfoKHR {
25829 VkStructureType sType;
25830 const void* pNext;
25831 VkAccelerationStructureCreateFlagsKHR createFlags;
25832 VkBuffer buffer;
25833 VkDeviceSize offset;
25834 VkDeviceSize size;
25835 VkAccelerationStructureTypeKHR type;
25836 VkDeviceAddress deviceAddress;
25837} VkAccelerationStructureCreateInfoKHR;
25838
25839typedef struct VkWriteDescriptorSetAccelerationStructureKHR {
25840 VkStructureType sType;
25841 const void* pNext;
25842 uint32_t accelerationStructureCount;
25843 const VkAccelerationStructureKHR* pAccelerationStructures;
25844} VkWriteDescriptorSetAccelerationStructureKHR;
25845
25846typedef struct VkPhysicalDeviceAccelerationStructureFeaturesKHR {
25847 VkStructureType sType;
25848 void* pNext;
25849 VkBool32 accelerationStructure;
25850 VkBool32 accelerationStructureCaptureReplay;
25851 VkBool32 accelerationStructureIndirectBuild;
25852 VkBool32 accelerationStructureHostCommands;
25853 VkBool32 descriptorBindingAccelerationStructureUpdateAfterBind;
25854} VkPhysicalDeviceAccelerationStructureFeaturesKHR;
25855
25856typedef struct VkPhysicalDeviceAccelerationStructurePropertiesKHR {
25857 VkStructureType sType;
25858 void* pNext;
25859 uint64_t maxGeometryCount;
25860 uint64_t maxInstanceCount;
25861 uint64_t maxPrimitiveCount;
25862 uint32_t maxPerStageDescriptorAccelerationStructures;
25863 uint32_t maxPerStageDescriptorUpdateAfterBindAccelerationStructures;
25864 uint32_t maxDescriptorSetAccelerationStructures;
25865 uint32_t maxDescriptorSetUpdateAfterBindAccelerationStructures;
25866 uint32_t minAccelerationStructureScratchOffsetAlignment;
25867} VkPhysicalDeviceAccelerationStructurePropertiesKHR;
25868
25869typedef struct VkAccelerationStructureDeviceAddressInfoKHR {
25870 VkStructureType sType;
25871 const void* pNext;
25872 VkAccelerationStructureKHR accelerationStructure;
25873} VkAccelerationStructureDeviceAddressInfoKHR;
25874
25875typedef struct VkAccelerationStructureVersionInfoKHR {
25876 VkStructureType sType;
25877 const void* pNext;
25878 const uint8_t* pVersionData;
25879} VkAccelerationStructureVersionInfoKHR;
25880
25881typedef struct VkCopyAccelerationStructureToMemoryInfoKHR {
25882 VkStructureType sType;
25883 const void* pNext;
25884 VkAccelerationStructureKHR src;
25885 VkDeviceOrHostAddressKHR dst;
25886 VkCopyAccelerationStructureModeKHR mode;
25887} VkCopyAccelerationStructureToMemoryInfoKHR;
25888
25889typedef struct VkCopyMemoryToAccelerationStructureInfoKHR {
25890 VkStructureType sType;
25891 const void* pNext;
25892 VkDeviceOrHostAddressConstKHR src;
25893 VkAccelerationStructureKHR dst;
25894 VkCopyAccelerationStructureModeKHR mode;
25895} VkCopyMemoryToAccelerationStructureInfoKHR;
25896
25897typedef struct VkCopyAccelerationStructureInfoKHR {
25898 VkStructureType sType;
25899 const void* pNext;
25900 VkAccelerationStructureKHR src;
25901 VkAccelerationStructureKHR dst;
25902 VkCopyAccelerationStructureModeKHR mode;
25903} VkCopyAccelerationStructureInfoKHR;
25904
25905typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureKHR)(VkDevice device, const VkAccelerationStructureCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureKHR* pAccelerationStructure);
25906typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureKHR)(VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator);
25907typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructuresKHR)(VkCommandBuffer commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
25908typedef 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);
25909typedef VkResult (VKAPI_PTR *PFN_vkBuildAccelerationStructuresKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
25910typedef VkResult (VKAPI_PTR *PFN_vkCopyAccelerationStructureKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureInfoKHR* pInfo);
25911typedef VkResult (VKAPI_PTR *PFN_vkCopyAccelerationStructureToMemoryKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
25912typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToAccelerationStructureKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
25913typedef VkResult (VKAPI_PTR *PFN_vkWriteAccelerationStructuresPropertiesKHR)(VkDevice device, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, size_t dataSize, void* pData, size_t stride);
25914typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo);
25915typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureToMemoryKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
25916typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
25917typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetAccelerationStructureDeviceAddressKHR)(VkDevice device, const VkAccelerationStructureDeviceAddressInfoKHR* pInfo);
25918typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesKHR)(VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
25919typedef void (VKAPI_PTR *PFN_vkGetDeviceAccelerationStructureCompatibilityKHR)(VkDevice device, const VkAccelerationStructureVersionInfoKHR* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility);
25920typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureBuildSizesKHR)(VkDevice device, VkAccelerationStructureBuildTypeKHR buildType, const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo, const uint32_t* pMaxPrimitiveCounts, VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo);
25921
25922#ifndef VK_NO_PROTOTYPES
25923#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25924VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureKHR(
25925 VkDevice device,
25926 const VkAccelerationStructureCreateInfoKHR* pCreateInfo,
25927 const VkAllocationCallbacks* pAllocator,
25928 VkAccelerationStructureKHR* pAccelerationStructure);
25929#endif
25930
25931#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25932VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureKHR(
25933 VkDevice device,
25934 VkAccelerationStructureKHR accelerationStructure,
25935 const VkAllocationCallbacks* pAllocator);
25936#endif
25937
25938#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25939VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructuresKHR(
25940 VkCommandBuffer commandBuffer,
25941 uint32_t infoCount,
25942 const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
25943 const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
25944#endif
25945
25946#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25947VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructuresIndirectKHR(
25948 VkCommandBuffer commandBuffer,
25949 uint32_t infoCount,
25950 const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
25951 const VkDeviceAddress* pIndirectDeviceAddresses,
25952 const uint32_t* pIndirectStrides,
25953 const uint32_t* const* ppMaxPrimitiveCounts);
25954#endif
25955
25956#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25957VKAPI_ATTR VkResult VKAPI_CALL vkBuildAccelerationStructuresKHR(
25958 VkDevice device,
25959 VkDeferredOperationKHR deferredOperation,
25960 uint32_t infoCount,
25961 const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
25962 const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
25963#endif
25964
25965#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25966VKAPI_ATTR VkResult VKAPI_CALL vkCopyAccelerationStructureKHR(
25967 VkDevice device,
25968 VkDeferredOperationKHR deferredOperation,
25969 const VkCopyAccelerationStructureInfoKHR* pInfo);
25970#endif
25971
25972#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25973VKAPI_ATTR VkResult VKAPI_CALL vkCopyAccelerationStructureToMemoryKHR(
25974 VkDevice device,
25975 VkDeferredOperationKHR deferredOperation,
25976 const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
25977#endif
25978
25979#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25980VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToAccelerationStructureKHR(
25981 VkDevice device,
25982 VkDeferredOperationKHR deferredOperation,
25983 const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
25984#endif
25985
25986#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25987VKAPI_ATTR VkResult VKAPI_CALL vkWriteAccelerationStructuresPropertiesKHR(
25988 VkDevice device,
25989 uint32_t accelerationStructureCount,
25990 const VkAccelerationStructureKHR* pAccelerationStructures,
25991 VkQueryType queryType,
25992 size_t dataSize,
25993 void* pData,
25994 size_t stride);
25995#endif
25996
25997#ifndef VK_ONLY_EXPORTED_PROTOTYPES
25998VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureKHR(
25999 VkCommandBuffer commandBuffer,
26000 const VkCopyAccelerationStructureInfoKHR* pInfo);
26001#endif
26002
26003#ifndef VK_ONLY_EXPORTED_PROTOTYPES
26004VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureToMemoryKHR(
26005 VkCommandBuffer commandBuffer,
26006 const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
26007#endif
26008
26009#ifndef VK_ONLY_EXPORTED_PROTOTYPES
26010VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToAccelerationStructureKHR(
26011 VkCommandBuffer commandBuffer,
26012 const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
26013#endif
26014
26015#ifndef VK_ONLY_EXPORTED_PROTOTYPES
26016VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetAccelerationStructureDeviceAddressKHR(
26017 VkDevice device,
26018 const VkAccelerationStructureDeviceAddressInfoKHR* pInfo);
26019#endif
26020
26021#ifndef VK_ONLY_EXPORTED_PROTOTYPES
26022VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructuresPropertiesKHR(
26023 VkCommandBuffer commandBuffer,
26024 uint32_t accelerationStructureCount,
26025 const VkAccelerationStructureKHR* pAccelerationStructures,
26026 VkQueryType queryType,
26027 VkQueryPool queryPool,
26028 uint32_t firstQuery);
26029#endif
26030
26031#ifndef VK_ONLY_EXPORTED_PROTOTYPES
26032VKAPI_ATTR void VKAPI_CALL vkGetDeviceAccelerationStructureCompatibilityKHR(
26033 VkDevice device,
26034 const VkAccelerationStructureVersionInfoKHR* pVersionInfo,
26035 VkAccelerationStructureCompatibilityKHR* pCompatibility);
26036#endif
26037
26038#ifndef VK_ONLY_EXPORTED_PROTOTYPES
26039VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureBuildSizesKHR(
26040 VkDevice device,
26041 VkAccelerationStructureBuildTypeKHR buildType,
26042 const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo,
26043 const uint32_t* pMaxPrimitiveCounts,
26044 VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo);
26045#endif
26046#endif
26047
26048
26049// VK_KHR_ray_tracing_pipeline is a preprocessor guard. Do not pass it to API calls.
26050#define VK_KHR_ray_tracing_pipeline 1
26051#define VK_KHR_RAY_TRACING_PIPELINE_SPEC_VERSION 1
26052#define VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME "VK_KHR_ray_tracing_pipeline"
26053
26054typedef enum VkShaderGroupShaderKHR {
26055 VK_SHADER_GROUP_SHADER_GENERAL_KHR = 0,
26056 VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR = 1,
26057 VK_SHADER_GROUP_SHADER_ANY_HIT_KHR = 2,
26058 VK_SHADER_GROUP_SHADER_INTERSECTION_KHR = 3,
26059 VK_SHADER_GROUP_SHADER_MAX_ENUM_KHR = 0x7FFFFFFF
26060} VkShaderGroupShaderKHR;
26061typedef struct VkRayTracingShaderGroupCreateInfoKHR {
26062 VkStructureType sType;
26063 const void* pNext;
26064 VkRayTracingShaderGroupTypeKHR type;
26065 uint32_t generalShader;
26066 uint32_t closestHitShader;
26067 uint32_t anyHitShader;
26068 uint32_t intersectionShader;
26069 const void* pShaderGroupCaptureReplayHandle;
26070} VkRayTracingShaderGroupCreateInfoKHR;
26071
26072typedef struct VkRayTracingPipelineInterfaceCreateInfoKHR {
26073 VkStructureType sType;
26074 const void* pNext;
26075 uint32_t maxPipelineRayPayloadSize;
26076 uint32_t maxPipelineRayHitAttributeSize;
26077} VkRayTracingPipelineInterfaceCreateInfoKHR;
26078
26079typedef struct VkRayTracingPipelineCreateInfoKHR {
26080 VkStructureType sType;
26081 const void* pNext;
26082 VkPipelineCreateFlags flags;
26083 uint32_t stageCount;
26084 const VkPipelineShaderStageCreateInfo* pStages;
26085 uint32_t groupCount;
26086 const VkRayTracingShaderGroupCreateInfoKHR* pGroups;
26087 uint32_t maxPipelineRayRecursionDepth;
26088 const VkPipelineLibraryCreateInfoKHR* pLibraryInfo;
26089 const VkRayTracingPipelineInterfaceCreateInfoKHR* pLibraryInterface;
26090 const VkPipelineDynamicStateCreateInfo* pDynamicState;
26091 VkPipelineLayout layout;
26092 VkPipeline basePipelineHandle;
26093 int32_t basePipelineIndex;
26094} VkRayTracingPipelineCreateInfoKHR;
26095
26096typedef struct VkPhysicalDeviceRayTracingPipelineFeaturesKHR {
26097 VkStructureType sType;
26098 void* pNext;
26099 VkBool32 rayTracingPipeline;
26100 VkBool32 rayTracingPipelineShaderGroupHandleCaptureReplay;
26101 VkBool32 rayTracingPipelineShaderGroupHandleCaptureReplayMixed;
26102 VkBool32 rayTracingPipelineTraceRaysIndirect;
26103 VkBool32 rayTraversalPrimitiveCulling;
26104} VkPhysicalDeviceRayTracingPipelineFeaturesKHR;
26105
26106typedef struct VkPhysicalDeviceRayTracingPipelinePropertiesKHR {
26107 VkStructureType sType;
26108 void* pNext;
26109 uint32_t shaderGroupHandleSize;
26110 uint32_t maxRayRecursionDepth;
26111 uint32_t maxShaderGroupStride;
26112 uint32_t shaderGroupBaseAlignment;
26113 uint32_t shaderGroupHandleCaptureReplaySize;
26114 uint32_t maxRayDispatchInvocationCount;
26115 uint32_t shaderGroupHandleAlignment;
26116 uint32_t maxRayHitAttributeSize;
26117} VkPhysicalDeviceRayTracingPipelinePropertiesKHR;
26118
26119typedef struct VkTraceRaysIndirectCommandKHR {
26120 uint32_t width;
26121 uint32_t height;
26122 uint32_t depth;
26123} VkTraceRaysIndirectCommandKHR;
26124
26125typedef 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);
26126typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
26127typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
26128typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysIndirectKHR)(VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, VkDeviceAddress indirectDeviceAddress);
26129typedef VkDeviceSize (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupStackSizeKHR)(VkDevice device, VkPipeline pipeline, uint32_t group, VkShaderGroupShaderKHR groupShader);
26130typedef void (VKAPI_PTR *PFN_vkCmdSetRayTracingPipelineStackSizeKHR)(VkCommandBuffer commandBuffer, uint32_t pipelineStackSize);
26131
26132#ifndef VK_NO_PROTOTYPES
26133#ifndef VK_ONLY_EXPORTED_PROTOTYPES
26134VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysKHR(
26135 VkCommandBuffer commandBuffer,
26136 const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable,
26137 const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable,
26138 const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable,
26139 const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable,
26140 uint32_t width,
26141 uint32_t height,
26142 uint32_t depth);
26143#endif
26144
26145#ifndef VK_ONLY_EXPORTED_PROTOTYPES
26146VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesKHR(
26147 VkDevice device,
26148 VkDeferredOperationKHR deferredOperation,
26149 VkPipelineCache pipelineCache,
26150 uint32_t createInfoCount,
26151 const VkRayTracingPipelineCreateInfoKHR* pCreateInfos,
26152 const VkAllocationCallbacks* pAllocator,
26153 VkPipeline* pPipelines);
26154#endif
26155
26156#ifndef VK_ONLY_EXPORTED_PROTOTYPES
26157VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(
26158 VkDevice device,
26159 VkPipeline pipeline,
26160 uint32_t firstGroup,
26161 uint32_t groupCount,
26162 size_t dataSize,
26163 void* pData);
26164#endif
26165
26166#ifndef VK_ONLY_EXPORTED_PROTOTYPES
26167VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysIndirectKHR(
26168 VkCommandBuffer commandBuffer,
26169 const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable,
26170 const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable,
26171 const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable,
26172 const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable,
26173 VkDeviceAddress indirectDeviceAddress);
26174#endif
26175
26176#ifndef VK_ONLY_EXPORTED_PROTOTYPES
26177VKAPI_ATTR VkDeviceSize VKAPI_CALL vkGetRayTracingShaderGroupStackSizeKHR(
26178 VkDevice device,
26179 VkPipeline pipeline,
26180 uint32_t group,
26181 VkShaderGroupShaderKHR groupShader);
26182#endif
26183
26184#ifndef VK_ONLY_EXPORTED_PROTOTYPES
26185VKAPI_ATTR void VKAPI_CALL vkCmdSetRayTracingPipelineStackSizeKHR(
26186 VkCommandBuffer commandBuffer,
26187 uint32_t pipelineStackSize);
26188#endif
26189#endif
26190
26191
26192// VK_KHR_ray_query is a preprocessor guard. Do not pass it to API calls.
26193#define VK_KHR_ray_query 1
26194#define VK_KHR_RAY_QUERY_SPEC_VERSION 1
26195#define VK_KHR_RAY_QUERY_EXTENSION_NAME "VK_KHR_ray_query"
26196typedef struct VkPhysicalDeviceRayQueryFeaturesKHR {
26197 VkStructureType sType;
26198 void* pNext;
26199 VkBool32 rayQuery;
26200} VkPhysicalDeviceRayQueryFeaturesKHR;
26201
26202
26203
26204// VK_EXT_mesh_shader is a preprocessor guard. Do not pass it to API calls.
26205#define VK_EXT_mesh_shader 1
26206#define VK_EXT_MESH_SHADER_SPEC_VERSION 1
26207#define VK_EXT_MESH_SHADER_EXTENSION_NAME "VK_EXT_mesh_shader"
26208typedef struct VkPhysicalDeviceMeshShaderFeaturesEXT {
26209 VkStructureType sType;
26210 void* pNext;
26211 VkBool32 taskShader;
26212 VkBool32 meshShader;
26213 VkBool32 multiviewMeshShader;
26214 VkBool32 primitiveFragmentShadingRateMeshShader;
26215 VkBool32 meshShaderQueries;
26216} VkPhysicalDeviceMeshShaderFeaturesEXT;
26217
26218typedef struct VkPhysicalDeviceMeshShaderPropertiesEXT {
26219 VkStructureType sType;
26220 void* pNext;
26221 uint32_t maxTaskWorkGroupTotalCount;
26222 uint32_t maxTaskWorkGroupCount[3];
26223 uint32_t maxTaskWorkGroupInvocations;
26224 uint32_t maxTaskWorkGroupSize[3];
26225 uint32_t maxTaskPayloadSize;
26226 uint32_t maxTaskSharedMemorySize;
26227 uint32_t maxTaskPayloadAndSharedMemorySize;
26228 uint32_t maxMeshWorkGroupTotalCount;
26229 uint32_t maxMeshWorkGroupCount[3];
26230 uint32_t maxMeshWorkGroupInvocations;
26231 uint32_t maxMeshWorkGroupSize[3];
26232 uint32_t maxMeshSharedMemorySize;
26233 uint32_t maxMeshPayloadAndSharedMemorySize;
26234 uint32_t maxMeshOutputMemorySize;
26235 uint32_t maxMeshPayloadAndOutputMemorySize;
26236 uint32_t maxMeshOutputComponents;
26237 uint32_t maxMeshOutputVertices;
26238 uint32_t maxMeshOutputPrimitives;
26239 uint32_t maxMeshOutputLayers;
26240 uint32_t maxMeshMultiviewViewCount;
26241 uint32_t meshOutputPerVertexGranularity;
26242 uint32_t meshOutputPerPrimitiveGranularity;
26243 uint32_t maxPreferredTaskWorkGroupInvocations;
26244 uint32_t maxPreferredMeshWorkGroupInvocations;
26245 VkBool32 prefersLocalInvocationVertexOutput;
26246 VkBool32 prefersLocalInvocationPrimitiveOutput;
26247 VkBool32 prefersCompactVertexOutput;
26248 VkBool32 prefersCompactPrimitiveOutput;
26249} VkPhysicalDeviceMeshShaderPropertiesEXT;
26250
26251typedef struct VkDrawMeshTasksIndirectCommandEXT {
26252 uint32_t groupCountX;
26253 uint32_t groupCountY;
26254 uint32_t groupCountZ;
26255} VkDrawMeshTasksIndirectCommandEXT;
26256
26257typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksEXT)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
26258typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectEXT)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
26259typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectCountEXT)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
26260
26261#ifndef VK_NO_PROTOTYPES
26262#ifndef VK_ONLY_EXPORTED_PROTOTYPES
26263VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksEXT(
26264 VkCommandBuffer commandBuffer,
26265 uint32_t groupCountX,
26266 uint32_t groupCountY,
26267 uint32_t groupCountZ);
26268#endif
26269
26270#ifndef VK_ONLY_EXPORTED_PROTOTYPES
26271VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectEXT(
26272 VkCommandBuffer commandBuffer,
26273 VkBuffer buffer,
26274 VkDeviceSize offset,
26275 uint32_t drawCount,
26276 uint32_t stride);
26277#endif
26278
26279#ifndef VK_ONLY_EXPORTED_PROTOTYPES
26280VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectCountEXT(
26281 VkCommandBuffer commandBuffer,
26282 VkBuffer buffer,
26283 VkDeviceSize offset,
26284 VkBuffer countBuffer,
26285 VkDeviceSize countBufferOffset,
26286 uint32_t maxDrawCount,
26287 uint32_t stride);
26288#endif
26289#endif
26290
26291#ifdef __cplusplus
26292}
26293#endif
26294
26295#endif
26296