1#ifndef VULKAN_CORE_H_
2#define VULKAN_CORE_H_ 1
3
4/*
5** Copyright 2015-2025 The Khronos Group Inc.
6**
7** SPDX-License-Identifier: Apache-2.0
8*/
9
10/*
11** This header is generated from the Khronos Vulkan XML API Registry.
12**
13*/
14
15
16#ifdef __cplusplus
17extern "C" {
18#endif
19
20
21
22// VK_VERSION_1_0 is a preprocessor guard. Do not pass it to API calls.
23#define VK_VERSION_1_0 1
24#include "vk_platform.h"
25
26#define VK_DEFINE_HANDLE(object) typedef struct object##_T* object;
27
28
29#ifndef VK_USE_64_BIT_PTR_DEFINES
30 #if defined(__LP64__) || defined(_WIN64) || (defined(__x86_64__) && !defined(__ILP32__) ) || defined(_M_X64) || defined(__ia64) || defined (_M_IA64) || defined(__aarch64__) || defined(__powerpc64__) || (defined(__riscv) && __riscv_xlen == 64)
31 #define VK_USE_64_BIT_PTR_DEFINES 1
32 #else
33 #define VK_USE_64_BIT_PTR_DEFINES 0
34 #endif
35#endif
36
37
38#ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE
39 #if (VK_USE_64_BIT_PTR_DEFINES==1)
40 #if (defined(__cplusplus) && (__cplusplus >= 201103L)) || (defined(_MSVC_LANG) && (_MSVC_LANG >= 201103L))
41 #define VK_NULL_HANDLE nullptr
42 #else
43 #define VK_NULL_HANDLE ((void*)0)
44 #endif
45 #else
46 #define VK_NULL_HANDLE 0ULL
47 #endif
48#endif
49#ifndef VK_NULL_HANDLE
50 #define VK_NULL_HANDLE 0
51#endif
52
53
54#ifndef VK_DEFINE_NON_DISPATCHABLE_HANDLE
55 #if (VK_USE_64_BIT_PTR_DEFINES==1)
56 #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef struct object##_T *object;
57 #else
58 #define VK_DEFINE_NON_DISPATCHABLE_HANDLE(object) typedef uint64_t object;
59 #endif
60#endif
61
62#define VK_MAKE_API_VERSION(variant, major, minor, patch) \
63 ((((uint32_t)(variant)) << 29U) | (((uint32_t)(major)) << 22U) | (((uint32_t)(minor)) << 12U) | ((uint32_t)(patch)))
64
65
66//#define VK_API_VERSION VK_MAKE_API_VERSION(0, 1, 0, 0) // Patch version should always be set to 0
67
68// Vulkan 1.0 version number
69#define VK_API_VERSION_1_0 VK_MAKE_API_VERSION(0, 1, 0, 0)// Patch version should always be set to 0
70
71// Version of this file
72#define VK_HEADER_VERSION 328
73
74// Complete version of this file
75#define VK_HEADER_VERSION_COMPLETE VK_MAKE_API_VERSION(0, 1, 4, VK_HEADER_VERSION)
76
77
78#define VK_MAKE_VERSION(major, minor, patch) \
79 ((((uint32_t)(major)) << 22U) | (((uint32_t)(minor)) << 12U) | ((uint32_t)(patch)))
80
81
82#define VK_VERSION_MAJOR(version) ((uint32_t)(version) >> 22U)
83
84
85#define VK_VERSION_MINOR(version) (((uint32_t)(version) >> 12U) & 0x3FFU)
86
87
88#define VK_VERSION_PATCH(version) ((uint32_t)(version) & 0xFFFU)
89
90#define VK_API_VERSION_VARIANT(version) ((uint32_t)(version) >> 29U)
91#define VK_API_VERSION_MAJOR(version) (((uint32_t)(version) >> 22U) & 0x7FU)
92#define VK_API_VERSION_MINOR(version) (((uint32_t)(version) >> 12U) & 0x3FFU)
93#define VK_API_VERSION_PATCH(version) ((uint32_t)(version) & 0xFFFU)
94typedef uint32_t VkBool32;
95typedef uint64_t VkDeviceAddress;
96typedef uint64_t VkDeviceSize;
97typedef uint32_t VkFlags;
98typedef uint32_t VkSampleMask;
99VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBuffer)
100VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImage)
101VK_DEFINE_HANDLE(VkInstance)
102VK_DEFINE_HANDLE(VkPhysicalDevice)
103VK_DEFINE_HANDLE(VkDevice)
104VK_DEFINE_HANDLE(VkQueue)
105VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSemaphore)
106VK_DEFINE_HANDLE(VkCommandBuffer)
107VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFence)
108VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeviceMemory)
109VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkEvent)
110VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkQueryPool)
111VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkBufferView)
112VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkImageView)
113VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderModule)
114VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineCache)
115VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineLayout)
116VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipeline)
117VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkRenderPass)
118VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSetLayout)
119VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSampler)
120VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorSet)
121VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorPool)
122VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkFramebuffer)
123VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCommandPool)
124#define VK_ATTACHMENT_UNUSED (~0U)
125#define VK_FALSE 0U
126#define VK_LOD_CLAMP_NONE 1000.0F
127#define VK_QUEUE_FAMILY_IGNORED (~0U)
128#define VK_REMAINING_ARRAY_LAYERS (~0U)
129#define VK_REMAINING_MIP_LEVELS (~0U)
130#define VK_SUBPASS_EXTERNAL (~0U)
131#define VK_TRUE 1U
132#define VK_WHOLE_SIZE (~0ULL)
133#define VK_MAX_MEMORY_TYPES 32U
134#define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE 256U
135#define VK_UUID_SIZE 16U
136#define VK_MAX_EXTENSION_NAME_SIZE 256U
137#define VK_MAX_DESCRIPTION_SIZE 256U
138#define VK_MAX_MEMORY_HEAPS 16U
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_FRAGMENTATION = -1000161000,
164 VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS = -1000257000,
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_FULL_SCREEN_EXCLUSIVE_MODE_LOST_EXT = -1000255000,
181 VK_THREAD_IDLE_KHR = 1000268000,
182 VK_THREAD_DONE_KHR = 1000268001,
183 VK_OPERATION_DEFERRED_KHR = 1000268002,
184 VK_OPERATION_NOT_DEFERRED_KHR = 1000268003,
185 VK_ERROR_INVALID_VIDEO_STD_PARAMETERS_KHR = -1000299000,
186 VK_ERROR_COMPRESSION_EXHAUSTED_EXT = -1000338000,
187 VK_INCOMPATIBLE_SHADER_BINARY_EXT = 1000482000,
188 VK_PIPELINE_BINARY_MISSING_KHR = 1000483000,
189 VK_ERROR_NOT_ENOUGH_SPACE_KHR = -1000483000,
190 VK_ERROR_VALIDATION_FAILED_EXT = VK_ERROR_VALIDATION_FAILED,
191 VK_ERROR_OUT_OF_POOL_MEMORY_KHR = VK_ERROR_OUT_OF_POOL_MEMORY,
192 VK_ERROR_INVALID_EXTERNAL_HANDLE_KHR = VK_ERROR_INVALID_EXTERNAL_HANDLE,
193 VK_ERROR_FRAGMENTATION_EXT = VK_ERROR_FRAGMENTATION,
194 VK_ERROR_NOT_PERMITTED_EXT = VK_ERROR_NOT_PERMITTED,
195 VK_ERROR_NOT_PERMITTED_KHR = VK_ERROR_NOT_PERMITTED,
196 VK_ERROR_INVALID_DEVICE_ADDRESS_EXT = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
197 VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS_KHR = VK_ERROR_INVALID_OPAQUE_CAPTURE_ADDRESS,
198 VK_PIPELINE_COMPILE_REQUIRED_EXT = VK_PIPELINE_COMPILE_REQUIRED,
199 VK_ERROR_PIPELINE_COMPILE_REQUIRED_EXT = VK_PIPELINE_COMPILE_REQUIRED,
200 // VK_ERROR_INCOMPATIBLE_SHADER_BINARY_EXT is a deprecated alias
201 VK_ERROR_INCOMPATIBLE_SHADER_BINARY_EXT = VK_INCOMPATIBLE_SHADER_BINARY_EXT,
202 VK_RESULT_MAX_ENUM = 0x7FFFFFFF
203} VkResult;
204
205typedef enum VkStructureType {
206 VK_STRUCTURE_TYPE_APPLICATION_INFO = 0,
207 VK_STRUCTURE_TYPE_INSTANCE_CREATE_INFO = 1,
208 VK_STRUCTURE_TYPE_DEVICE_QUEUE_CREATE_INFO = 2,
209 VK_STRUCTURE_TYPE_DEVICE_CREATE_INFO = 3,
210 VK_STRUCTURE_TYPE_SUBMIT_INFO = 4,
211 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_INFO = 5,
212 VK_STRUCTURE_TYPE_MAPPED_MEMORY_RANGE = 6,
213 VK_STRUCTURE_TYPE_BIND_SPARSE_INFO = 7,
214 VK_STRUCTURE_TYPE_FENCE_CREATE_INFO = 8,
215 VK_STRUCTURE_TYPE_SEMAPHORE_CREATE_INFO = 9,
216 VK_STRUCTURE_TYPE_EVENT_CREATE_INFO = 10,
217 VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO = 11,
218 VK_STRUCTURE_TYPE_BUFFER_CREATE_INFO = 12,
219 VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO = 13,
220 VK_STRUCTURE_TYPE_IMAGE_CREATE_INFO = 14,
221 VK_STRUCTURE_TYPE_IMAGE_VIEW_CREATE_INFO = 15,
222 VK_STRUCTURE_TYPE_SHADER_MODULE_CREATE_INFO = 16,
223 VK_STRUCTURE_TYPE_PIPELINE_CACHE_CREATE_INFO = 17,
224 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_CREATE_INFO = 18,
225 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_STATE_CREATE_INFO = 19,
226 VK_STRUCTURE_TYPE_PIPELINE_INPUT_ASSEMBLY_STATE_CREATE_INFO = 20,
227 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_STATE_CREATE_INFO = 21,
228 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_STATE_CREATE_INFO = 22,
229 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_CREATE_INFO = 23,
230 VK_STRUCTURE_TYPE_PIPELINE_MULTISAMPLE_STATE_CREATE_INFO = 24,
231 VK_STRUCTURE_TYPE_PIPELINE_DEPTH_STENCIL_STATE_CREATE_INFO = 25,
232 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO = 26,
233 VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO = 27,
234 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO = 28,
235 VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_CREATE_INFO = 29,
236 VK_STRUCTURE_TYPE_PIPELINE_LAYOUT_CREATE_INFO = 30,
237 VK_STRUCTURE_TYPE_SAMPLER_CREATE_INFO = 31,
238 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_CREATE_INFO = 32,
239 VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO = 33,
240 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_ALLOCATE_INFO = 34,
241 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET = 35,
242 VK_STRUCTURE_TYPE_COPY_DESCRIPTOR_SET = 36,
243 VK_STRUCTURE_TYPE_FRAMEBUFFER_CREATE_INFO = 37,
244 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO = 38,
245 VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO = 39,
246 VK_STRUCTURE_TYPE_COMMAND_BUFFER_ALLOCATE_INFO = 40,
247 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_INFO = 41,
248 VK_STRUCTURE_TYPE_COMMAND_BUFFER_BEGIN_INFO = 42,
249 VK_STRUCTURE_TYPE_RENDER_PASS_BEGIN_INFO = 43,
250 VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER = 44,
251 VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER = 45,
252 VK_STRUCTURE_TYPE_MEMORY_BARRIER = 46,
253 VK_STRUCTURE_TYPE_LOADER_INSTANCE_CREATE_INFO = 47,
254 VK_STRUCTURE_TYPE_LOADER_DEVICE_CREATE_INFO = 48,
255 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_PROPERTIES = 1000094000,
256 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO = 1000157000,
257 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO = 1000157001,
258 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES = 1000083000,
259 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS = 1000127000,
260 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO = 1000127001,
261 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO = 1000060000,
262 VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO = 1000060003,
263 VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO = 1000060004,
264 VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO = 1000060005,
265 VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO = 1000060006,
266 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO = 1000060013,
267 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO = 1000060014,
268 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES = 1000070000,
269 VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO = 1000070001,
270 VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2 = 1000146000,
271 VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2 = 1000146001,
272 VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2 = 1000146002,
273 VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2 = 1000146003,
274 VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2 = 1000146004,
275 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2 = 1000059000,
276 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2 = 1000059001,
277 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2 = 1000059002,
278 VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2 = 1000059003,
279 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2 = 1000059004,
280 VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2 = 1000059005,
281 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2 = 1000059006,
282 VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2 = 1000059007,
283 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2 = 1000059008,
284 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES = 1000117000,
285 VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO = 1000117001,
286 VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO = 1000117002,
287 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO = 1000117003,
288 VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO = 1000053000,
289 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES = 1000053001,
290 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES = 1000053002,
291 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES = 1000120000,
292 VK_STRUCTURE_TYPE_PROTECTED_SUBMIT_INFO = 1000145000,
293 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES = 1000145001,
294 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_PROPERTIES = 1000145002,
295 VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2 = 1000145003,
296 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO = 1000156000,
297 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO = 1000156001,
298 VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO = 1000156002,
299 VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO = 1000156003,
300 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES = 1000156004,
301 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES = 1000156005,
302 VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO = 1000085000,
303 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO = 1000071000,
304 VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES = 1000071001,
305 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO = 1000071002,
306 VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES = 1000071003,
307 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES = 1000071004,
308 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO = 1000072000,
309 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO = 1000072001,
310 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO = 1000072002,
311 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO = 1000112000,
312 VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES = 1000112001,
313 VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO = 1000113000,
314 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO = 1000077000,
315 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO = 1000076000,
316 VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES = 1000076001,
317 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES = 1000168000,
318 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT = 1000168001,
319 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES = 1000063000,
320 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_FEATURES = 49,
321 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_1_PROPERTIES = 50,
322 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_FEATURES = 51,
323 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_2_PROPERTIES = 52,
324 VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO = 1000147000,
325 VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2 = 1000109000,
326 VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2 = 1000109001,
327 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2 = 1000109002,
328 VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2 = 1000109003,
329 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2 = 1000109004,
330 VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO = 1000109005,
331 VK_STRUCTURE_TYPE_SUBPASS_END_INFO = 1000109006,
332 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES = 1000177000,
333 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES = 1000196000,
334 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES = 1000180000,
335 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES = 1000082000,
336 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES = 1000197000,
337 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO = 1000161000,
338 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES = 1000161001,
339 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES = 1000161002,
340 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO = 1000161003,
341 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT = 1000161004,
342 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES = 1000199000,
343 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE = 1000199001,
344 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES = 1000221000,
345 VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO = 1000246000,
346 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES = 1000130000,
347 VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO = 1000130001,
348 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES = 1000211000,
349 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES = 1000108000,
350 VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO = 1000108001,
351 VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO = 1000108002,
352 VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO = 1000108003,
353 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES = 1000253000,
354 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES = 1000175000,
355 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES = 1000241000,
356 VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT = 1000241001,
357 VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT = 1000241002,
358 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES = 1000261000,
359 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES = 1000207000,
360 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES = 1000207001,
361 VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO = 1000207002,
362 VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO = 1000207003,
363 VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO = 1000207004,
364 VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO = 1000207005,
365 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES = 1000257000,
366 VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO = 1000244001,
367 VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO = 1000257002,
368 VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO = 1000257003,
369 VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO = 1000257004,
370 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_FEATURES = 53,
371 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_3_PROPERTIES = 54,
372 VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO = 1000192000,
373 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES = 1000215000,
374 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES = 1000245000,
375 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES = 1000276000,
376 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES = 1000295000,
377 VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO = 1000295001,
378 VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO = 1000295002,
379 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES = 1000297000,
380 VK_STRUCTURE_TYPE_MEMORY_BARRIER_2 = 1000314000,
381 VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2 = 1000314001,
382 VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2 = 1000314002,
383 VK_STRUCTURE_TYPE_DEPENDENCY_INFO = 1000314003,
384 VK_STRUCTURE_TYPE_SUBMIT_INFO_2 = 1000314004,
385 VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO = 1000314005,
386 VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO = 1000314006,
387 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES = 1000314007,
388 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES = 1000325000,
389 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES = 1000335000,
390 VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2 = 1000337000,
391 VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2 = 1000337001,
392 VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2 = 1000337002,
393 VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2 = 1000337003,
394 VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2 = 1000337004,
395 VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2 = 1000337005,
396 VK_STRUCTURE_TYPE_BUFFER_COPY_2 = 1000337006,
397 VK_STRUCTURE_TYPE_IMAGE_COPY_2 = 1000337007,
398 VK_STRUCTURE_TYPE_IMAGE_BLIT_2 = 1000337008,
399 VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2 = 1000337009,
400 VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2 = 1000337010,
401 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES = 1000225000,
402 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO = 1000225001,
403 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES = 1000225002,
404 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES = 1000138000,
405 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES = 1000138001,
406 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK = 1000138002,
407 VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO = 1000138003,
408 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES = 1000066000,
409 VK_STRUCTURE_TYPE_RENDERING_INFO = 1000044000,
410 VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO = 1000044001,
411 VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO = 1000044002,
412 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES = 1000044003,
413 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO = 1000044004,
414 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES = 1000280000,
415 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES = 1000280001,
416 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES = 1000281001,
417 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3 = 1000360000,
418 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES = 1000413000,
419 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES = 1000413001,
420 VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS = 1000413002,
421 VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS = 1000413003,
422 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_4_FEATURES = 55,
423 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_1_4_PROPERTIES = 56,
424 VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO = 1000174000,
425 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES = 1000388000,
426 VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES = 1000388001,
427 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES = 1000416000,
428 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES = 1000528000,
429 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES = 1000544000,
430 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES = 1000259000,
431 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO = 1000259001,
432 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES = 1000259002,
433 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES = 1000525000,
434 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO = 1000190001,
435 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES = 1000190002,
436 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES = 1000265000,
437 VK_STRUCTURE_TYPE_MEMORY_MAP_INFO = 1000271000,
438 VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO = 1000271001,
439 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES = 1000470000,
440 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES = 1000470001,
441 VK_STRUCTURE_TYPE_RENDERING_AREA_INFO = 1000470003,
442 VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO = 1000470004,
443 VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2 = 1000338002,
444 VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2 = 1000338003,
445 VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO = 1000470005,
446 VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO = 1000470006,
447 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES = 1000080000,
448 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES = 1000232000,
449 VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO = 1000232001,
450 VK_STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO = 1000232002,
451 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES = 1000545000,
452 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES = 1000545001,
453 VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS = 1000545002,
454 VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO = 1000545003,
455 VK_STRUCTURE_TYPE_PUSH_CONSTANTS_INFO = 1000545004,
456 VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO = 1000545005,
457 VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO = 1000545006,
458 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES = 1000466000,
459 VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO = 1000068000,
460 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES = 1000068001,
461 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES = 1000068002,
462 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES = 1000270000,
463 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES = 1000270001,
464 VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY = 1000270002,
465 VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY = 1000270003,
466 VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO = 1000270004,
467 VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO = 1000270005,
468 VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO = 1000270006,
469 VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO = 1000270007,
470 VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE = 1000270008,
471 VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY = 1000270009,
472 VK_STRUCTURE_TYPE_SWAPCHAIN_CREATE_INFO_KHR = 1000001000,
473 VK_STRUCTURE_TYPE_PRESENT_INFO_KHR = 1000001001,
474 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_CAPABILITIES_KHR = 1000060007,
475 VK_STRUCTURE_TYPE_IMAGE_SWAPCHAIN_CREATE_INFO_KHR = 1000060008,
476 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_SWAPCHAIN_INFO_KHR = 1000060009,
477 VK_STRUCTURE_TYPE_ACQUIRE_NEXT_IMAGE_INFO_KHR = 1000060010,
478 VK_STRUCTURE_TYPE_DEVICE_GROUP_PRESENT_INFO_KHR = 1000060011,
479 VK_STRUCTURE_TYPE_DEVICE_GROUP_SWAPCHAIN_CREATE_INFO_KHR = 1000060012,
480 VK_STRUCTURE_TYPE_DISPLAY_MODE_CREATE_INFO_KHR = 1000002000,
481 VK_STRUCTURE_TYPE_DISPLAY_SURFACE_CREATE_INFO_KHR = 1000002001,
482 VK_STRUCTURE_TYPE_DISPLAY_PRESENT_INFO_KHR = 1000003000,
483 VK_STRUCTURE_TYPE_XLIB_SURFACE_CREATE_INFO_KHR = 1000004000,
484 VK_STRUCTURE_TYPE_XCB_SURFACE_CREATE_INFO_KHR = 1000005000,
485 VK_STRUCTURE_TYPE_WAYLAND_SURFACE_CREATE_INFO_KHR = 1000006000,
486 VK_STRUCTURE_TYPE_ANDROID_SURFACE_CREATE_INFO_KHR = 1000008000,
487 VK_STRUCTURE_TYPE_WIN32_SURFACE_CREATE_INFO_KHR = 1000009000,
488 VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT = 1000011000,
489 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_RASTERIZATION_ORDER_AMD = 1000018000,
490 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_NAME_INFO_EXT = 1000022000,
491 VK_STRUCTURE_TYPE_DEBUG_MARKER_OBJECT_TAG_INFO_EXT = 1000022001,
492 VK_STRUCTURE_TYPE_DEBUG_MARKER_MARKER_INFO_EXT = 1000022002,
493 VK_STRUCTURE_TYPE_VIDEO_PROFILE_INFO_KHR = 1000023000,
494 VK_STRUCTURE_TYPE_VIDEO_CAPABILITIES_KHR = 1000023001,
495 VK_STRUCTURE_TYPE_VIDEO_PICTURE_RESOURCE_INFO_KHR = 1000023002,
496 VK_STRUCTURE_TYPE_VIDEO_SESSION_MEMORY_REQUIREMENTS_KHR = 1000023003,
497 VK_STRUCTURE_TYPE_BIND_VIDEO_SESSION_MEMORY_INFO_KHR = 1000023004,
498 VK_STRUCTURE_TYPE_VIDEO_SESSION_CREATE_INFO_KHR = 1000023005,
499 VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000023006,
500 VK_STRUCTURE_TYPE_VIDEO_SESSION_PARAMETERS_UPDATE_INFO_KHR = 1000023007,
501 VK_STRUCTURE_TYPE_VIDEO_BEGIN_CODING_INFO_KHR = 1000023008,
502 VK_STRUCTURE_TYPE_VIDEO_END_CODING_INFO_KHR = 1000023009,
503 VK_STRUCTURE_TYPE_VIDEO_CODING_CONTROL_INFO_KHR = 1000023010,
504 VK_STRUCTURE_TYPE_VIDEO_REFERENCE_SLOT_INFO_KHR = 1000023011,
505 VK_STRUCTURE_TYPE_QUEUE_FAMILY_VIDEO_PROPERTIES_KHR = 1000023012,
506 VK_STRUCTURE_TYPE_VIDEO_PROFILE_LIST_INFO_KHR = 1000023013,
507 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_FORMAT_INFO_KHR = 1000023014,
508 VK_STRUCTURE_TYPE_VIDEO_FORMAT_PROPERTIES_KHR = 1000023015,
509 VK_STRUCTURE_TYPE_QUEUE_FAMILY_QUERY_RESULT_STATUS_PROPERTIES_KHR = 1000023016,
510 VK_STRUCTURE_TYPE_VIDEO_DECODE_INFO_KHR = 1000024000,
511 VK_STRUCTURE_TYPE_VIDEO_DECODE_CAPABILITIES_KHR = 1000024001,
512 VK_STRUCTURE_TYPE_VIDEO_DECODE_USAGE_INFO_KHR = 1000024002,
513 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_IMAGE_CREATE_INFO_NV = 1000026000,
514 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_BUFFER_CREATE_INFO_NV = 1000026001,
515 VK_STRUCTURE_TYPE_DEDICATED_ALLOCATION_MEMORY_ALLOCATE_INFO_NV = 1000026002,
516 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_FEATURES_EXT = 1000028000,
517 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TRANSFORM_FEEDBACK_PROPERTIES_EXT = 1000028001,
518 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_STATE_STREAM_CREATE_INFO_EXT = 1000028002,
519 VK_STRUCTURE_TYPE_CU_MODULE_CREATE_INFO_NVX = 1000029000,
520 VK_STRUCTURE_TYPE_CU_FUNCTION_CREATE_INFO_NVX = 1000029001,
521 VK_STRUCTURE_TYPE_CU_LAUNCH_INFO_NVX = 1000029002,
522 VK_STRUCTURE_TYPE_CU_MODULE_TEXTURING_MODE_CREATE_INFO_NVX = 1000029004,
523 VK_STRUCTURE_TYPE_IMAGE_VIEW_HANDLE_INFO_NVX = 1000030000,
524 VK_STRUCTURE_TYPE_IMAGE_VIEW_ADDRESS_PROPERTIES_NVX = 1000030001,
525 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_CAPABILITIES_KHR = 1000038000,
526 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000038001,
527 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR = 1000038002,
528 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PICTURE_INFO_KHR = 1000038003,
529 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_DPB_SLOT_INFO_KHR = 1000038004,
530 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_NALU_SLICE_INFO_KHR = 1000038005,
531 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_GOP_REMAINING_FRAME_INFO_KHR = 1000038006,
532 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_PROFILE_INFO_KHR = 1000038007,
533 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_INFO_KHR = 1000038008,
534 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_RATE_CONTROL_LAYER_INFO_KHR = 1000038009,
535 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_CREATE_INFO_KHR = 1000038010,
536 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUALITY_LEVEL_PROPERTIES_KHR = 1000038011,
537 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_GET_INFO_KHR = 1000038012,
538 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_SESSION_PARAMETERS_FEEDBACK_INFO_KHR = 1000038013,
539 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_CAPABILITIES_KHR = 1000039000,
540 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000039001,
541 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR = 1000039002,
542 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PICTURE_INFO_KHR = 1000039003,
543 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_DPB_SLOT_INFO_KHR = 1000039004,
544 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_NALU_SLICE_SEGMENT_INFO_KHR = 1000039005,
545 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_GOP_REMAINING_FRAME_INFO_KHR = 1000039006,
546 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_PROFILE_INFO_KHR = 1000039007,
547 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_INFO_KHR = 1000039009,
548 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_RATE_CONTROL_LAYER_INFO_KHR = 1000039010,
549 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_CREATE_INFO_KHR = 1000039011,
550 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUALITY_LEVEL_PROPERTIES_KHR = 1000039012,
551 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_GET_INFO_KHR = 1000039013,
552 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_SESSION_PARAMETERS_FEEDBACK_INFO_KHR = 1000039014,
553 VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_CAPABILITIES_KHR = 1000040000,
554 VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PICTURE_INFO_KHR = 1000040001,
555 VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_PROFILE_INFO_KHR = 1000040003,
556 VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000040004,
557 VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_SESSION_PARAMETERS_ADD_INFO_KHR = 1000040005,
558 VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_DPB_SLOT_INFO_KHR = 1000040006,
559 VK_STRUCTURE_TYPE_TEXTURE_LOD_GATHER_FORMAT_PROPERTIES_AMD = 1000041000,
560 VK_STRUCTURE_TYPE_STREAM_DESCRIPTOR_SURFACE_CREATE_INFO_GGP = 1000049000,
561 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CORNER_SAMPLED_IMAGE_FEATURES_NV = 1000050000,
562 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_NV = 1000056000,
563 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_NV = 1000056001,
564 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057000,
565 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_NV = 1000057001,
566 VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_NV = 1000058000,
567 VK_STRUCTURE_TYPE_VALIDATION_FLAGS_EXT = 1000061000,
568 VK_STRUCTURE_TYPE_VI_SURFACE_CREATE_INFO_NN = 1000062000,
569 VK_STRUCTURE_TYPE_IMAGE_VIEW_ASTC_DECODE_MODE_EXT = 1000067000,
570 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ASTC_DECODE_FEATURES_EXT = 1000067001,
571 VK_STRUCTURE_TYPE_IMPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073000,
572 VK_STRUCTURE_TYPE_EXPORT_MEMORY_WIN32_HANDLE_INFO_KHR = 1000073001,
573 VK_STRUCTURE_TYPE_MEMORY_WIN32_HANDLE_PROPERTIES_KHR = 1000073002,
574 VK_STRUCTURE_TYPE_MEMORY_GET_WIN32_HANDLE_INFO_KHR = 1000073003,
575 VK_STRUCTURE_TYPE_IMPORT_MEMORY_FD_INFO_KHR = 1000074000,
576 VK_STRUCTURE_TYPE_MEMORY_FD_PROPERTIES_KHR = 1000074001,
577 VK_STRUCTURE_TYPE_MEMORY_GET_FD_INFO_KHR = 1000074002,
578 VK_STRUCTURE_TYPE_WIN32_KEYED_MUTEX_ACQUIRE_RELEASE_INFO_KHR = 1000075000,
579 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078000,
580 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_WIN32_HANDLE_INFO_KHR = 1000078001,
581 VK_STRUCTURE_TYPE_D3D12_FENCE_SUBMIT_INFO_KHR = 1000078002,
582 VK_STRUCTURE_TYPE_SEMAPHORE_GET_WIN32_HANDLE_INFO_KHR = 1000078003,
583 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_FD_INFO_KHR = 1000079000,
584 VK_STRUCTURE_TYPE_SEMAPHORE_GET_FD_INFO_KHR = 1000079001,
585 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_CONDITIONAL_RENDERING_INFO_EXT = 1000081000,
586 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONDITIONAL_RENDERING_FEATURES_EXT = 1000081001,
587 VK_STRUCTURE_TYPE_CONDITIONAL_RENDERING_BEGIN_INFO_EXT = 1000081002,
588 VK_STRUCTURE_TYPE_PRESENT_REGIONS_KHR = 1000084000,
589 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_W_SCALING_STATE_CREATE_INFO_NV = 1000087000,
590 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT = 1000090000,
591 VK_STRUCTURE_TYPE_DISPLAY_POWER_INFO_EXT = 1000091000,
592 VK_STRUCTURE_TYPE_DEVICE_EVENT_INFO_EXT = 1000091001,
593 VK_STRUCTURE_TYPE_DISPLAY_EVENT_INFO_EXT = 1000091002,
594 VK_STRUCTURE_TYPE_SWAPCHAIN_COUNTER_CREATE_INFO_EXT = 1000091003,
595 VK_STRUCTURE_TYPE_PRESENT_TIMES_INFO_GOOGLE = 1000092000,
596 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_ATTRIBUTES_PROPERTIES_NVX = 1000097000,
597 VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_ATTRIBUTES_INFO_NVX = 1000044009,
598 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SWIZZLE_STATE_CREATE_INFO_NV = 1000098000,
599 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISCARD_RECTANGLE_PROPERTIES_EXT = 1000099000,
600 VK_STRUCTURE_TYPE_PIPELINE_DISCARD_RECTANGLE_STATE_CREATE_INFO_EXT = 1000099001,
601 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CONSERVATIVE_RASTERIZATION_PROPERTIES_EXT = 1000101000,
602 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_CONSERVATIVE_STATE_CREATE_INFO_EXT = 1000101001,
603 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_ENABLE_FEATURES_EXT = 1000102000,
604 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_DEPTH_CLIP_STATE_CREATE_INFO_EXT = 1000102001,
605 VK_STRUCTURE_TYPE_HDR_METADATA_EXT = 1000105000,
606 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RELAXED_LINE_RASTERIZATION_FEATURES_IMG = 1000110000,
607 VK_STRUCTURE_TYPE_SHARED_PRESENT_SURFACE_CAPABILITIES_KHR = 1000111000,
608 VK_STRUCTURE_TYPE_IMPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114000,
609 VK_STRUCTURE_TYPE_EXPORT_FENCE_WIN32_HANDLE_INFO_KHR = 1000114001,
610 VK_STRUCTURE_TYPE_FENCE_GET_WIN32_HANDLE_INFO_KHR = 1000114002,
611 VK_STRUCTURE_TYPE_IMPORT_FENCE_FD_INFO_KHR = 1000115000,
612 VK_STRUCTURE_TYPE_FENCE_GET_FD_INFO_KHR = 1000115001,
613 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_FEATURES_KHR = 1000116000,
614 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PERFORMANCE_QUERY_PROPERTIES_KHR = 1000116001,
615 VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_CREATE_INFO_KHR = 1000116002,
616 VK_STRUCTURE_TYPE_PERFORMANCE_QUERY_SUBMIT_INFO_KHR = 1000116003,
617 VK_STRUCTURE_TYPE_ACQUIRE_PROFILING_LOCK_INFO_KHR = 1000116004,
618 VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_KHR = 1000116005,
619 VK_STRUCTURE_TYPE_PERFORMANCE_COUNTER_DESCRIPTION_KHR = 1000116006,
620 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SURFACE_INFO_2_KHR = 1000119000,
621 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_KHR = 1000119001,
622 VK_STRUCTURE_TYPE_SURFACE_FORMAT_2_KHR = 1000119002,
623 VK_STRUCTURE_TYPE_DISPLAY_PROPERTIES_2_KHR = 1000121000,
624 VK_STRUCTURE_TYPE_DISPLAY_PLANE_PROPERTIES_2_KHR = 1000121001,
625 VK_STRUCTURE_TYPE_DISPLAY_MODE_PROPERTIES_2_KHR = 1000121002,
626 VK_STRUCTURE_TYPE_DISPLAY_PLANE_INFO_2_KHR = 1000121003,
627 VK_STRUCTURE_TYPE_DISPLAY_PLANE_CAPABILITIES_2_KHR = 1000121004,
628 VK_STRUCTURE_TYPE_IOS_SURFACE_CREATE_INFO_MVK = 1000122000,
629 VK_STRUCTURE_TYPE_MACOS_SURFACE_CREATE_INFO_MVK = 1000123000,
630 VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_NAME_INFO_EXT = 1000128000,
631 VK_STRUCTURE_TYPE_DEBUG_UTILS_OBJECT_TAG_INFO_EXT = 1000128001,
632 VK_STRUCTURE_TYPE_DEBUG_UTILS_LABEL_EXT = 1000128002,
633 VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CALLBACK_DATA_EXT = 1000128003,
634 VK_STRUCTURE_TYPE_DEBUG_UTILS_MESSENGER_CREATE_INFO_EXT = 1000128004,
635 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_USAGE_ANDROID = 1000129000,
636 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_PROPERTIES_ANDROID = 1000129001,
637 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_ANDROID = 1000129002,
638 VK_STRUCTURE_TYPE_IMPORT_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129003,
639 VK_STRUCTURE_TYPE_MEMORY_GET_ANDROID_HARDWARE_BUFFER_INFO_ANDROID = 1000129004,
640 VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_ANDROID = 1000129005,
641 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_PROPERTIES_2_ANDROID = 1000129006,
642#ifdef VK_ENABLE_BETA_EXTENSIONS
643 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_FEATURES_AMDX = 1000134000,
644#endif
645#ifdef VK_ENABLE_BETA_EXTENSIONS
646 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ENQUEUE_PROPERTIES_AMDX = 1000134001,
647#endif
648#ifdef VK_ENABLE_BETA_EXTENSIONS
649 VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_SCRATCH_SIZE_AMDX = 1000134002,
650#endif
651#ifdef VK_ENABLE_BETA_EXTENSIONS
652 VK_STRUCTURE_TYPE_EXECUTION_GRAPH_PIPELINE_CREATE_INFO_AMDX = 1000134003,
653#endif
654#ifdef VK_ENABLE_BETA_EXTENSIONS
655 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_NODE_CREATE_INFO_AMDX = 1000134004,
656#endif
657 VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD = 1000044008,
658 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_BFLOAT16_FEATURES_KHR = 1000141000,
659 VK_STRUCTURE_TYPE_SAMPLE_LOCATIONS_INFO_EXT = 1000143000,
660 VK_STRUCTURE_TYPE_RENDER_PASS_SAMPLE_LOCATIONS_BEGIN_INFO_EXT = 1000143001,
661 VK_STRUCTURE_TYPE_PIPELINE_SAMPLE_LOCATIONS_STATE_CREATE_INFO_EXT = 1000143002,
662 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLE_LOCATIONS_PROPERTIES_EXT = 1000143003,
663 VK_STRUCTURE_TYPE_MULTISAMPLE_PROPERTIES_EXT = 1000143004,
664 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_FEATURES_EXT = 1000148000,
665 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BLEND_OPERATION_ADVANCED_PROPERTIES_EXT = 1000148001,
666 VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_ADVANCED_STATE_CREATE_INFO_EXT = 1000148002,
667 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_TO_COLOR_STATE_CREATE_INFO_NV = 1000149000,
668 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_KHR = 1000150007,
669 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_GEOMETRY_INFO_KHR = 1000150000,
670 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DEVICE_ADDRESS_INFO_KHR = 1000150002,
671 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_AABBS_DATA_KHR = 1000150003,
672 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_INSTANCES_DATA_KHR = 1000150004,
673 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_TRIANGLES_DATA_KHR = 1000150005,
674 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_KHR = 1000150006,
675 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_VERSION_INFO_KHR = 1000150009,
676 VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_INFO_KHR = 1000150010,
677 VK_STRUCTURE_TYPE_COPY_ACCELERATION_STRUCTURE_TO_MEMORY_INFO_KHR = 1000150011,
678 VK_STRUCTURE_TYPE_COPY_MEMORY_TO_ACCELERATION_STRUCTURE_INFO_KHR = 1000150012,
679 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_FEATURES_KHR = 1000150013,
680 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ACCELERATION_STRUCTURE_PROPERTIES_KHR = 1000150014,
681 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_KHR = 1000150017,
682 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_BUILD_SIZES_INFO_KHR = 1000150020,
683 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_FEATURES_KHR = 1000347000,
684 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PIPELINE_PROPERTIES_KHR = 1000347001,
685 VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_KHR = 1000150015,
686 VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_KHR = 1000150016,
687 VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_INTERFACE_CREATE_INFO_KHR = 1000150018,
688 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_QUERY_FEATURES_KHR = 1000348013,
689 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_MODULATION_STATE_CREATE_INFO_NV = 1000152000,
690 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_FEATURES_NV = 1000154000,
691 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SM_BUILTINS_PROPERTIES_NV = 1000154001,
692 VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_EXT = 1000158000,
693 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_DRM_FORMAT_MODIFIER_INFO_EXT = 1000158002,
694 VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_LIST_CREATE_INFO_EXT = 1000158003,
695 VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_EXPLICIT_CREATE_INFO_EXT = 1000158004,
696 VK_STRUCTURE_TYPE_IMAGE_DRM_FORMAT_MODIFIER_PROPERTIES_EXT = 1000158005,
697 VK_STRUCTURE_TYPE_DRM_FORMAT_MODIFIER_PROPERTIES_LIST_2_EXT = 1000158006,
698 VK_STRUCTURE_TYPE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160000,
699 VK_STRUCTURE_TYPE_SHADER_MODULE_VALIDATION_CACHE_CREATE_INFO_EXT = 1000160001,
700#ifdef VK_ENABLE_BETA_EXTENSIONS
701 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_FEATURES_KHR = 1000163000,
702#endif
703#ifdef VK_ENABLE_BETA_EXTENSIONS
704 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PORTABILITY_SUBSET_PROPERTIES_KHR = 1000163001,
705#endif
706 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_SHADING_RATE_IMAGE_STATE_CREATE_INFO_NV = 1000164000,
707 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_FEATURES_NV = 1000164001,
708 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADING_RATE_IMAGE_PROPERTIES_NV = 1000164002,
709 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_COARSE_SAMPLE_ORDER_STATE_CREATE_INFO_NV = 1000164005,
710 VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CREATE_INFO_NV = 1000165000,
711 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CREATE_INFO_NV = 1000165001,
712 VK_STRUCTURE_TYPE_GEOMETRY_NV = 1000165003,
713 VK_STRUCTURE_TYPE_GEOMETRY_TRIANGLES_NV = 1000165004,
714 VK_STRUCTURE_TYPE_GEOMETRY_AABB_NV = 1000165005,
715 VK_STRUCTURE_TYPE_BIND_ACCELERATION_STRUCTURE_MEMORY_INFO_NV = 1000165006,
716 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_ACCELERATION_STRUCTURE_NV = 1000165007,
717 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_INFO_NV = 1000165008,
718 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_PROPERTIES_NV = 1000165009,
719 VK_STRUCTURE_TYPE_RAY_TRACING_SHADER_GROUP_CREATE_INFO_NV = 1000165011,
720 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_INFO_NV = 1000165012,
721 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_REPRESENTATIVE_FRAGMENT_TEST_FEATURES_NV = 1000166000,
722 VK_STRUCTURE_TYPE_PIPELINE_REPRESENTATIVE_FRAGMENT_TEST_STATE_CREATE_INFO_NV = 1000166001,
723 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_IMAGE_FORMAT_INFO_EXT = 1000170000,
724 VK_STRUCTURE_TYPE_FILTER_CUBIC_IMAGE_VIEW_IMAGE_FORMAT_PROPERTIES_EXT = 1000170001,
725 VK_STRUCTURE_TYPE_IMPORT_MEMORY_HOST_POINTER_INFO_EXT = 1000178000,
726 VK_STRUCTURE_TYPE_MEMORY_HOST_POINTER_PROPERTIES_EXT = 1000178001,
727 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_HOST_PROPERTIES_EXT = 1000178002,
728 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CLOCK_FEATURES_KHR = 1000181000,
729 VK_STRUCTURE_TYPE_PIPELINE_COMPILER_CONTROL_CREATE_INFO_AMD = 1000183000,
730 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_AMD = 1000185000,
731 VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_CAPABILITIES_KHR = 1000187000,
732 VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000187001,
733 VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_SESSION_PARAMETERS_ADD_INFO_KHR = 1000187002,
734 VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PROFILE_INFO_KHR = 1000187003,
735 VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_PICTURE_INFO_KHR = 1000187004,
736 VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_DPB_SLOT_INFO_KHR = 1000187005,
737 VK_STRUCTURE_TYPE_DEVICE_MEMORY_OVERALLOCATION_CREATE_INFO_AMD = 1000189000,
738 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_EXT = 1000190000,
739 VK_STRUCTURE_TYPE_PRESENT_FRAME_TOKEN_GGP = 1000191000,
740 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_NV = 1000202000,
741 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_NV = 1000202001,
742 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_FOOTPRINT_FEATURES_NV = 1000204000,
743 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_EXCLUSIVE_SCISSOR_STATE_CREATE_INFO_NV = 1000205000,
744 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXCLUSIVE_SCISSOR_FEATURES_NV = 1000205002,
745 VK_STRUCTURE_TYPE_CHECKPOINT_DATA_NV = 1000206000,
746 VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_NV = 1000206001,
747 VK_STRUCTURE_TYPE_QUEUE_FAMILY_CHECKPOINT_PROPERTIES_2_NV = 1000314008,
748 VK_STRUCTURE_TYPE_CHECKPOINT_DATA_2_NV = 1000314009,
749 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_FUNCTIONS_2_FEATURES_INTEL = 1000209000,
750 VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL = 1000210000,
751 VK_STRUCTURE_TYPE_INITIALIZE_PERFORMANCE_API_INFO_INTEL = 1000210001,
752 VK_STRUCTURE_TYPE_PERFORMANCE_MARKER_INFO_INTEL = 1000210002,
753 VK_STRUCTURE_TYPE_PERFORMANCE_STREAM_MARKER_INFO_INTEL = 1000210003,
754 VK_STRUCTURE_TYPE_PERFORMANCE_OVERRIDE_INFO_INTEL = 1000210004,
755 VK_STRUCTURE_TYPE_PERFORMANCE_CONFIGURATION_ACQUIRE_INFO_INTEL = 1000210005,
756 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PCI_BUS_INFO_PROPERTIES_EXT = 1000212000,
757 VK_STRUCTURE_TYPE_DISPLAY_NATIVE_HDR_SURFACE_CAPABILITIES_AMD = 1000213000,
758 VK_STRUCTURE_TYPE_SWAPCHAIN_DISPLAY_NATIVE_HDR_CREATE_INFO_AMD = 1000213001,
759 VK_STRUCTURE_TYPE_IMAGEPIPE_SURFACE_CREATE_INFO_FUCHSIA = 1000214000,
760 VK_STRUCTURE_TYPE_METAL_SURFACE_CREATE_INFO_EXT = 1000217000,
761 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_FEATURES_EXT = 1000218000,
762 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_PROPERTIES_EXT = 1000218001,
763 VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_CREATE_INFO_EXT = 1000218002,
764 VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_INFO_EXT = 1000044007,
765 VK_STRUCTURE_TYPE_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000226000,
766 VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_STATE_CREATE_INFO_KHR = 1000226001,
767 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_PROPERTIES_KHR = 1000226002,
768 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_FEATURES_KHR = 1000226003,
769 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_KHR = 1000226004,
770 VK_STRUCTURE_TYPE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_INFO_KHR = 1000044006,
771 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_2_AMD = 1000227000,
772 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COHERENT_MEMORY_FEATURES_AMD = 1000229000,
773 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_IMAGE_ATOMIC_INT64_FEATURES_EXT = 1000234000,
774 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_QUAD_CONTROL_FEATURES_KHR = 1000235000,
775 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_BUDGET_PROPERTIES_EXT = 1000237000,
776 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PRIORITY_FEATURES_EXT = 1000238000,
777 VK_STRUCTURE_TYPE_MEMORY_PRIORITY_ALLOCATE_INFO_EXT = 1000238001,
778 VK_STRUCTURE_TYPE_SURFACE_PROTECTED_CAPABILITIES_KHR = 1000239000,
779 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEDICATED_ALLOCATION_IMAGE_ALIASING_FEATURES_NV = 1000240000,
780 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT = 1000244000,
781 VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_CREATE_INFO_EXT = 1000244002,
782 VK_STRUCTURE_TYPE_VALIDATION_FEATURES_EXT = 1000247000,
783 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_FEATURES_KHR = 1000248000,
784 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_NV = 1000249000,
785 VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249001,
786 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_NV = 1000249002,
787 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COVERAGE_REDUCTION_MODE_FEATURES_NV = 1000250000,
788 VK_STRUCTURE_TYPE_PIPELINE_COVERAGE_REDUCTION_STATE_CREATE_INFO_NV = 1000250001,
789 VK_STRUCTURE_TYPE_FRAMEBUFFER_MIXED_SAMPLES_COMBINATION_NV = 1000250002,
790 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT = 1000251000,
791 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_IMAGE_ARRAYS_FEATURES_EXT = 1000252000,
792 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_FEATURES_EXT = 1000254000,
793 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_PROVOKING_VERTEX_STATE_CREATE_INFO_EXT = 1000254001,
794 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROVOKING_VERTEX_PROPERTIES_EXT = 1000254002,
795 VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_INFO_EXT = 1000255000,
796 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_FULL_SCREEN_EXCLUSIVE_EXT = 1000255002,
797 VK_STRUCTURE_TYPE_SURFACE_FULL_SCREEN_EXCLUSIVE_WIN32_INFO_EXT = 1000255001,
798 VK_STRUCTURE_TYPE_HEADLESS_SURFACE_CREATE_INFO_EXT = 1000256000,
799 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_FEATURES_EXT = 1000260000,
800 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_FEATURES_EXT = 1000267000,
801 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_EXECUTABLE_PROPERTIES_FEATURES_KHR = 1000269000,
802 VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR = 1000269001,
803 VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_PROPERTIES_KHR = 1000269002,
804 VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INFO_KHR = 1000269003,
805 VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_STATISTIC_KHR = 1000269004,
806 VK_STRUCTURE_TYPE_PIPELINE_EXECUTABLE_INTERNAL_REPRESENTATION_KHR = 1000269005,
807 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_FEATURES_EXT = 1000272000,
808 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAP_MEMORY_PLACED_PROPERTIES_EXT = 1000272001,
809 VK_STRUCTURE_TYPE_MEMORY_MAP_PLACED_INFO_EXT = 1000272002,
810 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT_2_FEATURES_EXT = 1000273000,
811 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_NV = 1000277000,
812 VK_STRUCTURE_TYPE_GRAPHICS_SHADER_GROUP_CREATE_INFO_NV = 1000277001,
813 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_SHADER_GROUPS_CREATE_INFO_NV = 1000277002,
814 VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_NV = 1000277003,
815 VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_NV = 1000277004,
816 VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_NV = 1000277005,
817 VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_NV = 1000277006,
818 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_NV = 1000277007,
819 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INHERITED_VIEWPORT_SCISSOR_FEATURES_NV = 1000278000,
820 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_VIEWPORT_SCISSOR_INFO_NV = 1000278001,
821 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_FEATURES_EXT = 1000281000,
822 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDER_PASS_TRANSFORM_INFO_QCOM = 1000282000,
823 VK_STRUCTURE_TYPE_RENDER_PASS_TRANSFORM_BEGIN_INFO_QCOM = 1000282001,
824 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_BIAS_CONTROL_FEATURES_EXT = 1000283000,
825 VK_STRUCTURE_TYPE_DEPTH_BIAS_INFO_EXT = 1000283001,
826 VK_STRUCTURE_TYPE_DEPTH_BIAS_REPRESENTATION_INFO_EXT = 1000283002,
827 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_MEMORY_REPORT_FEATURES_EXT = 1000284000,
828 VK_STRUCTURE_TYPE_DEVICE_DEVICE_MEMORY_REPORT_CREATE_INFO_EXT = 1000284001,
829 VK_STRUCTURE_TYPE_DEVICE_MEMORY_REPORT_CALLBACK_DATA_EXT = 1000284002,
830 VK_STRUCTURE_TYPE_SAMPLER_CUSTOM_BORDER_COLOR_CREATE_INFO_EXT = 1000287000,
831 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_PROPERTIES_EXT = 1000287001,
832 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUSTOM_BORDER_COLOR_FEATURES_EXT = 1000287002,
833 VK_STRUCTURE_TYPE_PIPELINE_LIBRARY_CREATE_INFO_KHR = 1000290000,
834 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_BARRIER_FEATURES_NV = 1000292000,
835 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_BARRIER_NV = 1000292001,
836 VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_BARRIER_CREATE_INFO_NV = 1000292002,
837 VK_STRUCTURE_TYPE_PRESENT_ID_KHR = 1000294000,
838 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_FEATURES_KHR = 1000294001,
839 VK_STRUCTURE_TYPE_VIDEO_ENCODE_INFO_KHR = 1000299000,
840 VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_INFO_KHR = 1000299001,
841 VK_STRUCTURE_TYPE_VIDEO_ENCODE_RATE_CONTROL_LAYER_INFO_KHR = 1000299002,
842 VK_STRUCTURE_TYPE_VIDEO_ENCODE_CAPABILITIES_KHR = 1000299003,
843 VK_STRUCTURE_TYPE_VIDEO_ENCODE_USAGE_INFO_KHR = 1000299004,
844 VK_STRUCTURE_TYPE_QUERY_POOL_VIDEO_ENCODE_FEEDBACK_CREATE_INFO_KHR = 1000299005,
845 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR = 1000299006,
846 VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_PROPERTIES_KHR = 1000299007,
847 VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUALITY_LEVEL_INFO_KHR = 1000299008,
848 VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_GET_INFO_KHR = 1000299009,
849 VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_PARAMETERS_FEEDBACK_INFO_KHR = 1000299010,
850 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DIAGNOSTICS_CONFIG_FEATURES_NV = 1000300000,
851 VK_STRUCTURE_TYPE_DEVICE_DIAGNOSTICS_CONFIG_CREATE_INFO_NV = 1000300001,
852#ifdef VK_ENABLE_BETA_EXTENSIONS
853 VK_STRUCTURE_TYPE_CUDA_MODULE_CREATE_INFO_NV = 1000307000,
854#endif
855#ifdef VK_ENABLE_BETA_EXTENSIONS
856 VK_STRUCTURE_TYPE_CUDA_FUNCTION_CREATE_INFO_NV = 1000307001,
857#endif
858#ifdef VK_ENABLE_BETA_EXTENSIONS
859 VK_STRUCTURE_TYPE_CUDA_LAUNCH_INFO_NV = 1000307002,
860#endif
861#ifdef VK_ENABLE_BETA_EXTENSIONS
862 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_FEATURES_NV = 1000307003,
863#endif
864#ifdef VK_ENABLE_BETA_EXTENSIONS
865 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUDA_KERNEL_LAUNCH_PROPERTIES_NV = 1000307004,
866#endif
867 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_SHADING_FEATURES_QCOM = 1000309000,
868 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_SHADING_PROPERTIES_QCOM = 1000309001,
869 VK_STRUCTURE_TYPE_RENDER_PASS_TILE_SHADING_CREATE_INFO_QCOM = 1000309002,
870 VK_STRUCTURE_TYPE_PER_TILE_BEGIN_INFO_QCOM = 1000309003,
871 VK_STRUCTURE_TYPE_PER_TILE_END_INFO_QCOM = 1000309004,
872 VK_STRUCTURE_TYPE_DISPATCH_TILE_INFO_QCOM = 1000309005,
873 VK_STRUCTURE_TYPE_QUERY_LOW_LATENCY_SUPPORT_NV = 1000310000,
874 VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECT_CREATE_INFO_EXT = 1000311000,
875 VK_STRUCTURE_TYPE_EXPORT_METAL_OBJECTS_INFO_EXT = 1000311001,
876 VK_STRUCTURE_TYPE_EXPORT_METAL_DEVICE_INFO_EXT = 1000311002,
877 VK_STRUCTURE_TYPE_EXPORT_METAL_COMMAND_QUEUE_INFO_EXT = 1000311003,
878 VK_STRUCTURE_TYPE_EXPORT_METAL_BUFFER_INFO_EXT = 1000311004,
879 VK_STRUCTURE_TYPE_IMPORT_METAL_BUFFER_INFO_EXT = 1000311005,
880 VK_STRUCTURE_TYPE_EXPORT_METAL_TEXTURE_INFO_EXT = 1000311006,
881 VK_STRUCTURE_TYPE_IMPORT_METAL_TEXTURE_INFO_EXT = 1000311007,
882 VK_STRUCTURE_TYPE_EXPORT_METAL_IO_SURFACE_INFO_EXT = 1000311008,
883 VK_STRUCTURE_TYPE_IMPORT_METAL_IO_SURFACE_INFO_EXT = 1000311009,
884 VK_STRUCTURE_TYPE_EXPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311010,
885 VK_STRUCTURE_TYPE_IMPORT_METAL_SHARED_EVENT_INFO_EXT = 1000311011,
886 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_PROPERTIES_EXT = 1000316000,
887 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_DENSITY_MAP_PROPERTIES_EXT = 1000316001,
888 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_FEATURES_EXT = 1000316002,
889 VK_STRUCTURE_TYPE_DESCRIPTOR_ADDRESS_INFO_EXT = 1000316003,
890 VK_STRUCTURE_TYPE_DESCRIPTOR_GET_INFO_EXT = 1000316004,
891 VK_STRUCTURE_TYPE_BUFFER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316005,
892 VK_STRUCTURE_TYPE_IMAGE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316006,
893 VK_STRUCTURE_TYPE_IMAGE_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316007,
894 VK_STRUCTURE_TYPE_SAMPLER_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316008,
895 VK_STRUCTURE_TYPE_OPAQUE_CAPTURE_DESCRIPTOR_DATA_CREATE_INFO_EXT = 1000316010,
896 VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_INFO_EXT = 1000316011,
897 VK_STRUCTURE_TYPE_DESCRIPTOR_BUFFER_BINDING_PUSH_DESCRIPTOR_BUFFER_HANDLE_EXT = 1000316012,
898 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_CAPTURE_DESCRIPTOR_DATA_INFO_EXT = 1000316009,
899 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_FEATURES_EXT = 1000320000,
900 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GRAPHICS_PIPELINE_LIBRARY_PROPERTIES_EXT = 1000320001,
901 VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_LIBRARY_CREATE_INFO_EXT = 1000320002,
902 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_FEATURES_AMD = 1000321000,
903 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR = 1000203000,
904 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_PROPERTIES_KHR = 1000322000,
905 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_FEATURES_KHR = 1000323000,
906 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_PROPERTIES_NV = 1000326000,
907 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADING_RATE_ENUMS_FEATURES_NV = 1000326001,
908 VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_SHADING_RATE_ENUM_STATE_CREATE_INFO_NV = 1000326002,
909 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_MOTION_TRIANGLES_DATA_NV = 1000327000,
910 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MOTION_BLUR_FEATURES_NV = 1000327001,
911 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_MOTION_INFO_NV = 1000327002,
912 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_FEATURES_EXT = 1000328000,
913 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MESH_SHADER_PROPERTIES_EXT = 1000328001,
914 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_2_PLANE_444_FORMATS_FEATURES_EXT = 1000330000,
915 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_FEATURES_EXT = 1000332000,
916 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_2_PROPERTIES_EXT = 1000332001,
917 VK_STRUCTURE_TYPE_COPY_COMMAND_TRANSFORM_INFO_QCOM = 1000333000,
918 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_FEATURES_KHR = 1000336000,
919 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_FEATURES_EXT = 1000338000,
920 VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_CONTROL_EXT = 1000338001,
921 VK_STRUCTURE_TYPE_IMAGE_COMPRESSION_PROPERTIES_EXT = 1000338004,
922 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_FEATURES_EXT = 1000339000,
923 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_4444_FORMATS_FEATURES_EXT = 1000340000,
924 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FAULT_FEATURES_EXT = 1000341000,
925 VK_STRUCTURE_TYPE_DEVICE_FAULT_COUNTS_EXT = 1000341001,
926 VK_STRUCTURE_TYPE_DEVICE_FAULT_INFO_EXT = 1000341002,
927 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RGBA10X6_FORMATS_FEATURES_EXT = 1000344000,
928 VK_STRUCTURE_TYPE_DIRECTFB_SURFACE_CREATE_INFO_EXT = 1000346000,
929 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_INPUT_DYNAMIC_STATE_FEATURES_EXT = 1000352000,
930 VK_STRUCTURE_TYPE_VERTEX_INPUT_BINDING_DESCRIPTION_2_EXT = 1000352001,
931 VK_STRUCTURE_TYPE_VERTEX_INPUT_ATTRIBUTE_DESCRIPTION_2_EXT = 1000352002,
932 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRM_PROPERTIES_EXT = 1000353000,
933 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ADDRESS_BINDING_REPORT_FEATURES_EXT = 1000354000,
934 VK_STRUCTURE_TYPE_DEVICE_ADDRESS_BINDING_CALLBACK_DATA_EXT = 1000354001,
935 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLIP_CONTROL_FEATURES_EXT = 1000355000,
936 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLIP_CONTROL_CREATE_INFO_EXT = 1000355001,
937 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVE_TOPOLOGY_LIST_RESTART_FEATURES_EXT = 1000356000,
938 VK_STRUCTURE_TYPE_IMPORT_MEMORY_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364000,
939 VK_STRUCTURE_TYPE_MEMORY_ZIRCON_HANDLE_PROPERTIES_FUCHSIA = 1000364001,
940 VK_STRUCTURE_TYPE_MEMORY_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000364002,
941 VK_STRUCTURE_TYPE_IMPORT_SEMAPHORE_ZIRCON_HANDLE_INFO_FUCHSIA = 1000365000,
942 VK_STRUCTURE_TYPE_SEMAPHORE_GET_ZIRCON_HANDLE_INFO_FUCHSIA = 1000365001,
943 VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CREATE_INFO_FUCHSIA = 1000366000,
944 VK_STRUCTURE_TYPE_IMPORT_MEMORY_BUFFER_COLLECTION_FUCHSIA = 1000366001,
945 VK_STRUCTURE_TYPE_BUFFER_COLLECTION_IMAGE_CREATE_INFO_FUCHSIA = 1000366002,
946 VK_STRUCTURE_TYPE_BUFFER_COLLECTION_PROPERTIES_FUCHSIA = 1000366003,
947 VK_STRUCTURE_TYPE_BUFFER_CONSTRAINTS_INFO_FUCHSIA = 1000366004,
948 VK_STRUCTURE_TYPE_BUFFER_COLLECTION_BUFFER_CREATE_INFO_FUCHSIA = 1000366005,
949 VK_STRUCTURE_TYPE_IMAGE_CONSTRAINTS_INFO_FUCHSIA = 1000366006,
950 VK_STRUCTURE_TYPE_IMAGE_FORMAT_CONSTRAINTS_INFO_FUCHSIA = 1000366007,
951 VK_STRUCTURE_TYPE_SYSMEM_COLOR_SPACE_FUCHSIA = 1000366008,
952 VK_STRUCTURE_TYPE_BUFFER_COLLECTION_CONSTRAINTS_INFO_FUCHSIA = 1000366009,
953 VK_STRUCTURE_TYPE_SUBPASS_SHADING_PIPELINE_CREATE_INFO_HUAWEI = 1000369000,
954 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_FEATURES_HUAWEI = 1000369001,
955 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_SHADING_PROPERTIES_HUAWEI = 1000369002,
956 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INVOCATION_MASK_FEATURES_HUAWEI = 1000370000,
957 VK_STRUCTURE_TYPE_MEMORY_GET_REMOTE_ADDRESS_INFO_NV = 1000371000,
958 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_RDMA_FEATURES_NV = 1000371001,
959 VK_STRUCTURE_TYPE_PIPELINE_PROPERTIES_IDENTIFIER_EXT = 1000372000,
960 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROPERTIES_FEATURES_EXT = 1000372001,
961 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAME_BOUNDARY_FEATURES_EXT = 1000375000,
962 VK_STRUCTURE_TYPE_FRAME_BOUNDARY_EXT = 1000375001,
963 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_FEATURES_EXT = 1000376000,
964 VK_STRUCTURE_TYPE_SUBPASS_RESOLVE_PERFORMANCE_QUERY_EXT = 1000376001,
965 VK_STRUCTURE_TYPE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_INFO_EXT = 1000376002,
966 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_2_FEATURES_EXT = 1000377000,
967 VK_STRUCTURE_TYPE_SCREEN_SURFACE_CREATE_INFO_QNX = 1000378000,
968 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COLOR_WRITE_ENABLE_FEATURES_EXT = 1000381000,
969 VK_STRUCTURE_TYPE_PIPELINE_COLOR_WRITE_CREATE_INFO_EXT = 1000381001,
970 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIMITIVES_GENERATED_QUERY_FEATURES_EXT = 1000382000,
971 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_MAINTENANCE_1_FEATURES_KHR = 1000386000,
972 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_UNTYPED_POINTERS_FEATURES_KHR = 1000387000,
973 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_RGB_CONVERSION_FEATURES_VALVE = 1000390000,
974 VK_STRUCTURE_TYPE_VIDEO_ENCODE_RGB_CONVERSION_CAPABILITIES_VALVE = 1000390001,
975 VK_STRUCTURE_TYPE_VIDEO_ENCODE_PROFILE_RGB_CONVERSION_INFO_VALVE = 1000390002,
976 VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_RGB_CONVERSION_CREATE_INFO_VALVE = 1000390003,
977 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_VIEW_MIN_LOD_FEATURES_EXT = 1000391000,
978 VK_STRUCTURE_TYPE_IMAGE_VIEW_MIN_LOD_CREATE_INFO_EXT = 1000391001,
979 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_FEATURES_EXT = 1000392000,
980 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTI_DRAW_PROPERTIES_EXT = 1000392001,
981 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_2D_VIEW_OF_3D_FEATURES_EXT = 1000393000,
982 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_FEATURES_EXT = 1000395000,
983 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TILE_IMAGE_PROPERTIES_EXT = 1000395001,
984 VK_STRUCTURE_TYPE_MICROMAP_BUILD_INFO_EXT = 1000396000,
985 VK_STRUCTURE_TYPE_MICROMAP_VERSION_INFO_EXT = 1000396001,
986 VK_STRUCTURE_TYPE_COPY_MICROMAP_INFO_EXT = 1000396002,
987 VK_STRUCTURE_TYPE_COPY_MICROMAP_TO_MEMORY_INFO_EXT = 1000396003,
988 VK_STRUCTURE_TYPE_COPY_MEMORY_TO_MICROMAP_INFO_EXT = 1000396004,
989 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_FEATURES_EXT = 1000396005,
990 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPACITY_MICROMAP_PROPERTIES_EXT = 1000396006,
991 VK_STRUCTURE_TYPE_MICROMAP_CREATE_INFO_EXT = 1000396007,
992 VK_STRUCTURE_TYPE_MICROMAP_BUILD_SIZES_INFO_EXT = 1000396008,
993 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_OPACITY_MICROMAP_EXT = 1000396009,
994#ifdef VK_ENABLE_BETA_EXTENSIONS
995 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_FEATURES_NV = 1000397000,
996#endif
997#ifdef VK_ENABLE_BETA_EXTENSIONS
998 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DISPLACEMENT_MICROMAP_PROPERTIES_NV = 1000397001,
999#endif
1000#ifdef VK_ENABLE_BETA_EXTENSIONS
1001 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_TRIANGLES_DISPLACEMENT_MICROMAP_NV = 1000397002,
1002#endif
1003 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_FEATURES_HUAWEI = 1000404000,
1004 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_PROPERTIES_HUAWEI = 1000404001,
1005 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_CULLING_SHADER_VRS_FEATURES_HUAWEI = 1000404002,
1006 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BORDER_COLOR_SWIZZLE_FEATURES_EXT = 1000411000,
1007 VK_STRUCTURE_TYPE_SAMPLER_BORDER_COLOR_COMPONENT_MAPPING_CREATE_INFO_EXT = 1000411001,
1008 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PAGEABLE_DEVICE_LOCAL_MEMORY_FEATURES_EXT = 1000412000,
1009 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_PROPERTIES_ARM = 1000415000,
1010 VK_STRUCTURE_TYPE_DEVICE_QUEUE_SHADER_CORE_CONTROL_CREATE_INFO_ARM = 1000417000,
1011 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_FEATURES_ARM = 1000417001,
1012 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_PROPERTIES_ARM = 1000417002,
1013 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_SLICED_VIEW_OF_3D_FEATURES_EXT = 1000418000,
1014 VK_STRUCTURE_TYPE_IMAGE_VIEW_SLICED_CREATE_INFO_EXT = 1000418001,
1015 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_SET_HOST_MAPPING_FEATURES_VALVE = 1000420000,
1016 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_BINDING_REFERENCE_VALVE = 1000420001,
1017 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_HOST_MAPPING_INFO_VALVE = 1000420002,
1018 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NON_SEAMLESS_CUBE_MAP_FEATURES_EXT = 1000422000,
1019 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_FEATURES_ARM = 1000424000,
1020 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RENDER_PASS_STRIPED_PROPERTIES_ARM = 1000424001,
1021 VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_BEGIN_INFO_ARM = 1000424002,
1022 VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_INFO_ARM = 1000424003,
1023 VK_STRUCTURE_TYPE_RENDER_PASS_STRIPE_SUBMIT_INFO_ARM = 1000424004,
1024 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_NV = 1000426000,
1025 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_FEATURES_NV = 1000427000,
1026 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_DECOMPRESSION_PROPERTIES_NV = 1000427001,
1027 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_COMPUTE_FEATURES_NV = 1000428000,
1028 VK_STRUCTURE_TYPE_COMPUTE_PIPELINE_INDIRECT_BUFFER_INFO_NV = 1000428001,
1029 VK_STRUCTURE_TYPE_PIPELINE_INDIRECT_DEVICE_ADDRESS_INFO_NV = 1000428002,
1030 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_LINEAR_SWEPT_SPHERES_FEATURES_NV = 1000429008,
1031 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_LINEAR_SWEPT_SPHERES_DATA_NV = 1000429009,
1032 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_GEOMETRY_SPHERES_DATA_NV = 1000429010,
1033 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINEAR_COLOR_ATTACHMENT_FEATURES_NV = 1000430000,
1034 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MAXIMAL_RECONVERGENCE_FEATURES_KHR = 1000434000,
1035 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_FEATURES_EXT = 1000437000,
1036 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_FEATURES_QCOM = 1000440000,
1037 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_PROPERTIES_QCOM = 1000440001,
1038 VK_STRUCTURE_TYPE_IMAGE_VIEW_SAMPLE_WEIGHT_CREATE_INFO_QCOM = 1000440002,
1039 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_FEATURES_EXT = 1000451000,
1040 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_NESTED_COMMAND_BUFFER_PROPERTIES_EXT = 1000451001,
1041 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXT = 1000453000,
1042 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_FEATURES_EXT = 1000455000,
1043 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_DYNAMIC_STATE_3_PROPERTIES_EXT = 1000455001,
1044 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBPASS_MERGE_FEEDBACK_FEATURES_EXT = 1000458000,
1045 VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_CONTROL_EXT = 1000458001,
1046 VK_STRUCTURE_TYPE_RENDER_PASS_CREATION_FEEDBACK_CREATE_INFO_EXT = 1000458002,
1047 VK_STRUCTURE_TYPE_RENDER_PASS_SUBPASS_FEEDBACK_CREATE_INFO_EXT = 1000458003,
1048 VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_INFO_LUNARG = 1000459000,
1049 VK_STRUCTURE_TYPE_DIRECT_DRIVER_LOADING_LIST_LUNARG = 1000459001,
1050 VK_STRUCTURE_TYPE_TENSOR_CREATE_INFO_ARM = 1000460000,
1051 VK_STRUCTURE_TYPE_TENSOR_VIEW_CREATE_INFO_ARM = 1000460001,
1052 VK_STRUCTURE_TYPE_BIND_TENSOR_MEMORY_INFO_ARM = 1000460002,
1053 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_TENSOR_ARM = 1000460003,
1054 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TENSOR_PROPERTIES_ARM = 1000460004,
1055 VK_STRUCTURE_TYPE_TENSOR_FORMAT_PROPERTIES_ARM = 1000460005,
1056 VK_STRUCTURE_TYPE_TENSOR_DESCRIPTION_ARM = 1000460006,
1057 VK_STRUCTURE_TYPE_TENSOR_MEMORY_REQUIREMENTS_INFO_ARM = 1000460007,
1058 VK_STRUCTURE_TYPE_TENSOR_MEMORY_BARRIER_ARM = 1000460008,
1059 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TENSOR_FEATURES_ARM = 1000460009,
1060 VK_STRUCTURE_TYPE_DEVICE_TENSOR_MEMORY_REQUIREMENTS_ARM = 1000460010,
1061 VK_STRUCTURE_TYPE_COPY_TENSOR_INFO_ARM = 1000460011,
1062 VK_STRUCTURE_TYPE_TENSOR_COPY_ARM = 1000460012,
1063 VK_STRUCTURE_TYPE_TENSOR_DEPENDENCY_INFO_ARM = 1000460013,
1064 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_TENSOR_ARM = 1000460014,
1065 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_TENSOR_INFO_ARM = 1000460015,
1066 VK_STRUCTURE_TYPE_EXTERNAL_TENSOR_PROPERTIES_ARM = 1000460016,
1067 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_TENSOR_CREATE_INFO_ARM = 1000460017,
1068 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_TENSOR_FEATURES_ARM = 1000460018,
1069 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_BUFFER_TENSOR_PROPERTIES_ARM = 1000460019,
1070 VK_STRUCTURE_TYPE_DESCRIPTOR_GET_TENSOR_INFO_ARM = 1000460020,
1071 VK_STRUCTURE_TYPE_TENSOR_CAPTURE_DESCRIPTOR_DATA_INFO_ARM = 1000460021,
1072 VK_STRUCTURE_TYPE_TENSOR_VIEW_CAPTURE_DESCRIPTOR_DATA_INFO_ARM = 1000460022,
1073 VK_STRUCTURE_TYPE_FRAME_BOUNDARY_TENSORS_ARM = 1000460023,
1074 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_FEATURES_EXT = 1000462000,
1075 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_MODULE_IDENTIFIER_PROPERTIES_EXT = 1000462001,
1076 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_MODULE_IDENTIFIER_CREATE_INFO_EXT = 1000462002,
1077 VK_STRUCTURE_TYPE_SHADER_MODULE_IDENTIFIER_EXT = 1000462003,
1078 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT = 1000342000,
1079 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_FEATURES_NV = 1000464000,
1080 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_OPTICAL_FLOW_PROPERTIES_NV = 1000464001,
1081 VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_INFO_NV = 1000464002,
1082 VK_STRUCTURE_TYPE_OPTICAL_FLOW_IMAGE_FORMAT_PROPERTIES_NV = 1000464003,
1083 VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_INFO_NV = 1000464004,
1084 VK_STRUCTURE_TYPE_OPTICAL_FLOW_EXECUTE_INFO_NV = 1000464005,
1085 VK_STRUCTURE_TYPE_OPTICAL_FLOW_SESSION_CREATE_PRIVATE_DATA_INFO_NV = 1000464010,
1086 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_DITHERING_FEATURES_EXT = 1000465000,
1087 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_FEATURES_ANDROID = 1000468000,
1088 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FORMAT_RESOLVE_PROPERTIES_ANDROID = 1000468001,
1089 VK_STRUCTURE_TYPE_ANDROID_HARDWARE_BUFFER_FORMAT_RESOLVE_PROPERTIES_ANDROID = 1000468002,
1090 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ANTI_LAG_FEATURES_AMD = 1000476000,
1091 VK_STRUCTURE_TYPE_ANTI_LAG_DATA_AMD = 1000476001,
1092 VK_STRUCTURE_TYPE_ANTI_LAG_PRESENTATION_INFO_AMD = 1000476002,
1093#ifdef VK_ENABLE_BETA_EXTENSIONS
1094 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DENSE_GEOMETRY_FORMAT_FEATURES_AMDX = 1000478000,
1095#endif
1096#ifdef VK_ENABLE_BETA_EXTENSIONS
1097 VK_STRUCTURE_TYPE_ACCELERATION_STRUCTURE_DENSE_GEOMETRY_FORMAT_TRIANGLES_DATA_AMDX = 1000478001,
1098#endif
1099 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_ID_2_KHR = 1000479000,
1100 VK_STRUCTURE_TYPE_PRESENT_ID_2_KHR = 1000479001,
1101 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_ID_2_FEATURES_KHR = 1000479002,
1102 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_PRESENT_WAIT_2_KHR = 1000480000,
1103 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_WAIT_2_FEATURES_KHR = 1000480001,
1104 VK_STRUCTURE_TYPE_PRESENT_WAIT_2_INFO_KHR = 1000480002,
1105 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_POSITION_FETCH_FEATURES_KHR = 1000481000,
1106 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_FEATURES_EXT = 1000482000,
1107 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_OBJECT_PROPERTIES_EXT = 1000482001,
1108 VK_STRUCTURE_TYPE_SHADER_CREATE_INFO_EXT = 1000482002,
1109 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_FEATURES_KHR = 1000483000,
1110 VK_STRUCTURE_TYPE_PIPELINE_BINARY_CREATE_INFO_KHR = 1000483001,
1111 VK_STRUCTURE_TYPE_PIPELINE_BINARY_INFO_KHR = 1000483002,
1112 VK_STRUCTURE_TYPE_PIPELINE_BINARY_KEY_KHR = 1000483003,
1113 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_BINARY_PROPERTIES_KHR = 1000483004,
1114 VK_STRUCTURE_TYPE_RELEASE_CAPTURED_PIPELINE_DATA_INFO_KHR = 1000483005,
1115 VK_STRUCTURE_TYPE_PIPELINE_BINARY_DATA_INFO_KHR = 1000483006,
1116 VK_STRUCTURE_TYPE_PIPELINE_CREATE_INFO_KHR = 1000483007,
1117 VK_STRUCTURE_TYPE_DEVICE_PIPELINE_BINARY_INTERNAL_CACHE_CONTROL_KHR = 1000483008,
1118 VK_STRUCTURE_TYPE_PIPELINE_BINARY_HANDLES_INFO_KHR = 1000483009,
1119 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_PROPERTIES_FEATURES_QCOM = 1000484000,
1120 VK_STRUCTURE_TYPE_TILE_PROPERTIES_QCOM = 1000484001,
1121 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_AMIGO_PROFILING_FEATURES_SEC = 1000485000,
1122 VK_STRUCTURE_TYPE_AMIGO_PROFILING_SUBMIT_INFO_SEC = 1000485001,
1123 VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_KHR = 1000274000,
1124 VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_KHR = 1000274001,
1125 VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_KHR = 1000274002,
1126 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_KHR = 1000275000,
1127 VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_KHR = 1000275001,
1128 VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_KHR = 1000275002,
1129 VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_KHR = 1000275003,
1130 VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_KHR = 1000275004,
1131 VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_KHR = 1000275005,
1132 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_VIEWPORTS_FEATURES_QCOM = 1000488000,
1133 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_FEATURES_NV = 1000490000,
1134 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_INVOCATION_REORDER_PROPERTIES_NV = 1000490001,
1135 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_VECTOR_FEATURES_NV = 1000491000,
1136 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_VECTOR_PROPERTIES_NV = 1000491001,
1137 VK_STRUCTURE_TYPE_COOPERATIVE_VECTOR_PROPERTIES_NV = 1000491002,
1138 VK_STRUCTURE_TYPE_CONVERT_COOPERATIVE_VECTOR_MATRIX_INFO_NV = 1000491004,
1139 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_FEATURES_NV = 1000492000,
1140 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTENDED_SPARSE_ADDRESS_SPACE_PROPERTIES_NV = 1000492001,
1141 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT = 1000351000,
1142 VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT = 1000351002,
1143 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_FEATURES_EXT = 1000495000,
1144 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LEGACY_VERTEX_ATTRIBUTES_PROPERTIES_EXT = 1000495001,
1145 VK_STRUCTURE_TYPE_LAYER_SETTINGS_CREATE_INFO_EXT = 1000496000,
1146 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_FEATURES_ARM = 1000497000,
1147 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_CORE_BUILTINS_PROPERTIES_ARM = 1000497001,
1148 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_LIBRARY_GROUP_HANDLES_FEATURES_EXT = 1000498000,
1149 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_FEATURES_EXT = 1000499000,
1150 VK_STRUCTURE_TYPE_LATENCY_SLEEP_MODE_INFO_NV = 1000505000,
1151 VK_STRUCTURE_TYPE_LATENCY_SLEEP_INFO_NV = 1000505001,
1152 VK_STRUCTURE_TYPE_SET_LATENCY_MARKER_INFO_NV = 1000505002,
1153 VK_STRUCTURE_TYPE_GET_LATENCY_MARKER_INFO_NV = 1000505003,
1154 VK_STRUCTURE_TYPE_LATENCY_TIMINGS_FRAME_REPORT_NV = 1000505004,
1155 VK_STRUCTURE_TYPE_LATENCY_SUBMISSION_PRESENT_ID_NV = 1000505005,
1156 VK_STRUCTURE_TYPE_OUT_OF_BAND_QUEUE_TYPE_INFO_NV = 1000505006,
1157 VK_STRUCTURE_TYPE_SWAPCHAIN_LATENCY_CREATE_INFO_NV = 1000505007,
1158 VK_STRUCTURE_TYPE_LATENCY_SURFACE_CAPABILITIES_NV = 1000505008,
1159 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_FEATURES_KHR = 1000506000,
1160 VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_PROPERTIES_KHR = 1000506001,
1161 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_PROPERTIES_KHR = 1000506002,
1162 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_CREATE_INFO_ARM = 1000507000,
1163 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_CREATE_INFO_ARM = 1000507001,
1164 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_RESOURCE_INFO_ARM = 1000507002,
1165 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_CONSTANT_ARM = 1000507003,
1166 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_MEMORY_REQUIREMENTS_INFO_ARM = 1000507004,
1167 VK_STRUCTURE_TYPE_BIND_DATA_GRAPH_PIPELINE_SESSION_MEMORY_INFO_ARM = 1000507005,
1168 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DATA_GRAPH_FEATURES_ARM = 1000507006,
1169 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SHADER_MODULE_CREATE_INFO_ARM = 1000507007,
1170 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_PROPERTY_QUERY_RESULT_ARM = 1000507008,
1171 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_INFO_ARM = 1000507009,
1172 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_COMPILER_CONTROL_CREATE_INFO_ARM = 1000507010,
1173 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_REQUIREMENTS_INFO_ARM = 1000507011,
1174 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_REQUIREMENT_ARM = 1000507012,
1175 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_IDENTIFIER_CREATE_INFO_ARM = 1000507013,
1176 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_DISPATCH_INFO_ARM = 1000507014,
1177 VK_STRUCTURE_TYPE_DATA_GRAPH_PROCESSING_ENGINE_CREATE_INFO_ARM = 1000507016,
1178 VK_STRUCTURE_TYPE_QUEUE_FAMILY_DATA_GRAPH_PROCESSING_ENGINE_PROPERTIES_ARM = 1000507017,
1179 VK_STRUCTURE_TYPE_QUEUE_FAMILY_DATA_GRAPH_PROPERTIES_ARM = 1000507018,
1180 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_QUEUE_FAMILY_DATA_GRAPH_PROCESSING_ENGINE_INFO_ARM = 1000507019,
1181 VK_STRUCTURE_TYPE_DATA_GRAPH_PIPELINE_CONSTANT_TENSOR_SEMI_STRUCTURED_SPARSITY_INFO_ARM = 1000507015,
1182 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PER_VIEW_RENDER_AREAS_FEATURES_QCOM = 1000510000,
1183 VK_STRUCTURE_TYPE_MULTIVIEW_PER_VIEW_RENDER_AREAS_RENDER_PASS_BEGIN_INFO_QCOM = 1000510001,
1184 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR = 1000201000,
1185 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_PROPERTIES_KHR = 1000511000,
1186 VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_CAPABILITIES_KHR = 1000512000,
1187 VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PICTURE_INFO_KHR = 1000512001,
1188 VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_PROFILE_INFO_KHR = 1000512003,
1189 VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000512004,
1190 VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_DPB_SLOT_INFO_KHR = 1000512005,
1191 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_CAPABILITIES_KHR = 1000513000,
1192 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000513001,
1193 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_PICTURE_INFO_KHR = 1000513002,
1194 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_DPB_SLOT_INFO_KHR = 1000513003,
1195 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_AV1_FEATURES_KHR = 1000513004,
1196 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_PROFILE_INFO_KHR = 1000513005,
1197 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_RATE_CONTROL_INFO_KHR = 1000513006,
1198 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_RATE_CONTROL_LAYER_INFO_KHR = 1000513007,
1199 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_QUALITY_LEVEL_PROPERTIES_KHR = 1000513008,
1200 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_SESSION_CREATE_INFO_KHR = 1000513009,
1201 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_GOP_REMAINING_FRAME_INFO_KHR = 1000513010,
1202 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_DECODE_VP9_FEATURES_KHR = 1000514000,
1203 VK_STRUCTURE_TYPE_VIDEO_DECODE_VP9_CAPABILITIES_KHR = 1000514001,
1204 VK_STRUCTURE_TYPE_VIDEO_DECODE_VP9_PICTURE_INFO_KHR = 1000514002,
1205 VK_STRUCTURE_TYPE_VIDEO_DECODE_VP9_PROFILE_INFO_KHR = 1000514003,
1206 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_1_FEATURES_KHR = 1000515000,
1207 VK_STRUCTURE_TYPE_VIDEO_INLINE_QUERY_INFO_KHR = 1000515001,
1208 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PER_STAGE_DESCRIPTOR_SET_FEATURES_NV = 1000516000,
1209 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_FEATURES_QCOM = 1000518000,
1210 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_PROCESSING_2_PROPERTIES_QCOM = 1000518001,
1211 VK_STRUCTURE_TYPE_SAMPLER_BLOCK_MATCH_WINDOW_CREATE_INFO_QCOM = 1000518002,
1212 VK_STRUCTURE_TYPE_SAMPLER_CUBIC_WEIGHTS_CREATE_INFO_QCOM = 1000519000,
1213 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_WEIGHTS_FEATURES_QCOM = 1000519001,
1214 VK_STRUCTURE_TYPE_BLIT_IMAGE_CUBIC_WEIGHTS_INFO_QCOM = 1000519002,
1215 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_YCBCR_DEGAMMA_FEATURES_QCOM = 1000520000,
1216 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_YCBCR_DEGAMMA_CREATE_INFO_QCOM = 1000520001,
1217 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CUBIC_CLAMP_FEATURES_QCOM = 1000521000,
1218 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_FEATURES_EXT = 1000524000,
1219 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFIED_IMAGE_LAYOUTS_FEATURES_KHR = 1000527000,
1220 VK_STRUCTURE_TYPE_ATTACHMENT_FEEDBACK_LOOP_INFO_EXT = 1000527001,
1221 VK_STRUCTURE_TYPE_SCREEN_BUFFER_PROPERTIES_QNX = 1000529000,
1222 VK_STRUCTURE_TYPE_SCREEN_BUFFER_FORMAT_PROPERTIES_QNX = 1000529001,
1223 VK_STRUCTURE_TYPE_IMPORT_SCREEN_BUFFER_INFO_QNX = 1000529002,
1224 VK_STRUCTURE_TYPE_EXTERNAL_FORMAT_QNX = 1000529003,
1225 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_MEMORY_SCREEN_BUFFER_FEATURES_QNX = 1000529004,
1226 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_DRIVER_PROPERTIES_MSFT = 1000530000,
1227 VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR = 1000184000,
1228 VK_STRUCTURE_TYPE_SET_DESCRIPTOR_BUFFER_OFFSETS_INFO_EXT = 1000545007,
1229 VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_BUFFER_EMBEDDED_SAMPLERS_INFO_EXT = 1000545008,
1230 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_POOL_OVERALLOCATION_FEATURES_NV = 1000546000,
1231 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_MEMORY_HEAP_FEATURES_QCOM = 1000547000,
1232 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TILE_MEMORY_HEAP_PROPERTIES_QCOM = 1000547001,
1233 VK_STRUCTURE_TYPE_TILE_MEMORY_REQUIREMENTS_QCOM = 1000547002,
1234 VK_STRUCTURE_TYPE_TILE_MEMORY_BIND_INFO_QCOM = 1000547003,
1235 VK_STRUCTURE_TYPE_TILE_MEMORY_SIZE_INFO_QCOM = 1000547004,
1236 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_FEATURES_KHR = 1000549000,
1237 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_KHR = 1000426001,
1238 VK_STRUCTURE_TYPE_COPY_MEMORY_INDIRECT_INFO_KHR = 1000549002,
1239 VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INDIRECT_INFO_KHR = 1000549003,
1240 VK_STRUCTURE_TYPE_DISPLAY_SURFACE_STEREO_CREATE_INFO_NV = 1000551000,
1241 VK_STRUCTURE_TYPE_DISPLAY_MODE_STEREO_PROPERTIES_NV = 1000551001,
1242 VK_STRUCTURE_TYPE_VIDEO_ENCODE_INTRA_REFRESH_CAPABILITIES_KHR = 1000552000,
1243 VK_STRUCTURE_TYPE_VIDEO_ENCODE_SESSION_INTRA_REFRESH_CREATE_INFO_KHR = 1000552001,
1244 VK_STRUCTURE_TYPE_VIDEO_ENCODE_INTRA_REFRESH_INFO_KHR = 1000552002,
1245 VK_STRUCTURE_TYPE_VIDEO_REFERENCE_INTRA_REFRESH_INFO_KHR = 1000552003,
1246 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_INTRA_REFRESH_FEATURES_KHR = 1000552004,
1247 VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_CAPABILITIES_KHR = 1000553000,
1248 VK_STRUCTURE_TYPE_VIDEO_FORMAT_QUANTIZATION_MAP_PROPERTIES_KHR = 1000553001,
1249 VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_INFO_KHR = 1000553002,
1250 VK_STRUCTURE_TYPE_VIDEO_ENCODE_QUANTIZATION_MAP_SESSION_PARAMETERS_CREATE_INFO_KHR = 1000553005,
1251 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_ENCODE_QUANTIZATION_MAP_FEATURES_KHR = 1000553009,
1252 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H264_QUANTIZATION_MAP_CAPABILITIES_KHR = 1000553003,
1253 VK_STRUCTURE_TYPE_VIDEO_ENCODE_H265_QUANTIZATION_MAP_CAPABILITIES_KHR = 1000553004,
1254 VK_STRUCTURE_TYPE_VIDEO_FORMAT_H265_QUANTIZATION_MAP_PROPERTIES_KHR = 1000553006,
1255 VK_STRUCTURE_TYPE_VIDEO_ENCODE_AV1_QUANTIZATION_MAP_CAPABILITIES_KHR = 1000553007,
1256 VK_STRUCTURE_TYPE_VIDEO_FORMAT_AV1_QUANTIZATION_MAP_PROPERTIES_KHR = 1000553008,
1257 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAW_ACCESS_CHAINS_FEATURES_NV = 1000555000,
1258 VK_STRUCTURE_TYPE_EXTERNAL_COMPUTE_QUEUE_DEVICE_CREATE_INFO_NV = 1000556000,
1259 VK_STRUCTURE_TYPE_EXTERNAL_COMPUTE_QUEUE_CREATE_INFO_NV = 1000556001,
1260 VK_STRUCTURE_TYPE_EXTERNAL_COMPUTE_QUEUE_DATA_PARAMS_NV = 1000556002,
1261 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_COMPUTE_QUEUE_PROPERTIES_NV = 1000556003,
1262 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_RELAXED_EXTENDED_INSTRUCTION_FEATURES_KHR = 1000558000,
1263 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMMAND_BUFFER_INHERITANCE_FEATURES_NV = 1000559000,
1264 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_FEATURES_KHR = 1000562000,
1265 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_7_PROPERTIES_KHR = 1000562001,
1266 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_LIST_KHR = 1000562002,
1267 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_PROPERTIES_KHR = 1000562003,
1268 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LAYERED_API_VULKAN_PROPERTIES_KHR = 1000562004,
1269 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_FLOAT16_VECTOR_FEATURES_NV = 1000563000,
1270 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_REPLICATED_COMPOSITES_FEATURES_EXT = 1000564000,
1271 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT8_FEATURES_EXT = 1000567000,
1272 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RAY_TRACING_VALIDATION_FEATURES_NV = 1000568000,
1273 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_FEATURES_NV = 1000569000,
1274 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_CLUSTER_ACCELERATION_STRUCTURE_PROPERTIES_NV = 1000569001,
1275 VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_CLUSTERS_BOTTOM_LEVEL_INPUT_NV = 1000569002,
1276 VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_TRIANGLE_CLUSTER_INPUT_NV = 1000569003,
1277 VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_MOVE_OBJECTS_INPUT_NV = 1000569004,
1278 VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_INPUT_INFO_NV = 1000569005,
1279 VK_STRUCTURE_TYPE_CLUSTER_ACCELERATION_STRUCTURE_COMMANDS_INFO_NV = 1000569006,
1280 VK_STRUCTURE_TYPE_RAY_TRACING_PIPELINE_CLUSTER_ACCELERATION_STRUCTURE_CREATE_INFO_NV = 1000569007,
1281 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_FEATURES_NV = 1000570000,
1282 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PARTITIONED_ACCELERATION_STRUCTURE_PROPERTIES_NV = 1000570001,
1283 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_PARTITIONED_ACCELERATION_STRUCTURE_NV = 1000570002,
1284 VK_STRUCTURE_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCES_INPUT_NV = 1000570003,
1285 VK_STRUCTURE_TYPE_BUILD_PARTITIONED_ACCELERATION_STRUCTURE_INFO_NV = 1000570004,
1286 VK_STRUCTURE_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_FLAGS_NV = 1000570005,
1287 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_FEATURES_EXT = 1000572000,
1288 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEVICE_GENERATED_COMMANDS_PROPERTIES_EXT = 1000572001,
1289 VK_STRUCTURE_TYPE_GENERATED_COMMANDS_MEMORY_REQUIREMENTS_INFO_EXT = 1000572002,
1290 VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_CREATE_INFO_EXT = 1000572003,
1291 VK_STRUCTURE_TYPE_GENERATED_COMMANDS_INFO_EXT = 1000572004,
1292 VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_CREATE_INFO_EXT = 1000572006,
1293 VK_STRUCTURE_TYPE_INDIRECT_COMMANDS_LAYOUT_TOKEN_EXT = 1000572007,
1294 VK_STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_PIPELINE_EXT = 1000572008,
1295 VK_STRUCTURE_TYPE_WRITE_INDIRECT_EXECUTION_SET_SHADER_EXT = 1000572009,
1296 VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_PIPELINE_INFO_EXT = 1000572010,
1297 VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_INFO_EXT = 1000572011,
1298 VK_STRUCTURE_TYPE_INDIRECT_EXECUTION_SET_SHADER_LAYOUT_INFO_EXT = 1000572012,
1299 VK_STRUCTURE_TYPE_GENERATED_COMMANDS_PIPELINE_INFO_EXT = 1000572013,
1300 VK_STRUCTURE_TYPE_GENERATED_COMMANDS_SHADER_INFO_EXT = 1000572014,
1301 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_8_FEATURES_KHR = 1000574000,
1302 VK_STRUCTURE_TYPE_MEMORY_BARRIER_ACCESS_FLAGS_3_KHR = 1000574002,
1303 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_FEATURES_MESA = 1000575000,
1304 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ALIGNMENT_CONTROL_PROPERTIES_MESA = 1000575001,
1305 VK_STRUCTURE_TYPE_IMAGE_ALIGNMENT_CONTROL_CREATE_INFO_MESA = 1000575002,
1306 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_CONTROL_FEATURES_EXT = 1000582000,
1307 VK_STRUCTURE_TYPE_PIPELINE_VIEWPORT_DEPTH_CLAMP_CONTROL_CREATE_INFO_EXT = 1000582001,
1308 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_9_FEATURES_KHR = 1000584000,
1309 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_9_PROPERTIES_KHR = 1000584001,
1310 VK_STRUCTURE_TYPE_QUEUE_FAMILY_OWNERSHIP_TRANSFER_PROPERTIES_KHR = 1000584002,
1311 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VIDEO_MAINTENANCE_2_FEATURES_KHR = 1000586000,
1312 VK_STRUCTURE_TYPE_VIDEO_DECODE_H264_INLINE_SESSION_PARAMETERS_INFO_KHR = 1000586001,
1313 VK_STRUCTURE_TYPE_VIDEO_DECODE_H265_INLINE_SESSION_PARAMETERS_INFO_KHR = 1000586002,
1314 VK_STRUCTURE_TYPE_VIDEO_DECODE_AV1_INLINE_SESSION_PARAMETERS_INFO_KHR = 1000586003,
1315 VK_STRUCTURE_TYPE_SURFACE_CREATE_INFO_OHOS = 1000685000,
1316 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HDR_VIVID_FEATURES_HUAWEI = 1000590000,
1317 VK_STRUCTURE_TYPE_HDR_VIVID_DYNAMIC_METADATA_HUAWEI = 1000590001,
1318 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_FEATURES_NV = 1000593000,
1319 VK_STRUCTURE_TYPE_COOPERATIVE_MATRIX_FLEXIBLE_DIMENSIONS_PROPERTIES_NV = 1000593001,
1320 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COOPERATIVE_MATRIX_2_PROPERTIES_NV = 1000593002,
1321 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_OPACITY_MICROMAP_FEATURES_ARM = 1000596000,
1322 VK_STRUCTURE_TYPE_IMPORT_MEMORY_METAL_HANDLE_INFO_EXT = 1000602000,
1323 VK_STRUCTURE_TYPE_MEMORY_METAL_HANDLE_PROPERTIES_EXT = 1000602001,
1324 VK_STRUCTURE_TYPE_MEMORY_GET_METAL_HANDLE_INFO_EXT = 1000602002,
1325 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_KHR = 1000421000,
1326 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_ROBUSTNESS_FEATURES_EXT = 1000608000,
1327 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FORMAT_PACK_FEATURES_ARM = 1000609000,
1328 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_LAYERED_FEATURES_VALVE = 1000611000,
1329 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_LAYERED_PROPERTIES_VALVE = 1000611001,
1330 VK_STRUCTURE_TYPE_PIPELINE_FRAGMENT_DENSITY_MAP_LAYERED_CREATE_INFO_VALVE = 1000611002,
1331 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_KHR = 1000286000,
1332 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_KHR = 1000286001,
1333#ifdef VK_ENABLE_BETA_EXTENSIONS
1334 VK_STRUCTURE_TYPE_SET_PRESENT_CONFIG_NV = 1000613000,
1335#endif
1336#ifdef VK_ENABLE_BETA_EXTENSIONS
1337 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_METERING_FEATURES_NV = 1000613001,
1338#endif
1339 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_EXT = 1000425000,
1340 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_EXT = 1000425001,
1341 VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_EXT = 1000425002,
1342 VK_STRUCTURE_TYPE_RENDERING_END_INFO_EXT = 1000619003,
1343 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_DEVICE_MEMORY_FEATURES_EXT = 1000620000,
1344 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_KHR = 1000361000,
1345 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CACHE_INCREMENTAL_MODE_FEATURES_SEC = 1000637000,
1346 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
1347 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETER_FEATURES = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DRAW_PARAMETERS_FEATURES,
1348 // VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT is a deprecated alias
1349 VK_STRUCTURE_TYPE_DEBUG_REPORT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEBUG_REPORT_CALLBACK_CREATE_INFO_EXT,
1350 VK_STRUCTURE_TYPE_RENDERING_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_INFO,
1351 VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_INFO,
1352 VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO,
1353 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_FEATURES,
1354 VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO_KHR = VK_STRUCTURE_TYPE_COMMAND_BUFFER_INHERITANCE_RENDERING_INFO,
1355 VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_MULTIVIEW_CREATE_INFO,
1356 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_FEATURES,
1357 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MULTIVIEW_PROPERTIES,
1358 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FEATURES_2,
1359 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROPERTIES_2,
1360 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_2,
1361 VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_PROPERTIES_2,
1362 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_FORMAT_INFO_2,
1363 VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_QUEUE_FAMILY_PROPERTIES_2,
1364 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MEMORY_PROPERTIES_2,
1365 VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_FORMAT_PROPERTIES_2,
1366 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SPARSE_IMAGE_FORMAT_INFO_2,
1367 VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_ALLOCATE_FLAGS_INFO,
1368 VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_RENDER_PASS_BEGIN_INFO,
1369 VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_COMMAND_BUFFER_BEGIN_INFO,
1370 VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_SUBMIT_INFO,
1371 VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_BIND_SPARSE_INFO,
1372 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_DEVICE_GROUP_INFO,
1373 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_DEVICE_GROUP_INFO,
1374 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXTURE_COMPRESSION_ASTC_HDR_FEATURES,
1375 VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_ROBUSTNESS_CREATE_INFO,
1376 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_FEATURES,
1377 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_ROBUSTNESS_PROPERTIES,
1378 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GROUP_PROPERTIES,
1379 VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_GROUP_DEVICE_CREATE_INFO,
1380 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_IMAGE_FORMAT_INFO,
1381 VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_IMAGE_FORMAT_PROPERTIES,
1382 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_BUFFER_INFO,
1383 VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_BUFFER_PROPERTIES,
1384 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ID_PROPERTIES,
1385 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_BUFFER_CREATE_INFO,
1386 VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXTERNAL_MEMORY_IMAGE_CREATE_INFO,
1387 VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_MEMORY_ALLOCATE_INFO,
1388 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_SEMAPHORE_INFO,
1389 VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_SEMAPHORE_PROPERTIES,
1390 VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_SEMAPHORE_CREATE_INFO,
1391 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PUSH_DESCRIPTOR_PROPERTIES,
1392 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
1393 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT16_INT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT16_INT8_FEATURES,
1394 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_16BIT_STORAGE_FEATURES,
1395 VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_CREATE_INFO,
1396 // VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT is a deprecated alias
1397 VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES2_EXT = VK_STRUCTURE_TYPE_SURFACE_CAPABILITIES_2_EXT,
1398 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGELESS_FRAMEBUFFER_FEATURES,
1399 VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENTS_CREATE_INFO,
1400 VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO_KHR = VK_STRUCTURE_TYPE_FRAMEBUFFER_ATTACHMENT_IMAGE_INFO,
1401 VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_ATTACHMENT_BEGIN_INFO,
1402 VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_2,
1403 VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_2,
1404 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2_KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_2,
1405 VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2_KHR = VK_STRUCTURE_TYPE_SUBPASS_DEPENDENCY_2,
1406 VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_CREATE_INFO_2,
1407 VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO_KHR = VK_STRUCTURE_TYPE_SUBPASS_BEGIN_INFO,
1408 VK_STRUCTURE_TYPE_SUBPASS_END_INFO_KHR = VK_STRUCTURE_TYPE_SUBPASS_END_INFO,
1409 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_EXTERNAL_FENCE_INFO,
1410 VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_EXTERNAL_FENCE_PROPERTIES,
1411 VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_EXPORT_FENCE_CREATE_INFO,
1412 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_POINT_CLIPPING_PROPERTIES,
1413 VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_RENDER_PASS_INPUT_ATTACHMENT_ASPECT_CREATE_INFO,
1414 VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_VIEW_USAGE_CREATE_INFO,
1415 VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_TESSELLATION_DOMAIN_ORIGIN_STATE_CREATE_INFO,
1416 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES,
1417 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTER_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VARIABLE_POINTERS_FEATURES_KHR,
1418 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_REQUIREMENTS,
1419 VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_DEDICATED_ALLOCATE_INFO,
1420 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_FILTER_MINMAX_PROPERTIES,
1421 VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_SAMPLER_REDUCTION_MODE_CREATE_INFO,
1422 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_FEATURES,
1423 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INLINE_UNIFORM_BLOCK_PROPERTIES,
1424 VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK_EXT = VK_STRUCTURE_TYPE_WRITE_DESCRIPTOR_SET_INLINE_UNIFORM_BLOCK,
1425 VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_INLINE_UNIFORM_BLOCK_CREATE_INFO,
1426 VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_REQUIREMENTS_INFO_2,
1427 VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_REQUIREMENTS_INFO_2,
1428 VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2_KHR = VK_STRUCTURE_TYPE_IMAGE_SPARSE_MEMORY_REQUIREMENTS_INFO_2,
1429 VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_MEMORY_REQUIREMENTS_2,
1430 VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2_KHR = VK_STRUCTURE_TYPE_SPARSE_IMAGE_MEMORY_REQUIREMENTS_2,
1431 VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_FORMAT_LIST_CREATE_INFO,
1432 VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_NV = VK_STRUCTURE_TYPE_ATTACHMENT_SAMPLE_COUNT_INFO_AMD,
1433 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_CREATE_INFO,
1434 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_INFO,
1435 VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_PLANE_MEMORY_INFO,
1436 VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO_KHR = VK_STRUCTURE_TYPE_IMAGE_PLANE_MEMORY_REQUIREMENTS_INFO,
1437 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES,
1438 VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_SAMPLER_YCBCR_CONVERSION_IMAGE_FORMAT_PROPERTIES,
1439 VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_BUFFER_MEMORY_INFO,
1440 VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO_KHR = VK_STRUCTURE_TYPE_BIND_IMAGE_MEMORY_INFO,
1441 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_BINDING_FLAGS_CREATE_INFO,
1442 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_FEATURES,
1443 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DESCRIPTOR_INDEXING_PROPERTIES,
1444 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_ALLOCATE_INFO,
1445 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT_EXT = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_VARIABLE_DESCRIPTOR_COUNT_LAYOUT_SUPPORT,
1446 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_3_PROPERTIES,
1447 VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT_KHR = VK_STRUCTURE_TYPE_DESCRIPTOR_SET_LAYOUT_SUPPORT,
1448 VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO,
1449 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_EXTENDED_TYPES_FEATURES,
1450 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_8BIT_STORAGE_FEATURES,
1451 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_ATOMIC_INT64_FEATURES,
1452 VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_EXT = VK_STRUCTURE_TYPE_CALIBRATED_TIMESTAMP_INFO_KHR,
1453 VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_QUEUE_GLOBAL_PRIORITY_CREATE_INFO,
1454 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES,
1455 VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_KHR = VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES,
1456 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO,
1457 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES,
1458 VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_CREATION_FEEDBACK_CREATE_INFO,
1459 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DRIVER_PROPERTIES,
1460 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FLOAT_CONTROLS_PROPERTIES,
1461 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_STENCIL_RESOLVE_PROPERTIES,
1462 VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE_KHR = VK_STRUCTURE_TYPE_SUBPASS_DESCRIPTION_DEPTH_STENCIL_RESOLVE,
1463 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_NV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COMPUTE_SHADER_DERIVATIVES_FEATURES_KHR,
1464 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_NV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_BARYCENTRIC_FEATURES_KHR,
1465 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_FEATURES,
1466 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TIMELINE_SEMAPHORE_PROPERTIES,
1467 VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_TYPE_CREATE_INFO,
1468 VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_TIMELINE_SEMAPHORE_SUBMIT_INFO,
1469 VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_WAIT_INFO,
1470 VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_SIGNAL_INFO,
1471 // VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL is a deprecated alias
1472 VK_STRUCTURE_TYPE_QUERY_POOL_CREATE_INFO_INTEL = VK_STRUCTURE_TYPE_QUERY_POOL_PERFORMANCE_QUERY_CREATE_INFO_INTEL,
1473 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VULKAN_MEMORY_MODEL_FEATURES,
1474 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_TERMINATE_INVOCATION_FEATURES,
1475 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SCALAR_BLOCK_LAYOUT_FEATURES,
1476 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_PROPERTIES,
1477 VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO,
1478 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SUBGROUP_SIZE_CONTROL_FEATURES,
1479 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DYNAMIC_RENDERING_LOCAL_READ_FEATURES,
1480 VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_ATTACHMENT_LOCATION_INFO,
1481 VK_STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_INPUT_ATTACHMENT_INDEX_INFO,
1482 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SEPARATE_DEPTH_STENCIL_LAYOUTS_FEATURES,
1483 VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_REFERENCE_STENCIL_LAYOUT,
1484 VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT_KHR = VK_STRUCTURE_TYPE_ATTACHMENT_DESCRIPTION_STENCIL_LAYOUT,
1485 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_ADDRESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_EXT,
1486 VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_EXT = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
1487 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TOOL_PROPERTIES,
1488 VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_IMAGE_STENCIL_USAGE_CREATE_INFO,
1489 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_UNIFORM_BUFFER_STANDARD_LAYOUT_FEATURES,
1490 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_BUFFER_DEVICE_ADDRESS_FEATURES,
1491 VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_DEVICE_ADDRESS_INFO,
1492 VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_OPAQUE_CAPTURE_ADDRESS_CREATE_INFO,
1493 VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_OPAQUE_CAPTURE_ADDRESS_ALLOCATE_INFO,
1494 VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_MEMORY_OPAQUE_CAPTURE_ADDRESS_INFO,
1495 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES,
1496 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO,
1497 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES,
1498 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES,
1499 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES,
1500 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_FEATURES,
1501 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_IMAGE_COPY_PROPERTIES,
1502 VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY_EXT = VK_STRUCTURE_TYPE_MEMORY_TO_IMAGE_COPY,
1503 VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY_EXT = VK_STRUCTURE_TYPE_IMAGE_TO_MEMORY_COPY,
1504 VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO_EXT = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_MEMORY_INFO,
1505 VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO_EXT = VK_STRUCTURE_TYPE_COPY_MEMORY_TO_IMAGE_INFO,
1506 VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO_EXT = VK_STRUCTURE_TYPE_HOST_IMAGE_LAYOUT_TRANSITION_INFO,
1507 VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO_EXT = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_IMAGE_INFO,
1508 VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE_EXT = VK_STRUCTURE_TYPE_SUBRESOURCE_HOST_MEMCPY_SIZE,
1509 VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY_EXT = VK_STRUCTURE_TYPE_HOST_IMAGE_COPY_DEVICE_PERFORMANCE_QUERY,
1510 VK_STRUCTURE_TYPE_MEMORY_MAP_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_MAP_INFO,
1511 VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO_KHR = VK_STRUCTURE_TYPE_MEMORY_UNMAP_INFO,
1512 VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_EXT = VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_KHR,
1513 VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_EXT = VK_STRUCTURE_TYPE_SURFACE_PRESENT_SCALING_CAPABILITIES_KHR,
1514 VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_EXT = VK_STRUCTURE_TYPE_SURFACE_PRESENT_MODE_COMPATIBILITY_KHR,
1515 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SWAPCHAIN_MAINTENANCE_1_FEATURES_KHR,
1516 VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_EXT = VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_FENCE_INFO_KHR,
1517 VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODES_CREATE_INFO_KHR,
1518 VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_EXT = VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_MODE_INFO_KHR,
1519 VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_SWAPCHAIN_PRESENT_SCALING_CREATE_INFO_KHR,
1520 VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_EXT = VK_STRUCTURE_TYPE_RELEASE_SWAPCHAIN_IMAGES_INFO_KHR,
1521 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_DEMOTE_TO_HELPER_INVOCATION_FEATURES,
1522 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_FEATURES,
1523 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_INTEGER_DOT_PRODUCT_PROPERTIES,
1524 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_TEXEL_BUFFER_ALIGNMENT_PROPERTIES,
1525 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_FEATURES_KHR,
1526 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ROBUSTNESS_2_PROPERTIES_KHR,
1527 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRIVATE_DATA_FEATURES,
1528 VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_DEVICE_PRIVATE_DATA_CREATE_INFO,
1529 VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO,
1530 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_CREATION_CACHE_CONTROL_FEATURES,
1531 VK_STRUCTURE_TYPE_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_MEMORY_BARRIER_2,
1532 VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_BUFFER_MEMORY_BARRIER_2,
1533 VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2_KHR = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER_2,
1534 VK_STRUCTURE_TYPE_DEPENDENCY_INFO_KHR = VK_STRUCTURE_TYPE_DEPENDENCY_INFO,
1535 VK_STRUCTURE_TYPE_SUBMIT_INFO_2_KHR = VK_STRUCTURE_TYPE_SUBMIT_INFO_2,
1536 VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_SEMAPHORE_SUBMIT_INFO,
1537 VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO_KHR = VK_STRUCTURE_TYPE_COMMAND_BUFFER_SUBMIT_INFO,
1538 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SYNCHRONIZATION_2_FEATURES,
1539 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_ZERO_INITIALIZE_WORKGROUP_MEMORY_FEATURES,
1540 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_IMAGE_ROBUSTNESS_FEATURES,
1541 VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_BUFFER_INFO_2,
1542 VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_IMAGE_INFO_2,
1543 VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_BUFFER_TO_IMAGE_INFO_2,
1544 VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2_KHR = VK_STRUCTURE_TYPE_COPY_IMAGE_TO_BUFFER_INFO_2,
1545 VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_BLIT_IMAGE_INFO_2,
1546 VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2_KHR = VK_STRUCTURE_TYPE_RESOLVE_IMAGE_INFO_2,
1547 VK_STRUCTURE_TYPE_BUFFER_COPY_2_KHR = VK_STRUCTURE_TYPE_BUFFER_COPY_2,
1548 VK_STRUCTURE_TYPE_IMAGE_COPY_2_KHR = VK_STRUCTURE_TYPE_IMAGE_COPY_2,
1549 VK_STRUCTURE_TYPE_IMAGE_BLIT_2_KHR = VK_STRUCTURE_TYPE_IMAGE_BLIT_2,
1550 VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2_KHR = VK_STRUCTURE_TYPE_BUFFER_IMAGE_COPY_2,
1551 VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2_KHR = VK_STRUCTURE_TYPE_IMAGE_RESOLVE_2,
1552 VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_EXT = VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2,
1553 VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_EXT = VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2,
1554 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_ARM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_FEATURES_EXT,
1555 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_VALVE = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MUTABLE_DESCRIPTOR_TYPE_FEATURES_EXT,
1556 VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_VALVE = VK_STRUCTURE_TYPE_MUTABLE_DESCRIPTOR_TYPE_CREATE_INFO_EXT,
1557 VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3_KHR = VK_STRUCTURE_TYPE_FORMAT_PROPERTIES_3,
1558 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PRESENT_MODE_FIFO_LATEST_READY_FEATURES_KHR,
1559 VK_STRUCTURE_TYPE_PIPELINE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_INFO_KHR,
1560 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_GLOBAL_PRIORITY_QUERY_FEATURES,
1561 VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES_EXT = VK_STRUCTURE_TYPE_QUEUE_FAMILY_GLOBAL_PRIORITY_PROPERTIES,
1562 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_FEATURES,
1563 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_4_PROPERTIES,
1564 VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_DEVICE_BUFFER_MEMORY_REQUIREMENTS,
1565 VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS_KHR = VK_STRUCTURE_TYPE_DEVICE_IMAGE_MEMORY_REQUIREMENTS,
1566 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_SUBGROUP_ROTATE_FEATURES,
1567 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_DEPTH_CLAMP_ZERO_ONE_FEATURES_KHR,
1568 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_QCOM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_FEATURES_EXT,
1569 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_QCOM = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_DENSITY_MAP_OFFSET_PROPERTIES_EXT,
1570 VK_STRUCTURE_TYPE_SUBPASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_QCOM = VK_STRUCTURE_TYPE_RENDER_PASS_FRAGMENT_DENSITY_MAP_OFFSET_END_INFO_EXT,
1571 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_NV = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_COPY_MEMORY_INDIRECT_PROPERTIES_KHR,
1572 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES_EXT = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PIPELINE_PROTECTED_ACCESS_FEATURES,
1573 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_FEATURES,
1574 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_5_PROPERTIES,
1575 VK_STRUCTURE_TYPE_RENDERING_AREA_INFO_KHR = VK_STRUCTURE_TYPE_RENDERING_AREA_INFO,
1576 VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO_KHR = VK_STRUCTURE_TYPE_DEVICE_IMAGE_SUBRESOURCE_INFO,
1577 VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2_KHR = VK_STRUCTURE_TYPE_SUBRESOURCE_LAYOUT_2,
1578 VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2_KHR = VK_STRUCTURE_TYPE_IMAGE_SUBRESOURCE_2,
1579 VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_CREATE_FLAGS_2_CREATE_INFO,
1580 VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_BUFFER_USAGE_FLAGS_2_CREATE_INFO,
1581 VK_STRUCTURE_TYPE_SHADER_REQUIRED_SUBGROUP_SIZE_CREATE_INFO_EXT = VK_STRUCTURE_TYPE_PIPELINE_SHADER_STAGE_REQUIRED_SUBGROUP_SIZE_CREATE_INFO,
1582 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_PROPERTIES,
1583 VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_VERTEX_INPUT_DIVISOR_STATE_CREATE_INFO,
1584 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_VERTEX_ATTRIBUTE_DIVISOR_FEATURES,
1585 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_FLOAT_CONTROLS_2_FEATURES,
1586 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_INDEX_TYPE_UINT8_FEATURES,
1587 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_FEATURES,
1588 VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO_KHR = VK_STRUCTURE_TYPE_PIPELINE_RASTERIZATION_LINE_STATE_CREATE_INFO,
1589 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_LINE_RASTERIZATION_PROPERTIES,
1590 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SHADER_EXPECT_ASSUME_FEATURES,
1591 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_FEATURES,
1592 VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES_KHR = VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_MAINTENANCE_6_PROPERTIES,
1593 VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS_KHR = VK_STRUCTURE_TYPE_BIND_MEMORY_STATUS,
1594 VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO_KHR = VK_STRUCTURE_TYPE_BIND_DESCRIPTOR_SETS_INFO,
1595 VK_STRUCTURE_TYPE_PUSH_CONSTANTS_INFO_KHR = VK_STRUCTURE_TYPE_PUSH_CONSTANTS_INFO,
1596 VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO_KHR = VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_INFO,
1597 VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO_KHR = VK_STRUCTURE_TYPE_PUSH_DESCRIPTOR_SET_WITH_TEMPLATE_INFO,
1598 VK_STRUCTURE_TYPE_MAX_ENUM = 0x7FFFFFFF
1599} VkStructureType;
1600
1601typedef enum VkPipelineCacheHeaderVersion {
1602 VK_PIPELINE_CACHE_HEADER_VERSION_ONE = 1,
1603 VK_PIPELINE_CACHE_HEADER_VERSION_MAX_ENUM = 0x7FFFFFFF
1604} VkPipelineCacheHeaderVersion;
1605
1606typedef enum VkImageLayout {
1607 VK_IMAGE_LAYOUT_UNDEFINED = 0,
1608 VK_IMAGE_LAYOUT_GENERAL = 1,
1609 VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL = 2,
1610 VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL = 3,
1611 VK_IMAGE_LAYOUT_DEPTH_STENCIL_READ_ONLY_OPTIMAL = 4,
1612 VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL = 5,
1613 VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL = 6,
1614 VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL = 7,
1615 VK_IMAGE_LAYOUT_PREINITIALIZED = 8,
1616 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL = 1000117000,
1617 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL = 1000117001,
1618 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL = 1000241000,
1619 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL = 1000241001,
1620 VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL = 1000241002,
1621 VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL = 1000241003,
1622 VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL = 1000314000,
1623 VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL = 1000314001,
1624 VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ = 1000232000,
1625 VK_IMAGE_LAYOUT_PRESENT_SRC_KHR = 1000001002,
1626 VK_IMAGE_LAYOUT_VIDEO_DECODE_DST_KHR = 1000024000,
1627 VK_IMAGE_LAYOUT_VIDEO_DECODE_SRC_KHR = 1000024001,
1628 VK_IMAGE_LAYOUT_VIDEO_DECODE_DPB_KHR = 1000024002,
1629 VK_IMAGE_LAYOUT_SHARED_PRESENT_KHR = 1000111000,
1630 VK_IMAGE_LAYOUT_FRAGMENT_DENSITY_MAP_OPTIMAL_EXT = 1000218000,
1631 VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR = 1000164003,
1632 VK_IMAGE_LAYOUT_VIDEO_ENCODE_DST_KHR = 1000299000,
1633 VK_IMAGE_LAYOUT_VIDEO_ENCODE_SRC_KHR = 1000299001,
1634 VK_IMAGE_LAYOUT_VIDEO_ENCODE_DPB_KHR = 1000299002,
1635 VK_IMAGE_LAYOUT_ATTACHMENT_FEEDBACK_LOOP_OPTIMAL_EXT = 1000339000,
1636 VK_IMAGE_LAYOUT_TENSOR_ALIASING_ARM = 1000460000,
1637 VK_IMAGE_LAYOUT_VIDEO_ENCODE_QUANTIZATION_MAP_KHR = 1000553000,
1638 VK_IMAGE_LAYOUT_ZERO_INITIALIZED_EXT = 1000620000,
1639 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_STENCIL_ATTACHMENT_OPTIMAL,
1640 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_STENCIL_READ_ONLY_OPTIMAL,
1641 VK_IMAGE_LAYOUT_SHADING_RATE_OPTIMAL_NV = VK_IMAGE_LAYOUT_FRAGMENT_SHADING_RATE_ATTACHMENT_OPTIMAL_KHR,
1642 VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ_KHR = VK_IMAGE_LAYOUT_RENDERING_LOCAL_READ,
1643 VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_ATTACHMENT_OPTIMAL,
1644 VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_DEPTH_READ_ONLY_OPTIMAL,
1645 VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_ATTACHMENT_OPTIMAL,
1646 VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_STENCIL_READ_ONLY_OPTIMAL,
1647 VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL_KHR = VK_IMAGE_LAYOUT_READ_ONLY_OPTIMAL,
1648 VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL_KHR = VK_IMAGE_LAYOUT_ATTACHMENT_OPTIMAL,
1649 VK_IMAGE_LAYOUT_MAX_ENUM = 0x7FFFFFFF
1650} VkImageLayout;
1651
1652typedef enum VkObjectType {
1653 VK_OBJECT_TYPE_UNKNOWN = 0,
1654 VK_OBJECT_TYPE_INSTANCE = 1,
1655 VK_OBJECT_TYPE_PHYSICAL_DEVICE = 2,
1656 VK_OBJECT_TYPE_DEVICE = 3,
1657 VK_OBJECT_TYPE_QUEUE = 4,
1658 VK_OBJECT_TYPE_SEMAPHORE = 5,
1659 VK_OBJECT_TYPE_COMMAND_BUFFER = 6,
1660 VK_OBJECT_TYPE_FENCE = 7,
1661 VK_OBJECT_TYPE_DEVICE_MEMORY = 8,
1662 VK_OBJECT_TYPE_BUFFER = 9,
1663 VK_OBJECT_TYPE_IMAGE = 10,
1664 VK_OBJECT_TYPE_EVENT = 11,
1665 VK_OBJECT_TYPE_QUERY_POOL = 12,
1666 VK_OBJECT_TYPE_BUFFER_VIEW = 13,
1667 VK_OBJECT_TYPE_IMAGE_VIEW = 14,
1668 VK_OBJECT_TYPE_SHADER_MODULE = 15,
1669 VK_OBJECT_TYPE_PIPELINE_CACHE = 16,
1670 VK_OBJECT_TYPE_PIPELINE_LAYOUT = 17,
1671 VK_OBJECT_TYPE_RENDER_PASS = 18,
1672 VK_OBJECT_TYPE_PIPELINE = 19,
1673 VK_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT = 20,
1674 VK_OBJECT_TYPE_SAMPLER = 21,
1675 VK_OBJECT_TYPE_DESCRIPTOR_POOL = 22,
1676 VK_OBJECT_TYPE_DESCRIPTOR_SET = 23,
1677 VK_OBJECT_TYPE_FRAMEBUFFER = 24,
1678 VK_OBJECT_TYPE_COMMAND_POOL = 25,
1679 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION = 1000156000,
1680 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE = 1000085000,
1681 VK_OBJECT_TYPE_PRIVATE_DATA_SLOT = 1000295000,
1682 VK_OBJECT_TYPE_SURFACE_KHR = 1000000000,
1683 VK_OBJECT_TYPE_SWAPCHAIN_KHR = 1000001000,
1684 VK_OBJECT_TYPE_DISPLAY_KHR = 1000002000,
1685 VK_OBJECT_TYPE_DISPLAY_MODE_KHR = 1000002001,
1686 VK_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT = 1000011000,
1687 VK_OBJECT_TYPE_VIDEO_SESSION_KHR = 1000023000,
1688 VK_OBJECT_TYPE_VIDEO_SESSION_PARAMETERS_KHR = 1000023001,
1689 VK_OBJECT_TYPE_CU_MODULE_NVX = 1000029000,
1690 VK_OBJECT_TYPE_CU_FUNCTION_NVX = 1000029001,
1691 VK_OBJECT_TYPE_DEBUG_UTILS_MESSENGER_EXT = 1000128000,
1692 VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000,
1693 VK_OBJECT_TYPE_VALIDATION_CACHE_EXT = 1000160000,
1694 VK_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000,
1695 VK_OBJECT_TYPE_PERFORMANCE_CONFIGURATION_INTEL = 1000210000,
1696 VK_OBJECT_TYPE_DEFERRED_OPERATION_KHR = 1000268000,
1697 VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_NV = 1000277000,
1698#ifdef VK_ENABLE_BETA_EXTENSIONS
1699 VK_OBJECT_TYPE_CUDA_MODULE_NV = 1000307000,
1700#endif
1701#ifdef VK_ENABLE_BETA_EXTENSIONS
1702 VK_OBJECT_TYPE_CUDA_FUNCTION_NV = 1000307001,
1703#endif
1704 VK_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA = 1000366000,
1705 VK_OBJECT_TYPE_MICROMAP_EXT = 1000396000,
1706 VK_OBJECT_TYPE_TENSOR_ARM = 1000460000,
1707 VK_OBJECT_TYPE_TENSOR_VIEW_ARM = 1000460001,
1708 VK_OBJECT_TYPE_OPTICAL_FLOW_SESSION_NV = 1000464000,
1709 VK_OBJECT_TYPE_SHADER_EXT = 1000482000,
1710 VK_OBJECT_TYPE_PIPELINE_BINARY_KHR = 1000483000,
1711 VK_OBJECT_TYPE_DATA_GRAPH_PIPELINE_SESSION_ARM = 1000507000,
1712 VK_OBJECT_TYPE_EXTERNAL_COMPUTE_QUEUE_NV = 1000556000,
1713 VK_OBJECT_TYPE_INDIRECT_COMMANDS_LAYOUT_EXT = 1000572000,
1714 VK_OBJECT_TYPE_INDIRECT_EXECUTION_SET_EXT = 1000572001,
1715 VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR = VK_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE,
1716 VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR = VK_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION,
1717 VK_OBJECT_TYPE_PRIVATE_DATA_SLOT_EXT = VK_OBJECT_TYPE_PRIVATE_DATA_SLOT,
1718 VK_OBJECT_TYPE_MAX_ENUM = 0x7FFFFFFF
1719} VkObjectType;
1720
1721typedef enum VkVendorId {
1722 VK_VENDOR_ID_KHRONOS = 0x10000,
1723 VK_VENDOR_ID_VIV = 0x10001,
1724 VK_VENDOR_ID_VSI = 0x10002,
1725 VK_VENDOR_ID_KAZAN = 0x10003,
1726 VK_VENDOR_ID_CODEPLAY = 0x10004,
1727 VK_VENDOR_ID_MESA = 0x10005,
1728 VK_VENDOR_ID_POCL = 0x10006,
1729 VK_VENDOR_ID_MOBILEYE = 0x10007,
1730 VK_VENDOR_ID_MAX_ENUM = 0x7FFFFFFF
1731} VkVendorId;
1732
1733typedef enum VkSystemAllocationScope {
1734 VK_SYSTEM_ALLOCATION_SCOPE_COMMAND = 0,
1735 VK_SYSTEM_ALLOCATION_SCOPE_OBJECT = 1,
1736 VK_SYSTEM_ALLOCATION_SCOPE_CACHE = 2,
1737 VK_SYSTEM_ALLOCATION_SCOPE_DEVICE = 3,
1738 VK_SYSTEM_ALLOCATION_SCOPE_INSTANCE = 4,
1739 VK_SYSTEM_ALLOCATION_SCOPE_MAX_ENUM = 0x7FFFFFFF
1740} VkSystemAllocationScope;
1741
1742typedef enum VkInternalAllocationType {
1743 VK_INTERNAL_ALLOCATION_TYPE_EXECUTABLE = 0,
1744 VK_INTERNAL_ALLOCATION_TYPE_MAX_ENUM = 0x7FFFFFFF
1745} VkInternalAllocationType;
1746
1747typedef enum VkFormat {
1748 VK_FORMAT_UNDEFINED = 0,
1749 VK_FORMAT_R4G4_UNORM_PACK8 = 1,
1750 VK_FORMAT_R4G4B4A4_UNORM_PACK16 = 2,
1751 VK_FORMAT_B4G4R4A4_UNORM_PACK16 = 3,
1752 VK_FORMAT_R5G6B5_UNORM_PACK16 = 4,
1753 VK_FORMAT_B5G6R5_UNORM_PACK16 = 5,
1754 VK_FORMAT_R5G5B5A1_UNORM_PACK16 = 6,
1755 VK_FORMAT_B5G5R5A1_UNORM_PACK16 = 7,
1756 VK_FORMAT_A1R5G5B5_UNORM_PACK16 = 8,
1757 VK_FORMAT_R8_UNORM = 9,
1758 VK_FORMAT_R8_SNORM = 10,
1759 VK_FORMAT_R8_USCALED = 11,
1760 VK_FORMAT_R8_SSCALED = 12,
1761 VK_FORMAT_R8_UINT = 13,
1762 VK_FORMAT_R8_SINT = 14,
1763 VK_FORMAT_R8_SRGB = 15,
1764 VK_FORMAT_R8G8_UNORM = 16,
1765 VK_FORMAT_R8G8_SNORM = 17,
1766 VK_FORMAT_R8G8_USCALED = 18,
1767 VK_FORMAT_R8G8_SSCALED = 19,
1768 VK_FORMAT_R8G8_UINT = 20,
1769 VK_FORMAT_R8G8_SINT = 21,
1770 VK_FORMAT_R8G8_SRGB = 22,
1771 VK_FORMAT_R8G8B8_UNORM = 23,
1772 VK_FORMAT_R8G8B8_SNORM = 24,
1773 VK_FORMAT_R8G8B8_USCALED = 25,
1774 VK_FORMAT_R8G8B8_SSCALED = 26,
1775 VK_FORMAT_R8G8B8_UINT = 27,
1776 VK_FORMAT_R8G8B8_SINT = 28,
1777 VK_FORMAT_R8G8B8_SRGB = 29,
1778 VK_FORMAT_B8G8R8_UNORM = 30,
1779 VK_FORMAT_B8G8R8_SNORM = 31,
1780 VK_FORMAT_B8G8R8_USCALED = 32,
1781 VK_FORMAT_B8G8R8_SSCALED = 33,
1782 VK_FORMAT_B8G8R8_UINT = 34,
1783 VK_FORMAT_B8G8R8_SINT = 35,
1784 VK_FORMAT_B8G8R8_SRGB = 36,
1785 VK_FORMAT_R8G8B8A8_UNORM = 37,
1786 VK_FORMAT_R8G8B8A8_SNORM = 38,
1787 VK_FORMAT_R8G8B8A8_USCALED = 39,
1788 VK_FORMAT_R8G8B8A8_SSCALED = 40,
1789 VK_FORMAT_R8G8B8A8_UINT = 41,
1790 VK_FORMAT_R8G8B8A8_SINT = 42,
1791 VK_FORMAT_R8G8B8A8_SRGB = 43,
1792 VK_FORMAT_B8G8R8A8_UNORM = 44,
1793 VK_FORMAT_B8G8R8A8_SNORM = 45,
1794 VK_FORMAT_B8G8R8A8_USCALED = 46,
1795 VK_FORMAT_B8G8R8A8_SSCALED = 47,
1796 VK_FORMAT_B8G8R8A8_UINT = 48,
1797 VK_FORMAT_B8G8R8A8_SINT = 49,
1798 VK_FORMAT_B8G8R8A8_SRGB = 50,
1799 VK_FORMAT_A8B8G8R8_UNORM_PACK32 = 51,
1800 VK_FORMAT_A8B8G8R8_SNORM_PACK32 = 52,
1801 VK_FORMAT_A8B8G8R8_USCALED_PACK32 = 53,
1802 VK_FORMAT_A8B8G8R8_SSCALED_PACK32 = 54,
1803 VK_FORMAT_A8B8G8R8_UINT_PACK32 = 55,
1804 VK_FORMAT_A8B8G8R8_SINT_PACK32 = 56,
1805 VK_FORMAT_A8B8G8R8_SRGB_PACK32 = 57,
1806 VK_FORMAT_A2R10G10B10_UNORM_PACK32 = 58,
1807 VK_FORMAT_A2R10G10B10_SNORM_PACK32 = 59,
1808 VK_FORMAT_A2R10G10B10_USCALED_PACK32 = 60,
1809 VK_FORMAT_A2R10G10B10_SSCALED_PACK32 = 61,
1810 VK_FORMAT_A2R10G10B10_UINT_PACK32 = 62,
1811 VK_FORMAT_A2R10G10B10_SINT_PACK32 = 63,
1812 VK_FORMAT_A2B10G10R10_UNORM_PACK32 = 64,
1813 VK_FORMAT_A2B10G10R10_SNORM_PACK32 = 65,
1814 VK_FORMAT_A2B10G10R10_USCALED_PACK32 = 66,
1815 VK_FORMAT_A2B10G10R10_SSCALED_PACK32 = 67,
1816 VK_FORMAT_A2B10G10R10_UINT_PACK32 = 68,
1817 VK_FORMAT_A2B10G10R10_SINT_PACK32 = 69,
1818 VK_FORMAT_R16_UNORM = 70,
1819 VK_FORMAT_R16_SNORM = 71,
1820 VK_FORMAT_R16_USCALED = 72,
1821 VK_FORMAT_R16_SSCALED = 73,
1822 VK_FORMAT_R16_UINT = 74,
1823 VK_FORMAT_R16_SINT = 75,
1824 VK_FORMAT_R16_SFLOAT = 76,
1825 VK_FORMAT_R16G16_UNORM = 77,
1826 VK_FORMAT_R16G16_SNORM = 78,
1827 VK_FORMAT_R16G16_USCALED = 79,
1828 VK_FORMAT_R16G16_SSCALED = 80,
1829 VK_FORMAT_R16G16_UINT = 81,
1830 VK_FORMAT_R16G16_SINT = 82,
1831 VK_FORMAT_R16G16_SFLOAT = 83,
1832 VK_FORMAT_R16G16B16_UNORM = 84,
1833 VK_FORMAT_R16G16B16_SNORM = 85,
1834 VK_FORMAT_R16G16B16_USCALED = 86,
1835 VK_FORMAT_R16G16B16_SSCALED = 87,
1836 VK_FORMAT_R16G16B16_UINT = 88,
1837 VK_FORMAT_R16G16B16_SINT = 89,
1838 VK_FORMAT_R16G16B16_SFLOAT = 90,
1839 VK_FORMAT_R16G16B16A16_UNORM = 91,
1840 VK_FORMAT_R16G16B16A16_SNORM = 92,
1841 VK_FORMAT_R16G16B16A16_USCALED = 93,
1842 VK_FORMAT_R16G16B16A16_SSCALED = 94,
1843 VK_FORMAT_R16G16B16A16_UINT = 95,
1844 VK_FORMAT_R16G16B16A16_SINT = 96,
1845 VK_FORMAT_R16G16B16A16_SFLOAT = 97,
1846 VK_FORMAT_R32_UINT = 98,
1847 VK_FORMAT_R32_SINT = 99,
1848 VK_FORMAT_R32_SFLOAT = 100,
1849 VK_FORMAT_R32G32_UINT = 101,
1850 VK_FORMAT_R32G32_SINT = 102,
1851 VK_FORMAT_R32G32_SFLOAT = 103,
1852 VK_FORMAT_R32G32B32_UINT = 104,
1853 VK_FORMAT_R32G32B32_SINT = 105,
1854 VK_FORMAT_R32G32B32_SFLOAT = 106,
1855 VK_FORMAT_R32G32B32A32_UINT = 107,
1856 VK_FORMAT_R32G32B32A32_SINT = 108,
1857 VK_FORMAT_R32G32B32A32_SFLOAT = 109,
1858 VK_FORMAT_R64_UINT = 110,
1859 VK_FORMAT_R64_SINT = 111,
1860 VK_FORMAT_R64_SFLOAT = 112,
1861 VK_FORMAT_R64G64_UINT = 113,
1862 VK_FORMAT_R64G64_SINT = 114,
1863 VK_FORMAT_R64G64_SFLOAT = 115,
1864 VK_FORMAT_R64G64B64_UINT = 116,
1865 VK_FORMAT_R64G64B64_SINT = 117,
1866 VK_FORMAT_R64G64B64_SFLOAT = 118,
1867 VK_FORMAT_R64G64B64A64_UINT = 119,
1868 VK_FORMAT_R64G64B64A64_SINT = 120,
1869 VK_FORMAT_R64G64B64A64_SFLOAT = 121,
1870 VK_FORMAT_B10G11R11_UFLOAT_PACK32 = 122,
1871 VK_FORMAT_E5B9G9R9_UFLOAT_PACK32 = 123,
1872 VK_FORMAT_D16_UNORM = 124,
1873 VK_FORMAT_X8_D24_UNORM_PACK32 = 125,
1874 VK_FORMAT_D32_SFLOAT = 126,
1875 VK_FORMAT_S8_UINT = 127,
1876 VK_FORMAT_D16_UNORM_S8_UINT = 128,
1877 VK_FORMAT_D24_UNORM_S8_UINT = 129,
1878 VK_FORMAT_D32_SFLOAT_S8_UINT = 130,
1879 VK_FORMAT_BC1_RGB_UNORM_BLOCK = 131,
1880 VK_FORMAT_BC1_RGB_SRGB_BLOCK = 132,
1881 VK_FORMAT_BC1_RGBA_UNORM_BLOCK = 133,
1882 VK_FORMAT_BC1_RGBA_SRGB_BLOCK = 134,
1883 VK_FORMAT_BC2_UNORM_BLOCK = 135,
1884 VK_FORMAT_BC2_SRGB_BLOCK = 136,
1885 VK_FORMAT_BC3_UNORM_BLOCK = 137,
1886 VK_FORMAT_BC3_SRGB_BLOCK = 138,
1887 VK_FORMAT_BC4_UNORM_BLOCK = 139,
1888 VK_FORMAT_BC4_SNORM_BLOCK = 140,
1889 VK_FORMAT_BC5_UNORM_BLOCK = 141,
1890 VK_FORMAT_BC5_SNORM_BLOCK = 142,
1891 VK_FORMAT_BC6H_UFLOAT_BLOCK = 143,
1892 VK_FORMAT_BC6H_SFLOAT_BLOCK = 144,
1893 VK_FORMAT_BC7_UNORM_BLOCK = 145,
1894 VK_FORMAT_BC7_SRGB_BLOCK = 146,
1895 VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK = 147,
1896 VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK = 148,
1897 VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK = 149,
1898 VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK = 150,
1899 VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK = 151,
1900 VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK = 152,
1901 VK_FORMAT_EAC_R11_UNORM_BLOCK = 153,
1902 VK_FORMAT_EAC_R11_SNORM_BLOCK = 154,
1903 VK_FORMAT_EAC_R11G11_UNORM_BLOCK = 155,
1904 VK_FORMAT_EAC_R11G11_SNORM_BLOCK = 156,
1905 VK_FORMAT_ASTC_4x4_UNORM_BLOCK = 157,
1906 VK_FORMAT_ASTC_4x4_SRGB_BLOCK = 158,
1907 VK_FORMAT_ASTC_5x4_UNORM_BLOCK = 159,
1908 VK_FORMAT_ASTC_5x4_SRGB_BLOCK = 160,
1909 VK_FORMAT_ASTC_5x5_UNORM_BLOCK = 161,
1910 VK_FORMAT_ASTC_5x5_SRGB_BLOCK = 162,
1911 VK_FORMAT_ASTC_6x5_UNORM_BLOCK = 163,
1912 VK_FORMAT_ASTC_6x5_SRGB_BLOCK = 164,
1913 VK_FORMAT_ASTC_6x6_UNORM_BLOCK = 165,
1914 VK_FORMAT_ASTC_6x6_SRGB_BLOCK = 166,
1915 VK_FORMAT_ASTC_8x5_UNORM_BLOCK = 167,
1916 VK_FORMAT_ASTC_8x5_SRGB_BLOCK = 168,
1917 VK_FORMAT_ASTC_8x6_UNORM_BLOCK = 169,
1918 VK_FORMAT_ASTC_8x6_SRGB_BLOCK = 170,
1919 VK_FORMAT_ASTC_8x8_UNORM_BLOCK = 171,
1920 VK_FORMAT_ASTC_8x8_SRGB_BLOCK = 172,
1921 VK_FORMAT_ASTC_10x5_UNORM_BLOCK = 173,
1922 VK_FORMAT_ASTC_10x5_SRGB_BLOCK = 174,
1923 VK_FORMAT_ASTC_10x6_UNORM_BLOCK = 175,
1924 VK_FORMAT_ASTC_10x6_SRGB_BLOCK = 176,
1925 VK_FORMAT_ASTC_10x8_UNORM_BLOCK = 177,
1926 VK_FORMAT_ASTC_10x8_SRGB_BLOCK = 178,
1927 VK_FORMAT_ASTC_10x10_UNORM_BLOCK = 179,
1928 VK_FORMAT_ASTC_10x10_SRGB_BLOCK = 180,
1929 VK_FORMAT_ASTC_12x10_UNORM_BLOCK = 181,
1930 VK_FORMAT_ASTC_12x10_SRGB_BLOCK = 182,
1931 VK_FORMAT_ASTC_12x12_UNORM_BLOCK = 183,
1932 VK_FORMAT_ASTC_12x12_SRGB_BLOCK = 184,
1933 VK_FORMAT_G8B8G8R8_422_UNORM = 1000156000,
1934 VK_FORMAT_B8G8R8G8_422_UNORM = 1000156001,
1935 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM = 1000156002,
1936 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM = 1000156003,
1937 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM = 1000156004,
1938 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM = 1000156005,
1939 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM = 1000156006,
1940 VK_FORMAT_R10X6_UNORM_PACK16 = 1000156007,
1941 VK_FORMAT_R10X6G10X6_UNORM_2PACK16 = 1000156008,
1942 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16 = 1000156009,
1943 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16 = 1000156010,
1944 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16 = 1000156011,
1945 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16 = 1000156012,
1946 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16 = 1000156013,
1947 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16 = 1000156014,
1948 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16 = 1000156015,
1949 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16 = 1000156016,
1950 VK_FORMAT_R12X4_UNORM_PACK16 = 1000156017,
1951 VK_FORMAT_R12X4G12X4_UNORM_2PACK16 = 1000156018,
1952 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16 = 1000156019,
1953 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16 = 1000156020,
1954 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16 = 1000156021,
1955 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16 = 1000156022,
1956 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16 = 1000156023,
1957 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16 = 1000156024,
1958 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16 = 1000156025,
1959 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16 = 1000156026,
1960 VK_FORMAT_G16B16G16R16_422_UNORM = 1000156027,
1961 VK_FORMAT_B16G16R16G16_422_UNORM = 1000156028,
1962 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM = 1000156029,
1963 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM = 1000156030,
1964 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM = 1000156031,
1965 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM = 1000156032,
1966 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM = 1000156033,
1967 VK_FORMAT_G8_B8R8_2PLANE_444_UNORM = 1000330000,
1968 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16 = 1000330001,
1969 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16 = 1000330002,
1970 VK_FORMAT_G16_B16R16_2PLANE_444_UNORM = 1000330003,
1971 VK_FORMAT_A4R4G4B4_UNORM_PACK16 = 1000340000,
1972 VK_FORMAT_A4B4G4R4_UNORM_PACK16 = 1000340001,
1973 VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK = 1000066000,
1974 VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK = 1000066001,
1975 VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK = 1000066002,
1976 VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK = 1000066003,
1977 VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK = 1000066004,
1978 VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK = 1000066005,
1979 VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK = 1000066006,
1980 VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK = 1000066007,
1981 VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK = 1000066008,
1982 VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK = 1000066009,
1983 VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK = 1000066010,
1984 VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK = 1000066011,
1985 VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK = 1000066012,
1986 VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK = 1000066013,
1987 VK_FORMAT_A1B5G5R5_UNORM_PACK16 = 1000470000,
1988 VK_FORMAT_A8_UNORM = 1000470001,
1989 VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG = 1000054000,
1990 VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG = 1000054001,
1991 VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG = 1000054002,
1992 VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG = 1000054003,
1993 VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG = 1000054004,
1994 VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG = 1000054005,
1995 VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG = 1000054006,
1996 VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG = 1000054007,
1997 VK_FORMAT_R8_BOOL_ARM = 1000460000,
1998 VK_FORMAT_R16G16_SFIXED5_NV = 1000464000,
1999 VK_FORMAT_R10X6_UINT_PACK16_ARM = 1000609000,
2000 VK_FORMAT_R10X6G10X6_UINT_2PACK16_ARM = 1000609001,
2001 VK_FORMAT_R10X6G10X6B10X6A10X6_UINT_4PACK16_ARM = 1000609002,
2002 VK_FORMAT_R12X4_UINT_PACK16_ARM = 1000609003,
2003 VK_FORMAT_R12X4G12X4_UINT_2PACK16_ARM = 1000609004,
2004 VK_FORMAT_R12X4G12X4B12X4A12X4_UINT_4PACK16_ARM = 1000609005,
2005 VK_FORMAT_R14X2_UINT_PACK16_ARM = 1000609006,
2006 VK_FORMAT_R14X2G14X2_UINT_2PACK16_ARM = 1000609007,
2007 VK_FORMAT_R14X2G14X2B14X2A14X2_UINT_4PACK16_ARM = 1000609008,
2008 VK_FORMAT_R14X2_UNORM_PACK16_ARM = 1000609009,
2009 VK_FORMAT_R14X2G14X2_UNORM_2PACK16_ARM = 1000609010,
2010 VK_FORMAT_R14X2G14X2B14X2A14X2_UNORM_4PACK16_ARM = 1000609011,
2011 VK_FORMAT_G14X2_B14X2R14X2_2PLANE_420_UNORM_3PACK16_ARM = 1000609012,
2012 VK_FORMAT_G14X2_B14X2R14X2_2PLANE_422_UNORM_3PACK16_ARM = 1000609013,
2013 VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK,
2014 VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK,
2015 VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK,
2016 VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK,
2017 VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK,
2018 VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK,
2019 VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK,
2020 VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK,
2021 VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK,
2022 VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK,
2023 VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK,
2024 VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK,
2025 VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK,
2026 VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT = VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK,
2027 VK_FORMAT_G8B8G8R8_422_UNORM_KHR = VK_FORMAT_G8B8G8R8_422_UNORM,
2028 VK_FORMAT_B8G8R8G8_422_UNORM_KHR = VK_FORMAT_B8G8R8G8_422_UNORM,
2029 VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM,
2030 VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_420_UNORM,
2031 VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM,
2032 VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR = VK_FORMAT_G8_B8R8_2PLANE_422_UNORM,
2033 VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR = VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM,
2034 VK_FORMAT_R10X6_UNORM_PACK16_KHR = VK_FORMAT_R10X6_UNORM_PACK16,
2035 VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR = VK_FORMAT_R10X6G10X6_UNORM_2PACK16,
2036 VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR = VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16,
2037 VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16,
2038 VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR = VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16,
2039 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16,
2040 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16,
2041 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16,
2042 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16,
2043 VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16,
2044 VK_FORMAT_R12X4_UNORM_PACK16_KHR = VK_FORMAT_R12X4_UNORM_PACK16,
2045 VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR = VK_FORMAT_R12X4G12X4_UNORM_2PACK16,
2046 VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR = VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16,
2047 VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16,
2048 VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR = VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16,
2049 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16,
2050 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16,
2051 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16,
2052 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16,
2053 VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR = VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16,
2054 VK_FORMAT_G16B16G16R16_422_UNORM_KHR = VK_FORMAT_G16B16G16R16_422_UNORM,
2055 VK_FORMAT_B16G16R16G16_422_UNORM_KHR = VK_FORMAT_B16G16R16G16_422_UNORM,
2056 VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM,
2057 VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_420_UNORM,
2058 VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM,
2059 VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR = VK_FORMAT_G16_B16R16_2PLANE_422_UNORM,
2060 VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR = VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM,
2061 VK_FORMAT_G8_B8R8_2PLANE_444_UNORM_EXT = VK_FORMAT_G8_B8R8_2PLANE_444_UNORM,
2062 VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16_EXT = VK_FORMAT_G10X6_B10X6R10X6_2PLANE_444_UNORM_3PACK16,
2063 VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16_EXT = VK_FORMAT_G12X4_B12X4R12X4_2PLANE_444_UNORM_3PACK16,
2064 VK_FORMAT_G16_B16R16_2PLANE_444_UNORM_EXT = VK_FORMAT_G16_B16R16_2PLANE_444_UNORM,
2065 VK_FORMAT_A4R4G4B4_UNORM_PACK16_EXT = VK_FORMAT_A4R4G4B4_UNORM_PACK16,
2066 VK_FORMAT_A4B4G4R4_UNORM_PACK16_EXT = VK_FORMAT_A4B4G4R4_UNORM_PACK16,
2067 // VK_FORMAT_R16G16_S10_5_NV is a deprecated alias
2068 VK_FORMAT_R16G16_S10_5_NV = VK_FORMAT_R16G16_SFIXED5_NV,
2069 VK_FORMAT_A1B5G5R5_UNORM_PACK16_KHR = VK_FORMAT_A1B5G5R5_UNORM_PACK16,
2070 VK_FORMAT_A8_UNORM_KHR = VK_FORMAT_A8_UNORM,
2071 VK_FORMAT_MAX_ENUM = 0x7FFFFFFF
2072} VkFormat;
2073
2074typedef enum VkImageTiling {
2075 VK_IMAGE_TILING_OPTIMAL = 0,
2076 VK_IMAGE_TILING_LINEAR = 1,
2077 VK_IMAGE_TILING_DRM_FORMAT_MODIFIER_EXT = 1000158000,
2078 VK_IMAGE_TILING_MAX_ENUM = 0x7FFFFFFF
2079} VkImageTiling;
2080
2081typedef enum VkImageType {
2082 VK_IMAGE_TYPE_1D = 0,
2083 VK_IMAGE_TYPE_2D = 1,
2084 VK_IMAGE_TYPE_3D = 2,
2085 VK_IMAGE_TYPE_MAX_ENUM = 0x7FFFFFFF
2086} VkImageType;
2087
2088typedef enum VkPhysicalDeviceType {
2089 VK_PHYSICAL_DEVICE_TYPE_OTHER = 0,
2090 VK_PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU = 1,
2091 VK_PHYSICAL_DEVICE_TYPE_DISCRETE_GPU = 2,
2092 VK_PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU = 3,
2093 VK_PHYSICAL_DEVICE_TYPE_CPU = 4,
2094 VK_PHYSICAL_DEVICE_TYPE_MAX_ENUM = 0x7FFFFFFF
2095} VkPhysicalDeviceType;
2096
2097typedef enum VkQueryType {
2098 VK_QUERY_TYPE_OCCLUSION = 0,
2099 VK_QUERY_TYPE_PIPELINE_STATISTICS = 1,
2100 VK_QUERY_TYPE_TIMESTAMP = 2,
2101 VK_QUERY_TYPE_RESULT_STATUS_ONLY_KHR = 1000023000,
2102 VK_QUERY_TYPE_TRANSFORM_FEEDBACK_STREAM_EXT = 1000028004,
2103 VK_QUERY_TYPE_PERFORMANCE_QUERY_KHR = 1000116000,
2104 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_KHR = 1000150000,
2105 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_SIZE_KHR = 1000150001,
2106 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_COMPACTED_SIZE_NV = 1000165000,
2107 VK_QUERY_TYPE_PERFORMANCE_QUERY_INTEL = 1000210000,
2108 VK_QUERY_TYPE_VIDEO_ENCODE_FEEDBACK_KHR = 1000299000,
2109 VK_QUERY_TYPE_MESH_PRIMITIVES_GENERATED_EXT = 1000328000,
2110 VK_QUERY_TYPE_PRIMITIVES_GENERATED_EXT = 1000382000,
2111 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SERIALIZATION_BOTTOM_LEVEL_POINTERS_KHR = 1000386000,
2112 VK_QUERY_TYPE_ACCELERATION_STRUCTURE_SIZE_KHR = 1000386001,
2113 VK_QUERY_TYPE_MICROMAP_SERIALIZATION_SIZE_EXT = 1000396000,
2114 VK_QUERY_TYPE_MICROMAP_COMPACTED_SIZE_EXT = 1000396001,
2115 VK_QUERY_TYPE_MAX_ENUM = 0x7FFFFFFF
2116} VkQueryType;
2117
2118typedef enum VkSharingMode {
2119 VK_SHARING_MODE_EXCLUSIVE = 0,
2120 VK_SHARING_MODE_CONCURRENT = 1,
2121 VK_SHARING_MODE_MAX_ENUM = 0x7FFFFFFF
2122} VkSharingMode;
2123
2124typedef enum VkComponentSwizzle {
2125 VK_COMPONENT_SWIZZLE_IDENTITY = 0,
2126 VK_COMPONENT_SWIZZLE_ZERO = 1,
2127 VK_COMPONENT_SWIZZLE_ONE = 2,
2128 VK_COMPONENT_SWIZZLE_R = 3,
2129 VK_COMPONENT_SWIZZLE_G = 4,
2130 VK_COMPONENT_SWIZZLE_B = 5,
2131 VK_COMPONENT_SWIZZLE_A = 6,
2132 VK_COMPONENT_SWIZZLE_MAX_ENUM = 0x7FFFFFFF
2133} VkComponentSwizzle;
2134
2135typedef enum VkImageViewType {
2136 VK_IMAGE_VIEW_TYPE_1D = 0,
2137 VK_IMAGE_VIEW_TYPE_2D = 1,
2138 VK_IMAGE_VIEW_TYPE_3D = 2,
2139 VK_IMAGE_VIEW_TYPE_CUBE = 3,
2140 VK_IMAGE_VIEW_TYPE_1D_ARRAY = 4,
2141 VK_IMAGE_VIEW_TYPE_2D_ARRAY = 5,
2142 VK_IMAGE_VIEW_TYPE_CUBE_ARRAY = 6,
2143 VK_IMAGE_VIEW_TYPE_MAX_ENUM = 0x7FFFFFFF
2144} VkImageViewType;
2145
2146typedef enum VkBlendFactor {
2147 VK_BLEND_FACTOR_ZERO = 0,
2148 VK_BLEND_FACTOR_ONE = 1,
2149 VK_BLEND_FACTOR_SRC_COLOR = 2,
2150 VK_BLEND_FACTOR_ONE_MINUS_SRC_COLOR = 3,
2151 VK_BLEND_FACTOR_DST_COLOR = 4,
2152 VK_BLEND_FACTOR_ONE_MINUS_DST_COLOR = 5,
2153 VK_BLEND_FACTOR_SRC_ALPHA = 6,
2154 VK_BLEND_FACTOR_ONE_MINUS_SRC_ALPHA = 7,
2155 VK_BLEND_FACTOR_DST_ALPHA = 8,
2156 VK_BLEND_FACTOR_ONE_MINUS_DST_ALPHA = 9,
2157 VK_BLEND_FACTOR_CONSTANT_COLOR = 10,
2158 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR = 11,
2159 VK_BLEND_FACTOR_CONSTANT_ALPHA = 12,
2160 VK_BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA = 13,
2161 VK_BLEND_FACTOR_SRC_ALPHA_SATURATE = 14,
2162 VK_BLEND_FACTOR_SRC1_COLOR = 15,
2163 VK_BLEND_FACTOR_ONE_MINUS_SRC1_COLOR = 16,
2164 VK_BLEND_FACTOR_SRC1_ALPHA = 17,
2165 VK_BLEND_FACTOR_ONE_MINUS_SRC1_ALPHA = 18,
2166 VK_BLEND_FACTOR_MAX_ENUM = 0x7FFFFFFF
2167} VkBlendFactor;
2168
2169typedef enum VkBlendOp {
2170 VK_BLEND_OP_ADD = 0,
2171 VK_BLEND_OP_SUBTRACT = 1,
2172 VK_BLEND_OP_REVERSE_SUBTRACT = 2,
2173 VK_BLEND_OP_MIN = 3,
2174 VK_BLEND_OP_MAX = 4,
2175 VK_BLEND_OP_ZERO_EXT = 1000148000,
2176 VK_BLEND_OP_SRC_EXT = 1000148001,
2177 VK_BLEND_OP_DST_EXT = 1000148002,
2178 VK_BLEND_OP_SRC_OVER_EXT = 1000148003,
2179 VK_BLEND_OP_DST_OVER_EXT = 1000148004,
2180 VK_BLEND_OP_SRC_IN_EXT = 1000148005,
2181 VK_BLEND_OP_DST_IN_EXT = 1000148006,
2182 VK_BLEND_OP_SRC_OUT_EXT = 1000148007,
2183 VK_BLEND_OP_DST_OUT_EXT = 1000148008,
2184 VK_BLEND_OP_SRC_ATOP_EXT = 1000148009,
2185 VK_BLEND_OP_DST_ATOP_EXT = 1000148010,
2186 VK_BLEND_OP_XOR_EXT = 1000148011,
2187 VK_BLEND_OP_MULTIPLY_EXT = 1000148012,
2188 VK_BLEND_OP_SCREEN_EXT = 1000148013,
2189 VK_BLEND_OP_OVERLAY_EXT = 1000148014,
2190 VK_BLEND_OP_DARKEN_EXT = 1000148015,
2191 VK_BLEND_OP_LIGHTEN_EXT = 1000148016,
2192 VK_BLEND_OP_COLORDODGE_EXT = 1000148017,
2193 VK_BLEND_OP_COLORBURN_EXT = 1000148018,
2194 VK_BLEND_OP_HARDLIGHT_EXT = 1000148019,
2195 VK_BLEND_OP_SOFTLIGHT_EXT = 1000148020,
2196 VK_BLEND_OP_DIFFERENCE_EXT = 1000148021,
2197 VK_BLEND_OP_EXCLUSION_EXT = 1000148022,
2198 VK_BLEND_OP_INVERT_EXT = 1000148023,
2199 VK_BLEND_OP_INVERT_RGB_EXT = 1000148024,
2200 VK_BLEND_OP_LINEARDODGE_EXT = 1000148025,
2201 VK_BLEND_OP_LINEARBURN_EXT = 1000148026,
2202 VK_BLEND_OP_VIVIDLIGHT_EXT = 1000148027,
2203 VK_BLEND_OP_LINEARLIGHT_EXT = 1000148028,
2204 VK_BLEND_OP_PINLIGHT_EXT = 1000148029,
2205 VK_BLEND_OP_HARDMIX_EXT = 1000148030,
2206 VK_BLEND_OP_HSL_HUE_EXT = 1000148031,
2207 VK_BLEND_OP_HSL_SATURATION_EXT = 1000148032,
2208 VK_BLEND_OP_HSL_COLOR_EXT = 1000148033,
2209 VK_BLEND_OP_HSL_LUMINOSITY_EXT = 1000148034,
2210 VK_BLEND_OP_PLUS_EXT = 1000148035,
2211 VK_BLEND_OP_PLUS_CLAMPED_EXT = 1000148036,
2212 VK_BLEND_OP_PLUS_CLAMPED_ALPHA_EXT = 1000148037,
2213 VK_BLEND_OP_PLUS_DARKER_EXT = 1000148038,
2214 VK_BLEND_OP_MINUS_EXT = 1000148039,
2215 VK_BLEND_OP_MINUS_CLAMPED_EXT = 1000148040,
2216 VK_BLEND_OP_CONTRAST_EXT = 1000148041,
2217 VK_BLEND_OP_INVERT_OVG_EXT = 1000148042,
2218 VK_BLEND_OP_RED_EXT = 1000148043,
2219 VK_BLEND_OP_GREEN_EXT = 1000148044,
2220 VK_BLEND_OP_BLUE_EXT = 1000148045,
2221 VK_BLEND_OP_MAX_ENUM = 0x7FFFFFFF
2222} VkBlendOp;
2223
2224typedef enum VkCompareOp {
2225 VK_COMPARE_OP_NEVER = 0,
2226 VK_COMPARE_OP_LESS = 1,
2227 VK_COMPARE_OP_EQUAL = 2,
2228 VK_COMPARE_OP_LESS_OR_EQUAL = 3,
2229 VK_COMPARE_OP_GREATER = 4,
2230 VK_COMPARE_OP_NOT_EQUAL = 5,
2231 VK_COMPARE_OP_GREATER_OR_EQUAL = 6,
2232 VK_COMPARE_OP_ALWAYS = 7,
2233 VK_COMPARE_OP_MAX_ENUM = 0x7FFFFFFF
2234} VkCompareOp;
2235
2236typedef enum VkDynamicState {
2237 VK_DYNAMIC_STATE_VIEWPORT = 0,
2238 VK_DYNAMIC_STATE_SCISSOR = 1,
2239 VK_DYNAMIC_STATE_LINE_WIDTH = 2,
2240 VK_DYNAMIC_STATE_DEPTH_BIAS = 3,
2241 VK_DYNAMIC_STATE_BLEND_CONSTANTS = 4,
2242 VK_DYNAMIC_STATE_DEPTH_BOUNDS = 5,
2243 VK_DYNAMIC_STATE_STENCIL_COMPARE_MASK = 6,
2244 VK_DYNAMIC_STATE_STENCIL_WRITE_MASK = 7,
2245 VK_DYNAMIC_STATE_STENCIL_REFERENCE = 8,
2246 VK_DYNAMIC_STATE_CULL_MODE = 1000267000,
2247 VK_DYNAMIC_STATE_FRONT_FACE = 1000267001,
2248 VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY = 1000267002,
2249 VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT = 1000267003,
2250 VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT = 1000267004,
2251 VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE = 1000267005,
2252 VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE = 1000267006,
2253 VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE = 1000267007,
2254 VK_DYNAMIC_STATE_DEPTH_COMPARE_OP = 1000267008,
2255 VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE = 1000267009,
2256 VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE = 1000267010,
2257 VK_DYNAMIC_STATE_STENCIL_OP = 1000267011,
2258 VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE = 1000377001,
2259 VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE = 1000377002,
2260 VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE = 1000377004,
2261 VK_DYNAMIC_STATE_LINE_STIPPLE = 1000259000,
2262 VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_NV = 1000087000,
2263 VK_DYNAMIC_STATE_DISCARD_RECTANGLE_EXT = 1000099000,
2264 VK_DYNAMIC_STATE_DISCARD_RECTANGLE_ENABLE_EXT = 1000099001,
2265 VK_DYNAMIC_STATE_DISCARD_RECTANGLE_MODE_EXT = 1000099002,
2266 VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_EXT = 1000143000,
2267 VK_DYNAMIC_STATE_RAY_TRACING_PIPELINE_STACK_SIZE_KHR = 1000347000,
2268 VK_DYNAMIC_STATE_VIEWPORT_SHADING_RATE_PALETTE_NV = 1000164004,
2269 VK_DYNAMIC_STATE_VIEWPORT_COARSE_SAMPLE_ORDER_NV = 1000164006,
2270 VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_ENABLE_NV = 1000205000,
2271 VK_DYNAMIC_STATE_EXCLUSIVE_SCISSOR_NV = 1000205001,
2272 VK_DYNAMIC_STATE_FRAGMENT_SHADING_RATE_KHR = 1000226000,
2273 VK_DYNAMIC_STATE_VERTEX_INPUT_EXT = 1000352000,
2274 VK_DYNAMIC_STATE_PATCH_CONTROL_POINTS_EXT = 1000377000,
2275 VK_DYNAMIC_STATE_LOGIC_OP_EXT = 1000377003,
2276 VK_DYNAMIC_STATE_COLOR_WRITE_ENABLE_EXT = 1000381000,
2277 VK_DYNAMIC_STATE_DEPTH_CLAMP_ENABLE_EXT = 1000455003,
2278 VK_DYNAMIC_STATE_POLYGON_MODE_EXT = 1000455004,
2279 VK_DYNAMIC_STATE_RASTERIZATION_SAMPLES_EXT = 1000455005,
2280 VK_DYNAMIC_STATE_SAMPLE_MASK_EXT = 1000455006,
2281 VK_DYNAMIC_STATE_ALPHA_TO_COVERAGE_ENABLE_EXT = 1000455007,
2282 VK_DYNAMIC_STATE_ALPHA_TO_ONE_ENABLE_EXT = 1000455008,
2283 VK_DYNAMIC_STATE_LOGIC_OP_ENABLE_EXT = 1000455009,
2284 VK_DYNAMIC_STATE_COLOR_BLEND_ENABLE_EXT = 1000455010,
2285 VK_DYNAMIC_STATE_COLOR_BLEND_EQUATION_EXT = 1000455011,
2286 VK_DYNAMIC_STATE_COLOR_WRITE_MASK_EXT = 1000455012,
2287 VK_DYNAMIC_STATE_TESSELLATION_DOMAIN_ORIGIN_EXT = 1000455002,
2288 VK_DYNAMIC_STATE_RASTERIZATION_STREAM_EXT = 1000455013,
2289 VK_DYNAMIC_STATE_CONSERVATIVE_RASTERIZATION_MODE_EXT = 1000455014,
2290 VK_DYNAMIC_STATE_EXTRA_PRIMITIVE_OVERESTIMATION_SIZE_EXT = 1000455015,
2291 VK_DYNAMIC_STATE_DEPTH_CLIP_ENABLE_EXT = 1000455016,
2292 VK_DYNAMIC_STATE_SAMPLE_LOCATIONS_ENABLE_EXT = 1000455017,
2293 VK_DYNAMIC_STATE_COLOR_BLEND_ADVANCED_EXT = 1000455018,
2294 VK_DYNAMIC_STATE_PROVOKING_VERTEX_MODE_EXT = 1000455019,
2295 VK_DYNAMIC_STATE_LINE_RASTERIZATION_MODE_EXT = 1000455020,
2296 VK_DYNAMIC_STATE_LINE_STIPPLE_ENABLE_EXT = 1000455021,
2297 VK_DYNAMIC_STATE_DEPTH_CLIP_NEGATIVE_ONE_TO_ONE_EXT = 1000455022,
2298 VK_DYNAMIC_STATE_VIEWPORT_W_SCALING_ENABLE_NV = 1000455023,
2299 VK_DYNAMIC_STATE_VIEWPORT_SWIZZLE_NV = 1000455024,
2300 VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_ENABLE_NV = 1000455025,
2301 VK_DYNAMIC_STATE_COVERAGE_TO_COLOR_LOCATION_NV = 1000455026,
2302 VK_DYNAMIC_STATE_COVERAGE_MODULATION_MODE_NV = 1000455027,
2303 VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_ENABLE_NV = 1000455028,
2304 VK_DYNAMIC_STATE_COVERAGE_MODULATION_TABLE_NV = 1000455029,
2305 VK_DYNAMIC_STATE_SHADING_RATE_IMAGE_ENABLE_NV = 1000455030,
2306 VK_DYNAMIC_STATE_REPRESENTATIVE_FRAGMENT_TEST_ENABLE_NV = 1000455031,
2307 VK_DYNAMIC_STATE_COVERAGE_REDUCTION_MODE_NV = 1000455032,
2308 VK_DYNAMIC_STATE_ATTACHMENT_FEEDBACK_LOOP_ENABLE_EXT = 1000524000,
2309 VK_DYNAMIC_STATE_DEPTH_CLAMP_RANGE_EXT = 1000582000,
2310 VK_DYNAMIC_STATE_LINE_STIPPLE_EXT = VK_DYNAMIC_STATE_LINE_STIPPLE,
2311 VK_DYNAMIC_STATE_CULL_MODE_EXT = VK_DYNAMIC_STATE_CULL_MODE,
2312 VK_DYNAMIC_STATE_FRONT_FACE_EXT = VK_DYNAMIC_STATE_FRONT_FACE,
2313 VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY_EXT = VK_DYNAMIC_STATE_PRIMITIVE_TOPOLOGY,
2314 VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT_EXT = VK_DYNAMIC_STATE_VIEWPORT_WITH_COUNT,
2315 VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT_EXT = VK_DYNAMIC_STATE_SCISSOR_WITH_COUNT,
2316 VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE_EXT = VK_DYNAMIC_STATE_VERTEX_INPUT_BINDING_STRIDE,
2317 VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_TEST_ENABLE,
2318 VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_WRITE_ENABLE,
2319 VK_DYNAMIC_STATE_DEPTH_COMPARE_OP_EXT = VK_DYNAMIC_STATE_DEPTH_COMPARE_OP,
2320 VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_BOUNDS_TEST_ENABLE,
2321 VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE_EXT = VK_DYNAMIC_STATE_STENCIL_TEST_ENABLE,
2322 VK_DYNAMIC_STATE_STENCIL_OP_EXT = VK_DYNAMIC_STATE_STENCIL_OP,
2323 VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE_EXT = VK_DYNAMIC_STATE_RASTERIZER_DISCARD_ENABLE,
2324 VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE_EXT = VK_DYNAMIC_STATE_DEPTH_BIAS_ENABLE,
2325 VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE_EXT = VK_DYNAMIC_STATE_PRIMITIVE_RESTART_ENABLE,
2326 VK_DYNAMIC_STATE_LINE_STIPPLE_KHR = VK_DYNAMIC_STATE_LINE_STIPPLE,
2327 VK_DYNAMIC_STATE_MAX_ENUM = 0x7FFFFFFF
2328} VkDynamicState;
2329
2330typedef enum VkFrontFace {
2331 VK_FRONT_FACE_COUNTER_CLOCKWISE = 0,
2332 VK_FRONT_FACE_CLOCKWISE = 1,
2333 VK_FRONT_FACE_MAX_ENUM = 0x7FFFFFFF
2334} VkFrontFace;
2335
2336typedef enum VkVertexInputRate {
2337 VK_VERTEX_INPUT_RATE_VERTEX = 0,
2338 VK_VERTEX_INPUT_RATE_INSTANCE = 1,
2339 VK_VERTEX_INPUT_RATE_MAX_ENUM = 0x7FFFFFFF
2340} VkVertexInputRate;
2341
2342typedef enum VkPrimitiveTopology {
2343 VK_PRIMITIVE_TOPOLOGY_POINT_LIST = 0,
2344 VK_PRIMITIVE_TOPOLOGY_LINE_LIST = 1,
2345 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP = 2,
2346 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST = 3,
2347 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP = 4,
2348 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_FAN = 5,
2349 VK_PRIMITIVE_TOPOLOGY_LINE_LIST_WITH_ADJACENCY = 6,
2350 VK_PRIMITIVE_TOPOLOGY_LINE_STRIP_WITH_ADJACENCY = 7,
2351 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_LIST_WITH_ADJACENCY = 8,
2352 VK_PRIMITIVE_TOPOLOGY_TRIANGLE_STRIP_WITH_ADJACENCY = 9,
2353 VK_PRIMITIVE_TOPOLOGY_PATCH_LIST = 10,
2354 VK_PRIMITIVE_TOPOLOGY_MAX_ENUM = 0x7FFFFFFF
2355} VkPrimitiveTopology;
2356
2357typedef enum VkPolygonMode {
2358 VK_POLYGON_MODE_FILL = 0,
2359 VK_POLYGON_MODE_LINE = 1,
2360 VK_POLYGON_MODE_POINT = 2,
2361 VK_POLYGON_MODE_FILL_RECTANGLE_NV = 1000153000,
2362 VK_POLYGON_MODE_MAX_ENUM = 0x7FFFFFFF
2363} VkPolygonMode;
2364
2365typedef enum VkStencilOp {
2366 VK_STENCIL_OP_KEEP = 0,
2367 VK_STENCIL_OP_ZERO = 1,
2368 VK_STENCIL_OP_REPLACE = 2,
2369 VK_STENCIL_OP_INCREMENT_AND_CLAMP = 3,
2370 VK_STENCIL_OP_DECREMENT_AND_CLAMP = 4,
2371 VK_STENCIL_OP_INVERT = 5,
2372 VK_STENCIL_OP_INCREMENT_AND_WRAP = 6,
2373 VK_STENCIL_OP_DECREMENT_AND_WRAP = 7,
2374 VK_STENCIL_OP_MAX_ENUM = 0x7FFFFFFF
2375} VkStencilOp;
2376
2377typedef enum VkLogicOp {
2378 VK_LOGIC_OP_CLEAR = 0,
2379 VK_LOGIC_OP_AND = 1,
2380 VK_LOGIC_OP_AND_REVERSE = 2,
2381 VK_LOGIC_OP_COPY = 3,
2382 VK_LOGIC_OP_AND_INVERTED = 4,
2383 VK_LOGIC_OP_NO_OP = 5,
2384 VK_LOGIC_OP_XOR = 6,
2385 VK_LOGIC_OP_OR = 7,
2386 VK_LOGIC_OP_NOR = 8,
2387 VK_LOGIC_OP_EQUIVALENT = 9,
2388 VK_LOGIC_OP_INVERT = 10,
2389 VK_LOGIC_OP_OR_REVERSE = 11,
2390 VK_LOGIC_OP_COPY_INVERTED = 12,
2391 VK_LOGIC_OP_OR_INVERTED = 13,
2392 VK_LOGIC_OP_NAND = 14,
2393 VK_LOGIC_OP_SET = 15,
2394 VK_LOGIC_OP_MAX_ENUM = 0x7FFFFFFF
2395} VkLogicOp;
2396
2397typedef enum VkBorderColor {
2398 VK_BORDER_COLOR_FLOAT_TRANSPARENT_BLACK = 0,
2399 VK_BORDER_COLOR_INT_TRANSPARENT_BLACK = 1,
2400 VK_BORDER_COLOR_FLOAT_OPAQUE_BLACK = 2,
2401 VK_BORDER_COLOR_INT_OPAQUE_BLACK = 3,
2402 VK_BORDER_COLOR_FLOAT_OPAQUE_WHITE = 4,
2403 VK_BORDER_COLOR_INT_OPAQUE_WHITE = 5,
2404 VK_BORDER_COLOR_FLOAT_CUSTOM_EXT = 1000287003,
2405 VK_BORDER_COLOR_INT_CUSTOM_EXT = 1000287004,
2406 VK_BORDER_COLOR_MAX_ENUM = 0x7FFFFFFF
2407} VkBorderColor;
2408
2409typedef enum VkFilter {
2410 VK_FILTER_NEAREST = 0,
2411 VK_FILTER_LINEAR = 1,
2412 VK_FILTER_CUBIC_EXT = 1000015000,
2413 VK_FILTER_CUBIC_IMG = VK_FILTER_CUBIC_EXT,
2414 VK_FILTER_MAX_ENUM = 0x7FFFFFFF
2415} VkFilter;
2416
2417typedef enum VkSamplerAddressMode {
2418 VK_SAMPLER_ADDRESS_MODE_REPEAT = 0,
2419 VK_SAMPLER_ADDRESS_MODE_MIRRORED_REPEAT = 1,
2420 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_EDGE = 2,
2421 VK_SAMPLER_ADDRESS_MODE_CLAMP_TO_BORDER = 3,
2422 VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE = 4,
2423 // VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR is a deprecated alias
2424 VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE_KHR = VK_SAMPLER_ADDRESS_MODE_MIRROR_CLAMP_TO_EDGE,
2425 VK_SAMPLER_ADDRESS_MODE_MAX_ENUM = 0x7FFFFFFF
2426} VkSamplerAddressMode;
2427
2428typedef enum VkSamplerMipmapMode {
2429 VK_SAMPLER_MIPMAP_MODE_NEAREST = 0,
2430 VK_SAMPLER_MIPMAP_MODE_LINEAR = 1,
2431 VK_SAMPLER_MIPMAP_MODE_MAX_ENUM = 0x7FFFFFFF
2432} VkSamplerMipmapMode;
2433
2434typedef enum VkDescriptorType {
2435 VK_DESCRIPTOR_TYPE_SAMPLER = 0,
2436 VK_DESCRIPTOR_TYPE_COMBINED_IMAGE_SAMPLER = 1,
2437 VK_DESCRIPTOR_TYPE_SAMPLED_IMAGE = 2,
2438 VK_DESCRIPTOR_TYPE_STORAGE_IMAGE = 3,
2439 VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER = 4,
2440 VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER = 5,
2441 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER = 6,
2442 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER = 7,
2443 VK_DESCRIPTOR_TYPE_UNIFORM_BUFFER_DYNAMIC = 8,
2444 VK_DESCRIPTOR_TYPE_STORAGE_BUFFER_DYNAMIC = 9,
2445 VK_DESCRIPTOR_TYPE_INPUT_ATTACHMENT = 10,
2446 VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK = 1000138000,
2447 VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_KHR = 1000150000,
2448 VK_DESCRIPTOR_TYPE_ACCELERATION_STRUCTURE_NV = 1000165000,
2449 VK_DESCRIPTOR_TYPE_SAMPLE_WEIGHT_IMAGE_QCOM = 1000440000,
2450 VK_DESCRIPTOR_TYPE_BLOCK_MATCH_IMAGE_QCOM = 1000440001,
2451 VK_DESCRIPTOR_TYPE_TENSOR_ARM = 1000460000,
2452 VK_DESCRIPTOR_TYPE_MUTABLE_EXT = 1000351000,
2453 VK_DESCRIPTOR_TYPE_PARTITIONED_ACCELERATION_STRUCTURE_NV = 1000570000,
2454 VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK_EXT = VK_DESCRIPTOR_TYPE_INLINE_UNIFORM_BLOCK,
2455 VK_DESCRIPTOR_TYPE_MUTABLE_VALVE = VK_DESCRIPTOR_TYPE_MUTABLE_EXT,
2456 VK_DESCRIPTOR_TYPE_MAX_ENUM = 0x7FFFFFFF
2457} VkDescriptorType;
2458
2459typedef enum VkAttachmentLoadOp {
2460 VK_ATTACHMENT_LOAD_OP_LOAD = 0,
2461 VK_ATTACHMENT_LOAD_OP_CLEAR = 1,
2462 VK_ATTACHMENT_LOAD_OP_DONT_CARE = 2,
2463 VK_ATTACHMENT_LOAD_OP_NONE = 1000400000,
2464 VK_ATTACHMENT_LOAD_OP_NONE_EXT = VK_ATTACHMENT_LOAD_OP_NONE,
2465 VK_ATTACHMENT_LOAD_OP_NONE_KHR = VK_ATTACHMENT_LOAD_OP_NONE,
2466 VK_ATTACHMENT_LOAD_OP_MAX_ENUM = 0x7FFFFFFF
2467} VkAttachmentLoadOp;
2468
2469typedef enum VkAttachmentStoreOp {
2470 VK_ATTACHMENT_STORE_OP_STORE = 0,
2471 VK_ATTACHMENT_STORE_OP_DONT_CARE = 1,
2472 VK_ATTACHMENT_STORE_OP_NONE = 1000301000,
2473 VK_ATTACHMENT_STORE_OP_NONE_KHR = VK_ATTACHMENT_STORE_OP_NONE,
2474 VK_ATTACHMENT_STORE_OP_NONE_QCOM = VK_ATTACHMENT_STORE_OP_NONE,
2475 VK_ATTACHMENT_STORE_OP_NONE_EXT = VK_ATTACHMENT_STORE_OP_NONE,
2476 VK_ATTACHMENT_STORE_OP_MAX_ENUM = 0x7FFFFFFF
2477} VkAttachmentStoreOp;
2478
2479typedef enum VkPipelineBindPoint {
2480 VK_PIPELINE_BIND_POINT_GRAPHICS = 0,
2481 VK_PIPELINE_BIND_POINT_COMPUTE = 1,
2482#ifdef VK_ENABLE_BETA_EXTENSIONS
2483 VK_PIPELINE_BIND_POINT_EXECUTION_GRAPH_AMDX = 1000134000,
2484#endif
2485 VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR = 1000165000,
2486 VK_PIPELINE_BIND_POINT_SUBPASS_SHADING_HUAWEI = 1000369003,
2487 VK_PIPELINE_BIND_POINT_DATA_GRAPH_ARM = 1000507000,
2488 VK_PIPELINE_BIND_POINT_RAY_TRACING_NV = VK_PIPELINE_BIND_POINT_RAY_TRACING_KHR,
2489 VK_PIPELINE_BIND_POINT_MAX_ENUM = 0x7FFFFFFF
2490} VkPipelineBindPoint;
2491
2492typedef enum VkCommandBufferLevel {
2493 VK_COMMAND_BUFFER_LEVEL_PRIMARY = 0,
2494 VK_COMMAND_BUFFER_LEVEL_SECONDARY = 1,
2495 VK_COMMAND_BUFFER_LEVEL_MAX_ENUM = 0x7FFFFFFF
2496} VkCommandBufferLevel;
2497
2498typedef enum VkIndexType {
2499 VK_INDEX_TYPE_UINT16 = 0,
2500 VK_INDEX_TYPE_UINT32 = 1,
2501 VK_INDEX_TYPE_UINT8 = 1000265000,
2502 VK_INDEX_TYPE_NONE_KHR = 1000165000,
2503 VK_INDEX_TYPE_NONE_NV = VK_INDEX_TYPE_NONE_KHR,
2504 VK_INDEX_TYPE_UINT8_EXT = VK_INDEX_TYPE_UINT8,
2505 VK_INDEX_TYPE_UINT8_KHR = VK_INDEX_TYPE_UINT8,
2506 VK_INDEX_TYPE_MAX_ENUM = 0x7FFFFFFF
2507} VkIndexType;
2508
2509typedef enum VkSubpassContents {
2510 VK_SUBPASS_CONTENTS_INLINE = 0,
2511 VK_SUBPASS_CONTENTS_SECONDARY_COMMAND_BUFFERS = 1,
2512 VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR = 1000451000,
2513 VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_EXT = VK_SUBPASS_CONTENTS_INLINE_AND_SECONDARY_COMMAND_BUFFERS_KHR,
2514 VK_SUBPASS_CONTENTS_MAX_ENUM = 0x7FFFFFFF
2515} VkSubpassContents;
2516
2517typedef enum VkAccessFlagBits {
2518 VK_ACCESS_INDIRECT_COMMAND_READ_BIT = 0x00000001,
2519 VK_ACCESS_INDEX_READ_BIT = 0x00000002,
2520 VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004,
2521 VK_ACCESS_UNIFORM_READ_BIT = 0x00000008,
2522 VK_ACCESS_INPUT_ATTACHMENT_READ_BIT = 0x00000010,
2523 VK_ACCESS_SHADER_READ_BIT = 0x00000020,
2524 VK_ACCESS_SHADER_WRITE_BIT = 0x00000040,
2525 VK_ACCESS_COLOR_ATTACHMENT_READ_BIT = 0x00000080,
2526 VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100,
2527 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200,
2528 VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400,
2529 VK_ACCESS_TRANSFER_READ_BIT = 0x00000800,
2530 VK_ACCESS_TRANSFER_WRITE_BIT = 0x00001000,
2531 VK_ACCESS_HOST_READ_BIT = 0x00002000,
2532 VK_ACCESS_HOST_WRITE_BIT = 0x00004000,
2533 VK_ACCESS_MEMORY_READ_BIT = 0x00008000,
2534 VK_ACCESS_MEMORY_WRITE_BIT = 0x00010000,
2535 VK_ACCESS_NONE = 0,
2536 VK_ACCESS_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000,
2537 VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000,
2538 VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000,
2539 VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000,
2540 VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000,
2541 VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000,
2542 VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000,
2543 VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000,
2544 VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000,
2545 VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_EXT = 0x00020000,
2546 VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_EXT = 0x00040000,
2547 VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV = VK_ACCESS_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR,
2548 VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR,
2549 VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV = VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_KHR,
2550 VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV = VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_EXT,
2551 VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_NV = VK_ACCESS_COMMAND_PREPROCESS_WRITE_BIT_EXT,
2552 VK_ACCESS_NONE_KHR = VK_ACCESS_NONE,
2553 VK_ACCESS_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2554} VkAccessFlagBits;
2555typedef VkFlags VkAccessFlags;
2556
2557typedef enum VkImageAspectFlagBits {
2558 VK_IMAGE_ASPECT_COLOR_BIT = 0x00000001,
2559 VK_IMAGE_ASPECT_DEPTH_BIT = 0x00000002,
2560 VK_IMAGE_ASPECT_STENCIL_BIT = 0x00000004,
2561 VK_IMAGE_ASPECT_METADATA_BIT = 0x00000008,
2562 VK_IMAGE_ASPECT_PLANE_0_BIT = 0x00000010,
2563 VK_IMAGE_ASPECT_PLANE_1_BIT = 0x00000020,
2564 VK_IMAGE_ASPECT_PLANE_2_BIT = 0x00000040,
2565 VK_IMAGE_ASPECT_NONE = 0,
2566 VK_IMAGE_ASPECT_MEMORY_PLANE_0_BIT_EXT = 0x00000080,
2567 VK_IMAGE_ASPECT_MEMORY_PLANE_1_BIT_EXT = 0x00000100,
2568 VK_IMAGE_ASPECT_MEMORY_PLANE_2_BIT_EXT = 0x00000200,
2569 VK_IMAGE_ASPECT_MEMORY_PLANE_3_BIT_EXT = 0x00000400,
2570 VK_IMAGE_ASPECT_PLANE_0_BIT_KHR = VK_IMAGE_ASPECT_PLANE_0_BIT,
2571 VK_IMAGE_ASPECT_PLANE_1_BIT_KHR = VK_IMAGE_ASPECT_PLANE_1_BIT,
2572 VK_IMAGE_ASPECT_PLANE_2_BIT_KHR = VK_IMAGE_ASPECT_PLANE_2_BIT,
2573 VK_IMAGE_ASPECT_NONE_KHR = VK_IMAGE_ASPECT_NONE,
2574 VK_IMAGE_ASPECT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2575} VkImageAspectFlagBits;
2576typedef VkFlags VkImageAspectFlags;
2577
2578typedef enum VkFormatFeatureFlagBits {
2579 VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT = 0x00000001,
2580 VK_FORMAT_FEATURE_STORAGE_IMAGE_BIT = 0x00000002,
2581 VK_FORMAT_FEATURE_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004,
2582 VK_FORMAT_FEATURE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008,
2583 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_BIT = 0x00000010,
2584 VK_FORMAT_FEATURE_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020,
2585 VK_FORMAT_FEATURE_VERTEX_BUFFER_BIT = 0x00000040,
2586 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BIT = 0x00000080,
2587 VK_FORMAT_FEATURE_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100,
2588 VK_FORMAT_FEATURE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200,
2589 VK_FORMAT_FEATURE_BLIT_SRC_BIT = 0x00000400,
2590 VK_FORMAT_FEATURE_BLIT_DST_BIT = 0x00000800,
2591 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000,
2592 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT = 0x00004000,
2593 VK_FORMAT_FEATURE_TRANSFER_DST_BIT = 0x00008000,
2594 VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000,
2595 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000,
2596 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000,
2597 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000,
2598 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000,
2599 VK_FORMAT_FEATURE_DISJOINT_BIT = 0x00400000,
2600 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT = 0x00800000,
2601 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0x00010000,
2602 VK_FORMAT_FEATURE_VIDEO_DECODE_OUTPUT_BIT_KHR = 0x02000000,
2603 VK_FORMAT_FEATURE_VIDEO_DECODE_DPB_BIT_KHR = 0x04000000,
2604 VK_FORMAT_FEATURE_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0x20000000,
2605 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 0x00002000,
2606 VK_FORMAT_FEATURE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000,
2607 VK_FORMAT_FEATURE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x40000000,
2608 VK_FORMAT_FEATURE_VIDEO_ENCODE_INPUT_BIT_KHR = 0x08000000,
2609 VK_FORMAT_FEATURE_VIDEO_ENCODE_DPB_BIT_KHR = 0x10000000,
2610 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_IMG = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT,
2611 VK_FORMAT_FEATURE_TRANSFER_SRC_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_SRC_BIT,
2612 VK_FORMAT_FEATURE_TRANSFER_DST_BIT_KHR = VK_FORMAT_FEATURE_TRANSFER_DST_BIT,
2613 VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT_EXT = VK_FORMAT_FEATURE_SAMPLED_IMAGE_FILTER_MINMAX_BIT,
2614 VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_MIDPOINT_CHROMA_SAMPLES_BIT,
2615 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT,
2616 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT,
2617 VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = VK_FORMAT_FEATURE_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT,
2618 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,
2619 VK_FORMAT_FEATURE_DISJOINT_BIT_KHR = VK_FORMAT_FEATURE_DISJOINT_BIT,
2620 VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT_KHR = VK_FORMAT_FEATURE_COSITED_CHROMA_SAMPLES_BIT,
2621 VK_FORMAT_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2622} VkFormatFeatureFlagBits;
2623typedef VkFlags VkFormatFeatureFlags;
2624
2625typedef enum VkImageCreateFlagBits {
2626 VK_IMAGE_CREATE_SPARSE_BINDING_BIT = 0x00000001,
2627 VK_IMAGE_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
2628 VK_IMAGE_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
2629 VK_IMAGE_CREATE_MUTABLE_FORMAT_BIT = 0x00000008,
2630 VK_IMAGE_CREATE_CUBE_COMPATIBLE_BIT = 0x00000010,
2631 VK_IMAGE_CREATE_ALIAS_BIT = 0x00000400,
2632 VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT = 0x00000040,
2633 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT = 0x00000020,
2634 VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT = 0x00000080,
2635 VK_IMAGE_CREATE_EXTENDED_USAGE_BIT = 0x00000100,
2636 VK_IMAGE_CREATE_PROTECTED_BIT = 0x00000800,
2637 VK_IMAGE_CREATE_DISJOINT_BIT = 0x00000200,
2638 VK_IMAGE_CREATE_CORNER_SAMPLED_BIT_NV = 0x00002000,
2639 VK_IMAGE_CREATE_SAMPLE_LOCATIONS_COMPATIBLE_DEPTH_BIT_EXT = 0x00001000,
2640 VK_IMAGE_CREATE_SUBSAMPLED_BIT_EXT = 0x00004000,
2641 VK_IMAGE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00010000,
2642 VK_IMAGE_CREATE_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_BIT_EXT = 0x00040000,
2643 VK_IMAGE_CREATE_2D_VIEW_COMPATIBLE_BIT_EXT = 0x00020000,
2644 VK_IMAGE_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR = 0x00100000,
2645 VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_EXT = 0x00008000,
2646 VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = VK_IMAGE_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT,
2647 VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_2D_ARRAY_COMPATIBLE_BIT,
2648 VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT_KHR = VK_IMAGE_CREATE_BLOCK_TEXEL_VIEW_COMPATIBLE_BIT,
2649 VK_IMAGE_CREATE_EXTENDED_USAGE_BIT_KHR = VK_IMAGE_CREATE_EXTENDED_USAGE_BIT,
2650 VK_IMAGE_CREATE_DISJOINT_BIT_KHR = VK_IMAGE_CREATE_DISJOINT_BIT,
2651 VK_IMAGE_CREATE_ALIAS_BIT_KHR = VK_IMAGE_CREATE_ALIAS_BIT,
2652 VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_QCOM = VK_IMAGE_CREATE_FRAGMENT_DENSITY_MAP_OFFSET_BIT_EXT,
2653 VK_IMAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2654} VkImageCreateFlagBits;
2655typedef VkFlags VkImageCreateFlags;
2656
2657typedef enum VkSampleCountFlagBits {
2658 VK_SAMPLE_COUNT_1_BIT = 0x00000001,
2659 VK_SAMPLE_COUNT_2_BIT = 0x00000002,
2660 VK_SAMPLE_COUNT_4_BIT = 0x00000004,
2661 VK_SAMPLE_COUNT_8_BIT = 0x00000008,
2662 VK_SAMPLE_COUNT_16_BIT = 0x00000010,
2663 VK_SAMPLE_COUNT_32_BIT = 0x00000020,
2664 VK_SAMPLE_COUNT_64_BIT = 0x00000040,
2665 VK_SAMPLE_COUNT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2666} VkSampleCountFlagBits;
2667typedef VkFlags VkSampleCountFlags;
2668
2669typedef enum VkImageUsageFlagBits {
2670 VK_IMAGE_USAGE_TRANSFER_SRC_BIT = 0x00000001,
2671 VK_IMAGE_USAGE_TRANSFER_DST_BIT = 0x00000002,
2672 VK_IMAGE_USAGE_SAMPLED_BIT = 0x00000004,
2673 VK_IMAGE_USAGE_STORAGE_BIT = 0x00000008,
2674 VK_IMAGE_USAGE_COLOR_ATTACHMENT_BIT = 0x00000010,
2675 VK_IMAGE_USAGE_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000020,
2676 VK_IMAGE_USAGE_TRANSIENT_ATTACHMENT_BIT = 0x00000040,
2677 VK_IMAGE_USAGE_INPUT_ATTACHMENT_BIT = 0x00000080,
2678 VK_IMAGE_USAGE_HOST_TRANSFER_BIT = 0x00400000,
2679 VK_IMAGE_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0x00000400,
2680 VK_IMAGE_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0x00000800,
2681 VK_IMAGE_USAGE_VIDEO_DECODE_DPB_BIT_KHR = 0x00001000,
2682 VK_IMAGE_USAGE_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x00000200,
2683 VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00000100,
2684 VK_IMAGE_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0x00002000,
2685 VK_IMAGE_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0x00004000,
2686 VK_IMAGE_USAGE_VIDEO_ENCODE_DPB_BIT_KHR = 0x00008000,
2687 VK_IMAGE_USAGE_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x00080000,
2688 VK_IMAGE_USAGE_INVOCATION_MASK_BIT_HUAWEI = 0x00040000,
2689 VK_IMAGE_USAGE_SAMPLE_WEIGHT_BIT_QCOM = 0x00100000,
2690 VK_IMAGE_USAGE_SAMPLE_BLOCK_MATCH_BIT_QCOM = 0x00200000,
2691 VK_IMAGE_USAGE_TENSOR_ALIASING_BIT_ARM = 0x00800000,
2692 VK_IMAGE_USAGE_TILE_MEMORY_BIT_QCOM = 0x08000000,
2693 VK_IMAGE_USAGE_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x02000000,
2694 VK_IMAGE_USAGE_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR = 0x04000000,
2695 VK_IMAGE_USAGE_SHADING_RATE_IMAGE_BIT_NV = VK_IMAGE_USAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
2696 VK_IMAGE_USAGE_HOST_TRANSFER_BIT_EXT = VK_IMAGE_USAGE_HOST_TRANSFER_BIT,
2697 VK_IMAGE_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2698} VkImageUsageFlagBits;
2699typedef VkFlags VkImageUsageFlags;
2700
2701typedef enum VkInstanceCreateFlagBits {
2702 VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR = 0x00000001,
2703 VK_INSTANCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2704} VkInstanceCreateFlagBits;
2705typedef VkFlags VkInstanceCreateFlags;
2706
2707typedef enum VkMemoryHeapFlagBits {
2708 VK_MEMORY_HEAP_DEVICE_LOCAL_BIT = 0x00000001,
2709 VK_MEMORY_HEAP_MULTI_INSTANCE_BIT = 0x00000002,
2710 VK_MEMORY_HEAP_TILE_MEMORY_BIT_QCOM = 0x00000008,
2711 VK_MEMORY_HEAP_MULTI_INSTANCE_BIT_KHR = VK_MEMORY_HEAP_MULTI_INSTANCE_BIT,
2712 VK_MEMORY_HEAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2713} VkMemoryHeapFlagBits;
2714typedef VkFlags VkMemoryHeapFlags;
2715
2716typedef enum VkMemoryPropertyFlagBits {
2717 VK_MEMORY_PROPERTY_DEVICE_LOCAL_BIT = 0x00000001,
2718 VK_MEMORY_PROPERTY_HOST_VISIBLE_BIT = 0x00000002,
2719 VK_MEMORY_PROPERTY_HOST_COHERENT_BIT = 0x00000004,
2720 VK_MEMORY_PROPERTY_HOST_CACHED_BIT = 0x00000008,
2721 VK_MEMORY_PROPERTY_LAZILY_ALLOCATED_BIT = 0x00000010,
2722 VK_MEMORY_PROPERTY_PROTECTED_BIT = 0x00000020,
2723 VK_MEMORY_PROPERTY_DEVICE_COHERENT_BIT_AMD = 0x00000040,
2724 VK_MEMORY_PROPERTY_DEVICE_UNCACHED_BIT_AMD = 0x00000080,
2725 VK_MEMORY_PROPERTY_RDMA_CAPABLE_BIT_NV = 0x00000100,
2726 VK_MEMORY_PROPERTY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2727} VkMemoryPropertyFlagBits;
2728typedef VkFlags VkMemoryPropertyFlags;
2729
2730typedef enum VkQueueFlagBits {
2731 VK_QUEUE_GRAPHICS_BIT = 0x00000001,
2732 VK_QUEUE_COMPUTE_BIT = 0x00000002,
2733 VK_QUEUE_TRANSFER_BIT = 0x00000004,
2734 VK_QUEUE_SPARSE_BINDING_BIT = 0x00000008,
2735 VK_QUEUE_PROTECTED_BIT = 0x00000010,
2736 VK_QUEUE_VIDEO_DECODE_BIT_KHR = 0x00000020,
2737 VK_QUEUE_VIDEO_ENCODE_BIT_KHR = 0x00000040,
2738 VK_QUEUE_OPTICAL_FLOW_BIT_NV = 0x00000100,
2739 VK_QUEUE_DATA_GRAPH_BIT_ARM = 0x00000400,
2740 VK_QUEUE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2741} VkQueueFlagBits;
2742typedef VkFlags VkQueueFlags;
2743typedef VkFlags VkDeviceCreateFlags;
2744
2745typedef enum VkDeviceQueueCreateFlagBits {
2746 VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT = 0x00000001,
2747 VK_DEVICE_QUEUE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2748} VkDeviceQueueCreateFlagBits;
2749typedef VkFlags VkDeviceQueueCreateFlags;
2750
2751typedef enum VkPipelineStageFlagBits {
2752 VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT = 0x00000001,
2753 VK_PIPELINE_STAGE_DRAW_INDIRECT_BIT = 0x00000002,
2754 VK_PIPELINE_STAGE_VERTEX_INPUT_BIT = 0x00000004,
2755 VK_PIPELINE_STAGE_VERTEX_SHADER_BIT = 0x00000008,
2756 VK_PIPELINE_STAGE_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010,
2757 VK_PIPELINE_STAGE_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020,
2758 VK_PIPELINE_STAGE_GEOMETRY_SHADER_BIT = 0x00000040,
2759 VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT = 0x00000080,
2760 VK_PIPELINE_STAGE_EARLY_FRAGMENT_TESTS_BIT = 0x00000100,
2761 VK_PIPELINE_STAGE_LATE_FRAGMENT_TESTS_BIT = 0x00000200,
2762 VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400,
2763 VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT = 0x00000800,
2764 VK_PIPELINE_STAGE_TRANSFER_BIT = 0x00001000,
2765 VK_PIPELINE_STAGE_BOTTOM_OF_PIPE_BIT = 0x00002000,
2766 VK_PIPELINE_STAGE_HOST_BIT = 0x00004000,
2767 VK_PIPELINE_STAGE_ALL_GRAPHICS_BIT = 0x00008000,
2768 VK_PIPELINE_STAGE_ALL_COMMANDS_BIT = 0x00010000,
2769 VK_PIPELINE_STAGE_NONE = 0,
2770 VK_PIPELINE_STAGE_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000,
2771 VK_PIPELINE_STAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000,
2772 VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000,
2773 VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR = 0x00200000,
2774 VK_PIPELINE_STAGE_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000,
2775 VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00400000,
2776 VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT = 0x00080000,
2777 VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT = 0x00100000,
2778 VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_EXT = 0x00020000,
2779 VK_PIPELINE_STAGE_SHADING_RATE_IMAGE_BIT_NV = VK_PIPELINE_STAGE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
2780 VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_NV = VK_PIPELINE_STAGE_RAY_TRACING_SHADER_BIT_KHR,
2781 VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_NV = VK_PIPELINE_STAGE_ACCELERATION_STRUCTURE_BUILD_BIT_KHR,
2782 VK_PIPELINE_STAGE_TASK_SHADER_BIT_NV = VK_PIPELINE_STAGE_TASK_SHADER_BIT_EXT,
2783 VK_PIPELINE_STAGE_MESH_SHADER_BIT_NV = VK_PIPELINE_STAGE_MESH_SHADER_BIT_EXT,
2784 VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_NV = VK_PIPELINE_STAGE_COMMAND_PREPROCESS_BIT_EXT,
2785 VK_PIPELINE_STAGE_NONE_KHR = VK_PIPELINE_STAGE_NONE,
2786 VK_PIPELINE_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2787} VkPipelineStageFlagBits;
2788typedef VkFlags VkPipelineStageFlags;
2789
2790typedef enum VkMemoryMapFlagBits {
2791 VK_MEMORY_MAP_PLACED_BIT_EXT = 0x00000001,
2792 VK_MEMORY_MAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2793} VkMemoryMapFlagBits;
2794typedef VkFlags VkMemoryMapFlags;
2795
2796typedef enum VkSparseMemoryBindFlagBits {
2797 VK_SPARSE_MEMORY_BIND_METADATA_BIT = 0x00000001,
2798 VK_SPARSE_MEMORY_BIND_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2799} VkSparseMemoryBindFlagBits;
2800typedef VkFlags VkSparseMemoryBindFlags;
2801
2802typedef enum VkSparseImageFormatFlagBits {
2803 VK_SPARSE_IMAGE_FORMAT_SINGLE_MIPTAIL_BIT = 0x00000001,
2804 VK_SPARSE_IMAGE_FORMAT_ALIGNED_MIP_SIZE_BIT = 0x00000002,
2805 VK_SPARSE_IMAGE_FORMAT_NONSTANDARD_BLOCK_SIZE_BIT = 0x00000004,
2806 VK_SPARSE_IMAGE_FORMAT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2807} VkSparseImageFormatFlagBits;
2808typedef VkFlags VkSparseImageFormatFlags;
2809
2810typedef enum VkFenceCreateFlagBits {
2811 VK_FENCE_CREATE_SIGNALED_BIT = 0x00000001,
2812 VK_FENCE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2813} VkFenceCreateFlagBits;
2814typedef VkFlags VkFenceCreateFlags;
2815typedef VkFlags VkSemaphoreCreateFlags;
2816
2817typedef enum VkEventCreateFlagBits {
2818 VK_EVENT_CREATE_DEVICE_ONLY_BIT = 0x00000001,
2819 VK_EVENT_CREATE_DEVICE_ONLY_BIT_KHR = VK_EVENT_CREATE_DEVICE_ONLY_BIT,
2820 VK_EVENT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2821} VkEventCreateFlagBits;
2822typedef VkFlags VkEventCreateFlags;
2823
2824typedef enum VkQueryPipelineStatisticFlagBits {
2825 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_VERTICES_BIT = 0x00000001,
2826 VK_QUERY_PIPELINE_STATISTIC_INPUT_ASSEMBLY_PRIMITIVES_BIT = 0x00000002,
2827 VK_QUERY_PIPELINE_STATISTIC_VERTEX_SHADER_INVOCATIONS_BIT = 0x00000004,
2828 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_INVOCATIONS_BIT = 0x00000008,
2829 VK_QUERY_PIPELINE_STATISTIC_GEOMETRY_SHADER_PRIMITIVES_BIT = 0x00000010,
2830 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_INVOCATIONS_BIT = 0x00000020,
2831 VK_QUERY_PIPELINE_STATISTIC_CLIPPING_PRIMITIVES_BIT = 0x00000040,
2832 VK_QUERY_PIPELINE_STATISTIC_FRAGMENT_SHADER_INVOCATIONS_BIT = 0x00000080,
2833 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_CONTROL_SHADER_PATCHES_BIT = 0x00000100,
2834 VK_QUERY_PIPELINE_STATISTIC_TESSELLATION_EVALUATION_SHADER_INVOCATIONS_BIT = 0x00000200,
2835 VK_QUERY_PIPELINE_STATISTIC_COMPUTE_SHADER_INVOCATIONS_BIT = 0x00000400,
2836 VK_QUERY_PIPELINE_STATISTIC_TASK_SHADER_INVOCATIONS_BIT_EXT = 0x00000800,
2837 VK_QUERY_PIPELINE_STATISTIC_MESH_SHADER_INVOCATIONS_BIT_EXT = 0x00001000,
2838 VK_QUERY_PIPELINE_STATISTIC_CLUSTER_CULLING_SHADER_INVOCATIONS_BIT_HUAWEI = 0x00002000,
2839 VK_QUERY_PIPELINE_STATISTIC_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2840} VkQueryPipelineStatisticFlagBits;
2841typedef VkFlags VkQueryPipelineStatisticFlags;
2842
2843typedef enum VkQueryPoolCreateFlagBits {
2844 VK_QUERY_POOL_CREATE_RESET_BIT_KHR = 0x00000001,
2845 VK_QUERY_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2846} VkQueryPoolCreateFlagBits;
2847typedef VkFlags VkQueryPoolCreateFlags;
2848
2849typedef enum VkQueryResultFlagBits {
2850 VK_QUERY_RESULT_64_BIT = 0x00000001,
2851 VK_QUERY_RESULT_WAIT_BIT = 0x00000002,
2852 VK_QUERY_RESULT_WITH_AVAILABILITY_BIT = 0x00000004,
2853 VK_QUERY_RESULT_PARTIAL_BIT = 0x00000008,
2854 VK_QUERY_RESULT_WITH_STATUS_BIT_KHR = 0x00000010,
2855 VK_QUERY_RESULT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2856} VkQueryResultFlagBits;
2857typedef VkFlags VkQueryResultFlags;
2858
2859typedef enum VkBufferCreateFlagBits {
2860 VK_BUFFER_CREATE_SPARSE_BINDING_BIT = 0x00000001,
2861 VK_BUFFER_CREATE_SPARSE_RESIDENCY_BIT = 0x00000002,
2862 VK_BUFFER_CREATE_SPARSE_ALIASED_BIT = 0x00000004,
2863 VK_BUFFER_CREATE_PROTECTED_BIT = 0x00000008,
2864 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0x00000010,
2865 VK_BUFFER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000020,
2866 VK_BUFFER_CREATE_VIDEO_PROFILE_INDEPENDENT_BIT_KHR = 0x00000040,
2867 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
2868 VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = VK_BUFFER_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
2869 VK_BUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2870} VkBufferCreateFlagBits;
2871typedef VkFlags VkBufferCreateFlags;
2872
2873typedef enum VkBufferUsageFlagBits {
2874 VK_BUFFER_USAGE_TRANSFER_SRC_BIT = 0x00000001,
2875 VK_BUFFER_USAGE_TRANSFER_DST_BIT = 0x00000002,
2876 VK_BUFFER_USAGE_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004,
2877 VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT = 0x00000008,
2878 VK_BUFFER_USAGE_UNIFORM_BUFFER_BIT = 0x00000010,
2879 VK_BUFFER_USAGE_STORAGE_BUFFER_BIT = 0x00000020,
2880 VK_BUFFER_USAGE_INDEX_BUFFER_BIT = 0x00000040,
2881 VK_BUFFER_USAGE_VERTEX_BUFFER_BIT = 0x00000080,
2882 VK_BUFFER_USAGE_INDIRECT_BUFFER_BIT = 0x00000100,
2883 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT = 0x00020000,
2884 VK_BUFFER_USAGE_VIDEO_DECODE_SRC_BIT_KHR = 0x00002000,
2885 VK_BUFFER_USAGE_VIDEO_DECODE_DST_BIT_KHR = 0x00004000,
2886 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800,
2887 VK_BUFFER_USAGE_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000,
2888 VK_BUFFER_USAGE_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200,
2889#ifdef VK_ENABLE_BETA_EXTENSIONS
2890 VK_BUFFER_USAGE_EXECUTION_GRAPH_SCRATCH_BIT_AMDX = 0x02000000,
2891#endif
2892 VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 0x00080000,
2893 VK_BUFFER_USAGE_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 0x00100000,
2894 VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR = 0x00000400,
2895 VK_BUFFER_USAGE_VIDEO_ENCODE_DST_BIT_KHR = 0x00008000,
2896 VK_BUFFER_USAGE_VIDEO_ENCODE_SRC_BIT_KHR = 0x00010000,
2897 VK_BUFFER_USAGE_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 0x00200000,
2898 VK_BUFFER_USAGE_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00400000,
2899 VK_BUFFER_USAGE_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 0x04000000,
2900 VK_BUFFER_USAGE_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 0x00800000,
2901 VK_BUFFER_USAGE_MICROMAP_STORAGE_BIT_EXT = 0x01000000,
2902 VK_BUFFER_USAGE_TILE_MEMORY_BIT_QCOM = 0x08000000,
2903 VK_BUFFER_USAGE_RAY_TRACING_BIT_NV = VK_BUFFER_USAGE_SHADER_BINDING_TABLE_BIT_KHR,
2904 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_EXT = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
2905 VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT_KHR = VK_BUFFER_USAGE_SHADER_DEVICE_ADDRESS_BIT,
2906 VK_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2907} VkBufferUsageFlagBits;
2908typedef VkFlags VkBufferUsageFlags;
2909typedef VkFlags VkBufferViewCreateFlags;
2910
2911typedef enum VkImageViewCreateFlagBits {
2912 VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DYNAMIC_BIT_EXT = 0x00000001,
2913 VK_IMAGE_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000004,
2914 VK_IMAGE_VIEW_CREATE_FRAGMENT_DENSITY_MAP_DEFERRED_BIT_EXT = 0x00000002,
2915 VK_IMAGE_VIEW_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2916} VkImageViewCreateFlagBits;
2917typedef VkFlags VkImageViewCreateFlags;
2918typedef VkFlags VkShaderModuleCreateFlags;
2919
2920typedef enum VkPipelineCacheCreateFlagBits {
2921 VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT = 0x00000001,
2922 VK_PIPELINE_CACHE_CREATE_INTERNALLY_SYNCHRONIZED_MERGE_BIT_KHR = 0x00000008,
2923 VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT_EXT = VK_PIPELINE_CACHE_CREATE_EXTERNALLY_SYNCHRONIZED_BIT,
2924 VK_PIPELINE_CACHE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2925} VkPipelineCacheCreateFlagBits;
2926typedef VkFlags VkPipelineCacheCreateFlags;
2927
2928typedef enum VkColorComponentFlagBits {
2929 VK_COLOR_COMPONENT_R_BIT = 0x00000001,
2930 VK_COLOR_COMPONENT_G_BIT = 0x00000002,
2931 VK_COLOR_COMPONENT_B_BIT = 0x00000004,
2932 VK_COLOR_COMPONENT_A_BIT = 0x00000008,
2933 VK_COLOR_COMPONENT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2934} VkColorComponentFlagBits;
2935typedef VkFlags VkColorComponentFlags;
2936
2937typedef enum VkPipelineCreateFlagBits {
2938 VK_PIPELINE_CREATE_DISABLE_OPTIMIZATION_BIT = 0x00000001,
2939 VK_PIPELINE_CREATE_ALLOW_DERIVATIVES_BIT = 0x00000002,
2940 VK_PIPELINE_CREATE_DERIVATIVE_BIT = 0x00000004,
2941 VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008,
2942 VK_PIPELINE_CREATE_DISPATCH_BASE_BIT = 0x00000010,
2943 VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT = 0x00000100,
2944 VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT = 0x00000200,
2945 VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT = 0x08000000,
2946 VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT = 0x40000000,
2947 VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = 0x00004000,
2948 VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = 0x00008000,
2949 VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = 0x00010000,
2950 VK_PIPELINE_CREATE_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = 0x00020000,
2951 VK_PIPELINE_CREATE_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = 0x00001000,
2952 VK_PIPELINE_CREATE_RAY_TRACING_SKIP_AABBS_BIT_KHR = 0x00002000,
2953 VK_PIPELINE_CREATE_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR = 0x00080000,
2954 VK_PIPELINE_CREATE_DEFER_COMPILE_BIT_NV = 0x00000020,
2955 VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00400000,
2956 VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00200000,
2957 VK_PIPELINE_CREATE_CAPTURE_STATISTICS_BIT_KHR = 0x00000040,
2958 VK_PIPELINE_CREATE_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x00000080,
2959 VK_PIPELINE_CREATE_INDIRECT_BINDABLE_BIT_NV = 0x00040000,
2960 VK_PIPELINE_CREATE_LIBRARY_BIT_KHR = 0x00000800,
2961 VK_PIPELINE_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 0x20000000,
2962 VK_PIPELINE_CREATE_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 0x00800000,
2963 VK_PIPELINE_CREATE_LINK_TIME_OPTIMIZATION_BIT_EXT = 0x00000400,
2964 VK_PIPELINE_CREATE_RAY_TRACING_ALLOW_MOTION_BIT_NV = 0x00100000,
2965 VK_PIPELINE_CREATE_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x02000000,
2966 VK_PIPELINE_CREATE_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x04000000,
2967 VK_PIPELINE_CREATE_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 0x01000000,
2968#ifdef VK_ENABLE_BETA_EXTENSIONS
2969 VK_PIPELINE_CREATE_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV = 0x10000000,
2970#endif
2971 // VK_PIPELINE_CREATE_DISPATCH_BASE is a deprecated alias
2972 VK_PIPELINE_CREATE_DISPATCH_BASE = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,
2973 VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = VK_PIPELINE_CREATE_VIEW_INDEX_FROM_DEVICE_INDEX_BIT,
2974 VK_PIPELINE_CREATE_DISPATCH_BASE_BIT_KHR = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,
2975 // VK_PIPELINE_CREATE_DISPATCH_BASE_KHR is a deprecated alias
2976 VK_PIPELINE_CREATE_DISPATCH_BASE_KHR = VK_PIPELINE_CREATE_DISPATCH_BASE_BIT,
2977 // VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT is a deprecated alias
2978 VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT,
2979 // VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR is a deprecated alias
2980 VK_PIPELINE_RASTERIZATION_STATE_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = VK_PIPELINE_CREATE_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR,
2981 VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_EXT = VK_PIPELINE_CREATE_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT,
2982 VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT_EXT = VK_PIPELINE_CREATE_EARLY_RETURN_ON_FAILURE_BIT,
2983 VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT_EXT = VK_PIPELINE_CREATE_NO_PROTECTED_ACCESS_BIT,
2984 VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT_EXT = VK_PIPELINE_CREATE_PROTECTED_ACCESS_ONLY_BIT,
2985 VK_PIPELINE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2986} VkPipelineCreateFlagBits;
2987typedef VkFlags VkPipelineCreateFlags;
2988
2989typedef enum VkPipelineShaderStageCreateFlagBits {
2990 VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT = 0x00000001,
2991 VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT = 0x00000002,
2992 VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = VK_PIPELINE_SHADER_STAGE_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT,
2993 VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = VK_PIPELINE_SHADER_STAGE_CREATE_REQUIRE_FULL_SUBGROUPS_BIT,
2994 VK_PIPELINE_SHADER_STAGE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
2995} VkPipelineShaderStageCreateFlagBits;
2996typedef VkFlags VkPipelineShaderStageCreateFlags;
2997
2998typedef enum VkShaderStageFlagBits {
2999 VK_SHADER_STAGE_VERTEX_BIT = 0x00000001,
3000 VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT = 0x00000002,
3001 VK_SHADER_STAGE_TESSELLATION_EVALUATION_BIT = 0x00000004,
3002 VK_SHADER_STAGE_GEOMETRY_BIT = 0x00000008,
3003 VK_SHADER_STAGE_FRAGMENT_BIT = 0x00000010,
3004 VK_SHADER_STAGE_COMPUTE_BIT = 0x00000020,
3005 VK_SHADER_STAGE_ALL_GRAPHICS = 0x0000001F,
3006 VK_SHADER_STAGE_ALL = 0x7FFFFFFF,
3007 VK_SHADER_STAGE_RAYGEN_BIT_KHR = 0x00000100,
3008 VK_SHADER_STAGE_ANY_HIT_BIT_KHR = 0x00000200,
3009 VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR = 0x00000400,
3010 VK_SHADER_STAGE_MISS_BIT_KHR = 0x00000800,
3011 VK_SHADER_STAGE_INTERSECTION_BIT_KHR = 0x00001000,
3012 VK_SHADER_STAGE_CALLABLE_BIT_KHR = 0x00002000,
3013 VK_SHADER_STAGE_TASK_BIT_EXT = 0x00000040,
3014 VK_SHADER_STAGE_MESH_BIT_EXT = 0x00000080,
3015 VK_SHADER_STAGE_SUBPASS_SHADING_BIT_HUAWEI = 0x00004000,
3016 VK_SHADER_STAGE_CLUSTER_CULLING_BIT_HUAWEI = 0x00080000,
3017 VK_SHADER_STAGE_RAYGEN_BIT_NV = VK_SHADER_STAGE_RAYGEN_BIT_KHR,
3018 VK_SHADER_STAGE_ANY_HIT_BIT_NV = VK_SHADER_STAGE_ANY_HIT_BIT_KHR,
3019 VK_SHADER_STAGE_CLOSEST_HIT_BIT_NV = VK_SHADER_STAGE_CLOSEST_HIT_BIT_KHR,
3020 VK_SHADER_STAGE_MISS_BIT_NV = VK_SHADER_STAGE_MISS_BIT_KHR,
3021 VK_SHADER_STAGE_INTERSECTION_BIT_NV = VK_SHADER_STAGE_INTERSECTION_BIT_KHR,
3022 VK_SHADER_STAGE_CALLABLE_BIT_NV = VK_SHADER_STAGE_CALLABLE_BIT_KHR,
3023 VK_SHADER_STAGE_TASK_BIT_NV = VK_SHADER_STAGE_TASK_BIT_EXT,
3024 VK_SHADER_STAGE_MESH_BIT_NV = VK_SHADER_STAGE_MESH_BIT_EXT,
3025 VK_SHADER_STAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3026} VkShaderStageFlagBits;
3027
3028typedef enum VkCullModeFlagBits {
3029 VK_CULL_MODE_NONE = 0,
3030 VK_CULL_MODE_FRONT_BIT = 0x00000001,
3031 VK_CULL_MODE_BACK_BIT = 0x00000002,
3032 VK_CULL_MODE_FRONT_AND_BACK = 0x00000003,
3033 VK_CULL_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3034} VkCullModeFlagBits;
3035typedef VkFlags VkCullModeFlags;
3036typedef VkFlags VkPipelineVertexInputStateCreateFlags;
3037typedef VkFlags VkPipelineInputAssemblyStateCreateFlags;
3038typedef VkFlags VkPipelineTessellationStateCreateFlags;
3039typedef VkFlags VkPipelineViewportStateCreateFlags;
3040typedef VkFlags VkPipelineRasterizationStateCreateFlags;
3041typedef VkFlags VkPipelineMultisampleStateCreateFlags;
3042
3043typedef enum VkPipelineDepthStencilStateCreateFlagBits {
3044 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 0x00000001,
3045 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 0x00000002,
3046 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,
3047 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,
3048 VK_PIPELINE_DEPTH_STENCIL_STATE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3049} VkPipelineDepthStencilStateCreateFlagBits;
3050typedef VkFlags VkPipelineDepthStencilStateCreateFlags;
3051
3052typedef enum VkPipelineColorBlendStateCreateFlagBits {
3053 VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT = 0x00000001,
3054 VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_ARM = VK_PIPELINE_COLOR_BLEND_STATE_CREATE_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_BIT_EXT,
3055 VK_PIPELINE_COLOR_BLEND_STATE_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3056} VkPipelineColorBlendStateCreateFlagBits;
3057typedef VkFlags VkPipelineColorBlendStateCreateFlags;
3058typedef VkFlags VkPipelineDynamicStateCreateFlags;
3059
3060typedef enum VkPipelineLayoutCreateFlagBits {
3061 VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT = 0x00000002,
3062 VK_PIPELINE_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3063} VkPipelineLayoutCreateFlagBits;
3064typedef VkFlags VkPipelineLayoutCreateFlags;
3065typedef VkFlags VkShaderStageFlags;
3066
3067typedef enum VkSamplerCreateFlagBits {
3068 VK_SAMPLER_CREATE_SUBSAMPLED_BIT_EXT = 0x00000001,
3069 VK_SAMPLER_CREATE_SUBSAMPLED_COARSE_RECONSTRUCTION_BIT_EXT = 0x00000002,
3070 VK_SAMPLER_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000008,
3071 VK_SAMPLER_CREATE_NON_SEAMLESS_CUBE_MAP_BIT_EXT = 0x00000004,
3072 VK_SAMPLER_CREATE_IMAGE_PROCESSING_BIT_QCOM = 0x00000010,
3073 VK_SAMPLER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3074} VkSamplerCreateFlagBits;
3075typedef VkFlags VkSamplerCreateFlags;
3076
3077typedef enum VkDescriptorPoolCreateFlagBits {
3078 VK_DESCRIPTOR_POOL_CREATE_FREE_DESCRIPTOR_SET_BIT = 0x00000001,
3079 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT = 0x00000002,
3080 VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT = 0x00000004,
3081 VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_SETS_BIT_NV = 0x00000008,
3082 VK_DESCRIPTOR_POOL_CREATE_ALLOW_OVERALLOCATION_POOLS_BIT_NV = 0x00000010,
3083 VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT_EXT = VK_DESCRIPTOR_POOL_CREATE_UPDATE_AFTER_BIND_BIT,
3084 VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_VALVE = VK_DESCRIPTOR_POOL_CREATE_HOST_ONLY_BIT_EXT,
3085 VK_DESCRIPTOR_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3086} VkDescriptorPoolCreateFlagBits;
3087typedef VkFlags VkDescriptorPoolCreateFlags;
3088typedef VkFlags VkDescriptorPoolResetFlags;
3089
3090typedef enum VkDescriptorSetLayoutCreateFlagBits {
3091 VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT = 0x00000002,
3092 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT = 0x00000001,
3093 VK_DESCRIPTOR_SET_LAYOUT_CREATE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00000010,
3094 VK_DESCRIPTOR_SET_LAYOUT_CREATE_EMBEDDED_IMMUTABLE_SAMPLERS_BIT_EXT = 0x00000020,
3095 VK_DESCRIPTOR_SET_LAYOUT_CREATE_INDIRECT_BINDABLE_BIT_NV = 0x00000080,
3096 VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT = 0x00000004,
3097 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PER_STAGE_BIT_NV = 0x00000040,
3098 VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT_KHR = VK_DESCRIPTOR_SET_LAYOUT_CREATE_PUSH_DESCRIPTOR_BIT,
3099 VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT_EXT = VK_DESCRIPTOR_SET_LAYOUT_CREATE_UPDATE_AFTER_BIND_POOL_BIT,
3100 VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_VALVE = VK_DESCRIPTOR_SET_LAYOUT_CREATE_HOST_ONLY_POOL_BIT_EXT,
3101 VK_DESCRIPTOR_SET_LAYOUT_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3102} VkDescriptorSetLayoutCreateFlagBits;
3103typedef VkFlags VkDescriptorSetLayoutCreateFlags;
3104
3105typedef enum VkAttachmentDescriptionFlagBits {
3106 VK_ATTACHMENT_DESCRIPTION_MAY_ALIAS_BIT = 0x00000001,
3107 VK_ATTACHMENT_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3108} VkAttachmentDescriptionFlagBits;
3109typedef VkFlags VkAttachmentDescriptionFlags;
3110
3111typedef enum VkDependencyFlagBits {
3112 VK_DEPENDENCY_BY_REGION_BIT = 0x00000001,
3113 VK_DEPENDENCY_DEVICE_GROUP_BIT = 0x00000004,
3114 VK_DEPENDENCY_VIEW_LOCAL_BIT = 0x00000002,
3115 VK_DEPENDENCY_FEEDBACK_LOOP_BIT_EXT = 0x00000008,
3116 VK_DEPENDENCY_QUEUE_FAMILY_OWNERSHIP_TRANSFER_USE_ALL_STAGES_BIT_KHR = 0x00000020,
3117 VK_DEPENDENCY_ASYMMETRIC_EVENT_BIT_KHR = 0x00000040,
3118 VK_DEPENDENCY_VIEW_LOCAL_BIT_KHR = VK_DEPENDENCY_VIEW_LOCAL_BIT,
3119 VK_DEPENDENCY_DEVICE_GROUP_BIT_KHR = VK_DEPENDENCY_DEVICE_GROUP_BIT,
3120 VK_DEPENDENCY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3121} VkDependencyFlagBits;
3122typedef VkFlags VkDependencyFlags;
3123
3124typedef enum VkFramebufferCreateFlagBits {
3125 VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT = 0x00000001,
3126 VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT_KHR = VK_FRAMEBUFFER_CREATE_IMAGELESS_BIT,
3127 VK_FRAMEBUFFER_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3128} VkFramebufferCreateFlagBits;
3129typedef VkFlags VkFramebufferCreateFlags;
3130
3131typedef enum VkRenderPassCreateFlagBits {
3132 VK_RENDER_PASS_CREATE_TRANSFORM_BIT_QCOM = 0x00000002,
3133 VK_RENDER_PASS_CREATE_PER_LAYER_FRAGMENT_DENSITY_BIT_VALVE = 0x00000004,
3134 VK_RENDER_PASS_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3135} VkRenderPassCreateFlagBits;
3136typedef VkFlags VkRenderPassCreateFlags;
3137
3138typedef enum VkSubpassDescriptionFlagBits {
3139 VK_SUBPASS_DESCRIPTION_PER_VIEW_ATTRIBUTES_BIT_NVX = 0x00000001,
3140 VK_SUBPASS_DESCRIPTION_PER_VIEW_POSITION_X_ONLY_BIT_NVX = 0x00000002,
3141 VK_SUBPASS_DESCRIPTION_FRAGMENT_REGION_BIT_QCOM = 0x00000004,
3142 VK_SUBPASS_DESCRIPTION_SHADER_RESOLVE_BIT_QCOM = 0x00000008,
3143 VK_SUBPASS_DESCRIPTION_TILE_SHADING_APRON_BIT_QCOM = 0x00000100,
3144 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT = 0x00000010,
3145 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT = 0x00000020,
3146 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT = 0x00000040,
3147 VK_SUBPASS_DESCRIPTION_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x00000080,
3148 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_ARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_COLOR_ACCESS_BIT_EXT,
3149 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_ARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_DEPTH_ACCESS_BIT_EXT,
3150 VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_ARM = VK_SUBPASS_DESCRIPTION_RASTERIZATION_ORDER_ATTACHMENT_STENCIL_ACCESS_BIT_EXT,
3151 VK_SUBPASS_DESCRIPTION_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3152} VkSubpassDescriptionFlagBits;
3153typedef VkFlags VkSubpassDescriptionFlags;
3154
3155typedef enum VkCommandPoolCreateFlagBits {
3156 VK_COMMAND_POOL_CREATE_TRANSIENT_BIT = 0x00000001,
3157 VK_COMMAND_POOL_CREATE_RESET_COMMAND_BUFFER_BIT = 0x00000002,
3158 VK_COMMAND_POOL_CREATE_PROTECTED_BIT = 0x00000004,
3159 VK_COMMAND_POOL_CREATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3160} VkCommandPoolCreateFlagBits;
3161typedef VkFlags VkCommandPoolCreateFlags;
3162
3163typedef enum VkCommandPoolResetFlagBits {
3164 VK_COMMAND_POOL_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
3165 VK_COMMAND_POOL_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3166} VkCommandPoolResetFlagBits;
3167typedef VkFlags VkCommandPoolResetFlags;
3168
3169typedef enum VkCommandBufferUsageFlagBits {
3170 VK_COMMAND_BUFFER_USAGE_ONE_TIME_SUBMIT_BIT = 0x00000001,
3171 VK_COMMAND_BUFFER_USAGE_RENDER_PASS_CONTINUE_BIT = 0x00000002,
3172 VK_COMMAND_BUFFER_USAGE_SIMULTANEOUS_USE_BIT = 0x00000004,
3173 VK_COMMAND_BUFFER_USAGE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3174} VkCommandBufferUsageFlagBits;
3175typedef VkFlags VkCommandBufferUsageFlags;
3176
3177typedef enum VkQueryControlFlagBits {
3178 VK_QUERY_CONTROL_PRECISE_BIT = 0x00000001,
3179 VK_QUERY_CONTROL_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3180} VkQueryControlFlagBits;
3181typedef VkFlags VkQueryControlFlags;
3182
3183typedef enum VkCommandBufferResetFlagBits {
3184 VK_COMMAND_BUFFER_RESET_RELEASE_RESOURCES_BIT = 0x00000001,
3185 VK_COMMAND_BUFFER_RESET_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3186} VkCommandBufferResetFlagBits;
3187typedef VkFlags VkCommandBufferResetFlags;
3188
3189typedef enum VkStencilFaceFlagBits {
3190 VK_STENCIL_FACE_FRONT_BIT = 0x00000001,
3191 VK_STENCIL_FACE_BACK_BIT = 0x00000002,
3192 VK_STENCIL_FACE_FRONT_AND_BACK = 0x00000003,
3193 // VK_STENCIL_FRONT_AND_BACK is a deprecated alias
3194 VK_STENCIL_FRONT_AND_BACK = VK_STENCIL_FACE_FRONT_AND_BACK,
3195 VK_STENCIL_FACE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
3196} VkStencilFaceFlagBits;
3197typedef VkFlags VkStencilFaceFlags;
3198typedef struct VkExtent2D {
3199 uint32_t width;
3200 uint32_t height;
3201} VkExtent2D;
3202
3203typedef struct VkExtent3D {
3204 uint32_t width;
3205 uint32_t height;
3206 uint32_t depth;
3207} VkExtent3D;
3208
3209typedef struct VkOffset2D {
3210 int32_t x;
3211 int32_t y;
3212} VkOffset2D;
3213
3214typedef struct VkOffset3D {
3215 int32_t x;
3216 int32_t y;
3217 int32_t z;
3218} VkOffset3D;
3219
3220typedef struct VkRect2D {
3221 VkOffset2D offset;
3222 VkExtent2D extent;
3223} VkRect2D;
3224
3225typedef struct VkBaseInStructure {
3226 VkStructureType sType;
3227 const struct VkBaseInStructure* pNext;
3228} VkBaseInStructure;
3229
3230typedef struct VkBaseOutStructure {
3231 VkStructureType sType;
3232 struct VkBaseOutStructure* pNext;
3233} VkBaseOutStructure;
3234
3235typedef struct VkBufferMemoryBarrier {
3236 VkStructureType sType;
3237 const void* pNext;
3238 VkAccessFlags srcAccessMask;
3239 VkAccessFlags dstAccessMask;
3240 uint32_t srcQueueFamilyIndex;
3241 uint32_t dstQueueFamilyIndex;
3242 VkBuffer buffer;
3243 VkDeviceSize offset;
3244 VkDeviceSize size;
3245} VkBufferMemoryBarrier;
3246
3247typedef struct VkDispatchIndirectCommand {
3248 uint32_t x;
3249 uint32_t y;
3250 uint32_t z;
3251} VkDispatchIndirectCommand;
3252
3253typedef struct VkDrawIndexedIndirectCommand {
3254 uint32_t indexCount;
3255 uint32_t instanceCount;
3256 uint32_t firstIndex;
3257 int32_t vertexOffset;
3258 uint32_t firstInstance;
3259} VkDrawIndexedIndirectCommand;
3260
3261typedef struct VkDrawIndirectCommand {
3262 uint32_t vertexCount;
3263 uint32_t instanceCount;
3264 uint32_t firstVertex;
3265 uint32_t firstInstance;
3266} VkDrawIndirectCommand;
3267
3268typedef struct VkImageSubresourceRange {
3269 VkImageAspectFlags aspectMask;
3270 uint32_t baseMipLevel;
3271 uint32_t levelCount;
3272 uint32_t baseArrayLayer;
3273 uint32_t layerCount;
3274} VkImageSubresourceRange;
3275
3276typedef struct VkImageMemoryBarrier {
3277 VkStructureType sType;
3278 const void* pNext;
3279 VkAccessFlags srcAccessMask;
3280 VkAccessFlags dstAccessMask;
3281 VkImageLayout oldLayout;
3282 VkImageLayout newLayout;
3283 uint32_t srcQueueFamilyIndex;
3284 uint32_t dstQueueFamilyIndex;
3285 VkImage image;
3286 VkImageSubresourceRange subresourceRange;
3287} VkImageMemoryBarrier;
3288
3289typedef struct VkMemoryBarrier {
3290 VkStructureType sType;
3291 const void* pNext;
3292 VkAccessFlags srcAccessMask;
3293 VkAccessFlags dstAccessMask;
3294} VkMemoryBarrier;
3295
3296typedef struct VkPipelineCacheHeaderVersionOne {
3297 uint32_t headerSize;
3298 VkPipelineCacheHeaderVersion headerVersion;
3299 uint32_t vendorID;
3300 uint32_t deviceID;
3301 uint8_t pipelineCacheUUID[VK_UUID_SIZE];
3302} VkPipelineCacheHeaderVersionOne;
3303
3304typedef void* (VKAPI_PTR *PFN_vkAllocationFunction)(
3305 void* pUserData,
3306 size_t size,
3307 size_t alignment,
3308 VkSystemAllocationScope allocationScope);
3309
3310typedef void (VKAPI_PTR *PFN_vkFreeFunction)(
3311 void* pUserData,
3312 void* pMemory);
3313
3314typedef void (VKAPI_PTR *PFN_vkInternalAllocationNotification)(
3315 void* pUserData,
3316 size_t size,
3317 VkInternalAllocationType allocationType,
3318 VkSystemAllocationScope allocationScope);
3319
3320typedef void (VKAPI_PTR *PFN_vkInternalFreeNotification)(
3321 void* pUserData,
3322 size_t size,
3323 VkInternalAllocationType allocationType,
3324 VkSystemAllocationScope allocationScope);
3325
3326typedef void* (VKAPI_PTR *PFN_vkReallocationFunction)(
3327 void* pUserData,
3328 void* pOriginal,
3329 size_t size,
3330 size_t alignment,
3331 VkSystemAllocationScope allocationScope);
3332
3333typedef void (VKAPI_PTR *PFN_vkVoidFunction)(void);
3334typedef struct VkAllocationCallbacks {
3335 void* pUserData;
3336 PFN_vkAllocationFunction pfnAllocation;
3337 PFN_vkReallocationFunction pfnReallocation;
3338 PFN_vkFreeFunction pfnFree;
3339 PFN_vkInternalAllocationNotification pfnInternalAllocation;
3340 PFN_vkInternalFreeNotification pfnInternalFree;
3341} VkAllocationCallbacks;
3342
3343typedef struct VkApplicationInfo {
3344 VkStructureType sType;
3345 const void* pNext;
3346 const char* pApplicationName;
3347 uint32_t applicationVersion;
3348 const char* pEngineName;
3349 uint32_t engineVersion;
3350 uint32_t apiVersion;
3351} VkApplicationInfo;
3352
3353typedef struct VkFormatProperties {
3354 VkFormatFeatureFlags linearTilingFeatures;
3355 VkFormatFeatureFlags optimalTilingFeatures;
3356 VkFormatFeatureFlags bufferFeatures;
3357} VkFormatProperties;
3358
3359typedef struct VkImageFormatProperties {
3360 VkExtent3D maxExtent;
3361 uint32_t maxMipLevels;
3362 uint32_t maxArrayLayers;
3363 VkSampleCountFlags sampleCounts;
3364 VkDeviceSize maxResourceSize;
3365} VkImageFormatProperties;
3366
3367typedef struct VkInstanceCreateInfo {
3368 VkStructureType sType;
3369 const void* pNext;
3370 VkInstanceCreateFlags flags;
3371 const VkApplicationInfo* pApplicationInfo;
3372 uint32_t enabledLayerCount;
3373 const char* const* ppEnabledLayerNames;
3374 uint32_t enabledExtensionCount;
3375 const char* const* ppEnabledExtensionNames;
3376} VkInstanceCreateInfo;
3377
3378typedef struct VkMemoryHeap {
3379 VkDeviceSize size;
3380 VkMemoryHeapFlags flags;
3381} VkMemoryHeap;
3382
3383typedef struct VkMemoryType {
3384 VkMemoryPropertyFlags propertyFlags;
3385 uint32_t heapIndex;
3386} VkMemoryType;
3387
3388typedef struct VkPhysicalDeviceFeatures {
3389 VkBool32 robustBufferAccess;
3390 VkBool32 fullDrawIndexUint32;
3391 VkBool32 imageCubeArray;
3392 VkBool32 independentBlend;
3393 VkBool32 geometryShader;
3394 VkBool32 tessellationShader;
3395 VkBool32 sampleRateShading;
3396 VkBool32 dualSrcBlend;
3397 VkBool32 logicOp;
3398 VkBool32 multiDrawIndirect;
3399 VkBool32 drawIndirectFirstInstance;
3400 VkBool32 depthClamp;
3401 VkBool32 depthBiasClamp;
3402 VkBool32 fillModeNonSolid;
3403 VkBool32 depthBounds;
3404 VkBool32 wideLines;
3405 VkBool32 largePoints;
3406 VkBool32 alphaToOne;
3407 VkBool32 multiViewport;
3408 VkBool32 samplerAnisotropy;
3409 VkBool32 textureCompressionETC2;
3410 VkBool32 textureCompressionASTC_LDR;
3411 VkBool32 textureCompressionBC;
3412 VkBool32 occlusionQueryPrecise;
3413 VkBool32 pipelineStatisticsQuery;
3414 VkBool32 vertexPipelineStoresAndAtomics;
3415 VkBool32 fragmentStoresAndAtomics;
3416 VkBool32 shaderTessellationAndGeometryPointSize;
3417 VkBool32 shaderImageGatherExtended;
3418 VkBool32 shaderStorageImageExtendedFormats;
3419 VkBool32 shaderStorageImageMultisample;
3420 VkBool32 shaderStorageImageReadWithoutFormat;
3421 VkBool32 shaderStorageImageWriteWithoutFormat;
3422 VkBool32 shaderUniformBufferArrayDynamicIndexing;
3423 VkBool32 shaderSampledImageArrayDynamicIndexing;
3424 VkBool32 shaderStorageBufferArrayDynamicIndexing;
3425 VkBool32 shaderStorageImageArrayDynamicIndexing;
3426 VkBool32 shaderClipDistance;
3427 VkBool32 shaderCullDistance;
3428 VkBool32 shaderFloat64;
3429 VkBool32 shaderInt64;
3430 VkBool32 shaderInt16;
3431 VkBool32 shaderResourceResidency;
3432 VkBool32 shaderResourceMinLod;
3433 VkBool32 sparseBinding;
3434 VkBool32 sparseResidencyBuffer;
3435 VkBool32 sparseResidencyImage2D;
3436 VkBool32 sparseResidencyImage3D;
3437 VkBool32 sparseResidency2Samples;
3438 VkBool32 sparseResidency4Samples;
3439 VkBool32 sparseResidency8Samples;
3440 VkBool32 sparseResidency16Samples;
3441 VkBool32 sparseResidencyAliased;
3442 VkBool32 variableMultisampleRate;
3443 VkBool32 inheritedQueries;
3444} VkPhysicalDeviceFeatures;
3445
3446typedef struct VkPhysicalDeviceLimits {
3447 uint32_t maxImageDimension1D;
3448 uint32_t maxImageDimension2D;
3449 uint32_t maxImageDimension3D;
3450 uint32_t maxImageDimensionCube;
3451 uint32_t maxImageArrayLayers;
3452 uint32_t maxTexelBufferElements;
3453 uint32_t maxUniformBufferRange;
3454 uint32_t maxStorageBufferRange;
3455 uint32_t maxPushConstantsSize;
3456 uint32_t maxMemoryAllocationCount;
3457 uint32_t maxSamplerAllocationCount;
3458 VkDeviceSize bufferImageGranularity;
3459 VkDeviceSize sparseAddressSpaceSize;
3460 uint32_t maxBoundDescriptorSets;
3461 uint32_t maxPerStageDescriptorSamplers;
3462 uint32_t maxPerStageDescriptorUniformBuffers;
3463 uint32_t maxPerStageDescriptorStorageBuffers;
3464 uint32_t maxPerStageDescriptorSampledImages;
3465 uint32_t maxPerStageDescriptorStorageImages;
3466 uint32_t maxPerStageDescriptorInputAttachments;
3467 uint32_t maxPerStageResources;
3468 uint32_t maxDescriptorSetSamplers;
3469 uint32_t maxDescriptorSetUniformBuffers;
3470 uint32_t maxDescriptorSetUniformBuffersDynamic;
3471 uint32_t maxDescriptorSetStorageBuffers;
3472 uint32_t maxDescriptorSetStorageBuffersDynamic;
3473 uint32_t maxDescriptorSetSampledImages;
3474 uint32_t maxDescriptorSetStorageImages;
3475 uint32_t maxDescriptorSetInputAttachments;
3476 uint32_t maxVertexInputAttributes;
3477 uint32_t maxVertexInputBindings;
3478 uint32_t maxVertexInputAttributeOffset;
3479 uint32_t maxVertexInputBindingStride;
3480 uint32_t maxVertexOutputComponents;
3481 uint32_t maxTessellationGenerationLevel;
3482 uint32_t maxTessellationPatchSize;
3483 uint32_t maxTessellationControlPerVertexInputComponents;
3484 uint32_t maxTessellationControlPerVertexOutputComponents;
3485 uint32_t maxTessellationControlPerPatchOutputComponents;
3486 uint32_t maxTessellationControlTotalOutputComponents;
3487 uint32_t maxTessellationEvaluationInputComponents;
3488 uint32_t maxTessellationEvaluationOutputComponents;
3489 uint32_t maxGeometryShaderInvocations;
3490 uint32_t maxGeometryInputComponents;
3491 uint32_t maxGeometryOutputComponents;
3492 uint32_t maxGeometryOutputVertices;
3493 uint32_t maxGeometryTotalOutputComponents;
3494 uint32_t maxFragmentInputComponents;
3495 uint32_t maxFragmentOutputAttachments;
3496 uint32_t maxFragmentDualSrcAttachments;
3497 uint32_t maxFragmentCombinedOutputResources;
3498 uint32_t maxComputeSharedMemorySize;
3499 uint32_t maxComputeWorkGroupCount[3];
3500 uint32_t maxComputeWorkGroupInvocations;
3501 uint32_t maxComputeWorkGroupSize[3];
3502 uint32_t subPixelPrecisionBits;
3503 uint32_t subTexelPrecisionBits;
3504 uint32_t mipmapPrecisionBits;
3505 uint32_t maxDrawIndexedIndexValue;
3506 uint32_t maxDrawIndirectCount;
3507 float maxSamplerLodBias;
3508 float maxSamplerAnisotropy;
3509 uint32_t maxViewports;
3510 uint32_t maxViewportDimensions[2];
3511 float viewportBoundsRange[2];
3512 uint32_t viewportSubPixelBits;
3513 size_t minMemoryMapAlignment;
3514 VkDeviceSize minTexelBufferOffsetAlignment;
3515 VkDeviceSize minUniformBufferOffsetAlignment;
3516 VkDeviceSize minStorageBufferOffsetAlignment;
3517 int32_t minTexelOffset;
3518 uint32_t maxTexelOffset;
3519 int32_t minTexelGatherOffset;
3520 uint32_t maxTexelGatherOffset;
3521 float minInterpolationOffset;
3522 float maxInterpolationOffset;
3523 uint32_t subPixelInterpolationOffsetBits;
3524 uint32_t maxFramebufferWidth;
3525 uint32_t maxFramebufferHeight;
3526 uint32_t maxFramebufferLayers;
3527 VkSampleCountFlags framebufferColorSampleCounts;
3528 VkSampleCountFlags framebufferDepthSampleCounts;
3529 VkSampleCountFlags framebufferStencilSampleCounts;
3530 VkSampleCountFlags framebufferNoAttachmentsSampleCounts;
3531 uint32_t maxColorAttachments;
3532 VkSampleCountFlags sampledImageColorSampleCounts;
3533 VkSampleCountFlags sampledImageIntegerSampleCounts;
3534 VkSampleCountFlags sampledImageDepthSampleCounts;
3535 VkSampleCountFlags sampledImageStencilSampleCounts;
3536 VkSampleCountFlags storageImageSampleCounts;
3537 uint32_t maxSampleMaskWords;
3538 VkBool32 timestampComputeAndGraphics;
3539 float timestampPeriod;
3540 uint32_t maxClipDistances;
3541 uint32_t maxCullDistances;
3542 uint32_t maxCombinedClipAndCullDistances;
3543 uint32_t discreteQueuePriorities;
3544 float pointSizeRange[2];
3545 float lineWidthRange[2];
3546 float pointSizeGranularity;
3547 float lineWidthGranularity;
3548 VkBool32 strictLines;
3549 VkBool32 standardSampleLocations;
3550 VkDeviceSize optimalBufferCopyOffsetAlignment;
3551 VkDeviceSize optimalBufferCopyRowPitchAlignment;
3552 VkDeviceSize nonCoherentAtomSize;
3553} VkPhysicalDeviceLimits;
3554
3555typedef struct VkPhysicalDeviceMemoryProperties {
3556 uint32_t memoryTypeCount;
3557 VkMemoryType memoryTypes[VK_MAX_MEMORY_TYPES];
3558 uint32_t memoryHeapCount;
3559 VkMemoryHeap memoryHeaps[VK_MAX_MEMORY_HEAPS];
3560} VkPhysicalDeviceMemoryProperties;
3561
3562typedef struct VkPhysicalDeviceSparseProperties {
3563 VkBool32 residencyStandard2DBlockShape;
3564 VkBool32 residencyStandard2DMultisampleBlockShape;
3565 VkBool32 residencyStandard3DBlockShape;
3566 VkBool32 residencyAlignedMipSize;
3567 VkBool32 residencyNonResidentStrict;
3568} VkPhysicalDeviceSparseProperties;
3569
3570typedef struct VkPhysicalDeviceProperties {
3571 uint32_t apiVersion;
3572 uint32_t driverVersion;
3573 uint32_t vendorID;
3574 uint32_t deviceID;
3575 VkPhysicalDeviceType deviceType;
3576 char deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
3577 uint8_t pipelineCacheUUID[VK_UUID_SIZE];
3578 VkPhysicalDeviceLimits limits;
3579 VkPhysicalDeviceSparseProperties sparseProperties;
3580} VkPhysicalDeviceProperties;
3581
3582typedef struct VkQueueFamilyProperties {
3583 VkQueueFlags queueFlags;
3584 uint32_t queueCount;
3585 uint32_t timestampValidBits;
3586 VkExtent3D minImageTransferGranularity;
3587} VkQueueFamilyProperties;
3588
3589typedef struct VkDeviceQueueCreateInfo {
3590 VkStructureType sType;
3591 const void* pNext;
3592 VkDeviceQueueCreateFlags flags;
3593 uint32_t queueFamilyIndex;
3594 uint32_t queueCount;
3595 const float* pQueuePriorities;
3596} VkDeviceQueueCreateInfo;
3597
3598typedef struct VkDeviceCreateInfo {
3599 VkStructureType sType;
3600 const void* pNext;
3601 VkDeviceCreateFlags flags;
3602 uint32_t queueCreateInfoCount;
3603 const VkDeviceQueueCreateInfo* pQueueCreateInfos;
3604 // enabledLayerCount is deprecated and should not be used
3605 uint32_t enabledLayerCount;
3606 // ppEnabledLayerNames is deprecated and should not be used
3607 const char* const* ppEnabledLayerNames;
3608 uint32_t enabledExtensionCount;
3609 const char* const* ppEnabledExtensionNames;
3610 const VkPhysicalDeviceFeatures* pEnabledFeatures;
3611} VkDeviceCreateInfo;
3612
3613typedef struct VkExtensionProperties {
3614 char extensionName[VK_MAX_EXTENSION_NAME_SIZE];
3615 uint32_t specVersion;
3616} VkExtensionProperties;
3617
3618typedef struct VkLayerProperties {
3619 char layerName[VK_MAX_EXTENSION_NAME_SIZE];
3620 uint32_t specVersion;
3621 uint32_t implementationVersion;
3622 char description[VK_MAX_DESCRIPTION_SIZE];
3623} VkLayerProperties;
3624
3625typedef struct VkSubmitInfo {
3626 VkStructureType sType;
3627 const void* pNext;
3628 uint32_t waitSemaphoreCount;
3629 const VkSemaphore* pWaitSemaphores;
3630 const VkPipelineStageFlags* pWaitDstStageMask;
3631 uint32_t commandBufferCount;
3632 const VkCommandBuffer* pCommandBuffers;
3633 uint32_t signalSemaphoreCount;
3634 const VkSemaphore* pSignalSemaphores;
3635} VkSubmitInfo;
3636
3637typedef struct VkMappedMemoryRange {
3638 VkStructureType sType;
3639 const void* pNext;
3640 VkDeviceMemory memory;
3641 VkDeviceSize offset;
3642 VkDeviceSize size;
3643} VkMappedMemoryRange;
3644
3645typedef struct VkMemoryAllocateInfo {
3646 VkStructureType sType;
3647 const void* pNext;
3648 VkDeviceSize allocationSize;
3649 uint32_t memoryTypeIndex;
3650} VkMemoryAllocateInfo;
3651
3652typedef struct VkMemoryRequirements {
3653 VkDeviceSize size;
3654 VkDeviceSize alignment;
3655 uint32_t memoryTypeBits;
3656} VkMemoryRequirements;
3657
3658typedef struct VkSparseMemoryBind {
3659 VkDeviceSize resourceOffset;
3660 VkDeviceSize size;
3661 VkDeviceMemory memory;
3662 VkDeviceSize memoryOffset;
3663 VkSparseMemoryBindFlags flags;
3664} VkSparseMemoryBind;
3665
3666typedef struct VkSparseBufferMemoryBindInfo {
3667 VkBuffer buffer;
3668 uint32_t bindCount;
3669 const VkSparseMemoryBind* pBinds;
3670} VkSparseBufferMemoryBindInfo;
3671
3672typedef struct VkSparseImageOpaqueMemoryBindInfo {
3673 VkImage image;
3674 uint32_t bindCount;
3675 const VkSparseMemoryBind* pBinds;
3676} VkSparseImageOpaqueMemoryBindInfo;
3677
3678typedef struct VkImageSubresource {
3679 VkImageAspectFlags aspectMask;
3680 uint32_t mipLevel;
3681 uint32_t arrayLayer;
3682} VkImageSubresource;
3683
3684typedef struct VkSparseImageMemoryBind {
3685 VkImageSubresource subresource;
3686 VkOffset3D offset;
3687 VkExtent3D extent;
3688 VkDeviceMemory memory;
3689 VkDeviceSize memoryOffset;
3690 VkSparseMemoryBindFlags flags;
3691} VkSparseImageMemoryBind;
3692
3693typedef struct VkSparseImageMemoryBindInfo {
3694 VkImage image;
3695 uint32_t bindCount;
3696 const VkSparseImageMemoryBind* pBinds;
3697} VkSparseImageMemoryBindInfo;
3698
3699typedef struct VkBindSparseInfo {
3700 VkStructureType sType;
3701 const void* pNext;
3702 uint32_t waitSemaphoreCount;
3703 const VkSemaphore* pWaitSemaphores;
3704 uint32_t bufferBindCount;
3705 const VkSparseBufferMemoryBindInfo* pBufferBinds;
3706 uint32_t imageOpaqueBindCount;
3707 const VkSparseImageOpaqueMemoryBindInfo* pImageOpaqueBinds;
3708 uint32_t imageBindCount;
3709 const VkSparseImageMemoryBindInfo* pImageBinds;
3710 uint32_t signalSemaphoreCount;
3711 const VkSemaphore* pSignalSemaphores;
3712} VkBindSparseInfo;
3713
3714typedef struct VkSparseImageFormatProperties {
3715 VkImageAspectFlags aspectMask;
3716 VkExtent3D imageGranularity;
3717 VkSparseImageFormatFlags flags;
3718} VkSparseImageFormatProperties;
3719
3720typedef struct VkSparseImageMemoryRequirements {
3721 VkSparseImageFormatProperties formatProperties;
3722 uint32_t imageMipTailFirstLod;
3723 VkDeviceSize imageMipTailSize;
3724 VkDeviceSize imageMipTailOffset;
3725 VkDeviceSize imageMipTailStride;
3726} VkSparseImageMemoryRequirements;
3727
3728typedef struct VkFenceCreateInfo {
3729 VkStructureType sType;
3730 const void* pNext;
3731 VkFenceCreateFlags flags;
3732} VkFenceCreateInfo;
3733
3734typedef struct VkSemaphoreCreateInfo {
3735 VkStructureType sType;
3736 const void* pNext;
3737 VkSemaphoreCreateFlags flags;
3738} VkSemaphoreCreateInfo;
3739
3740typedef struct VkEventCreateInfo {
3741 VkStructureType sType;
3742 const void* pNext;
3743 VkEventCreateFlags flags;
3744} VkEventCreateInfo;
3745
3746typedef struct VkQueryPoolCreateInfo {
3747 VkStructureType sType;
3748 const void* pNext;
3749 VkQueryPoolCreateFlags flags;
3750 VkQueryType queryType;
3751 uint32_t queryCount;
3752 VkQueryPipelineStatisticFlags pipelineStatistics;
3753} VkQueryPoolCreateInfo;
3754
3755typedef struct VkBufferCreateInfo {
3756 VkStructureType sType;
3757 const void* pNext;
3758 VkBufferCreateFlags flags;
3759 VkDeviceSize size;
3760 VkBufferUsageFlags usage;
3761 VkSharingMode sharingMode;
3762 uint32_t queueFamilyIndexCount;
3763 const uint32_t* pQueueFamilyIndices;
3764} VkBufferCreateInfo;
3765
3766typedef struct VkBufferViewCreateInfo {
3767 VkStructureType sType;
3768 const void* pNext;
3769 VkBufferViewCreateFlags flags;
3770 VkBuffer buffer;
3771 VkFormat format;
3772 VkDeviceSize offset;
3773 VkDeviceSize range;
3774} VkBufferViewCreateInfo;
3775
3776typedef struct VkImageCreateInfo {
3777 VkStructureType sType;
3778 const void* pNext;
3779 VkImageCreateFlags flags;
3780 VkImageType imageType;
3781 VkFormat format;
3782 VkExtent3D extent;
3783 uint32_t mipLevels;
3784 uint32_t arrayLayers;
3785 VkSampleCountFlagBits samples;
3786 VkImageTiling tiling;
3787 VkImageUsageFlags usage;
3788 VkSharingMode sharingMode;
3789 uint32_t queueFamilyIndexCount;
3790 const uint32_t* pQueueFamilyIndices;
3791 VkImageLayout initialLayout;
3792} VkImageCreateInfo;
3793
3794typedef struct VkSubresourceLayout {
3795 VkDeviceSize offset;
3796 VkDeviceSize size;
3797 VkDeviceSize rowPitch;
3798 VkDeviceSize arrayPitch;
3799 VkDeviceSize depthPitch;
3800} VkSubresourceLayout;
3801
3802typedef struct VkComponentMapping {
3803 VkComponentSwizzle r;
3804 VkComponentSwizzle g;
3805 VkComponentSwizzle b;
3806 VkComponentSwizzle a;
3807} VkComponentMapping;
3808
3809typedef struct VkImageViewCreateInfo {
3810 VkStructureType sType;
3811 const void* pNext;
3812 VkImageViewCreateFlags flags;
3813 VkImage image;
3814 VkImageViewType viewType;
3815 VkFormat format;
3816 VkComponentMapping components;
3817 VkImageSubresourceRange subresourceRange;
3818} VkImageViewCreateInfo;
3819
3820typedef struct VkShaderModuleCreateInfo {
3821 VkStructureType sType;
3822 const void* pNext;
3823 VkShaderModuleCreateFlags flags;
3824 size_t codeSize;
3825 const uint32_t* pCode;
3826} VkShaderModuleCreateInfo;
3827
3828typedef struct VkPipelineCacheCreateInfo {
3829 VkStructureType sType;
3830 const void* pNext;
3831 VkPipelineCacheCreateFlags flags;
3832 size_t initialDataSize;
3833 const void* pInitialData;
3834} VkPipelineCacheCreateInfo;
3835
3836typedef struct VkSpecializationMapEntry {
3837 uint32_t constantID;
3838 uint32_t offset;
3839 size_t size;
3840} VkSpecializationMapEntry;
3841
3842typedef struct VkSpecializationInfo {
3843 uint32_t mapEntryCount;
3844 const VkSpecializationMapEntry* pMapEntries;
3845 size_t dataSize;
3846 const void* pData;
3847} VkSpecializationInfo;
3848
3849typedef struct VkPipelineShaderStageCreateInfo {
3850 VkStructureType sType;
3851 const void* pNext;
3852 VkPipelineShaderStageCreateFlags flags;
3853 VkShaderStageFlagBits stage;
3854 VkShaderModule module;
3855 const char* pName;
3856 const VkSpecializationInfo* pSpecializationInfo;
3857} VkPipelineShaderStageCreateInfo;
3858
3859typedef struct VkComputePipelineCreateInfo {
3860 VkStructureType sType;
3861 const void* pNext;
3862 VkPipelineCreateFlags flags;
3863 VkPipelineShaderStageCreateInfo stage;
3864 VkPipelineLayout layout;
3865 VkPipeline basePipelineHandle;
3866 int32_t basePipelineIndex;
3867} VkComputePipelineCreateInfo;
3868
3869typedef struct VkVertexInputBindingDescription {
3870 uint32_t binding;
3871 uint32_t stride;
3872 VkVertexInputRate inputRate;
3873} VkVertexInputBindingDescription;
3874
3875typedef struct VkVertexInputAttributeDescription {
3876 uint32_t location;
3877 uint32_t binding;
3878 VkFormat format;
3879 uint32_t offset;
3880} VkVertexInputAttributeDescription;
3881
3882typedef struct VkPipelineVertexInputStateCreateInfo {
3883 VkStructureType sType;
3884 const void* pNext;
3885 VkPipelineVertexInputStateCreateFlags flags;
3886 uint32_t vertexBindingDescriptionCount;
3887 const VkVertexInputBindingDescription* pVertexBindingDescriptions;
3888 uint32_t vertexAttributeDescriptionCount;
3889 const VkVertexInputAttributeDescription* pVertexAttributeDescriptions;
3890} VkPipelineVertexInputStateCreateInfo;
3891
3892typedef struct VkPipelineInputAssemblyStateCreateInfo {
3893 VkStructureType sType;
3894 const void* pNext;
3895 VkPipelineInputAssemblyStateCreateFlags flags;
3896 VkPrimitiveTopology topology;
3897 VkBool32 primitiveRestartEnable;
3898} VkPipelineInputAssemblyStateCreateInfo;
3899
3900typedef struct VkPipelineTessellationStateCreateInfo {
3901 VkStructureType sType;
3902 const void* pNext;
3903 VkPipelineTessellationStateCreateFlags flags;
3904 uint32_t patchControlPoints;
3905} VkPipelineTessellationStateCreateInfo;
3906
3907typedef struct VkViewport {
3908 float x;
3909 float y;
3910 float width;
3911 float height;
3912 float minDepth;
3913 float maxDepth;
3914} VkViewport;
3915
3916typedef struct VkPipelineViewportStateCreateInfo {
3917 VkStructureType sType;
3918 const void* pNext;
3919 VkPipelineViewportStateCreateFlags flags;
3920 uint32_t viewportCount;
3921 const VkViewport* pViewports;
3922 uint32_t scissorCount;
3923 const VkRect2D* pScissors;
3924} VkPipelineViewportStateCreateInfo;
3925
3926typedef struct VkPipelineRasterizationStateCreateInfo {
3927 VkStructureType sType;
3928 const void* pNext;
3929 VkPipelineRasterizationStateCreateFlags flags;
3930 VkBool32 depthClampEnable;
3931 VkBool32 rasterizerDiscardEnable;
3932 VkPolygonMode polygonMode;
3933 VkCullModeFlags cullMode;
3934 VkFrontFace frontFace;
3935 VkBool32 depthBiasEnable;
3936 float depthBiasConstantFactor;
3937 float depthBiasClamp;
3938 float depthBiasSlopeFactor;
3939 float lineWidth;
3940} VkPipelineRasterizationStateCreateInfo;
3941
3942typedef struct VkPipelineMultisampleStateCreateInfo {
3943 VkStructureType sType;
3944 const void* pNext;
3945 VkPipelineMultisampleStateCreateFlags flags;
3946 VkSampleCountFlagBits rasterizationSamples;
3947 VkBool32 sampleShadingEnable;
3948 float minSampleShading;
3949 const VkSampleMask* pSampleMask;
3950 VkBool32 alphaToCoverageEnable;
3951 VkBool32 alphaToOneEnable;
3952} VkPipelineMultisampleStateCreateInfo;
3953
3954typedef struct VkStencilOpState {
3955 VkStencilOp failOp;
3956 VkStencilOp passOp;
3957 VkStencilOp depthFailOp;
3958 VkCompareOp compareOp;
3959 uint32_t compareMask;
3960 uint32_t writeMask;
3961 uint32_t reference;
3962} VkStencilOpState;
3963
3964typedef struct VkPipelineDepthStencilStateCreateInfo {
3965 VkStructureType sType;
3966 const void* pNext;
3967 VkPipelineDepthStencilStateCreateFlags flags;
3968 VkBool32 depthTestEnable;
3969 VkBool32 depthWriteEnable;
3970 VkCompareOp depthCompareOp;
3971 VkBool32 depthBoundsTestEnable;
3972 VkBool32 stencilTestEnable;
3973 VkStencilOpState front;
3974 VkStencilOpState back;
3975 float minDepthBounds;
3976 float maxDepthBounds;
3977} VkPipelineDepthStencilStateCreateInfo;
3978
3979typedef struct VkPipelineColorBlendAttachmentState {
3980 VkBool32 blendEnable;
3981 VkBlendFactor srcColorBlendFactor;
3982 VkBlendFactor dstColorBlendFactor;
3983 VkBlendOp colorBlendOp;
3984 VkBlendFactor srcAlphaBlendFactor;
3985 VkBlendFactor dstAlphaBlendFactor;
3986 VkBlendOp alphaBlendOp;
3987 VkColorComponentFlags colorWriteMask;
3988} VkPipelineColorBlendAttachmentState;
3989
3990typedef struct VkPipelineColorBlendStateCreateInfo {
3991 VkStructureType sType;
3992 const void* pNext;
3993 VkPipelineColorBlendStateCreateFlags flags;
3994 VkBool32 logicOpEnable;
3995 VkLogicOp logicOp;
3996 uint32_t attachmentCount;
3997 const VkPipelineColorBlendAttachmentState* pAttachments;
3998 float blendConstants[4];
3999} VkPipelineColorBlendStateCreateInfo;
4000
4001typedef struct VkPipelineDynamicStateCreateInfo {
4002 VkStructureType sType;
4003 const void* pNext;
4004 VkPipelineDynamicStateCreateFlags flags;
4005 uint32_t dynamicStateCount;
4006 const VkDynamicState* pDynamicStates;
4007} VkPipelineDynamicStateCreateInfo;
4008
4009typedef struct VkGraphicsPipelineCreateInfo {
4010 VkStructureType sType;
4011 const void* pNext;
4012 VkPipelineCreateFlags flags;
4013 uint32_t stageCount;
4014 const VkPipelineShaderStageCreateInfo* pStages;
4015 const VkPipelineVertexInputStateCreateInfo* pVertexInputState;
4016 const VkPipelineInputAssemblyStateCreateInfo* pInputAssemblyState;
4017 const VkPipelineTessellationStateCreateInfo* pTessellationState;
4018 const VkPipelineViewportStateCreateInfo* pViewportState;
4019 const VkPipelineRasterizationStateCreateInfo* pRasterizationState;
4020 const VkPipelineMultisampleStateCreateInfo* pMultisampleState;
4021 const VkPipelineDepthStencilStateCreateInfo* pDepthStencilState;
4022 const VkPipelineColorBlendStateCreateInfo* pColorBlendState;
4023 const VkPipelineDynamicStateCreateInfo* pDynamicState;
4024 VkPipelineLayout layout;
4025 VkRenderPass renderPass;
4026 uint32_t subpass;
4027 VkPipeline basePipelineHandle;
4028 int32_t basePipelineIndex;
4029} VkGraphicsPipelineCreateInfo;
4030
4031typedef struct VkPushConstantRange {
4032 VkShaderStageFlags stageFlags;
4033 uint32_t offset;
4034 uint32_t size;
4035} VkPushConstantRange;
4036
4037typedef struct VkPipelineLayoutCreateInfo {
4038 VkStructureType sType;
4039 const void* pNext;
4040 VkPipelineLayoutCreateFlags flags;
4041 uint32_t setLayoutCount;
4042 const VkDescriptorSetLayout* pSetLayouts;
4043 uint32_t pushConstantRangeCount;
4044 const VkPushConstantRange* pPushConstantRanges;
4045} VkPipelineLayoutCreateInfo;
4046
4047typedef struct VkSamplerCreateInfo {
4048 VkStructureType sType;
4049 const void* pNext;
4050 VkSamplerCreateFlags flags;
4051 VkFilter magFilter;
4052 VkFilter minFilter;
4053 VkSamplerMipmapMode mipmapMode;
4054 VkSamplerAddressMode addressModeU;
4055 VkSamplerAddressMode addressModeV;
4056 VkSamplerAddressMode addressModeW;
4057 float mipLodBias;
4058 VkBool32 anisotropyEnable;
4059 float maxAnisotropy;
4060 VkBool32 compareEnable;
4061 VkCompareOp compareOp;
4062 float minLod;
4063 float maxLod;
4064 VkBorderColor borderColor;
4065 VkBool32 unnormalizedCoordinates;
4066} VkSamplerCreateInfo;
4067
4068typedef struct VkCopyDescriptorSet {
4069 VkStructureType sType;
4070 const void* pNext;
4071 VkDescriptorSet srcSet;
4072 uint32_t srcBinding;
4073 uint32_t srcArrayElement;
4074 VkDescriptorSet dstSet;
4075 uint32_t dstBinding;
4076 uint32_t dstArrayElement;
4077 uint32_t descriptorCount;
4078} VkCopyDescriptorSet;
4079
4080typedef struct VkDescriptorBufferInfo {
4081 VkBuffer buffer;
4082 VkDeviceSize offset;
4083 VkDeviceSize range;
4084} VkDescriptorBufferInfo;
4085
4086typedef struct VkDescriptorImageInfo {
4087 VkSampler sampler;
4088 VkImageView imageView;
4089 VkImageLayout imageLayout;
4090} VkDescriptorImageInfo;
4091
4092typedef struct VkDescriptorPoolSize {
4093 VkDescriptorType type;
4094 uint32_t descriptorCount;
4095} VkDescriptorPoolSize;
4096
4097typedef struct VkDescriptorPoolCreateInfo {
4098 VkStructureType sType;
4099 const void* pNext;
4100 VkDescriptorPoolCreateFlags flags;
4101 uint32_t maxSets;
4102 uint32_t poolSizeCount;
4103 const VkDescriptorPoolSize* pPoolSizes;
4104} VkDescriptorPoolCreateInfo;
4105
4106typedef struct VkDescriptorSetAllocateInfo {
4107 VkStructureType sType;
4108 const void* pNext;
4109 VkDescriptorPool descriptorPool;
4110 uint32_t descriptorSetCount;
4111 const VkDescriptorSetLayout* pSetLayouts;
4112} VkDescriptorSetAllocateInfo;
4113
4114typedef struct VkDescriptorSetLayoutBinding {
4115 uint32_t binding;
4116 VkDescriptorType descriptorType;
4117 uint32_t descriptorCount;
4118 VkShaderStageFlags stageFlags;
4119 const VkSampler* pImmutableSamplers;
4120} VkDescriptorSetLayoutBinding;
4121
4122typedef struct VkDescriptorSetLayoutCreateInfo {
4123 VkStructureType sType;
4124 const void* pNext;
4125 VkDescriptorSetLayoutCreateFlags flags;
4126 uint32_t bindingCount;
4127 const VkDescriptorSetLayoutBinding* pBindings;
4128} VkDescriptorSetLayoutCreateInfo;
4129
4130typedef struct VkWriteDescriptorSet {
4131 VkStructureType sType;
4132 const void* pNext;
4133 VkDescriptorSet dstSet;
4134 uint32_t dstBinding;
4135 uint32_t dstArrayElement;
4136 uint32_t descriptorCount;
4137 VkDescriptorType descriptorType;
4138 const VkDescriptorImageInfo* pImageInfo;
4139 const VkDescriptorBufferInfo* pBufferInfo;
4140 const VkBufferView* pTexelBufferView;
4141} VkWriteDescriptorSet;
4142
4143typedef struct VkAttachmentDescription {
4144 VkAttachmentDescriptionFlags flags;
4145 VkFormat format;
4146 VkSampleCountFlagBits samples;
4147 VkAttachmentLoadOp loadOp;
4148 VkAttachmentStoreOp storeOp;
4149 VkAttachmentLoadOp stencilLoadOp;
4150 VkAttachmentStoreOp stencilStoreOp;
4151 VkImageLayout initialLayout;
4152 VkImageLayout finalLayout;
4153} VkAttachmentDescription;
4154
4155typedef struct VkAttachmentReference {
4156 uint32_t attachment;
4157 VkImageLayout layout;
4158} VkAttachmentReference;
4159
4160typedef struct VkFramebufferCreateInfo {
4161 VkStructureType sType;
4162 const void* pNext;
4163 VkFramebufferCreateFlags flags;
4164 VkRenderPass renderPass;
4165 uint32_t attachmentCount;
4166 const VkImageView* pAttachments;
4167 uint32_t width;
4168 uint32_t height;
4169 uint32_t layers;
4170} VkFramebufferCreateInfo;
4171
4172typedef struct VkSubpassDescription {
4173 VkSubpassDescriptionFlags flags;
4174 VkPipelineBindPoint pipelineBindPoint;
4175 uint32_t inputAttachmentCount;
4176 const VkAttachmentReference* pInputAttachments;
4177 uint32_t colorAttachmentCount;
4178 const VkAttachmentReference* pColorAttachments;
4179 const VkAttachmentReference* pResolveAttachments;
4180 const VkAttachmentReference* pDepthStencilAttachment;
4181 uint32_t preserveAttachmentCount;
4182 const uint32_t* pPreserveAttachments;
4183} VkSubpassDescription;
4184
4185typedef struct VkSubpassDependency {
4186 uint32_t srcSubpass;
4187 uint32_t dstSubpass;
4188 VkPipelineStageFlags srcStageMask;
4189 VkPipelineStageFlags dstStageMask;
4190 VkAccessFlags srcAccessMask;
4191 VkAccessFlags dstAccessMask;
4192 VkDependencyFlags dependencyFlags;
4193} VkSubpassDependency;
4194
4195typedef struct VkRenderPassCreateInfo {
4196 VkStructureType sType;
4197 const void* pNext;
4198 VkRenderPassCreateFlags flags;
4199 uint32_t attachmentCount;
4200 const VkAttachmentDescription* pAttachments;
4201 uint32_t subpassCount;
4202 const VkSubpassDescription* pSubpasses;
4203 uint32_t dependencyCount;
4204 const VkSubpassDependency* pDependencies;
4205} VkRenderPassCreateInfo;
4206
4207typedef struct VkCommandPoolCreateInfo {
4208 VkStructureType sType;
4209 const void* pNext;
4210 VkCommandPoolCreateFlags flags;
4211 uint32_t queueFamilyIndex;
4212} VkCommandPoolCreateInfo;
4213
4214typedef struct VkCommandBufferAllocateInfo {
4215 VkStructureType sType;
4216 const void* pNext;
4217 VkCommandPool commandPool;
4218 VkCommandBufferLevel level;
4219 uint32_t commandBufferCount;
4220} VkCommandBufferAllocateInfo;
4221
4222typedef struct VkCommandBufferInheritanceInfo {
4223 VkStructureType sType;
4224 const void* pNext;
4225 VkRenderPass renderPass;
4226 uint32_t subpass;
4227 VkFramebuffer framebuffer;
4228 VkBool32 occlusionQueryEnable;
4229 VkQueryControlFlags queryFlags;
4230 VkQueryPipelineStatisticFlags pipelineStatistics;
4231} VkCommandBufferInheritanceInfo;
4232
4233typedef struct VkCommandBufferBeginInfo {
4234 VkStructureType sType;
4235 const void* pNext;
4236 VkCommandBufferUsageFlags flags;
4237 const VkCommandBufferInheritanceInfo* pInheritanceInfo;
4238} VkCommandBufferBeginInfo;
4239
4240typedef struct VkBufferCopy {
4241 VkDeviceSize srcOffset;
4242 VkDeviceSize dstOffset;
4243 VkDeviceSize size;
4244} VkBufferCopy;
4245
4246typedef struct VkImageSubresourceLayers {
4247 VkImageAspectFlags aspectMask;
4248 uint32_t mipLevel;
4249 uint32_t baseArrayLayer;
4250 uint32_t layerCount;
4251} VkImageSubresourceLayers;
4252
4253typedef struct VkBufferImageCopy {
4254 VkDeviceSize bufferOffset;
4255 uint32_t bufferRowLength;
4256 uint32_t bufferImageHeight;
4257 VkImageSubresourceLayers imageSubresource;
4258 VkOffset3D imageOffset;
4259 VkExtent3D imageExtent;
4260} VkBufferImageCopy;
4261
4262typedef union VkClearColorValue {
4263 float float32[4];
4264 int32_t int32[4];
4265 uint32_t uint32[4];
4266} VkClearColorValue;
4267
4268typedef struct VkClearDepthStencilValue {
4269 float depth;
4270 uint32_t stencil;
4271} VkClearDepthStencilValue;
4272
4273typedef union VkClearValue {
4274 VkClearColorValue color;
4275 VkClearDepthStencilValue depthStencil;
4276} VkClearValue;
4277
4278typedef struct VkClearAttachment {
4279 VkImageAspectFlags aspectMask;
4280 uint32_t colorAttachment;
4281 VkClearValue clearValue;
4282} VkClearAttachment;
4283
4284typedef struct VkClearRect {
4285 VkRect2D rect;
4286 uint32_t baseArrayLayer;
4287 uint32_t layerCount;
4288} VkClearRect;
4289
4290typedef struct VkImageBlit {
4291 VkImageSubresourceLayers srcSubresource;
4292 VkOffset3D srcOffsets[2];
4293 VkImageSubresourceLayers dstSubresource;
4294 VkOffset3D dstOffsets[2];
4295} VkImageBlit;
4296
4297typedef struct VkImageCopy {
4298 VkImageSubresourceLayers srcSubresource;
4299 VkOffset3D srcOffset;
4300 VkImageSubresourceLayers dstSubresource;
4301 VkOffset3D dstOffset;
4302 VkExtent3D extent;
4303} VkImageCopy;
4304
4305typedef struct VkImageResolve {
4306 VkImageSubresourceLayers srcSubresource;
4307 VkOffset3D srcOffset;
4308 VkImageSubresourceLayers dstSubresource;
4309 VkOffset3D dstOffset;
4310 VkExtent3D extent;
4311} VkImageResolve;
4312
4313typedef struct VkRenderPassBeginInfo {
4314 VkStructureType sType;
4315 const void* pNext;
4316 VkRenderPass renderPass;
4317 VkFramebuffer framebuffer;
4318 VkRect2D renderArea;
4319 uint32_t clearValueCount;
4320 const VkClearValue* pClearValues;
4321} VkRenderPassBeginInfo;
4322
4323typedef VkResult (VKAPI_PTR *PFN_vkCreateInstance)(const VkInstanceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkInstance* pInstance);
4324typedef void (VKAPI_PTR *PFN_vkDestroyInstance)(VkInstance instance, const VkAllocationCallbacks* pAllocator);
4325typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDevices)(VkInstance instance, uint32_t* pPhysicalDeviceCount, VkPhysicalDevice* pPhysicalDevices);
4326typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures* pFeatures);
4327typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties* pFormatProperties);
4328typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkImageFormatProperties* pImageFormatProperties);
4329typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties* pProperties);
4330typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties* pQueueFamilyProperties);
4331typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties* pMemoryProperties);
4332typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddr)(VkInstance instance, const char* pName);
4333typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetDeviceProcAddr)(VkDevice device, const char* pName);
4334typedef VkResult (VKAPI_PTR *PFN_vkCreateDevice)(VkPhysicalDevice physicalDevice, const VkDeviceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDevice* pDevice);
4335typedef void (VKAPI_PTR *PFN_vkDestroyDevice)(VkDevice device, const VkAllocationCallbacks* pAllocator);
4336typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceExtensionProperties)(const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
4337typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceExtensionProperties)(VkPhysicalDevice physicalDevice, const char* pLayerName, uint32_t* pPropertyCount, VkExtensionProperties* pProperties);
4338typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceLayerProperties)(uint32_t* pPropertyCount, VkLayerProperties* pProperties);
4339typedef VkResult (VKAPI_PTR *PFN_vkEnumerateDeviceLayerProperties)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkLayerProperties* pProperties);
4340typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue)(VkDevice device, uint32_t queueFamilyIndex, uint32_t queueIndex, VkQueue* pQueue);
4341typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo* pSubmits, VkFence fence);
4342typedef VkResult (VKAPI_PTR *PFN_vkQueueWaitIdle)(VkQueue queue);
4343typedef VkResult (VKAPI_PTR *PFN_vkDeviceWaitIdle)(VkDevice device);
4344typedef VkResult (VKAPI_PTR *PFN_vkAllocateMemory)(VkDevice device, const VkMemoryAllocateInfo* pAllocateInfo, const VkAllocationCallbacks* pAllocator, VkDeviceMemory* pMemory);
4345typedef void (VKAPI_PTR *PFN_vkFreeMemory)(VkDevice device, VkDeviceMemory memory, const VkAllocationCallbacks* pAllocator);
4346typedef VkResult (VKAPI_PTR *PFN_vkMapMemory)(VkDevice device, VkDeviceMemory memory, VkDeviceSize offset, VkDeviceSize size, VkMemoryMapFlags flags, void** ppData);
4347typedef void (VKAPI_PTR *PFN_vkUnmapMemory)(VkDevice device, VkDeviceMemory memory);
4348typedef VkResult (VKAPI_PTR *PFN_vkFlushMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
4349typedef VkResult (VKAPI_PTR *PFN_vkInvalidateMappedMemoryRanges)(VkDevice device, uint32_t memoryRangeCount, const VkMappedMemoryRange* pMemoryRanges);
4350typedef void (VKAPI_PTR *PFN_vkGetDeviceMemoryCommitment)(VkDevice device, VkDeviceMemory memory, VkDeviceSize* pCommittedMemoryInBytes);
4351typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory)(VkDevice device, VkBuffer buffer, VkDeviceMemory memory, VkDeviceSize memoryOffset);
4352typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory)(VkDevice device, VkImage image, VkDeviceMemory memory, VkDeviceSize memoryOffset);
4353typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements)(VkDevice device, VkBuffer buffer, VkMemoryRequirements* pMemoryRequirements);
4354typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements)(VkDevice device, VkImage image, VkMemoryRequirements* pMemoryRequirements);
4355typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements)(VkDevice device, VkImage image, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
4356typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkSampleCountFlagBits samples, VkImageUsageFlags usage, VkImageTiling tiling, uint32_t* pPropertyCount, VkSparseImageFormatProperties* pProperties);
4357typedef VkResult (VKAPI_PTR *PFN_vkQueueBindSparse)(VkQueue queue, uint32_t bindInfoCount, const VkBindSparseInfo* pBindInfo, VkFence fence);
4358typedef VkResult (VKAPI_PTR *PFN_vkCreateFence)(VkDevice device, const VkFenceCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
4359typedef void (VKAPI_PTR *PFN_vkDestroyFence)(VkDevice device, VkFence fence, const VkAllocationCallbacks* pAllocator);
4360typedef VkResult (VKAPI_PTR *PFN_vkResetFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences);
4361typedef VkResult (VKAPI_PTR *PFN_vkGetFenceStatus)(VkDevice device, VkFence fence);
4362typedef VkResult (VKAPI_PTR *PFN_vkWaitForFences)(VkDevice device, uint32_t fenceCount, const VkFence* pFences, VkBool32 waitAll, uint64_t timeout);
4363typedef VkResult (VKAPI_PTR *PFN_vkCreateSemaphore)(VkDevice device, const VkSemaphoreCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSemaphore* pSemaphore);
4364typedef void (VKAPI_PTR *PFN_vkDestroySemaphore)(VkDevice device, VkSemaphore semaphore, const VkAllocationCallbacks* pAllocator);
4365typedef VkResult (VKAPI_PTR *PFN_vkCreateEvent)(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent);
4366typedef void (VKAPI_PTR *PFN_vkDestroyEvent)(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator);
4367typedef VkResult (VKAPI_PTR *PFN_vkGetEventStatus)(VkDevice device, VkEvent event);
4368typedef VkResult (VKAPI_PTR *PFN_vkSetEvent)(VkDevice device, VkEvent event);
4369typedef VkResult (VKAPI_PTR *PFN_vkResetEvent)(VkDevice device, VkEvent event);
4370typedef VkResult (VKAPI_PTR *PFN_vkCreateQueryPool)(VkDevice device, const VkQueryPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkQueryPool* pQueryPool);
4371typedef void (VKAPI_PTR *PFN_vkDestroyQueryPool)(VkDevice device, VkQueryPool queryPool, const VkAllocationCallbacks* pAllocator);
4372typedef VkResult (VKAPI_PTR *PFN_vkGetQueryPoolResults)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, size_t dataSize, void* pData, VkDeviceSize stride, VkQueryResultFlags flags);
4373typedef VkResult (VKAPI_PTR *PFN_vkCreateBuffer)(VkDevice device, const VkBufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBuffer* pBuffer);
4374typedef void (VKAPI_PTR *PFN_vkDestroyBuffer)(VkDevice device, VkBuffer buffer, const VkAllocationCallbacks* pAllocator);
4375typedef VkResult (VKAPI_PTR *PFN_vkCreateBufferView)(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView);
4376typedef void (VKAPI_PTR *PFN_vkDestroyBufferView)(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator);
4377typedef VkResult (VKAPI_PTR *PFN_vkCreateImage)(VkDevice device, const VkImageCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImage* pImage);
4378typedef void (VKAPI_PTR *PFN_vkDestroyImage)(VkDevice device, VkImage image, const VkAllocationCallbacks* pAllocator);
4379typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout)(VkDevice device, VkImage image, const VkImageSubresource* pSubresource, VkSubresourceLayout* pLayout);
4380typedef VkResult (VKAPI_PTR *PFN_vkCreateImageView)(VkDevice device, const VkImageViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkImageView* pView);
4381typedef void (VKAPI_PTR *PFN_vkDestroyImageView)(VkDevice device, VkImageView imageView, const VkAllocationCallbacks* pAllocator);
4382typedef VkResult (VKAPI_PTR *PFN_vkCreateShaderModule)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkShaderModule* pShaderModule);
4383typedef void (VKAPI_PTR *PFN_vkDestroyShaderModule)(VkDevice device, VkShaderModule shaderModule, const VkAllocationCallbacks* pAllocator);
4384typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineCache)(VkDevice device, const VkPipelineCacheCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineCache* pPipelineCache);
4385typedef void (VKAPI_PTR *PFN_vkDestroyPipelineCache)(VkDevice device, VkPipelineCache pipelineCache, const VkAllocationCallbacks* pAllocator);
4386typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineCacheData)(VkDevice device, VkPipelineCache pipelineCache, size_t* pDataSize, void* pData);
4387typedef VkResult (VKAPI_PTR *PFN_vkMergePipelineCaches)(VkDevice device, VkPipelineCache dstCache, uint32_t srcCacheCount, const VkPipelineCache* pSrcCaches);
4388typedef VkResult (VKAPI_PTR *PFN_vkCreateGraphicsPipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkGraphicsPipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
4389typedef VkResult (VKAPI_PTR *PFN_vkCreateComputePipelines)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkComputePipelineCreateInfo* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
4390typedef void (VKAPI_PTR *PFN_vkDestroyPipeline)(VkDevice device, VkPipeline pipeline, const VkAllocationCallbacks* pAllocator);
4391typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineLayout)(VkDevice device, const VkPipelineLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineLayout* pPipelineLayout);
4392typedef void (VKAPI_PTR *PFN_vkDestroyPipelineLayout)(VkDevice device, VkPipelineLayout pipelineLayout, const VkAllocationCallbacks* pAllocator);
4393typedef VkResult (VKAPI_PTR *PFN_vkCreateSampler)(VkDevice device, const VkSamplerCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSampler* pSampler);
4394typedef void (VKAPI_PTR *PFN_vkDestroySampler)(VkDevice device, VkSampler sampler, const VkAllocationCallbacks* pAllocator);
4395typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorSetLayout)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorSetLayout* pSetLayout);
4396typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorSetLayout)(VkDevice device, VkDescriptorSetLayout descriptorSetLayout, const VkAllocationCallbacks* pAllocator);
4397typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorPool)(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool);
4398typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator);
4399typedef VkResult (VKAPI_PTR *PFN_vkResetDescriptorPool)(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags);
4400typedef VkResult (VKAPI_PTR *PFN_vkAllocateDescriptorSets)(VkDevice device, const VkDescriptorSetAllocateInfo* pAllocateInfo, VkDescriptorSet* pDescriptorSets);
4401typedef VkResult (VKAPI_PTR *PFN_vkFreeDescriptorSets)(VkDevice device, VkDescriptorPool descriptorPool, uint32_t descriptorSetCount, const VkDescriptorSet* pDescriptorSets);
4402typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSets)(VkDevice device, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites, uint32_t descriptorCopyCount, const VkCopyDescriptorSet* pDescriptorCopies);
4403typedef VkResult (VKAPI_PTR *PFN_vkCreateFramebuffer)(VkDevice device, const VkFramebufferCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkFramebuffer* pFramebuffer);
4404typedef void (VKAPI_PTR *PFN_vkDestroyFramebuffer)(VkDevice device, VkFramebuffer framebuffer, const VkAllocationCallbacks* pAllocator);
4405typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass)(VkDevice device, const VkRenderPassCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
4406typedef void (VKAPI_PTR *PFN_vkDestroyRenderPass)(VkDevice device, VkRenderPass renderPass, const VkAllocationCallbacks* pAllocator);
4407typedef void (VKAPI_PTR *PFN_vkGetRenderAreaGranularity)(VkDevice device, VkRenderPass renderPass, VkExtent2D* pGranularity);
4408typedef VkResult (VKAPI_PTR *PFN_vkCreateCommandPool)(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool);
4409typedef void (VKAPI_PTR *PFN_vkDestroyCommandPool)(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator);
4410typedef VkResult (VKAPI_PTR *PFN_vkResetCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags);
4411typedef VkResult (VKAPI_PTR *PFN_vkAllocateCommandBuffers)(VkDevice device, const VkCommandBufferAllocateInfo* pAllocateInfo, VkCommandBuffer* pCommandBuffers);
4412typedef void (VKAPI_PTR *PFN_vkFreeCommandBuffers)(VkDevice device, VkCommandPool commandPool, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
4413typedef VkResult (VKAPI_PTR *PFN_vkBeginCommandBuffer)(VkCommandBuffer commandBuffer, const VkCommandBufferBeginInfo* pBeginInfo);
4414typedef VkResult (VKAPI_PTR *PFN_vkEndCommandBuffer)(VkCommandBuffer commandBuffer);
4415typedef VkResult (VKAPI_PTR *PFN_vkResetCommandBuffer)(VkCommandBuffer commandBuffer, VkCommandBufferResetFlags flags);
4416typedef void (VKAPI_PTR *PFN_vkCmdBindPipeline)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
4417typedef void (VKAPI_PTR *PFN_vkCmdSetViewport)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewport* pViewports);
4418typedef void (VKAPI_PTR *PFN_vkCmdSetScissor)(VkCommandBuffer commandBuffer, uint32_t firstScissor, uint32_t scissorCount, const VkRect2D* pScissors);
4419typedef void (VKAPI_PTR *PFN_vkCmdSetLineWidth)(VkCommandBuffer commandBuffer, float lineWidth);
4420typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias)(VkCommandBuffer commandBuffer, float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor);
4421typedef void (VKAPI_PTR *PFN_vkCmdSetBlendConstants)(VkCommandBuffer commandBuffer, const float blendConstants[4]);
4422typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBounds)(VkCommandBuffer commandBuffer, float minDepthBounds, float maxDepthBounds);
4423typedef void (VKAPI_PTR *PFN_vkCmdSetStencilCompareMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t compareMask);
4424typedef void (VKAPI_PTR *PFN_vkCmdSetStencilWriteMask)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t writeMask);
4425typedef void (VKAPI_PTR *PFN_vkCmdSetStencilReference)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, uint32_t reference);
4426typedef 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);
4427typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkIndexType indexType);
4428typedef void (VKAPI_PTR *PFN_vkCmdBindVertexBuffers)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets);
4429typedef void (VKAPI_PTR *PFN_vkCmdDraw)(VkCommandBuffer commandBuffer, uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance);
4430typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexed)(VkCommandBuffer commandBuffer, uint32_t indexCount, uint32_t instanceCount, uint32_t firstIndex, int32_t vertexOffset, uint32_t firstInstance);
4431typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
4432typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
4433typedef void (VKAPI_PTR *PFN_vkCmdDispatch)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
4434typedef void (VKAPI_PTR *PFN_vkCmdDispatchIndirect)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
4435typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferCopy* pRegions);
4436typedef void (VKAPI_PTR *PFN_vkCmdCopyImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageCopy* pRegions);
4437typedef void (VKAPI_PTR *PFN_vkCmdBlitImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageBlit* pRegions, VkFilter filter);
4438typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage)(VkCommandBuffer commandBuffer, VkBuffer srcBuffer, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkBufferImageCopy* pRegions);
4439typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkBuffer dstBuffer, uint32_t regionCount, const VkBufferImageCopy* pRegions);
4440typedef void (VKAPI_PTR *PFN_vkCmdUpdateBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize dataSize, const void* pData);
4441typedef void (VKAPI_PTR *PFN_vkCmdFillBuffer)(VkCommandBuffer commandBuffer, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize size, uint32_t data);
4442typedef void (VKAPI_PTR *PFN_vkCmdClearColorImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearColorValue* pColor, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
4443typedef void (VKAPI_PTR *PFN_vkCmdClearDepthStencilImage)(VkCommandBuffer commandBuffer, VkImage image, VkImageLayout imageLayout, const VkClearDepthStencilValue* pDepthStencil, uint32_t rangeCount, const VkImageSubresourceRange* pRanges);
4444typedef void (VKAPI_PTR *PFN_vkCmdClearAttachments)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkClearAttachment* pAttachments, uint32_t rectCount, const VkClearRect* pRects);
4445typedef void (VKAPI_PTR *PFN_vkCmdResolveImage)(VkCommandBuffer commandBuffer, VkImage srcImage, VkImageLayout srcImageLayout, VkImage dstImage, VkImageLayout dstImageLayout, uint32_t regionCount, const VkImageResolve* pRegions);
4446typedef void (VKAPI_PTR *PFN_vkCmdSetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
4447typedef void (VKAPI_PTR *PFN_vkCmdResetEvent)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags stageMask);
4448typedef 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);
4449typedef 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);
4450typedef void (VKAPI_PTR *PFN_vkCmdBeginQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags);
4451typedef void (VKAPI_PTR *PFN_vkCmdEndQuery)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query);
4452typedef void (VKAPI_PTR *PFN_vkCmdResetQueryPool)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
4453typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkQueryPool queryPool, uint32_t query);
4454typedef void (VKAPI_PTR *PFN_vkCmdCopyQueryPoolResults)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, VkBuffer dstBuffer, VkDeviceSize dstOffset, VkDeviceSize stride, VkQueryResultFlags flags);
4455typedef void (VKAPI_PTR *PFN_vkCmdPushConstants)(VkCommandBuffer commandBuffer, VkPipelineLayout layout, VkShaderStageFlags stageFlags, uint32_t offset, uint32_t size, const void* pValues);
4456typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, VkSubpassContents contents);
4457typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass)(VkCommandBuffer commandBuffer, VkSubpassContents contents);
4458typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass)(VkCommandBuffer commandBuffer);
4459typedef void (VKAPI_PTR *PFN_vkCmdExecuteCommands)(VkCommandBuffer commandBuffer, uint32_t commandBufferCount, const VkCommandBuffer* pCommandBuffers);
4460
4461#ifndef VK_NO_PROTOTYPES
4462VKAPI_ATTR VkResult VKAPI_CALL vkCreateInstance(
4463 const VkInstanceCreateInfo* pCreateInfo,
4464 const VkAllocationCallbacks* pAllocator,
4465 VkInstance* pInstance);
4466
4467VKAPI_ATTR void VKAPI_CALL vkDestroyInstance(
4468 VkInstance instance,
4469 const VkAllocationCallbacks* pAllocator);
4470
4471VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDevices(
4472 VkInstance instance,
4473 uint32_t* pPhysicalDeviceCount,
4474 VkPhysicalDevice* pPhysicalDevices);
4475
4476VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures(
4477 VkPhysicalDevice physicalDevice,
4478 VkPhysicalDeviceFeatures* pFeatures);
4479
4480VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties(
4481 VkPhysicalDevice physicalDevice,
4482 VkFormat format,
4483 VkFormatProperties* pFormatProperties);
4484
4485VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties(
4486 VkPhysicalDevice physicalDevice,
4487 VkFormat format,
4488 VkImageType type,
4489 VkImageTiling tiling,
4490 VkImageUsageFlags usage,
4491 VkImageCreateFlags flags,
4492 VkImageFormatProperties* pImageFormatProperties);
4493
4494VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties(
4495 VkPhysicalDevice physicalDevice,
4496 VkPhysicalDeviceProperties* pProperties);
4497
4498VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties(
4499 VkPhysicalDevice physicalDevice,
4500 uint32_t* pQueueFamilyPropertyCount,
4501 VkQueueFamilyProperties* pQueueFamilyProperties);
4502
4503VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties(
4504 VkPhysicalDevice physicalDevice,
4505 VkPhysicalDeviceMemoryProperties* pMemoryProperties);
4506
4507VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetInstanceProcAddr(
4508 VkInstance instance,
4509 const char* pName);
4510
4511VKAPI_ATTR PFN_vkVoidFunction VKAPI_CALL vkGetDeviceProcAddr(
4512 VkDevice device,
4513 const char* pName);
4514
4515VKAPI_ATTR VkResult VKAPI_CALL vkCreateDevice(
4516 VkPhysicalDevice physicalDevice,
4517 const VkDeviceCreateInfo* pCreateInfo,
4518 const VkAllocationCallbacks* pAllocator,
4519 VkDevice* pDevice);
4520
4521VKAPI_ATTR void VKAPI_CALL vkDestroyDevice(
4522 VkDevice device,
4523 const VkAllocationCallbacks* pAllocator);
4524
4525VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceExtensionProperties(
4526 const char* pLayerName,
4527 uint32_t* pPropertyCount,
4528 VkExtensionProperties* pProperties);
4529
4530VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceExtensionProperties(
4531 VkPhysicalDevice physicalDevice,
4532 const char* pLayerName,
4533 uint32_t* pPropertyCount,
4534 VkExtensionProperties* pProperties);
4535
4536VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceLayerProperties(
4537 uint32_t* pPropertyCount,
4538 VkLayerProperties* pProperties);
4539
4540VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateDeviceLayerProperties(
4541 VkPhysicalDevice physicalDevice,
4542 uint32_t* pPropertyCount,
4543 VkLayerProperties* pProperties);
4544
4545VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue(
4546 VkDevice device,
4547 uint32_t queueFamilyIndex,
4548 uint32_t queueIndex,
4549 VkQueue* pQueue);
4550
4551VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit(
4552 VkQueue queue,
4553 uint32_t submitCount,
4554 const VkSubmitInfo* pSubmits,
4555 VkFence fence);
4556
4557VKAPI_ATTR VkResult VKAPI_CALL vkQueueWaitIdle(
4558 VkQueue queue);
4559
4560VKAPI_ATTR VkResult VKAPI_CALL vkDeviceWaitIdle(
4561 VkDevice device);
4562
4563VKAPI_ATTR VkResult VKAPI_CALL vkAllocateMemory(
4564 VkDevice device,
4565 const VkMemoryAllocateInfo* pAllocateInfo,
4566 const VkAllocationCallbacks* pAllocator,
4567 VkDeviceMemory* pMemory);
4568
4569VKAPI_ATTR void VKAPI_CALL vkFreeMemory(
4570 VkDevice device,
4571 VkDeviceMemory memory,
4572 const VkAllocationCallbacks* pAllocator);
4573
4574VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory(
4575 VkDevice device,
4576 VkDeviceMemory memory,
4577 VkDeviceSize offset,
4578 VkDeviceSize size,
4579 VkMemoryMapFlags flags,
4580 void** ppData);
4581
4582VKAPI_ATTR void VKAPI_CALL vkUnmapMemory(
4583 VkDevice device,
4584 VkDeviceMemory memory);
4585
4586VKAPI_ATTR VkResult VKAPI_CALL vkFlushMappedMemoryRanges(
4587 VkDevice device,
4588 uint32_t memoryRangeCount,
4589 const VkMappedMemoryRange* pMemoryRanges);
4590
4591VKAPI_ATTR VkResult VKAPI_CALL vkInvalidateMappedMemoryRanges(
4592 VkDevice device,
4593 uint32_t memoryRangeCount,
4594 const VkMappedMemoryRange* pMemoryRanges);
4595
4596VKAPI_ATTR void VKAPI_CALL vkGetDeviceMemoryCommitment(
4597 VkDevice device,
4598 VkDeviceMemory memory,
4599 VkDeviceSize* pCommittedMemoryInBytes);
4600
4601VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory(
4602 VkDevice device,
4603 VkBuffer buffer,
4604 VkDeviceMemory memory,
4605 VkDeviceSize memoryOffset);
4606
4607VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory(
4608 VkDevice device,
4609 VkImage image,
4610 VkDeviceMemory memory,
4611 VkDeviceSize memoryOffset);
4612
4613VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements(
4614 VkDevice device,
4615 VkBuffer buffer,
4616 VkMemoryRequirements* pMemoryRequirements);
4617
4618VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements(
4619 VkDevice device,
4620 VkImage image,
4621 VkMemoryRequirements* pMemoryRequirements);
4622
4623VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements(
4624 VkDevice device,
4625 VkImage image,
4626 uint32_t* pSparseMemoryRequirementCount,
4627 VkSparseImageMemoryRequirements* pSparseMemoryRequirements);
4628
4629VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties(
4630 VkPhysicalDevice physicalDevice,
4631 VkFormat format,
4632 VkImageType type,
4633 VkSampleCountFlagBits samples,
4634 VkImageUsageFlags usage,
4635 VkImageTiling tiling,
4636 uint32_t* pPropertyCount,
4637 VkSparseImageFormatProperties* pProperties);
4638
4639VKAPI_ATTR VkResult VKAPI_CALL vkQueueBindSparse(
4640 VkQueue queue,
4641 uint32_t bindInfoCount,
4642 const VkBindSparseInfo* pBindInfo,
4643 VkFence fence);
4644
4645VKAPI_ATTR VkResult VKAPI_CALL vkCreateFence(
4646 VkDevice device,
4647 const VkFenceCreateInfo* pCreateInfo,
4648 const VkAllocationCallbacks* pAllocator,
4649 VkFence* pFence);
4650
4651VKAPI_ATTR void VKAPI_CALL vkDestroyFence(
4652 VkDevice device,
4653 VkFence fence,
4654 const VkAllocationCallbacks* pAllocator);
4655
4656VKAPI_ATTR VkResult VKAPI_CALL vkResetFences(
4657 VkDevice device,
4658 uint32_t fenceCount,
4659 const VkFence* pFences);
4660
4661VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceStatus(
4662 VkDevice device,
4663 VkFence fence);
4664
4665VKAPI_ATTR VkResult VKAPI_CALL vkWaitForFences(
4666 VkDevice device,
4667 uint32_t fenceCount,
4668 const VkFence* pFences,
4669 VkBool32 waitAll,
4670 uint64_t timeout);
4671
4672VKAPI_ATTR VkResult VKAPI_CALL vkCreateSemaphore(
4673 VkDevice device,
4674 const VkSemaphoreCreateInfo* pCreateInfo,
4675 const VkAllocationCallbacks* pAllocator,
4676 VkSemaphore* pSemaphore);
4677
4678VKAPI_ATTR void VKAPI_CALL vkDestroySemaphore(
4679 VkDevice device,
4680 VkSemaphore semaphore,
4681 const VkAllocationCallbacks* pAllocator);
4682
4683VKAPI_ATTR VkResult VKAPI_CALL vkCreateEvent(
4684 VkDevice device,
4685 const VkEventCreateInfo* pCreateInfo,
4686 const VkAllocationCallbacks* pAllocator,
4687 VkEvent* pEvent);
4688
4689VKAPI_ATTR void VKAPI_CALL vkDestroyEvent(
4690 VkDevice device,
4691 VkEvent event,
4692 const VkAllocationCallbacks* pAllocator);
4693
4694VKAPI_ATTR VkResult VKAPI_CALL vkGetEventStatus(
4695 VkDevice device,
4696 VkEvent event);
4697
4698VKAPI_ATTR VkResult VKAPI_CALL vkSetEvent(
4699 VkDevice device,
4700 VkEvent event);
4701
4702VKAPI_ATTR VkResult VKAPI_CALL vkResetEvent(
4703 VkDevice device,
4704 VkEvent event);
4705
4706VKAPI_ATTR VkResult VKAPI_CALL vkCreateQueryPool(
4707 VkDevice device,
4708 const VkQueryPoolCreateInfo* pCreateInfo,
4709 const VkAllocationCallbacks* pAllocator,
4710 VkQueryPool* pQueryPool);
4711
4712VKAPI_ATTR void VKAPI_CALL vkDestroyQueryPool(
4713 VkDevice device,
4714 VkQueryPool queryPool,
4715 const VkAllocationCallbacks* pAllocator);
4716
4717VKAPI_ATTR VkResult VKAPI_CALL vkGetQueryPoolResults(
4718 VkDevice device,
4719 VkQueryPool queryPool,
4720 uint32_t firstQuery,
4721 uint32_t queryCount,
4722 size_t dataSize,
4723 void* pData,
4724 VkDeviceSize stride,
4725 VkQueryResultFlags flags);
4726
4727VKAPI_ATTR VkResult VKAPI_CALL vkCreateBuffer(
4728 VkDevice device,
4729 const VkBufferCreateInfo* pCreateInfo,
4730 const VkAllocationCallbacks* pAllocator,
4731 VkBuffer* pBuffer);
4732
4733VKAPI_ATTR void VKAPI_CALL vkDestroyBuffer(
4734 VkDevice device,
4735 VkBuffer buffer,
4736 const VkAllocationCallbacks* pAllocator);
4737
4738VKAPI_ATTR VkResult VKAPI_CALL vkCreateBufferView(
4739 VkDevice device,
4740 const VkBufferViewCreateInfo* pCreateInfo,
4741 const VkAllocationCallbacks* pAllocator,
4742 VkBufferView* pView);
4743
4744VKAPI_ATTR void VKAPI_CALL vkDestroyBufferView(
4745 VkDevice device,
4746 VkBufferView bufferView,
4747 const VkAllocationCallbacks* pAllocator);
4748
4749VKAPI_ATTR VkResult VKAPI_CALL vkCreateImage(
4750 VkDevice device,
4751 const VkImageCreateInfo* pCreateInfo,
4752 const VkAllocationCallbacks* pAllocator,
4753 VkImage* pImage);
4754
4755VKAPI_ATTR void VKAPI_CALL vkDestroyImage(
4756 VkDevice device,
4757 VkImage image,
4758 const VkAllocationCallbacks* pAllocator);
4759
4760VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout(
4761 VkDevice device,
4762 VkImage image,
4763 const VkImageSubresource* pSubresource,
4764 VkSubresourceLayout* pLayout);
4765
4766VKAPI_ATTR VkResult VKAPI_CALL vkCreateImageView(
4767 VkDevice device,
4768 const VkImageViewCreateInfo* pCreateInfo,
4769 const VkAllocationCallbacks* pAllocator,
4770 VkImageView* pView);
4771
4772VKAPI_ATTR void VKAPI_CALL vkDestroyImageView(
4773 VkDevice device,
4774 VkImageView imageView,
4775 const VkAllocationCallbacks* pAllocator);
4776
4777VKAPI_ATTR VkResult VKAPI_CALL vkCreateShaderModule(
4778 VkDevice device,
4779 const VkShaderModuleCreateInfo* pCreateInfo,
4780 const VkAllocationCallbacks* pAllocator,
4781 VkShaderModule* pShaderModule);
4782
4783VKAPI_ATTR void VKAPI_CALL vkDestroyShaderModule(
4784 VkDevice device,
4785 VkShaderModule shaderModule,
4786 const VkAllocationCallbacks* pAllocator);
4787
4788VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineCache(
4789 VkDevice device,
4790 const VkPipelineCacheCreateInfo* pCreateInfo,
4791 const VkAllocationCallbacks* pAllocator,
4792 VkPipelineCache* pPipelineCache);
4793
4794VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineCache(
4795 VkDevice device,
4796 VkPipelineCache pipelineCache,
4797 const VkAllocationCallbacks* pAllocator);
4798
4799VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineCacheData(
4800 VkDevice device,
4801 VkPipelineCache pipelineCache,
4802 size_t* pDataSize,
4803 void* pData);
4804
4805VKAPI_ATTR VkResult VKAPI_CALL vkMergePipelineCaches(
4806 VkDevice device,
4807 VkPipelineCache dstCache,
4808 uint32_t srcCacheCount,
4809 const VkPipelineCache* pSrcCaches);
4810
4811VKAPI_ATTR VkResult VKAPI_CALL vkCreateGraphicsPipelines(
4812 VkDevice device,
4813 VkPipelineCache pipelineCache,
4814 uint32_t createInfoCount,
4815 const VkGraphicsPipelineCreateInfo* pCreateInfos,
4816 const VkAllocationCallbacks* pAllocator,
4817 VkPipeline* pPipelines);
4818
4819VKAPI_ATTR VkResult VKAPI_CALL vkCreateComputePipelines(
4820 VkDevice device,
4821 VkPipelineCache pipelineCache,
4822 uint32_t createInfoCount,
4823 const VkComputePipelineCreateInfo* pCreateInfos,
4824 const VkAllocationCallbacks* pAllocator,
4825 VkPipeline* pPipelines);
4826
4827VKAPI_ATTR void VKAPI_CALL vkDestroyPipeline(
4828 VkDevice device,
4829 VkPipeline pipeline,
4830 const VkAllocationCallbacks* pAllocator);
4831
4832VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineLayout(
4833 VkDevice device,
4834 const VkPipelineLayoutCreateInfo* pCreateInfo,
4835 const VkAllocationCallbacks* pAllocator,
4836 VkPipelineLayout* pPipelineLayout);
4837
4838VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineLayout(
4839 VkDevice device,
4840 VkPipelineLayout pipelineLayout,
4841 const VkAllocationCallbacks* pAllocator);
4842
4843VKAPI_ATTR VkResult VKAPI_CALL vkCreateSampler(
4844 VkDevice device,
4845 const VkSamplerCreateInfo* pCreateInfo,
4846 const VkAllocationCallbacks* pAllocator,
4847 VkSampler* pSampler);
4848
4849VKAPI_ATTR void VKAPI_CALL vkDestroySampler(
4850 VkDevice device,
4851 VkSampler sampler,
4852 const VkAllocationCallbacks* pAllocator);
4853
4854VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorSetLayout(
4855 VkDevice device,
4856 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
4857 const VkAllocationCallbacks* pAllocator,
4858 VkDescriptorSetLayout* pSetLayout);
4859
4860VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorSetLayout(
4861 VkDevice device,
4862 VkDescriptorSetLayout descriptorSetLayout,
4863 const VkAllocationCallbacks* pAllocator);
4864
4865VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorPool(
4866 VkDevice device,
4867 const VkDescriptorPoolCreateInfo* pCreateInfo,
4868 const VkAllocationCallbacks* pAllocator,
4869 VkDescriptorPool* pDescriptorPool);
4870
4871VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorPool(
4872 VkDevice device,
4873 VkDescriptorPool descriptorPool,
4874 const VkAllocationCallbacks* pAllocator);
4875
4876VKAPI_ATTR VkResult VKAPI_CALL vkResetDescriptorPool(
4877 VkDevice device,
4878 VkDescriptorPool descriptorPool,
4879 VkDescriptorPoolResetFlags flags);
4880
4881VKAPI_ATTR VkResult VKAPI_CALL vkAllocateDescriptorSets(
4882 VkDevice device,
4883 const VkDescriptorSetAllocateInfo* pAllocateInfo,
4884 VkDescriptorSet* pDescriptorSets);
4885
4886VKAPI_ATTR VkResult VKAPI_CALL vkFreeDescriptorSets(
4887 VkDevice device,
4888 VkDescriptorPool descriptorPool,
4889 uint32_t descriptorSetCount,
4890 const VkDescriptorSet* pDescriptorSets);
4891
4892VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSets(
4893 VkDevice device,
4894 uint32_t descriptorWriteCount,
4895 const VkWriteDescriptorSet* pDescriptorWrites,
4896 uint32_t descriptorCopyCount,
4897 const VkCopyDescriptorSet* pDescriptorCopies);
4898
4899VKAPI_ATTR VkResult VKAPI_CALL vkCreateFramebuffer(
4900 VkDevice device,
4901 const VkFramebufferCreateInfo* pCreateInfo,
4902 const VkAllocationCallbacks* pAllocator,
4903 VkFramebuffer* pFramebuffer);
4904
4905VKAPI_ATTR void VKAPI_CALL vkDestroyFramebuffer(
4906 VkDevice device,
4907 VkFramebuffer framebuffer,
4908 const VkAllocationCallbacks* pAllocator);
4909
4910VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass(
4911 VkDevice device,
4912 const VkRenderPassCreateInfo* pCreateInfo,
4913 const VkAllocationCallbacks* pAllocator,
4914 VkRenderPass* pRenderPass);
4915
4916VKAPI_ATTR void VKAPI_CALL vkDestroyRenderPass(
4917 VkDevice device,
4918 VkRenderPass renderPass,
4919 const VkAllocationCallbacks* pAllocator);
4920
4921VKAPI_ATTR void VKAPI_CALL vkGetRenderAreaGranularity(
4922 VkDevice device,
4923 VkRenderPass renderPass,
4924 VkExtent2D* pGranularity);
4925
4926VKAPI_ATTR VkResult VKAPI_CALL vkCreateCommandPool(
4927 VkDevice device,
4928 const VkCommandPoolCreateInfo* pCreateInfo,
4929 const VkAllocationCallbacks* pAllocator,
4930 VkCommandPool* pCommandPool);
4931
4932VKAPI_ATTR void VKAPI_CALL vkDestroyCommandPool(
4933 VkDevice device,
4934 VkCommandPool commandPool,
4935 const VkAllocationCallbacks* pAllocator);
4936
4937VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandPool(
4938 VkDevice device,
4939 VkCommandPool commandPool,
4940 VkCommandPoolResetFlags flags);
4941
4942VKAPI_ATTR VkResult VKAPI_CALL vkAllocateCommandBuffers(
4943 VkDevice device,
4944 const VkCommandBufferAllocateInfo* pAllocateInfo,
4945 VkCommandBuffer* pCommandBuffers);
4946
4947VKAPI_ATTR void VKAPI_CALL vkFreeCommandBuffers(
4948 VkDevice device,
4949 VkCommandPool commandPool,
4950 uint32_t commandBufferCount,
4951 const VkCommandBuffer* pCommandBuffers);
4952
4953VKAPI_ATTR VkResult VKAPI_CALL vkBeginCommandBuffer(
4954 VkCommandBuffer commandBuffer,
4955 const VkCommandBufferBeginInfo* pBeginInfo);
4956
4957VKAPI_ATTR VkResult VKAPI_CALL vkEndCommandBuffer(
4958 VkCommandBuffer commandBuffer);
4959
4960VKAPI_ATTR VkResult VKAPI_CALL vkResetCommandBuffer(
4961 VkCommandBuffer commandBuffer,
4962 VkCommandBufferResetFlags flags);
4963
4964VKAPI_ATTR void VKAPI_CALL vkCmdBindPipeline(
4965 VkCommandBuffer commandBuffer,
4966 VkPipelineBindPoint pipelineBindPoint,
4967 VkPipeline pipeline);
4968
4969VKAPI_ATTR void VKAPI_CALL vkCmdSetViewport(
4970 VkCommandBuffer commandBuffer,
4971 uint32_t firstViewport,
4972 uint32_t viewportCount,
4973 const VkViewport* pViewports);
4974
4975VKAPI_ATTR void VKAPI_CALL vkCmdSetScissor(
4976 VkCommandBuffer commandBuffer,
4977 uint32_t firstScissor,
4978 uint32_t scissorCount,
4979 const VkRect2D* pScissors);
4980
4981VKAPI_ATTR void VKAPI_CALL vkCmdSetLineWidth(
4982 VkCommandBuffer commandBuffer,
4983 float lineWidth);
4984
4985VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias(
4986 VkCommandBuffer commandBuffer,
4987 float depthBiasConstantFactor,
4988 float depthBiasClamp,
4989 float depthBiasSlopeFactor);
4990
4991VKAPI_ATTR void VKAPI_CALL vkCmdSetBlendConstants(
4992 VkCommandBuffer commandBuffer,
4993 const float blendConstants[4]);
4994
4995VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBounds(
4996 VkCommandBuffer commandBuffer,
4997 float minDepthBounds,
4998 float maxDepthBounds);
4999
5000VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilCompareMask(
5001 VkCommandBuffer commandBuffer,
5002 VkStencilFaceFlags faceMask,
5003 uint32_t compareMask);
5004
5005VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilWriteMask(
5006 VkCommandBuffer commandBuffer,
5007 VkStencilFaceFlags faceMask,
5008 uint32_t writeMask);
5009
5010VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilReference(
5011 VkCommandBuffer commandBuffer,
5012 VkStencilFaceFlags faceMask,
5013 uint32_t reference);
5014
5015VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets(
5016 VkCommandBuffer commandBuffer,
5017 VkPipelineBindPoint pipelineBindPoint,
5018 VkPipelineLayout layout,
5019 uint32_t firstSet,
5020 uint32_t descriptorSetCount,
5021 const VkDescriptorSet* pDescriptorSets,
5022 uint32_t dynamicOffsetCount,
5023 const uint32_t* pDynamicOffsets);
5024
5025VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer(
5026 VkCommandBuffer commandBuffer,
5027 VkBuffer buffer,
5028 VkDeviceSize offset,
5029 VkIndexType indexType);
5030
5031VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers(
5032 VkCommandBuffer commandBuffer,
5033 uint32_t firstBinding,
5034 uint32_t bindingCount,
5035 const VkBuffer* pBuffers,
5036 const VkDeviceSize* pOffsets);
5037
5038VKAPI_ATTR void VKAPI_CALL vkCmdDraw(
5039 VkCommandBuffer commandBuffer,
5040 uint32_t vertexCount,
5041 uint32_t instanceCount,
5042 uint32_t firstVertex,
5043 uint32_t firstInstance);
5044
5045VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexed(
5046 VkCommandBuffer commandBuffer,
5047 uint32_t indexCount,
5048 uint32_t instanceCount,
5049 uint32_t firstIndex,
5050 int32_t vertexOffset,
5051 uint32_t firstInstance);
5052
5053VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirect(
5054 VkCommandBuffer commandBuffer,
5055 VkBuffer buffer,
5056 VkDeviceSize offset,
5057 uint32_t drawCount,
5058 uint32_t stride);
5059
5060VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirect(
5061 VkCommandBuffer commandBuffer,
5062 VkBuffer buffer,
5063 VkDeviceSize offset,
5064 uint32_t drawCount,
5065 uint32_t stride);
5066
5067VKAPI_ATTR void VKAPI_CALL vkCmdDispatch(
5068 VkCommandBuffer commandBuffer,
5069 uint32_t groupCountX,
5070 uint32_t groupCountY,
5071 uint32_t groupCountZ);
5072
5073VKAPI_ATTR void VKAPI_CALL vkCmdDispatchIndirect(
5074 VkCommandBuffer commandBuffer,
5075 VkBuffer buffer,
5076 VkDeviceSize offset);
5077
5078VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer(
5079 VkCommandBuffer commandBuffer,
5080 VkBuffer srcBuffer,
5081 VkBuffer dstBuffer,
5082 uint32_t regionCount,
5083 const VkBufferCopy* pRegions);
5084
5085VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage(
5086 VkCommandBuffer commandBuffer,
5087 VkImage srcImage,
5088 VkImageLayout srcImageLayout,
5089 VkImage dstImage,
5090 VkImageLayout dstImageLayout,
5091 uint32_t regionCount,
5092 const VkImageCopy* pRegions);
5093
5094VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage(
5095 VkCommandBuffer commandBuffer,
5096 VkImage srcImage,
5097 VkImageLayout srcImageLayout,
5098 VkImage dstImage,
5099 VkImageLayout dstImageLayout,
5100 uint32_t regionCount,
5101 const VkImageBlit* pRegions,
5102 VkFilter filter);
5103
5104VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage(
5105 VkCommandBuffer commandBuffer,
5106 VkBuffer srcBuffer,
5107 VkImage dstImage,
5108 VkImageLayout dstImageLayout,
5109 uint32_t regionCount,
5110 const VkBufferImageCopy* pRegions);
5111
5112VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer(
5113 VkCommandBuffer commandBuffer,
5114 VkImage srcImage,
5115 VkImageLayout srcImageLayout,
5116 VkBuffer dstBuffer,
5117 uint32_t regionCount,
5118 const VkBufferImageCopy* pRegions);
5119
5120VKAPI_ATTR void VKAPI_CALL vkCmdUpdateBuffer(
5121 VkCommandBuffer commandBuffer,
5122 VkBuffer dstBuffer,
5123 VkDeviceSize dstOffset,
5124 VkDeviceSize dataSize,
5125 const void* pData);
5126
5127VKAPI_ATTR void VKAPI_CALL vkCmdFillBuffer(
5128 VkCommandBuffer commandBuffer,
5129 VkBuffer dstBuffer,
5130 VkDeviceSize dstOffset,
5131 VkDeviceSize size,
5132 uint32_t data);
5133
5134VKAPI_ATTR void VKAPI_CALL vkCmdClearColorImage(
5135 VkCommandBuffer commandBuffer,
5136 VkImage image,
5137 VkImageLayout imageLayout,
5138 const VkClearColorValue* pColor,
5139 uint32_t rangeCount,
5140 const VkImageSubresourceRange* pRanges);
5141
5142VKAPI_ATTR void VKAPI_CALL vkCmdClearDepthStencilImage(
5143 VkCommandBuffer commandBuffer,
5144 VkImage image,
5145 VkImageLayout imageLayout,
5146 const VkClearDepthStencilValue* pDepthStencil,
5147 uint32_t rangeCount,
5148 const VkImageSubresourceRange* pRanges);
5149
5150VKAPI_ATTR void VKAPI_CALL vkCmdClearAttachments(
5151 VkCommandBuffer commandBuffer,
5152 uint32_t attachmentCount,
5153 const VkClearAttachment* pAttachments,
5154 uint32_t rectCount,
5155 const VkClearRect* pRects);
5156
5157VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage(
5158 VkCommandBuffer commandBuffer,
5159 VkImage srcImage,
5160 VkImageLayout srcImageLayout,
5161 VkImage dstImage,
5162 VkImageLayout dstImageLayout,
5163 uint32_t regionCount,
5164 const VkImageResolve* pRegions);
5165
5166VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent(
5167 VkCommandBuffer commandBuffer,
5168 VkEvent event,
5169 VkPipelineStageFlags stageMask);
5170
5171VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent(
5172 VkCommandBuffer commandBuffer,
5173 VkEvent event,
5174 VkPipelineStageFlags stageMask);
5175
5176VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents(
5177 VkCommandBuffer commandBuffer,
5178 uint32_t eventCount,
5179 const VkEvent* pEvents,
5180 VkPipelineStageFlags srcStageMask,
5181 VkPipelineStageFlags dstStageMask,
5182 uint32_t memoryBarrierCount,
5183 const VkMemoryBarrier* pMemoryBarriers,
5184 uint32_t bufferMemoryBarrierCount,
5185 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
5186 uint32_t imageMemoryBarrierCount,
5187 const VkImageMemoryBarrier* pImageMemoryBarriers);
5188
5189VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier(
5190 VkCommandBuffer commandBuffer,
5191 VkPipelineStageFlags srcStageMask,
5192 VkPipelineStageFlags dstStageMask,
5193 VkDependencyFlags dependencyFlags,
5194 uint32_t memoryBarrierCount,
5195 const VkMemoryBarrier* pMemoryBarriers,
5196 uint32_t bufferMemoryBarrierCount,
5197 const VkBufferMemoryBarrier* pBufferMemoryBarriers,
5198 uint32_t imageMemoryBarrierCount,
5199 const VkImageMemoryBarrier* pImageMemoryBarriers);
5200
5201VKAPI_ATTR void VKAPI_CALL vkCmdBeginQuery(
5202 VkCommandBuffer commandBuffer,
5203 VkQueryPool queryPool,
5204 uint32_t query,
5205 VkQueryControlFlags flags);
5206
5207VKAPI_ATTR void VKAPI_CALL vkCmdEndQuery(
5208 VkCommandBuffer commandBuffer,
5209 VkQueryPool queryPool,
5210 uint32_t query);
5211
5212VKAPI_ATTR void VKAPI_CALL vkCmdResetQueryPool(
5213 VkCommandBuffer commandBuffer,
5214 VkQueryPool queryPool,
5215 uint32_t firstQuery,
5216 uint32_t queryCount);
5217
5218VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp(
5219 VkCommandBuffer commandBuffer,
5220 VkPipelineStageFlagBits pipelineStage,
5221 VkQueryPool queryPool,
5222 uint32_t query);
5223
5224VKAPI_ATTR void VKAPI_CALL vkCmdCopyQueryPoolResults(
5225 VkCommandBuffer commandBuffer,
5226 VkQueryPool queryPool,
5227 uint32_t firstQuery,
5228 uint32_t queryCount,
5229 VkBuffer dstBuffer,
5230 VkDeviceSize dstOffset,
5231 VkDeviceSize stride,
5232 VkQueryResultFlags flags);
5233
5234VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants(
5235 VkCommandBuffer commandBuffer,
5236 VkPipelineLayout layout,
5237 VkShaderStageFlags stageFlags,
5238 uint32_t offset,
5239 uint32_t size,
5240 const void* pValues);
5241
5242VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass(
5243 VkCommandBuffer commandBuffer,
5244 const VkRenderPassBeginInfo* pRenderPassBegin,
5245 VkSubpassContents contents);
5246
5247VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass(
5248 VkCommandBuffer commandBuffer,
5249 VkSubpassContents contents);
5250
5251VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass(
5252 VkCommandBuffer commandBuffer);
5253
5254VKAPI_ATTR void VKAPI_CALL vkCmdExecuteCommands(
5255 VkCommandBuffer commandBuffer,
5256 uint32_t commandBufferCount,
5257 const VkCommandBuffer* pCommandBuffers);
5258#endif
5259
5260
5261// VK_VERSION_1_1 is a preprocessor guard. Do not pass it to API calls.
5262#define VK_VERSION_1_1 1
5263// Vulkan 1.1 version number
5264#define VK_API_VERSION_1_1 VK_MAKE_API_VERSION(0, 1, 1, 0)// Patch version should always be set to 0
5265
5266VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSamplerYcbcrConversion)
5267VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDescriptorUpdateTemplate)
5268#define VK_MAX_DEVICE_GROUP_SIZE 32U
5269#define VK_LUID_SIZE 8U
5270#define VK_QUEUE_FAMILY_EXTERNAL (~1U)
5271
5272typedef enum VkPointClippingBehavior {
5273 VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES = 0,
5274 VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY = 1,
5275 VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES_KHR = VK_POINT_CLIPPING_BEHAVIOR_ALL_CLIP_PLANES,
5276 VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY_KHR = VK_POINT_CLIPPING_BEHAVIOR_USER_CLIP_PLANES_ONLY,
5277 VK_POINT_CLIPPING_BEHAVIOR_MAX_ENUM = 0x7FFFFFFF
5278} VkPointClippingBehavior;
5279
5280typedef enum VkTessellationDomainOrigin {
5281 VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT = 0,
5282 VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT = 1,
5283 VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_UPPER_LEFT,
5284 VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT_KHR = VK_TESSELLATION_DOMAIN_ORIGIN_LOWER_LEFT,
5285 VK_TESSELLATION_DOMAIN_ORIGIN_MAX_ENUM = 0x7FFFFFFF
5286} VkTessellationDomainOrigin;
5287
5288typedef enum VkSamplerYcbcrModelConversion {
5289 VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY = 0,
5290 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY = 1,
5291 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709 = 2,
5292 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601 = 3,
5293 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020 = 4,
5294 VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_RGB_IDENTITY,
5295 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_IDENTITY,
5296 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_709,
5297 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_601,
5298 VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020_KHR = VK_SAMPLER_YCBCR_MODEL_CONVERSION_YCBCR_2020,
5299 VK_SAMPLER_YCBCR_MODEL_CONVERSION_MAX_ENUM = 0x7FFFFFFF
5300} VkSamplerYcbcrModelConversion;
5301
5302typedef enum VkSamplerYcbcrRange {
5303 VK_SAMPLER_YCBCR_RANGE_ITU_FULL = 0,
5304 VK_SAMPLER_YCBCR_RANGE_ITU_NARROW = 1,
5305 VK_SAMPLER_YCBCR_RANGE_ITU_FULL_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_FULL,
5306 VK_SAMPLER_YCBCR_RANGE_ITU_NARROW_KHR = VK_SAMPLER_YCBCR_RANGE_ITU_NARROW,
5307 VK_SAMPLER_YCBCR_RANGE_MAX_ENUM = 0x7FFFFFFF
5308} VkSamplerYcbcrRange;
5309
5310typedef enum VkChromaLocation {
5311 VK_CHROMA_LOCATION_COSITED_EVEN = 0,
5312 VK_CHROMA_LOCATION_MIDPOINT = 1,
5313 VK_CHROMA_LOCATION_COSITED_EVEN_KHR = VK_CHROMA_LOCATION_COSITED_EVEN,
5314 VK_CHROMA_LOCATION_MIDPOINT_KHR = VK_CHROMA_LOCATION_MIDPOINT,
5315 VK_CHROMA_LOCATION_MAX_ENUM = 0x7FFFFFFF
5316} VkChromaLocation;
5317
5318typedef enum VkDescriptorUpdateTemplateType {
5319 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET = 0,
5320 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS = 1,
5321 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_PUSH_DESCRIPTORS,
5322 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET_KHR = VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_DESCRIPTOR_SET,
5323 VK_DESCRIPTOR_UPDATE_TEMPLATE_TYPE_MAX_ENUM = 0x7FFFFFFF
5324} VkDescriptorUpdateTemplateType;
5325
5326typedef enum VkSubgroupFeatureFlagBits {
5327 VK_SUBGROUP_FEATURE_BASIC_BIT = 0x00000001,
5328 VK_SUBGROUP_FEATURE_VOTE_BIT = 0x00000002,
5329 VK_SUBGROUP_FEATURE_ARITHMETIC_BIT = 0x00000004,
5330 VK_SUBGROUP_FEATURE_BALLOT_BIT = 0x00000008,
5331 VK_SUBGROUP_FEATURE_SHUFFLE_BIT = 0x00000010,
5332 VK_SUBGROUP_FEATURE_SHUFFLE_RELATIVE_BIT = 0x00000020,
5333 VK_SUBGROUP_FEATURE_CLUSTERED_BIT = 0x00000040,
5334 VK_SUBGROUP_FEATURE_QUAD_BIT = 0x00000080,
5335 VK_SUBGROUP_FEATURE_ROTATE_BIT = 0x00000200,
5336 VK_SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT = 0x00000400,
5337 VK_SUBGROUP_FEATURE_PARTITIONED_BIT_NV = 0x00000100,
5338 VK_SUBGROUP_FEATURE_ROTATE_BIT_KHR = VK_SUBGROUP_FEATURE_ROTATE_BIT,
5339 VK_SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT_KHR = VK_SUBGROUP_FEATURE_ROTATE_CLUSTERED_BIT,
5340 VK_SUBGROUP_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5341} VkSubgroupFeatureFlagBits;
5342typedef VkFlags VkSubgroupFeatureFlags;
5343
5344typedef enum VkPeerMemoryFeatureFlagBits {
5345 VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT = 0x00000001,
5346 VK_PEER_MEMORY_FEATURE_COPY_DST_BIT = 0x00000002,
5347 VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT = 0x00000004,
5348 VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT = 0x00000008,
5349 VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_SRC_BIT,
5350 VK_PEER_MEMORY_FEATURE_COPY_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_COPY_DST_BIT,
5351 VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_SRC_BIT,
5352 VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT_KHR = VK_PEER_MEMORY_FEATURE_GENERIC_DST_BIT,
5353 VK_PEER_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5354} VkPeerMemoryFeatureFlagBits;
5355typedef VkFlags VkPeerMemoryFeatureFlags;
5356
5357typedef enum VkMemoryAllocateFlagBits {
5358 VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT = 0x00000001,
5359 VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT = 0x00000002,
5360 VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT = 0x00000004,
5361 VK_MEMORY_ALLOCATE_ZERO_INITIALIZE_BIT_EXT = 0x00000008,
5362 VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_MASK_BIT,
5363 VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_BIT,
5364 VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = VK_MEMORY_ALLOCATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT,
5365 VK_MEMORY_ALLOCATE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5366} VkMemoryAllocateFlagBits;
5367typedef VkFlags VkMemoryAllocateFlags;
5368typedef VkFlags VkCommandPoolTrimFlags;
5369typedef VkFlags VkDescriptorUpdateTemplateCreateFlags;
5370
5371typedef enum VkExternalMemoryHandleTypeFlagBits {
5372 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
5373 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
5374 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
5375 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT = 0x00000008,
5376 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT = 0x00000010,
5377 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT = 0x00000020,
5378 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT = 0x00000040,
5379 VK_EXTERNAL_MEMORY_HANDLE_TYPE_DMA_BUF_BIT_EXT = 0x00000200,
5380 VK_EXTERNAL_MEMORY_HANDLE_TYPE_ANDROID_HARDWARE_BUFFER_BIT_ANDROID = 0x00000400,
5381 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_ALLOCATION_BIT_EXT = 0x00000080,
5382 VK_EXTERNAL_MEMORY_HANDLE_TYPE_HOST_MAPPED_FOREIGN_MEMORY_BIT_EXT = 0x00000100,
5383 VK_EXTERNAL_MEMORY_HANDLE_TYPE_ZIRCON_VMO_BIT_FUCHSIA = 0x00000800,
5384 VK_EXTERNAL_MEMORY_HANDLE_TYPE_RDMA_ADDRESS_BIT_NV = 0x00001000,
5385 VK_EXTERNAL_MEMORY_HANDLE_TYPE_SCREEN_BUFFER_BIT_QNX = 0x00004000,
5386 VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLBUFFER_BIT_EXT = 0x00010000,
5387 VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLTEXTURE_BIT_EXT = 0x00020000,
5388 VK_EXTERNAL_MEMORY_HANDLE_TYPE_MTLHEAP_BIT_EXT = 0x00040000,
5389 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT,
5390 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT,
5391 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
5392 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_BIT,
5393 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_TEXTURE_KMT_BIT,
5394 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_HEAP_BIT,
5395 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT_KHR = VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D12_RESOURCE_BIT,
5396 VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5397} VkExternalMemoryHandleTypeFlagBits;
5398typedef VkFlags VkExternalMemoryHandleTypeFlags;
5399
5400typedef enum VkExternalMemoryFeatureFlagBits {
5401 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT = 0x00000001,
5402 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT = 0x00000002,
5403 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT = 0x00000004,
5404 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT,
5405 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT,
5406 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT,
5407 VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5408} VkExternalMemoryFeatureFlagBits;
5409typedef VkFlags VkExternalMemoryFeatureFlags;
5410
5411typedef enum VkExternalFenceHandleTypeFlagBits {
5412 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
5413 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
5414 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
5415 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000008,
5416 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_FD_BIT,
5417 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
5418 VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
5419 VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_FENCE_HANDLE_TYPE_SYNC_FD_BIT,
5420 VK_EXTERNAL_FENCE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5421} VkExternalFenceHandleTypeFlagBits;
5422typedef VkFlags VkExternalFenceHandleTypeFlags;
5423
5424typedef enum VkExternalFenceFeatureFlagBits {
5425 VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT = 0x00000001,
5426 VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT = 0x00000002,
5427 VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_EXPORTABLE_BIT,
5428 VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_FENCE_FEATURE_IMPORTABLE_BIT,
5429 VK_EXTERNAL_FENCE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5430} VkExternalFenceFeatureFlagBits;
5431typedef VkFlags VkExternalFenceFeatureFlags;
5432
5433typedef enum VkFenceImportFlagBits {
5434 VK_FENCE_IMPORT_TEMPORARY_BIT = 0x00000001,
5435 VK_FENCE_IMPORT_TEMPORARY_BIT_KHR = VK_FENCE_IMPORT_TEMPORARY_BIT,
5436 VK_FENCE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5437} VkFenceImportFlagBits;
5438typedef VkFlags VkFenceImportFlags;
5439
5440typedef enum VkSemaphoreImportFlagBits {
5441 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT = 0x00000001,
5442 VK_SEMAPHORE_IMPORT_TEMPORARY_BIT_KHR = VK_SEMAPHORE_IMPORT_TEMPORARY_BIT,
5443 VK_SEMAPHORE_IMPORT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5444} VkSemaphoreImportFlagBits;
5445typedef VkFlags VkSemaphoreImportFlags;
5446
5447typedef enum VkExternalSemaphoreHandleTypeFlagBits {
5448 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT = 0x00000001,
5449 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT = 0x00000002,
5450 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT = 0x00000004,
5451 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT = 0x00000008,
5452 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT = 0x00000010,
5453 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_ZIRCON_EVENT_BIT_FUCHSIA = 0x00000080,
5454 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D11_FENCE_BIT = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
5455 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_FD_BIT,
5456 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_BIT,
5457 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT,
5458 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_D3D12_FENCE_BIT,
5459 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT_KHR = VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_SYNC_FD_BIT,
5460 VK_EXTERNAL_SEMAPHORE_HANDLE_TYPE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5461} VkExternalSemaphoreHandleTypeFlagBits;
5462typedef VkFlags VkExternalSemaphoreHandleTypeFlags;
5463
5464typedef enum VkExternalSemaphoreFeatureFlagBits {
5465 VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT = 0x00000001,
5466 VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT = 0x00000002,
5467 VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_EXPORTABLE_BIT,
5468 VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT_KHR = VK_EXTERNAL_SEMAPHORE_FEATURE_IMPORTABLE_BIT,
5469 VK_EXTERNAL_SEMAPHORE_FEATURE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
5470} VkExternalSemaphoreFeatureFlagBits;
5471typedef VkFlags VkExternalSemaphoreFeatureFlags;
5472typedef struct VkPhysicalDeviceSubgroupProperties {
5473 VkStructureType sType;
5474 void* pNext;
5475 uint32_t subgroupSize;
5476 VkShaderStageFlags supportedStages;
5477 VkSubgroupFeatureFlags supportedOperations;
5478 VkBool32 quadOperationsInAllStages;
5479} VkPhysicalDeviceSubgroupProperties;
5480
5481typedef struct VkBindBufferMemoryInfo {
5482 VkStructureType sType;
5483 const void* pNext;
5484 VkBuffer buffer;
5485 VkDeviceMemory memory;
5486 VkDeviceSize memoryOffset;
5487} VkBindBufferMemoryInfo;
5488
5489typedef struct VkBindImageMemoryInfo {
5490 VkStructureType sType;
5491 const void* pNext;
5492 VkImage image;
5493 VkDeviceMemory memory;
5494 VkDeviceSize memoryOffset;
5495} VkBindImageMemoryInfo;
5496
5497typedef struct VkPhysicalDevice16BitStorageFeatures {
5498 VkStructureType sType;
5499 void* pNext;
5500 VkBool32 storageBuffer16BitAccess;
5501 VkBool32 uniformAndStorageBuffer16BitAccess;
5502 VkBool32 storagePushConstant16;
5503 VkBool32 storageInputOutput16;
5504} VkPhysicalDevice16BitStorageFeatures;
5505
5506typedef struct VkMemoryDedicatedRequirements {
5507 VkStructureType sType;
5508 void* pNext;
5509 VkBool32 prefersDedicatedAllocation;
5510 VkBool32 requiresDedicatedAllocation;
5511} VkMemoryDedicatedRequirements;
5512
5513typedef struct VkMemoryDedicatedAllocateInfo {
5514 VkStructureType sType;
5515 const void* pNext;
5516 VkImage image;
5517 VkBuffer buffer;
5518} VkMemoryDedicatedAllocateInfo;
5519
5520typedef struct VkMemoryAllocateFlagsInfo {
5521 VkStructureType sType;
5522 const void* pNext;
5523 VkMemoryAllocateFlags flags;
5524 uint32_t deviceMask;
5525} VkMemoryAllocateFlagsInfo;
5526
5527typedef struct VkDeviceGroupRenderPassBeginInfo {
5528 VkStructureType sType;
5529 const void* pNext;
5530 uint32_t deviceMask;
5531 uint32_t deviceRenderAreaCount;
5532 const VkRect2D* pDeviceRenderAreas;
5533} VkDeviceGroupRenderPassBeginInfo;
5534
5535typedef struct VkDeviceGroupCommandBufferBeginInfo {
5536 VkStructureType sType;
5537 const void* pNext;
5538 uint32_t deviceMask;
5539} VkDeviceGroupCommandBufferBeginInfo;
5540
5541typedef struct VkDeviceGroupSubmitInfo {
5542 VkStructureType sType;
5543 const void* pNext;
5544 uint32_t waitSemaphoreCount;
5545 const uint32_t* pWaitSemaphoreDeviceIndices;
5546 uint32_t commandBufferCount;
5547 const uint32_t* pCommandBufferDeviceMasks;
5548 uint32_t signalSemaphoreCount;
5549 const uint32_t* pSignalSemaphoreDeviceIndices;
5550} VkDeviceGroupSubmitInfo;
5551
5552typedef struct VkDeviceGroupBindSparseInfo {
5553 VkStructureType sType;
5554 const void* pNext;
5555 uint32_t resourceDeviceIndex;
5556 uint32_t memoryDeviceIndex;
5557} VkDeviceGroupBindSparseInfo;
5558
5559typedef struct VkBindBufferMemoryDeviceGroupInfo {
5560 VkStructureType sType;
5561 const void* pNext;
5562 uint32_t deviceIndexCount;
5563 const uint32_t* pDeviceIndices;
5564} VkBindBufferMemoryDeviceGroupInfo;
5565
5566typedef struct VkBindImageMemoryDeviceGroupInfo {
5567 VkStructureType sType;
5568 const void* pNext;
5569 uint32_t deviceIndexCount;
5570 const uint32_t* pDeviceIndices;
5571 uint32_t splitInstanceBindRegionCount;
5572 const VkRect2D* pSplitInstanceBindRegions;
5573} VkBindImageMemoryDeviceGroupInfo;
5574
5575typedef struct VkPhysicalDeviceGroupProperties {
5576 VkStructureType sType;
5577 void* pNext;
5578 uint32_t physicalDeviceCount;
5579 VkPhysicalDevice physicalDevices[VK_MAX_DEVICE_GROUP_SIZE];
5580 VkBool32 subsetAllocation;
5581} VkPhysicalDeviceGroupProperties;
5582
5583typedef struct VkDeviceGroupDeviceCreateInfo {
5584 VkStructureType sType;
5585 const void* pNext;
5586 uint32_t physicalDeviceCount;
5587 const VkPhysicalDevice* pPhysicalDevices;
5588} VkDeviceGroupDeviceCreateInfo;
5589
5590typedef struct VkBufferMemoryRequirementsInfo2 {
5591 VkStructureType sType;
5592 const void* pNext;
5593 VkBuffer buffer;
5594} VkBufferMemoryRequirementsInfo2;
5595
5596typedef struct VkImageMemoryRequirementsInfo2 {
5597 VkStructureType sType;
5598 const void* pNext;
5599 VkImage image;
5600} VkImageMemoryRequirementsInfo2;
5601
5602typedef struct VkImageSparseMemoryRequirementsInfo2 {
5603 VkStructureType sType;
5604 const void* pNext;
5605 VkImage image;
5606} VkImageSparseMemoryRequirementsInfo2;
5607
5608typedef struct VkMemoryRequirements2 {
5609 VkStructureType sType;
5610 void* pNext;
5611 VkMemoryRequirements memoryRequirements;
5612} VkMemoryRequirements2;
5613
5614typedef struct VkSparseImageMemoryRequirements2 {
5615 VkStructureType sType;
5616 void* pNext;
5617 VkSparseImageMemoryRequirements memoryRequirements;
5618} VkSparseImageMemoryRequirements2;
5619
5620typedef struct VkPhysicalDeviceFeatures2 {
5621 VkStructureType sType;
5622 void* pNext;
5623 VkPhysicalDeviceFeatures features;
5624} VkPhysicalDeviceFeatures2;
5625
5626typedef struct VkPhysicalDeviceProperties2 {
5627 VkStructureType sType;
5628 void* pNext;
5629 VkPhysicalDeviceProperties properties;
5630} VkPhysicalDeviceProperties2;
5631
5632typedef struct VkFormatProperties2 {
5633 VkStructureType sType;
5634 void* pNext;
5635 VkFormatProperties formatProperties;
5636} VkFormatProperties2;
5637
5638typedef struct VkImageFormatProperties2 {
5639 VkStructureType sType;
5640 void* pNext;
5641 VkImageFormatProperties imageFormatProperties;
5642} VkImageFormatProperties2;
5643
5644typedef struct VkPhysicalDeviceImageFormatInfo2 {
5645 VkStructureType sType;
5646 const void* pNext;
5647 VkFormat format;
5648 VkImageType type;
5649 VkImageTiling tiling;
5650 VkImageUsageFlags usage;
5651 VkImageCreateFlags flags;
5652} VkPhysicalDeviceImageFormatInfo2;
5653
5654typedef struct VkQueueFamilyProperties2 {
5655 VkStructureType sType;
5656 void* pNext;
5657 VkQueueFamilyProperties queueFamilyProperties;
5658} VkQueueFamilyProperties2;
5659
5660typedef struct VkPhysicalDeviceMemoryProperties2 {
5661 VkStructureType sType;
5662 void* pNext;
5663 VkPhysicalDeviceMemoryProperties memoryProperties;
5664} VkPhysicalDeviceMemoryProperties2;
5665
5666typedef struct VkSparseImageFormatProperties2 {
5667 VkStructureType sType;
5668 void* pNext;
5669 VkSparseImageFormatProperties properties;
5670} VkSparseImageFormatProperties2;
5671
5672typedef struct VkPhysicalDeviceSparseImageFormatInfo2 {
5673 VkStructureType sType;
5674 const void* pNext;
5675 VkFormat format;
5676 VkImageType type;
5677 VkSampleCountFlagBits samples;
5678 VkImageUsageFlags usage;
5679 VkImageTiling tiling;
5680} VkPhysicalDeviceSparseImageFormatInfo2;
5681
5682typedef struct VkPhysicalDevicePointClippingProperties {
5683 VkStructureType sType;
5684 void* pNext;
5685 VkPointClippingBehavior pointClippingBehavior;
5686} VkPhysicalDevicePointClippingProperties;
5687
5688typedef struct VkInputAttachmentAspectReference {
5689 uint32_t subpass;
5690 uint32_t inputAttachmentIndex;
5691 VkImageAspectFlags aspectMask;
5692} VkInputAttachmentAspectReference;
5693
5694typedef struct VkRenderPassInputAttachmentAspectCreateInfo {
5695 VkStructureType sType;
5696 const void* pNext;
5697 uint32_t aspectReferenceCount;
5698 const VkInputAttachmentAspectReference* pAspectReferences;
5699} VkRenderPassInputAttachmentAspectCreateInfo;
5700
5701typedef struct VkImageViewUsageCreateInfo {
5702 VkStructureType sType;
5703 const void* pNext;
5704 VkImageUsageFlags usage;
5705} VkImageViewUsageCreateInfo;
5706
5707typedef struct VkPipelineTessellationDomainOriginStateCreateInfo {
5708 VkStructureType sType;
5709 const void* pNext;
5710 VkTessellationDomainOrigin domainOrigin;
5711} VkPipelineTessellationDomainOriginStateCreateInfo;
5712
5713typedef struct VkRenderPassMultiviewCreateInfo {
5714 VkStructureType sType;
5715 const void* pNext;
5716 uint32_t subpassCount;
5717 const uint32_t* pViewMasks;
5718 uint32_t dependencyCount;
5719 const int32_t* pViewOffsets;
5720 uint32_t correlationMaskCount;
5721 const uint32_t* pCorrelationMasks;
5722} VkRenderPassMultiviewCreateInfo;
5723
5724typedef struct VkPhysicalDeviceMultiviewFeatures {
5725 VkStructureType sType;
5726 void* pNext;
5727 VkBool32 multiview;
5728 VkBool32 multiviewGeometryShader;
5729 VkBool32 multiviewTessellationShader;
5730} VkPhysicalDeviceMultiviewFeatures;
5731
5732typedef struct VkPhysicalDeviceMultiviewProperties {
5733 VkStructureType sType;
5734 void* pNext;
5735 uint32_t maxMultiviewViewCount;
5736 uint32_t maxMultiviewInstanceIndex;
5737} VkPhysicalDeviceMultiviewProperties;
5738
5739typedef struct VkPhysicalDeviceVariablePointersFeatures {
5740 VkStructureType sType;
5741 void* pNext;
5742 VkBool32 variablePointersStorageBuffer;
5743 VkBool32 variablePointers;
5744} VkPhysicalDeviceVariablePointersFeatures;
5745
5746typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeatures;
5747
5748typedef struct VkPhysicalDeviceProtectedMemoryFeatures {
5749 VkStructureType sType;
5750 void* pNext;
5751 VkBool32 protectedMemory;
5752} VkPhysicalDeviceProtectedMemoryFeatures;
5753
5754typedef struct VkPhysicalDeviceProtectedMemoryProperties {
5755 VkStructureType sType;
5756 void* pNext;
5757 VkBool32 protectedNoFault;
5758} VkPhysicalDeviceProtectedMemoryProperties;
5759
5760typedef struct VkDeviceQueueInfo2 {
5761 VkStructureType sType;
5762 const void* pNext;
5763 VkDeviceQueueCreateFlags flags;
5764 uint32_t queueFamilyIndex;
5765 uint32_t queueIndex;
5766} VkDeviceQueueInfo2;
5767
5768typedef struct VkProtectedSubmitInfo {
5769 VkStructureType sType;
5770 const void* pNext;
5771 VkBool32 protectedSubmit;
5772} VkProtectedSubmitInfo;
5773
5774typedef struct VkSamplerYcbcrConversionCreateInfo {
5775 VkStructureType sType;
5776 const void* pNext;
5777 VkFormat format;
5778 VkSamplerYcbcrModelConversion ycbcrModel;
5779 VkSamplerYcbcrRange ycbcrRange;
5780 VkComponentMapping components;
5781 VkChromaLocation xChromaOffset;
5782 VkChromaLocation yChromaOffset;
5783 VkFilter chromaFilter;
5784 VkBool32 forceExplicitReconstruction;
5785} VkSamplerYcbcrConversionCreateInfo;
5786
5787typedef struct VkSamplerYcbcrConversionInfo {
5788 VkStructureType sType;
5789 const void* pNext;
5790 VkSamplerYcbcrConversion conversion;
5791} VkSamplerYcbcrConversionInfo;
5792
5793typedef struct VkBindImagePlaneMemoryInfo {
5794 VkStructureType sType;
5795 const void* pNext;
5796 VkImageAspectFlagBits planeAspect;
5797} VkBindImagePlaneMemoryInfo;
5798
5799typedef struct VkImagePlaneMemoryRequirementsInfo {
5800 VkStructureType sType;
5801 const void* pNext;
5802 VkImageAspectFlagBits planeAspect;
5803} VkImagePlaneMemoryRequirementsInfo;
5804
5805typedef struct VkPhysicalDeviceSamplerYcbcrConversionFeatures {
5806 VkStructureType sType;
5807 void* pNext;
5808 VkBool32 samplerYcbcrConversion;
5809} VkPhysicalDeviceSamplerYcbcrConversionFeatures;
5810
5811typedef struct VkSamplerYcbcrConversionImageFormatProperties {
5812 VkStructureType sType;
5813 void* pNext;
5814 uint32_t combinedImageSamplerDescriptorCount;
5815} VkSamplerYcbcrConversionImageFormatProperties;
5816
5817typedef struct VkDescriptorUpdateTemplateEntry {
5818 uint32_t dstBinding;
5819 uint32_t dstArrayElement;
5820 uint32_t descriptorCount;
5821 VkDescriptorType descriptorType;
5822 size_t offset;
5823 size_t stride;
5824} VkDescriptorUpdateTemplateEntry;
5825
5826typedef struct VkDescriptorUpdateTemplateCreateInfo {
5827 VkStructureType sType;
5828 const void* pNext;
5829 VkDescriptorUpdateTemplateCreateFlags flags;
5830 uint32_t descriptorUpdateEntryCount;
5831 const VkDescriptorUpdateTemplateEntry* pDescriptorUpdateEntries;
5832 VkDescriptorUpdateTemplateType templateType;
5833 VkDescriptorSetLayout descriptorSetLayout;
5834 VkPipelineBindPoint pipelineBindPoint;
5835 VkPipelineLayout pipelineLayout;
5836 uint32_t set;
5837} VkDescriptorUpdateTemplateCreateInfo;
5838
5839typedef struct VkExternalMemoryProperties {
5840 VkExternalMemoryFeatureFlags externalMemoryFeatures;
5841 VkExternalMemoryHandleTypeFlags exportFromImportedHandleTypes;
5842 VkExternalMemoryHandleTypeFlags compatibleHandleTypes;
5843} VkExternalMemoryProperties;
5844
5845typedef struct VkPhysicalDeviceExternalImageFormatInfo {
5846 VkStructureType sType;
5847 const void* pNext;
5848 VkExternalMemoryHandleTypeFlagBits handleType;
5849} VkPhysicalDeviceExternalImageFormatInfo;
5850
5851typedef struct VkExternalImageFormatProperties {
5852 VkStructureType sType;
5853 void* pNext;
5854 VkExternalMemoryProperties externalMemoryProperties;
5855} VkExternalImageFormatProperties;
5856
5857typedef struct VkPhysicalDeviceExternalBufferInfo {
5858 VkStructureType sType;
5859 const void* pNext;
5860 VkBufferCreateFlags flags;
5861 VkBufferUsageFlags usage;
5862 VkExternalMemoryHandleTypeFlagBits handleType;
5863} VkPhysicalDeviceExternalBufferInfo;
5864
5865typedef struct VkExternalBufferProperties {
5866 VkStructureType sType;
5867 void* pNext;
5868 VkExternalMemoryProperties externalMemoryProperties;
5869} VkExternalBufferProperties;
5870
5871typedef struct VkPhysicalDeviceIDProperties {
5872 VkStructureType sType;
5873 void* pNext;
5874 uint8_t deviceUUID[VK_UUID_SIZE];
5875 uint8_t driverUUID[VK_UUID_SIZE];
5876 uint8_t deviceLUID[VK_LUID_SIZE];
5877 uint32_t deviceNodeMask;
5878 VkBool32 deviceLUIDValid;
5879} VkPhysicalDeviceIDProperties;
5880
5881typedef struct VkExternalMemoryImageCreateInfo {
5882 VkStructureType sType;
5883 const void* pNext;
5884 VkExternalMemoryHandleTypeFlags handleTypes;
5885} VkExternalMemoryImageCreateInfo;
5886
5887typedef struct VkExternalMemoryBufferCreateInfo {
5888 VkStructureType sType;
5889 const void* pNext;
5890 VkExternalMemoryHandleTypeFlags handleTypes;
5891} VkExternalMemoryBufferCreateInfo;
5892
5893typedef struct VkExportMemoryAllocateInfo {
5894 VkStructureType sType;
5895 const void* pNext;
5896 VkExternalMemoryHandleTypeFlags handleTypes;
5897} VkExportMemoryAllocateInfo;
5898
5899typedef struct VkPhysicalDeviceExternalFenceInfo {
5900 VkStructureType sType;
5901 const void* pNext;
5902 VkExternalFenceHandleTypeFlagBits handleType;
5903} VkPhysicalDeviceExternalFenceInfo;
5904
5905typedef struct VkExternalFenceProperties {
5906 VkStructureType sType;
5907 void* pNext;
5908 VkExternalFenceHandleTypeFlags exportFromImportedHandleTypes;
5909 VkExternalFenceHandleTypeFlags compatibleHandleTypes;
5910 VkExternalFenceFeatureFlags externalFenceFeatures;
5911} VkExternalFenceProperties;
5912
5913typedef struct VkExportFenceCreateInfo {
5914 VkStructureType sType;
5915 const void* pNext;
5916 VkExternalFenceHandleTypeFlags handleTypes;
5917} VkExportFenceCreateInfo;
5918
5919typedef struct VkExportSemaphoreCreateInfo {
5920 VkStructureType sType;
5921 const void* pNext;
5922 VkExternalSemaphoreHandleTypeFlags handleTypes;
5923} VkExportSemaphoreCreateInfo;
5924
5925typedef struct VkPhysicalDeviceExternalSemaphoreInfo {
5926 VkStructureType sType;
5927 const void* pNext;
5928 VkExternalSemaphoreHandleTypeFlagBits handleType;
5929} VkPhysicalDeviceExternalSemaphoreInfo;
5930
5931typedef struct VkExternalSemaphoreProperties {
5932 VkStructureType sType;
5933 void* pNext;
5934 VkExternalSemaphoreHandleTypeFlags exportFromImportedHandleTypes;
5935 VkExternalSemaphoreHandleTypeFlags compatibleHandleTypes;
5936 VkExternalSemaphoreFeatureFlags externalSemaphoreFeatures;
5937} VkExternalSemaphoreProperties;
5938
5939typedef struct VkPhysicalDeviceMaintenance3Properties {
5940 VkStructureType sType;
5941 void* pNext;
5942 uint32_t maxPerSetDescriptors;
5943 VkDeviceSize maxMemoryAllocationSize;
5944} VkPhysicalDeviceMaintenance3Properties;
5945
5946typedef struct VkDescriptorSetLayoutSupport {
5947 VkStructureType sType;
5948 void* pNext;
5949 VkBool32 supported;
5950} VkDescriptorSetLayoutSupport;
5951
5952typedef struct VkPhysicalDeviceShaderDrawParametersFeatures {
5953 VkStructureType sType;
5954 void* pNext;
5955 VkBool32 shaderDrawParameters;
5956} VkPhysicalDeviceShaderDrawParametersFeatures;
5957
5958typedef VkPhysicalDeviceShaderDrawParametersFeatures VkPhysicalDeviceShaderDrawParameterFeatures;
5959
5960typedef VkResult (VKAPI_PTR *PFN_vkEnumerateInstanceVersion)(uint32_t* pApiVersion);
5961typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos);
5962typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos);
5963typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeatures)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
5964typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMask)(VkCommandBuffer commandBuffer, uint32_t deviceMask);
5965typedef 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);
5966typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroups)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
5967typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
5968typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
5969typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
5970typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures);
5971typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties);
5972typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties);
5973typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties);
5974typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties);
5975typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
5976typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties);
5977typedef void (VKAPI_PTR *PFN_vkTrimCommandPool)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
5978typedef void (VKAPI_PTR *PFN_vkGetDeviceQueue2)(VkDevice device, const VkDeviceQueueInfo2* pQueueInfo, VkQueue* pQueue);
5979typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversion)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion);
5980typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversion)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator);
5981typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplate)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
5982typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplate)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
5983typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplate)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData);
5984typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties);
5985typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFenceProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties);
5986typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphoreProperties)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
5987typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupport)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport);
5988
5989#ifndef VK_NO_PROTOTYPES
5990VKAPI_ATTR VkResult VKAPI_CALL vkEnumerateInstanceVersion(
5991 uint32_t* pApiVersion);
5992
5993VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2(
5994 VkDevice device,
5995 uint32_t bindInfoCount,
5996 const VkBindBufferMemoryInfo* pBindInfos);
5997
5998VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2(
5999 VkDevice device,
6000 uint32_t bindInfoCount,
6001 const VkBindImageMemoryInfo* pBindInfos);
6002
6003VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeatures(
6004 VkDevice device,
6005 uint32_t heapIndex,
6006 uint32_t localDeviceIndex,
6007 uint32_t remoteDeviceIndex,
6008 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
6009
6010VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMask(
6011 VkCommandBuffer commandBuffer,
6012 uint32_t deviceMask);
6013
6014VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBase(
6015 VkCommandBuffer commandBuffer,
6016 uint32_t baseGroupX,
6017 uint32_t baseGroupY,
6018 uint32_t baseGroupZ,
6019 uint32_t groupCountX,
6020 uint32_t groupCountY,
6021 uint32_t groupCountZ);
6022
6023VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroups(
6024 VkInstance instance,
6025 uint32_t* pPhysicalDeviceGroupCount,
6026 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
6027
6028VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2(
6029 VkDevice device,
6030 const VkImageMemoryRequirementsInfo2* pInfo,
6031 VkMemoryRequirements2* pMemoryRequirements);
6032
6033VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2(
6034 VkDevice device,
6035 const VkBufferMemoryRequirementsInfo2* pInfo,
6036 VkMemoryRequirements2* pMemoryRequirements);
6037
6038VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2(
6039 VkDevice device,
6040 const VkImageSparseMemoryRequirementsInfo2* pInfo,
6041 uint32_t* pSparseMemoryRequirementCount,
6042 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
6043
6044VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2(
6045 VkPhysicalDevice physicalDevice,
6046 VkPhysicalDeviceFeatures2* pFeatures);
6047
6048VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2(
6049 VkPhysicalDevice physicalDevice,
6050 VkPhysicalDeviceProperties2* pProperties);
6051
6052VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2(
6053 VkPhysicalDevice physicalDevice,
6054 VkFormat format,
6055 VkFormatProperties2* pFormatProperties);
6056
6057VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2(
6058 VkPhysicalDevice physicalDevice,
6059 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
6060 VkImageFormatProperties2* pImageFormatProperties);
6061
6062VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2(
6063 VkPhysicalDevice physicalDevice,
6064 uint32_t* pQueueFamilyPropertyCount,
6065 VkQueueFamilyProperties2* pQueueFamilyProperties);
6066
6067VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2(
6068 VkPhysicalDevice physicalDevice,
6069 VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
6070
6071VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2(
6072 VkPhysicalDevice physicalDevice,
6073 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
6074 uint32_t* pPropertyCount,
6075 VkSparseImageFormatProperties2* pProperties);
6076
6077VKAPI_ATTR void VKAPI_CALL vkTrimCommandPool(
6078 VkDevice device,
6079 VkCommandPool commandPool,
6080 VkCommandPoolTrimFlags flags);
6081
6082VKAPI_ATTR void VKAPI_CALL vkGetDeviceQueue2(
6083 VkDevice device,
6084 const VkDeviceQueueInfo2* pQueueInfo,
6085 VkQueue* pQueue);
6086
6087VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversion(
6088 VkDevice device,
6089 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
6090 const VkAllocationCallbacks* pAllocator,
6091 VkSamplerYcbcrConversion* pYcbcrConversion);
6092
6093VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversion(
6094 VkDevice device,
6095 VkSamplerYcbcrConversion ycbcrConversion,
6096 const VkAllocationCallbacks* pAllocator);
6097
6098VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplate(
6099 VkDevice device,
6100 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
6101 const VkAllocationCallbacks* pAllocator,
6102 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
6103
6104VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplate(
6105 VkDevice device,
6106 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
6107 const VkAllocationCallbacks* pAllocator);
6108
6109VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplate(
6110 VkDevice device,
6111 VkDescriptorSet descriptorSet,
6112 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
6113 const void* pData);
6114
6115VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferProperties(
6116 VkPhysicalDevice physicalDevice,
6117 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
6118 VkExternalBufferProperties* pExternalBufferProperties);
6119
6120VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFenceProperties(
6121 VkPhysicalDevice physicalDevice,
6122 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
6123 VkExternalFenceProperties* pExternalFenceProperties);
6124
6125VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphoreProperties(
6126 VkPhysicalDevice physicalDevice,
6127 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
6128 VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
6129
6130VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupport(
6131 VkDevice device,
6132 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
6133 VkDescriptorSetLayoutSupport* pSupport);
6134#endif
6135
6136
6137// VK_VERSION_1_2 is a preprocessor guard. Do not pass it to API calls.
6138#define VK_VERSION_1_2 1
6139// Vulkan 1.2 version number
6140#define VK_API_VERSION_1_2 VK_MAKE_API_VERSION(0, 1, 2, 0)// Patch version should always be set to 0
6141
6142#define VK_MAX_DRIVER_NAME_SIZE 256U
6143#define VK_MAX_DRIVER_INFO_SIZE 256U
6144
6145typedef enum VkDriverId {
6146 VK_DRIVER_ID_AMD_PROPRIETARY = 1,
6147 VK_DRIVER_ID_AMD_OPEN_SOURCE = 2,
6148 VK_DRIVER_ID_MESA_RADV = 3,
6149 VK_DRIVER_ID_NVIDIA_PROPRIETARY = 4,
6150 VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS = 5,
6151 VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA = 6,
6152 VK_DRIVER_ID_IMAGINATION_PROPRIETARY = 7,
6153 VK_DRIVER_ID_QUALCOMM_PROPRIETARY = 8,
6154 VK_DRIVER_ID_ARM_PROPRIETARY = 9,
6155 VK_DRIVER_ID_GOOGLE_SWIFTSHADER = 10,
6156 VK_DRIVER_ID_GGP_PROPRIETARY = 11,
6157 VK_DRIVER_ID_BROADCOM_PROPRIETARY = 12,
6158 VK_DRIVER_ID_MESA_LLVMPIPE = 13,
6159 VK_DRIVER_ID_MOLTENVK = 14,
6160 VK_DRIVER_ID_COREAVI_PROPRIETARY = 15,
6161 VK_DRIVER_ID_JUICE_PROPRIETARY = 16,
6162 VK_DRIVER_ID_VERISILICON_PROPRIETARY = 17,
6163 VK_DRIVER_ID_MESA_TURNIP = 18,
6164 VK_DRIVER_ID_MESA_V3DV = 19,
6165 VK_DRIVER_ID_MESA_PANVK = 20,
6166 VK_DRIVER_ID_SAMSUNG_PROPRIETARY = 21,
6167 VK_DRIVER_ID_MESA_VENUS = 22,
6168 VK_DRIVER_ID_MESA_DOZEN = 23,
6169 VK_DRIVER_ID_MESA_NVK = 24,
6170 VK_DRIVER_ID_IMAGINATION_OPEN_SOURCE_MESA = 25,
6171 VK_DRIVER_ID_MESA_HONEYKRISP = 26,
6172 VK_DRIVER_ID_VULKAN_SC_EMULATION_ON_VULKAN = 27,
6173 VK_DRIVER_ID_AMD_PROPRIETARY_KHR = VK_DRIVER_ID_AMD_PROPRIETARY,
6174 VK_DRIVER_ID_AMD_OPEN_SOURCE_KHR = VK_DRIVER_ID_AMD_OPEN_SOURCE,
6175 VK_DRIVER_ID_MESA_RADV_KHR = VK_DRIVER_ID_MESA_RADV,
6176 VK_DRIVER_ID_NVIDIA_PROPRIETARY_KHR = VK_DRIVER_ID_NVIDIA_PROPRIETARY,
6177 VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS_KHR = VK_DRIVER_ID_INTEL_PROPRIETARY_WINDOWS,
6178 VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA_KHR = VK_DRIVER_ID_INTEL_OPEN_SOURCE_MESA,
6179 VK_DRIVER_ID_IMAGINATION_PROPRIETARY_KHR = VK_DRIVER_ID_IMAGINATION_PROPRIETARY,
6180 VK_DRIVER_ID_QUALCOMM_PROPRIETARY_KHR = VK_DRIVER_ID_QUALCOMM_PROPRIETARY,
6181 VK_DRIVER_ID_ARM_PROPRIETARY_KHR = VK_DRIVER_ID_ARM_PROPRIETARY,
6182 VK_DRIVER_ID_GOOGLE_SWIFTSHADER_KHR = VK_DRIVER_ID_GOOGLE_SWIFTSHADER,
6183 VK_DRIVER_ID_GGP_PROPRIETARY_KHR = VK_DRIVER_ID_GGP_PROPRIETARY,
6184 VK_DRIVER_ID_BROADCOM_PROPRIETARY_KHR = VK_DRIVER_ID_BROADCOM_PROPRIETARY,
6185 VK_DRIVER_ID_MAX_ENUM = 0x7FFFFFFF
6186} VkDriverId;
6187
6188typedef enum VkShaderFloatControlsIndependence {
6189 VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY = 0,
6190 VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL = 1,
6191 VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE = 2,
6192 VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_32_BIT_ONLY,
6193 VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_ALL,
6194 VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE_KHR = VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_NONE,
6195 VK_SHADER_FLOAT_CONTROLS_INDEPENDENCE_MAX_ENUM = 0x7FFFFFFF
6196} VkShaderFloatControlsIndependence;
6197
6198typedef enum VkSamplerReductionMode {
6199 VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE = 0,
6200 VK_SAMPLER_REDUCTION_MODE_MIN = 1,
6201 VK_SAMPLER_REDUCTION_MODE_MAX = 2,
6202 VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_RANGECLAMP_QCOM = 1000521000,
6203 VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE_EXT = VK_SAMPLER_REDUCTION_MODE_WEIGHTED_AVERAGE,
6204 VK_SAMPLER_REDUCTION_MODE_MIN_EXT = VK_SAMPLER_REDUCTION_MODE_MIN,
6205 VK_SAMPLER_REDUCTION_MODE_MAX_EXT = VK_SAMPLER_REDUCTION_MODE_MAX,
6206 VK_SAMPLER_REDUCTION_MODE_MAX_ENUM = 0x7FFFFFFF
6207} VkSamplerReductionMode;
6208
6209typedef enum VkSemaphoreType {
6210 VK_SEMAPHORE_TYPE_BINARY = 0,
6211 VK_SEMAPHORE_TYPE_TIMELINE = 1,
6212 VK_SEMAPHORE_TYPE_BINARY_KHR = VK_SEMAPHORE_TYPE_BINARY,
6213 VK_SEMAPHORE_TYPE_TIMELINE_KHR = VK_SEMAPHORE_TYPE_TIMELINE,
6214 VK_SEMAPHORE_TYPE_MAX_ENUM = 0x7FFFFFFF
6215} VkSemaphoreType;
6216
6217typedef enum VkResolveModeFlagBits {
6218 VK_RESOLVE_MODE_NONE = 0,
6219 VK_RESOLVE_MODE_SAMPLE_ZERO_BIT = 0x00000001,
6220 VK_RESOLVE_MODE_AVERAGE_BIT = 0x00000002,
6221 VK_RESOLVE_MODE_MIN_BIT = 0x00000004,
6222 VK_RESOLVE_MODE_MAX_BIT = 0x00000008,
6223 VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID = 0x00000010,
6224 VK_RESOLVE_MODE_NONE_KHR = VK_RESOLVE_MODE_NONE,
6225 VK_RESOLVE_MODE_SAMPLE_ZERO_BIT_KHR = VK_RESOLVE_MODE_SAMPLE_ZERO_BIT,
6226 VK_RESOLVE_MODE_AVERAGE_BIT_KHR = VK_RESOLVE_MODE_AVERAGE_BIT,
6227 VK_RESOLVE_MODE_MIN_BIT_KHR = VK_RESOLVE_MODE_MIN_BIT,
6228 VK_RESOLVE_MODE_MAX_BIT_KHR = VK_RESOLVE_MODE_MAX_BIT,
6229 // VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID is a deprecated alias
6230 VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_ANDROID = VK_RESOLVE_MODE_EXTERNAL_FORMAT_DOWNSAMPLE_BIT_ANDROID,
6231 VK_RESOLVE_MODE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6232} VkResolveModeFlagBits;
6233typedef VkFlags VkResolveModeFlags;
6234
6235typedef enum VkDescriptorBindingFlagBits {
6236 VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT = 0x00000001,
6237 VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT = 0x00000002,
6238 VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT = 0x00000004,
6239 VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT = 0x00000008,
6240 VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT_EXT = VK_DESCRIPTOR_BINDING_UPDATE_AFTER_BIND_BIT,
6241 VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT_EXT = VK_DESCRIPTOR_BINDING_UPDATE_UNUSED_WHILE_PENDING_BIT,
6242 VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT_EXT = VK_DESCRIPTOR_BINDING_PARTIALLY_BOUND_BIT,
6243 VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT_EXT = VK_DESCRIPTOR_BINDING_VARIABLE_DESCRIPTOR_COUNT_BIT,
6244 VK_DESCRIPTOR_BINDING_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6245} VkDescriptorBindingFlagBits;
6246typedef VkFlags VkDescriptorBindingFlags;
6247
6248typedef enum VkSemaphoreWaitFlagBits {
6249 VK_SEMAPHORE_WAIT_ANY_BIT = 0x00000001,
6250 VK_SEMAPHORE_WAIT_ANY_BIT_KHR = VK_SEMAPHORE_WAIT_ANY_BIT,
6251 VK_SEMAPHORE_WAIT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6252} VkSemaphoreWaitFlagBits;
6253typedef VkFlags VkSemaphoreWaitFlags;
6254typedef struct VkPhysicalDeviceVulkan11Features {
6255 VkStructureType sType;
6256 void* pNext;
6257 VkBool32 storageBuffer16BitAccess;
6258 VkBool32 uniformAndStorageBuffer16BitAccess;
6259 VkBool32 storagePushConstant16;
6260 VkBool32 storageInputOutput16;
6261 VkBool32 multiview;
6262 VkBool32 multiviewGeometryShader;
6263 VkBool32 multiviewTessellationShader;
6264 VkBool32 variablePointersStorageBuffer;
6265 VkBool32 variablePointers;
6266 VkBool32 protectedMemory;
6267 VkBool32 samplerYcbcrConversion;
6268 VkBool32 shaderDrawParameters;
6269} VkPhysicalDeviceVulkan11Features;
6270
6271typedef struct VkPhysicalDeviceVulkan11Properties {
6272 VkStructureType sType;
6273 void* pNext;
6274 uint8_t deviceUUID[VK_UUID_SIZE];
6275 uint8_t driverUUID[VK_UUID_SIZE];
6276 uint8_t deviceLUID[VK_LUID_SIZE];
6277 uint32_t deviceNodeMask;
6278 VkBool32 deviceLUIDValid;
6279 uint32_t subgroupSize;
6280 VkShaderStageFlags subgroupSupportedStages;
6281 VkSubgroupFeatureFlags subgroupSupportedOperations;
6282 VkBool32 subgroupQuadOperationsInAllStages;
6283 VkPointClippingBehavior pointClippingBehavior;
6284 uint32_t maxMultiviewViewCount;
6285 uint32_t maxMultiviewInstanceIndex;
6286 VkBool32 protectedNoFault;
6287 uint32_t maxPerSetDescriptors;
6288 VkDeviceSize maxMemoryAllocationSize;
6289} VkPhysicalDeviceVulkan11Properties;
6290
6291typedef struct VkPhysicalDeviceVulkan12Features {
6292 VkStructureType sType;
6293 void* pNext;
6294 VkBool32 samplerMirrorClampToEdge;
6295 VkBool32 drawIndirectCount;
6296 VkBool32 storageBuffer8BitAccess;
6297 VkBool32 uniformAndStorageBuffer8BitAccess;
6298 VkBool32 storagePushConstant8;
6299 VkBool32 shaderBufferInt64Atomics;
6300 VkBool32 shaderSharedInt64Atomics;
6301 VkBool32 shaderFloat16;
6302 VkBool32 shaderInt8;
6303 VkBool32 descriptorIndexing;
6304 VkBool32 shaderInputAttachmentArrayDynamicIndexing;
6305 VkBool32 shaderUniformTexelBufferArrayDynamicIndexing;
6306 VkBool32 shaderStorageTexelBufferArrayDynamicIndexing;
6307 VkBool32 shaderUniformBufferArrayNonUniformIndexing;
6308 VkBool32 shaderSampledImageArrayNonUniformIndexing;
6309 VkBool32 shaderStorageBufferArrayNonUniformIndexing;
6310 VkBool32 shaderStorageImageArrayNonUniformIndexing;
6311 VkBool32 shaderInputAttachmentArrayNonUniformIndexing;
6312 VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing;
6313 VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing;
6314 VkBool32 descriptorBindingUniformBufferUpdateAfterBind;
6315 VkBool32 descriptorBindingSampledImageUpdateAfterBind;
6316 VkBool32 descriptorBindingStorageImageUpdateAfterBind;
6317 VkBool32 descriptorBindingStorageBufferUpdateAfterBind;
6318 VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind;
6319 VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind;
6320 VkBool32 descriptorBindingUpdateUnusedWhilePending;
6321 VkBool32 descriptorBindingPartiallyBound;
6322 VkBool32 descriptorBindingVariableDescriptorCount;
6323 VkBool32 runtimeDescriptorArray;
6324 VkBool32 samplerFilterMinmax;
6325 VkBool32 scalarBlockLayout;
6326 VkBool32 imagelessFramebuffer;
6327 VkBool32 uniformBufferStandardLayout;
6328 VkBool32 shaderSubgroupExtendedTypes;
6329 VkBool32 separateDepthStencilLayouts;
6330 VkBool32 hostQueryReset;
6331 VkBool32 timelineSemaphore;
6332 VkBool32 bufferDeviceAddress;
6333 VkBool32 bufferDeviceAddressCaptureReplay;
6334 VkBool32 bufferDeviceAddressMultiDevice;
6335 VkBool32 vulkanMemoryModel;
6336 VkBool32 vulkanMemoryModelDeviceScope;
6337 VkBool32 vulkanMemoryModelAvailabilityVisibilityChains;
6338 VkBool32 shaderOutputViewportIndex;
6339 VkBool32 shaderOutputLayer;
6340 VkBool32 subgroupBroadcastDynamicId;
6341} VkPhysicalDeviceVulkan12Features;
6342
6343typedef struct VkConformanceVersion {
6344 uint8_t major;
6345 uint8_t minor;
6346 uint8_t subminor;
6347 uint8_t patch;
6348} VkConformanceVersion;
6349
6350typedef struct VkPhysicalDeviceVulkan12Properties {
6351 VkStructureType sType;
6352 void* pNext;
6353 VkDriverId driverID;
6354 char driverName[VK_MAX_DRIVER_NAME_SIZE];
6355 char driverInfo[VK_MAX_DRIVER_INFO_SIZE];
6356 VkConformanceVersion conformanceVersion;
6357 VkShaderFloatControlsIndependence denormBehaviorIndependence;
6358 VkShaderFloatControlsIndependence roundingModeIndependence;
6359 VkBool32 shaderSignedZeroInfNanPreserveFloat16;
6360 VkBool32 shaderSignedZeroInfNanPreserveFloat32;
6361 VkBool32 shaderSignedZeroInfNanPreserveFloat64;
6362 VkBool32 shaderDenormPreserveFloat16;
6363 VkBool32 shaderDenormPreserveFloat32;
6364 VkBool32 shaderDenormPreserveFloat64;
6365 VkBool32 shaderDenormFlushToZeroFloat16;
6366 VkBool32 shaderDenormFlushToZeroFloat32;
6367 VkBool32 shaderDenormFlushToZeroFloat64;
6368 VkBool32 shaderRoundingModeRTEFloat16;
6369 VkBool32 shaderRoundingModeRTEFloat32;
6370 VkBool32 shaderRoundingModeRTEFloat64;
6371 VkBool32 shaderRoundingModeRTZFloat16;
6372 VkBool32 shaderRoundingModeRTZFloat32;
6373 VkBool32 shaderRoundingModeRTZFloat64;
6374 uint32_t maxUpdateAfterBindDescriptorsInAllPools;
6375 VkBool32 shaderUniformBufferArrayNonUniformIndexingNative;
6376 VkBool32 shaderSampledImageArrayNonUniformIndexingNative;
6377 VkBool32 shaderStorageBufferArrayNonUniformIndexingNative;
6378 VkBool32 shaderStorageImageArrayNonUniformIndexingNative;
6379 VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative;
6380 VkBool32 robustBufferAccessUpdateAfterBind;
6381 VkBool32 quadDivergentImplicitLod;
6382 uint32_t maxPerStageDescriptorUpdateAfterBindSamplers;
6383 uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers;
6384 uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers;
6385 uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages;
6386 uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages;
6387 uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments;
6388 uint32_t maxPerStageUpdateAfterBindResources;
6389 uint32_t maxDescriptorSetUpdateAfterBindSamplers;
6390 uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers;
6391 uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
6392 uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers;
6393 uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
6394 uint32_t maxDescriptorSetUpdateAfterBindSampledImages;
6395 uint32_t maxDescriptorSetUpdateAfterBindStorageImages;
6396 uint32_t maxDescriptorSetUpdateAfterBindInputAttachments;
6397 VkResolveModeFlags supportedDepthResolveModes;
6398 VkResolveModeFlags supportedStencilResolveModes;
6399 VkBool32 independentResolveNone;
6400 VkBool32 independentResolve;
6401 VkBool32 filterMinmaxSingleComponentFormats;
6402 VkBool32 filterMinmaxImageComponentMapping;
6403 uint64_t maxTimelineSemaphoreValueDifference;
6404 VkSampleCountFlags framebufferIntegerColorSampleCounts;
6405} VkPhysicalDeviceVulkan12Properties;
6406
6407typedef struct VkImageFormatListCreateInfo {
6408 VkStructureType sType;
6409 const void* pNext;
6410 uint32_t viewFormatCount;
6411 const VkFormat* pViewFormats;
6412} VkImageFormatListCreateInfo;
6413
6414typedef struct VkAttachmentDescription2 {
6415 VkStructureType sType;
6416 const void* pNext;
6417 VkAttachmentDescriptionFlags flags;
6418 VkFormat format;
6419 VkSampleCountFlagBits samples;
6420 VkAttachmentLoadOp loadOp;
6421 VkAttachmentStoreOp storeOp;
6422 VkAttachmentLoadOp stencilLoadOp;
6423 VkAttachmentStoreOp stencilStoreOp;
6424 VkImageLayout initialLayout;
6425 VkImageLayout finalLayout;
6426} VkAttachmentDescription2;
6427
6428typedef struct VkAttachmentReference2 {
6429 VkStructureType sType;
6430 const void* pNext;
6431 uint32_t attachment;
6432 VkImageLayout layout;
6433 VkImageAspectFlags aspectMask;
6434} VkAttachmentReference2;
6435
6436typedef struct VkSubpassDescription2 {
6437 VkStructureType sType;
6438 const void* pNext;
6439 VkSubpassDescriptionFlags flags;
6440 VkPipelineBindPoint pipelineBindPoint;
6441 uint32_t viewMask;
6442 uint32_t inputAttachmentCount;
6443 const VkAttachmentReference2* pInputAttachments;
6444 uint32_t colorAttachmentCount;
6445 const VkAttachmentReference2* pColorAttachments;
6446 const VkAttachmentReference2* pResolveAttachments;
6447 const VkAttachmentReference2* pDepthStencilAttachment;
6448 uint32_t preserveAttachmentCount;
6449 const uint32_t* pPreserveAttachments;
6450} VkSubpassDescription2;
6451
6452typedef struct VkSubpassDependency2 {
6453 VkStructureType sType;
6454 const void* pNext;
6455 uint32_t srcSubpass;
6456 uint32_t dstSubpass;
6457 VkPipelineStageFlags srcStageMask;
6458 VkPipelineStageFlags dstStageMask;
6459 VkAccessFlags srcAccessMask;
6460 VkAccessFlags dstAccessMask;
6461 VkDependencyFlags dependencyFlags;
6462 int32_t viewOffset;
6463} VkSubpassDependency2;
6464
6465typedef struct VkRenderPassCreateInfo2 {
6466 VkStructureType sType;
6467 const void* pNext;
6468 VkRenderPassCreateFlags flags;
6469 uint32_t attachmentCount;
6470 const VkAttachmentDescription2* pAttachments;
6471 uint32_t subpassCount;
6472 const VkSubpassDescription2* pSubpasses;
6473 uint32_t dependencyCount;
6474 const VkSubpassDependency2* pDependencies;
6475 uint32_t correlatedViewMaskCount;
6476 const uint32_t* pCorrelatedViewMasks;
6477} VkRenderPassCreateInfo2;
6478
6479typedef struct VkSubpassBeginInfo {
6480 VkStructureType sType;
6481 const void* pNext;
6482 VkSubpassContents contents;
6483} VkSubpassBeginInfo;
6484
6485typedef struct VkSubpassEndInfo {
6486 VkStructureType sType;
6487 const void* pNext;
6488} VkSubpassEndInfo;
6489
6490typedef struct VkPhysicalDevice8BitStorageFeatures {
6491 VkStructureType sType;
6492 void* pNext;
6493 VkBool32 storageBuffer8BitAccess;
6494 VkBool32 uniformAndStorageBuffer8BitAccess;
6495 VkBool32 storagePushConstant8;
6496} VkPhysicalDevice8BitStorageFeatures;
6497
6498typedef struct VkPhysicalDeviceDriverProperties {
6499 VkStructureType sType;
6500 void* pNext;
6501 VkDriverId driverID;
6502 char driverName[VK_MAX_DRIVER_NAME_SIZE];
6503 char driverInfo[VK_MAX_DRIVER_INFO_SIZE];
6504 VkConformanceVersion conformanceVersion;
6505} VkPhysicalDeviceDriverProperties;
6506
6507typedef struct VkPhysicalDeviceShaderAtomicInt64Features {
6508 VkStructureType sType;
6509 void* pNext;
6510 VkBool32 shaderBufferInt64Atomics;
6511 VkBool32 shaderSharedInt64Atomics;
6512} VkPhysicalDeviceShaderAtomicInt64Features;
6513
6514typedef struct VkPhysicalDeviceShaderFloat16Int8Features {
6515 VkStructureType sType;
6516 void* pNext;
6517 VkBool32 shaderFloat16;
6518 VkBool32 shaderInt8;
6519} VkPhysicalDeviceShaderFloat16Int8Features;
6520
6521typedef struct VkPhysicalDeviceFloatControlsProperties {
6522 VkStructureType sType;
6523 void* pNext;
6524 VkShaderFloatControlsIndependence denormBehaviorIndependence;
6525 VkShaderFloatControlsIndependence roundingModeIndependence;
6526 VkBool32 shaderSignedZeroInfNanPreserveFloat16;
6527 VkBool32 shaderSignedZeroInfNanPreserveFloat32;
6528 VkBool32 shaderSignedZeroInfNanPreserveFloat64;
6529 VkBool32 shaderDenormPreserveFloat16;
6530 VkBool32 shaderDenormPreserveFloat32;
6531 VkBool32 shaderDenormPreserveFloat64;
6532 VkBool32 shaderDenormFlushToZeroFloat16;
6533 VkBool32 shaderDenormFlushToZeroFloat32;
6534 VkBool32 shaderDenormFlushToZeroFloat64;
6535 VkBool32 shaderRoundingModeRTEFloat16;
6536 VkBool32 shaderRoundingModeRTEFloat32;
6537 VkBool32 shaderRoundingModeRTEFloat64;
6538 VkBool32 shaderRoundingModeRTZFloat16;
6539 VkBool32 shaderRoundingModeRTZFloat32;
6540 VkBool32 shaderRoundingModeRTZFloat64;
6541} VkPhysicalDeviceFloatControlsProperties;
6542
6543typedef struct VkDescriptorSetLayoutBindingFlagsCreateInfo {
6544 VkStructureType sType;
6545 const void* pNext;
6546 uint32_t bindingCount;
6547 const VkDescriptorBindingFlags* pBindingFlags;
6548} VkDescriptorSetLayoutBindingFlagsCreateInfo;
6549
6550typedef struct VkPhysicalDeviceDescriptorIndexingFeatures {
6551 VkStructureType sType;
6552 void* pNext;
6553 VkBool32 shaderInputAttachmentArrayDynamicIndexing;
6554 VkBool32 shaderUniformTexelBufferArrayDynamicIndexing;
6555 VkBool32 shaderStorageTexelBufferArrayDynamicIndexing;
6556 VkBool32 shaderUniformBufferArrayNonUniformIndexing;
6557 VkBool32 shaderSampledImageArrayNonUniformIndexing;
6558 VkBool32 shaderStorageBufferArrayNonUniformIndexing;
6559 VkBool32 shaderStorageImageArrayNonUniformIndexing;
6560 VkBool32 shaderInputAttachmentArrayNonUniformIndexing;
6561 VkBool32 shaderUniformTexelBufferArrayNonUniformIndexing;
6562 VkBool32 shaderStorageTexelBufferArrayNonUniformIndexing;
6563 VkBool32 descriptorBindingUniformBufferUpdateAfterBind;
6564 VkBool32 descriptorBindingSampledImageUpdateAfterBind;
6565 VkBool32 descriptorBindingStorageImageUpdateAfterBind;
6566 VkBool32 descriptorBindingStorageBufferUpdateAfterBind;
6567 VkBool32 descriptorBindingUniformTexelBufferUpdateAfterBind;
6568 VkBool32 descriptorBindingStorageTexelBufferUpdateAfterBind;
6569 VkBool32 descriptorBindingUpdateUnusedWhilePending;
6570 VkBool32 descriptorBindingPartiallyBound;
6571 VkBool32 descriptorBindingVariableDescriptorCount;
6572 VkBool32 runtimeDescriptorArray;
6573} VkPhysicalDeviceDescriptorIndexingFeatures;
6574
6575typedef struct VkPhysicalDeviceDescriptorIndexingProperties {
6576 VkStructureType sType;
6577 void* pNext;
6578 uint32_t maxUpdateAfterBindDescriptorsInAllPools;
6579 VkBool32 shaderUniformBufferArrayNonUniformIndexingNative;
6580 VkBool32 shaderSampledImageArrayNonUniformIndexingNative;
6581 VkBool32 shaderStorageBufferArrayNonUniformIndexingNative;
6582 VkBool32 shaderStorageImageArrayNonUniformIndexingNative;
6583 VkBool32 shaderInputAttachmentArrayNonUniformIndexingNative;
6584 VkBool32 robustBufferAccessUpdateAfterBind;
6585 VkBool32 quadDivergentImplicitLod;
6586 uint32_t maxPerStageDescriptorUpdateAfterBindSamplers;
6587 uint32_t maxPerStageDescriptorUpdateAfterBindUniformBuffers;
6588 uint32_t maxPerStageDescriptorUpdateAfterBindStorageBuffers;
6589 uint32_t maxPerStageDescriptorUpdateAfterBindSampledImages;
6590 uint32_t maxPerStageDescriptorUpdateAfterBindStorageImages;
6591 uint32_t maxPerStageDescriptorUpdateAfterBindInputAttachments;
6592 uint32_t maxPerStageUpdateAfterBindResources;
6593 uint32_t maxDescriptorSetUpdateAfterBindSamplers;
6594 uint32_t maxDescriptorSetUpdateAfterBindUniformBuffers;
6595 uint32_t maxDescriptorSetUpdateAfterBindUniformBuffersDynamic;
6596 uint32_t maxDescriptorSetUpdateAfterBindStorageBuffers;
6597 uint32_t maxDescriptorSetUpdateAfterBindStorageBuffersDynamic;
6598 uint32_t maxDescriptorSetUpdateAfterBindSampledImages;
6599 uint32_t maxDescriptorSetUpdateAfterBindStorageImages;
6600 uint32_t maxDescriptorSetUpdateAfterBindInputAttachments;
6601} VkPhysicalDeviceDescriptorIndexingProperties;
6602
6603typedef struct VkDescriptorSetVariableDescriptorCountAllocateInfo {
6604 VkStructureType sType;
6605 const void* pNext;
6606 uint32_t descriptorSetCount;
6607 const uint32_t* pDescriptorCounts;
6608} VkDescriptorSetVariableDescriptorCountAllocateInfo;
6609
6610typedef struct VkDescriptorSetVariableDescriptorCountLayoutSupport {
6611 VkStructureType sType;
6612 void* pNext;
6613 uint32_t maxVariableDescriptorCount;
6614} VkDescriptorSetVariableDescriptorCountLayoutSupport;
6615
6616typedef struct VkSubpassDescriptionDepthStencilResolve {
6617 VkStructureType sType;
6618 const void* pNext;
6619 VkResolveModeFlagBits depthResolveMode;
6620 VkResolveModeFlagBits stencilResolveMode;
6621 const VkAttachmentReference2* pDepthStencilResolveAttachment;
6622} VkSubpassDescriptionDepthStencilResolve;
6623
6624typedef struct VkPhysicalDeviceDepthStencilResolveProperties {
6625 VkStructureType sType;
6626 void* pNext;
6627 VkResolveModeFlags supportedDepthResolveModes;
6628 VkResolveModeFlags supportedStencilResolveModes;
6629 VkBool32 independentResolveNone;
6630 VkBool32 independentResolve;
6631} VkPhysicalDeviceDepthStencilResolveProperties;
6632
6633typedef struct VkPhysicalDeviceScalarBlockLayoutFeatures {
6634 VkStructureType sType;
6635 void* pNext;
6636 VkBool32 scalarBlockLayout;
6637} VkPhysicalDeviceScalarBlockLayoutFeatures;
6638
6639typedef struct VkImageStencilUsageCreateInfo {
6640 VkStructureType sType;
6641 const void* pNext;
6642 VkImageUsageFlags stencilUsage;
6643} VkImageStencilUsageCreateInfo;
6644
6645typedef struct VkSamplerReductionModeCreateInfo {
6646 VkStructureType sType;
6647 const void* pNext;
6648 VkSamplerReductionMode reductionMode;
6649} VkSamplerReductionModeCreateInfo;
6650
6651typedef struct VkPhysicalDeviceSamplerFilterMinmaxProperties {
6652 VkStructureType sType;
6653 void* pNext;
6654 VkBool32 filterMinmaxSingleComponentFormats;
6655 VkBool32 filterMinmaxImageComponentMapping;
6656} VkPhysicalDeviceSamplerFilterMinmaxProperties;
6657
6658typedef struct VkPhysicalDeviceVulkanMemoryModelFeatures {
6659 VkStructureType sType;
6660 void* pNext;
6661 VkBool32 vulkanMemoryModel;
6662 VkBool32 vulkanMemoryModelDeviceScope;
6663 VkBool32 vulkanMemoryModelAvailabilityVisibilityChains;
6664} VkPhysicalDeviceVulkanMemoryModelFeatures;
6665
6666typedef struct VkPhysicalDeviceImagelessFramebufferFeatures {
6667 VkStructureType sType;
6668 void* pNext;
6669 VkBool32 imagelessFramebuffer;
6670} VkPhysicalDeviceImagelessFramebufferFeatures;
6671
6672typedef struct VkFramebufferAttachmentImageInfo {
6673 VkStructureType sType;
6674 const void* pNext;
6675 VkImageCreateFlags flags;
6676 VkImageUsageFlags usage;
6677 uint32_t width;
6678 uint32_t height;
6679 uint32_t layerCount;
6680 uint32_t viewFormatCount;
6681 const VkFormat* pViewFormats;
6682} VkFramebufferAttachmentImageInfo;
6683
6684typedef struct VkFramebufferAttachmentsCreateInfo {
6685 VkStructureType sType;
6686 const void* pNext;
6687 uint32_t attachmentImageInfoCount;
6688 const VkFramebufferAttachmentImageInfo* pAttachmentImageInfos;
6689} VkFramebufferAttachmentsCreateInfo;
6690
6691typedef struct VkRenderPassAttachmentBeginInfo {
6692 VkStructureType sType;
6693 const void* pNext;
6694 uint32_t attachmentCount;
6695 const VkImageView* pAttachments;
6696} VkRenderPassAttachmentBeginInfo;
6697
6698typedef struct VkPhysicalDeviceUniformBufferStandardLayoutFeatures {
6699 VkStructureType sType;
6700 void* pNext;
6701 VkBool32 uniformBufferStandardLayout;
6702} VkPhysicalDeviceUniformBufferStandardLayoutFeatures;
6703
6704typedef struct VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures {
6705 VkStructureType sType;
6706 void* pNext;
6707 VkBool32 shaderSubgroupExtendedTypes;
6708} VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures;
6709
6710typedef struct VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures {
6711 VkStructureType sType;
6712 void* pNext;
6713 VkBool32 separateDepthStencilLayouts;
6714} VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures;
6715
6716typedef struct VkAttachmentReferenceStencilLayout {
6717 VkStructureType sType;
6718 void* pNext;
6719 VkImageLayout stencilLayout;
6720} VkAttachmentReferenceStencilLayout;
6721
6722typedef struct VkAttachmentDescriptionStencilLayout {
6723 VkStructureType sType;
6724 void* pNext;
6725 VkImageLayout stencilInitialLayout;
6726 VkImageLayout stencilFinalLayout;
6727} VkAttachmentDescriptionStencilLayout;
6728
6729typedef struct VkPhysicalDeviceHostQueryResetFeatures {
6730 VkStructureType sType;
6731 void* pNext;
6732 VkBool32 hostQueryReset;
6733} VkPhysicalDeviceHostQueryResetFeatures;
6734
6735typedef struct VkPhysicalDeviceTimelineSemaphoreFeatures {
6736 VkStructureType sType;
6737 void* pNext;
6738 VkBool32 timelineSemaphore;
6739} VkPhysicalDeviceTimelineSemaphoreFeatures;
6740
6741typedef struct VkPhysicalDeviceTimelineSemaphoreProperties {
6742 VkStructureType sType;
6743 void* pNext;
6744 uint64_t maxTimelineSemaphoreValueDifference;
6745} VkPhysicalDeviceTimelineSemaphoreProperties;
6746
6747typedef struct VkSemaphoreTypeCreateInfo {
6748 VkStructureType sType;
6749 const void* pNext;
6750 VkSemaphoreType semaphoreType;
6751 uint64_t initialValue;
6752} VkSemaphoreTypeCreateInfo;
6753
6754typedef struct VkTimelineSemaphoreSubmitInfo {
6755 VkStructureType sType;
6756 const void* pNext;
6757 uint32_t waitSemaphoreValueCount;
6758 const uint64_t* pWaitSemaphoreValues;
6759 uint32_t signalSemaphoreValueCount;
6760 const uint64_t* pSignalSemaphoreValues;
6761} VkTimelineSemaphoreSubmitInfo;
6762
6763typedef struct VkSemaphoreWaitInfo {
6764 VkStructureType sType;
6765 const void* pNext;
6766 VkSemaphoreWaitFlags flags;
6767 uint32_t semaphoreCount;
6768 const VkSemaphore* pSemaphores;
6769 const uint64_t* pValues;
6770} VkSemaphoreWaitInfo;
6771
6772typedef struct VkSemaphoreSignalInfo {
6773 VkStructureType sType;
6774 const void* pNext;
6775 VkSemaphore semaphore;
6776 uint64_t value;
6777} VkSemaphoreSignalInfo;
6778
6779typedef struct VkPhysicalDeviceBufferDeviceAddressFeatures {
6780 VkStructureType sType;
6781 void* pNext;
6782 VkBool32 bufferDeviceAddress;
6783 VkBool32 bufferDeviceAddressCaptureReplay;
6784 VkBool32 bufferDeviceAddressMultiDevice;
6785} VkPhysicalDeviceBufferDeviceAddressFeatures;
6786
6787typedef struct VkBufferDeviceAddressInfo {
6788 VkStructureType sType;
6789 const void* pNext;
6790 VkBuffer buffer;
6791} VkBufferDeviceAddressInfo;
6792
6793typedef struct VkBufferOpaqueCaptureAddressCreateInfo {
6794 VkStructureType sType;
6795 const void* pNext;
6796 uint64_t opaqueCaptureAddress;
6797} VkBufferOpaqueCaptureAddressCreateInfo;
6798
6799typedef struct VkMemoryOpaqueCaptureAddressAllocateInfo {
6800 VkStructureType sType;
6801 const void* pNext;
6802 uint64_t opaqueCaptureAddress;
6803} VkMemoryOpaqueCaptureAddressAllocateInfo;
6804
6805typedef struct VkDeviceMemoryOpaqueCaptureAddressInfo {
6806 VkStructureType sType;
6807 const void* pNext;
6808 VkDeviceMemory memory;
6809} VkDeviceMemoryOpaqueCaptureAddressInfo;
6810
6811typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCount)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
6812typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCount)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
6813typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2)(VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
6814typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo);
6815typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo);
6816typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2)(VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo);
6817typedef void (VKAPI_PTR *PFN_vkResetQueryPool)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
6818typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreCounterValue)(VkDevice device, VkSemaphore semaphore, uint64_t* pValue);
6819typedef VkResult (VKAPI_PTR *PFN_vkWaitSemaphores)(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout);
6820typedef VkResult (VKAPI_PTR *PFN_vkSignalSemaphore)(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo);
6821typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddress)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
6822typedef uint64_t (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureAddress)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
6823typedef uint64_t (VKAPI_PTR *PFN_vkGetDeviceMemoryOpaqueCaptureAddress)(VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
6824
6825#ifndef VK_NO_PROTOTYPES
6826VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCount(
6827 VkCommandBuffer commandBuffer,
6828 VkBuffer buffer,
6829 VkDeviceSize offset,
6830 VkBuffer countBuffer,
6831 VkDeviceSize countBufferOffset,
6832 uint32_t maxDrawCount,
6833 uint32_t stride);
6834
6835VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCount(
6836 VkCommandBuffer commandBuffer,
6837 VkBuffer buffer,
6838 VkDeviceSize offset,
6839 VkBuffer countBuffer,
6840 VkDeviceSize countBufferOffset,
6841 uint32_t maxDrawCount,
6842 uint32_t stride);
6843
6844VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2(
6845 VkDevice device,
6846 const VkRenderPassCreateInfo2* pCreateInfo,
6847 const VkAllocationCallbacks* pAllocator,
6848 VkRenderPass* pRenderPass);
6849
6850VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2(
6851 VkCommandBuffer commandBuffer,
6852 const VkRenderPassBeginInfo* pRenderPassBegin,
6853 const VkSubpassBeginInfo* pSubpassBeginInfo);
6854
6855VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2(
6856 VkCommandBuffer commandBuffer,
6857 const VkSubpassBeginInfo* pSubpassBeginInfo,
6858 const VkSubpassEndInfo* pSubpassEndInfo);
6859
6860VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2(
6861 VkCommandBuffer commandBuffer,
6862 const VkSubpassEndInfo* pSubpassEndInfo);
6863
6864VKAPI_ATTR void VKAPI_CALL vkResetQueryPool(
6865 VkDevice device,
6866 VkQueryPool queryPool,
6867 uint32_t firstQuery,
6868 uint32_t queryCount);
6869
6870VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreCounterValue(
6871 VkDevice device,
6872 VkSemaphore semaphore,
6873 uint64_t* pValue);
6874
6875VKAPI_ATTR VkResult VKAPI_CALL vkWaitSemaphores(
6876 VkDevice device,
6877 const VkSemaphoreWaitInfo* pWaitInfo,
6878 uint64_t timeout);
6879
6880VKAPI_ATTR VkResult VKAPI_CALL vkSignalSemaphore(
6881 VkDevice device,
6882 const VkSemaphoreSignalInfo* pSignalInfo);
6883
6884VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddress(
6885 VkDevice device,
6886 const VkBufferDeviceAddressInfo* pInfo);
6887
6888VKAPI_ATTR uint64_t VKAPI_CALL vkGetBufferOpaqueCaptureAddress(
6889 VkDevice device,
6890 const VkBufferDeviceAddressInfo* pInfo);
6891
6892VKAPI_ATTR uint64_t VKAPI_CALL vkGetDeviceMemoryOpaqueCaptureAddress(
6893 VkDevice device,
6894 const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
6895#endif
6896
6897
6898// VK_VERSION_1_3 is a preprocessor guard. Do not pass it to API calls.
6899#define VK_VERSION_1_3 1
6900// Vulkan 1.3 version number
6901#define VK_API_VERSION_1_3 VK_MAKE_API_VERSION(0, 1, 3, 0)// Patch version should always be set to 0
6902
6903typedef uint64_t VkFlags64;
6904VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPrivateDataSlot)
6905
6906typedef enum VkPipelineCreationFeedbackFlagBits {
6907 VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT = 0x00000001,
6908 VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT = 0x00000002,
6909 VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT = 0x00000004,
6910 VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_VALID_BIT,
6911 VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_APPLICATION_PIPELINE_CACHE_HIT_BIT,
6912 VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT_EXT = VK_PIPELINE_CREATION_FEEDBACK_BASE_PIPELINE_ACCELERATION_BIT,
6913 VK_PIPELINE_CREATION_FEEDBACK_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6914} VkPipelineCreationFeedbackFlagBits;
6915typedef VkFlags VkPipelineCreationFeedbackFlags;
6916
6917typedef enum VkToolPurposeFlagBits {
6918 VK_TOOL_PURPOSE_VALIDATION_BIT = 0x00000001,
6919 VK_TOOL_PURPOSE_PROFILING_BIT = 0x00000002,
6920 VK_TOOL_PURPOSE_TRACING_BIT = 0x00000004,
6921 VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT = 0x00000008,
6922 VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT = 0x00000010,
6923 VK_TOOL_PURPOSE_DEBUG_REPORTING_BIT_EXT = 0x00000020,
6924 VK_TOOL_PURPOSE_DEBUG_MARKERS_BIT_EXT = 0x00000040,
6925 VK_TOOL_PURPOSE_VALIDATION_BIT_EXT = VK_TOOL_PURPOSE_VALIDATION_BIT,
6926 VK_TOOL_PURPOSE_PROFILING_BIT_EXT = VK_TOOL_PURPOSE_PROFILING_BIT,
6927 VK_TOOL_PURPOSE_TRACING_BIT_EXT = VK_TOOL_PURPOSE_TRACING_BIT,
6928 VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT_EXT = VK_TOOL_PURPOSE_ADDITIONAL_FEATURES_BIT,
6929 VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT_EXT = VK_TOOL_PURPOSE_MODIFYING_FEATURES_BIT,
6930 VK_TOOL_PURPOSE_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
6931} VkToolPurposeFlagBits;
6932typedef VkFlags VkToolPurposeFlags;
6933typedef VkFlags VkPrivateDataSlotCreateFlags;
6934typedef VkFlags64 VkPipelineStageFlags2;
6935
6936// Flag bits for VkPipelineStageFlagBits2
6937typedef VkFlags64 VkPipelineStageFlagBits2;
6938static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_NONE = 0ULL;
6939static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT = 0x00000001ULL;
6940static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT = 0x00000002ULL;
6941static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT = 0x00000004ULL;
6942static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT = 0x00000008ULL;
6943static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT = 0x00000010ULL;
6944static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT = 0x00000020ULL;
6945static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT = 0x00000040ULL;
6946static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT = 0x00000080ULL;
6947static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT = 0x00000100ULL;
6948static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT = 0x00000200ULL;
6949static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT = 0x00000400ULL;
6950static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT = 0x00000800ULL;
6951static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT = 0x00001000ULL;
6952static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFER_BIT = 0x00001000ULL;
6953static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT = 0x00002000ULL;
6954static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_HOST_BIT = 0x00004000ULL;
6955static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT = 0x00008000ULL;
6956static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT = 0x00010000ULL;
6957static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COPY_BIT = 0x100000000ULL;
6958static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RESOLVE_BIT = 0x200000000ULL;
6959static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BLIT_BIT = 0x400000000ULL;
6960static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLEAR_BIT = 0x800000000ULL;
6961static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT = 0x1000000000ULL;
6962static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT = 0x2000000000ULL;
6963static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT = 0x4000000000ULL;
6964static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VIDEO_DECODE_BIT_KHR = 0x04000000ULL;
6965static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VIDEO_ENCODE_BIT_KHR = 0x08000000ULL;
6966static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_NONE_KHR = 0ULL;
6967static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TOP_OF_PIPE_BIT_KHR = 0x00000001ULL;
6968static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_DRAW_INDIRECT_BIT_KHR = 0x00000002ULL;
6969static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_INPUT_BIT_KHR = 0x00000004ULL;
6970static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_SHADER_BIT_KHR = 0x00000008ULL;
6971static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_CONTROL_SHADER_BIT_KHR = 0x00000010ULL;
6972static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TESSELLATION_EVALUATION_SHADER_BIT_KHR = 0x00000020ULL;
6973static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_GEOMETRY_SHADER_BIT_KHR = 0x00000040ULL;
6974static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADER_BIT_KHR = 0x00000080ULL;
6975static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_EARLY_FRAGMENT_TESTS_BIT_KHR = 0x00000100ULL;
6976static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_LATE_FRAGMENT_TESTS_BIT_KHR = 0x00000200ULL;
6977static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COLOR_ATTACHMENT_OUTPUT_BIT_KHR = 0x00000400ULL;
6978static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMPUTE_SHADER_BIT_KHR = 0x00000800ULL;
6979static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_TRANSFER_BIT_KHR = 0x00001000ULL;
6980static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFER_BIT_KHR = 0x00001000ULL;
6981static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BOTTOM_OF_PIPE_BIT_KHR = 0x00002000ULL;
6982static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_HOST_BIT_KHR = 0x00004000ULL;
6983static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_GRAPHICS_BIT_KHR = 0x00008000ULL;
6984static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ALL_COMMANDS_BIT_KHR = 0x00010000ULL;
6985static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COPY_BIT_KHR = 0x100000000ULL;
6986static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RESOLVE_BIT_KHR = 0x200000000ULL;
6987static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_BLIT_BIT_KHR = 0x400000000ULL;
6988static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLEAR_BIT_KHR = 0x800000000ULL;
6989static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INDEX_INPUT_BIT_KHR = 0x1000000000ULL;
6990static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_VERTEX_ATTRIBUTE_INPUT_BIT_KHR = 0x2000000000ULL;
6991static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_PRE_RASTERIZATION_SHADERS_BIT_KHR = 0x4000000000ULL;
6992static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TRANSFORM_FEEDBACK_BIT_EXT = 0x01000000ULL;
6993static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CONDITIONAL_RENDERING_BIT_EXT = 0x00040000ULL;
6994static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_NV = 0x00020000ULL;
6995static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COMMAND_PREPROCESS_BIT_EXT = 0x00020000ULL;
6996static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00400000ULL;
6997static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SHADING_RATE_IMAGE_BIT_NV = 0x00400000ULL;
6998static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_KHR = 0x02000000ULL;
6999static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_KHR = 0x00200000ULL;
7000static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_RAY_TRACING_SHADER_BIT_NV = 0x00200000ULL;
7001static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_BUILD_BIT_NV = 0x02000000ULL;
7002static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_FRAGMENT_DENSITY_PROCESS_BIT_EXT = 0x00800000ULL;
7003static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_NV = 0x00080000ULL;
7004static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_NV = 0x00100000ULL;
7005static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_TASK_SHADER_BIT_EXT = 0x00080000ULL;
7006static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MESH_SHADER_BIT_EXT = 0x00100000ULL;
7007static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SUBPASS_SHADER_BIT_HUAWEI = 0x8000000000ULL;
7008// VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI is a deprecated alias
7009static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_SUBPASS_SHADING_BIT_HUAWEI = 0x8000000000ULL;
7010static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_INVOCATION_MASK_BIT_HUAWEI = 0x10000000000ULL;
7011static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_ACCELERATION_STRUCTURE_COPY_BIT_KHR = 0x10000000ULL;
7012static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_MICROMAP_BUILD_BIT_EXT = 0x40000000ULL;
7013static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CLUSTER_CULLING_SHADER_BIT_HUAWEI = 0x20000000000ULL;
7014static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_OPTICAL_FLOW_BIT_NV = 0x20000000ULL;
7015static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_CONVERT_COOPERATIVE_VECTOR_MATRIX_BIT_NV = 0x100000000000ULL;
7016static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_DATA_GRAPH_BIT_ARM = 0x40000000000ULL;
7017static const VkPipelineStageFlagBits2 VK_PIPELINE_STAGE_2_COPY_INDIRECT_BIT_KHR = 0x400000000000ULL;
7018
7019typedef VkFlags64 VkAccessFlags2;
7020
7021// Flag bits for VkAccessFlagBits2
7022typedef VkFlags64 VkAccessFlagBits2;
7023static const VkAccessFlagBits2 VK_ACCESS_2_NONE = 0ULL;
7024static const VkAccessFlagBits2 VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT = 0x00000001ULL;
7025static const VkAccessFlagBits2 VK_ACCESS_2_INDEX_READ_BIT = 0x00000002ULL;
7026static const VkAccessFlagBits2 VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT = 0x00000004ULL;
7027static const VkAccessFlagBits2 VK_ACCESS_2_UNIFORM_READ_BIT = 0x00000008ULL;
7028static const VkAccessFlagBits2 VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT = 0x00000010ULL;
7029static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_READ_BIT = 0x00000020ULL;
7030static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_WRITE_BIT = 0x00000040ULL;
7031static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT = 0x00000080ULL;
7032static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT = 0x00000100ULL;
7033static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT = 0x00000200ULL;
7034static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT = 0x00000400ULL;
7035static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_READ_BIT = 0x00000800ULL;
7036static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_WRITE_BIT = 0x00001000ULL;
7037static const VkAccessFlagBits2 VK_ACCESS_2_HOST_READ_BIT = 0x00002000ULL;
7038static const VkAccessFlagBits2 VK_ACCESS_2_HOST_WRITE_BIT = 0x00004000ULL;
7039static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_READ_BIT = 0x00008000ULL;
7040static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_WRITE_BIT = 0x00010000ULL;
7041static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT = 0x100000000ULL;
7042static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_READ_BIT = 0x200000000ULL;
7043static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT = 0x400000000ULL;
7044static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_DECODE_READ_BIT_KHR = 0x800000000ULL;
7045static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_DECODE_WRITE_BIT_KHR = 0x1000000000ULL;
7046static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_ENCODE_READ_BIT_KHR = 0x2000000000ULL;
7047static const VkAccessFlagBits2 VK_ACCESS_2_VIDEO_ENCODE_WRITE_BIT_KHR = 0x4000000000ULL;
7048static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_TILE_ATTACHMENT_READ_BIT_QCOM = 0x8000000000000ULL;
7049static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_TILE_ATTACHMENT_WRITE_BIT_QCOM = 0x10000000000000ULL;
7050static const VkAccessFlagBits2 VK_ACCESS_2_NONE_KHR = 0ULL;
7051static const VkAccessFlagBits2 VK_ACCESS_2_INDIRECT_COMMAND_READ_BIT_KHR = 0x00000001ULL;
7052static const VkAccessFlagBits2 VK_ACCESS_2_INDEX_READ_BIT_KHR = 0x00000002ULL;
7053static const VkAccessFlagBits2 VK_ACCESS_2_VERTEX_ATTRIBUTE_READ_BIT_KHR = 0x00000004ULL;
7054static const VkAccessFlagBits2 VK_ACCESS_2_UNIFORM_READ_BIT_KHR = 0x00000008ULL;
7055static const VkAccessFlagBits2 VK_ACCESS_2_INPUT_ATTACHMENT_READ_BIT_KHR = 0x00000010ULL;
7056static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_READ_BIT_KHR = 0x00000020ULL;
7057static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_WRITE_BIT_KHR = 0x00000040ULL;
7058static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_BIT_KHR = 0x00000080ULL;
7059static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_WRITE_BIT_KHR = 0x00000100ULL;
7060static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_READ_BIT_KHR = 0x00000200ULL;
7061static const VkAccessFlagBits2 VK_ACCESS_2_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT_KHR = 0x00000400ULL;
7062static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_READ_BIT_KHR = 0x00000800ULL;
7063static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFER_WRITE_BIT_KHR = 0x00001000ULL;
7064static const VkAccessFlagBits2 VK_ACCESS_2_HOST_READ_BIT_KHR = 0x00002000ULL;
7065static const VkAccessFlagBits2 VK_ACCESS_2_HOST_WRITE_BIT_KHR = 0x00004000ULL;
7066static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_READ_BIT_KHR = 0x00008000ULL;
7067static const VkAccessFlagBits2 VK_ACCESS_2_MEMORY_WRITE_BIT_KHR = 0x00010000ULL;
7068static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_SAMPLED_READ_BIT_KHR = 0x100000000ULL;
7069static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_READ_BIT_KHR = 0x200000000ULL;
7070static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_STORAGE_WRITE_BIT_KHR = 0x400000000ULL;
7071static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_WRITE_BIT_EXT = 0x02000000ULL;
7072static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT = 0x04000000ULL;
7073static const VkAccessFlagBits2 VK_ACCESS_2_TRANSFORM_FEEDBACK_COUNTER_WRITE_BIT_EXT = 0x08000000ULL;
7074static const VkAccessFlagBits2 VK_ACCESS_2_CONDITIONAL_RENDERING_READ_BIT_EXT = 0x00100000ULL;
7075static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_NV = 0x00020000ULL;
7076static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_NV = 0x00040000ULL;
7077static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_READ_BIT_EXT = 0x00020000ULL;
7078static const VkAccessFlagBits2 VK_ACCESS_2_COMMAND_PREPROCESS_WRITE_BIT_EXT = 0x00040000ULL;
7079static const VkAccessFlagBits2 VK_ACCESS_2_FRAGMENT_SHADING_RATE_ATTACHMENT_READ_BIT_KHR = 0x00800000ULL;
7080static const VkAccessFlagBits2 VK_ACCESS_2_SHADING_RATE_IMAGE_READ_BIT_NV = 0x00800000ULL;
7081static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_KHR = 0x00200000ULL;
7082static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_KHR = 0x00400000ULL;
7083static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_READ_BIT_NV = 0x00200000ULL;
7084static const VkAccessFlagBits2 VK_ACCESS_2_ACCELERATION_STRUCTURE_WRITE_BIT_NV = 0x00400000ULL;
7085static const VkAccessFlagBits2 VK_ACCESS_2_FRAGMENT_DENSITY_MAP_READ_BIT_EXT = 0x01000000ULL;
7086static const VkAccessFlagBits2 VK_ACCESS_2_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT = 0x00080000ULL;
7087static const VkAccessFlagBits2 VK_ACCESS_2_DESCRIPTOR_BUFFER_READ_BIT_EXT = 0x20000000000ULL;
7088static const VkAccessFlagBits2 VK_ACCESS_2_INVOCATION_MASK_READ_BIT_HUAWEI = 0x8000000000ULL;
7089static const VkAccessFlagBits2 VK_ACCESS_2_SHADER_BINDING_TABLE_READ_BIT_KHR = 0x10000000000ULL;
7090static const VkAccessFlagBits2 VK_ACCESS_2_MICROMAP_READ_BIT_EXT = 0x100000000000ULL;
7091static const VkAccessFlagBits2 VK_ACCESS_2_MICROMAP_WRITE_BIT_EXT = 0x200000000000ULL;
7092static const VkAccessFlagBits2 VK_ACCESS_2_OPTICAL_FLOW_READ_BIT_NV = 0x40000000000ULL;
7093static const VkAccessFlagBits2 VK_ACCESS_2_OPTICAL_FLOW_WRITE_BIT_NV = 0x80000000000ULL;
7094static const VkAccessFlagBits2 VK_ACCESS_2_DATA_GRAPH_READ_BIT_ARM = 0x800000000000ULL;
7095static const VkAccessFlagBits2 VK_ACCESS_2_DATA_GRAPH_WRITE_BIT_ARM = 0x1000000000000ULL;
7096
7097
7098typedef enum VkSubmitFlagBits {
7099 VK_SUBMIT_PROTECTED_BIT = 0x00000001,
7100 VK_SUBMIT_PROTECTED_BIT_KHR = VK_SUBMIT_PROTECTED_BIT,
7101 VK_SUBMIT_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
7102} VkSubmitFlagBits;
7103typedef VkFlags VkSubmitFlags;
7104
7105typedef enum VkRenderingFlagBits {
7106 VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT = 0x00000001,
7107 VK_RENDERING_SUSPENDING_BIT = 0x00000002,
7108 VK_RENDERING_RESUMING_BIT = 0x00000004,
7109 VK_RENDERING_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x00000008,
7110 VK_RENDERING_CONTENTS_INLINE_BIT_KHR = 0x00000010,
7111 VK_RENDERING_PER_LAYER_FRAGMENT_DENSITY_BIT_VALVE = 0x00000020,
7112 VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT_KHR = VK_RENDERING_CONTENTS_SECONDARY_COMMAND_BUFFERS_BIT,
7113 VK_RENDERING_SUSPENDING_BIT_KHR = VK_RENDERING_SUSPENDING_BIT,
7114 VK_RENDERING_RESUMING_BIT_KHR = VK_RENDERING_RESUMING_BIT,
7115 VK_RENDERING_CONTENTS_INLINE_BIT_EXT = VK_RENDERING_CONTENTS_INLINE_BIT_KHR,
7116 VK_RENDERING_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
7117} VkRenderingFlagBits;
7118typedef VkFlags VkRenderingFlags;
7119typedef VkFlags64 VkFormatFeatureFlags2;
7120
7121// Flag bits for VkFormatFeatureFlagBits2
7122typedef VkFlags64 VkFormatFeatureFlagBits2;
7123static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT = 0x00000001ULL;
7124static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT = 0x00000002ULL;
7125static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT = 0x00000004ULL;
7126static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT = 0x00000008ULL;
7127static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT = 0x00000010ULL;
7128static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT = 0x00000020ULL;
7129static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT = 0x00000040ULL;
7130static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT = 0x00000080ULL;
7131static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT = 0x00000100ULL;
7132static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT = 0x00000200ULL;
7133static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_SRC_BIT = 0x00000400ULL;
7134static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_DST_BIT = 0x00000800ULL;
7135static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT = 0x00001000ULL;
7136static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT = 0x00004000ULL;
7137static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT = 0x00008000ULL;
7138static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT = 0x00010000ULL;
7139static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT = 0x00020000ULL;
7140static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT = 0x00040000ULL;
7141static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT = 0x00080000ULL;
7142static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT = 0x00100000ULL;
7143static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT = 0x00200000ULL;
7144static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DISJOINT_BIT = 0x00400000ULL;
7145static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT = 0x00800000ULL;
7146static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT = 0x80000000ULL;
7147static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT = 0x100000000ULL;
7148static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT = 0x200000000ULL;
7149static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT = 0x00002000ULL;
7150static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT = 0x400000000000ULL;
7151static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_DECODE_OUTPUT_BIT_KHR = 0x02000000ULL;
7152static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_DECODE_DPB_BIT_KHR = 0x04000000ULL;
7153static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_VERTEX_BUFFER_BIT_KHR = 0x20000000ULL;
7154static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_FRAGMENT_DENSITY_MAP_BIT_EXT = 0x01000000ULL;
7155static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x40000000ULL;
7156static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_HOST_IMAGE_TRANSFER_BIT_EXT = 0x400000000000ULL;
7157static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_INPUT_BIT_KHR = 0x08000000ULL;
7158static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_DPB_BIT_KHR = 0x10000000ULL;
7159static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_BIT_KHR = 0x00000001ULL;
7160static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_BIT_KHR = 0x00000002ULL;
7161static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_IMAGE_ATOMIC_BIT_KHR = 0x00000004ULL;
7162static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR = 0x00000008ULL;
7163static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_BIT_KHR = 0x00000010ULL;
7164static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_TEXEL_BUFFER_ATOMIC_BIT_KHR = 0x00000020ULL;
7165static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VERTEX_BUFFER_BIT_KHR = 0x00000040ULL;
7166static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BIT_KHR = 0x00000080ULL;
7167static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT_KHR = 0x00000100ULL;
7168static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DEPTH_STENCIL_ATTACHMENT_BIT_KHR = 0x00000200ULL;
7169static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_SRC_BIT_KHR = 0x00000400ULL;
7170static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLIT_DST_BIT_KHR = 0x00000800ULL;
7171static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_LINEAR_BIT_KHR = 0x00001000ULL;
7172static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_SRC_BIT_KHR = 0x00004000ULL;
7173static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TRANSFER_DST_BIT_KHR = 0x00008000ULL;
7174static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_MIDPOINT_CHROMA_SAMPLES_BIT_KHR = 0x00020000ULL;
7175static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_LINEAR_FILTER_BIT_KHR = 0x00040000ULL;
7176static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_SEPARATE_RECONSTRUCTION_FILTER_BIT_KHR = 0x00080000ULL;
7177static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_BIT_KHR = 0x00100000ULL;
7178static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_YCBCR_CONVERSION_CHROMA_RECONSTRUCTION_EXPLICIT_FORCEABLE_BIT_KHR = 0x00200000ULL;
7179static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_DISJOINT_BIT_KHR = 0x00400000ULL;
7180static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COSITED_CHROMA_SAMPLES_BIT_KHR = 0x00800000ULL;
7181static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_READ_WITHOUT_FORMAT_BIT_KHR = 0x80000000ULL;
7182static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_STORAGE_WRITE_WITHOUT_FORMAT_BIT_KHR = 0x100000000ULL;
7183static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_DEPTH_COMPARISON_BIT_KHR = 0x200000000ULL;
7184static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_MINMAX_BIT_KHR = 0x00010000ULL;
7185static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_SAMPLED_IMAGE_FILTER_CUBIC_BIT_EXT = 0x00002000ULL;
7186static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_ACCELERATION_STRUCTURE_RADIUS_BUFFER_BIT_NV = 0x8000000000000ULL;
7187static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_LINEAR_COLOR_ATTACHMENT_BIT_NV = 0x4000000000ULL;
7188static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_WEIGHT_IMAGE_BIT_QCOM = 0x400000000ULL;
7189static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_WEIGHT_SAMPLED_IMAGE_BIT_QCOM = 0x800000000ULL;
7190static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BLOCK_MATCHING_BIT_QCOM = 0x1000000000ULL;
7191static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_BOX_FILTER_SAMPLED_BIT_QCOM = 0x2000000000ULL;
7192static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TENSOR_SHADER_BIT_ARM = 0x8000000000ULL;
7193static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TENSOR_IMAGE_ALIASING_BIT_ARM = 0x80000000000ULL;
7194static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_IMAGE_BIT_NV = 0x10000000000ULL;
7195static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_VECTOR_BIT_NV = 0x20000000000ULL;
7196static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_OPTICAL_FLOW_COST_BIT_NV = 0x40000000000ULL;
7197static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_TENSOR_DATA_GRAPH_BIT_ARM = 0x1000000000000ULL;
7198static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_COPY_IMAGE_INDIRECT_DST_BIT_KHR = 0x800000000000000ULL;
7199static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x2000000000000ULL;
7200static const VkFormatFeatureFlagBits2 VK_FORMAT_FEATURE_2_VIDEO_ENCODE_EMPHASIS_MAP_BIT_KHR = 0x4000000000000ULL;
7201
7202typedef struct VkPhysicalDeviceVulkan13Features {
7203 VkStructureType sType;
7204 void* pNext;
7205 VkBool32 robustImageAccess;
7206 VkBool32 inlineUniformBlock;
7207 VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind;
7208 VkBool32 pipelineCreationCacheControl;
7209 VkBool32 privateData;
7210 VkBool32 shaderDemoteToHelperInvocation;
7211 VkBool32 shaderTerminateInvocation;
7212 VkBool32 subgroupSizeControl;
7213 VkBool32 computeFullSubgroups;
7214 VkBool32 synchronization2;
7215 VkBool32 textureCompressionASTC_HDR;
7216 VkBool32 shaderZeroInitializeWorkgroupMemory;
7217 VkBool32 dynamicRendering;
7218 VkBool32 shaderIntegerDotProduct;
7219 VkBool32 maintenance4;
7220} VkPhysicalDeviceVulkan13Features;
7221
7222typedef struct VkPhysicalDeviceVulkan13Properties {
7223 VkStructureType sType;
7224 void* pNext;
7225 uint32_t minSubgroupSize;
7226 uint32_t maxSubgroupSize;
7227 uint32_t maxComputeWorkgroupSubgroups;
7228 VkShaderStageFlags requiredSubgroupSizeStages;
7229 uint32_t maxInlineUniformBlockSize;
7230 uint32_t maxPerStageDescriptorInlineUniformBlocks;
7231 uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
7232 uint32_t maxDescriptorSetInlineUniformBlocks;
7233 uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
7234 uint32_t maxInlineUniformTotalSize;
7235 VkBool32 integerDotProduct8BitUnsignedAccelerated;
7236 VkBool32 integerDotProduct8BitSignedAccelerated;
7237 VkBool32 integerDotProduct8BitMixedSignednessAccelerated;
7238 VkBool32 integerDotProduct4x8BitPackedUnsignedAccelerated;
7239 VkBool32 integerDotProduct4x8BitPackedSignedAccelerated;
7240 VkBool32 integerDotProduct4x8BitPackedMixedSignednessAccelerated;
7241 VkBool32 integerDotProduct16BitUnsignedAccelerated;
7242 VkBool32 integerDotProduct16BitSignedAccelerated;
7243 VkBool32 integerDotProduct16BitMixedSignednessAccelerated;
7244 VkBool32 integerDotProduct32BitUnsignedAccelerated;
7245 VkBool32 integerDotProduct32BitSignedAccelerated;
7246 VkBool32 integerDotProduct32BitMixedSignednessAccelerated;
7247 VkBool32 integerDotProduct64BitUnsignedAccelerated;
7248 VkBool32 integerDotProduct64BitSignedAccelerated;
7249 VkBool32 integerDotProduct64BitMixedSignednessAccelerated;
7250 VkBool32 integerDotProductAccumulatingSaturating8BitUnsignedAccelerated;
7251 VkBool32 integerDotProductAccumulatingSaturating8BitSignedAccelerated;
7252 VkBool32 integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated;
7253 VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated;
7254 VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated;
7255 VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated;
7256 VkBool32 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated;
7257 VkBool32 integerDotProductAccumulatingSaturating16BitSignedAccelerated;
7258 VkBool32 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated;
7259 VkBool32 integerDotProductAccumulatingSaturating32BitUnsignedAccelerated;
7260 VkBool32 integerDotProductAccumulatingSaturating32BitSignedAccelerated;
7261 VkBool32 integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated;
7262 VkBool32 integerDotProductAccumulatingSaturating64BitUnsignedAccelerated;
7263 VkBool32 integerDotProductAccumulatingSaturating64BitSignedAccelerated;
7264 VkBool32 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated;
7265 VkDeviceSize storageTexelBufferOffsetAlignmentBytes;
7266 VkBool32 storageTexelBufferOffsetSingleTexelAlignment;
7267 VkDeviceSize uniformTexelBufferOffsetAlignmentBytes;
7268 VkBool32 uniformTexelBufferOffsetSingleTexelAlignment;
7269 VkDeviceSize maxBufferSize;
7270} VkPhysicalDeviceVulkan13Properties;
7271
7272typedef struct VkPipelineCreationFeedback {
7273 VkPipelineCreationFeedbackFlags flags;
7274 uint64_t duration;
7275} VkPipelineCreationFeedback;
7276
7277typedef struct VkPipelineCreationFeedbackCreateInfo {
7278 VkStructureType sType;
7279 const void* pNext;
7280 VkPipelineCreationFeedback* pPipelineCreationFeedback;
7281 uint32_t pipelineStageCreationFeedbackCount;
7282 VkPipelineCreationFeedback* pPipelineStageCreationFeedbacks;
7283} VkPipelineCreationFeedbackCreateInfo;
7284
7285typedef struct VkPhysicalDeviceShaderTerminateInvocationFeatures {
7286 VkStructureType sType;
7287 void* pNext;
7288 VkBool32 shaderTerminateInvocation;
7289} VkPhysicalDeviceShaderTerminateInvocationFeatures;
7290
7291typedef struct VkPhysicalDeviceToolProperties {
7292 VkStructureType sType;
7293 void* pNext;
7294 char name[VK_MAX_EXTENSION_NAME_SIZE];
7295 char version[VK_MAX_EXTENSION_NAME_SIZE];
7296 VkToolPurposeFlags purposes;
7297 char description[VK_MAX_DESCRIPTION_SIZE];
7298 char layer[VK_MAX_EXTENSION_NAME_SIZE];
7299} VkPhysicalDeviceToolProperties;
7300
7301typedef struct VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures {
7302 VkStructureType sType;
7303 void* pNext;
7304 VkBool32 shaderDemoteToHelperInvocation;
7305} VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures;
7306
7307typedef struct VkPhysicalDevicePrivateDataFeatures {
7308 VkStructureType sType;
7309 void* pNext;
7310 VkBool32 privateData;
7311} VkPhysicalDevicePrivateDataFeatures;
7312
7313typedef struct VkDevicePrivateDataCreateInfo {
7314 VkStructureType sType;
7315 const void* pNext;
7316 uint32_t privateDataSlotRequestCount;
7317} VkDevicePrivateDataCreateInfo;
7318
7319typedef struct VkPrivateDataSlotCreateInfo {
7320 VkStructureType sType;
7321 const void* pNext;
7322 VkPrivateDataSlotCreateFlags flags;
7323} VkPrivateDataSlotCreateInfo;
7324
7325typedef struct VkPhysicalDevicePipelineCreationCacheControlFeatures {
7326 VkStructureType sType;
7327 void* pNext;
7328 VkBool32 pipelineCreationCacheControl;
7329} VkPhysicalDevicePipelineCreationCacheControlFeatures;
7330
7331typedef struct VkMemoryBarrier2 {
7332 VkStructureType sType;
7333 const void* pNext;
7334 VkPipelineStageFlags2 srcStageMask;
7335 VkAccessFlags2 srcAccessMask;
7336 VkPipelineStageFlags2 dstStageMask;
7337 VkAccessFlags2 dstAccessMask;
7338} VkMemoryBarrier2;
7339
7340typedef struct VkBufferMemoryBarrier2 {
7341 VkStructureType sType;
7342 const void* pNext;
7343 VkPipelineStageFlags2 srcStageMask;
7344 VkAccessFlags2 srcAccessMask;
7345 VkPipelineStageFlags2 dstStageMask;
7346 VkAccessFlags2 dstAccessMask;
7347 uint32_t srcQueueFamilyIndex;
7348 uint32_t dstQueueFamilyIndex;
7349 VkBuffer buffer;
7350 VkDeviceSize offset;
7351 VkDeviceSize size;
7352} VkBufferMemoryBarrier2;
7353
7354typedef struct VkImageMemoryBarrier2 {
7355 VkStructureType sType;
7356 const void* pNext;
7357 VkPipelineStageFlags2 srcStageMask;
7358 VkAccessFlags2 srcAccessMask;
7359 VkPipelineStageFlags2 dstStageMask;
7360 VkAccessFlags2 dstAccessMask;
7361 VkImageLayout oldLayout;
7362 VkImageLayout newLayout;
7363 uint32_t srcQueueFamilyIndex;
7364 uint32_t dstQueueFamilyIndex;
7365 VkImage image;
7366 VkImageSubresourceRange subresourceRange;
7367} VkImageMemoryBarrier2;
7368
7369typedef struct VkDependencyInfo {
7370 VkStructureType sType;
7371 const void* pNext;
7372 VkDependencyFlags dependencyFlags;
7373 uint32_t memoryBarrierCount;
7374 const VkMemoryBarrier2* pMemoryBarriers;
7375 uint32_t bufferMemoryBarrierCount;
7376 const VkBufferMemoryBarrier2* pBufferMemoryBarriers;
7377 uint32_t imageMemoryBarrierCount;
7378 const VkImageMemoryBarrier2* pImageMemoryBarriers;
7379} VkDependencyInfo;
7380
7381typedef struct VkSemaphoreSubmitInfo {
7382 VkStructureType sType;
7383 const void* pNext;
7384 VkSemaphore semaphore;
7385 uint64_t value;
7386 VkPipelineStageFlags2 stageMask;
7387 uint32_t deviceIndex;
7388} VkSemaphoreSubmitInfo;
7389
7390typedef struct VkCommandBufferSubmitInfo {
7391 VkStructureType sType;
7392 const void* pNext;
7393 VkCommandBuffer commandBuffer;
7394 uint32_t deviceMask;
7395} VkCommandBufferSubmitInfo;
7396
7397typedef struct VkSubmitInfo2 {
7398 VkStructureType sType;
7399 const void* pNext;
7400 VkSubmitFlags flags;
7401 uint32_t waitSemaphoreInfoCount;
7402 const VkSemaphoreSubmitInfo* pWaitSemaphoreInfos;
7403 uint32_t commandBufferInfoCount;
7404 const VkCommandBufferSubmitInfo* pCommandBufferInfos;
7405 uint32_t signalSemaphoreInfoCount;
7406 const VkSemaphoreSubmitInfo* pSignalSemaphoreInfos;
7407} VkSubmitInfo2;
7408
7409typedef struct VkPhysicalDeviceSynchronization2Features {
7410 VkStructureType sType;
7411 void* pNext;
7412 VkBool32 synchronization2;
7413} VkPhysicalDeviceSynchronization2Features;
7414
7415typedef struct VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures {
7416 VkStructureType sType;
7417 void* pNext;
7418 VkBool32 shaderZeroInitializeWorkgroupMemory;
7419} VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures;
7420
7421typedef struct VkPhysicalDeviceImageRobustnessFeatures {
7422 VkStructureType sType;
7423 void* pNext;
7424 VkBool32 robustImageAccess;
7425} VkPhysicalDeviceImageRobustnessFeatures;
7426
7427typedef struct VkBufferCopy2 {
7428 VkStructureType sType;
7429 const void* pNext;
7430 VkDeviceSize srcOffset;
7431 VkDeviceSize dstOffset;
7432 VkDeviceSize size;
7433} VkBufferCopy2;
7434
7435typedef struct VkCopyBufferInfo2 {
7436 VkStructureType sType;
7437 const void* pNext;
7438 VkBuffer srcBuffer;
7439 VkBuffer dstBuffer;
7440 uint32_t regionCount;
7441 const VkBufferCopy2* pRegions;
7442} VkCopyBufferInfo2;
7443
7444typedef struct VkImageCopy2 {
7445 VkStructureType sType;
7446 const void* pNext;
7447 VkImageSubresourceLayers srcSubresource;
7448 VkOffset3D srcOffset;
7449 VkImageSubresourceLayers dstSubresource;
7450 VkOffset3D dstOffset;
7451 VkExtent3D extent;
7452} VkImageCopy2;
7453
7454typedef struct VkCopyImageInfo2 {
7455 VkStructureType sType;
7456 const void* pNext;
7457 VkImage srcImage;
7458 VkImageLayout srcImageLayout;
7459 VkImage dstImage;
7460 VkImageLayout dstImageLayout;
7461 uint32_t regionCount;
7462 const VkImageCopy2* pRegions;
7463} VkCopyImageInfo2;
7464
7465typedef struct VkBufferImageCopy2 {
7466 VkStructureType sType;
7467 const void* pNext;
7468 VkDeviceSize bufferOffset;
7469 uint32_t bufferRowLength;
7470 uint32_t bufferImageHeight;
7471 VkImageSubresourceLayers imageSubresource;
7472 VkOffset3D imageOffset;
7473 VkExtent3D imageExtent;
7474} VkBufferImageCopy2;
7475
7476typedef struct VkCopyBufferToImageInfo2 {
7477 VkStructureType sType;
7478 const void* pNext;
7479 VkBuffer srcBuffer;
7480 VkImage dstImage;
7481 VkImageLayout dstImageLayout;
7482 uint32_t regionCount;
7483 const VkBufferImageCopy2* pRegions;
7484} VkCopyBufferToImageInfo2;
7485
7486typedef struct VkCopyImageToBufferInfo2 {
7487 VkStructureType sType;
7488 const void* pNext;
7489 VkImage srcImage;
7490 VkImageLayout srcImageLayout;
7491 VkBuffer dstBuffer;
7492 uint32_t regionCount;
7493 const VkBufferImageCopy2* pRegions;
7494} VkCopyImageToBufferInfo2;
7495
7496typedef struct VkImageBlit2 {
7497 VkStructureType sType;
7498 const void* pNext;
7499 VkImageSubresourceLayers srcSubresource;
7500 VkOffset3D srcOffsets[2];
7501 VkImageSubresourceLayers dstSubresource;
7502 VkOffset3D dstOffsets[2];
7503} VkImageBlit2;
7504
7505typedef struct VkBlitImageInfo2 {
7506 VkStructureType sType;
7507 const void* pNext;
7508 VkImage srcImage;
7509 VkImageLayout srcImageLayout;
7510 VkImage dstImage;
7511 VkImageLayout dstImageLayout;
7512 uint32_t regionCount;
7513 const VkImageBlit2* pRegions;
7514 VkFilter filter;
7515} VkBlitImageInfo2;
7516
7517typedef struct VkImageResolve2 {
7518 VkStructureType sType;
7519 const void* pNext;
7520 VkImageSubresourceLayers srcSubresource;
7521 VkOffset3D srcOffset;
7522 VkImageSubresourceLayers dstSubresource;
7523 VkOffset3D dstOffset;
7524 VkExtent3D extent;
7525} VkImageResolve2;
7526
7527typedef struct VkResolveImageInfo2 {
7528 VkStructureType sType;
7529 const void* pNext;
7530 VkImage srcImage;
7531 VkImageLayout srcImageLayout;
7532 VkImage dstImage;
7533 VkImageLayout dstImageLayout;
7534 uint32_t regionCount;
7535 const VkImageResolve2* pRegions;
7536} VkResolveImageInfo2;
7537
7538typedef struct VkPhysicalDeviceSubgroupSizeControlFeatures {
7539 VkStructureType sType;
7540 void* pNext;
7541 VkBool32 subgroupSizeControl;
7542 VkBool32 computeFullSubgroups;
7543} VkPhysicalDeviceSubgroupSizeControlFeatures;
7544
7545typedef struct VkPhysicalDeviceSubgroupSizeControlProperties {
7546 VkStructureType sType;
7547 void* pNext;
7548 uint32_t minSubgroupSize;
7549 uint32_t maxSubgroupSize;
7550 uint32_t maxComputeWorkgroupSubgroups;
7551 VkShaderStageFlags requiredSubgroupSizeStages;
7552} VkPhysicalDeviceSubgroupSizeControlProperties;
7553
7554typedef struct VkPipelineShaderStageRequiredSubgroupSizeCreateInfo {
7555 VkStructureType sType;
7556 const void* pNext;
7557 uint32_t requiredSubgroupSize;
7558} VkPipelineShaderStageRequiredSubgroupSizeCreateInfo;
7559
7560typedef struct VkPhysicalDeviceInlineUniformBlockFeatures {
7561 VkStructureType sType;
7562 void* pNext;
7563 VkBool32 inlineUniformBlock;
7564 VkBool32 descriptorBindingInlineUniformBlockUpdateAfterBind;
7565} VkPhysicalDeviceInlineUniformBlockFeatures;
7566
7567typedef struct VkPhysicalDeviceInlineUniformBlockProperties {
7568 VkStructureType sType;
7569 void* pNext;
7570 uint32_t maxInlineUniformBlockSize;
7571 uint32_t maxPerStageDescriptorInlineUniformBlocks;
7572 uint32_t maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks;
7573 uint32_t maxDescriptorSetInlineUniformBlocks;
7574 uint32_t maxDescriptorSetUpdateAfterBindInlineUniformBlocks;
7575} VkPhysicalDeviceInlineUniformBlockProperties;
7576
7577typedef struct VkWriteDescriptorSetInlineUniformBlock {
7578 VkStructureType sType;
7579 const void* pNext;
7580 uint32_t dataSize;
7581 const void* pData;
7582} VkWriteDescriptorSetInlineUniformBlock;
7583
7584typedef struct VkDescriptorPoolInlineUniformBlockCreateInfo {
7585 VkStructureType sType;
7586 const void* pNext;
7587 uint32_t maxInlineUniformBlockBindings;
7588} VkDescriptorPoolInlineUniformBlockCreateInfo;
7589
7590typedef struct VkPhysicalDeviceTextureCompressionASTCHDRFeatures {
7591 VkStructureType sType;
7592 void* pNext;
7593 VkBool32 textureCompressionASTC_HDR;
7594} VkPhysicalDeviceTextureCompressionASTCHDRFeatures;
7595
7596typedef struct VkRenderingAttachmentInfo {
7597 VkStructureType sType;
7598 const void* pNext;
7599 VkImageView imageView;
7600 VkImageLayout imageLayout;
7601 VkResolveModeFlagBits resolveMode;
7602 VkImageView resolveImageView;
7603 VkImageLayout resolveImageLayout;
7604 VkAttachmentLoadOp loadOp;
7605 VkAttachmentStoreOp storeOp;
7606 VkClearValue clearValue;
7607} VkRenderingAttachmentInfo;
7608
7609typedef struct VkRenderingInfo {
7610 VkStructureType sType;
7611 const void* pNext;
7612 VkRenderingFlags flags;
7613 VkRect2D renderArea;
7614 uint32_t layerCount;
7615 uint32_t viewMask;
7616 uint32_t colorAttachmentCount;
7617 const VkRenderingAttachmentInfo* pColorAttachments;
7618 const VkRenderingAttachmentInfo* pDepthAttachment;
7619 const VkRenderingAttachmentInfo* pStencilAttachment;
7620} VkRenderingInfo;
7621
7622typedef struct VkPipelineRenderingCreateInfo {
7623 VkStructureType sType;
7624 const void* pNext;
7625 uint32_t viewMask;
7626 uint32_t colorAttachmentCount;
7627 const VkFormat* pColorAttachmentFormats;
7628 VkFormat depthAttachmentFormat;
7629 VkFormat stencilAttachmentFormat;
7630} VkPipelineRenderingCreateInfo;
7631
7632typedef struct VkPhysicalDeviceDynamicRenderingFeatures {
7633 VkStructureType sType;
7634 void* pNext;
7635 VkBool32 dynamicRendering;
7636} VkPhysicalDeviceDynamicRenderingFeatures;
7637
7638typedef struct VkCommandBufferInheritanceRenderingInfo {
7639 VkStructureType sType;
7640 const void* pNext;
7641 VkRenderingFlags flags;
7642 uint32_t viewMask;
7643 uint32_t colorAttachmentCount;
7644 const VkFormat* pColorAttachmentFormats;
7645 VkFormat depthAttachmentFormat;
7646 VkFormat stencilAttachmentFormat;
7647 VkSampleCountFlagBits rasterizationSamples;
7648} VkCommandBufferInheritanceRenderingInfo;
7649
7650typedef struct VkPhysicalDeviceShaderIntegerDotProductFeatures {
7651 VkStructureType sType;
7652 void* pNext;
7653 VkBool32 shaderIntegerDotProduct;
7654} VkPhysicalDeviceShaderIntegerDotProductFeatures;
7655
7656typedef struct VkPhysicalDeviceShaderIntegerDotProductProperties {
7657 VkStructureType sType;
7658 void* pNext;
7659 VkBool32 integerDotProduct8BitUnsignedAccelerated;
7660 VkBool32 integerDotProduct8BitSignedAccelerated;
7661 VkBool32 integerDotProduct8BitMixedSignednessAccelerated;
7662 VkBool32 integerDotProduct4x8BitPackedUnsignedAccelerated;
7663 VkBool32 integerDotProduct4x8BitPackedSignedAccelerated;
7664 VkBool32 integerDotProduct4x8BitPackedMixedSignednessAccelerated;
7665 VkBool32 integerDotProduct16BitUnsignedAccelerated;
7666 VkBool32 integerDotProduct16BitSignedAccelerated;
7667 VkBool32 integerDotProduct16BitMixedSignednessAccelerated;
7668 VkBool32 integerDotProduct32BitUnsignedAccelerated;
7669 VkBool32 integerDotProduct32BitSignedAccelerated;
7670 VkBool32 integerDotProduct32BitMixedSignednessAccelerated;
7671 VkBool32 integerDotProduct64BitUnsignedAccelerated;
7672 VkBool32 integerDotProduct64BitSignedAccelerated;
7673 VkBool32 integerDotProduct64BitMixedSignednessAccelerated;
7674 VkBool32 integerDotProductAccumulatingSaturating8BitUnsignedAccelerated;
7675 VkBool32 integerDotProductAccumulatingSaturating8BitSignedAccelerated;
7676 VkBool32 integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated;
7677 VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated;
7678 VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated;
7679 VkBool32 integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated;
7680 VkBool32 integerDotProductAccumulatingSaturating16BitUnsignedAccelerated;
7681 VkBool32 integerDotProductAccumulatingSaturating16BitSignedAccelerated;
7682 VkBool32 integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated;
7683 VkBool32 integerDotProductAccumulatingSaturating32BitUnsignedAccelerated;
7684 VkBool32 integerDotProductAccumulatingSaturating32BitSignedAccelerated;
7685 VkBool32 integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated;
7686 VkBool32 integerDotProductAccumulatingSaturating64BitUnsignedAccelerated;
7687 VkBool32 integerDotProductAccumulatingSaturating64BitSignedAccelerated;
7688 VkBool32 integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated;
7689} VkPhysicalDeviceShaderIntegerDotProductProperties;
7690
7691typedef struct VkPhysicalDeviceTexelBufferAlignmentProperties {
7692 VkStructureType sType;
7693 void* pNext;
7694 VkDeviceSize storageTexelBufferOffsetAlignmentBytes;
7695 VkBool32 storageTexelBufferOffsetSingleTexelAlignment;
7696 VkDeviceSize uniformTexelBufferOffsetAlignmentBytes;
7697 VkBool32 uniformTexelBufferOffsetSingleTexelAlignment;
7698} VkPhysicalDeviceTexelBufferAlignmentProperties;
7699
7700typedef struct VkFormatProperties3 {
7701 VkStructureType sType;
7702 void* pNext;
7703 VkFormatFeatureFlags2 linearTilingFeatures;
7704 VkFormatFeatureFlags2 optimalTilingFeatures;
7705 VkFormatFeatureFlags2 bufferFeatures;
7706} VkFormatProperties3;
7707
7708typedef struct VkPhysicalDeviceMaintenance4Features {
7709 VkStructureType sType;
7710 void* pNext;
7711 VkBool32 maintenance4;
7712} VkPhysicalDeviceMaintenance4Features;
7713
7714typedef struct VkPhysicalDeviceMaintenance4Properties {
7715 VkStructureType sType;
7716 void* pNext;
7717 VkDeviceSize maxBufferSize;
7718} VkPhysicalDeviceMaintenance4Properties;
7719
7720typedef struct VkDeviceBufferMemoryRequirements {
7721 VkStructureType sType;
7722 const void* pNext;
7723 const VkBufferCreateInfo* pCreateInfo;
7724} VkDeviceBufferMemoryRequirements;
7725
7726typedef struct VkDeviceImageMemoryRequirements {
7727 VkStructureType sType;
7728 const void* pNext;
7729 const VkImageCreateInfo* pCreateInfo;
7730 VkImageAspectFlagBits planeAspect;
7731} VkDeviceImageMemoryRequirements;
7732
7733typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceToolProperties)(VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties);
7734typedef VkResult (VKAPI_PTR *PFN_vkCreatePrivateDataSlot)(VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot);
7735typedef void (VKAPI_PTR *PFN_vkDestroyPrivateDataSlot)(VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks* pAllocator);
7736typedef VkResult (VKAPI_PTR *PFN_vkSetPrivateData)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data);
7737typedef void (VKAPI_PTR *PFN_vkGetPrivateData)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t* pData);
7738typedef void (VKAPI_PTR *PFN_vkCmdSetEvent2)(VkCommandBuffer commandBuffer, VkEvent event, const VkDependencyInfo* pDependencyInfo);
7739typedef void (VKAPI_PTR *PFN_vkCmdResetEvent2)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags2 stageMask);
7740typedef void (VKAPI_PTR *PFN_vkCmdWaitEvents2)(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, const VkDependencyInfo* pDependencyInfos);
7741typedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier2)(VkCommandBuffer commandBuffer, const VkDependencyInfo* pDependencyInfo);
7742typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp2)(VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkQueryPool queryPool, uint32_t query);
7743typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit2)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo2* pSubmits, VkFence fence);
7744typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer2)(VkCommandBuffer commandBuffer, const VkCopyBufferInfo2* pCopyBufferInfo);
7745typedef void (VKAPI_PTR *PFN_vkCmdCopyImage2)(VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo);
7746typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage2)(VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo);
7747typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer2)(VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo);
7748typedef void (VKAPI_PTR *PFN_vkCmdBlitImage2)(VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo);
7749typedef void (VKAPI_PTR *PFN_vkCmdResolveImage2)(VkCommandBuffer commandBuffer, const VkResolveImageInfo2* pResolveImageInfo);
7750typedef void (VKAPI_PTR *PFN_vkCmdBeginRendering)(VkCommandBuffer commandBuffer, const VkRenderingInfo* pRenderingInfo);
7751typedef void (VKAPI_PTR *PFN_vkCmdEndRendering)(VkCommandBuffer commandBuffer);
7752typedef void (VKAPI_PTR *PFN_vkCmdSetCullMode)(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode);
7753typedef void (VKAPI_PTR *PFN_vkCmdSetFrontFace)(VkCommandBuffer commandBuffer, VkFrontFace frontFace);
7754typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveTopology)(VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology);
7755typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWithCount)(VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports);
7756typedef void (VKAPI_PTR *PFN_vkCmdSetScissorWithCount)(VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors);
7757typedef 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);
7758typedef void (VKAPI_PTR *PFN_vkCmdSetDepthTestEnable)(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable);
7759typedef void (VKAPI_PTR *PFN_vkCmdSetDepthWriteEnable)(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable);
7760typedef void (VKAPI_PTR *PFN_vkCmdSetDepthCompareOp)(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp);
7761typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBoundsTestEnable)(VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable);
7762typedef void (VKAPI_PTR *PFN_vkCmdSetStencilTestEnable)(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable);
7763typedef void (VKAPI_PTR *PFN_vkCmdSetStencilOp)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp);
7764typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizerDiscardEnable)(VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable);
7765typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBiasEnable)(VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable);
7766typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveRestartEnable)(VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable);
7767typedef void (VKAPI_PTR *PFN_vkGetDeviceBufferMemoryRequirements)(VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
7768typedef void (VKAPI_PTR *PFN_vkGetDeviceImageMemoryRequirements)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
7769typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSparseMemoryRequirements)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
7770
7771#ifndef VK_NO_PROTOTYPES
7772VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceToolProperties(
7773 VkPhysicalDevice physicalDevice,
7774 uint32_t* pToolCount,
7775 VkPhysicalDeviceToolProperties* pToolProperties);
7776
7777VKAPI_ATTR VkResult VKAPI_CALL vkCreatePrivateDataSlot(
7778 VkDevice device,
7779 const VkPrivateDataSlotCreateInfo* pCreateInfo,
7780 const VkAllocationCallbacks* pAllocator,
7781 VkPrivateDataSlot* pPrivateDataSlot);
7782
7783VKAPI_ATTR void VKAPI_CALL vkDestroyPrivateDataSlot(
7784 VkDevice device,
7785 VkPrivateDataSlot privateDataSlot,
7786 const VkAllocationCallbacks* pAllocator);
7787
7788VKAPI_ATTR VkResult VKAPI_CALL vkSetPrivateData(
7789 VkDevice device,
7790 VkObjectType objectType,
7791 uint64_t objectHandle,
7792 VkPrivateDataSlot privateDataSlot,
7793 uint64_t data);
7794
7795VKAPI_ATTR void VKAPI_CALL vkGetPrivateData(
7796 VkDevice device,
7797 VkObjectType objectType,
7798 uint64_t objectHandle,
7799 VkPrivateDataSlot privateDataSlot,
7800 uint64_t* pData);
7801
7802VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent2(
7803 VkCommandBuffer commandBuffer,
7804 VkEvent event,
7805 const VkDependencyInfo* pDependencyInfo);
7806
7807VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent2(
7808 VkCommandBuffer commandBuffer,
7809 VkEvent event,
7810 VkPipelineStageFlags2 stageMask);
7811
7812VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents2(
7813 VkCommandBuffer commandBuffer,
7814 uint32_t eventCount,
7815 const VkEvent* pEvents,
7816 const VkDependencyInfo* pDependencyInfos);
7817
7818VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier2(
7819 VkCommandBuffer commandBuffer,
7820 const VkDependencyInfo* pDependencyInfo);
7821
7822VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp2(
7823 VkCommandBuffer commandBuffer,
7824 VkPipelineStageFlags2 stage,
7825 VkQueryPool queryPool,
7826 uint32_t query);
7827
7828VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit2(
7829 VkQueue queue,
7830 uint32_t submitCount,
7831 const VkSubmitInfo2* pSubmits,
7832 VkFence fence);
7833
7834VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer2(
7835 VkCommandBuffer commandBuffer,
7836 const VkCopyBufferInfo2* pCopyBufferInfo);
7837
7838VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage2(
7839 VkCommandBuffer commandBuffer,
7840 const VkCopyImageInfo2* pCopyImageInfo);
7841
7842VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage2(
7843 VkCommandBuffer commandBuffer,
7844 const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo);
7845
7846VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer2(
7847 VkCommandBuffer commandBuffer,
7848 const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo);
7849
7850VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage2(
7851 VkCommandBuffer commandBuffer,
7852 const VkBlitImageInfo2* pBlitImageInfo);
7853
7854VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage2(
7855 VkCommandBuffer commandBuffer,
7856 const VkResolveImageInfo2* pResolveImageInfo);
7857
7858VKAPI_ATTR void VKAPI_CALL vkCmdBeginRendering(
7859 VkCommandBuffer commandBuffer,
7860 const VkRenderingInfo* pRenderingInfo);
7861
7862VKAPI_ATTR void VKAPI_CALL vkCmdEndRendering(
7863 VkCommandBuffer commandBuffer);
7864
7865VKAPI_ATTR void VKAPI_CALL vkCmdSetCullMode(
7866 VkCommandBuffer commandBuffer,
7867 VkCullModeFlags cullMode);
7868
7869VKAPI_ATTR void VKAPI_CALL vkCmdSetFrontFace(
7870 VkCommandBuffer commandBuffer,
7871 VkFrontFace frontFace);
7872
7873VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveTopology(
7874 VkCommandBuffer commandBuffer,
7875 VkPrimitiveTopology primitiveTopology);
7876
7877VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWithCount(
7878 VkCommandBuffer commandBuffer,
7879 uint32_t viewportCount,
7880 const VkViewport* pViewports);
7881
7882VKAPI_ATTR void VKAPI_CALL vkCmdSetScissorWithCount(
7883 VkCommandBuffer commandBuffer,
7884 uint32_t scissorCount,
7885 const VkRect2D* pScissors);
7886
7887VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers2(
7888 VkCommandBuffer commandBuffer,
7889 uint32_t firstBinding,
7890 uint32_t bindingCount,
7891 const VkBuffer* pBuffers,
7892 const VkDeviceSize* pOffsets,
7893 const VkDeviceSize* pSizes,
7894 const VkDeviceSize* pStrides);
7895
7896VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthTestEnable(
7897 VkCommandBuffer commandBuffer,
7898 VkBool32 depthTestEnable);
7899
7900VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthWriteEnable(
7901 VkCommandBuffer commandBuffer,
7902 VkBool32 depthWriteEnable);
7903
7904VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthCompareOp(
7905 VkCommandBuffer commandBuffer,
7906 VkCompareOp depthCompareOp);
7907
7908VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBoundsTestEnable(
7909 VkCommandBuffer commandBuffer,
7910 VkBool32 depthBoundsTestEnable);
7911
7912VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilTestEnable(
7913 VkCommandBuffer commandBuffer,
7914 VkBool32 stencilTestEnable);
7915
7916VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilOp(
7917 VkCommandBuffer commandBuffer,
7918 VkStencilFaceFlags faceMask,
7919 VkStencilOp failOp,
7920 VkStencilOp passOp,
7921 VkStencilOp depthFailOp,
7922 VkCompareOp compareOp);
7923
7924VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizerDiscardEnable(
7925 VkCommandBuffer commandBuffer,
7926 VkBool32 rasterizerDiscardEnable);
7927
7928VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBiasEnable(
7929 VkCommandBuffer commandBuffer,
7930 VkBool32 depthBiasEnable);
7931
7932VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveRestartEnable(
7933 VkCommandBuffer commandBuffer,
7934 VkBool32 primitiveRestartEnable);
7935
7936VKAPI_ATTR void VKAPI_CALL vkGetDeviceBufferMemoryRequirements(
7937 VkDevice device,
7938 const VkDeviceBufferMemoryRequirements* pInfo,
7939 VkMemoryRequirements2* pMemoryRequirements);
7940
7941VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageMemoryRequirements(
7942 VkDevice device,
7943 const VkDeviceImageMemoryRequirements* pInfo,
7944 VkMemoryRequirements2* pMemoryRequirements);
7945
7946VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSparseMemoryRequirements(
7947 VkDevice device,
7948 const VkDeviceImageMemoryRequirements* pInfo,
7949 uint32_t* pSparseMemoryRequirementCount,
7950 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
7951#endif
7952
7953
7954// VK_VERSION_1_4 is a preprocessor guard. Do not pass it to API calls.
7955#define VK_VERSION_1_4 1
7956// Vulkan 1.4 version number
7957#define VK_API_VERSION_1_4 VK_MAKE_API_VERSION(0, 1, 4, 0)// Patch version should always be set to 0
7958
7959#define VK_MAX_GLOBAL_PRIORITY_SIZE 16U
7960
7961typedef enum VkPipelineRobustnessBufferBehavior {
7962 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT = 0,
7963 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED = 1,
7964 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS = 2,
7965 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2 = 3,
7966 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT_EXT = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DEVICE_DEFAULT,
7967 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED_EXT = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_DISABLED,
7968 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_EXT = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS,
7969 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2_EXT = VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_ROBUST_BUFFER_ACCESS_2,
7970 VK_PIPELINE_ROBUSTNESS_BUFFER_BEHAVIOR_MAX_ENUM = 0x7FFFFFFF
7971} VkPipelineRobustnessBufferBehavior;
7972
7973typedef enum VkPipelineRobustnessImageBehavior {
7974 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT = 0,
7975 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED = 1,
7976 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS = 2,
7977 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2 = 3,
7978 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT_EXT = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DEVICE_DEFAULT,
7979 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED_EXT = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_DISABLED,
7980 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_EXT = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS,
7981 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2_EXT = VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_ROBUST_IMAGE_ACCESS_2,
7982 VK_PIPELINE_ROBUSTNESS_IMAGE_BEHAVIOR_MAX_ENUM = 0x7FFFFFFF
7983} VkPipelineRobustnessImageBehavior;
7984
7985typedef enum VkQueueGlobalPriority {
7986 VK_QUEUE_GLOBAL_PRIORITY_LOW = 128,
7987 VK_QUEUE_GLOBAL_PRIORITY_MEDIUM = 256,
7988 VK_QUEUE_GLOBAL_PRIORITY_HIGH = 512,
7989 VK_QUEUE_GLOBAL_PRIORITY_REALTIME = 1024,
7990 VK_QUEUE_GLOBAL_PRIORITY_LOW_EXT = VK_QUEUE_GLOBAL_PRIORITY_LOW,
7991 VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_EXT = VK_QUEUE_GLOBAL_PRIORITY_MEDIUM,
7992 VK_QUEUE_GLOBAL_PRIORITY_HIGH_EXT = VK_QUEUE_GLOBAL_PRIORITY_HIGH,
7993 VK_QUEUE_GLOBAL_PRIORITY_REALTIME_EXT = VK_QUEUE_GLOBAL_PRIORITY_REALTIME,
7994 VK_QUEUE_GLOBAL_PRIORITY_LOW_KHR = VK_QUEUE_GLOBAL_PRIORITY_LOW,
7995 VK_QUEUE_GLOBAL_PRIORITY_MEDIUM_KHR = VK_QUEUE_GLOBAL_PRIORITY_MEDIUM,
7996 VK_QUEUE_GLOBAL_PRIORITY_HIGH_KHR = VK_QUEUE_GLOBAL_PRIORITY_HIGH,
7997 VK_QUEUE_GLOBAL_PRIORITY_REALTIME_KHR = VK_QUEUE_GLOBAL_PRIORITY_REALTIME,
7998 VK_QUEUE_GLOBAL_PRIORITY_MAX_ENUM = 0x7FFFFFFF
7999} VkQueueGlobalPriority;
8000
8001typedef enum VkLineRasterizationMode {
8002 VK_LINE_RASTERIZATION_MODE_DEFAULT = 0,
8003 VK_LINE_RASTERIZATION_MODE_RECTANGULAR = 1,
8004 VK_LINE_RASTERIZATION_MODE_BRESENHAM = 2,
8005 VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH = 3,
8006 VK_LINE_RASTERIZATION_MODE_DEFAULT_EXT = VK_LINE_RASTERIZATION_MODE_DEFAULT,
8007 VK_LINE_RASTERIZATION_MODE_RECTANGULAR_EXT = VK_LINE_RASTERIZATION_MODE_RECTANGULAR,
8008 VK_LINE_RASTERIZATION_MODE_BRESENHAM_EXT = VK_LINE_RASTERIZATION_MODE_BRESENHAM,
8009 VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_EXT = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH,
8010 VK_LINE_RASTERIZATION_MODE_DEFAULT_KHR = VK_LINE_RASTERIZATION_MODE_DEFAULT,
8011 VK_LINE_RASTERIZATION_MODE_RECTANGULAR_KHR = VK_LINE_RASTERIZATION_MODE_RECTANGULAR,
8012 VK_LINE_RASTERIZATION_MODE_BRESENHAM_KHR = VK_LINE_RASTERIZATION_MODE_BRESENHAM,
8013 VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH_KHR = VK_LINE_RASTERIZATION_MODE_RECTANGULAR_SMOOTH,
8014 VK_LINE_RASTERIZATION_MODE_MAX_ENUM = 0x7FFFFFFF
8015} VkLineRasterizationMode;
8016
8017typedef enum VkMemoryUnmapFlagBits {
8018 VK_MEMORY_UNMAP_RESERVE_BIT_EXT = 0x00000001,
8019 VK_MEMORY_UNMAP_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
8020} VkMemoryUnmapFlagBits;
8021typedef VkFlags VkMemoryUnmapFlags;
8022typedef VkFlags64 VkPipelineCreateFlags2;
8023
8024// Flag bits for VkPipelineCreateFlagBits2
8025typedef VkFlags64 VkPipelineCreateFlagBits2;
8026static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT = 0x00000001ULL;
8027static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT = 0x00000002ULL;
8028static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DERIVATIVE_BIT = 0x00000004ULL;
8029static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT = 0x00000008ULL;
8030static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DISPATCH_BASE_BIT = 0x00000010ULL;
8031static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT = 0x00000100ULL;
8032static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT = 0x00000200ULL;
8033static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT = 0x08000000ULL;
8034static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT = 0x40000000ULL;
8035#ifdef VK_ENABLE_BETA_EXTENSIONS
8036static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_EXECUTION_GRAPH_BIT_AMDX = 0x100000000ULL;
8037#endif
8038static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_BUILT_IN_PRIMITIVES_BIT_KHR = 0x00001000ULL;
8039static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_ALLOW_SPHERES_AND_LINEAR_SWEPT_SPHERES_BIT_NV = 0x200000000ULL;
8040static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_ENABLE_LEGACY_DITHERING_BIT_EXT = 0x400000000ULL;
8041static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DISABLE_OPTIMIZATION_BIT_KHR = 0x00000001ULL;
8042static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_ALLOW_DERIVATIVES_BIT_KHR = 0x00000002ULL;
8043static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DERIVATIVE_BIT_KHR = 0x00000004ULL;
8044static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_VIEW_INDEX_FROM_DEVICE_INDEX_BIT_KHR = 0x00000008ULL;
8045static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DISPATCH_BASE_BIT_KHR = 0x00000010ULL;
8046static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DEFER_COMPILE_BIT_NV = 0x00000020ULL;
8047static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_CAPTURE_STATISTICS_BIT_KHR = 0x00000040ULL;
8048static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_CAPTURE_INTERNAL_REPRESENTATIONS_BIT_KHR = 0x00000080ULL;
8049static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_FAIL_ON_PIPELINE_COMPILE_REQUIRED_BIT_KHR = 0x00000100ULL;
8050static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_EARLY_RETURN_ON_FAILURE_BIT_KHR = 0x00000200ULL;
8051static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_LINK_TIME_OPTIMIZATION_BIT_EXT = 0x00000400ULL;
8052static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RETAIN_LINK_TIME_OPTIMIZATION_INFO_BIT_EXT = 0x00800000ULL;
8053static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_LIBRARY_BIT_KHR = 0x00000800ULL;
8054static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_TRIANGLES_BIT_KHR = 0x00001000ULL;
8055static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_SKIP_AABBS_BIT_KHR = 0x00002000ULL;
8056static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_ANY_HIT_SHADERS_BIT_KHR = 0x00004000ULL;
8057static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_CLOSEST_HIT_SHADERS_BIT_KHR = 0x00008000ULL;
8058static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_MISS_SHADERS_BIT_KHR = 0x00010000ULL;
8059static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_NO_NULL_INTERSECTION_SHADERS_BIT_KHR = 0x00020000ULL;
8060static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_SHADER_GROUP_HANDLE_CAPTURE_REPLAY_BIT_KHR = 0x00080000ULL;
8061static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_NV = 0x00040000ULL;
8062static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_ALLOW_MOTION_BIT_NV = 0x00100000ULL;
8063static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_KHR = 0x00200000ULL;
8064static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RENDERING_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00400000ULL;
8065static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_OPACITY_MICROMAP_BIT_EXT = 0x01000000ULL;
8066static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_COLOR_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x02000000ULL;
8067static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DEPTH_STENCIL_ATTACHMENT_FEEDBACK_LOOP_BIT_EXT = 0x04000000ULL;
8068static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_NO_PROTECTED_ACCESS_BIT_EXT = 0x08000000ULL;
8069static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_PROTECTED_ACCESS_ONLY_BIT_EXT = 0x40000000ULL;
8070static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_RAY_TRACING_DISPLACEMENT_MICROMAP_BIT_NV = 0x10000000ULL;
8071static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DESCRIPTOR_BUFFER_BIT_EXT = 0x20000000ULL;
8072static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_DISALLOW_OPACITY_MICROMAP_BIT_ARM = 0x2000000000ULL;
8073static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_CAPTURE_DATA_BIT_KHR = 0x80000000ULL;
8074static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_INDIRECT_BINDABLE_BIT_EXT = 0x4000000000ULL;
8075static const VkPipelineCreateFlagBits2 VK_PIPELINE_CREATE_2_PER_LAYER_FRAGMENT_DENSITY_BIT_VALVE = 0x10000000000ULL;
8076
8077typedef VkFlags64 VkBufferUsageFlags2;
8078
8079// Flag bits for VkBufferUsageFlagBits2
8080typedef VkFlags64 VkBufferUsageFlagBits2;
8081static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFER_SRC_BIT = 0x00000001ULL;
8082static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFER_DST_BIT = 0x00000002ULL;
8083static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT = 0x00000004ULL;
8084static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT = 0x00000008ULL;
8085static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_UNIFORM_BUFFER_BIT = 0x00000010ULL;
8086static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT = 0x00000020ULL;
8087static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_INDEX_BUFFER_BIT = 0x00000040ULL;
8088static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VERTEX_BUFFER_BIT = 0x00000080ULL;
8089static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_INDIRECT_BUFFER_BIT = 0x00000100ULL;
8090static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT = 0x00020000ULL;
8091#ifdef VK_ENABLE_BETA_EXTENSIONS
8092static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_EXECUTION_GRAPH_SCRATCH_BIT_AMDX = 0x02000000ULL;
8093#endif
8094static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFER_SRC_BIT_KHR = 0x00000001ULL;
8095static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFER_DST_BIT_KHR = 0x00000002ULL;
8096static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_UNIFORM_TEXEL_BUFFER_BIT_KHR = 0x00000004ULL;
8097static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_STORAGE_TEXEL_BUFFER_BIT_KHR = 0x00000008ULL;
8098static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_UNIFORM_BUFFER_BIT_KHR = 0x00000010ULL;
8099static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_STORAGE_BUFFER_BIT_KHR = 0x00000020ULL;
8100static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_INDEX_BUFFER_BIT_KHR = 0x00000040ULL;
8101static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VERTEX_BUFFER_BIT_KHR = 0x00000080ULL;
8102static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_INDIRECT_BUFFER_BIT_KHR = 0x00000100ULL;
8103static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_CONDITIONAL_RENDERING_BIT_EXT = 0x00000200ULL;
8104static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_SHADER_BINDING_TABLE_BIT_KHR = 0x00000400ULL;
8105static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_RAY_TRACING_BIT_NV = 0x00000400ULL;
8106static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_BUFFER_BIT_EXT = 0x00000800ULL;
8107static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TRANSFORM_FEEDBACK_COUNTER_BUFFER_BIT_EXT = 0x00001000ULL;
8108static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VIDEO_DECODE_SRC_BIT_KHR = 0x00002000ULL;
8109static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VIDEO_DECODE_DST_BIT_KHR = 0x00004000ULL;
8110static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VIDEO_ENCODE_DST_BIT_KHR = 0x00008000ULL;
8111static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_VIDEO_ENCODE_SRC_BIT_KHR = 0x00010000ULL;
8112static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_SHADER_DEVICE_ADDRESS_BIT_KHR = 0x00020000ULL;
8113static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_BUILD_INPUT_READ_ONLY_BIT_KHR = 0x00080000ULL;
8114static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_ACCELERATION_STRUCTURE_STORAGE_BIT_KHR = 0x00100000ULL;
8115static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_SAMPLER_DESCRIPTOR_BUFFER_BIT_EXT = 0x00200000ULL;
8116static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_RESOURCE_DESCRIPTOR_BUFFER_BIT_EXT = 0x00400000ULL;
8117static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_PUSH_DESCRIPTORS_DESCRIPTOR_BUFFER_BIT_EXT = 0x04000000ULL;
8118static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_MICROMAP_BUILD_INPUT_READ_ONLY_BIT_EXT = 0x00800000ULL;
8119static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_MICROMAP_STORAGE_BIT_EXT = 0x01000000ULL;
8120#ifdef VK_ENABLE_BETA_EXTENSIONS
8121static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_COMPRESSED_DATA_DGF1_BIT_AMDX = 0x200000000ULL;
8122#endif
8123static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_DATA_GRAPH_FOREIGN_DESCRIPTOR_BIT_ARM = 0x20000000ULL;
8124static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_TILE_MEMORY_BIT_QCOM = 0x08000000ULL;
8125static const VkBufferUsageFlagBits2 VK_BUFFER_USAGE_2_PREPROCESS_BUFFER_BIT_EXT = 0x80000000ULL;
8126
8127
8128typedef enum VkHostImageCopyFlagBits {
8129 VK_HOST_IMAGE_COPY_MEMCPY_BIT = 0x00000001,
8130 // VK_HOST_IMAGE_COPY_MEMCPY is a deprecated alias
8131 VK_HOST_IMAGE_COPY_MEMCPY = VK_HOST_IMAGE_COPY_MEMCPY_BIT,
8132 VK_HOST_IMAGE_COPY_MEMCPY_BIT_EXT = VK_HOST_IMAGE_COPY_MEMCPY_BIT,
8133 // VK_HOST_IMAGE_COPY_MEMCPY_EXT is a deprecated alias
8134 VK_HOST_IMAGE_COPY_MEMCPY_EXT = VK_HOST_IMAGE_COPY_MEMCPY_BIT,
8135 VK_HOST_IMAGE_COPY_FLAG_BITS_MAX_ENUM = 0x7FFFFFFF
8136} VkHostImageCopyFlagBits;
8137typedef VkFlags VkHostImageCopyFlags;
8138typedef struct VkPhysicalDeviceVulkan14Features {
8139 VkStructureType sType;
8140 void* pNext;
8141 VkBool32 globalPriorityQuery;
8142 VkBool32 shaderSubgroupRotate;
8143 VkBool32 shaderSubgroupRotateClustered;
8144 VkBool32 shaderFloatControls2;
8145 VkBool32 shaderExpectAssume;
8146 VkBool32 rectangularLines;
8147 VkBool32 bresenhamLines;
8148 VkBool32 smoothLines;
8149 VkBool32 stippledRectangularLines;
8150 VkBool32 stippledBresenhamLines;
8151 VkBool32 stippledSmoothLines;
8152 VkBool32 vertexAttributeInstanceRateDivisor;
8153 VkBool32 vertexAttributeInstanceRateZeroDivisor;
8154 VkBool32 indexTypeUint8;
8155 VkBool32 dynamicRenderingLocalRead;
8156 VkBool32 maintenance5;
8157 VkBool32 maintenance6;
8158 VkBool32 pipelineProtectedAccess;
8159 VkBool32 pipelineRobustness;
8160 VkBool32 hostImageCopy;
8161 VkBool32 pushDescriptor;
8162} VkPhysicalDeviceVulkan14Features;
8163
8164typedef struct VkPhysicalDeviceVulkan14Properties {
8165 VkStructureType sType;
8166 void* pNext;
8167 uint32_t lineSubPixelPrecisionBits;
8168 uint32_t maxVertexAttribDivisor;
8169 VkBool32 supportsNonZeroFirstInstance;
8170 uint32_t maxPushDescriptors;
8171 VkBool32 dynamicRenderingLocalReadDepthStencilAttachments;
8172 VkBool32 dynamicRenderingLocalReadMultisampledAttachments;
8173 VkBool32 earlyFragmentMultisampleCoverageAfterSampleCounting;
8174 VkBool32 earlyFragmentSampleMaskTestBeforeSampleCounting;
8175 VkBool32 depthStencilSwizzleOneSupport;
8176 VkBool32 polygonModePointSize;
8177 VkBool32 nonStrictSinglePixelWideLinesUseParallelogram;
8178 VkBool32 nonStrictWideLinesUseParallelogram;
8179 VkBool32 blockTexelViewCompatibleMultipleLayers;
8180 uint32_t maxCombinedImageSamplerDescriptorCount;
8181 VkBool32 fragmentShadingRateClampCombinerInputs;
8182 VkPipelineRobustnessBufferBehavior defaultRobustnessStorageBuffers;
8183 VkPipelineRobustnessBufferBehavior defaultRobustnessUniformBuffers;
8184 VkPipelineRobustnessBufferBehavior defaultRobustnessVertexInputs;
8185 VkPipelineRobustnessImageBehavior defaultRobustnessImages;
8186 uint32_t copySrcLayoutCount;
8187 VkImageLayout* pCopySrcLayouts;
8188 uint32_t copyDstLayoutCount;
8189 VkImageLayout* pCopyDstLayouts;
8190 uint8_t optimalTilingLayoutUUID[VK_UUID_SIZE];
8191 VkBool32 identicalMemoryTypeRequirements;
8192} VkPhysicalDeviceVulkan14Properties;
8193
8194typedef struct VkDeviceQueueGlobalPriorityCreateInfo {
8195 VkStructureType sType;
8196 const void* pNext;
8197 VkQueueGlobalPriority globalPriority;
8198} VkDeviceQueueGlobalPriorityCreateInfo;
8199
8200typedef struct VkPhysicalDeviceGlobalPriorityQueryFeatures {
8201 VkStructureType sType;
8202 void* pNext;
8203 VkBool32 globalPriorityQuery;
8204} VkPhysicalDeviceGlobalPriorityQueryFeatures;
8205
8206typedef struct VkQueueFamilyGlobalPriorityProperties {
8207 VkStructureType sType;
8208 void* pNext;
8209 uint32_t priorityCount;
8210 VkQueueGlobalPriority priorities[VK_MAX_GLOBAL_PRIORITY_SIZE];
8211} VkQueueFamilyGlobalPriorityProperties;
8212
8213typedef struct VkPhysicalDeviceShaderSubgroupRotateFeatures {
8214 VkStructureType sType;
8215 void* pNext;
8216 VkBool32 shaderSubgroupRotate;
8217 VkBool32 shaderSubgroupRotateClustered;
8218} VkPhysicalDeviceShaderSubgroupRotateFeatures;
8219
8220typedef struct VkPhysicalDeviceShaderFloatControls2Features {
8221 VkStructureType sType;
8222 void* pNext;
8223 VkBool32 shaderFloatControls2;
8224} VkPhysicalDeviceShaderFloatControls2Features;
8225
8226typedef struct VkPhysicalDeviceShaderExpectAssumeFeatures {
8227 VkStructureType sType;
8228 void* pNext;
8229 VkBool32 shaderExpectAssume;
8230} VkPhysicalDeviceShaderExpectAssumeFeatures;
8231
8232typedef struct VkPhysicalDeviceLineRasterizationFeatures {
8233 VkStructureType sType;
8234 void* pNext;
8235 VkBool32 rectangularLines;
8236 VkBool32 bresenhamLines;
8237 VkBool32 smoothLines;
8238 VkBool32 stippledRectangularLines;
8239 VkBool32 stippledBresenhamLines;
8240 VkBool32 stippledSmoothLines;
8241} VkPhysicalDeviceLineRasterizationFeatures;
8242
8243typedef struct VkPhysicalDeviceLineRasterizationProperties {
8244 VkStructureType sType;
8245 void* pNext;
8246 uint32_t lineSubPixelPrecisionBits;
8247} VkPhysicalDeviceLineRasterizationProperties;
8248
8249typedef struct VkPipelineRasterizationLineStateCreateInfo {
8250 VkStructureType sType;
8251 const void* pNext;
8252 VkLineRasterizationMode lineRasterizationMode;
8253 VkBool32 stippledLineEnable;
8254 uint32_t lineStippleFactor;
8255 uint16_t lineStipplePattern;
8256} VkPipelineRasterizationLineStateCreateInfo;
8257
8258typedef struct VkPhysicalDeviceVertexAttributeDivisorProperties {
8259 VkStructureType sType;
8260 void* pNext;
8261 uint32_t maxVertexAttribDivisor;
8262 VkBool32 supportsNonZeroFirstInstance;
8263} VkPhysicalDeviceVertexAttributeDivisorProperties;
8264
8265typedef struct VkVertexInputBindingDivisorDescription {
8266 uint32_t binding;
8267 uint32_t divisor;
8268} VkVertexInputBindingDivisorDescription;
8269
8270typedef struct VkPipelineVertexInputDivisorStateCreateInfo {
8271 VkStructureType sType;
8272 const void* pNext;
8273 uint32_t vertexBindingDivisorCount;
8274 const VkVertexInputBindingDivisorDescription* pVertexBindingDivisors;
8275} VkPipelineVertexInputDivisorStateCreateInfo;
8276
8277typedef struct VkPhysicalDeviceVertexAttributeDivisorFeatures {
8278 VkStructureType sType;
8279 void* pNext;
8280 VkBool32 vertexAttributeInstanceRateDivisor;
8281 VkBool32 vertexAttributeInstanceRateZeroDivisor;
8282} VkPhysicalDeviceVertexAttributeDivisorFeatures;
8283
8284typedef struct VkPhysicalDeviceIndexTypeUint8Features {
8285 VkStructureType sType;
8286 void* pNext;
8287 VkBool32 indexTypeUint8;
8288} VkPhysicalDeviceIndexTypeUint8Features;
8289
8290typedef struct VkMemoryMapInfo {
8291 VkStructureType sType;
8292 const void* pNext;
8293 VkMemoryMapFlags flags;
8294 VkDeviceMemory memory;
8295 VkDeviceSize offset;
8296 VkDeviceSize size;
8297} VkMemoryMapInfo;
8298
8299typedef struct VkMemoryUnmapInfo {
8300 VkStructureType sType;
8301 const void* pNext;
8302 VkMemoryUnmapFlags flags;
8303 VkDeviceMemory memory;
8304} VkMemoryUnmapInfo;
8305
8306typedef struct VkPhysicalDeviceMaintenance5Features {
8307 VkStructureType sType;
8308 void* pNext;
8309 VkBool32 maintenance5;
8310} VkPhysicalDeviceMaintenance5Features;
8311
8312typedef struct VkPhysicalDeviceMaintenance5Properties {
8313 VkStructureType sType;
8314 void* pNext;
8315 VkBool32 earlyFragmentMultisampleCoverageAfterSampleCounting;
8316 VkBool32 earlyFragmentSampleMaskTestBeforeSampleCounting;
8317 VkBool32 depthStencilSwizzleOneSupport;
8318 VkBool32 polygonModePointSize;
8319 VkBool32 nonStrictSinglePixelWideLinesUseParallelogram;
8320 VkBool32 nonStrictWideLinesUseParallelogram;
8321} VkPhysicalDeviceMaintenance5Properties;
8322
8323typedef struct VkRenderingAreaInfo {
8324 VkStructureType sType;
8325 const void* pNext;
8326 uint32_t viewMask;
8327 uint32_t colorAttachmentCount;
8328 const VkFormat* pColorAttachmentFormats;
8329 VkFormat depthAttachmentFormat;
8330 VkFormat stencilAttachmentFormat;
8331} VkRenderingAreaInfo;
8332
8333typedef struct VkImageSubresource2 {
8334 VkStructureType sType;
8335 void* pNext;
8336 VkImageSubresource imageSubresource;
8337} VkImageSubresource2;
8338
8339typedef struct VkDeviceImageSubresourceInfo {
8340 VkStructureType sType;
8341 const void* pNext;
8342 const VkImageCreateInfo* pCreateInfo;
8343 const VkImageSubresource2* pSubresource;
8344} VkDeviceImageSubresourceInfo;
8345
8346typedef struct VkSubresourceLayout2 {
8347 VkStructureType sType;
8348 void* pNext;
8349 VkSubresourceLayout subresourceLayout;
8350} VkSubresourceLayout2;
8351
8352typedef struct VkPipelineCreateFlags2CreateInfo {
8353 VkStructureType sType;
8354 const void* pNext;
8355 VkPipelineCreateFlags2 flags;
8356} VkPipelineCreateFlags2CreateInfo;
8357
8358typedef struct VkBufferUsageFlags2CreateInfo {
8359 VkStructureType sType;
8360 const void* pNext;
8361 VkBufferUsageFlags2 usage;
8362} VkBufferUsageFlags2CreateInfo;
8363
8364typedef struct VkPhysicalDevicePushDescriptorProperties {
8365 VkStructureType sType;
8366 void* pNext;
8367 uint32_t maxPushDescriptors;
8368} VkPhysicalDevicePushDescriptorProperties;
8369
8370typedef struct VkPhysicalDeviceDynamicRenderingLocalReadFeatures {
8371 VkStructureType sType;
8372 void* pNext;
8373 VkBool32 dynamicRenderingLocalRead;
8374} VkPhysicalDeviceDynamicRenderingLocalReadFeatures;
8375
8376typedef struct VkRenderingAttachmentLocationInfo {
8377 VkStructureType sType;
8378 const void* pNext;
8379 uint32_t colorAttachmentCount;
8380 const uint32_t* pColorAttachmentLocations;
8381} VkRenderingAttachmentLocationInfo;
8382
8383typedef struct VkRenderingInputAttachmentIndexInfo {
8384 VkStructureType sType;
8385 const void* pNext;
8386 uint32_t colorAttachmentCount;
8387 const uint32_t* pColorAttachmentInputIndices;
8388 const uint32_t* pDepthInputAttachmentIndex;
8389 const uint32_t* pStencilInputAttachmentIndex;
8390} VkRenderingInputAttachmentIndexInfo;
8391
8392typedef struct VkPhysicalDeviceMaintenance6Features {
8393 VkStructureType sType;
8394 void* pNext;
8395 VkBool32 maintenance6;
8396} VkPhysicalDeviceMaintenance6Features;
8397
8398typedef struct VkPhysicalDeviceMaintenance6Properties {
8399 VkStructureType sType;
8400 void* pNext;
8401 VkBool32 blockTexelViewCompatibleMultipleLayers;
8402 uint32_t maxCombinedImageSamplerDescriptorCount;
8403 VkBool32 fragmentShadingRateClampCombinerInputs;
8404} VkPhysicalDeviceMaintenance6Properties;
8405
8406typedef struct VkBindMemoryStatus {
8407 VkStructureType sType;
8408 const void* pNext;
8409 VkResult* pResult;
8410} VkBindMemoryStatus;
8411
8412typedef struct VkBindDescriptorSetsInfo {
8413 VkStructureType sType;
8414 const void* pNext;
8415 VkShaderStageFlags stageFlags;
8416 VkPipelineLayout layout;
8417 uint32_t firstSet;
8418 uint32_t descriptorSetCount;
8419 const VkDescriptorSet* pDescriptorSets;
8420 uint32_t dynamicOffsetCount;
8421 const uint32_t* pDynamicOffsets;
8422} VkBindDescriptorSetsInfo;
8423
8424typedef struct VkPushConstantsInfo {
8425 VkStructureType sType;
8426 const void* pNext;
8427 VkPipelineLayout layout;
8428 VkShaderStageFlags stageFlags;
8429 uint32_t offset;
8430 uint32_t size;
8431 const void* pValues;
8432} VkPushConstantsInfo;
8433
8434typedef struct VkPushDescriptorSetInfo {
8435 VkStructureType sType;
8436 const void* pNext;
8437 VkShaderStageFlags stageFlags;
8438 VkPipelineLayout layout;
8439 uint32_t set;
8440 uint32_t descriptorWriteCount;
8441 const VkWriteDescriptorSet* pDescriptorWrites;
8442} VkPushDescriptorSetInfo;
8443
8444typedef struct VkPushDescriptorSetWithTemplateInfo {
8445 VkStructureType sType;
8446 const void* pNext;
8447 VkDescriptorUpdateTemplate descriptorUpdateTemplate;
8448 VkPipelineLayout layout;
8449 uint32_t set;
8450 const void* pData;
8451} VkPushDescriptorSetWithTemplateInfo;
8452
8453typedef struct VkPhysicalDevicePipelineProtectedAccessFeatures {
8454 VkStructureType sType;
8455 void* pNext;
8456 VkBool32 pipelineProtectedAccess;
8457} VkPhysicalDevicePipelineProtectedAccessFeatures;
8458
8459typedef struct VkPhysicalDevicePipelineRobustnessFeatures {
8460 VkStructureType sType;
8461 void* pNext;
8462 VkBool32 pipelineRobustness;
8463} VkPhysicalDevicePipelineRobustnessFeatures;
8464
8465typedef struct VkPhysicalDevicePipelineRobustnessProperties {
8466 VkStructureType sType;
8467 void* pNext;
8468 VkPipelineRobustnessBufferBehavior defaultRobustnessStorageBuffers;
8469 VkPipelineRobustnessBufferBehavior defaultRobustnessUniformBuffers;
8470 VkPipelineRobustnessBufferBehavior defaultRobustnessVertexInputs;
8471 VkPipelineRobustnessImageBehavior defaultRobustnessImages;
8472} VkPhysicalDevicePipelineRobustnessProperties;
8473
8474typedef struct VkPipelineRobustnessCreateInfo {
8475 VkStructureType sType;
8476 const void* pNext;
8477 VkPipelineRobustnessBufferBehavior storageBuffers;
8478 VkPipelineRobustnessBufferBehavior uniformBuffers;
8479 VkPipelineRobustnessBufferBehavior vertexInputs;
8480 VkPipelineRobustnessImageBehavior images;
8481} VkPipelineRobustnessCreateInfo;
8482
8483typedef struct VkPhysicalDeviceHostImageCopyFeatures {
8484 VkStructureType sType;
8485 void* pNext;
8486 VkBool32 hostImageCopy;
8487} VkPhysicalDeviceHostImageCopyFeatures;
8488
8489typedef struct VkPhysicalDeviceHostImageCopyProperties {
8490 VkStructureType sType;
8491 void* pNext;
8492 uint32_t copySrcLayoutCount;
8493 VkImageLayout* pCopySrcLayouts;
8494 uint32_t copyDstLayoutCount;
8495 VkImageLayout* pCopyDstLayouts;
8496 uint8_t optimalTilingLayoutUUID[VK_UUID_SIZE];
8497 VkBool32 identicalMemoryTypeRequirements;
8498} VkPhysicalDeviceHostImageCopyProperties;
8499
8500typedef struct VkMemoryToImageCopy {
8501 VkStructureType sType;
8502 const void* pNext;
8503 const void* pHostPointer;
8504 uint32_t memoryRowLength;
8505 uint32_t memoryImageHeight;
8506 VkImageSubresourceLayers imageSubresource;
8507 VkOffset3D imageOffset;
8508 VkExtent3D imageExtent;
8509} VkMemoryToImageCopy;
8510
8511typedef struct VkImageToMemoryCopy {
8512 VkStructureType sType;
8513 const void* pNext;
8514 void* pHostPointer;
8515 uint32_t memoryRowLength;
8516 uint32_t memoryImageHeight;
8517 VkImageSubresourceLayers imageSubresource;
8518 VkOffset3D imageOffset;
8519 VkExtent3D imageExtent;
8520} VkImageToMemoryCopy;
8521
8522typedef struct VkCopyMemoryToImageInfo {
8523 VkStructureType sType;
8524 const void* pNext;
8525 VkHostImageCopyFlags flags;
8526 VkImage dstImage;
8527 VkImageLayout dstImageLayout;
8528 uint32_t regionCount;
8529 const VkMemoryToImageCopy* pRegions;
8530} VkCopyMemoryToImageInfo;
8531
8532typedef struct VkCopyImageToMemoryInfo {
8533 VkStructureType sType;
8534 const void* pNext;
8535 VkHostImageCopyFlags flags;
8536 VkImage srcImage;
8537 VkImageLayout srcImageLayout;
8538 uint32_t regionCount;
8539 const VkImageToMemoryCopy* pRegions;
8540} VkCopyImageToMemoryInfo;
8541
8542typedef struct VkCopyImageToImageInfo {
8543 VkStructureType sType;
8544 const void* pNext;
8545 VkHostImageCopyFlags flags;
8546 VkImage srcImage;
8547 VkImageLayout srcImageLayout;
8548 VkImage dstImage;
8549 VkImageLayout dstImageLayout;
8550 uint32_t regionCount;
8551 const VkImageCopy2* pRegions;
8552} VkCopyImageToImageInfo;
8553
8554typedef struct VkHostImageLayoutTransitionInfo {
8555 VkStructureType sType;
8556 const void* pNext;
8557 VkImage image;
8558 VkImageLayout oldLayout;
8559 VkImageLayout newLayout;
8560 VkImageSubresourceRange subresourceRange;
8561} VkHostImageLayoutTransitionInfo;
8562
8563typedef struct VkSubresourceHostMemcpySize {
8564 VkStructureType sType;
8565 void* pNext;
8566 VkDeviceSize size;
8567} VkSubresourceHostMemcpySize;
8568
8569typedef struct VkHostImageCopyDevicePerformanceQuery {
8570 VkStructureType sType;
8571 void* pNext;
8572 VkBool32 optimalDeviceAccess;
8573 VkBool32 identicalMemoryLayout;
8574} VkHostImageCopyDevicePerformanceQuery;
8575
8576typedef void (VKAPI_PTR *PFN_vkCmdSetLineStipple)(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern);
8577typedef VkResult (VKAPI_PTR *PFN_vkMapMemory2)(VkDevice device, const VkMemoryMapInfo* pMemoryMapInfo, void** ppData);
8578typedef VkResult (VKAPI_PTR *PFN_vkUnmapMemory2)(VkDevice device, const VkMemoryUnmapInfo* pMemoryUnmapInfo);
8579typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer2)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkDeviceSize size, VkIndexType indexType);
8580typedef void (VKAPI_PTR *PFN_vkGetRenderingAreaGranularity)(VkDevice device, const VkRenderingAreaInfo* pRenderingAreaInfo, VkExtent2D* pGranularity);
8581typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSubresourceLayout)(VkDevice device, const VkDeviceImageSubresourceInfo* pInfo, VkSubresourceLayout2* pLayout);
8582typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout2)(VkDevice device, VkImage image, const VkImageSubresource2* pSubresource, VkSubresourceLayout2* pLayout);
8583typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSet)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites);
8584typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplate)(VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData);
8585typedef void (VKAPI_PTR *PFN_vkCmdSetRenderingAttachmentLocations)(VkCommandBuffer commandBuffer, const VkRenderingAttachmentLocationInfo* pLocationInfo);
8586typedef void (VKAPI_PTR *PFN_vkCmdSetRenderingInputAttachmentIndices)(VkCommandBuffer commandBuffer, const VkRenderingInputAttachmentIndexInfo* pInputAttachmentIndexInfo);
8587typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorSets2)(VkCommandBuffer commandBuffer, const VkBindDescriptorSetsInfo* pBindDescriptorSetsInfo);
8588typedef void (VKAPI_PTR *PFN_vkCmdPushConstants2)(VkCommandBuffer commandBuffer, const VkPushConstantsInfo* pPushConstantsInfo);
8589typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSet2)(VkCommandBuffer commandBuffer, const VkPushDescriptorSetInfo* pPushDescriptorSetInfo);
8590typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplate2)(VkCommandBuffer commandBuffer, const VkPushDescriptorSetWithTemplateInfo* pPushDescriptorSetWithTemplateInfo);
8591typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToImage)(VkDevice device, const VkCopyMemoryToImageInfo* pCopyMemoryToImageInfo);
8592typedef VkResult (VKAPI_PTR *PFN_vkCopyImageToMemory)(VkDevice device, const VkCopyImageToMemoryInfo* pCopyImageToMemoryInfo);
8593typedef VkResult (VKAPI_PTR *PFN_vkCopyImageToImage)(VkDevice device, const VkCopyImageToImageInfo* pCopyImageToImageInfo);
8594typedef VkResult (VKAPI_PTR *PFN_vkTransitionImageLayout)(VkDevice device, uint32_t transitionCount, const VkHostImageLayoutTransitionInfo* pTransitions);
8595
8596#ifndef VK_NO_PROTOTYPES
8597VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStipple(
8598 VkCommandBuffer commandBuffer,
8599 uint32_t lineStippleFactor,
8600 uint16_t lineStipplePattern);
8601
8602VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory2(
8603 VkDevice device,
8604 const VkMemoryMapInfo* pMemoryMapInfo,
8605 void** ppData);
8606
8607VKAPI_ATTR VkResult VKAPI_CALL vkUnmapMemory2(
8608 VkDevice device,
8609 const VkMemoryUnmapInfo* pMemoryUnmapInfo);
8610
8611VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer2(
8612 VkCommandBuffer commandBuffer,
8613 VkBuffer buffer,
8614 VkDeviceSize offset,
8615 VkDeviceSize size,
8616 VkIndexType indexType);
8617
8618VKAPI_ATTR void VKAPI_CALL vkGetRenderingAreaGranularity(
8619 VkDevice device,
8620 const VkRenderingAreaInfo* pRenderingAreaInfo,
8621 VkExtent2D* pGranularity);
8622
8623VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSubresourceLayout(
8624 VkDevice device,
8625 const VkDeviceImageSubresourceInfo* pInfo,
8626 VkSubresourceLayout2* pLayout);
8627
8628VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout2(
8629 VkDevice device,
8630 VkImage image,
8631 const VkImageSubresource2* pSubresource,
8632 VkSubresourceLayout2* pLayout);
8633
8634VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSet(
8635 VkCommandBuffer commandBuffer,
8636 VkPipelineBindPoint pipelineBindPoint,
8637 VkPipelineLayout layout,
8638 uint32_t set,
8639 uint32_t descriptorWriteCount,
8640 const VkWriteDescriptorSet* pDescriptorWrites);
8641
8642VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplate(
8643 VkCommandBuffer commandBuffer,
8644 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
8645 VkPipelineLayout layout,
8646 uint32_t set,
8647 const void* pData);
8648
8649VKAPI_ATTR void VKAPI_CALL vkCmdSetRenderingAttachmentLocations(
8650 VkCommandBuffer commandBuffer,
8651 const VkRenderingAttachmentLocationInfo* pLocationInfo);
8652
8653VKAPI_ATTR void VKAPI_CALL vkCmdSetRenderingInputAttachmentIndices(
8654 VkCommandBuffer commandBuffer,
8655 const VkRenderingInputAttachmentIndexInfo* pInputAttachmentIndexInfo);
8656
8657VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets2(
8658 VkCommandBuffer commandBuffer,
8659 const VkBindDescriptorSetsInfo* pBindDescriptorSetsInfo);
8660
8661VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants2(
8662 VkCommandBuffer commandBuffer,
8663 const VkPushConstantsInfo* pPushConstantsInfo);
8664
8665VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSet2(
8666 VkCommandBuffer commandBuffer,
8667 const VkPushDescriptorSetInfo* pPushDescriptorSetInfo);
8668
8669VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplate2(
8670 VkCommandBuffer commandBuffer,
8671 const VkPushDescriptorSetWithTemplateInfo* pPushDescriptorSetWithTemplateInfo);
8672
8673VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToImage(
8674 VkDevice device,
8675 const VkCopyMemoryToImageInfo* pCopyMemoryToImageInfo);
8676
8677VKAPI_ATTR VkResult VKAPI_CALL vkCopyImageToMemory(
8678 VkDevice device,
8679 const VkCopyImageToMemoryInfo* pCopyImageToMemoryInfo);
8680
8681VKAPI_ATTR VkResult VKAPI_CALL vkCopyImageToImage(
8682 VkDevice device,
8683 const VkCopyImageToImageInfo* pCopyImageToImageInfo);
8684
8685VKAPI_ATTR VkResult VKAPI_CALL vkTransitionImageLayout(
8686 VkDevice device,
8687 uint32_t transitionCount,
8688 const VkHostImageLayoutTransitionInfo* pTransitions);
8689#endif
8690
8691
8692// VK_KHR_surface is a preprocessor guard. Do not pass it to API calls.
8693#define VK_KHR_surface 1
8694VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSurfaceKHR)
8695#define VK_KHR_SURFACE_SPEC_VERSION 25
8696#define VK_KHR_SURFACE_EXTENSION_NAME "VK_KHR_surface"
8697
8698typedef enum VkPresentModeKHR {
8699 VK_PRESENT_MODE_IMMEDIATE_KHR = 0,
8700 VK_PRESENT_MODE_MAILBOX_KHR = 1,
8701 VK_PRESENT_MODE_FIFO_KHR = 2,
8702 VK_PRESENT_MODE_FIFO_RELAXED_KHR = 3,
8703 VK_PRESENT_MODE_SHARED_DEMAND_REFRESH_KHR = 1000111000,
8704 VK_PRESENT_MODE_SHARED_CONTINUOUS_REFRESH_KHR = 1000111001,
8705 VK_PRESENT_MODE_FIFO_LATEST_READY_KHR = 1000361000,
8706 VK_PRESENT_MODE_FIFO_LATEST_READY_EXT = VK_PRESENT_MODE_FIFO_LATEST_READY_KHR,
8707 VK_PRESENT_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
8708} VkPresentModeKHR;
8709
8710typedef enum VkColorSpaceKHR {
8711 VK_COLOR_SPACE_SRGB_NONLINEAR_KHR = 0,
8712 VK_COLOR_SPACE_DISPLAY_P3_NONLINEAR_EXT = 1000104001,
8713 VK_COLOR_SPACE_EXTENDED_SRGB_LINEAR_EXT = 1000104002,
8714 VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT = 1000104003,
8715 VK_COLOR_SPACE_DCI_P3_NONLINEAR_EXT = 1000104004,
8716 VK_COLOR_SPACE_BT709_LINEAR_EXT = 1000104005,
8717 VK_COLOR_SPACE_BT709_NONLINEAR_EXT = 1000104006,
8718 VK_COLOR_SPACE_BT2020_LINEAR_EXT = 1000104007,
8719 VK_COLOR_SPACE_HDR10_ST2084_EXT = 1000104008,
8720 // VK_COLOR_SPACE_DOLBYVISION_EXT is deprecated, but no reason was given in the API XML
8721 VK_COLOR_SPACE_DOLBYVISION_EXT = 1000104009,
8722 VK_COLOR_SPACE_HDR10_HLG_EXT = 1000104010,
8723 VK_COLOR_SPACE_ADOBERGB_LINEAR_EXT = 1000104011,
8724 VK_COLOR_SPACE_ADOBERGB_NONLINEAR_EXT = 1000104012,
8725 VK_COLOR_SPACE_PASS_THROUGH_EXT = 1000104013,
8726 VK_COLOR_SPACE_EXTENDED_SRGB_NONLINEAR_EXT = 1000104014,
8727 VK_COLOR_SPACE_DISPLAY_NATIVE_AMD = 1000213000,
8728 // VK_COLORSPACE_SRGB_NONLINEAR_KHR is a deprecated alias
8729 VK_COLORSPACE_SRGB_NONLINEAR_KHR = VK_COLOR_SPACE_SRGB_NONLINEAR_KHR,
8730 // VK_COLOR_SPACE_DCI_P3_LINEAR_EXT is a deprecated alias
8731 VK_COLOR_SPACE_DCI_P3_LINEAR_EXT = VK_COLOR_SPACE_DISPLAY_P3_LINEAR_EXT,
8732 VK_COLOR_SPACE_MAX_ENUM_KHR = 0x7FFFFFFF
8733} VkColorSpaceKHR;
8734
8735typedef enum VkSurfaceTransformFlagBitsKHR {
8736 VK_SURFACE_TRANSFORM_IDENTITY_BIT_KHR = 0x00000001,
8737 VK_SURFACE_TRANSFORM_ROTATE_90_BIT_KHR = 0x00000002,
8738 VK_SURFACE_TRANSFORM_ROTATE_180_BIT_KHR = 0x00000004,
8739 VK_SURFACE_TRANSFORM_ROTATE_270_BIT_KHR = 0x00000008,
8740 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_BIT_KHR = 0x00000010,
8741 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_90_BIT_KHR = 0x00000020,
8742 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_180_BIT_KHR = 0x00000040,
8743 VK_SURFACE_TRANSFORM_HORIZONTAL_MIRROR_ROTATE_270_BIT_KHR = 0x00000080,
8744 VK_SURFACE_TRANSFORM_INHERIT_BIT_KHR = 0x00000100,
8745 VK_SURFACE_TRANSFORM_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8746} VkSurfaceTransformFlagBitsKHR;
8747
8748typedef enum VkCompositeAlphaFlagBitsKHR {
8749 VK_COMPOSITE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
8750 VK_COMPOSITE_ALPHA_PRE_MULTIPLIED_BIT_KHR = 0x00000002,
8751 VK_COMPOSITE_ALPHA_POST_MULTIPLIED_BIT_KHR = 0x00000004,
8752 VK_COMPOSITE_ALPHA_INHERIT_BIT_KHR = 0x00000008,
8753 VK_COMPOSITE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8754} VkCompositeAlphaFlagBitsKHR;
8755typedef VkFlags VkCompositeAlphaFlagsKHR;
8756typedef VkFlags VkSurfaceTransformFlagsKHR;
8757typedef struct VkSurfaceCapabilitiesKHR {
8758 uint32_t minImageCount;
8759 uint32_t maxImageCount;
8760 VkExtent2D currentExtent;
8761 VkExtent2D minImageExtent;
8762 VkExtent2D maxImageExtent;
8763 uint32_t maxImageArrayLayers;
8764 VkSurfaceTransformFlagsKHR supportedTransforms;
8765 VkSurfaceTransformFlagBitsKHR currentTransform;
8766 VkCompositeAlphaFlagsKHR supportedCompositeAlpha;
8767 VkImageUsageFlags supportedUsageFlags;
8768} VkSurfaceCapabilitiesKHR;
8769
8770typedef struct VkSurfaceFormatKHR {
8771 VkFormat format;
8772 VkColorSpaceKHR colorSpace;
8773} VkSurfaceFormatKHR;
8774
8775typedef void (VKAPI_PTR *PFN_vkDestroySurfaceKHR)(VkInstance instance, VkSurfaceKHR surface, const VkAllocationCallbacks* pAllocator);
8776typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceSupportKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, VkSurfaceKHR surface, VkBool32* pSupported);
8777typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
8778typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormatsKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pSurfaceFormatCount, VkSurfaceFormatKHR* pSurfaceFormats);
8779typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfacePresentModesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pPresentModeCount, VkPresentModeKHR* pPresentModes);
8780
8781#ifndef VK_NO_PROTOTYPES
8782#ifndef VK_ONLY_EXPORTED_PROTOTYPES
8783VKAPI_ATTR void VKAPI_CALL vkDestroySurfaceKHR(
8784 VkInstance instance,
8785 VkSurfaceKHR surface,
8786 const VkAllocationCallbacks* pAllocator);
8787#endif
8788
8789#ifndef VK_ONLY_EXPORTED_PROTOTYPES
8790VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceSupportKHR(
8791 VkPhysicalDevice physicalDevice,
8792 uint32_t queueFamilyIndex,
8793 VkSurfaceKHR surface,
8794 VkBool32* pSupported);
8795#endif
8796
8797#ifndef VK_ONLY_EXPORTED_PROTOTYPES
8798VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
8799 VkPhysicalDevice physicalDevice,
8800 VkSurfaceKHR surface,
8801 VkSurfaceCapabilitiesKHR* pSurfaceCapabilities);
8802#endif
8803
8804#ifndef VK_ONLY_EXPORTED_PROTOTYPES
8805VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormatsKHR(
8806 VkPhysicalDevice physicalDevice,
8807 VkSurfaceKHR surface,
8808 uint32_t* pSurfaceFormatCount,
8809 VkSurfaceFormatKHR* pSurfaceFormats);
8810#endif
8811
8812#ifndef VK_ONLY_EXPORTED_PROTOTYPES
8813VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfacePresentModesKHR(
8814 VkPhysicalDevice physicalDevice,
8815 VkSurfaceKHR surface,
8816 uint32_t* pPresentModeCount,
8817 VkPresentModeKHR* pPresentModes);
8818#endif
8819#endif
8820
8821
8822// VK_KHR_swapchain is a preprocessor guard. Do not pass it to API calls.
8823#define VK_KHR_swapchain 1
8824VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkSwapchainKHR)
8825#define VK_KHR_SWAPCHAIN_SPEC_VERSION 70
8826#define VK_KHR_SWAPCHAIN_EXTENSION_NAME "VK_KHR_swapchain"
8827
8828typedef enum VkSwapchainCreateFlagBitsKHR {
8829 VK_SWAPCHAIN_CREATE_SPLIT_INSTANCE_BIND_REGIONS_BIT_KHR = 0x00000001,
8830 VK_SWAPCHAIN_CREATE_PROTECTED_BIT_KHR = 0x00000002,
8831 VK_SWAPCHAIN_CREATE_MUTABLE_FORMAT_BIT_KHR = 0x00000004,
8832 VK_SWAPCHAIN_CREATE_PRESENT_ID_2_BIT_KHR = 0x00000040,
8833 VK_SWAPCHAIN_CREATE_PRESENT_WAIT_2_BIT_KHR = 0x00000080,
8834 VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_KHR = 0x00000008,
8835 VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_EXT = VK_SWAPCHAIN_CREATE_DEFERRED_MEMORY_ALLOCATION_BIT_KHR,
8836 VK_SWAPCHAIN_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8837} VkSwapchainCreateFlagBitsKHR;
8838typedef VkFlags VkSwapchainCreateFlagsKHR;
8839
8840typedef enum VkDeviceGroupPresentModeFlagBitsKHR {
8841 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_BIT_KHR = 0x00000001,
8842 VK_DEVICE_GROUP_PRESENT_MODE_REMOTE_BIT_KHR = 0x00000002,
8843 VK_DEVICE_GROUP_PRESENT_MODE_SUM_BIT_KHR = 0x00000004,
8844 VK_DEVICE_GROUP_PRESENT_MODE_LOCAL_MULTI_DEVICE_BIT_KHR = 0x00000008,
8845 VK_DEVICE_GROUP_PRESENT_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
8846} VkDeviceGroupPresentModeFlagBitsKHR;
8847typedef VkFlags VkDeviceGroupPresentModeFlagsKHR;
8848typedef struct VkSwapchainCreateInfoKHR {
8849 VkStructureType sType;
8850 const void* pNext;
8851 VkSwapchainCreateFlagsKHR flags;
8852 VkSurfaceKHR surface;
8853 uint32_t minImageCount;
8854 VkFormat imageFormat;
8855 VkColorSpaceKHR imageColorSpace;
8856 VkExtent2D imageExtent;
8857 uint32_t imageArrayLayers;
8858 VkImageUsageFlags imageUsage;
8859 VkSharingMode imageSharingMode;
8860 uint32_t queueFamilyIndexCount;
8861 const uint32_t* pQueueFamilyIndices;
8862 VkSurfaceTransformFlagBitsKHR preTransform;
8863 VkCompositeAlphaFlagBitsKHR compositeAlpha;
8864 VkPresentModeKHR presentMode;
8865 VkBool32 clipped;
8866 VkSwapchainKHR oldSwapchain;
8867} VkSwapchainCreateInfoKHR;
8868
8869typedef struct VkPresentInfoKHR {
8870 VkStructureType sType;
8871 const void* pNext;
8872 uint32_t waitSemaphoreCount;
8873 const VkSemaphore* pWaitSemaphores;
8874 uint32_t swapchainCount;
8875 const VkSwapchainKHR* pSwapchains;
8876 const uint32_t* pImageIndices;
8877 VkResult* pResults;
8878} VkPresentInfoKHR;
8879
8880typedef struct VkImageSwapchainCreateInfoKHR {
8881 VkStructureType sType;
8882 const void* pNext;
8883 VkSwapchainKHR swapchain;
8884} VkImageSwapchainCreateInfoKHR;
8885
8886typedef struct VkBindImageMemorySwapchainInfoKHR {
8887 VkStructureType sType;
8888 const void* pNext;
8889 VkSwapchainKHR swapchain;
8890 uint32_t imageIndex;
8891} VkBindImageMemorySwapchainInfoKHR;
8892
8893typedef struct VkAcquireNextImageInfoKHR {
8894 VkStructureType sType;
8895 const void* pNext;
8896 VkSwapchainKHR swapchain;
8897 uint64_t timeout;
8898 VkSemaphore semaphore;
8899 VkFence fence;
8900 uint32_t deviceMask;
8901} VkAcquireNextImageInfoKHR;
8902
8903typedef struct VkDeviceGroupPresentCapabilitiesKHR {
8904 VkStructureType sType;
8905 void* pNext;
8906 uint32_t presentMask[VK_MAX_DEVICE_GROUP_SIZE];
8907 VkDeviceGroupPresentModeFlagsKHR modes;
8908} VkDeviceGroupPresentCapabilitiesKHR;
8909
8910typedef struct VkDeviceGroupPresentInfoKHR {
8911 VkStructureType sType;
8912 const void* pNext;
8913 uint32_t swapchainCount;
8914 const uint32_t* pDeviceMasks;
8915 VkDeviceGroupPresentModeFlagBitsKHR mode;
8916} VkDeviceGroupPresentInfoKHR;
8917
8918typedef struct VkDeviceGroupSwapchainCreateInfoKHR {
8919 VkStructureType sType;
8920 const void* pNext;
8921 VkDeviceGroupPresentModeFlagsKHR modes;
8922} VkDeviceGroupSwapchainCreateInfoKHR;
8923
8924typedef VkResult (VKAPI_PTR *PFN_vkCreateSwapchainKHR)(VkDevice device, const VkSwapchainCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchain);
8925typedef void (VKAPI_PTR *PFN_vkDestroySwapchainKHR)(VkDevice device, VkSwapchainKHR swapchain, const VkAllocationCallbacks* pAllocator);
8926typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainImagesKHR)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pSwapchainImageCount, VkImage* pSwapchainImages);
8927typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImageKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t timeout, VkSemaphore semaphore, VkFence fence, uint32_t* pImageIndex);
8928typedef VkResult (VKAPI_PTR *PFN_vkQueuePresentKHR)(VkQueue queue, const VkPresentInfoKHR* pPresentInfo);
8929typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupPresentCapabilitiesKHR)(VkDevice device, VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities);
8930typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceGroupSurfacePresentModesKHR)(VkDevice device, VkSurfaceKHR surface, VkDeviceGroupPresentModeFlagsKHR* pModes);
8931typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDevicePresentRectanglesKHR)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, uint32_t* pRectCount, VkRect2D* pRects);
8932typedef VkResult (VKAPI_PTR *PFN_vkAcquireNextImage2KHR)(VkDevice device, const VkAcquireNextImageInfoKHR* pAcquireInfo, uint32_t* pImageIndex);
8933
8934#ifndef VK_NO_PROTOTYPES
8935#ifndef VK_ONLY_EXPORTED_PROTOTYPES
8936VKAPI_ATTR VkResult VKAPI_CALL vkCreateSwapchainKHR(
8937 VkDevice device,
8938 const VkSwapchainCreateInfoKHR* pCreateInfo,
8939 const VkAllocationCallbacks* pAllocator,
8940 VkSwapchainKHR* pSwapchain);
8941#endif
8942
8943#ifndef VK_ONLY_EXPORTED_PROTOTYPES
8944VKAPI_ATTR void VKAPI_CALL vkDestroySwapchainKHR(
8945 VkDevice device,
8946 VkSwapchainKHR swapchain,
8947 const VkAllocationCallbacks* pAllocator);
8948#endif
8949
8950#ifndef VK_ONLY_EXPORTED_PROTOTYPES
8951VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainImagesKHR(
8952 VkDevice device,
8953 VkSwapchainKHR swapchain,
8954 uint32_t* pSwapchainImageCount,
8955 VkImage* pSwapchainImages);
8956#endif
8957
8958#ifndef VK_ONLY_EXPORTED_PROTOTYPES
8959VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImageKHR(
8960 VkDevice device,
8961 VkSwapchainKHR swapchain,
8962 uint64_t timeout,
8963 VkSemaphore semaphore,
8964 VkFence fence,
8965 uint32_t* pImageIndex);
8966#endif
8967
8968#ifndef VK_ONLY_EXPORTED_PROTOTYPES
8969VKAPI_ATTR VkResult VKAPI_CALL vkQueuePresentKHR(
8970 VkQueue queue,
8971 const VkPresentInfoKHR* pPresentInfo);
8972#endif
8973
8974#ifndef VK_ONLY_EXPORTED_PROTOTYPES
8975VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupPresentCapabilitiesKHR(
8976 VkDevice device,
8977 VkDeviceGroupPresentCapabilitiesKHR* pDeviceGroupPresentCapabilities);
8978#endif
8979
8980#ifndef VK_ONLY_EXPORTED_PROTOTYPES
8981VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceGroupSurfacePresentModesKHR(
8982 VkDevice device,
8983 VkSurfaceKHR surface,
8984 VkDeviceGroupPresentModeFlagsKHR* pModes);
8985#endif
8986
8987#ifndef VK_ONLY_EXPORTED_PROTOTYPES
8988VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDevicePresentRectanglesKHR(
8989 VkPhysicalDevice physicalDevice,
8990 VkSurfaceKHR surface,
8991 uint32_t* pRectCount,
8992 VkRect2D* pRects);
8993#endif
8994
8995#ifndef VK_ONLY_EXPORTED_PROTOTYPES
8996VKAPI_ATTR VkResult VKAPI_CALL vkAcquireNextImage2KHR(
8997 VkDevice device,
8998 const VkAcquireNextImageInfoKHR* pAcquireInfo,
8999 uint32_t* pImageIndex);
9000#endif
9001#endif
9002
9003
9004// VK_KHR_display is a preprocessor guard. Do not pass it to API calls.
9005#define VK_KHR_display 1
9006VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayKHR)
9007VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDisplayModeKHR)
9008#define VK_KHR_DISPLAY_SPEC_VERSION 23
9009#define VK_KHR_DISPLAY_EXTENSION_NAME "VK_KHR_display"
9010typedef VkFlags VkDisplayModeCreateFlagsKHR;
9011
9012typedef enum VkDisplayPlaneAlphaFlagBitsKHR {
9013 VK_DISPLAY_PLANE_ALPHA_OPAQUE_BIT_KHR = 0x00000001,
9014 VK_DISPLAY_PLANE_ALPHA_GLOBAL_BIT_KHR = 0x00000002,
9015 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_BIT_KHR = 0x00000004,
9016 VK_DISPLAY_PLANE_ALPHA_PER_PIXEL_PREMULTIPLIED_BIT_KHR = 0x00000008,
9017 VK_DISPLAY_PLANE_ALPHA_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9018} VkDisplayPlaneAlphaFlagBitsKHR;
9019typedef VkFlags VkDisplayPlaneAlphaFlagsKHR;
9020typedef VkFlags VkDisplaySurfaceCreateFlagsKHR;
9021typedef struct VkDisplayModeParametersKHR {
9022 VkExtent2D visibleRegion;
9023 uint32_t refreshRate;
9024} VkDisplayModeParametersKHR;
9025
9026typedef struct VkDisplayModeCreateInfoKHR {
9027 VkStructureType sType;
9028 const void* pNext;
9029 VkDisplayModeCreateFlagsKHR flags;
9030 VkDisplayModeParametersKHR parameters;
9031} VkDisplayModeCreateInfoKHR;
9032
9033typedef struct VkDisplayModePropertiesKHR {
9034 VkDisplayModeKHR displayMode;
9035 VkDisplayModeParametersKHR parameters;
9036} VkDisplayModePropertiesKHR;
9037
9038typedef struct VkDisplayPlaneCapabilitiesKHR {
9039 VkDisplayPlaneAlphaFlagsKHR supportedAlpha;
9040 VkOffset2D minSrcPosition;
9041 VkOffset2D maxSrcPosition;
9042 VkExtent2D minSrcExtent;
9043 VkExtent2D maxSrcExtent;
9044 VkOffset2D minDstPosition;
9045 VkOffset2D maxDstPosition;
9046 VkExtent2D minDstExtent;
9047 VkExtent2D maxDstExtent;
9048} VkDisplayPlaneCapabilitiesKHR;
9049
9050typedef struct VkDisplayPlanePropertiesKHR {
9051 VkDisplayKHR currentDisplay;
9052 uint32_t currentStackIndex;
9053} VkDisplayPlanePropertiesKHR;
9054
9055typedef struct VkDisplayPropertiesKHR {
9056 VkDisplayKHR display;
9057 const char* displayName;
9058 VkExtent2D physicalDimensions;
9059 VkExtent2D physicalResolution;
9060 VkSurfaceTransformFlagsKHR supportedTransforms;
9061 VkBool32 planeReorderPossible;
9062 VkBool32 persistentContent;
9063} VkDisplayPropertiesKHR;
9064
9065typedef struct VkDisplaySurfaceCreateInfoKHR {
9066 VkStructureType sType;
9067 const void* pNext;
9068 VkDisplaySurfaceCreateFlagsKHR flags;
9069 VkDisplayModeKHR displayMode;
9070 uint32_t planeIndex;
9071 uint32_t planeStackIndex;
9072 VkSurfaceTransformFlagBitsKHR transform;
9073 float globalAlpha;
9074 VkDisplayPlaneAlphaFlagBitsKHR alphaMode;
9075 VkExtent2D imageExtent;
9076} VkDisplaySurfaceCreateInfoKHR;
9077
9078typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPropertiesKHR* pProperties);
9079typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlanePropertiesKHR* pProperties);
9080typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneSupportedDisplaysKHR)(VkPhysicalDevice physicalDevice, uint32_t planeIndex, uint32_t* pDisplayCount, VkDisplayKHR* pDisplays);
9081typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModePropertiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModePropertiesKHR* pProperties);
9082typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayModeKHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, const VkDisplayModeCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDisplayModeKHR* pMode);
9083typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilitiesKHR)(VkPhysicalDevice physicalDevice, VkDisplayModeKHR mode, uint32_t planeIndex, VkDisplayPlaneCapabilitiesKHR* pCapabilities);
9084typedef VkResult (VKAPI_PTR *PFN_vkCreateDisplayPlaneSurfaceKHR)(VkInstance instance, const VkDisplaySurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
9085
9086#ifndef VK_NO_PROTOTYPES
9087#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9088VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPropertiesKHR(
9089 VkPhysicalDevice physicalDevice,
9090 uint32_t* pPropertyCount,
9091 VkDisplayPropertiesKHR* pProperties);
9092#endif
9093
9094#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9095VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
9096 VkPhysicalDevice physicalDevice,
9097 uint32_t* pPropertyCount,
9098 VkDisplayPlanePropertiesKHR* pProperties);
9099#endif
9100
9101#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9102VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneSupportedDisplaysKHR(
9103 VkPhysicalDevice physicalDevice,
9104 uint32_t planeIndex,
9105 uint32_t* pDisplayCount,
9106 VkDisplayKHR* pDisplays);
9107#endif
9108
9109#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9110VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModePropertiesKHR(
9111 VkPhysicalDevice physicalDevice,
9112 VkDisplayKHR display,
9113 uint32_t* pPropertyCount,
9114 VkDisplayModePropertiesKHR* pProperties);
9115#endif
9116
9117#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9118VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayModeKHR(
9119 VkPhysicalDevice physicalDevice,
9120 VkDisplayKHR display,
9121 const VkDisplayModeCreateInfoKHR* pCreateInfo,
9122 const VkAllocationCallbacks* pAllocator,
9123 VkDisplayModeKHR* pMode);
9124#endif
9125
9126#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9127VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilitiesKHR(
9128 VkPhysicalDevice physicalDevice,
9129 VkDisplayModeKHR mode,
9130 uint32_t planeIndex,
9131 VkDisplayPlaneCapabilitiesKHR* pCapabilities);
9132#endif
9133
9134#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9135VKAPI_ATTR VkResult VKAPI_CALL vkCreateDisplayPlaneSurfaceKHR(
9136 VkInstance instance,
9137 const VkDisplaySurfaceCreateInfoKHR* pCreateInfo,
9138 const VkAllocationCallbacks* pAllocator,
9139 VkSurfaceKHR* pSurface);
9140#endif
9141#endif
9142
9143
9144// VK_KHR_display_swapchain is a preprocessor guard. Do not pass it to API calls.
9145#define VK_KHR_display_swapchain 1
9146#define VK_KHR_DISPLAY_SWAPCHAIN_SPEC_VERSION 10
9147#define VK_KHR_DISPLAY_SWAPCHAIN_EXTENSION_NAME "VK_KHR_display_swapchain"
9148typedef struct VkDisplayPresentInfoKHR {
9149 VkStructureType sType;
9150 const void* pNext;
9151 VkRect2D srcRect;
9152 VkRect2D dstRect;
9153 VkBool32 persistent;
9154} VkDisplayPresentInfoKHR;
9155
9156typedef VkResult (VKAPI_PTR *PFN_vkCreateSharedSwapchainsKHR)(VkDevice device, uint32_t swapchainCount, const VkSwapchainCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkSwapchainKHR* pSwapchains);
9157
9158#ifndef VK_NO_PROTOTYPES
9159#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9160VKAPI_ATTR VkResult VKAPI_CALL vkCreateSharedSwapchainsKHR(
9161 VkDevice device,
9162 uint32_t swapchainCount,
9163 const VkSwapchainCreateInfoKHR* pCreateInfos,
9164 const VkAllocationCallbacks* pAllocator,
9165 VkSwapchainKHR* pSwapchains);
9166#endif
9167#endif
9168
9169
9170// VK_KHR_sampler_mirror_clamp_to_edge is a preprocessor guard. Do not pass it to API calls.
9171#define VK_KHR_sampler_mirror_clamp_to_edge 1
9172#define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_SPEC_VERSION 3
9173#define VK_KHR_SAMPLER_MIRROR_CLAMP_TO_EDGE_EXTENSION_NAME "VK_KHR_sampler_mirror_clamp_to_edge"
9174
9175
9176// VK_KHR_video_queue is a preprocessor guard. Do not pass it to API calls.
9177#define VK_KHR_video_queue 1
9178VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionKHR)
9179VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkVideoSessionParametersKHR)
9180#define VK_KHR_VIDEO_QUEUE_SPEC_VERSION 8
9181#define VK_KHR_VIDEO_QUEUE_EXTENSION_NAME "VK_KHR_video_queue"
9182
9183typedef enum VkQueryResultStatusKHR {
9184 VK_QUERY_RESULT_STATUS_ERROR_KHR = -1,
9185 VK_QUERY_RESULT_STATUS_NOT_READY_KHR = 0,
9186 VK_QUERY_RESULT_STATUS_COMPLETE_KHR = 1,
9187 VK_QUERY_RESULT_STATUS_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_KHR = -1000299000,
9188 VK_QUERY_RESULT_STATUS_MAX_ENUM_KHR = 0x7FFFFFFF
9189} VkQueryResultStatusKHR;
9190
9191typedef enum VkVideoCodecOperationFlagBitsKHR {
9192 VK_VIDEO_CODEC_OPERATION_NONE_KHR = 0,
9193 VK_VIDEO_CODEC_OPERATION_ENCODE_H264_BIT_KHR = 0x00010000,
9194 VK_VIDEO_CODEC_OPERATION_ENCODE_H265_BIT_KHR = 0x00020000,
9195 VK_VIDEO_CODEC_OPERATION_DECODE_H264_BIT_KHR = 0x00000001,
9196 VK_VIDEO_CODEC_OPERATION_DECODE_H265_BIT_KHR = 0x00000002,
9197 VK_VIDEO_CODEC_OPERATION_DECODE_AV1_BIT_KHR = 0x00000004,
9198 VK_VIDEO_CODEC_OPERATION_ENCODE_AV1_BIT_KHR = 0x00040000,
9199 VK_VIDEO_CODEC_OPERATION_DECODE_VP9_BIT_KHR = 0x00000008,
9200 VK_VIDEO_CODEC_OPERATION_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9201} VkVideoCodecOperationFlagBitsKHR;
9202typedef VkFlags VkVideoCodecOperationFlagsKHR;
9203
9204typedef enum VkVideoChromaSubsamplingFlagBitsKHR {
9205 VK_VIDEO_CHROMA_SUBSAMPLING_INVALID_KHR = 0,
9206 VK_VIDEO_CHROMA_SUBSAMPLING_MONOCHROME_BIT_KHR = 0x00000001,
9207 VK_VIDEO_CHROMA_SUBSAMPLING_420_BIT_KHR = 0x00000002,
9208 VK_VIDEO_CHROMA_SUBSAMPLING_422_BIT_KHR = 0x00000004,
9209 VK_VIDEO_CHROMA_SUBSAMPLING_444_BIT_KHR = 0x00000008,
9210 VK_VIDEO_CHROMA_SUBSAMPLING_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9211} VkVideoChromaSubsamplingFlagBitsKHR;
9212typedef VkFlags VkVideoChromaSubsamplingFlagsKHR;
9213
9214typedef enum VkVideoComponentBitDepthFlagBitsKHR {
9215 VK_VIDEO_COMPONENT_BIT_DEPTH_INVALID_KHR = 0,
9216 VK_VIDEO_COMPONENT_BIT_DEPTH_8_BIT_KHR = 0x00000001,
9217 VK_VIDEO_COMPONENT_BIT_DEPTH_10_BIT_KHR = 0x00000004,
9218 VK_VIDEO_COMPONENT_BIT_DEPTH_12_BIT_KHR = 0x00000010,
9219 VK_VIDEO_COMPONENT_BIT_DEPTH_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9220} VkVideoComponentBitDepthFlagBitsKHR;
9221typedef VkFlags VkVideoComponentBitDepthFlagsKHR;
9222
9223typedef enum VkVideoCapabilityFlagBitsKHR {
9224 VK_VIDEO_CAPABILITY_PROTECTED_CONTENT_BIT_KHR = 0x00000001,
9225 VK_VIDEO_CAPABILITY_SEPARATE_REFERENCE_IMAGES_BIT_KHR = 0x00000002,
9226 VK_VIDEO_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9227} VkVideoCapabilityFlagBitsKHR;
9228typedef VkFlags VkVideoCapabilityFlagsKHR;
9229
9230typedef enum VkVideoSessionCreateFlagBitsKHR {
9231 VK_VIDEO_SESSION_CREATE_PROTECTED_CONTENT_BIT_KHR = 0x00000001,
9232 VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_PARAMETER_OPTIMIZATIONS_BIT_KHR = 0x00000002,
9233 VK_VIDEO_SESSION_CREATE_INLINE_QUERIES_BIT_KHR = 0x00000004,
9234 VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x00000008,
9235 VK_VIDEO_SESSION_CREATE_ALLOW_ENCODE_EMPHASIS_MAP_BIT_KHR = 0x00000010,
9236 VK_VIDEO_SESSION_CREATE_INLINE_SESSION_PARAMETERS_BIT_KHR = 0x00000020,
9237 VK_VIDEO_SESSION_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9238} VkVideoSessionCreateFlagBitsKHR;
9239typedef VkFlags VkVideoSessionCreateFlagsKHR;
9240
9241typedef enum VkVideoSessionParametersCreateFlagBitsKHR {
9242 VK_VIDEO_SESSION_PARAMETERS_CREATE_QUANTIZATION_MAP_COMPATIBLE_BIT_KHR = 0x00000001,
9243 VK_VIDEO_SESSION_PARAMETERS_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9244} VkVideoSessionParametersCreateFlagBitsKHR;
9245typedef VkFlags VkVideoSessionParametersCreateFlagsKHR;
9246typedef VkFlags VkVideoBeginCodingFlagsKHR;
9247typedef VkFlags VkVideoEndCodingFlagsKHR;
9248
9249typedef enum VkVideoCodingControlFlagBitsKHR {
9250 VK_VIDEO_CODING_CONTROL_RESET_BIT_KHR = 0x00000001,
9251 VK_VIDEO_CODING_CONTROL_ENCODE_RATE_CONTROL_BIT_KHR = 0x00000002,
9252 VK_VIDEO_CODING_CONTROL_ENCODE_QUALITY_LEVEL_BIT_KHR = 0x00000004,
9253 VK_VIDEO_CODING_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9254} VkVideoCodingControlFlagBitsKHR;
9255typedef VkFlags VkVideoCodingControlFlagsKHR;
9256typedef struct VkQueueFamilyQueryResultStatusPropertiesKHR {
9257 VkStructureType sType;
9258 void* pNext;
9259 VkBool32 queryResultStatusSupport;
9260} VkQueueFamilyQueryResultStatusPropertiesKHR;
9261
9262typedef struct VkQueueFamilyVideoPropertiesKHR {
9263 VkStructureType sType;
9264 void* pNext;
9265 VkVideoCodecOperationFlagsKHR videoCodecOperations;
9266} VkQueueFamilyVideoPropertiesKHR;
9267
9268typedef struct VkVideoProfileInfoKHR {
9269 VkStructureType sType;
9270 const void* pNext;
9271 VkVideoCodecOperationFlagBitsKHR videoCodecOperation;
9272 VkVideoChromaSubsamplingFlagsKHR chromaSubsampling;
9273 VkVideoComponentBitDepthFlagsKHR lumaBitDepth;
9274 VkVideoComponentBitDepthFlagsKHR chromaBitDepth;
9275} VkVideoProfileInfoKHR;
9276
9277typedef struct VkVideoProfileListInfoKHR {
9278 VkStructureType sType;
9279 const void* pNext;
9280 uint32_t profileCount;
9281 const VkVideoProfileInfoKHR* pProfiles;
9282} VkVideoProfileListInfoKHR;
9283
9284typedef struct VkVideoCapabilitiesKHR {
9285 VkStructureType sType;
9286 void* pNext;
9287 VkVideoCapabilityFlagsKHR flags;
9288 VkDeviceSize minBitstreamBufferOffsetAlignment;
9289 VkDeviceSize minBitstreamBufferSizeAlignment;
9290 VkExtent2D pictureAccessGranularity;
9291 VkExtent2D minCodedExtent;
9292 VkExtent2D maxCodedExtent;
9293 uint32_t maxDpbSlots;
9294 uint32_t maxActiveReferencePictures;
9295 VkExtensionProperties stdHeaderVersion;
9296} VkVideoCapabilitiesKHR;
9297
9298typedef struct VkPhysicalDeviceVideoFormatInfoKHR {
9299 VkStructureType sType;
9300 const void* pNext;
9301 VkImageUsageFlags imageUsage;
9302} VkPhysicalDeviceVideoFormatInfoKHR;
9303
9304typedef struct VkVideoFormatPropertiesKHR {
9305 VkStructureType sType;
9306 void* pNext;
9307 VkFormat format;
9308 VkComponentMapping componentMapping;
9309 VkImageCreateFlags imageCreateFlags;
9310 VkImageType imageType;
9311 VkImageTiling imageTiling;
9312 VkImageUsageFlags imageUsageFlags;
9313} VkVideoFormatPropertiesKHR;
9314
9315typedef struct VkVideoPictureResourceInfoKHR {
9316 VkStructureType sType;
9317 const void* pNext;
9318 VkOffset2D codedOffset;
9319 VkExtent2D codedExtent;
9320 uint32_t baseArrayLayer;
9321 VkImageView imageViewBinding;
9322} VkVideoPictureResourceInfoKHR;
9323
9324typedef struct VkVideoReferenceSlotInfoKHR {
9325 VkStructureType sType;
9326 const void* pNext;
9327 int32_t slotIndex;
9328 const VkVideoPictureResourceInfoKHR* pPictureResource;
9329} VkVideoReferenceSlotInfoKHR;
9330
9331typedef struct VkVideoSessionMemoryRequirementsKHR {
9332 VkStructureType sType;
9333 void* pNext;
9334 uint32_t memoryBindIndex;
9335 VkMemoryRequirements memoryRequirements;
9336} VkVideoSessionMemoryRequirementsKHR;
9337
9338typedef struct VkBindVideoSessionMemoryInfoKHR {
9339 VkStructureType sType;
9340 const void* pNext;
9341 uint32_t memoryBindIndex;
9342 VkDeviceMemory memory;
9343 VkDeviceSize memoryOffset;
9344 VkDeviceSize memorySize;
9345} VkBindVideoSessionMemoryInfoKHR;
9346
9347typedef struct VkVideoSessionCreateInfoKHR {
9348 VkStructureType sType;
9349 const void* pNext;
9350 uint32_t queueFamilyIndex;
9351 VkVideoSessionCreateFlagsKHR flags;
9352 const VkVideoProfileInfoKHR* pVideoProfile;
9353 VkFormat pictureFormat;
9354 VkExtent2D maxCodedExtent;
9355 VkFormat referencePictureFormat;
9356 uint32_t maxDpbSlots;
9357 uint32_t maxActiveReferencePictures;
9358 const VkExtensionProperties* pStdHeaderVersion;
9359} VkVideoSessionCreateInfoKHR;
9360
9361typedef struct VkVideoSessionParametersCreateInfoKHR {
9362 VkStructureType sType;
9363 const void* pNext;
9364 VkVideoSessionParametersCreateFlagsKHR flags;
9365 VkVideoSessionParametersKHR videoSessionParametersTemplate;
9366 VkVideoSessionKHR videoSession;
9367} VkVideoSessionParametersCreateInfoKHR;
9368
9369typedef struct VkVideoSessionParametersUpdateInfoKHR {
9370 VkStructureType sType;
9371 const void* pNext;
9372 uint32_t updateSequenceCount;
9373} VkVideoSessionParametersUpdateInfoKHR;
9374
9375typedef struct VkVideoBeginCodingInfoKHR {
9376 VkStructureType sType;
9377 const void* pNext;
9378 VkVideoBeginCodingFlagsKHR flags;
9379 VkVideoSessionKHR videoSession;
9380 VkVideoSessionParametersKHR videoSessionParameters;
9381 uint32_t referenceSlotCount;
9382 const VkVideoReferenceSlotInfoKHR* pReferenceSlots;
9383} VkVideoBeginCodingInfoKHR;
9384
9385typedef struct VkVideoEndCodingInfoKHR {
9386 VkStructureType sType;
9387 const void* pNext;
9388 VkVideoEndCodingFlagsKHR flags;
9389} VkVideoEndCodingInfoKHR;
9390
9391typedef struct VkVideoCodingControlInfoKHR {
9392 VkStructureType sType;
9393 const void* pNext;
9394 VkVideoCodingControlFlagsKHR flags;
9395} VkVideoCodingControlInfoKHR;
9396
9397typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoCapabilitiesKHR)(VkPhysicalDevice physicalDevice, const VkVideoProfileInfoKHR* pVideoProfile, VkVideoCapabilitiesKHR* pCapabilities);
9398typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoFormatPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo, uint32_t* pVideoFormatPropertyCount, VkVideoFormatPropertiesKHR* pVideoFormatProperties);
9399typedef VkResult (VKAPI_PTR *PFN_vkCreateVideoSessionKHR)(VkDevice device, const VkVideoSessionCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionKHR* pVideoSession);
9400typedef void (VKAPI_PTR *PFN_vkDestroyVideoSessionKHR)(VkDevice device, VkVideoSessionKHR videoSession, const VkAllocationCallbacks* pAllocator);
9401typedef VkResult (VKAPI_PTR *PFN_vkGetVideoSessionMemoryRequirementsKHR)(VkDevice device, VkVideoSessionKHR videoSession, uint32_t* pMemoryRequirementsCount, VkVideoSessionMemoryRequirementsKHR* pMemoryRequirements);
9402typedef VkResult (VKAPI_PTR *PFN_vkBindVideoSessionMemoryKHR)(VkDevice device, VkVideoSessionKHR videoSession, uint32_t bindSessionMemoryInfoCount, const VkBindVideoSessionMemoryInfoKHR* pBindSessionMemoryInfos);
9403typedef VkResult (VKAPI_PTR *PFN_vkCreateVideoSessionParametersKHR)(VkDevice device, const VkVideoSessionParametersCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkVideoSessionParametersKHR* pVideoSessionParameters);
9404typedef VkResult (VKAPI_PTR *PFN_vkUpdateVideoSessionParametersKHR)(VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo);
9405typedef void (VKAPI_PTR *PFN_vkDestroyVideoSessionParametersKHR)(VkDevice device, VkVideoSessionParametersKHR videoSessionParameters, const VkAllocationCallbacks* pAllocator);
9406typedef void (VKAPI_PTR *PFN_vkCmdBeginVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoBeginCodingInfoKHR* pBeginInfo);
9407typedef void (VKAPI_PTR *PFN_vkCmdEndVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoEndCodingInfoKHR* pEndCodingInfo);
9408typedef void (VKAPI_PTR *PFN_vkCmdControlVideoCodingKHR)(VkCommandBuffer commandBuffer, const VkVideoCodingControlInfoKHR* pCodingControlInfo);
9409
9410#ifndef VK_NO_PROTOTYPES
9411#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9412VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoCapabilitiesKHR(
9413 VkPhysicalDevice physicalDevice,
9414 const VkVideoProfileInfoKHR* pVideoProfile,
9415 VkVideoCapabilitiesKHR* pCapabilities);
9416#endif
9417
9418#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9419VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoFormatPropertiesKHR(
9420 VkPhysicalDevice physicalDevice,
9421 const VkPhysicalDeviceVideoFormatInfoKHR* pVideoFormatInfo,
9422 uint32_t* pVideoFormatPropertyCount,
9423 VkVideoFormatPropertiesKHR* pVideoFormatProperties);
9424#endif
9425
9426#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9427VKAPI_ATTR VkResult VKAPI_CALL vkCreateVideoSessionKHR(
9428 VkDevice device,
9429 const VkVideoSessionCreateInfoKHR* pCreateInfo,
9430 const VkAllocationCallbacks* pAllocator,
9431 VkVideoSessionKHR* pVideoSession);
9432#endif
9433
9434#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9435VKAPI_ATTR void VKAPI_CALL vkDestroyVideoSessionKHR(
9436 VkDevice device,
9437 VkVideoSessionKHR videoSession,
9438 const VkAllocationCallbacks* pAllocator);
9439#endif
9440
9441#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9442VKAPI_ATTR VkResult VKAPI_CALL vkGetVideoSessionMemoryRequirementsKHR(
9443 VkDevice device,
9444 VkVideoSessionKHR videoSession,
9445 uint32_t* pMemoryRequirementsCount,
9446 VkVideoSessionMemoryRequirementsKHR* pMemoryRequirements);
9447#endif
9448
9449#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9450VKAPI_ATTR VkResult VKAPI_CALL vkBindVideoSessionMemoryKHR(
9451 VkDevice device,
9452 VkVideoSessionKHR videoSession,
9453 uint32_t bindSessionMemoryInfoCount,
9454 const VkBindVideoSessionMemoryInfoKHR* pBindSessionMemoryInfos);
9455#endif
9456
9457#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9458VKAPI_ATTR VkResult VKAPI_CALL vkCreateVideoSessionParametersKHR(
9459 VkDevice device,
9460 const VkVideoSessionParametersCreateInfoKHR* pCreateInfo,
9461 const VkAllocationCallbacks* pAllocator,
9462 VkVideoSessionParametersKHR* pVideoSessionParameters);
9463#endif
9464
9465#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9466VKAPI_ATTR VkResult VKAPI_CALL vkUpdateVideoSessionParametersKHR(
9467 VkDevice device,
9468 VkVideoSessionParametersKHR videoSessionParameters,
9469 const VkVideoSessionParametersUpdateInfoKHR* pUpdateInfo);
9470#endif
9471
9472#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9473VKAPI_ATTR void VKAPI_CALL vkDestroyVideoSessionParametersKHR(
9474 VkDevice device,
9475 VkVideoSessionParametersKHR videoSessionParameters,
9476 const VkAllocationCallbacks* pAllocator);
9477#endif
9478
9479#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9480VKAPI_ATTR void VKAPI_CALL vkCmdBeginVideoCodingKHR(
9481 VkCommandBuffer commandBuffer,
9482 const VkVideoBeginCodingInfoKHR* pBeginInfo);
9483#endif
9484
9485#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9486VKAPI_ATTR void VKAPI_CALL vkCmdEndVideoCodingKHR(
9487 VkCommandBuffer commandBuffer,
9488 const VkVideoEndCodingInfoKHR* pEndCodingInfo);
9489#endif
9490
9491#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9492VKAPI_ATTR void VKAPI_CALL vkCmdControlVideoCodingKHR(
9493 VkCommandBuffer commandBuffer,
9494 const VkVideoCodingControlInfoKHR* pCodingControlInfo);
9495#endif
9496#endif
9497
9498
9499// VK_KHR_video_decode_queue is a preprocessor guard. Do not pass it to API calls.
9500#define VK_KHR_video_decode_queue 1
9501#define VK_KHR_VIDEO_DECODE_QUEUE_SPEC_VERSION 8
9502#define VK_KHR_VIDEO_DECODE_QUEUE_EXTENSION_NAME "VK_KHR_video_decode_queue"
9503
9504typedef enum VkVideoDecodeCapabilityFlagBitsKHR {
9505 VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_COINCIDE_BIT_KHR = 0x00000001,
9506 VK_VIDEO_DECODE_CAPABILITY_DPB_AND_OUTPUT_DISTINCT_BIT_KHR = 0x00000002,
9507 VK_VIDEO_DECODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9508} VkVideoDecodeCapabilityFlagBitsKHR;
9509typedef VkFlags VkVideoDecodeCapabilityFlagsKHR;
9510
9511typedef enum VkVideoDecodeUsageFlagBitsKHR {
9512 VK_VIDEO_DECODE_USAGE_DEFAULT_KHR = 0,
9513 VK_VIDEO_DECODE_USAGE_TRANSCODING_BIT_KHR = 0x00000001,
9514 VK_VIDEO_DECODE_USAGE_OFFLINE_BIT_KHR = 0x00000002,
9515 VK_VIDEO_DECODE_USAGE_STREAMING_BIT_KHR = 0x00000004,
9516 VK_VIDEO_DECODE_USAGE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9517} VkVideoDecodeUsageFlagBitsKHR;
9518typedef VkFlags VkVideoDecodeUsageFlagsKHR;
9519typedef VkFlags VkVideoDecodeFlagsKHR;
9520typedef struct VkVideoDecodeCapabilitiesKHR {
9521 VkStructureType sType;
9522 void* pNext;
9523 VkVideoDecodeCapabilityFlagsKHR flags;
9524} VkVideoDecodeCapabilitiesKHR;
9525
9526typedef struct VkVideoDecodeUsageInfoKHR {
9527 VkStructureType sType;
9528 const void* pNext;
9529 VkVideoDecodeUsageFlagsKHR videoUsageHints;
9530} VkVideoDecodeUsageInfoKHR;
9531
9532typedef struct VkVideoDecodeInfoKHR {
9533 VkStructureType sType;
9534 const void* pNext;
9535 VkVideoDecodeFlagsKHR flags;
9536 VkBuffer srcBuffer;
9537 VkDeviceSize srcBufferOffset;
9538 VkDeviceSize srcBufferRange;
9539 VkVideoPictureResourceInfoKHR dstPictureResource;
9540 const VkVideoReferenceSlotInfoKHR* pSetupReferenceSlot;
9541 uint32_t referenceSlotCount;
9542 const VkVideoReferenceSlotInfoKHR* pReferenceSlots;
9543} VkVideoDecodeInfoKHR;
9544
9545typedef void (VKAPI_PTR *PFN_vkCmdDecodeVideoKHR)(VkCommandBuffer commandBuffer, const VkVideoDecodeInfoKHR* pDecodeInfo);
9546
9547#ifndef VK_NO_PROTOTYPES
9548#ifndef VK_ONLY_EXPORTED_PROTOTYPES
9549VKAPI_ATTR void VKAPI_CALL vkCmdDecodeVideoKHR(
9550 VkCommandBuffer commandBuffer,
9551 const VkVideoDecodeInfoKHR* pDecodeInfo);
9552#endif
9553#endif
9554
9555
9556// VK_KHR_video_encode_h264 is a preprocessor guard. Do not pass it to API calls.
9557#define VK_KHR_video_encode_h264 1
9558#include "vk_video/vulkan_video_codec_h264std.h"
9559#include "vk_video/vulkan_video_codec_h264std_encode.h"
9560#define VK_KHR_VIDEO_ENCODE_H264_SPEC_VERSION 14
9561#define VK_KHR_VIDEO_ENCODE_H264_EXTENSION_NAME "VK_KHR_video_encode_h264"
9562
9563typedef enum VkVideoEncodeH264CapabilityFlagBitsKHR {
9564 VK_VIDEO_ENCODE_H264_CAPABILITY_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
9565 VK_VIDEO_ENCODE_H264_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR = 0x00000002,
9566 VK_VIDEO_ENCODE_H264_CAPABILITY_ROW_UNALIGNED_SLICE_BIT_KHR = 0x00000004,
9567 VK_VIDEO_ENCODE_H264_CAPABILITY_DIFFERENT_SLICE_TYPE_BIT_KHR = 0x00000008,
9568 VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR = 0x00000010,
9569 VK_VIDEO_ENCODE_H264_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR = 0x00000020,
9570 VK_VIDEO_ENCODE_H264_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR = 0x00000040,
9571 VK_VIDEO_ENCODE_H264_CAPABILITY_PER_SLICE_CONSTANT_QP_BIT_KHR = 0x00000080,
9572 VK_VIDEO_ENCODE_H264_CAPABILITY_GENERATE_PREFIX_NALU_BIT_KHR = 0x00000100,
9573 VK_VIDEO_ENCODE_H264_CAPABILITY_B_PICTURE_INTRA_REFRESH_BIT_KHR = 0x00000400,
9574 VK_VIDEO_ENCODE_H264_CAPABILITY_MB_QP_DIFF_WRAPAROUND_BIT_KHR = 0x00000200,
9575 VK_VIDEO_ENCODE_H264_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9576} VkVideoEncodeH264CapabilityFlagBitsKHR;
9577typedef VkFlags VkVideoEncodeH264CapabilityFlagsKHR;
9578
9579typedef enum VkVideoEncodeH264StdFlagBitsKHR {
9580 VK_VIDEO_ENCODE_H264_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR = 0x00000001,
9581 VK_VIDEO_ENCODE_H264_STD_QPPRIME_Y_ZERO_TRANSFORM_BYPASS_FLAG_SET_BIT_KHR = 0x00000002,
9582 VK_VIDEO_ENCODE_H264_STD_SCALING_MATRIX_PRESENT_FLAG_SET_BIT_KHR = 0x00000004,
9583 VK_VIDEO_ENCODE_H264_STD_CHROMA_QP_INDEX_OFFSET_BIT_KHR = 0x00000008,
9584 VK_VIDEO_ENCODE_H264_STD_SECOND_CHROMA_QP_INDEX_OFFSET_BIT_KHR = 0x00000010,
9585 VK_VIDEO_ENCODE_H264_STD_PIC_INIT_QP_MINUS26_BIT_KHR = 0x00000020,
9586 VK_VIDEO_ENCODE_H264_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR = 0x00000040,
9587 VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_EXPLICIT_BIT_KHR = 0x00000080,
9588 VK_VIDEO_ENCODE_H264_STD_WEIGHTED_BIPRED_IDC_IMPLICIT_BIT_KHR = 0x00000100,
9589 VK_VIDEO_ENCODE_H264_STD_TRANSFORM_8X8_MODE_FLAG_SET_BIT_KHR = 0x00000200,
9590 VK_VIDEO_ENCODE_H264_STD_DIRECT_SPATIAL_MV_PRED_FLAG_UNSET_BIT_KHR = 0x00000400,
9591 VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_UNSET_BIT_KHR = 0x00000800,
9592 VK_VIDEO_ENCODE_H264_STD_ENTROPY_CODING_MODE_FLAG_SET_BIT_KHR = 0x00001000,
9593 VK_VIDEO_ENCODE_H264_STD_DIRECT_8X8_INFERENCE_FLAG_UNSET_BIT_KHR = 0x00002000,
9594 VK_VIDEO_ENCODE_H264_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR = 0x00004000,
9595 VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_DISABLED_BIT_KHR = 0x00008000,
9596 VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_ENABLED_BIT_KHR = 0x00010000,
9597 VK_VIDEO_ENCODE_H264_STD_DEBLOCKING_FILTER_PARTIAL_BIT_KHR = 0x00020000,
9598 VK_VIDEO_ENCODE_H264_STD_SLICE_QP_DELTA_BIT_KHR = 0x00080000,
9599 VK_VIDEO_ENCODE_H264_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHR = 0x00100000,
9600 VK_VIDEO_ENCODE_H264_STD_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9601} VkVideoEncodeH264StdFlagBitsKHR;
9602typedef VkFlags VkVideoEncodeH264StdFlagsKHR;
9603
9604typedef enum VkVideoEncodeH264RateControlFlagBitsKHR {
9605 VK_VIDEO_ENCODE_H264_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
9606 VK_VIDEO_ENCODE_H264_RATE_CONTROL_REGULAR_GOP_BIT_KHR = 0x00000002,
9607 VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR = 0x00000004,
9608 VK_VIDEO_ENCODE_H264_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR = 0x00000008,
9609 VK_VIDEO_ENCODE_H264_RATE_CONTROL_TEMPORAL_LAYER_PATTERN_DYADIC_BIT_KHR = 0x00000010,
9610 VK_VIDEO_ENCODE_H264_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9611} VkVideoEncodeH264RateControlFlagBitsKHR;
9612typedef VkFlags VkVideoEncodeH264RateControlFlagsKHR;
9613typedef struct VkVideoEncodeH264CapabilitiesKHR {
9614 VkStructureType sType;
9615 void* pNext;
9616 VkVideoEncodeH264CapabilityFlagsKHR flags;
9617 StdVideoH264LevelIdc maxLevelIdc;
9618 uint32_t maxSliceCount;
9619 uint32_t maxPPictureL0ReferenceCount;
9620 uint32_t maxBPictureL0ReferenceCount;
9621 uint32_t maxL1ReferenceCount;
9622 uint32_t maxTemporalLayerCount;
9623 VkBool32 expectDyadicTemporalLayerPattern;
9624 int32_t minQp;
9625 int32_t maxQp;
9626 VkBool32 prefersGopRemainingFrames;
9627 VkBool32 requiresGopRemainingFrames;
9628 VkVideoEncodeH264StdFlagsKHR stdSyntaxFlags;
9629} VkVideoEncodeH264CapabilitiesKHR;
9630
9631typedef struct VkVideoEncodeH264QpKHR {
9632 int32_t qpI;
9633 int32_t qpP;
9634 int32_t qpB;
9635} VkVideoEncodeH264QpKHR;
9636
9637typedef struct VkVideoEncodeH264QualityLevelPropertiesKHR {
9638 VkStructureType sType;
9639 void* pNext;
9640 VkVideoEncodeH264RateControlFlagsKHR preferredRateControlFlags;
9641 uint32_t preferredGopFrameCount;
9642 uint32_t preferredIdrPeriod;
9643 uint32_t preferredConsecutiveBFrameCount;
9644 uint32_t preferredTemporalLayerCount;
9645 VkVideoEncodeH264QpKHR preferredConstantQp;
9646 uint32_t preferredMaxL0ReferenceCount;
9647 uint32_t preferredMaxL1ReferenceCount;
9648 VkBool32 preferredStdEntropyCodingModeFlag;
9649} VkVideoEncodeH264QualityLevelPropertiesKHR;
9650
9651typedef struct VkVideoEncodeH264SessionCreateInfoKHR {
9652 VkStructureType sType;
9653 const void* pNext;
9654 VkBool32 useMaxLevelIdc;
9655 StdVideoH264LevelIdc maxLevelIdc;
9656} VkVideoEncodeH264SessionCreateInfoKHR;
9657
9658typedef struct VkVideoEncodeH264SessionParametersAddInfoKHR {
9659 VkStructureType sType;
9660 const void* pNext;
9661 uint32_t stdSPSCount;
9662 const StdVideoH264SequenceParameterSet* pStdSPSs;
9663 uint32_t stdPPSCount;
9664 const StdVideoH264PictureParameterSet* pStdPPSs;
9665} VkVideoEncodeH264SessionParametersAddInfoKHR;
9666
9667typedef struct VkVideoEncodeH264SessionParametersCreateInfoKHR {
9668 VkStructureType sType;
9669 const void* pNext;
9670 uint32_t maxStdSPSCount;
9671 uint32_t maxStdPPSCount;
9672 const VkVideoEncodeH264SessionParametersAddInfoKHR* pParametersAddInfo;
9673} VkVideoEncodeH264SessionParametersCreateInfoKHR;
9674
9675typedef struct VkVideoEncodeH264SessionParametersGetInfoKHR {
9676 VkStructureType sType;
9677 const void* pNext;
9678 VkBool32 writeStdSPS;
9679 VkBool32 writeStdPPS;
9680 uint32_t stdSPSId;
9681 uint32_t stdPPSId;
9682} VkVideoEncodeH264SessionParametersGetInfoKHR;
9683
9684typedef struct VkVideoEncodeH264SessionParametersFeedbackInfoKHR {
9685 VkStructureType sType;
9686 void* pNext;
9687 VkBool32 hasStdSPSOverrides;
9688 VkBool32 hasStdPPSOverrides;
9689} VkVideoEncodeH264SessionParametersFeedbackInfoKHR;
9690
9691typedef struct VkVideoEncodeH264NaluSliceInfoKHR {
9692 VkStructureType sType;
9693 const void* pNext;
9694 int32_t constantQp;
9695 const StdVideoEncodeH264SliceHeader* pStdSliceHeader;
9696} VkVideoEncodeH264NaluSliceInfoKHR;
9697
9698typedef struct VkVideoEncodeH264PictureInfoKHR {
9699 VkStructureType sType;
9700 const void* pNext;
9701 uint32_t naluSliceEntryCount;
9702 const VkVideoEncodeH264NaluSliceInfoKHR* pNaluSliceEntries;
9703 const StdVideoEncodeH264PictureInfo* pStdPictureInfo;
9704 VkBool32 generatePrefixNalu;
9705} VkVideoEncodeH264PictureInfoKHR;
9706
9707typedef struct VkVideoEncodeH264DpbSlotInfoKHR {
9708 VkStructureType sType;
9709 const void* pNext;
9710 const StdVideoEncodeH264ReferenceInfo* pStdReferenceInfo;
9711} VkVideoEncodeH264DpbSlotInfoKHR;
9712
9713typedef struct VkVideoEncodeH264ProfileInfoKHR {
9714 VkStructureType sType;
9715 const void* pNext;
9716 StdVideoH264ProfileIdc stdProfileIdc;
9717} VkVideoEncodeH264ProfileInfoKHR;
9718
9719typedef struct VkVideoEncodeH264RateControlInfoKHR {
9720 VkStructureType sType;
9721 const void* pNext;
9722 VkVideoEncodeH264RateControlFlagsKHR flags;
9723 uint32_t gopFrameCount;
9724 uint32_t idrPeriod;
9725 uint32_t consecutiveBFrameCount;
9726 uint32_t temporalLayerCount;
9727} VkVideoEncodeH264RateControlInfoKHR;
9728
9729typedef struct VkVideoEncodeH264FrameSizeKHR {
9730 uint32_t frameISize;
9731 uint32_t framePSize;
9732 uint32_t frameBSize;
9733} VkVideoEncodeH264FrameSizeKHR;
9734
9735typedef struct VkVideoEncodeH264RateControlLayerInfoKHR {
9736 VkStructureType sType;
9737 const void* pNext;
9738 VkBool32 useMinQp;
9739 VkVideoEncodeH264QpKHR minQp;
9740 VkBool32 useMaxQp;
9741 VkVideoEncodeH264QpKHR maxQp;
9742 VkBool32 useMaxFrameSize;
9743 VkVideoEncodeH264FrameSizeKHR maxFrameSize;
9744} VkVideoEncodeH264RateControlLayerInfoKHR;
9745
9746typedef struct VkVideoEncodeH264GopRemainingFrameInfoKHR {
9747 VkStructureType sType;
9748 const void* pNext;
9749 VkBool32 useGopRemainingFrames;
9750 uint32_t gopRemainingI;
9751 uint32_t gopRemainingP;
9752 uint32_t gopRemainingB;
9753} VkVideoEncodeH264GopRemainingFrameInfoKHR;
9754
9755
9756
9757// VK_KHR_video_encode_h265 is a preprocessor guard. Do not pass it to API calls.
9758#define VK_KHR_video_encode_h265 1
9759#include "vk_video/vulkan_video_codec_h265std.h"
9760#include "vk_video/vulkan_video_codec_h265std_encode.h"
9761#define VK_KHR_VIDEO_ENCODE_H265_SPEC_VERSION 14
9762#define VK_KHR_VIDEO_ENCODE_H265_EXTENSION_NAME "VK_KHR_video_encode_h265"
9763
9764typedef enum VkVideoEncodeH265CapabilityFlagBitsKHR {
9765 VK_VIDEO_ENCODE_H265_CAPABILITY_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
9766 VK_VIDEO_ENCODE_H265_CAPABILITY_PREDICTION_WEIGHT_TABLE_GENERATED_BIT_KHR = 0x00000002,
9767 VK_VIDEO_ENCODE_H265_CAPABILITY_ROW_UNALIGNED_SLICE_SEGMENT_BIT_KHR = 0x00000004,
9768 VK_VIDEO_ENCODE_H265_CAPABILITY_DIFFERENT_SLICE_SEGMENT_TYPE_BIT_KHR = 0x00000008,
9769 VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L0_LIST_BIT_KHR = 0x00000010,
9770 VK_VIDEO_ENCODE_H265_CAPABILITY_B_FRAME_IN_L1_LIST_BIT_KHR = 0x00000020,
9771 VK_VIDEO_ENCODE_H265_CAPABILITY_PER_PICTURE_TYPE_MIN_MAX_QP_BIT_KHR = 0x00000040,
9772 VK_VIDEO_ENCODE_H265_CAPABILITY_PER_SLICE_SEGMENT_CONSTANT_QP_BIT_KHR = 0x00000080,
9773 VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_TILES_PER_SLICE_SEGMENT_BIT_KHR = 0x00000100,
9774 VK_VIDEO_ENCODE_H265_CAPABILITY_MULTIPLE_SLICE_SEGMENTS_PER_TILE_BIT_KHR = 0x00000200,
9775 VK_VIDEO_ENCODE_H265_CAPABILITY_B_PICTURE_INTRA_REFRESH_BIT_KHR = 0x00000800,
9776 VK_VIDEO_ENCODE_H265_CAPABILITY_CU_QP_DIFF_WRAPAROUND_BIT_KHR = 0x00000400,
9777 VK_VIDEO_ENCODE_H265_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9778} VkVideoEncodeH265CapabilityFlagBitsKHR;
9779typedef VkFlags VkVideoEncodeH265CapabilityFlagsKHR;
9780
9781typedef enum VkVideoEncodeH265StdFlagBitsKHR {
9782 VK_VIDEO_ENCODE_H265_STD_SEPARATE_COLOR_PLANE_FLAG_SET_BIT_KHR = 0x00000001,
9783 VK_VIDEO_ENCODE_H265_STD_SAMPLE_ADAPTIVE_OFFSET_ENABLED_FLAG_SET_BIT_KHR = 0x00000002,
9784 VK_VIDEO_ENCODE_H265_STD_SCALING_LIST_DATA_PRESENT_FLAG_SET_BIT_KHR = 0x00000004,
9785 VK_VIDEO_ENCODE_H265_STD_PCM_ENABLED_FLAG_SET_BIT_KHR = 0x00000008,
9786 VK_VIDEO_ENCODE_H265_STD_SPS_TEMPORAL_MVP_ENABLED_FLAG_SET_BIT_KHR = 0x00000010,
9787 VK_VIDEO_ENCODE_H265_STD_INIT_QP_MINUS26_BIT_KHR = 0x00000020,
9788 VK_VIDEO_ENCODE_H265_STD_WEIGHTED_PRED_FLAG_SET_BIT_KHR = 0x00000040,
9789 VK_VIDEO_ENCODE_H265_STD_WEIGHTED_BIPRED_FLAG_SET_BIT_KHR = 0x00000080,
9790 VK_VIDEO_ENCODE_H265_STD_LOG2_PARALLEL_MERGE_LEVEL_MINUS2_BIT_KHR = 0x00000100,
9791 VK_VIDEO_ENCODE_H265_STD_SIGN_DATA_HIDING_ENABLED_FLAG_SET_BIT_KHR = 0x00000200,
9792 VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_SET_BIT_KHR = 0x00000400,
9793 VK_VIDEO_ENCODE_H265_STD_TRANSFORM_SKIP_ENABLED_FLAG_UNSET_BIT_KHR = 0x00000800,
9794 VK_VIDEO_ENCODE_H265_STD_PPS_SLICE_CHROMA_QP_OFFSETS_PRESENT_FLAG_SET_BIT_KHR = 0x00001000,
9795 VK_VIDEO_ENCODE_H265_STD_TRANSQUANT_BYPASS_ENABLED_FLAG_SET_BIT_KHR = 0x00002000,
9796 VK_VIDEO_ENCODE_H265_STD_CONSTRAINED_INTRA_PRED_FLAG_SET_BIT_KHR = 0x00004000,
9797 VK_VIDEO_ENCODE_H265_STD_ENTROPY_CODING_SYNC_ENABLED_FLAG_SET_BIT_KHR = 0x00008000,
9798 VK_VIDEO_ENCODE_H265_STD_DEBLOCKING_FILTER_OVERRIDE_ENABLED_FLAG_SET_BIT_KHR = 0x00010000,
9799 VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENTS_ENABLED_FLAG_SET_BIT_KHR = 0x00020000,
9800 VK_VIDEO_ENCODE_H265_STD_DEPENDENT_SLICE_SEGMENT_FLAG_SET_BIT_KHR = 0x00040000,
9801 VK_VIDEO_ENCODE_H265_STD_SLICE_QP_DELTA_BIT_KHR = 0x00080000,
9802 VK_VIDEO_ENCODE_H265_STD_DIFFERENT_SLICE_QP_DELTA_BIT_KHR = 0x00100000,
9803 VK_VIDEO_ENCODE_H265_STD_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9804} VkVideoEncodeH265StdFlagBitsKHR;
9805typedef VkFlags VkVideoEncodeH265StdFlagsKHR;
9806
9807typedef enum VkVideoEncodeH265CtbSizeFlagBitsKHR {
9808 VK_VIDEO_ENCODE_H265_CTB_SIZE_16_BIT_KHR = 0x00000001,
9809 VK_VIDEO_ENCODE_H265_CTB_SIZE_32_BIT_KHR = 0x00000002,
9810 VK_VIDEO_ENCODE_H265_CTB_SIZE_64_BIT_KHR = 0x00000004,
9811 VK_VIDEO_ENCODE_H265_CTB_SIZE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9812} VkVideoEncodeH265CtbSizeFlagBitsKHR;
9813typedef VkFlags VkVideoEncodeH265CtbSizeFlagsKHR;
9814
9815typedef enum VkVideoEncodeH265TransformBlockSizeFlagBitsKHR {
9816 VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_4_BIT_KHR = 0x00000001,
9817 VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_8_BIT_KHR = 0x00000002,
9818 VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_16_BIT_KHR = 0x00000004,
9819 VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_32_BIT_KHR = 0x00000008,
9820 VK_VIDEO_ENCODE_H265_TRANSFORM_BLOCK_SIZE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9821} VkVideoEncodeH265TransformBlockSizeFlagBitsKHR;
9822typedef VkFlags VkVideoEncodeH265TransformBlockSizeFlagsKHR;
9823
9824typedef enum VkVideoEncodeH265RateControlFlagBitsKHR {
9825 VK_VIDEO_ENCODE_H265_RATE_CONTROL_ATTEMPT_HRD_COMPLIANCE_BIT_KHR = 0x00000001,
9826 VK_VIDEO_ENCODE_H265_RATE_CONTROL_REGULAR_GOP_BIT_KHR = 0x00000002,
9827 VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR = 0x00000004,
9828 VK_VIDEO_ENCODE_H265_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR = 0x00000008,
9829 VK_VIDEO_ENCODE_H265_RATE_CONTROL_TEMPORAL_SUB_LAYER_PATTERN_DYADIC_BIT_KHR = 0x00000010,
9830 VK_VIDEO_ENCODE_H265_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9831} VkVideoEncodeH265RateControlFlagBitsKHR;
9832typedef VkFlags VkVideoEncodeH265RateControlFlagsKHR;
9833typedef struct VkVideoEncodeH265CapabilitiesKHR {
9834 VkStructureType sType;
9835 void* pNext;
9836 VkVideoEncodeH265CapabilityFlagsKHR flags;
9837 StdVideoH265LevelIdc maxLevelIdc;
9838 uint32_t maxSliceSegmentCount;
9839 VkExtent2D maxTiles;
9840 VkVideoEncodeH265CtbSizeFlagsKHR ctbSizes;
9841 VkVideoEncodeH265TransformBlockSizeFlagsKHR transformBlockSizes;
9842 uint32_t maxPPictureL0ReferenceCount;
9843 uint32_t maxBPictureL0ReferenceCount;
9844 uint32_t maxL1ReferenceCount;
9845 uint32_t maxSubLayerCount;
9846 VkBool32 expectDyadicTemporalSubLayerPattern;
9847 int32_t minQp;
9848 int32_t maxQp;
9849 VkBool32 prefersGopRemainingFrames;
9850 VkBool32 requiresGopRemainingFrames;
9851 VkVideoEncodeH265StdFlagsKHR stdSyntaxFlags;
9852} VkVideoEncodeH265CapabilitiesKHR;
9853
9854typedef struct VkVideoEncodeH265SessionCreateInfoKHR {
9855 VkStructureType sType;
9856 const void* pNext;
9857 VkBool32 useMaxLevelIdc;
9858 StdVideoH265LevelIdc maxLevelIdc;
9859} VkVideoEncodeH265SessionCreateInfoKHR;
9860
9861typedef struct VkVideoEncodeH265QpKHR {
9862 int32_t qpI;
9863 int32_t qpP;
9864 int32_t qpB;
9865} VkVideoEncodeH265QpKHR;
9866
9867typedef struct VkVideoEncodeH265QualityLevelPropertiesKHR {
9868 VkStructureType sType;
9869 void* pNext;
9870 VkVideoEncodeH265RateControlFlagsKHR preferredRateControlFlags;
9871 uint32_t preferredGopFrameCount;
9872 uint32_t preferredIdrPeriod;
9873 uint32_t preferredConsecutiveBFrameCount;
9874 uint32_t preferredSubLayerCount;
9875 VkVideoEncodeH265QpKHR preferredConstantQp;
9876 uint32_t preferredMaxL0ReferenceCount;
9877 uint32_t preferredMaxL1ReferenceCount;
9878} VkVideoEncodeH265QualityLevelPropertiesKHR;
9879
9880typedef struct VkVideoEncodeH265SessionParametersAddInfoKHR {
9881 VkStructureType sType;
9882 const void* pNext;
9883 uint32_t stdVPSCount;
9884 const StdVideoH265VideoParameterSet* pStdVPSs;
9885 uint32_t stdSPSCount;
9886 const StdVideoH265SequenceParameterSet* pStdSPSs;
9887 uint32_t stdPPSCount;
9888 const StdVideoH265PictureParameterSet* pStdPPSs;
9889} VkVideoEncodeH265SessionParametersAddInfoKHR;
9890
9891typedef struct VkVideoEncodeH265SessionParametersCreateInfoKHR {
9892 VkStructureType sType;
9893 const void* pNext;
9894 uint32_t maxStdVPSCount;
9895 uint32_t maxStdSPSCount;
9896 uint32_t maxStdPPSCount;
9897 const VkVideoEncodeH265SessionParametersAddInfoKHR* pParametersAddInfo;
9898} VkVideoEncodeH265SessionParametersCreateInfoKHR;
9899
9900typedef struct VkVideoEncodeH265SessionParametersGetInfoKHR {
9901 VkStructureType sType;
9902 const void* pNext;
9903 VkBool32 writeStdVPS;
9904 VkBool32 writeStdSPS;
9905 VkBool32 writeStdPPS;
9906 uint32_t stdVPSId;
9907 uint32_t stdSPSId;
9908 uint32_t stdPPSId;
9909} VkVideoEncodeH265SessionParametersGetInfoKHR;
9910
9911typedef struct VkVideoEncodeH265SessionParametersFeedbackInfoKHR {
9912 VkStructureType sType;
9913 void* pNext;
9914 VkBool32 hasStdVPSOverrides;
9915 VkBool32 hasStdSPSOverrides;
9916 VkBool32 hasStdPPSOverrides;
9917} VkVideoEncodeH265SessionParametersFeedbackInfoKHR;
9918
9919typedef struct VkVideoEncodeH265NaluSliceSegmentInfoKHR {
9920 VkStructureType sType;
9921 const void* pNext;
9922 int32_t constantQp;
9923 const StdVideoEncodeH265SliceSegmentHeader* pStdSliceSegmentHeader;
9924} VkVideoEncodeH265NaluSliceSegmentInfoKHR;
9925
9926typedef struct VkVideoEncodeH265PictureInfoKHR {
9927 VkStructureType sType;
9928 const void* pNext;
9929 uint32_t naluSliceSegmentEntryCount;
9930 const VkVideoEncodeH265NaluSliceSegmentInfoKHR* pNaluSliceSegmentEntries;
9931 const StdVideoEncodeH265PictureInfo* pStdPictureInfo;
9932} VkVideoEncodeH265PictureInfoKHR;
9933
9934typedef struct VkVideoEncodeH265DpbSlotInfoKHR {
9935 VkStructureType sType;
9936 const void* pNext;
9937 const StdVideoEncodeH265ReferenceInfo* pStdReferenceInfo;
9938} VkVideoEncodeH265DpbSlotInfoKHR;
9939
9940typedef struct VkVideoEncodeH265ProfileInfoKHR {
9941 VkStructureType sType;
9942 const void* pNext;
9943 StdVideoH265ProfileIdc stdProfileIdc;
9944} VkVideoEncodeH265ProfileInfoKHR;
9945
9946typedef struct VkVideoEncodeH265RateControlInfoKHR {
9947 VkStructureType sType;
9948 const void* pNext;
9949 VkVideoEncodeH265RateControlFlagsKHR flags;
9950 uint32_t gopFrameCount;
9951 uint32_t idrPeriod;
9952 uint32_t consecutiveBFrameCount;
9953 uint32_t subLayerCount;
9954} VkVideoEncodeH265RateControlInfoKHR;
9955
9956typedef struct VkVideoEncodeH265FrameSizeKHR {
9957 uint32_t frameISize;
9958 uint32_t framePSize;
9959 uint32_t frameBSize;
9960} VkVideoEncodeH265FrameSizeKHR;
9961
9962typedef struct VkVideoEncodeH265RateControlLayerInfoKHR {
9963 VkStructureType sType;
9964 const void* pNext;
9965 VkBool32 useMinQp;
9966 VkVideoEncodeH265QpKHR minQp;
9967 VkBool32 useMaxQp;
9968 VkVideoEncodeH265QpKHR maxQp;
9969 VkBool32 useMaxFrameSize;
9970 VkVideoEncodeH265FrameSizeKHR maxFrameSize;
9971} VkVideoEncodeH265RateControlLayerInfoKHR;
9972
9973typedef struct VkVideoEncodeH265GopRemainingFrameInfoKHR {
9974 VkStructureType sType;
9975 const void* pNext;
9976 VkBool32 useGopRemainingFrames;
9977 uint32_t gopRemainingI;
9978 uint32_t gopRemainingP;
9979 uint32_t gopRemainingB;
9980} VkVideoEncodeH265GopRemainingFrameInfoKHR;
9981
9982
9983
9984// VK_KHR_video_decode_h264 is a preprocessor guard. Do not pass it to API calls.
9985#define VK_KHR_video_decode_h264 1
9986#include "vk_video/vulkan_video_codec_h264std_decode.h"
9987#define VK_KHR_VIDEO_DECODE_H264_SPEC_VERSION 9
9988#define VK_KHR_VIDEO_DECODE_H264_EXTENSION_NAME "VK_KHR_video_decode_h264"
9989
9990typedef enum VkVideoDecodeH264PictureLayoutFlagBitsKHR {
9991 VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_PROGRESSIVE_KHR = 0,
9992 VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_INTERLEAVED_LINES_BIT_KHR = 0x00000001,
9993 VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_INTERLACED_SEPARATE_PLANES_BIT_KHR = 0x00000002,
9994 VK_VIDEO_DECODE_H264_PICTURE_LAYOUT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
9995} VkVideoDecodeH264PictureLayoutFlagBitsKHR;
9996typedef VkFlags VkVideoDecodeH264PictureLayoutFlagsKHR;
9997typedef struct VkVideoDecodeH264ProfileInfoKHR {
9998 VkStructureType sType;
9999 const void* pNext;
10000 StdVideoH264ProfileIdc stdProfileIdc;
10001 VkVideoDecodeH264PictureLayoutFlagBitsKHR pictureLayout;
10002} VkVideoDecodeH264ProfileInfoKHR;
10003
10004typedef struct VkVideoDecodeH264CapabilitiesKHR {
10005 VkStructureType sType;
10006 void* pNext;
10007 StdVideoH264LevelIdc maxLevelIdc;
10008 VkOffset2D fieldOffsetGranularity;
10009} VkVideoDecodeH264CapabilitiesKHR;
10010
10011typedef struct VkVideoDecodeH264SessionParametersAddInfoKHR {
10012 VkStructureType sType;
10013 const void* pNext;
10014 uint32_t stdSPSCount;
10015 const StdVideoH264SequenceParameterSet* pStdSPSs;
10016 uint32_t stdPPSCount;
10017 const StdVideoH264PictureParameterSet* pStdPPSs;
10018} VkVideoDecodeH264SessionParametersAddInfoKHR;
10019
10020typedef struct VkVideoDecodeH264SessionParametersCreateInfoKHR {
10021 VkStructureType sType;
10022 const void* pNext;
10023 uint32_t maxStdSPSCount;
10024 uint32_t maxStdPPSCount;
10025 const VkVideoDecodeH264SessionParametersAddInfoKHR* pParametersAddInfo;
10026} VkVideoDecodeH264SessionParametersCreateInfoKHR;
10027
10028typedef struct VkVideoDecodeH264PictureInfoKHR {
10029 VkStructureType sType;
10030 const void* pNext;
10031 const StdVideoDecodeH264PictureInfo* pStdPictureInfo;
10032 uint32_t sliceCount;
10033 const uint32_t* pSliceOffsets;
10034} VkVideoDecodeH264PictureInfoKHR;
10035
10036typedef struct VkVideoDecodeH264DpbSlotInfoKHR {
10037 VkStructureType sType;
10038 const void* pNext;
10039 const StdVideoDecodeH264ReferenceInfo* pStdReferenceInfo;
10040} VkVideoDecodeH264DpbSlotInfoKHR;
10041
10042
10043
10044// VK_KHR_dynamic_rendering is a preprocessor guard. Do not pass it to API calls.
10045#define VK_KHR_dynamic_rendering 1
10046#define VK_KHR_DYNAMIC_RENDERING_SPEC_VERSION 1
10047#define VK_KHR_DYNAMIC_RENDERING_EXTENSION_NAME "VK_KHR_dynamic_rendering"
10048typedef VkRenderingFlags VkRenderingFlagsKHR;
10049
10050typedef VkRenderingFlagBits VkRenderingFlagBitsKHR;
10051
10052typedef VkRenderingInfo VkRenderingInfoKHR;
10053
10054typedef VkRenderingAttachmentInfo VkRenderingAttachmentInfoKHR;
10055
10056typedef VkPipelineRenderingCreateInfo VkPipelineRenderingCreateInfoKHR;
10057
10058typedef VkPhysicalDeviceDynamicRenderingFeatures VkPhysicalDeviceDynamicRenderingFeaturesKHR;
10059
10060typedef VkCommandBufferInheritanceRenderingInfo VkCommandBufferInheritanceRenderingInfoKHR;
10061
10062typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderingKHR)(VkCommandBuffer commandBuffer, const VkRenderingInfo* pRenderingInfo);
10063typedef void (VKAPI_PTR *PFN_vkCmdEndRenderingKHR)(VkCommandBuffer commandBuffer);
10064
10065#ifndef VK_NO_PROTOTYPES
10066#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10067VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderingKHR(
10068 VkCommandBuffer commandBuffer,
10069 const VkRenderingInfo* pRenderingInfo);
10070#endif
10071
10072#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10073VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderingKHR(
10074 VkCommandBuffer commandBuffer);
10075#endif
10076#endif
10077
10078
10079// VK_KHR_multiview is a preprocessor guard. Do not pass it to API calls.
10080#define VK_KHR_multiview 1
10081#define VK_KHR_MULTIVIEW_SPEC_VERSION 1
10082#define VK_KHR_MULTIVIEW_EXTENSION_NAME "VK_KHR_multiview"
10083typedef VkRenderPassMultiviewCreateInfo VkRenderPassMultiviewCreateInfoKHR;
10084
10085typedef VkPhysicalDeviceMultiviewFeatures VkPhysicalDeviceMultiviewFeaturesKHR;
10086
10087typedef VkPhysicalDeviceMultiviewProperties VkPhysicalDeviceMultiviewPropertiesKHR;
10088
10089
10090
10091// VK_KHR_get_physical_device_properties2 is a preprocessor guard. Do not pass it to API calls.
10092#define VK_KHR_get_physical_device_properties2 1
10093#define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_SPEC_VERSION 2
10094#define VK_KHR_GET_PHYSICAL_DEVICE_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_physical_device_properties2"
10095typedef VkPhysicalDeviceFeatures2 VkPhysicalDeviceFeatures2KHR;
10096
10097typedef VkPhysicalDeviceProperties2 VkPhysicalDeviceProperties2KHR;
10098
10099typedef VkFormatProperties2 VkFormatProperties2KHR;
10100
10101typedef VkImageFormatProperties2 VkImageFormatProperties2KHR;
10102
10103typedef VkPhysicalDeviceImageFormatInfo2 VkPhysicalDeviceImageFormatInfo2KHR;
10104
10105typedef VkQueueFamilyProperties2 VkQueueFamilyProperties2KHR;
10106
10107typedef VkPhysicalDeviceMemoryProperties2 VkPhysicalDeviceMemoryProperties2KHR;
10108
10109typedef VkSparseImageFormatProperties2 VkSparseImageFormatProperties2KHR;
10110
10111typedef VkPhysicalDeviceSparseImageFormatInfo2 VkPhysicalDeviceSparseImageFormatInfo2KHR;
10112
10113typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFeatures2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceFeatures2* pFeatures);
10114typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceProperties2* pProperties);
10115typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceFormatProperties2KHR)(VkPhysicalDevice physicalDevice, VkFormat format, VkFormatProperties2* pFormatProperties);
10116typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo, VkImageFormatProperties2* pImageFormatProperties);
10117typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pQueueFamilyPropertyCount, VkQueueFamilyProperties2* pQueueFamilyProperties);
10118typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMemoryProperties2KHR)(VkPhysicalDevice physicalDevice, VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
10119typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceSparseImageFormatProperties2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo, uint32_t* pPropertyCount, VkSparseImageFormatProperties2* pProperties);
10120
10121#ifndef VK_NO_PROTOTYPES
10122#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10123VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFeatures2KHR(
10124 VkPhysicalDevice physicalDevice,
10125 VkPhysicalDeviceFeatures2* pFeatures);
10126#endif
10127
10128#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10129VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceProperties2KHR(
10130 VkPhysicalDevice physicalDevice,
10131 VkPhysicalDeviceProperties2* pProperties);
10132#endif
10133
10134#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10135VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceFormatProperties2KHR(
10136 VkPhysicalDevice physicalDevice,
10137 VkFormat format,
10138 VkFormatProperties2* pFormatProperties);
10139#endif
10140
10141#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10142VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceImageFormatProperties2KHR(
10143 VkPhysicalDevice physicalDevice,
10144 const VkPhysicalDeviceImageFormatInfo2* pImageFormatInfo,
10145 VkImageFormatProperties2* pImageFormatProperties);
10146#endif
10147
10148#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10149VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyProperties2KHR(
10150 VkPhysicalDevice physicalDevice,
10151 uint32_t* pQueueFamilyPropertyCount,
10152 VkQueueFamilyProperties2* pQueueFamilyProperties);
10153#endif
10154
10155#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10156VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMemoryProperties2KHR(
10157 VkPhysicalDevice physicalDevice,
10158 VkPhysicalDeviceMemoryProperties2* pMemoryProperties);
10159#endif
10160
10161#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10162VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
10163 VkPhysicalDevice physicalDevice,
10164 const VkPhysicalDeviceSparseImageFormatInfo2* pFormatInfo,
10165 uint32_t* pPropertyCount,
10166 VkSparseImageFormatProperties2* pProperties);
10167#endif
10168#endif
10169
10170
10171// VK_KHR_device_group is a preprocessor guard. Do not pass it to API calls.
10172#define VK_KHR_device_group 1
10173#define VK_KHR_DEVICE_GROUP_SPEC_VERSION 4
10174#define VK_KHR_DEVICE_GROUP_EXTENSION_NAME "VK_KHR_device_group"
10175typedef VkPeerMemoryFeatureFlags VkPeerMemoryFeatureFlagsKHR;
10176
10177typedef VkPeerMemoryFeatureFlagBits VkPeerMemoryFeatureFlagBitsKHR;
10178
10179typedef VkMemoryAllocateFlags VkMemoryAllocateFlagsKHR;
10180
10181typedef VkMemoryAllocateFlagBits VkMemoryAllocateFlagBitsKHR;
10182
10183typedef VkMemoryAllocateFlagsInfo VkMemoryAllocateFlagsInfoKHR;
10184
10185typedef VkDeviceGroupRenderPassBeginInfo VkDeviceGroupRenderPassBeginInfoKHR;
10186
10187typedef VkDeviceGroupCommandBufferBeginInfo VkDeviceGroupCommandBufferBeginInfoKHR;
10188
10189typedef VkDeviceGroupSubmitInfo VkDeviceGroupSubmitInfoKHR;
10190
10191typedef VkDeviceGroupBindSparseInfo VkDeviceGroupBindSparseInfoKHR;
10192
10193typedef VkBindBufferMemoryDeviceGroupInfo VkBindBufferMemoryDeviceGroupInfoKHR;
10194
10195typedef VkBindImageMemoryDeviceGroupInfo VkBindImageMemoryDeviceGroupInfoKHR;
10196
10197typedef void (VKAPI_PTR *PFN_vkGetDeviceGroupPeerMemoryFeaturesKHR)(VkDevice device, uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
10198typedef void (VKAPI_PTR *PFN_vkCmdSetDeviceMaskKHR)(VkCommandBuffer commandBuffer, uint32_t deviceMask);
10199typedef 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);
10200
10201#ifndef VK_NO_PROTOTYPES
10202#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10203VKAPI_ATTR void VKAPI_CALL vkGetDeviceGroupPeerMemoryFeaturesKHR(
10204 VkDevice device,
10205 uint32_t heapIndex,
10206 uint32_t localDeviceIndex,
10207 uint32_t remoteDeviceIndex,
10208 VkPeerMemoryFeatureFlags* pPeerMemoryFeatures);
10209#endif
10210
10211#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10212VKAPI_ATTR void VKAPI_CALL vkCmdSetDeviceMaskKHR(
10213 VkCommandBuffer commandBuffer,
10214 uint32_t deviceMask);
10215#endif
10216
10217#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10218VKAPI_ATTR void VKAPI_CALL vkCmdDispatchBaseKHR(
10219 VkCommandBuffer commandBuffer,
10220 uint32_t baseGroupX,
10221 uint32_t baseGroupY,
10222 uint32_t baseGroupZ,
10223 uint32_t groupCountX,
10224 uint32_t groupCountY,
10225 uint32_t groupCountZ);
10226#endif
10227#endif
10228
10229
10230// VK_KHR_shader_draw_parameters is a preprocessor guard. Do not pass it to API calls.
10231#define VK_KHR_shader_draw_parameters 1
10232#define VK_KHR_SHADER_DRAW_PARAMETERS_SPEC_VERSION 1
10233#define VK_KHR_SHADER_DRAW_PARAMETERS_EXTENSION_NAME "VK_KHR_shader_draw_parameters"
10234
10235
10236// VK_KHR_maintenance1 is a preprocessor guard. Do not pass it to API calls.
10237#define VK_KHR_maintenance1 1
10238#define VK_KHR_MAINTENANCE_1_SPEC_VERSION 2
10239#define VK_KHR_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_maintenance1"
10240// VK_KHR_MAINTENANCE1_SPEC_VERSION is a deprecated alias
10241#define VK_KHR_MAINTENANCE1_SPEC_VERSION VK_KHR_MAINTENANCE_1_SPEC_VERSION
10242// VK_KHR_MAINTENANCE1_EXTENSION_NAME is a deprecated alias
10243#define VK_KHR_MAINTENANCE1_EXTENSION_NAME VK_KHR_MAINTENANCE_1_EXTENSION_NAME
10244typedef VkCommandPoolTrimFlags VkCommandPoolTrimFlagsKHR;
10245
10246typedef void (VKAPI_PTR *PFN_vkTrimCommandPoolKHR)(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags);
10247
10248#ifndef VK_NO_PROTOTYPES
10249#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10250VKAPI_ATTR void VKAPI_CALL vkTrimCommandPoolKHR(
10251 VkDevice device,
10252 VkCommandPool commandPool,
10253 VkCommandPoolTrimFlags flags);
10254#endif
10255#endif
10256
10257
10258// VK_KHR_device_group_creation is a preprocessor guard. Do not pass it to API calls.
10259#define VK_KHR_device_group_creation 1
10260#define VK_KHR_DEVICE_GROUP_CREATION_SPEC_VERSION 1
10261#define VK_KHR_DEVICE_GROUP_CREATION_EXTENSION_NAME "VK_KHR_device_group_creation"
10262#define VK_MAX_DEVICE_GROUP_SIZE_KHR VK_MAX_DEVICE_GROUP_SIZE
10263typedef VkPhysicalDeviceGroupProperties VkPhysicalDeviceGroupPropertiesKHR;
10264
10265typedef VkDeviceGroupDeviceCreateInfo VkDeviceGroupDeviceCreateInfoKHR;
10266
10267typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceGroupsKHR)(VkInstance instance, uint32_t* pPhysicalDeviceGroupCount, VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
10268
10269#ifndef VK_NO_PROTOTYPES
10270#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10271VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceGroupsKHR(
10272 VkInstance instance,
10273 uint32_t* pPhysicalDeviceGroupCount,
10274 VkPhysicalDeviceGroupProperties* pPhysicalDeviceGroupProperties);
10275#endif
10276#endif
10277
10278
10279// VK_KHR_external_memory_capabilities is a preprocessor guard. Do not pass it to API calls.
10280#define VK_KHR_external_memory_capabilities 1
10281#define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
10282#define VK_KHR_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_memory_capabilities"
10283#define VK_LUID_SIZE_KHR VK_LUID_SIZE
10284typedef VkExternalMemoryHandleTypeFlags VkExternalMemoryHandleTypeFlagsKHR;
10285
10286typedef VkExternalMemoryHandleTypeFlagBits VkExternalMemoryHandleTypeFlagBitsKHR;
10287
10288typedef VkExternalMemoryFeatureFlags VkExternalMemoryFeatureFlagsKHR;
10289
10290typedef VkExternalMemoryFeatureFlagBits VkExternalMemoryFeatureFlagBitsKHR;
10291
10292typedef VkExternalMemoryProperties VkExternalMemoryPropertiesKHR;
10293
10294typedef VkPhysicalDeviceExternalImageFormatInfo VkPhysicalDeviceExternalImageFormatInfoKHR;
10295
10296typedef VkExternalImageFormatProperties VkExternalImageFormatPropertiesKHR;
10297
10298typedef VkPhysicalDeviceExternalBufferInfo VkPhysicalDeviceExternalBufferInfoKHR;
10299
10300typedef VkExternalBufferProperties VkExternalBufferPropertiesKHR;
10301
10302typedef VkPhysicalDeviceIDProperties VkPhysicalDeviceIDPropertiesKHR;
10303
10304typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalBufferPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo, VkExternalBufferProperties* pExternalBufferProperties);
10305
10306#ifndef VK_NO_PROTOTYPES
10307#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10308VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalBufferPropertiesKHR(
10309 VkPhysicalDevice physicalDevice,
10310 const VkPhysicalDeviceExternalBufferInfo* pExternalBufferInfo,
10311 VkExternalBufferProperties* pExternalBufferProperties);
10312#endif
10313#endif
10314
10315
10316// VK_KHR_external_memory is a preprocessor guard. Do not pass it to API calls.
10317#define VK_KHR_external_memory 1
10318#define VK_KHR_EXTERNAL_MEMORY_SPEC_VERSION 1
10319#define VK_KHR_EXTERNAL_MEMORY_EXTENSION_NAME "VK_KHR_external_memory"
10320#define VK_QUEUE_FAMILY_EXTERNAL_KHR VK_QUEUE_FAMILY_EXTERNAL
10321typedef VkExternalMemoryImageCreateInfo VkExternalMemoryImageCreateInfoKHR;
10322
10323typedef VkExternalMemoryBufferCreateInfo VkExternalMemoryBufferCreateInfoKHR;
10324
10325typedef VkExportMemoryAllocateInfo VkExportMemoryAllocateInfoKHR;
10326
10327
10328
10329// VK_KHR_external_memory_fd is a preprocessor guard. Do not pass it to API calls.
10330#define VK_KHR_external_memory_fd 1
10331#define VK_KHR_EXTERNAL_MEMORY_FD_SPEC_VERSION 1
10332#define VK_KHR_EXTERNAL_MEMORY_FD_EXTENSION_NAME "VK_KHR_external_memory_fd"
10333typedef struct VkImportMemoryFdInfoKHR {
10334 VkStructureType sType;
10335 const void* pNext;
10336 VkExternalMemoryHandleTypeFlagBits handleType;
10337 int fd;
10338} VkImportMemoryFdInfoKHR;
10339
10340typedef struct VkMemoryFdPropertiesKHR {
10341 VkStructureType sType;
10342 void* pNext;
10343 uint32_t memoryTypeBits;
10344} VkMemoryFdPropertiesKHR;
10345
10346typedef struct VkMemoryGetFdInfoKHR {
10347 VkStructureType sType;
10348 const void* pNext;
10349 VkDeviceMemory memory;
10350 VkExternalMemoryHandleTypeFlagBits handleType;
10351} VkMemoryGetFdInfoKHR;
10352
10353typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdKHR)(VkDevice device, const VkMemoryGetFdInfoKHR* pGetFdInfo, int* pFd);
10354typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryFdPropertiesKHR)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, int fd, VkMemoryFdPropertiesKHR* pMemoryFdProperties);
10355
10356#ifndef VK_NO_PROTOTYPES
10357#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10358VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdKHR(
10359 VkDevice device,
10360 const VkMemoryGetFdInfoKHR* pGetFdInfo,
10361 int* pFd);
10362#endif
10363
10364#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10365VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryFdPropertiesKHR(
10366 VkDevice device,
10367 VkExternalMemoryHandleTypeFlagBits handleType,
10368 int fd,
10369 VkMemoryFdPropertiesKHR* pMemoryFdProperties);
10370#endif
10371#endif
10372
10373
10374// VK_KHR_external_semaphore_capabilities is a preprocessor guard. Do not pass it to API calls.
10375#define VK_KHR_external_semaphore_capabilities 1
10376#define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_SPEC_VERSION 1
10377#define VK_KHR_EXTERNAL_SEMAPHORE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_semaphore_capabilities"
10378typedef VkExternalSemaphoreHandleTypeFlags VkExternalSemaphoreHandleTypeFlagsKHR;
10379
10380typedef VkExternalSemaphoreHandleTypeFlagBits VkExternalSemaphoreHandleTypeFlagBitsKHR;
10381
10382typedef VkExternalSemaphoreFeatureFlags VkExternalSemaphoreFeatureFlagsKHR;
10383
10384typedef VkExternalSemaphoreFeatureFlagBits VkExternalSemaphoreFeatureFlagBitsKHR;
10385
10386typedef VkPhysicalDeviceExternalSemaphoreInfo VkPhysicalDeviceExternalSemaphoreInfoKHR;
10387
10388typedef VkExternalSemaphoreProperties VkExternalSemaphorePropertiesKHR;
10389
10390typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalSemaphorePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo, VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
10391
10392#ifndef VK_NO_PROTOTYPES
10393#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10394VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalSemaphorePropertiesKHR(
10395 VkPhysicalDevice physicalDevice,
10396 const VkPhysicalDeviceExternalSemaphoreInfo* pExternalSemaphoreInfo,
10397 VkExternalSemaphoreProperties* pExternalSemaphoreProperties);
10398#endif
10399#endif
10400
10401
10402// VK_KHR_external_semaphore is a preprocessor guard. Do not pass it to API calls.
10403#define VK_KHR_external_semaphore 1
10404#define VK_KHR_EXTERNAL_SEMAPHORE_SPEC_VERSION 1
10405#define VK_KHR_EXTERNAL_SEMAPHORE_EXTENSION_NAME "VK_KHR_external_semaphore"
10406typedef VkSemaphoreImportFlags VkSemaphoreImportFlagsKHR;
10407
10408typedef VkSemaphoreImportFlagBits VkSemaphoreImportFlagBitsKHR;
10409
10410typedef VkExportSemaphoreCreateInfo VkExportSemaphoreCreateInfoKHR;
10411
10412
10413
10414// VK_KHR_external_semaphore_fd is a preprocessor guard. Do not pass it to API calls.
10415#define VK_KHR_external_semaphore_fd 1
10416#define VK_KHR_EXTERNAL_SEMAPHORE_FD_SPEC_VERSION 1
10417#define VK_KHR_EXTERNAL_SEMAPHORE_FD_EXTENSION_NAME "VK_KHR_external_semaphore_fd"
10418typedef struct VkImportSemaphoreFdInfoKHR {
10419 VkStructureType sType;
10420 const void* pNext;
10421 VkSemaphore semaphore;
10422 VkSemaphoreImportFlags flags;
10423 VkExternalSemaphoreHandleTypeFlagBits handleType;
10424 int fd;
10425} VkImportSemaphoreFdInfoKHR;
10426
10427typedef struct VkSemaphoreGetFdInfoKHR {
10428 VkStructureType sType;
10429 const void* pNext;
10430 VkSemaphore semaphore;
10431 VkExternalSemaphoreHandleTypeFlagBits handleType;
10432} VkSemaphoreGetFdInfoKHR;
10433
10434typedef VkResult (VKAPI_PTR *PFN_vkImportSemaphoreFdKHR)(VkDevice device, const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo);
10435typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreFdKHR)(VkDevice device, const VkSemaphoreGetFdInfoKHR* pGetFdInfo, int* pFd);
10436
10437#ifndef VK_NO_PROTOTYPES
10438#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10439VKAPI_ATTR VkResult VKAPI_CALL vkImportSemaphoreFdKHR(
10440 VkDevice device,
10441 const VkImportSemaphoreFdInfoKHR* pImportSemaphoreFdInfo);
10442#endif
10443
10444#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10445VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreFdKHR(
10446 VkDevice device,
10447 const VkSemaphoreGetFdInfoKHR* pGetFdInfo,
10448 int* pFd);
10449#endif
10450#endif
10451
10452
10453// VK_KHR_push_descriptor is a preprocessor guard. Do not pass it to API calls.
10454#define VK_KHR_push_descriptor 1
10455#define VK_KHR_PUSH_DESCRIPTOR_SPEC_VERSION 2
10456#define VK_KHR_PUSH_DESCRIPTOR_EXTENSION_NAME "VK_KHR_push_descriptor"
10457typedef VkPhysicalDevicePushDescriptorProperties VkPhysicalDevicePushDescriptorPropertiesKHR;
10458
10459typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetKHR)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set, uint32_t descriptorWriteCount, const VkWriteDescriptorSet* pDescriptorWrites);
10460typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplateKHR)(VkCommandBuffer commandBuffer, VkDescriptorUpdateTemplate descriptorUpdateTemplate, VkPipelineLayout layout, uint32_t set, const void* pData);
10461
10462#ifndef VK_NO_PROTOTYPES
10463#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10464VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetKHR(
10465 VkCommandBuffer commandBuffer,
10466 VkPipelineBindPoint pipelineBindPoint,
10467 VkPipelineLayout layout,
10468 uint32_t set,
10469 uint32_t descriptorWriteCount,
10470 const VkWriteDescriptorSet* pDescriptorWrites);
10471#endif
10472
10473#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10474VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplateKHR(
10475 VkCommandBuffer commandBuffer,
10476 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
10477 VkPipelineLayout layout,
10478 uint32_t set,
10479 const void* pData);
10480#endif
10481#endif
10482
10483
10484// VK_KHR_shader_float16_int8 is a preprocessor guard. Do not pass it to API calls.
10485#define VK_KHR_shader_float16_int8 1
10486#define VK_KHR_SHADER_FLOAT16_INT8_SPEC_VERSION 1
10487#define VK_KHR_SHADER_FLOAT16_INT8_EXTENSION_NAME "VK_KHR_shader_float16_int8"
10488typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceShaderFloat16Int8FeaturesKHR;
10489
10490typedef VkPhysicalDeviceShaderFloat16Int8Features VkPhysicalDeviceFloat16Int8FeaturesKHR;
10491
10492
10493
10494// VK_KHR_16bit_storage is a preprocessor guard. Do not pass it to API calls.
10495#define VK_KHR_16bit_storage 1
10496#define VK_KHR_16BIT_STORAGE_SPEC_VERSION 1
10497#define VK_KHR_16BIT_STORAGE_EXTENSION_NAME "VK_KHR_16bit_storage"
10498typedef VkPhysicalDevice16BitStorageFeatures VkPhysicalDevice16BitStorageFeaturesKHR;
10499
10500
10501
10502// VK_KHR_incremental_present is a preprocessor guard. Do not pass it to API calls.
10503#define VK_KHR_incremental_present 1
10504#define VK_KHR_INCREMENTAL_PRESENT_SPEC_VERSION 2
10505#define VK_KHR_INCREMENTAL_PRESENT_EXTENSION_NAME "VK_KHR_incremental_present"
10506typedef struct VkRectLayerKHR {
10507 VkOffset2D offset;
10508 VkExtent2D extent;
10509 uint32_t layer;
10510} VkRectLayerKHR;
10511
10512typedef struct VkPresentRegionKHR {
10513 uint32_t rectangleCount;
10514 const VkRectLayerKHR* pRectangles;
10515} VkPresentRegionKHR;
10516
10517typedef struct VkPresentRegionsKHR {
10518 VkStructureType sType;
10519 const void* pNext;
10520 uint32_t swapchainCount;
10521 const VkPresentRegionKHR* pRegions;
10522} VkPresentRegionsKHR;
10523
10524
10525
10526// VK_KHR_descriptor_update_template is a preprocessor guard. Do not pass it to API calls.
10527#define VK_KHR_descriptor_update_template 1
10528typedef VkDescriptorUpdateTemplate VkDescriptorUpdateTemplateKHR;
10529
10530#define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_SPEC_VERSION 1
10531#define VK_KHR_DESCRIPTOR_UPDATE_TEMPLATE_EXTENSION_NAME "VK_KHR_descriptor_update_template"
10532typedef VkDescriptorUpdateTemplateType VkDescriptorUpdateTemplateTypeKHR;
10533
10534typedef VkDescriptorUpdateTemplateCreateFlags VkDescriptorUpdateTemplateCreateFlagsKHR;
10535
10536typedef VkDescriptorUpdateTemplateEntry VkDescriptorUpdateTemplateEntryKHR;
10537
10538typedef VkDescriptorUpdateTemplateCreateInfo VkDescriptorUpdateTemplateCreateInfoKHR;
10539
10540typedef VkResult (VKAPI_PTR *PFN_vkCreateDescriptorUpdateTemplateKHR)(VkDevice device, const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
10541typedef void (VKAPI_PTR *PFN_vkDestroyDescriptorUpdateTemplateKHR)(VkDevice device, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const VkAllocationCallbacks* pAllocator);
10542typedef void (VKAPI_PTR *PFN_vkUpdateDescriptorSetWithTemplateKHR)(VkDevice device, VkDescriptorSet descriptorSet, VkDescriptorUpdateTemplate descriptorUpdateTemplate, const void* pData);
10543
10544#ifndef VK_NO_PROTOTYPES
10545#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10546VKAPI_ATTR VkResult VKAPI_CALL vkCreateDescriptorUpdateTemplateKHR(
10547 VkDevice device,
10548 const VkDescriptorUpdateTemplateCreateInfo* pCreateInfo,
10549 const VkAllocationCallbacks* pAllocator,
10550 VkDescriptorUpdateTemplate* pDescriptorUpdateTemplate);
10551#endif
10552
10553#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10554VKAPI_ATTR void VKAPI_CALL vkDestroyDescriptorUpdateTemplateKHR(
10555 VkDevice device,
10556 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
10557 const VkAllocationCallbacks* pAllocator);
10558#endif
10559
10560#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10561VKAPI_ATTR void VKAPI_CALL vkUpdateDescriptorSetWithTemplateKHR(
10562 VkDevice device,
10563 VkDescriptorSet descriptorSet,
10564 VkDescriptorUpdateTemplate descriptorUpdateTemplate,
10565 const void* pData);
10566#endif
10567#endif
10568
10569
10570// VK_KHR_imageless_framebuffer is a preprocessor guard. Do not pass it to API calls.
10571#define VK_KHR_imageless_framebuffer 1
10572#define VK_KHR_IMAGELESS_FRAMEBUFFER_SPEC_VERSION 1
10573#define VK_KHR_IMAGELESS_FRAMEBUFFER_EXTENSION_NAME "VK_KHR_imageless_framebuffer"
10574typedef VkPhysicalDeviceImagelessFramebufferFeatures VkPhysicalDeviceImagelessFramebufferFeaturesKHR;
10575
10576typedef VkFramebufferAttachmentsCreateInfo VkFramebufferAttachmentsCreateInfoKHR;
10577
10578typedef VkFramebufferAttachmentImageInfo VkFramebufferAttachmentImageInfoKHR;
10579
10580typedef VkRenderPassAttachmentBeginInfo VkRenderPassAttachmentBeginInfoKHR;
10581
10582
10583
10584// VK_KHR_create_renderpass2 is a preprocessor guard. Do not pass it to API calls.
10585#define VK_KHR_create_renderpass2 1
10586#define VK_KHR_CREATE_RENDERPASS_2_SPEC_VERSION 1
10587#define VK_KHR_CREATE_RENDERPASS_2_EXTENSION_NAME "VK_KHR_create_renderpass2"
10588typedef VkRenderPassCreateInfo2 VkRenderPassCreateInfo2KHR;
10589
10590typedef VkAttachmentDescription2 VkAttachmentDescription2KHR;
10591
10592typedef VkAttachmentReference2 VkAttachmentReference2KHR;
10593
10594typedef VkSubpassDescription2 VkSubpassDescription2KHR;
10595
10596typedef VkSubpassDependency2 VkSubpassDependency2KHR;
10597
10598typedef VkSubpassBeginInfo VkSubpassBeginInfoKHR;
10599
10600typedef VkSubpassEndInfo VkSubpassEndInfoKHR;
10601
10602typedef VkResult (VKAPI_PTR *PFN_vkCreateRenderPass2KHR)(VkDevice device, const VkRenderPassCreateInfo2* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkRenderPass* pRenderPass);
10603typedef void (VKAPI_PTR *PFN_vkCmdBeginRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkRenderPassBeginInfo* pRenderPassBegin, const VkSubpassBeginInfo* pSubpassBeginInfo);
10604typedef void (VKAPI_PTR *PFN_vkCmdNextSubpass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassBeginInfo* pSubpassBeginInfo, const VkSubpassEndInfo* pSubpassEndInfo);
10605typedef void (VKAPI_PTR *PFN_vkCmdEndRenderPass2KHR)(VkCommandBuffer commandBuffer, const VkSubpassEndInfo* pSubpassEndInfo);
10606
10607#ifndef VK_NO_PROTOTYPES
10608#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10609VKAPI_ATTR VkResult VKAPI_CALL vkCreateRenderPass2KHR(
10610 VkDevice device,
10611 const VkRenderPassCreateInfo2* pCreateInfo,
10612 const VkAllocationCallbacks* pAllocator,
10613 VkRenderPass* pRenderPass);
10614#endif
10615
10616#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10617VKAPI_ATTR void VKAPI_CALL vkCmdBeginRenderPass2KHR(
10618 VkCommandBuffer commandBuffer,
10619 const VkRenderPassBeginInfo* pRenderPassBegin,
10620 const VkSubpassBeginInfo* pSubpassBeginInfo);
10621#endif
10622
10623#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10624VKAPI_ATTR void VKAPI_CALL vkCmdNextSubpass2KHR(
10625 VkCommandBuffer commandBuffer,
10626 const VkSubpassBeginInfo* pSubpassBeginInfo,
10627 const VkSubpassEndInfo* pSubpassEndInfo);
10628#endif
10629
10630#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10631VKAPI_ATTR void VKAPI_CALL vkCmdEndRenderPass2KHR(
10632 VkCommandBuffer commandBuffer,
10633 const VkSubpassEndInfo* pSubpassEndInfo);
10634#endif
10635#endif
10636
10637
10638// VK_KHR_shared_presentable_image is a preprocessor guard. Do not pass it to API calls.
10639#define VK_KHR_shared_presentable_image 1
10640#define VK_KHR_SHARED_PRESENTABLE_IMAGE_SPEC_VERSION 1
10641#define VK_KHR_SHARED_PRESENTABLE_IMAGE_EXTENSION_NAME "VK_KHR_shared_presentable_image"
10642typedef struct VkSharedPresentSurfaceCapabilitiesKHR {
10643 VkStructureType sType;
10644 void* pNext;
10645 VkImageUsageFlags sharedPresentSupportedUsageFlags;
10646} VkSharedPresentSurfaceCapabilitiesKHR;
10647
10648typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainStatusKHR)(VkDevice device, VkSwapchainKHR swapchain);
10649
10650#ifndef VK_NO_PROTOTYPES
10651#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10652VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainStatusKHR(
10653 VkDevice device,
10654 VkSwapchainKHR swapchain);
10655#endif
10656#endif
10657
10658
10659// VK_KHR_external_fence_capabilities is a preprocessor guard. Do not pass it to API calls.
10660#define VK_KHR_external_fence_capabilities 1
10661#define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_SPEC_VERSION 1
10662#define VK_KHR_EXTERNAL_FENCE_CAPABILITIES_EXTENSION_NAME "VK_KHR_external_fence_capabilities"
10663typedef VkExternalFenceHandleTypeFlags VkExternalFenceHandleTypeFlagsKHR;
10664
10665typedef VkExternalFenceHandleTypeFlagBits VkExternalFenceHandleTypeFlagBitsKHR;
10666
10667typedef VkExternalFenceFeatureFlags VkExternalFenceFeatureFlagsKHR;
10668
10669typedef VkExternalFenceFeatureFlagBits VkExternalFenceFeatureFlagBitsKHR;
10670
10671typedef VkPhysicalDeviceExternalFenceInfo VkPhysicalDeviceExternalFenceInfoKHR;
10672
10673typedef VkExternalFenceProperties VkExternalFencePropertiesKHR;
10674
10675typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalFencePropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo, VkExternalFenceProperties* pExternalFenceProperties);
10676
10677#ifndef VK_NO_PROTOTYPES
10678#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10679VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalFencePropertiesKHR(
10680 VkPhysicalDevice physicalDevice,
10681 const VkPhysicalDeviceExternalFenceInfo* pExternalFenceInfo,
10682 VkExternalFenceProperties* pExternalFenceProperties);
10683#endif
10684#endif
10685
10686
10687// VK_KHR_external_fence is a preprocessor guard. Do not pass it to API calls.
10688#define VK_KHR_external_fence 1
10689#define VK_KHR_EXTERNAL_FENCE_SPEC_VERSION 1
10690#define VK_KHR_EXTERNAL_FENCE_EXTENSION_NAME "VK_KHR_external_fence"
10691typedef VkFenceImportFlags VkFenceImportFlagsKHR;
10692
10693typedef VkFenceImportFlagBits VkFenceImportFlagBitsKHR;
10694
10695typedef VkExportFenceCreateInfo VkExportFenceCreateInfoKHR;
10696
10697
10698
10699// VK_KHR_external_fence_fd is a preprocessor guard. Do not pass it to API calls.
10700#define VK_KHR_external_fence_fd 1
10701#define VK_KHR_EXTERNAL_FENCE_FD_SPEC_VERSION 1
10702#define VK_KHR_EXTERNAL_FENCE_FD_EXTENSION_NAME "VK_KHR_external_fence_fd"
10703typedef struct VkImportFenceFdInfoKHR {
10704 VkStructureType sType;
10705 const void* pNext;
10706 VkFence fence;
10707 VkFenceImportFlags flags;
10708 VkExternalFenceHandleTypeFlagBits handleType;
10709 int fd;
10710} VkImportFenceFdInfoKHR;
10711
10712typedef struct VkFenceGetFdInfoKHR {
10713 VkStructureType sType;
10714 const void* pNext;
10715 VkFence fence;
10716 VkExternalFenceHandleTypeFlagBits handleType;
10717} VkFenceGetFdInfoKHR;
10718
10719typedef VkResult (VKAPI_PTR *PFN_vkImportFenceFdKHR)(VkDevice device, const VkImportFenceFdInfoKHR* pImportFenceFdInfo);
10720typedef VkResult (VKAPI_PTR *PFN_vkGetFenceFdKHR)(VkDevice device, const VkFenceGetFdInfoKHR* pGetFdInfo, int* pFd);
10721
10722#ifndef VK_NO_PROTOTYPES
10723#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10724VKAPI_ATTR VkResult VKAPI_CALL vkImportFenceFdKHR(
10725 VkDevice device,
10726 const VkImportFenceFdInfoKHR* pImportFenceFdInfo);
10727#endif
10728
10729#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10730VKAPI_ATTR VkResult VKAPI_CALL vkGetFenceFdKHR(
10731 VkDevice device,
10732 const VkFenceGetFdInfoKHR* pGetFdInfo,
10733 int* pFd);
10734#endif
10735#endif
10736
10737
10738// VK_KHR_performance_query is a preprocessor guard. Do not pass it to API calls.
10739#define VK_KHR_performance_query 1
10740#define VK_KHR_PERFORMANCE_QUERY_SPEC_VERSION 1
10741#define VK_KHR_PERFORMANCE_QUERY_EXTENSION_NAME "VK_KHR_performance_query"
10742
10743typedef enum VkPerformanceCounterUnitKHR {
10744 VK_PERFORMANCE_COUNTER_UNIT_GENERIC_KHR = 0,
10745 VK_PERFORMANCE_COUNTER_UNIT_PERCENTAGE_KHR = 1,
10746 VK_PERFORMANCE_COUNTER_UNIT_NANOSECONDS_KHR = 2,
10747 VK_PERFORMANCE_COUNTER_UNIT_BYTES_KHR = 3,
10748 VK_PERFORMANCE_COUNTER_UNIT_BYTES_PER_SECOND_KHR = 4,
10749 VK_PERFORMANCE_COUNTER_UNIT_KELVIN_KHR = 5,
10750 VK_PERFORMANCE_COUNTER_UNIT_WATTS_KHR = 6,
10751 VK_PERFORMANCE_COUNTER_UNIT_VOLTS_KHR = 7,
10752 VK_PERFORMANCE_COUNTER_UNIT_AMPS_KHR = 8,
10753 VK_PERFORMANCE_COUNTER_UNIT_HERTZ_KHR = 9,
10754 VK_PERFORMANCE_COUNTER_UNIT_CYCLES_KHR = 10,
10755 VK_PERFORMANCE_COUNTER_UNIT_MAX_ENUM_KHR = 0x7FFFFFFF
10756} VkPerformanceCounterUnitKHR;
10757
10758typedef enum VkPerformanceCounterScopeKHR {
10759 VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR = 0,
10760 VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR = 1,
10761 VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR = 2,
10762 // VK_QUERY_SCOPE_COMMAND_BUFFER_KHR is a deprecated alias
10763 VK_QUERY_SCOPE_COMMAND_BUFFER_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_BUFFER_KHR,
10764 // VK_QUERY_SCOPE_RENDER_PASS_KHR is a deprecated alias
10765 VK_QUERY_SCOPE_RENDER_PASS_KHR = VK_PERFORMANCE_COUNTER_SCOPE_RENDER_PASS_KHR,
10766 // VK_QUERY_SCOPE_COMMAND_KHR is a deprecated alias
10767 VK_QUERY_SCOPE_COMMAND_KHR = VK_PERFORMANCE_COUNTER_SCOPE_COMMAND_KHR,
10768 VK_PERFORMANCE_COUNTER_SCOPE_MAX_ENUM_KHR = 0x7FFFFFFF
10769} VkPerformanceCounterScopeKHR;
10770
10771typedef enum VkPerformanceCounterStorageKHR {
10772 VK_PERFORMANCE_COUNTER_STORAGE_INT32_KHR = 0,
10773 VK_PERFORMANCE_COUNTER_STORAGE_INT64_KHR = 1,
10774 VK_PERFORMANCE_COUNTER_STORAGE_UINT32_KHR = 2,
10775 VK_PERFORMANCE_COUNTER_STORAGE_UINT64_KHR = 3,
10776 VK_PERFORMANCE_COUNTER_STORAGE_FLOAT32_KHR = 4,
10777 VK_PERFORMANCE_COUNTER_STORAGE_FLOAT64_KHR = 5,
10778 VK_PERFORMANCE_COUNTER_STORAGE_MAX_ENUM_KHR = 0x7FFFFFFF
10779} VkPerformanceCounterStorageKHR;
10780
10781typedef enum VkPerformanceCounterDescriptionFlagBitsKHR {
10782 VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR = 0x00000001,
10783 VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR = 0x00000002,
10784 // VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR is a deprecated alias
10785 VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_KHR = VK_PERFORMANCE_COUNTER_DESCRIPTION_PERFORMANCE_IMPACTING_BIT_KHR,
10786 // VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR is a deprecated alias
10787 VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_KHR = VK_PERFORMANCE_COUNTER_DESCRIPTION_CONCURRENTLY_IMPACTED_BIT_KHR,
10788 VK_PERFORMANCE_COUNTER_DESCRIPTION_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
10789} VkPerformanceCounterDescriptionFlagBitsKHR;
10790typedef VkFlags VkPerformanceCounterDescriptionFlagsKHR;
10791
10792typedef enum VkAcquireProfilingLockFlagBitsKHR {
10793 VK_ACQUIRE_PROFILING_LOCK_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
10794} VkAcquireProfilingLockFlagBitsKHR;
10795typedef VkFlags VkAcquireProfilingLockFlagsKHR;
10796typedef struct VkPhysicalDevicePerformanceQueryFeaturesKHR {
10797 VkStructureType sType;
10798 void* pNext;
10799 VkBool32 performanceCounterQueryPools;
10800 VkBool32 performanceCounterMultipleQueryPools;
10801} VkPhysicalDevicePerformanceQueryFeaturesKHR;
10802
10803typedef struct VkPhysicalDevicePerformanceQueryPropertiesKHR {
10804 VkStructureType sType;
10805 void* pNext;
10806 VkBool32 allowCommandBufferQueryCopies;
10807} VkPhysicalDevicePerformanceQueryPropertiesKHR;
10808
10809typedef struct VkPerformanceCounterKHR {
10810 VkStructureType sType;
10811 void* pNext;
10812 VkPerformanceCounterUnitKHR unit;
10813 VkPerformanceCounterScopeKHR scope;
10814 VkPerformanceCounterStorageKHR storage;
10815 uint8_t uuid[VK_UUID_SIZE];
10816} VkPerformanceCounterKHR;
10817
10818typedef struct VkPerformanceCounterDescriptionKHR {
10819 VkStructureType sType;
10820 void* pNext;
10821 VkPerformanceCounterDescriptionFlagsKHR flags;
10822 char name[VK_MAX_DESCRIPTION_SIZE];
10823 char category[VK_MAX_DESCRIPTION_SIZE];
10824 char description[VK_MAX_DESCRIPTION_SIZE];
10825} VkPerformanceCounterDescriptionKHR;
10826
10827typedef struct VkQueryPoolPerformanceCreateInfoKHR {
10828 VkStructureType sType;
10829 const void* pNext;
10830 uint32_t queueFamilyIndex;
10831 uint32_t counterIndexCount;
10832 const uint32_t* pCounterIndices;
10833} VkQueryPoolPerformanceCreateInfoKHR;
10834
10835typedef union VkPerformanceCounterResultKHR {
10836 int32_t int32;
10837 int64_t int64;
10838 uint32_t uint32;
10839 uint64_t uint64;
10840 float float32;
10841 double float64;
10842} VkPerformanceCounterResultKHR;
10843
10844typedef struct VkAcquireProfilingLockInfoKHR {
10845 VkStructureType sType;
10846 const void* pNext;
10847 VkAcquireProfilingLockFlagsKHR flags;
10848 uint64_t timeout;
10849} VkAcquireProfilingLockInfoKHR;
10850
10851typedef struct VkPerformanceQuerySubmitInfoKHR {
10852 VkStructureType sType;
10853 const void* pNext;
10854 uint32_t counterPassIndex;
10855} VkPerformanceQuerySubmitInfoKHR;
10856
10857typedef VkResult (VKAPI_PTR *PFN_vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pCounterCount, VkPerformanceCounterKHR* pCounters, VkPerformanceCounterDescriptionKHR* pCounterDescriptions);
10858typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR)(VkPhysicalDevice physicalDevice, const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo, uint32_t* pNumPasses);
10859typedef VkResult (VKAPI_PTR *PFN_vkAcquireProfilingLockKHR)(VkDevice device, const VkAcquireProfilingLockInfoKHR* pInfo);
10860typedef void (VKAPI_PTR *PFN_vkReleaseProfilingLockKHR)(VkDevice device);
10861
10862#ifndef VK_NO_PROTOTYPES
10863#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10864VKAPI_ATTR VkResult VKAPI_CALL vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
10865 VkPhysicalDevice physicalDevice,
10866 uint32_t queueFamilyIndex,
10867 uint32_t* pCounterCount,
10868 VkPerformanceCounterKHR* pCounters,
10869 VkPerformanceCounterDescriptionKHR* pCounterDescriptions);
10870#endif
10871
10872#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10873VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
10874 VkPhysicalDevice physicalDevice,
10875 const VkQueryPoolPerformanceCreateInfoKHR* pPerformanceQueryCreateInfo,
10876 uint32_t* pNumPasses);
10877#endif
10878
10879#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10880VKAPI_ATTR VkResult VKAPI_CALL vkAcquireProfilingLockKHR(
10881 VkDevice device,
10882 const VkAcquireProfilingLockInfoKHR* pInfo);
10883#endif
10884
10885#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10886VKAPI_ATTR void VKAPI_CALL vkReleaseProfilingLockKHR(
10887 VkDevice device);
10888#endif
10889#endif
10890
10891
10892// VK_KHR_maintenance2 is a preprocessor guard. Do not pass it to API calls.
10893#define VK_KHR_maintenance2 1
10894#define VK_KHR_MAINTENANCE_2_SPEC_VERSION 1
10895#define VK_KHR_MAINTENANCE_2_EXTENSION_NAME "VK_KHR_maintenance2"
10896// VK_KHR_MAINTENANCE2_SPEC_VERSION is a deprecated alias
10897#define VK_KHR_MAINTENANCE2_SPEC_VERSION VK_KHR_MAINTENANCE_2_SPEC_VERSION
10898// VK_KHR_MAINTENANCE2_EXTENSION_NAME is a deprecated alias
10899#define VK_KHR_MAINTENANCE2_EXTENSION_NAME VK_KHR_MAINTENANCE_2_EXTENSION_NAME
10900typedef VkPointClippingBehavior VkPointClippingBehaviorKHR;
10901
10902typedef VkTessellationDomainOrigin VkTessellationDomainOriginKHR;
10903
10904typedef VkPhysicalDevicePointClippingProperties VkPhysicalDevicePointClippingPropertiesKHR;
10905
10906typedef VkRenderPassInputAttachmentAspectCreateInfo VkRenderPassInputAttachmentAspectCreateInfoKHR;
10907
10908typedef VkInputAttachmentAspectReference VkInputAttachmentAspectReferenceKHR;
10909
10910typedef VkImageViewUsageCreateInfo VkImageViewUsageCreateInfoKHR;
10911
10912typedef VkPipelineTessellationDomainOriginStateCreateInfo VkPipelineTessellationDomainOriginStateCreateInfoKHR;
10913
10914
10915
10916// VK_KHR_get_surface_capabilities2 is a preprocessor guard. Do not pass it to API calls.
10917#define VK_KHR_get_surface_capabilities2 1
10918#define VK_KHR_GET_SURFACE_CAPABILITIES_2_SPEC_VERSION 1
10919#define VK_KHR_GET_SURFACE_CAPABILITIES_2_EXTENSION_NAME "VK_KHR_get_surface_capabilities2"
10920typedef struct VkPhysicalDeviceSurfaceInfo2KHR {
10921 VkStructureType sType;
10922 const void* pNext;
10923 VkSurfaceKHR surface;
10924} VkPhysicalDeviceSurfaceInfo2KHR;
10925
10926typedef struct VkSurfaceCapabilities2KHR {
10927 VkStructureType sType;
10928 void* pNext;
10929 VkSurfaceCapabilitiesKHR surfaceCapabilities;
10930} VkSurfaceCapabilities2KHR;
10931
10932typedef struct VkSurfaceFormat2KHR {
10933 VkStructureType sType;
10934 void* pNext;
10935 VkSurfaceFormatKHR surfaceFormat;
10936} VkSurfaceFormat2KHR;
10937
10938typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, VkSurfaceCapabilities2KHR* pSurfaceCapabilities);
10939typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceFormats2KHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo, uint32_t* pSurfaceFormatCount, VkSurfaceFormat2KHR* pSurfaceFormats);
10940
10941#ifndef VK_NO_PROTOTYPES
10942#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10943VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2KHR(
10944 VkPhysicalDevice physicalDevice,
10945 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
10946 VkSurfaceCapabilities2KHR* pSurfaceCapabilities);
10947#endif
10948
10949#ifndef VK_ONLY_EXPORTED_PROTOTYPES
10950VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceFormats2KHR(
10951 VkPhysicalDevice physicalDevice,
10952 const VkPhysicalDeviceSurfaceInfo2KHR* pSurfaceInfo,
10953 uint32_t* pSurfaceFormatCount,
10954 VkSurfaceFormat2KHR* pSurfaceFormats);
10955#endif
10956#endif
10957
10958
10959// VK_KHR_variable_pointers is a preprocessor guard. Do not pass it to API calls.
10960#define VK_KHR_variable_pointers 1
10961#define VK_KHR_VARIABLE_POINTERS_SPEC_VERSION 1
10962#define VK_KHR_VARIABLE_POINTERS_EXTENSION_NAME "VK_KHR_variable_pointers"
10963typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointerFeaturesKHR;
10964
10965typedef VkPhysicalDeviceVariablePointersFeatures VkPhysicalDeviceVariablePointersFeaturesKHR;
10966
10967
10968
10969// VK_KHR_get_display_properties2 is a preprocessor guard. Do not pass it to API calls.
10970#define VK_KHR_get_display_properties2 1
10971#define VK_KHR_GET_DISPLAY_PROPERTIES_2_SPEC_VERSION 1
10972#define VK_KHR_GET_DISPLAY_PROPERTIES_2_EXTENSION_NAME "VK_KHR_get_display_properties2"
10973typedef struct VkDisplayProperties2KHR {
10974 VkStructureType sType;
10975 void* pNext;
10976 VkDisplayPropertiesKHR displayProperties;
10977} VkDisplayProperties2KHR;
10978
10979typedef struct VkDisplayPlaneProperties2KHR {
10980 VkStructureType sType;
10981 void* pNext;
10982 VkDisplayPlanePropertiesKHR displayPlaneProperties;
10983} VkDisplayPlaneProperties2KHR;
10984
10985typedef struct VkDisplayModeProperties2KHR {
10986 VkStructureType sType;
10987 void* pNext;
10988 VkDisplayModePropertiesKHR displayModeProperties;
10989} VkDisplayModeProperties2KHR;
10990
10991typedef struct VkDisplayPlaneInfo2KHR {
10992 VkStructureType sType;
10993 const void* pNext;
10994 VkDisplayModeKHR mode;
10995 uint32_t planeIndex;
10996} VkDisplayPlaneInfo2KHR;
10997
10998typedef struct VkDisplayPlaneCapabilities2KHR {
10999 VkStructureType sType;
11000 void* pNext;
11001 VkDisplayPlaneCapabilitiesKHR capabilities;
11002} VkDisplayPlaneCapabilities2KHR;
11003
11004typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayProperties2KHR* pProperties);
11005typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceDisplayPlaneProperties2KHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkDisplayPlaneProperties2KHR* pProperties);
11006typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayModeProperties2KHR)(VkPhysicalDevice physicalDevice, VkDisplayKHR display, uint32_t* pPropertyCount, VkDisplayModeProperties2KHR* pProperties);
11007typedef VkResult (VKAPI_PTR *PFN_vkGetDisplayPlaneCapabilities2KHR)(VkPhysicalDevice physicalDevice, const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo, VkDisplayPlaneCapabilities2KHR* pCapabilities);
11008
11009#ifndef VK_NO_PROTOTYPES
11010#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11011VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayProperties2KHR(
11012 VkPhysicalDevice physicalDevice,
11013 uint32_t* pPropertyCount,
11014 VkDisplayProperties2KHR* pProperties);
11015#endif
11016
11017#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11018VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
11019 VkPhysicalDevice physicalDevice,
11020 uint32_t* pPropertyCount,
11021 VkDisplayPlaneProperties2KHR* pProperties);
11022#endif
11023
11024#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11025VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayModeProperties2KHR(
11026 VkPhysicalDevice physicalDevice,
11027 VkDisplayKHR display,
11028 uint32_t* pPropertyCount,
11029 VkDisplayModeProperties2KHR* pProperties);
11030#endif
11031
11032#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11033VKAPI_ATTR VkResult VKAPI_CALL vkGetDisplayPlaneCapabilities2KHR(
11034 VkPhysicalDevice physicalDevice,
11035 const VkDisplayPlaneInfo2KHR* pDisplayPlaneInfo,
11036 VkDisplayPlaneCapabilities2KHR* pCapabilities);
11037#endif
11038#endif
11039
11040
11041// VK_KHR_dedicated_allocation is a preprocessor guard. Do not pass it to API calls.
11042#define VK_KHR_dedicated_allocation 1
11043#define VK_KHR_DEDICATED_ALLOCATION_SPEC_VERSION 3
11044#define VK_KHR_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_KHR_dedicated_allocation"
11045typedef VkMemoryDedicatedRequirements VkMemoryDedicatedRequirementsKHR;
11046
11047typedef VkMemoryDedicatedAllocateInfo VkMemoryDedicatedAllocateInfoKHR;
11048
11049
11050
11051// VK_KHR_storage_buffer_storage_class is a preprocessor guard. Do not pass it to API calls.
11052#define VK_KHR_storage_buffer_storage_class 1
11053#define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_SPEC_VERSION 1
11054#define VK_KHR_STORAGE_BUFFER_STORAGE_CLASS_EXTENSION_NAME "VK_KHR_storage_buffer_storage_class"
11055
11056
11057// VK_KHR_shader_bfloat16 is a preprocessor guard. Do not pass it to API calls.
11058#define VK_KHR_shader_bfloat16 1
11059#define VK_KHR_SHADER_BFLOAT16_SPEC_VERSION 1
11060#define VK_KHR_SHADER_BFLOAT16_EXTENSION_NAME "VK_KHR_shader_bfloat16"
11061typedef struct VkPhysicalDeviceShaderBfloat16FeaturesKHR {
11062 VkStructureType sType;
11063 void* pNext;
11064 VkBool32 shaderBFloat16Type;
11065 VkBool32 shaderBFloat16DotProduct;
11066 VkBool32 shaderBFloat16CooperativeMatrix;
11067} VkPhysicalDeviceShaderBfloat16FeaturesKHR;
11068
11069
11070
11071// VK_KHR_relaxed_block_layout is a preprocessor guard. Do not pass it to API calls.
11072#define VK_KHR_relaxed_block_layout 1
11073#define VK_KHR_RELAXED_BLOCK_LAYOUT_SPEC_VERSION 1
11074#define VK_KHR_RELAXED_BLOCK_LAYOUT_EXTENSION_NAME "VK_KHR_relaxed_block_layout"
11075
11076
11077// VK_KHR_get_memory_requirements2 is a preprocessor guard. Do not pass it to API calls.
11078#define VK_KHR_get_memory_requirements2 1
11079#define VK_KHR_GET_MEMORY_REQUIREMENTS_2_SPEC_VERSION 1
11080#define VK_KHR_GET_MEMORY_REQUIREMENTS_2_EXTENSION_NAME "VK_KHR_get_memory_requirements2"
11081typedef VkBufferMemoryRequirementsInfo2 VkBufferMemoryRequirementsInfo2KHR;
11082
11083typedef VkImageMemoryRequirementsInfo2 VkImageMemoryRequirementsInfo2KHR;
11084
11085typedef VkImageSparseMemoryRequirementsInfo2 VkImageSparseMemoryRequirementsInfo2KHR;
11086
11087typedef VkMemoryRequirements2 VkMemoryRequirements2KHR;
11088
11089typedef VkSparseImageMemoryRequirements2 VkSparseImageMemoryRequirements2KHR;
11090
11091typedef void (VKAPI_PTR *PFN_vkGetImageMemoryRequirements2KHR)(VkDevice device, const VkImageMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
11092typedef void (VKAPI_PTR *PFN_vkGetBufferMemoryRequirements2KHR)(VkDevice device, const VkBufferMemoryRequirementsInfo2* pInfo, VkMemoryRequirements2* pMemoryRequirements);
11093typedef void (VKAPI_PTR *PFN_vkGetImageSparseMemoryRequirements2KHR)(VkDevice device, const VkImageSparseMemoryRequirementsInfo2* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
11094
11095#ifndef VK_NO_PROTOTYPES
11096#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11097VKAPI_ATTR void VKAPI_CALL vkGetImageMemoryRequirements2KHR(
11098 VkDevice device,
11099 const VkImageMemoryRequirementsInfo2* pInfo,
11100 VkMemoryRequirements2* pMemoryRequirements);
11101#endif
11102
11103#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11104VKAPI_ATTR void VKAPI_CALL vkGetBufferMemoryRequirements2KHR(
11105 VkDevice device,
11106 const VkBufferMemoryRequirementsInfo2* pInfo,
11107 VkMemoryRequirements2* pMemoryRequirements);
11108#endif
11109
11110#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11111VKAPI_ATTR void VKAPI_CALL vkGetImageSparseMemoryRequirements2KHR(
11112 VkDevice device,
11113 const VkImageSparseMemoryRequirementsInfo2* pInfo,
11114 uint32_t* pSparseMemoryRequirementCount,
11115 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
11116#endif
11117#endif
11118
11119
11120// VK_KHR_image_format_list is a preprocessor guard. Do not pass it to API calls.
11121#define VK_KHR_image_format_list 1
11122#define VK_KHR_IMAGE_FORMAT_LIST_SPEC_VERSION 1
11123#define VK_KHR_IMAGE_FORMAT_LIST_EXTENSION_NAME "VK_KHR_image_format_list"
11124typedef VkImageFormatListCreateInfo VkImageFormatListCreateInfoKHR;
11125
11126
11127
11128// VK_KHR_sampler_ycbcr_conversion is a preprocessor guard. Do not pass it to API calls.
11129#define VK_KHR_sampler_ycbcr_conversion 1
11130typedef VkSamplerYcbcrConversion VkSamplerYcbcrConversionKHR;
11131
11132#define VK_KHR_SAMPLER_YCBCR_CONVERSION_SPEC_VERSION 14
11133#define VK_KHR_SAMPLER_YCBCR_CONVERSION_EXTENSION_NAME "VK_KHR_sampler_ycbcr_conversion"
11134typedef VkSamplerYcbcrModelConversion VkSamplerYcbcrModelConversionKHR;
11135
11136typedef VkSamplerYcbcrRange VkSamplerYcbcrRangeKHR;
11137
11138typedef VkChromaLocation VkChromaLocationKHR;
11139
11140typedef VkSamplerYcbcrConversionCreateInfo VkSamplerYcbcrConversionCreateInfoKHR;
11141
11142typedef VkSamplerYcbcrConversionInfo VkSamplerYcbcrConversionInfoKHR;
11143
11144typedef VkBindImagePlaneMemoryInfo VkBindImagePlaneMemoryInfoKHR;
11145
11146typedef VkImagePlaneMemoryRequirementsInfo VkImagePlaneMemoryRequirementsInfoKHR;
11147
11148typedef VkPhysicalDeviceSamplerYcbcrConversionFeatures VkPhysicalDeviceSamplerYcbcrConversionFeaturesKHR;
11149
11150typedef VkSamplerYcbcrConversionImageFormatProperties VkSamplerYcbcrConversionImageFormatPropertiesKHR;
11151
11152typedef VkResult (VKAPI_PTR *PFN_vkCreateSamplerYcbcrConversionKHR)(VkDevice device, const VkSamplerYcbcrConversionCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSamplerYcbcrConversion* pYcbcrConversion);
11153typedef void (VKAPI_PTR *PFN_vkDestroySamplerYcbcrConversionKHR)(VkDevice device, VkSamplerYcbcrConversion ycbcrConversion, const VkAllocationCallbacks* pAllocator);
11154
11155#ifndef VK_NO_PROTOTYPES
11156#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11157VKAPI_ATTR VkResult VKAPI_CALL vkCreateSamplerYcbcrConversionKHR(
11158 VkDevice device,
11159 const VkSamplerYcbcrConversionCreateInfo* pCreateInfo,
11160 const VkAllocationCallbacks* pAllocator,
11161 VkSamplerYcbcrConversion* pYcbcrConversion);
11162#endif
11163
11164#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11165VKAPI_ATTR void VKAPI_CALL vkDestroySamplerYcbcrConversionKHR(
11166 VkDevice device,
11167 VkSamplerYcbcrConversion ycbcrConversion,
11168 const VkAllocationCallbacks* pAllocator);
11169#endif
11170#endif
11171
11172
11173// VK_KHR_bind_memory2 is a preprocessor guard. Do not pass it to API calls.
11174#define VK_KHR_bind_memory2 1
11175#define VK_KHR_BIND_MEMORY_2_SPEC_VERSION 1
11176#define VK_KHR_BIND_MEMORY_2_EXTENSION_NAME "VK_KHR_bind_memory2"
11177typedef VkBindBufferMemoryInfo VkBindBufferMemoryInfoKHR;
11178
11179typedef VkBindImageMemoryInfo VkBindImageMemoryInfoKHR;
11180
11181typedef VkResult (VKAPI_PTR *PFN_vkBindBufferMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindBufferMemoryInfo* pBindInfos);
11182typedef VkResult (VKAPI_PTR *PFN_vkBindImageMemory2KHR)(VkDevice device, uint32_t bindInfoCount, const VkBindImageMemoryInfo* pBindInfos);
11183
11184#ifndef VK_NO_PROTOTYPES
11185#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11186VKAPI_ATTR VkResult VKAPI_CALL vkBindBufferMemory2KHR(
11187 VkDevice device,
11188 uint32_t bindInfoCount,
11189 const VkBindBufferMemoryInfo* pBindInfos);
11190#endif
11191
11192#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11193VKAPI_ATTR VkResult VKAPI_CALL vkBindImageMemory2KHR(
11194 VkDevice device,
11195 uint32_t bindInfoCount,
11196 const VkBindImageMemoryInfo* pBindInfos);
11197#endif
11198#endif
11199
11200
11201// VK_KHR_maintenance3 is a preprocessor guard. Do not pass it to API calls.
11202#define VK_KHR_maintenance3 1
11203#define VK_KHR_MAINTENANCE_3_SPEC_VERSION 1
11204#define VK_KHR_MAINTENANCE_3_EXTENSION_NAME "VK_KHR_maintenance3"
11205// VK_KHR_MAINTENANCE3_SPEC_VERSION is a deprecated alias
11206#define VK_KHR_MAINTENANCE3_SPEC_VERSION VK_KHR_MAINTENANCE_3_SPEC_VERSION
11207// VK_KHR_MAINTENANCE3_EXTENSION_NAME is a deprecated alias
11208#define VK_KHR_MAINTENANCE3_EXTENSION_NAME VK_KHR_MAINTENANCE_3_EXTENSION_NAME
11209typedef VkPhysicalDeviceMaintenance3Properties VkPhysicalDeviceMaintenance3PropertiesKHR;
11210
11211typedef VkDescriptorSetLayoutSupport VkDescriptorSetLayoutSupportKHR;
11212
11213typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSupportKHR)(VkDevice device, const VkDescriptorSetLayoutCreateInfo* pCreateInfo, VkDescriptorSetLayoutSupport* pSupport);
11214
11215#ifndef VK_NO_PROTOTYPES
11216#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11217VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSupportKHR(
11218 VkDevice device,
11219 const VkDescriptorSetLayoutCreateInfo* pCreateInfo,
11220 VkDescriptorSetLayoutSupport* pSupport);
11221#endif
11222#endif
11223
11224
11225// VK_KHR_draw_indirect_count is a preprocessor guard. Do not pass it to API calls.
11226#define VK_KHR_draw_indirect_count 1
11227#define VK_KHR_DRAW_INDIRECT_COUNT_SPEC_VERSION 1
11228#define VK_KHR_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_KHR_draw_indirect_count"
11229typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
11230typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountKHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
11231
11232#ifndef VK_NO_PROTOTYPES
11233#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11234VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountKHR(
11235 VkCommandBuffer commandBuffer,
11236 VkBuffer buffer,
11237 VkDeviceSize offset,
11238 VkBuffer countBuffer,
11239 VkDeviceSize countBufferOffset,
11240 uint32_t maxDrawCount,
11241 uint32_t stride);
11242#endif
11243
11244#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11245VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountKHR(
11246 VkCommandBuffer commandBuffer,
11247 VkBuffer buffer,
11248 VkDeviceSize offset,
11249 VkBuffer countBuffer,
11250 VkDeviceSize countBufferOffset,
11251 uint32_t maxDrawCount,
11252 uint32_t stride);
11253#endif
11254#endif
11255
11256
11257// VK_KHR_shader_subgroup_extended_types is a preprocessor guard. Do not pass it to API calls.
11258#define VK_KHR_shader_subgroup_extended_types 1
11259#define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_SPEC_VERSION 1
11260#define VK_KHR_SHADER_SUBGROUP_EXTENDED_TYPES_EXTENSION_NAME "VK_KHR_shader_subgroup_extended_types"
11261typedef VkPhysicalDeviceShaderSubgroupExtendedTypesFeatures VkPhysicalDeviceShaderSubgroupExtendedTypesFeaturesKHR;
11262
11263
11264
11265// VK_KHR_8bit_storage is a preprocessor guard. Do not pass it to API calls.
11266#define VK_KHR_8bit_storage 1
11267#define VK_KHR_8BIT_STORAGE_SPEC_VERSION 1
11268#define VK_KHR_8BIT_STORAGE_EXTENSION_NAME "VK_KHR_8bit_storage"
11269typedef VkPhysicalDevice8BitStorageFeatures VkPhysicalDevice8BitStorageFeaturesKHR;
11270
11271
11272
11273// VK_KHR_shader_atomic_int64 is a preprocessor guard. Do not pass it to API calls.
11274#define VK_KHR_shader_atomic_int64 1
11275#define VK_KHR_SHADER_ATOMIC_INT64_SPEC_VERSION 1
11276#define VK_KHR_SHADER_ATOMIC_INT64_EXTENSION_NAME "VK_KHR_shader_atomic_int64"
11277typedef VkPhysicalDeviceShaderAtomicInt64Features VkPhysicalDeviceShaderAtomicInt64FeaturesKHR;
11278
11279
11280
11281// VK_KHR_shader_clock is a preprocessor guard. Do not pass it to API calls.
11282#define VK_KHR_shader_clock 1
11283#define VK_KHR_SHADER_CLOCK_SPEC_VERSION 1
11284#define VK_KHR_SHADER_CLOCK_EXTENSION_NAME "VK_KHR_shader_clock"
11285typedef struct VkPhysicalDeviceShaderClockFeaturesKHR {
11286 VkStructureType sType;
11287 void* pNext;
11288 VkBool32 shaderSubgroupClock;
11289 VkBool32 shaderDeviceClock;
11290} VkPhysicalDeviceShaderClockFeaturesKHR;
11291
11292
11293
11294// VK_KHR_video_decode_h265 is a preprocessor guard. Do not pass it to API calls.
11295#define VK_KHR_video_decode_h265 1
11296#include "vk_video/vulkan_video_codec_h265std_decode.h"
11297#define VK_KHR_VIDEO_DECODE_H265_SPEC_VERSION 8
11298#define VK_KHR_VIDEO_DECODE_H265_EXTENSION_NAME "VK_KHR_video_decode_h265"
11299typedef struct VkVideoDecodeH265ProfileInfoKHR {
11300 VkStructureType sType;
11301 const void* pNext;
11302 StdVideoH265ProfileIdc stdProfileIdc;
11303} VkVideoDecodeH265ProfileInfoKHR;
11304
11305typedef struct VkVideoDecodeH265CapabilitiesKHR {
11306 VkStructureType sType;
11307 void* pNext;
11308 StdVideoH265LevelIdc maxLevelIdc;
11309} VkVideoDecodeH265CapabilitiesKHR;
11310
11311typedef struct VkVideoDecodeH265SessionParametersAddInfoKHR {
11312 VkStructureType sType;
11313 const void* pNext;
11314 uint32_t stdVPSCount;
11315 const StdVideoH265VideoParameterSet* pStdVPSs;
11316 uint32_t stdSPSCount;
11317 const StdVideoH265SequenceParameterSet* pStdSPSs;
11318 uint32_t stdPPSCount;
11319 const StdVideoH265PictureParameterSet* pStdPPSs;
11320} VkVideoDecodeH265SessionParametersAddInfoKHR;
11321
11322typedef struct VkVideoDecodeH265SessionParametersCreateInfoKHR {
11323 VkStructureType sType;
11324 const void* pNext;
11325 uint32_t maxStdVPSCount;
11326 uint32_t maxStdSPSCount;
11327 uint32_t maxStdPPSCount;
11328 const VkVideoDecodeH265SessionParametersAddInfoKHR* pParametersAddInfo;
11329} VkVideoDecodeH265SessionParametersCreateInfoKHR;
11330
11331typedef struct VkVideoDecodeH265PictureInfoKHR {
11332 VkStructureType sType;
11333 const void* pNext;
11334 const StdVideoDecodeH265PictureInfo* pStdPictureInfo;
11335 uint32_t sliceSegmentCount;
11336 const uint32_t* pSliceSegmentOffsets;
11337} VkVideoDecodeH265PictureInfoKHR;
11338
11339typedef struct VkVideoDecodeH265DpbSlotInfoKHR {
11340 VkStructureType sType;
11341 const void* pNext;
11342 const StdVideoDecodeH265ReferenceInfo* pStdReferenceInfo;
11343} VkVideoDecodeH265DpbSlotInfoKHR;
11344
11345
11346
11347// VK_KHR_global_priority is a preprocessor guard. Do not pass it to API calls.
11348#define VK_KHR_global_priority 1
11349#define VK_KHR_GLOBAL_PRIORITY_SPEC_VERSION 1
11350#define VK_KHR_GLOBAL_PRIORITY_EXTENSION_NAME "VK_KHR_global_priority"
11351#define VK_MAX_GLOBAL_PRIORITY_SIZE_KHR VK_MAX_GLOBAL_PRIORITY_SIZE
11352typedef VkQueueGlobalPriority VkQueueGlobalPriorityKHR;
11353
11354typedef VkDeviceQueueGlobalPriorityCreateInfo VkDeviceQueueGlobalPriorityCreateInfoKHR;
11355
11356typedef VkPhysicalDeviceGlobalPriorityQueryFeatures VkPhysicalDeviceGlobalPriorityQueryFeaturesKHR;
11357
11358typedef VkQueueFamilyGlobalPriorityProperties VkQueueFamilyGlobalPriorityPropertiesKHR;
11359
11360
11361
11362// VK_KHR_driver_properties is a preprocessor guard. Do not pass it to API calls.
11363#define VK_KHR_driver_properties 1
11364#define VK_KHR_DRIVER_PROPERTIES_SPEC_VERSION 1
11365#define VK_KHR_DRIVER_PROPERTIES_EXTENSION_NAME "VK_KHR_driver_properties"
11366#define VK_MAX_DRIVER_NAME_SIZE_KHR VK_MAX_DRIVER_NAME_SIZE
11367#define VK_MAX_DRIVER_INFO_SIZE_KHR VK_MAX_DRIVER_INFO_SIZE
11368typedef VkDriverId VkDriverIdKHR;
11369
11370typedef VkConformanceVersion VkConformanceVersionKHR;
11371
11372typedef VkPhysicalDeviceDriverProperties VkPhysicalDeviceDriverPropertiesKHR;
11373
11374
11375
11376// VK_KHR_shader_float_controls is a preprocessor guard. Do not pass it to API calls.
11377#define VK_KHR_shader_float_controls 1
11378#define VK_KHR_SHADER_FLOAT_CONTROLS_SPEC_VERSION 4
11379#define VK_KHR_SHADER_FLOAT_CONTROLS_EXTENSION_NAME "VK_KHR_shader_float_controls"
11380typedef VkShaderFloatControlsIndependence VkShaderFloatControlsIndependenceKHR;
11381
11382typedef VkPhysicalDeviceFloatControlsProperties VkPhysicalDeviceFloatControlsPropertiesKHR;
11383
11384
11385
11386// VK_KHR_depth_stencil_resolve is a preprocessor guard. Do not pass it to API calls.
11387#define VK_KHR_depth_stencil_resolve 1
11388#define VK_KHR_DEPTH_STENCIL_RESOLVE_SPEC_VERSION 1
11389#define VK_KHR_DEPTH_STENCIL_RESOLVE_EXTENSION_NAME "VK_KHR_depth_stencil_resolve"
11390typedef VkResolveModeFlagBits VkResolveModeFlagBitsKHR;
11391
11392typedef VkResolveModeFlags VkResolveModeFlagsKHR;
11393
11394typedef VkSubpassDescriptionDepthStencilResolve VkSubpassDescriptionDepthStencilResolveKHR;
11395
11396typedef VkPhysicalDeviceDepthStencilResolveProperties VkPhysicalDeviceDepthStencilResolvePropertiesKHR;
11397
11398
11399
11400// VK_KHR_swapchain_mutable_format is a preprocessor guard. Do not pass it to API calls.
11401#define VK_KHR_swapchain_mutable_format 1
11402#define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_SPEC_VERSION 1
11403#define VK_KHR_SWAPCHAIN_MUTABLE_FORMAT_EXTENSION_NAME "VK_KHR_swapchain_mutable_format"
11404
11405
11406// VK_KHR_timeline_semaphore is a preprocessor guard. Do not pass it to API calls.
11407#define VK_KHR_timeline_semaphore 1
11408#define VK_KHR_TIMELINE_SEMAPHORE_SPEC_VERSION 2
11409#define VK_KHR_TIMELINE_SEMAPHORE_EXTENSION_NAME "VK_KHR_timeline_semaphore"
11410typedef VkSemaphoreType VkSemaphoreTypeKHR;
11411
11412typedef VkSemaphoreWaitFlagBits VkSemaphoreWaitFlagBitsKHR;
11413
11414typedef VkSemaphoreWaitFlags VkSemaphoreWaitFlagsKHR;
11415
11416typedef VkPhysicalDeviceTimelineSemaphoreFeatures VkPhysicalDeviceTimelineSemaphoreFeaturesKHR;
11417
11418typedef VkPhysicalDeviceTimelineSemaphoreProperties VkPhysicalDeviceTimelineSemaphorePropertiesKHR;
11419
11420typedef VkSemaphoreTypeCreateInfo VkSemaphoreTypeCreateInfoKHR;
11421
11422typedef VkTimelineSemaphoreSubmitInfo VkTimelineSemaphoreSubmitInfoKHR;
11423
11424typedef VkSemaphoreWaitInfo VkSemaphoreWaitInfoKHR;
11425
11426typedef VkSemaphoreSignalInfo VkSemaphoreSignalInfoKHR;
11427
11428typedef VkResult (VKAPI_PTR *PFN_vkGetSemaphoreCounterValueKHR)(VkDevice device, VkSemaphore semaphore, uint64_t* pValue);
11429typedef VkResult (VKAPI_PTR *PFN_vkWaitSemaphoresKHR)(VkDevice device, const VkSemaphoreWaitInfo* pWaitInfo, uint64_t timeout);
11430typedef VkResult (VKAPI_PTR *PFN_vkSignalSemaphoreKHR)(VkDevice device, const VkSemaphoreSignalInfo* pSignalInfo);
11431
11432#ifndef VK_NO_PROTOTYPES
11433#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11434VKAPI_ATTR VkResult VKAPI_CALL vkGetSemaphoreCounterValueKHR(
11435 VkDevice device,
11436 VkSemaphore semaphore,
11437 uint64_t* pValue);
11438#endif
11439
11440#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11441VKAPI_ATTR VkResult VKAPI_CALL vkWaitSemaphoresKHR(
11442 VkDevice device,
11443 const VkSemaphoreWaitInfo* pWaitInfo,
11444 uint64_t timeout);
11445#endif
11446
11447#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11448VKAPI_ATTR VkResult VKAPI_CALL vkSignalSemaphoreKHR(
11449 VkDevice device,
11450 const VkSemaphoreSignalInfo* pSignalInfo);
11451#endif
11452#endif
11453
11454
11455// VK_KHR_vulkan_memory_model is a preprocessor guard. Do not pass it to API calls.
11456#define VK_KHR_vulkan_memory_model 1
11457#define VK_KHR_VULKAN_MEMORY_MODEL_SPEC_VERSION 3
11458#define VK_KHR_VULKAN_MEMORY_MODEL_EXTENSION_NAME "VK_KHR_vulkan_memory_model"
11459typedef VkPhysicalDeviceVulkanMemoryModelFeatures VkPhysicalDeviceVulkanMemoryModelFeaturesKHR;
11460
11461
11462
11463// VK_KHR_shader_terminate_invocation is a preprocessor guard. Do not pass it to API calls.
11464#define VK_KHR_shader_terminate_invocation 1
11465#define VK_KHR_SHADER_TERMINATE_INVOCATION_SPEC_VERSION 1
11466#define VK_KHR_SHADER_TERMINATE_INVOCATION_EXTENSION_NAME "VK_KHR_shader_terminate_invocation"
11467typedef VkPhysicalDeviceShaderTerminateInvocationFeatures VkPhysicalDeviceShaderTerminateInvocationFeaturesKHR;
11468
11469
11470
11471// VK_KHR_fragment_shading_rate is a preprocessor guard. Do not pass it to API calls.
11472#define VK_KHR_fragment_shading_rate 1
11473#define VK_KHR_FRAGMENT_SHADING_RATE_SPEC_VERSION 2
11474#define VK_KHR_FRAGMENT_SHADING_RATE_EXTENSION_NAME "VK_KHR_fragment_shading_rate"
11475
11476typedef enum VkFragmentShadingRateCombinerOpKHR {
11477 VK_FRAGMENT_SHADING_RATE_COMBINER_OP_KEEP_KHR = 0,
11478 VK_FRAGMENT_SHADING_RATE_COMBINER_OP_REPLACE_KHR = 1,
11479 VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MIN_KHR = 2,
11480 VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_KHR = 3,
11481 VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MUL_KHR = 4,
11482 VK_FRAGMENT_SHADING_RATE_COMBINER_OP_MAX_ENUM_KHR = 0x7FFFFFFF
11483} VkFragmentShadingRateCombinerOpKHR;
11484typedef struct VkFragmentShadingRateAttachmentInfoKHR {
11485 VkStructureType sType;
11486 const void* pNext;
11487 const VkAttachmentReference2* pFragmentShadingRateAttachment;
11488 VkExtent2D shadingRateAttachmentTexelSize;
11489} VkFragmentShadingRateAttachmentInfoKHR;
11490
11491typedef struct VkPipelineFragmentShadingRateStateCreateInfoKHR {
11492 VkStructureType sType;
11493 const void* pNext;
11494 VkExtent2D fragmentSize;
11495 VkFragmentShadingRateCombinerOpKHR combinerOps[2];
11496} VkPipelineFragmentShadingRateStateCreateInfoKHR;
11497
11498typedef struct VkPhysicalDeviceFragmentShadingRateFeaturesKHR {
11499 VkStructureType sType;
11500 void* pNext;
11501 VkBool32 pipelineFragmentShadingRate;
11502 VkBool32 primitiveFragmentShadingRate;
11503 VkBool32 attachmentFragmentShadingRate;
11504} VkPhysicalDeviceFragmentShadingRateFeaturesKHR;
11505
11506typedef struct VkPhysicalDeviceFragmentShadingRatePropertiesKHR {
11507 VkStructureType sType;
11508 void* pNext;
11509 VkExtent2D minFragmentShadingRateAttachmentTexelSize;
11510 VkExtent2D maxFragmentShadingRateAttachmentTexelSize;
11511 uint32_t maxFragmentShadingRateAttachmentTexelSizeAspectRatio;
11512 VkBool32 primitiveFragmentShadingRateWithMultipleViewports;
11513 VkBool32 layeredShadingRateAttachments;
11514 VkBool32 fragmentShadingRateNonTrivialCombinerOps;
11515 VkExtent2D maxFragmentSize;
11516 uint32_t maxFragmentSizeAspectRatio;
11517 uint32_t maxFragmentShadingRateCoverageSamples;
11518 VkSampleCountFlagBits maxFragmentShadingRateRasterizationSamples;
11519 VkBool32 fragmentShadingRateWithShaderDepthStencilWrites;
11520 VkBool32 fragmentShadingRateWithSampleMask;
11521 VkBool32 fragmentShadingRateWithShaderSampleMask;
11522 VkBool32 fragmentShadingRateWithConservativeRasterization;
11523 VkBool32 fragmentShadingRateWithFragmentShaderInterlock;
11524 VkBool32 fragmentShadingRateWithCustomSampleLocations;
11525 VkBool32 fragmentShadingRateStrictMultiplyCombiner;
11526} VkPhysicalDeviceFragmentShadingRatePropertiesKHR;
11527
11528typedef struct VkPhysicalDeviceFragmentShadingRateKHR {
11529 VkStructureType sType;
11530 void* pNext;
11531 VkSampleCountFlags sampleCounts;
11532 VkExtent2D fragmentSize;
11533} VkPhysicalDeviceFragmentShadingRateKHR;
11534
11535typedef struct VkRenderingFragmentShadingRateAttachmentInfoKHR {
11536 VkStructureType sType;
11537 const void* pNext;
11538 VkImageView imageView;
11539 VkImageLayout imageLayout;
11540 VkExtent2D shadingRateAttachmentTexelSize;
11541} VkRenderingFragmentShadingRateAttachmentInfoKHR;
11542
11543typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceFragmentShadingRatesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pFragmentShadingRateCount, VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates);
11544typedef void (VKAPI_PTR *PFN_vkCmdSetFragmentShadingRateKHR)(VkCommandBuffer commandBuffer, const VkExtent2D* pFragmentSize, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]);
11545
11546#ifndef VK_NO_PROTOTYPES
11547#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11548VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceFragmentShadingRatesKHR(
11549 VkPhysicalDevice physicalDevice,
11550 uint32_t* pFragmentShadingRateCount,
11551 VkPhysicalDeviceFragmentShadingRateKHR* pFragmentShadingRates);
11552#endif
11553
11554#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11555VKAPI_ATTR void VKAPI_CALL vkCmdSetFragmentShadingRateKHR(
11556 VkCommandBuffer commandBuffer,
11557 const VkExtent2D* pFragmentSize,
11558 const VkFragmentShadingRateCombinerOpKHR combinerOps[2]);
11559#endif
11560#endif
11561
11562
11563// VK_KHR_dynamic_rendering_local_read is a preprocessor guard. Do not pass it to API calls.
11564#define VK_KHR_dynamic_rendering_local_read 1
11565#define VK_KHR_DYNAMIC_RENDERING_LOCAL_READ_SPEC_VERSION 1
11566#define VK_KHR_DYNAMIC_RENDERING_LOCAL_READ_EXTENSION_NAME "VK_KHR_dynamic_rendering_local_read"
11567typedef VkPhysicalDeviceDynamicRenderingLocalReadFeatures VkPhysicalDeviceDynamicRenderingLocalReadFeaturesKHR;
11568
11569typedef VkRenderingAttachmentLocationInfo VkRenderingAttachmentLocationInfoKHR;
11570
11571typedef VkRenderingInputAttachmentIndexInfo VkRenderingInputAttachmentIndexInfoKHR;
11572
11573typedef void (VKAPI_PTR *PFN_vkCmdSetRenderingAttachmentLocationsKHR)(VkCommandBuffer commandBuffer, const VkRenderingAttachmentLocationInfo* pLocationInfo);
11574typedef void (VKAPI_PTR *PFN_vkCmdSetRenderingInputAttachmentIndicesKHR)(VkCommandBuffer commandBuffer, const VkRenderingInputAttachmentIndexInfo* pInputAttachmentIndexInfo);
11575
11576#ifndef VK_NO_PROTOTYPES
11577#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11578VKAPI_ATTR void VKAPI_CALL vkCmdSetRenderingAttachmentLocationsKHR(
11579 VkCommandBuffer commandBuffer,
11580 const VkRenderingAttachmentLocationInfo* pLocationInfo);
11581#endif
11582
11583#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11584VKAPI_ATTR void VKAPI_CALL vkCmdSetRenderingInputAttachmentIndicesKHR(
11585 VkCommandBuffer commandBuffer,
11586 const VkRenderingInputAttachmentIndexInfo* pInputAttachmentIndexInfo);
11587#endif
11588#endif
11589
11590
11591// VK_KHR_shader_quad_control is a preprocessor guard. Do not pass it to API calls.
11592#define VK_KHR_shader_quad_control 1
11593#define VK_KHR_SHADER_QUAD_CONTROL_SPEC_VERSION 1
11594#define VK_KHR_SHADER_QUAD_CONTROL_EXTENSION_NAME "VK_KHR_shader_quad_control"
11595typedef struct VkPhysicalDeviceShaderQuadControlFeaturesKHR {
11596 VkStructureType sType;
11597 void* pNext;
11598 VkBool32 shaderQuadControl;
11599} VkPhysicalDeviceShaderQuadControlFeaturesKHR;
11600
11601
11602
11603// VK_KHR_spirv_1_4 is a preprocessor guard. Do not pass it to API calls.
11604#define VK_KHR_spirv_1_4 1
11605#define VK_KHR_SPIRV_1_4_SPEC_VERSION 1
11606#define VK_KHR_SPIRV_1_4_EXTENSION_NAME "VK_KHR_spirv_1_4"
11607
11608
11609// VK_KHR_surface_protected_capabilities is a preprocessor guard. Do not pass it to API calls.
11610#define VK_KHR_surface_protected_capabilities 1
11611#define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_SPEC_VERSION 1
11612#define VK_KHR_SURFACE_PROTECTED_CAPABILITIES_EXTENSION_NAME "VK_KHR_surface_protected_capabilities"
11613typedef struct VkSurfaceProtectedCapabilitiesKHR {
11614 VkStructureType sType;
11615 const void* pNext;
11616 VkBool32 supportsProtected;
11617} VkSurfaceProtectedCapabilitiesKHR;
11618
11619
11620
11621// VK_KHR_separate_depth_stencil_layouts is a preprocessor guard. Do not pass it to API calls.
11622#define VK_KHR_separate_depth_stencil_layouts 1
11623#define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_SPEC_VERSION 1
11624#define VK_KHR_SEPARATE_DEPTH_STENCIL_LAYOUTS_EXTENSION_NAME "VK_KHR_separate_depth_stencil_layouts"
11625typedef VkPhysicalDeviceSeparateDepthStencilLayoutsFeatures VkPhysicalDeviceSeparateDepthStencilLayoutsFeaturesKHR;
11626
11627typedef VkAttachmentReferenceStencilLayout VkAttachmentReferenceStencilLayoutKHR;
11628
11629typedef VkAttachmentDescriptionStencilLayout VkAttachmentDescriptionStencilLayoutKHR;
11630
11631
11632
11633// VK_KHR_present_wait is a preprocessor guard. Do not pass it to API calls.
11634#define VK_KHR_present_wait 1
11635#define VK_KHR_PRESENT_WAIT_SPEC_VERSION 1
11636#define VK_KHR_PRESENT_WAIT_EXTENSION_NAME "VK_KHR_present_wait"
11637typedef struct VkPhysicalDevicePresentWaitFeaturesKHR {
11638 VkStructureType sType;
11639 void* pNext;
11640 VkBool32 presentWait;
11641} VkPhysicalDevicePresentWaitFeaturesKHR;
11642
11643typedef VkResult (VKAPI_PTR *PFN_vkWaitForPresentKHR)(VkDevice device, VkSwapchainKHR swapchain, uint64_t presentId, uint64_t timeout);
11644
11645#ifndef VK_NO_PROTOTYPES
11646#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11647VKAPI_ATTR VkResult VKAPI_CALL vkWaitForPresentKHR(
11648 VkDevice device,
11649 VkSwapchainKHR swapchain,
11650 uint64_t presentId,
11651 uint64_t timeout);
11652#endif
11653#endif
11654
11655
11656// VK_KHR_uniform_buffer_standard_layout is a preprocessor guard. Do not pass it to API calls.
11657#define VK_KHR_uniform_buffer_standard_layout 1
11658#define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_SPEC_VERSION 1
11659#define VK_KHR_UNIFORM_BUFFER_STANDARD_LAYOUT_EXTENSION_NAME "VK_KHR_uniform_buffer_standard_layout"
11660typedef VkPhysicalDeviceUniformBufferStandardLayoutFeatures VkPhysicalDeviceUniformBufferStandardLayoutFeaturesKHR;
11661
11662
11663
11664// VK_KHR_buffer_device_address is a preprocessor guard. Do not pass it to API calls.
11665#define VK_KHR_buffer_device_address 1
11666#define VK_KHR_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 1
11667#define VK_KHR_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_KHR_buffer_device_address"
11668typedef VkPhysicalDeviceBufferDeviceAddressFeatures VkPhysicalDeviceBufferDeviceAddressFeaturesKHR;
11669
11670typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoKHR;
11671
11672typedef VkBufferOpaqueCaptureAddressCreateInfo VkBufferOpaqueCaptureAddressCreateInfoKHR;
11673
11674typedef VkMemoryOpaqueCaptureAddressAllocateInfo VkMemoryOpaqueCaptureAddressAllocateInfoKHR;
11675
11676typedef VkDeviceMemoryOpaqueCaptureAddressInfo VkDeviceMemoryOpaqueCaptureAddressInfoKHR;
11677
11678typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddressKHR)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
11679typedef uint64_t (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureAddressKHR)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
11680typedef uint64_t (VKAPI_PTR *PFN_vkGetDeviceMemoryOpaqueCaptureAddressKHR)(VkDevice device, const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
11681
11682#ifndef VK_NO_PROTOTYPES
11683#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11684VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddressKHR(
11685 VkDevice device,
11686 const VkBufferDeviceAddressInfo* pInfo);
11687#endif
11688
11689#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11690VKAPI_ATTR uint64_t VKAPI_CALL vkGetBufferOpaqueCaptureAddressKHR(
11691 VkDevice device,
11692 const VkBufferDeviceAddressInfo* pInfo);
11693#endif
11694
11695#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11696VKAPI_ATTR uint64_t VKAPI_CALL vkGetDeviceMemoryOpaqueCaptureAddressKHR(
11697 VkDevice device,
11698 const VkDeviceMemoryOpaqueCaptureAddressInfo* pInfo);
11699#endif
11700#endif
11701
11702
11703// VK_KHR_deferred_host_operations is a preprocessor guard. Do not pass it to API calls.
11704#define VK_KHR_deferred_host_operations 1
11705VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDeferredOperationKHR)
11706#define VK_KHR_DEFERRED_HOST_OPERATIONS_SPEC_VERSION 4
11707#define VK_KHR_DEFERRED_HOST_OPERATIONS_EXTENSION_NAME "VK_KHR_deferred_host_operations"
11708typedef VkResult (VKAPI_PTR *PFN_vkCreateDeferredOperationKHR)(VkDevice device, const VkAllocationCallbacks* pAllocator, VkDeferredOperationKHR* pDeferredOperation);
11709typedef void (VKAPI_PTR *PFN_vkDestroyDeferredOperationKHR)(VkDevice device, VkDeferredOperationKHR operation, const VkAllocationCallbacks* pAllocator);
11710typedef uint32_t (VKAPI_PTR *PFN_vkGetDeferredOperationMaxConcurrencyKHR)(VkDevice device, VkDeferredOperationKHR operation);
11711typedef VkResult (VKAPI_PTR *PFN_vkGetDeferredOperationResultKHR)(VkDevice device, VkDeferredOperationKHR operation);
11712typedef VkResult (VKAPI_PTR *PFN_vkDeferredOperationJoinKHR)(VkDevice device, VkDeferredOperationKHR operation);
11713
11714#ifndef VK_NO_PROTOTYPES
11715#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11716VKAPI_ATTR VkResult VKAPI_CALL vkCreateDeferredOperationKHR(
11717 VkDevice device,
11718 const VkAllocationCallbacks* pAllocator,
11719 VkDeferredOperationKHR* pDeferredOperation);
11720#endif
11721
11722#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11723VKAPI_ATTR void VKAPI_CALL vkDestroyDeferredOperationKHR(
11724 VkDevice device,
11725 VkDeferredOperationKHR operation,
11726 const VkAllocationCallbacks* pAllocator);
11727#endif
11728
11729#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11730VKAPI_ATTR uint32_t VKAPI_CALL vkGetDeferredOperationMaxConcurrencyKHR(
11731 VkDevice device,
11732 VkDeferredOperationKHR operation);
11733#endif
11734
11735#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11736VKAPI_ATTR VkResult VKAPI_CALL vkGetDeferredOperationResultKHR(
11737 VkDevice device,
11738 VkDeferredOperationKHR operation);
11739#endif
11740
11741#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11742VKAPI_ATTR VkResult VKAPI_CALL vkDeferredOperationJoinKHR(
11743 VkDevice device,
11744 VkDeferredOperationKHR operation);
11745#endif
11746#endif
11747
11748
11749// VK_KHR_pipeline_executable_properties is a preprocessor guard. Do not pass it to API calls.
11750#define VK_KHR_pipeline_executable_properties 1
11751#define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_SPEC_VERSION 1
11752#define VK_KHR_PIPELINE_EXECUTABLE_PROPERTIES_EXTENSION_NAME "VK_KHR_pipeline_executable_properties"
11753
11754typedef enum VkPipelineExecutableStatisticFormatKHR {
11755 VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_BOOL32_KHR = 0,
11756 VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_INT64_KHR = 1,
11757 VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_UINT64_KHR = 2,
11758 VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_FLOAT64_KHR = 3,
11759 VK_PIPELINE_EXECUTABLE_STATISTIC_FORMAT_MAX_ENUM_KHR = 0x7FFFFFFF
11760} VkPipelineExecutableStatisticFormatKHR;
11761typedef struct VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR {
11762 VkStructureType sType;
11763 void* pNext;
11764 VkBool32 pipelineExecutableInfo;
11765} VkPhysicalDevicePipelineExecutablePropertiesFeaturesKHR;
11766
11767typedef struct VkPipelineInfoKHR {
11768 VkStructureType sType;
11769 const void* pNext;
11770 VkPipeline pipeline;
11771} VkPipelineInfoKHR;
11772
11773typedef struct VkPipelineExecutablePropertiesKHR {
11774 VkStructureType sType;
11775 void* pNext;
11776 VkShaderStageFlags stages;
11777 char name[VK_MAX_DESCRIPTION_SIZE];
11778 char description[VK_MAX_DESCRIPTION_SIZE];
11779 uint32_t subgroupSize;
11780} VkPipelineExecutablePropertiesKHR;
11781
11782typedef struct VkPipelineExecutableInfoKHR {
11783 VkStructureType sType;
11784 const void* pNext;
11785 VkPipeline pipeline;
11786 uint32_t executableIndex;
11787} VkPipelineExecutableInfoKHR;
11788
11789typedef union VkPipelineExecutableStatisticValueKHR {
11790 VkBool32 b32;
11791 int64_t i64;
11792 uint64_t u64;
11793 double f64;
11794} VkPipelineExecutableStatisticValueKHR;
11795
11796typedef struct VkPipelineExecutableStatisticKHR {
11797 VkStructureType sType;
11798 void* pNext;
11799 char name[VK_MAX_DESCRIPTION_SIZE];
11800 char description[VK_MAX_DESCRIPTION_SIZE];
11801 VkPipelineExecutableStatisticFormatKHR format;
11802 VkPipelineExecutableStatisticValueKHR value;
11803} VkPipelineExecutableStatisticKHR;
11804
11805typedef struct VkPipelineExecutableInternalRepresentationKHR {
11806 VkStructureType sType;
11807 void* pNext;
11808 char name[VK_MAX_DESCRIPTION_SIZE];
11809 char description[VK_MAX_DESCRIPTION_SIZE];
11810 VkBool32 isText;
11811 size_t dataSize;
11812 void* pData;
11813} VkPipelineExecutableInternalRepresentationKHR;
11814
11815typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutablePropertiesKHR)(VkDevice device, const VkPipelineInfoKHR* pPipelineInfo, uint32_t* pExecutableCount, VkPipelineExecutablePropertiesKHR* pProperties);
11816typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutableStatisticsKHR)(VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pStatisticCount, VkPipelineExecutableStatisticKHR* pStatistics);
11817typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineExecutableInternalRepresentationsKHR)(VkDevice device, const VkPipelineExecutableInfoKHR* pExecutableInfo, uint32_t* pInternalRepresentationCount, VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations);
11818
11819#ifndef VK_NO_PROTOTYPES
11820#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11821VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutablePropertiesKHR(
11822 VkDevice device,
11823 const VkPipelineInfoKHR* pPipelineInfo,
11824 uint32_t* pExecutableCount,
11825 VkPipelineExecutablePropertiesKHR* pProperties);
11826#endif
11827
11828#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11829VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableStatisticsKHR(
11830 VkDevice device,
11831 const VkPipelineExecutableInfoKHR* pExecutableInfo,
11832 uint32_t* pStatisticCount,
11833 VkPipelineExecutableStatisticKHR* pStatistics);
11834#endif
11835
11836#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11837VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineExecutableInternalRepresentationsKHR(
11838 VkDevice device,
11839 const VkPipelineExecutableInfoKHR* pExecutableInfo,
11840 uint32_t* pInternalRepresentationCount,
11841 VkPipelineExecutableInternalRepresentationKHR* pInternalRepresentations);
11842#endif
11843#endif
11844
11845
11846// VK_KHR_map_memory2 is a preprocessor guard. Do not pass it to API calls.
11847#define VK_KHR_map_memory2 1
11848#define VK_KHR_MAP_MEMORY_2_SPEC_VERSION 1
11849#define VK_KHR_MAP_MEMORY_2_EXTENSION_NAME "VK_KHR_map_memory2"
11850typedef VkMemoryUnmapFlagBits VkMemoryUnmapFlagBitsKHR;
11851
11852typedef VkMemoryUnmapFlags VkMemoryUnmapFlagsKHR;
11853
11854typedef VkMemoryMapInfo VkMemoryMapInfoKHR;
11855
11856typedef VkMemoryUnmapInfo VkMemoryUnmapInfoKHR;
11857
11858typedef VkResult (VKAPI_PTR *PFN_vkMapMemory2KHR)(VkDevice device, const VkMemoryMapInfo* pMemoryMapInfo, void** ppData);
11859typedef VkResult (VKAPI_PTR *PFN_vkUnmapMemory2KHR)(VkDevice device, const VkMemoryUnmapInfo* pMemoryUnmapInfo);
11860
11861#ifndef VK_NO_PROTOTYPES
11862#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11863VKAPI_ATTR VkResult VKAPI_CALL vkMapMemory2KHR(
11864 VkDevice device,
11865 const VkMemoryMapInfo* pMemoryMapInfo,
11866 void** ppData);
11867#endif
11868
11869#ifndef VK_ONLY_EXPORTED_PROTOTYPES
11870VKAPI_ATTR VkResult VKAPI_CALL vkUnmapMemory2KHR(
11871 VkDevice device,
11872 const VkMemoryUnmapInfo* pMemoryUnmapInfo);
11873#endif
11874#endif
11875
11876
11877// VK_KHR_shader_integer_dot_product is a preprocessor guard. Do not pass it to API calls.
11878#define VK_KHR_shader_integer_dot_product 1
11879#define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_SPEC_VERSION 1
11880#define VK_KHR_SHADER_INTEGER_DOT_PRODUCT_EXTENSION_NAME "VK_KHR_shader_integer_dot_product"
11881typedef VkPhysicalDeviceShaderIntegerDotProductFeatures VkPhysicalDeviceShaderIntegerDotProductFeaturesKHR;
11882
11883typedef VkPhysicalDeviceShaderIntegerDotProductProperties VkPhysicalDeviceShaderIntegerDotProductPropertiesKHR;
11884
11885
11886
11887// VK_KHR_pipeline_library is a preprocessor guard. Do not pass it to API calls.
11888#define VK_KHR_pipeline_library 1
11889#define VK_KHR_PIPELINE_LIBRARY_SPEC_VERSION 1
11890#define VK_KHR_PIPELINE_LIBRARY_EXTENSION_NAME "VK_KHR_pipeline_library"
11891typedef struct VkPipelineLibraryCreateInfoKHR {
11892 VkStructureType sType;
11893 const void* pNext;
11894 uint32_t libraryCount;
11895 const VkPipeline* pLibraries;
11896} VkPipelineLibraryCreateInfoKHR;
11897
11898
11899
11900// VK_KHR_shader_non_semantic_info is a preprocessor guard. Do not pass it to API calls.
11901#define VK_KHR_shader_non_semantic_info 1
11902#define VK_KHR_SHADER_NON_SEMANTIC_INFO_SPEC_VERSION 1
11903#define VK_KHR_SHADER_NON_SEMANTIC_INFO_EXTENSION_NAME "VK_KHR_shader_non_semantic_info"
11904
11905
11906// VK_KHR_present_id is a preprocessor guard. Do not pass it to API calls.
11907#define VK_KHR_present_id 1
11908#define VK_KHR_PRESENT_ID_SPEC_VERSION 1
11909#define VK_KHR_PRESENT_ID_EXTENSION_NAME "VK_KHR_present_id"
11910typedef struct VkPresentIdKHR {
11911 VkStructureType sType;
11912 const void* pNext;
11913 uint32_t swapchainCount;
11914 const uint64_t* pPresentIds;
11915} VkPresentIdKHR;
11916
11917typedef struct VkPhysicalDevicePresentIdFeaturesKHR {
11918 VkStructureType sType;
11919 void* pNext;
11920 VkBool32 presentId;
11921} VkPhysicalDevicePresentIdFeaturesKHR;
11922
11923
11924
11925// VK_KHR_video_encode_queue is a preprocessor guard. Do not pass it to API calls.
11926#define VK_KHR_video_encode_queue 1
11927#define VK_KHR_VIDEO_ENCODE_QUEUE_SPEC_VERSION 12
11928#define VK_KHR_VIDEO_ENCODE_QUEUE_EXTENSION_NAME "VK_KHR_video_encode_queue"
11929
11930typedef enum VkVideoEncodeTuningModeKHR {
11931 VK_VIDEO_ENCODE_TUNING_MODE_DEFAULT_KHR = 0,
11932 VK_VIDEO_ENCODE_TUNING_MODE_HIGH_QUALITY_KHR = 1,
11933 VK_VIDEO_ENCODE_TUNING_MODE_LOW_LATENCY_KHR = 2,
11934 VK_VIDEO_ENCODE_TUNING_MODE_ULTRA_LOW_LATENCY_KHR = 3,
11935 VK_VIDEO_ENCODE_TUNING_MODE_LOSSLESS_KHR = 4,
11936 VK_VIDEO_ENCODE_TUNING_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
11937} VkVideoEncodeTuningModeKHR;
11938
11939typedef enum VkVideoEncodeFlagBitsKHR {
11940 VK_VIDEO_ENCODE_INTRA_REFRESH_BIT_KHR = 0x00000004,
11941 VK_VIDEO_ENCODE_WITH_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x00000001,
11942 VK_VIDEO_ENCODE_WITH_EMPHASIS_MAP_BIT_KHR = 0x00000002,
11943 VK_VIDEO_ENCODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
11944} VkVideoEncodeFlagBitsKHR;
11945typedef VkFlags VkVideoEncodeFlagsKHR;
11946
11947typedef enum VkVideoEncodeCapabilityFlagBitsKHR {
11948 VK_VIDEO_ENCODE_CAPABILITY_PRECEDING_EXTERNALLY_ENCODED_BYTES_BIT_KHR = 0x00000001,
11949 VK_VIDEO_ENCODE_CAPABILITY_INSUFFICIENT_BITSTREAM_BUFFER_RANGE_DETECTION_BIT_KHR = 0x00000002,
11950 VK_VIDEO_ENCODE_CAPABILITY_QUANTIZATION_DELTA_MAP_BIT_KHR = 0x00000004,
11951 VK_VIDEO_ENCODE_CAPABILITY_EMPHASIS_MAP_BIT_KHR = 0x00000008,
11952 VK_VIDEO_ENCODE_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
11953} VkVideoEncodeCapabilityFlagBitsKHR;
11954typedef VkFlags VkVideoEncodeCapabilityFlagsKHR;
11955
11956typedef enum VkVideoEncodeRateControlModeFlagBitsKHR {
11957 VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DEFAULT_KHR = 0,
11958 VK_VIDEO_ENCODE_RATE_CONTROL_MODE_DISABLED_BIT_KHR = 0x00000001,
11959 VK_VIDEO_ENCODE_RATE_CONTROL_MODE_CBR_BIT_KHR = 0x00000002,
11960 VK_VIDEO_ENCODE_RATE_CONTROL_MODE_VBR_BIT_KHR = 0x00000004,
11961 VK_VIDEO_ENCODE_RATE_CONTROL_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
11962} VkVideoEncodeRateControlModeFlagBitsKHR;
11963typedef VkFlags VkVideoEncodeRateControlModeFlagsKHR;
11964
11965typedef enum VkVideoEncodeFeedbackFlagBitsKHR {
11966 VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BUFFER_OFFSET_BIT_KHR = 0x00000001,
11967 VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_BYTES_WRITTEN_BIT_KHR = 0x00000002,
11968 VK_VIDEO_ENCODE_FEEDBACK_BITSTREAM_HAS_OVERRIDES_BIT_KHR = 0x00000004,
11969 VK_VIDEO_ENCODE_FEEDBACK_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
11970} VkVideoEncodeFeedbackFlagBitsKHR;
11971typedef VkFlags VkVideoEncodeFeedbackFlagsKHR;
11972
11973typedef enum VkVideoEncodeUsageFlagBitsKHR {
11974 VK_VIDEO_ENCODE_USAGE_DEFAULT_KHR = 0,
11975 VK_VIDEO_ENCODE_USAGE_TRANSCODING_BIT_KHR = 0x00000001,
11976 VK_VIDEO_ENCODE_USAGE_STREAMING_BIT_KHR = 0x00000002,
11977 VK_VIDEO_ENCODE_USAGE_RECORDING_BIT_KHR = 0x00000004,
11978 VK_VIDEO_ENCODE_USAGE_CONFERENCING_BIT_KHR = 0x00000008,
11979 VK_VIDEO_ENCODE_USAGE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
11980} VkVideoEncodeUsageFlagBitsKHR;
11981typedef VkFlags VkVideoEncodeUsageFlagsKHR;
11982
11983typedef enum VkVideoEncodeContentFlagBitsKHR {
11984 VK_VIDEO_ENCODE_CONTENT_DEFAULT_KHR = 0,
11985 VK_VIDEO_ENCODE_CONTENT_CAMERA_BIT_KHR = 0x00000001,
11986 VK_VIDEO_ENCODE_CONTENT_DESKTOP_BIT_KHR = 0x00000002,
11987 VK_VIDEO_ENCODE_CONTENT_RENDERED_BIT_KHR = 0x00000004,
11988 VK_VIDEO_ENCODE_CONTENT_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
11989} VkVideoEncodeContentFlagBitsKHR;
11990typedef VkFlags VkVideoEncodeContentFlagsKHR;
11991typedef VkFlags VkVideoEncodeRateControlFlagsKHR;
11992typedef struct VkVideoEncodeInfoKHR {
11993 VkStructureType sType;
11994 const void* pNext;
11995 VkVideoEncodeFlagsKHR flags;
11996 VkBuffer dstBuffer;
11997 VkDeviceSize dstBufferOffset;
11998 VkDeviceSize dstBufferRange;
11999 VkVideoPictureResourceInfoKHR srcPictureResource;
12000 const VkVideoReferenceSlotInfoKHR* pSetupReferenceSlot;
12001 uint32_t referenceSlotCount;
12002 const VkVideoReferenceSlotInfoKHR* pReferenceSlots;
12003 uint32_t precedingExternallyEncodedBytes;
12004} VkVideoEncodeInfoKHR;
12005
12006typedef struct VkVideoEncodeCapabilitiesKHR {
12007 VkStructureType sType;
12008 void* pNext;
12009 VkVideoEncodeCapabilityFlagsKHR flags;
12010 VkVideoEncodeRateControlModeFlagsKHR rateControlModes;
12011 uint32_t maxRateControlLayers;
12012 uint64_t maxBitrate;
12013 uint32_t maxQualityLevels;
12014 VkExtent2D encodeInputPictureGranularity;
12015 VkVideoEncodeFeedbackFlagsKHR supportedEncodeFeedbackFlags;
12016} VkVideoEncodeCapabilitiesKHR;
12017
12018typedef struct VkQueryPoolVideoEncodeFeedbackCreateInfoKHR {
12019 VkStructureType sType;
12020 const void* pNext;
12021 VkVideoEncodeFeedbackFlagsKHR encodeFeedbackFlags;
12022} VkQueryPoolVideoEncodeFeedbackCreateInfoKHR;
12023
12024typedef struct VkVideoEncodeUsageInfoKHR {
12025 VkStructureType sType;
12026 const void* pNext;
12027 VkVideoEncodeUsageFlagsKHR videoUsageHints;
12028 VkVideoEncodeContentFlagsKHR videoContentHints;
12029 VkVideoEncodeTuningModeKHR tuningMode;
12030} VkVideoEncodeUsageInfoKHR;
12031
12032typedef struct VkVideoEncodeRateControlLayerInfoKHR {
12033 VkStructureType sType;
12034 const void* pNext;
12035 uint64_t averageBitrate;
12036 uint64_t maxBitrate;
12037 uint32_t frameRateNumerator;
12038 uint32_t frameRateDenominator;
12039} VkVideoEncodeRateControlLayerInfoKHR;
12040
12041typedef struct VkVideoEncodeRateControlInfoKHR {
12042 VkStructureType sType;
12043 const void* pNext;
12044 VkVideoEncodeRateControlFlagsKHR flags;
12045 VkVideoEncodeRateControlModeFlagBitsKHR rateControlMode;
12046 uint32_t layerCount;
12047 const VkVideoEncodeRateControlLayerInfoKHR* pLayers;
12048 uint32_t virtualBufferSizeInMs;
12049 uint32_t initialVirtualBufferSizeInMs;
12050} VkVideoEncodeRateControlInfoKHR;
12051
12052typedef struct VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR {
12053 VkStructureType sType;
12054 const void* pNext;
12055 const VkVideoProfileInfoKHR* pVideoProfile;
12056 uint32_t qualityLevel;
12057} VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR;
12058
12059typedef struct VkVideoEncodeQualityLevelPropertiesKHR {
12060 VkStructureType sType;
12061 void* pNext;
12062 VkVideoEncodeRateControlModeFlagBitsKHR preferredRateControlMode;
12063 uint32_t preferredRateControlLayerCount;
12064} VkVideoEncodeQualityLevelPropertiesKHR;
12065
12066typedef struct VkVideoEncodeQualityLevelInfoKHR {
12067 VkStructureType sType;
12068 const void* pNext;
12069 uint32_t qualityLevel;
12070} VkVideoEncodeQualityLevelInfoKHR;
12071
12072typedef struct VkVideoEncodeSessionParametersGetInfoKHR {
12073 VkStructureType sType;
12074 const void* pNext;
12075 VkVideoSessionParametersKHR videoSessionParameters;
12076} VkVideoEncodeSessionParametersGetInfoKHR;
12077
12078typedef struct VkVideoEncodeSessionParametersFeedbackInfoKHR {
12079 VkStructureType sType;
12080 void* pNext;
12081 VkBool32 hasOverrides;
12082} VkVideoEncodeSessionParametersFeedbackInfoKHR;
12083
12084typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* pQualityLevelInfo, VkVideoEncodeQualityLevelPropertiesKHR* pQualityLevelProperties);
12085typedef VkResult (VKAPI_PTR *PFN_vkGetEncodedVideoSessionParametersKHR)(VkDevice device, const VkVideoEncodeSessionParametersGetInfoKHR* pVideoSessionParametersInfo, VkVideoEncodeSessionParametersFeedbackInfoKHR* pFeedbackInfo, size_t* pDataSize, void* pData);
12086typedef void (VKAPI_PTR *PFN_vkCmdEncodeVideoKHR)(VkCommandBuffer commandBuffer, const VkVideoEncodeInfoKHR* pEncodeInfo);
12087
12088#ifndef VK_NO_PROTOTYPES
12089#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12090VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR(
12091 VkPhysicalDevice physicalDevice,
12092 const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR* pQualityLevelInfo,
12093 VkVideoEncodeQualityLevelPropertiesKHR* pQualityLevelProperties);
12094#endif
12095
12096#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12097VKAPI_ATTR VkResult VKAPI_CALL vkGetEncodedVideoSessionParametersKHR(
12098 VkDevice device,
12099 const VkVideoEncodeSessionParametersGetInfoKHR* pVideoSessionParametersInfo,
12100 VkVideoEncodeSessionParametersFeedbackInfoKHR* pFeedbackInfo,
12101 size_t* pDataSize,
12102 void* pData);
12103#endif
12104
12105#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12106VKAPI_ATTR void VKAPI_CALL vkCmdEncodeVideoKHR(
12107 VkCommandBuffer commandBuffer,
12108 const VkVideoEncodeInfoKHR* pEncodeInfo);
12109#endif
12110#endif
12111
12112
12113// VK_KHR_synchronization2 is a preprocessor guard. Do not pass it to API calls.
12114#define VK_KHR_synchronization2 1
12115#define VK_KHR_SYNCHRONIZATION_2_SPEC_VERSION 1
12116#define VK_KHR_SYNCHRONIZATION_2_EXTENSION_NAME "VK_KHR_synchronization2"
12117typedef VkPipelineStageFlags2 VkPipelineStageFlags2KHR;
12118
12119typedef VkPipelineStageFlagBits2 VkPipelineStageFlagBits2KHR;
12120
12121typedef VkAccessFlags2 VkAccessFlags2KHR;
12122
12123typedef VkAccessFlagBits2 VkAccessFlagBits2KHR;
12124
12125typedef VkSubmitFlagBits VkSubmitFlagBitsKHR;
12126
12127typedef VkSubmitFlags VkSubmitFlagsKHR;
12128
12129typedef VkMemoryBarrier2 VkMemoryBarrier2KHR;
12130
12131typedef VkBufferMemoryBarrier2 VkBufferMemoryBarrier2KHR;
12132
12133typedef VkImageMemoryBarrier2 VkImageMemoryBarrier2KHR;
12134
12135typedef VkDependencyInfo VkDependencyInfoKHR;
12136
12137typedef VkSubmitInfo2 VkSubmitInfo2KHR;
12138
12139typedef VkSemaphoreSubmitInfo VkSemaphoreSubmitInfoKHR;
12140
12141typedef VkCommandBufferSubmitInfo VkCommandBufferSubmitInfoKHR;
12142
12143typedef VkPhysicalDeviceSynchronization2Features VkPhysicalDeviceSynchronization2FeaturesKHR;
12144
12145typedef void (VKAPI_PTR *PFN_vkCmdSetEvent2KHR)(VkCommandBuffer commandBuffer, VkEvent event, const VkDependencyInfo* pDependencyInfo);
12146typedef void (VKAPI_PTR *PFN_vkCmdResetEvent2KHR)(VkCommandBuffer commandBuffer, VkEvent event, VkPipelineStageFlags2 stageMask);
12147typedef void (VKAPI_PTR *PFN_vkCmdWaitEvents2KHR)(VkCommandBuffer commandBuffer, uint32_t eventCount, const VkEvent* pEvents, const VkDependencyInfo* pDependencyInfos);
12148typedef void (VKAPI_PTR *PFN_vkCmdPipelineBarrier2KHR)(VkCommandBuffer commandBuffer, const VkDependencyInfo* pDependencyInfo);
12149typedef void (VKAPI_PTR *PFN_vkCmdWriteTimestamp2KHR)(VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkQueryPool queryPool, uint32_t query);
12150typedef VkResult (VKAPI_PTR *PFN_vkQueueSubmit2KHR)(VkQueue queue, uint32_t submitCount, const VkSubmitInfo2* pSubmits, VkFence fence);
12151
12152#ifndef VK_NO_PROTOTYPES
12153#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12154VKAPI_ATTR void VKAPI_CALL vkCmdSetEvent2KHR(
12155 VkCommandBuffer commandBuffer,
12156 VkEvent event,
12157 const VkDependencyInfo* pDependencyInfo);
12158#endif
12159
12160#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12161VKAPI_ATTR void VKAPI_CALL vkCmdResetEvent2KHR(
12162 VkCommandBuffer commandBuffer,
12163 VkEvent event,
12164 VkPipelineStageFlags2 stageMask);
12165#endif
12166
12167#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12168VKAPI_ATTR void VKAPI_CALL vkCmdWaitEvents2KHR(
12169 VkCommandBuffer commandBuffer,
12170 uint32_t eventCount,
12171 const VkEvent* pEvents,
12172 const VkDependencyInfo* pDependencyInfos);
12173#endif
12174
12175#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12176VKAPI_ATTR void VKAPI_CALL vkCmdPipelineBarrier2KHR(
12177 VkCommandBuffer commandBuffer,
12178 const VkDependencyInfo* pDependencyInfo);
12179#endif
12180
12181#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12182VKAPI_ATTR void VKAPI_CALL vkCmdWriteTimestamp2KHR(
12183 VkCommandBuffer commandBuffer,
12184 VkPipelineStageFlags2 stage,
12185 VkQueryPool queryPool,
12186 uint32_t query);
12187#endif
12188
12189#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12190VKAPI_ATTR VkResult VKAPI_CALL vkQueueSubmit2KHR(
12191 VkQueue queue,
12192 uint32_t submitCount,
12193 const VkSubmitInfo2* pSubmits,
12194 VkFence fence);
12195#endif
12196#endif
12197
12198
12199// VK_KHR_fragment_shader_barycentric is a preprocessor guard. Do not pass it to API calls.
12200#define VK_KHR_fragment_shader_barycentric 1
12201#define VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1
12202#define VK_KHR_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_KHR_fragment_shader_barycentric"
12203typedef struct VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR {
12204 VkStructureType sType;
12205 void* pNext;
12206 VkBool32 fragmentShaderBarycentric;
12207} VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR;
12208
12209typedef struct VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR {
12210 VkStructureType sType;
12211 void* pNext;
12212 VkBool32 triStripVertexOrderIndependentOfProvokingVertex;
12213} VkPhysicalDeviceFragmentShaderBarycentricPropertiesKHR;
12214
12215
12216
12217// VK_KHR_shader_subgroup_uniform_control_flow is a preprocessor guard. Do not pass it to API calls.
12218#define VK_KHR_shader_subgroup_uniform_control_flow 1
12219#define VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_SPEC_VERSION 1
12220#define VK_KHR_SHADER_SUBGROUP_UNIFORM_CONTROL_FLOW_EXTENSION_NAME "VK_KHR_shader_subgroup_uniform_control_flow"
12221typedef struct VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR {
12222 VkStructureType sType;
12223 void* pNext;
12224 VkBool32 shaderSubgroupUniformControlFlow;
12225} VkPhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR;
12226
12227
12228
12229// VK_KHR_zero_initialize_workgroup_memory is a preprocessor guard. Do not pass it to API calls.
12230#define VK_KHR_zero_initialize_workgroup_memory 1
12231#define VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_SPEC_VERSION 1
12232#define VK_KHR_ZERO_INITIALIZE_WORKGROUP_MEMORY_EXTENSION_NAME "VK_KHR_zero_initialize_workgroup_memory"
12233typedef VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeatures VkPhysicalDeviceZeroInitializeWorkgroupMemoryFeaturesKHR;
12234
12235
12236
12237// VK_KHR_workgroup_memory_explicit_layout is a preprocessor guard. Do not pass it to API calls.
12238#define VK_KHR_workgroup_memory_explicit_layout 1
12239#define VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_SPEC_VERSION 1
12240#define VK_KHR_WORKGROUP_MEMORY_EXPLICIT_LAYOUT_EXTENSION_NAME "VK_KHR_workgroup_memory_explicit_layout"
12241typedef struct VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR {
12242 VkStructureType sType;
12243 void* pNext;
12244 VkBool32 workgroupMemoryExplicitLayout;
12245 VkBool32 workgroupMemoryExplicitLayoutScalarBlockLayout;
12246 VkBool32 workgroupMemoryExplicitLayout8BitAccess;
12247 VkBool32 workgroupMemoryExplicitLayout16BitAccess;
12248} VkPhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR;
12249
12250
12251
12252// VK_KHR_copy_commands2 is a preprocessor guard. Do not pass it to API calls.
12253#define VK_KHR_copy_commands2 1
12254#define VK_KHR_COPY_COMMANDS_2_SPEC_VERSION 1
12255#define VK_KHR_COPY_COMMANDS_2_EXTENSION_NAME "VK_KHR_copy_commands2"
12256typedef VkCopyBufferInfo2 VkCopyBufferInfo2KHR;
12257
12258typedef VkCopyImageInfo2 VkCopyImageInfo2KHR;
12259
12260typedef VkCopyBufferToImageInfo2 VkCopyBufferToImageInfo2KHR;
12261
12262typedef VkCopyImageToBufferInfo2 VkCopyImageToBufferInfo2KHR;
12263
12264typedef VkBlitImageInfo2 VkBlitImageInfo2KHR;
12265
12266typedef VkResolveImageInfo2 VkResolveImageInfo2KHR;
12267
12268typedef VkBufferCopy2 VkBufferCopy2KHR;
12269
12270typedef VkImageCopy2 VkImageCopy2KHR;
12271
12272typedef VkImageBlit2 VkImageBlit2KHR;
12273
12274typedef VkBufferImageCopy2 VkBufferImageCopy2KHR;
12275
12276typedef VkImageResolve2 VkImageResolve2KHR;
12277
12278typedef void (VKAPI_PTR *PFN_vkCmdCopyBuffer2KHR)(VkCommandBuffer commandBuffer, const VkCopyBufferInfo2* pCopyBufferInfo);
12279typedef void (VKAPI_PTR *PFN_vkCmdCopyImage2KHR)(VkCommandBuffer commandBuffer, const VkCopyImageInfo2* pCopyImageInfo);
12280typedef void (VKAPI_PTR *PFN_vkCmdCopyBufferToImage2KHR)(VkCommandBuffer commandBuffer, const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo);
12281typedef void (VKAPI_PTR *PFN_vkCmdCopyImageToBuffer2KHR)(VkCommandBuffer commandBuffer, const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo);
12282typedef void (VKAPI_PTR *PFN_vkCmdBlitImage2KHR)(VkCommandBuffer commandBuffer, const VkBlitImageInfo2* pBlitImageInfo);
12283typedef void (VKAPI_PTR *PFN_vkCmdResolveImage2KHR)(VkCommandBuffer commandBuffer, const VkResolveImageInfo2* pResolveImageInfo);
12284
12285#ifndef VK_NO_PROTOTYPES
12286#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12287VKAPI_ATTR void VKAPI_CALL vkCmdCopyBuffer2KHR(
12288 VkCommandBuffer commandBuffer,
12289 const VkCopyBufferInfo2* pCopyBufferInfo);
12290#endif
12291
12292#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12293VKAPI_ATTR void VKAPI_CALL vkCmdCopyImage2KHR(
12294 VkCommandBuffer commandBuffer,
12295 const VkCopyImageInfo2* pCopyImageInfo);
12296#endif
12297
12298#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12299VKAPI_ATTR void VKAPI_CALL vkCmdCopyBufferToImage2KHR(
12300 VkCommandBuffer commandBuffer,
12301 const VkCopyBufferToImageInfo2* pCopyBufferToImageInfo);
12302#endif
12303
12304#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12305VKAPI_ATTR void VKAPI_CALL vkCmdCopyImageToBuffer2KHR(
12306 VkCommandBuffer commandBuffer,
12307 const VkCopyImageToBufferInfo2* pCopyImageToBufferInfo);
12308#endif
12309
12310#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12311VKAPI_ATTR void VKAPI_CALL vkCmdBlitImage2KHR(
12312 VkCommandBuffer commandBuffer,
12313 const VkBlitImageInfo2* pBlitImageInfo);
12314#endif
12315
12316#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12317VKAPI_ATTR void VKAPI_CALL vkCmdResolveImage2KHR(
12318 VkCommandBuffer commandBuffer,
12319 const VkResolveImageInfo2* pResolveImageInfo);
12320#endif
12321#endif
12322
12323
12324// VK_KHR_format_feature_flags2 is a preprocessor guard. Do not pass it to API calls.
12325#define VK_KHR_format_feature_flags2 1
12326#define VK_KHR_FORMAT_FEATURE_FLAGS_2_SPEC_VERSION 2
12327#define VK_KHR_FORMAT_FEATURE_FLAGS_2_EXTENSION_NAME "VK_KHR_format_feature_flags2"
12328typedef VkFormatFeatureFlags2 VkFormatFeatureFlags2KHR;
12329
12330typedef VkFormatFeatureFlagBits2 VkFormatFeatureFlagBits2KHR;
12331
12332typedef VkFormatProperties3 VkFormatProperties3KHR;
12333
12334
12335
12336// VK_KHR_ray_tracing_maintenance1 is a preprocessor guard. Do not pass it to API calls.
12337#define VK_KHR_ray_tracing_maintenance1 1
12338#define VK_KHR_RAY_TRACING_MAINTENANCE_1_SPEC_VERSION 1
12339#define VK_KHR_RAY_TRACING_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_ray_tracing_maintenance1"
12340typedef struct VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR {
12341 VkStructureType sType;
12342 void* pNext;
12343 VkBool32 rayTracingMaintenance1;
12344 VkBool32 rayTracingPipelineTraceRaysIndirect2;
12345} VkPhysicalDeviceRayTracingMaintenance1FeaturesKHR;
12346
12347typedef struct VkTraceRaysIndirectCommand2KHR {
12348 VkDeviceAddress raygenShaderRecordAddress;
12349 VkDeviceSize raygenShaderRecordSize;
12350 VkDeviceAddress missShaderBindingTableAddress;
12351 VkDeviceSize missShaderBindingTableSize;
12352 VkDeviceSize missShaderBindingTableStride;
12353 VkDeviceAddress hitShaderBindingTableAddress;
12354 VkDeviceSize hitShaderBindingTableSize;
12355 VkDeviceSize hitShaderBindingTableStride;
12356 VkDeviceAddress callableShaderBindingTableAddress;
12357 VkDeviceSize callableShaderBindingTableSize;
12358 VkDeviceSize callableShaderBindingTableStride;
12359 uint32_t width;
12360 uint32_t height;
12361 uint32_t depth;
12362} VkTraceRaysIndirectCommand2KHR;
12363
12364typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysIndirect2KHR)(VkCommandBuffer commandBuffer, VkDeviceAddress indirectDeviceAddress);
12365
12366#ifndef VK_NO_PROTOTYPES
12367#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12368VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysIndirect2KHR(
12369 VkCommandBuffer commandBuffer,
12370 VkDeviceAddress indirectDeviceAddress);
12371#endif
12372#endif
12373
12374
12375// VK_KHR_shader_untyped_pointers is a preprocessor guard. Do not pass it to API calls.
12376#define VK_KHR_shader_untyped_pointers 1
12377#define VK_KHR_SHADER_UNTYPED_POINTERS_SPEC_VERSION 1
12378#define VK_KHR_SHADER_UNTYPED_POINTERS_EXTENSION_NAME "VK_KHR_shader_untyped_pointers"
12379typedef struct VkPhysicalDeviceShaderUntypedPointersFeaturesKHR {
12380 VkStructureType sType;
12381 void* pNext;
12382 VkBool32 shaderUntypedPointers;
12383} VkPhysicalDeviceShaderUntypedPointersFeaturesKHR;
12384
12385
12386
12387// VK_KHR_portability_enumeration is a preprocessor guard. Do not pass it to API calls.
12388#define VK_KHR_portability_enumeration 1
12389#define VK_KHR_PORTABILITY_ENUMERATION_SPEC_VERSION 1
12390#define VK_KHR_PORTABILITY_ENUMERATION_EXTENSION_NAME "VK_KHR_portability_enumeration"
12391
12392
12393// VK_KHR_maintenance4 is a preprocessor guard. Do not pass it to API calls.
12394#define VK_KHR_maintenance4 1
12395#define VK_KHR_MAINTENANCE_4_SPEC_VERSION 2
12396#define VK_KHR_MAINTENANCE_4_EXTENSION_NAME "VK_KHR_maintenance4"
12397typedef VkPhysicalDeviceMaintenance4Features VkPhysicalDeviceMaintenance4FeaturesKHR;
12398
12399typedef VkPhysicalDeviceMaintenance4Properties VkPhysicalDeviceMaintenance4PropertiesKHR;
12400
12401typedef VkDeviceBufferMemoryRequirements VkDeviceBufferMemoryRequirementsKHR;
12402
12403typedef VkDeviceImageMemoryRequirements VkDeviceImageMemoryRequirementsKHR;
12404
12405typedef void (VKAPI_PTR *PFN_vkGetDeviceBufferMemoryRequirementsKHR)(VkDevice device, const VkDeviceBufferMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
12406typedef void (VKAPI_PTR *PFN_vkGetDeviceImageMemoryRequirementsKHR)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, VkMemoryRequirements2* pMemoryRequirements);
12407typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSparseMemoryRequirementsKHR)(VkDevice device, const VkDeviceImageMemoryRequirements* pInfo, uint32_t* pSparseMemoryRequirementCount, VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
12408
12409#ifndef VK_NO_PROTOTYPES
12410#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12411VKAPI_ATTR void VKAPI_CALL vkGetDeviceBufferMemoryRequirementsKHR(
12412 VkDevice device,
12413 const VkDeviceBufferMemoryRequirements* pInfo,
12414 VkMemoryRequirements2* pMemoryRequirements);
12415#endif
12416
12417#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12418VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageMemoryRequirementsKHR(
12419 VkDevice device,
12420 const VkDeviceImageMemoryRequirements* pInfo,
12421 VkMemoryRequirements2* pMemoryRequirements);
12422#endif
12423
12424#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12425VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSparseMemoryRequirementsKHR(
12426 VkDevice device,
12427 const VkDeviceImageMemoryRequirements* pInfo,
12428 uint32_t* pSparseMemoryRequirementCount,
12429 VkSparseImageMemoryRequirements2* pSparseMemoryRequirements);
12430#endif
12431#endif
12432
12433
12434// VK_KHR_shader_subgroup_rotate is a preprocessor guard. Do not pass it to API calls.
12435#define VK_KHR_shader_subgroup_rotate 1
12436#define VK_KHR_SHADER_SUBGROUP_ROTATE_SPEC_VERSION 2
12437#define VK_KHR_SHADER_SUBGROUP_ROTATE_EXTENSION_NAME "VK_KHR_shader_subgroup_rotate"
12438typedef VkPhysicalDeviceShaderSubgroupRotateFeatures VkPhysicalDeviceShaderSubgroupRotateFeaturesKHR;
12439
12440
12441
12442// VK_KHR_shader_maximal_reconvergence is a preprocessor guard. Do not pass it to API calls.
12443#define VK_KHR_shader_maximal_reconvergence 1
12444#define VK_KHR_SHADER_MAXIMAL_RECONVERGENCE_SPEC_VERSION 1
12445#define VK_KHR_SHADER_MAXIMAL_RECONVERGENCE_EXTENSION_NAME "VK_KHR_shader_maximal_reconvergence"
12446typedef struct VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR {
12447 VkStructureType sType;
12448 void* pNext;
12449 VkBool32 shaderMaximalReconvergence;
12450} VkPhysicalDeviceShaderMaximalReconvergenceFeaturesKHR;
12451
12452
12453
12454// VK_KHR_maintenance5 is a preprocessor guard. Do not pass it to API calls.
12455#define VK_KHR_maintenance5 1
12456#define VK_KHR_MAINTENANCE_5_SPEC_VERSION 1
12457#define VK_KHR_MAINTENANCE_5_EXTENSION_NAME "VK_KHR_maintenance5"
12458typedef VkPipelineCreateFlags2 VkPipelineCreateFlags2KHR;
12459
12460typedef VkPipelineCreateFlagBits2 VkPipelineCreateFlagBits2KHR;
12461
12462typedef VkBufferUsageFlags2 VkBufferUsageFlags2KHR;
12463
12464typedef VkBufferUsageFlagBits2 VkBufferUsageFlagBits2KHR;
12465
12466typedef VkPhysicalDeviceMaintenance5Features VkPhysicalDeviceMaintenance5FeaturesKHR;
12467
12468typedef VkPhysicalDeviceMaintenance5Properties VkPhysicalDeviceMaintenance5PropertiesKHR;
12469
12470typedef VkRenderingAreaInfo VkRenderingAreaInfoKHR;
12471
12472typedef VkDeviceImageSubresourceInfo VkDeviceImageSubresourceInfoKHR;
12473
12474typedef VkImageSubresource2 VkImageSubresource2KHR;
12475
12476typedef VkSubresourceLayout2 VkSubresourceLayout2KHR;
12477
12478typedef VkPipelineCreateFlags2CreateInfo VkPipelineCreateFlags2CreateInfoKHR;
12479
12480typedef VkBufferUsageFlags2CreateInfo VkBufferUsageFlags2CreateInfoKHR;
12481
12482typedef void (VKAPI_PTR *PFN_vkCmdBindIndexBuffer2KHR)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkDeviceSize size, VkIndexType indexType);
12483typedef void (VKAPI_PTR *PFN_vkGetRenderingAreaGranularityKHR)(VkDevice device, const VkRenderingAreaInfo* pRenderingAreaInfo, VkExtent2D* pGranularity);
12484typedef void (VKAPI_PTR *PFN_vkGetDeviceImageSubresourceLayoutKHR)(VkDevice device, const VkDeviceImageSubresourceInfo* pInfo, VkSubresourceLayout2* pLayout);
12485typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout2KHR)(VkDevice device, VkImage image, const VkImageSubresource2* pSubresource, VkSubresourceLayout2* pLayout);
12486
12487#ifndef VK_NO_PROTOTYPES
12488#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12489VKAPI_ATTR void VKAPI_CALL vkCmdBindIndexBuffer2KHR(
12490 VkCommandBuffer commandBuffer,
12491 VkBuffer buffer,
12492 VkDeviceSize offset,
12493 VkDeviceSize size,
12494 VkIndexType indexType);
12495#endif
12496
12497#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12498VKAPI_ATTR void VKAPI_CALL vkGetRenderingAreaGranularityKHR(
12499 VkDevice device,
12500 const VkRenderingAreaInfo* pRenderingAreaInfo,
12501 VkExtent2D* pGranularity);
12502#endif
12503
12504#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12505VKAPI_ATTR void VKAPI_CALL vkGetDeviceImageSubresourceLayoutKHR(
12506 VkDevice device,
12507 const VkDeviceImageSubresourceInfo* pInfo,
12508 VkSubresourceLayout2* pLayout);
12509#endif
12510
12511#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12512VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout2KHR(
12513 VkDevice device,
12514 VkImage image,
12515 const VkImageSubresource2* pSubresource,
12516 VkSubresourceLayout2* pLayout);
12517#endif
12518#endif
12519
12520
12521// VK_KHR_present_id2 is a preprocessor guard. Do not pass it to API calls.
12522#define VK_KHR_present_id2 1
12523#define VK_KHR_PRESENT_ID_2_SPEC_VERSION 1
12524#define VK_KHR_PRESENT_ID_2_EXTENSION_NAME "VK_KHR_present_id2"
12525typedef struct VkSurfaceCapabilitiesPresentId2KHR {
12526 VkStructureType sType;
12527 void* pNext;
12528 VkBool32 presentId2Supported;
12529} VkSurfaceCapabilitiesPresentId2KHR;
12530
12531typedef struct VkPresentId2KHR {
12532 VkStructureType sType;
12533 const void* pNext;
12534 uint32_t swapchainCount;
12535 const uint64_t* pPresentIds;
12536} VkPresentId2KHR;
12537
12538typedef struct VkPhysicalDevicePresentId2FeaturesKHR {
12539 VkStructureType sType;
12540 void* pNext;
12541 VkBool32 presentId2;
12542} VkPhysicalDevicePresentId2FeaturesKHR;
12543
12544
12545
12546// VK_KHR_present_wait2 is a preprocessor guard. Do not pass it to API calls.
12547#define VK_KHR_present_wait2 1
12548#define VK_KHR_PRESENT_WAIT_2_SPEC_VERSION 1
12549#define VK_KHR_PRESENT_WAIT_2_EXTENSION_NAME "VK_KHR_present_wait2"
12550typedef struct VkSurfaceCapabilitiesPresentWait2KHR {
12551 VkStructureType sType;
12552 void* pNext;
12553 VkBool32 presentWait2Supported;
12554} VkSurfaceCapabilitiesPresentWait2KHR;
12555
12556typedef struct VkPhysicalDevicePresentWait2FeaturesKHR {
12557 VkStructureType sType;
12558 void* pNext;
12559 VkBool32 presentWait2;
12560} VkPhysicalDevicePresentWait2FeaturesKHR;
12561
12562typedef struct VkPresentWait2InfoKHR {
12563 VkStructureType sType;
12564 const void* pNext;
12565 uint64_t presentId;
12566 uint64_t timeout;
12567} VkPresentWait2InfoKHR;
12568
12569typedef VkResult (VKAPI_PTR *PFN_vkWaitForPresent2KHR)(VkDevice device, VkSwapchainKHR swapchain, const VkPresentWait2InfoKHR* pPresentWait2Info);
12570
12571#ifndef VK_NO_PROTOTYPES
12572#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12573VKAPI_ATTR VkResult VKAPI_CALL vkWaitForPresent2KHR(
12574 VkDevice device,
12575 VkSwapchainKHR swapchain,
12576 const VkPresentWait2InfoKHR* pPresentWait2Info);
12577#endif
12578#endif
12579
12580
12581// VK_KHR_ray_tracing_position_fetch is a preprocessor guard. Do not pass it to API calls.
12582#define VK_KHR_ray_tracing_position_fetch 1
12583#define VK_KHR_RAY_TRACING_POSITION_FETCH_SPEC_VERSION 1
12584#define VK_KHR_RAY_TRACING_POSITION_FETCH_EXTENSION_NAME "VK_KHR_ray_tracing_position_fetch"
12585typedef struct VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR {
12586 VkStructureType sType;
12587 void* pNext;
12588 VkBool32 rayTracingPositionFetch;
12589} VkPhysicalDeviceRayTracingPositionFetchFeaturesKHR;
12590
12591
12592
12593// VK_KHR_pipeline_binary is a preprocessor guard. Do not pass it to API calls.
12594#define VK_KHR_pipeline_binary 1
12595VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPipelineBinaryKHR)
12596#define VK_MAX_PIPELINE_BINARY_KEY_SIZE_KHR 32U
12597#define VK_KHR_PIPELINE_BINARY_SPEC_VERSION 1
12598#define VK_KHR_PIPELINE_BINARY_EXTENSION_NAME "VK_KHR_pipeline_binary"
12599typedef struct VkPhysicalDevicePipelineBinaryFeaturesKHR {
12600 VkStructureType sType;
12601 void* pNext;
12602 VkBool32 pipelineBinaries;
12603} VkPhysicalDevicePipelineBinaryFeaturesKHR;
12604
12605typedef struct VkPhysicalDevicePipelineBinaryPropertiesKHR {
12606 VkStructureType sType;
12607 void* pNext;
12608 VkBool32 pipelineBinaryInternalCache;
12609 VkBool32 pipelineBinaryInternalCacheControl;
12610 VkBool32 pipelineBinaryPrefersInternalCache;
12611 VkBool32 pipelineBinaryPrecompiledInternalCache;
12612 VkBool32 pipelineBinaryCompressedData;
12613} VkPhysicalDevicePipelineBinaryPropertiesKHR;
12614
12615typedef struct VkDevicePipelineBinaryInternalCacheControlKHR {
12616 VkStructureType sType;
12617 const void* pNext;
12618 VkBool32 disableInternalCache;
12619} VkDevicePipelineBinaryInternalCacheControlKHR;
12620
12621typedef struct VkPipelineBinaryKeyKHR {
12622 VkStructureType sType;
12623 void* pNext;
12624 uint32_t keySize;
12625 uint8_t key[VK_MAX_PIPELINE_BINARY_KEY_SIZE_KHR];
12626} VkPipelineBinaryKeyKHR;
12627
12628typedef struct VkPipelineBinaryDataKHR {
12629 size_t dataSize;
12630 void* pData;
12631} VkPipelineBinaryDataKHR;
12632
12633typedef struct VkPipelineBinaryKeysAndDataKHR {
12634 uint32_t binaryCount;
12635 const VkPipelineBinaryKeyKHR* pPipelineBinaryKeys;
12636 const VkPipelineBinaryDataKHR* pPipelineBinaryData;
12637} VkPipelineBinaryKeysAndDataKHR;
12638
12639typedef struct VkPipelineCreateInfoKHR {
12640 VkStructureType sType;
12641 void* pNext;
12642} VkPipelineCreateInfoKHR;
12643
12644typedef struct VkPipelineBinaryCreateInfoKHR {
12645 VkStructureType sType;
12646 const void* pNext;
12647 const VkPipelineBinaryKeysAndDataKHR* pKeysAndDataInfo;
12648 VkPipeline pipeline;
12649 const VkPipelineCreateInfoKHR* pPipelineCreateInfo;
12650} VkPipelineBinaryCreateInfoKHR;
12651
12652typedef struct VkPipelineBinaryInfoKHR {
12653 VkStructureType sType;
12654 const void* pNext;
12655 uint32_t binaryCount;
12656 const VkPipelineBinaryKHR* pPipelineBinaries;
12657} VkPipelineBinaryInfoKHR;
12658
12659typedef struct VkReleaseCapturedPipelineDataInfoKHR {
12660 VkStructureType sType;
12661 void* pNext;
12662 VkPipeline pipeline;
12663} VkReleaseCapturedPipelineDataInfoKHR;
12664
12665typedef struct VkPipelineBinaryDataInfoKHR {
12666 VkStructureType sType;
12667 void* pNext;
12668 VkPipelineBinaryKHR pipelineBinary;
12669} VkPipelineBinaryDataInfoKHR;
12670
12671typedef struct VkPipelineBinaryHandlesInfoKHR {
12672 VkStructureType sType;
12673 const void* pNext;
12674 uint32_t pipelineBinaryCount;
12675 VkPipelineBinaryKHR* pPipelineBinaries;
12676} VkPipelineBinaryHandlesInfoKHR;
12677
12678typedef VkResult (VKAPI_PTR *PFN_vkCreatePipelineBinariesKHR)(VkDevice device, const VkPipelineBinaryCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPipelineBinaryHandlesInfoKHR* pBinaries);
12679typedef void (VKAPI_PTR *PFN_vkDestroyPipelineBinaryKHR)(VkDevice device, VkPipelineBinaryKHR pipelineBinary, const VkAllocationCallbacks* pAllocator);
12680typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineKeyKHR)(VkDevice device, const VkPipelineCreateInfoKHR* pPipelineCreateInfo, VkPipelineBinaryKeyKHR* pPipelineKey);
12681typedef VkResult (VKAPI_PTR *PFN_vkGetPipelineBinaryDataKHR)(VkDevice device, const VkPipelineBinaryDataInfoKHR* pInfo, VkPipelineBinaryKeyKHR* pPipelineBinaryKey, size_t* pPipelineBinaryDataSize, void* pPipelineBinaryData);
12682typedef VkResult (VKAPI_PTR *PFN_vkReleaseCapturedPipelineDataKHR)(VkDevice device, const VkReleaseCapturedPipelineDataInfoKHR* pInfo, const VkAllocationCallbacks* pAllocator);
12683
12684#ifndef VK_NO_PROTOTYPES
12685#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12686VKAPI_ATTR VkResult VKAPI_CALL vkCreatePipelineBinariesKHR(
12687 VkDevice device,
12688 const VkPipelineBinaryCreateInfoKHR* pCreateInfo,
12689 const VkAllocationCallbacks* pAllocator,
12690 VkPipelineBinaryHandlesInfoKHR* pBinaries);
12691#endif
12692
12693#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12694VKAPI_ATTR void VKAPI_CALL vkDestroyPipelineBinaryKHR(
12695 VkDevice device,
12696 VkPipelineBinaryKHR pipelineBinary,
12697 const VkAllocationCallbacks* pAllocator);
12698#endif
12699
12700#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12701VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineKeyKHR(
12702 VkDevice device,
12703 const VkPipelineCreateInfoKHR* pPipelineCreateInfo,
12704 VkPipelineBinaryKeyKHR* pPipelineKey);
12705#endif
12706
12707#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12708VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelineBinaryDataKHR(
12709 VkDevice device,
12710 const VkPipelineBinaryDataInfoKHR* pInfo,
12711 VkPipelineBinaryKeyKHR* pPipelineBinaryKey,
12712 size_t* pPipelineBinaryDataSize,
12713 void* pPipelineBinaryData);
12714#endif
12715
12716#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12717VKAPI_ATTR VkResult VKAPI_CALL vkReleaseCapturedPipelineDataKHR(
12718 VkDevice device,
12719 const VkReleaseCapturedPipelineDataInfoKHR* pInfo,
12720 const VkAllocationCallbacks* pAllocator);
12721#endif
12722#endif
12723
12724
12725// VK_KHR_surface_maintenance1 is a preprocessor guard. Do not pass it to API calls.
12726#define VK_KHR_surface_maintenance1 1
12727#define VK_KHR_SURFACE_MAINTENANCE_1_SPEC_VERSION 1
12728#define VK_KHR_SURFACE_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_surface_maintenance1"
12729
12730typedef enum VkPresentScalingFlagBitsKHR {
12731 VK_PRESENT_SCALING_ONE_TO_ONE_BIT_KHR = 0x00000001,
12732 VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_KHR = 0x00000002,
12733 VK_PRESENT_SCALING_STRETCH_BIT_KHR = 0x00000004,
12734 VK_PRESENT_SCALING_ONE_TO_ONE_BIT_EXT = VK_PRESENT_SCALING_ONE_TO_ONE_BIT_KHR,
12735 VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_EXT = VK_PRESENT_SCALING_ASPECT_RATIO_STRETCH_BIT_KHR,
12736 VK_PRESENT_SCALING_STRETCH_BIT_EXT = VK_PRESENT_SCALING_STRETCH_BIT_KHR,
12737 VK_PRESENT_SCALING_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
12738} VkPresentScalingFlagBitsKHR;
12739typedef VkFlags VkPresentScalingFlagsKHR;
12740
12741typedef enum VkPresentGravityFlagBitsKHR {
12742 VK_PRESENT_GRAVITY_MIN_BIT_KHR = 0x00000001,
12743 VK_PRESENT_GRAVITY_MAX_BIT_KHR = 0x00000002,
12744 VK_PRESENT_GRAVITY_CENTERED_BIT_KHR = 0x00000004,
12745 VK_PRESENT_GRAVITY_MIN_BIT_EXT = VK_PRESENT_GRAVITY_MIN_BIT_KHR,
12746 VK_PRESENT_GRAVITY_MAX_BIT_EXT = VK_PRESENT_GRAVITY_MAX_BIT_KHR,
12747 VK_PRESENT_GRAVITY_CENTERED_BIT_EXT = VK_PRESENT_GRAVITY_CENTERED_BIT_KHR,
12748 VK_PRESENT_GRAVITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
12749} VkPresentGravityFlagBitsKHR;
12750typedef VkFlags VkPresentGravityFlagsKHR;
12751typedef struct VkSurfacePresentModeKHR {
12752 VkStructureType sType;
12753 void* pNext;
12754 VkPresentModeKHR presentMode;
12755} VkSurfacePresentModeKHR;
12756
12757typedef struct VkSurfacePresentScalingCapabilitiesKHR {
12758 VkStructureType sType;
12759 void* pNext;
12760 VkPresentScalingFlagsKHR supportedPresentScaling;
12761 VkPresentGravityFlagsKHR supportedPresentGravityX;
12762 VkPresentGravityFlagsKHR supportedPresentGravityY;
12763 VkExtent2D minScaledImageExtent;
12764 VkExtent2D maxScaledImageExtent;
12765} VkSurfacePresentScalingCapabilitiesKHR;
12766
12767typedef struct VkSurfacePresentModeCompatibilityKHR {
12768 VkStructureType sType;
12769 void* pNext;
12770 uint32_t presentModeCount;
12771 VkPresentModeKHR* pPresentModes;
12772} VkSurfacePresentModeCompatibilityKHR;
12773
12774
12775
12776// VK_KHR_swapchain_maintenance1 is a preprocessor guard. Do not pass it to API calls.
12777#define VK_KHR_swapchain_maintenance1 1
12778#define VK_KHR_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION 1
12779#define VK_KHR_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_swapchain_maintenance1"
12780typedef struct VkPhysicalDeviceSwapchainMaintenance1FeaturesKHR {
12781 VkStructureType sType;
12782 void* pNext;
12783 VkBool32 swapchainMaintenance1;
12784} VkPhysicalDeviceSwapchainMaintenance1FeaturesKHR;
12785
12786typedef struct VkSwapchainPresentFenceInfoKHR {
12787 VkStructureType sType;
12788 const void* pNext;
12789 uint32_t swapchainCount;
12790 const VkFence* pFences;
12791} VkSwapchainPresentFenceInfoKHR;
12792
12793typedef struct VkSwapchainPresentModesCreateInfoKHR {
12794 VkStructureType sType;
12795 const void* pNext;
12796 uint32_t presentModeCount;
12797 const VkPresentModeKHR* pPresentModes;
12798} VkSwapchainPresentModesCreateInfoKHR;
12799
12800typedef struct VkSwapchainPresentModeInfoKHR {
12801 VkStructureType sType;
12802 const void* pNext;
12803 uint32_t swapchainCount;
12804 const VkPresentModeKHR* pPresentModes;
12805} VkSwapchainPresentModeInfoKHR;
12806
12807typedef struct VkSwapchainPresentScalingCreateInfoKHR {
12808 VkStructureType sType;
12809 const void* pNext;
12810 VkPresentScalingFlagsKHR scalingBehavior;
12811 VkPresentGravityFlagsKHR presentGravityX;
12812 VkPresentGravityFlagsKHR presentGravityY;
12813} VkSwapchainPresentScalingCreateInfoKHR;
12814
12815typedef struct VkReleaseSwapchainImagesInfoKHR {
12816 VkStructureType sType;
12817 const void* pNext;
12818 VkSwapchainKHR swapchain;
12819 uint32_t imageIndexCount;
12820 const uint32_t* pImageIndices;
12821} VkReleaseSwapchainImagesInfoKHR;
12822
12823typedef VkResult (VKAPI_PTR *PFN_vkReleaseSwapchainImagesKHR)(VkDevice device, const VkReleaseSwapchainImagesInfoKHR* pReleaseInfo);
12824
12825#ifndef VK_NO_PROTOTYPES
12826#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12827VKAPI_ATTR VkResult VKAPI_CALL vkReleaseSwapchainImagesKHR(
12828 VkDevice device,
12829 const VkReleaseSwapchainImagesInfoKHR* pReleaseInfo);
12830#endif
12831#endif
12832
12833
12834// VK_KHR_cooperative_matrix is a preprocessor guard. Do not pass it to API calls.
12835#define VK_KHR_cooperative_matrix 1
12836#define VK_KHR_COOPERATIVE_MATRIX_SPEC_VERSION 2
12837#define VK_KHR_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_KHR_cooperative_matrix"
12838
12839typedef enum VkComponentTypeKHR {
12840 VK_COMPONENT_TYPE_FLOAT16_KHR = 0,
12841 VK_COMPONENT_TYPE_FLOAT32_KHR = 1,
12842 VK_COMPONENT_TYPE_FLOAT64_KHR = 2,
12843 VK_COMPONENT_TYPE_SINT8_KHR = 3,
12844 VK_COMPONENT_TYPE_SINT16_KHR = 4,
12845 VK_COMPONENT_TYPE_SINT32_KHR = 5,
12846 VK_COMPONENT_TYPE_SINT64_KHR = 6,
12847 VK_COMPONENT_TYPE_UINT8_KHR = 7,
12848 VK_COMPONENT_TYPE_UINT16_KHR = 8,
12849 VK_COMPONENT_TYPE_UINT32_KHR = 9,
12850 VK_COMPONENT_TYPE_UINT64_KHR = 10,
12851 VK_COMPONENT_TYPE_BFLOAT16_KHR = 1000141000,
12852 VK_COMPONENT_TYPE_SINT8_PACKED_NV = 1000491000,
12853 VK_COMPONENT_TYPE_UINT8_PACKED_NV = 1000491001,
12854 VK_COMPONENT_TYPE_FLOAT8_E4M3_EXT = 1000491002,
12855 VK_COMPONENT_TYPE_FLOAT8_E5M2_EXT = 1000491003,
12856 VK_COMPONENT_TYPE_FLOAT16_NV = VK_COMPONENT_TYPE_FLOAT16_KHR,
12857 VK_COMPONENT_TYPE_FLOAT32_NV = VK_COMPONENT_TYPE_FLOAT32_KHR,
12858 VK_COMPONENT_TYPE_FLOAT64_NV = VK_COMPONENT_TYPE_FLOAT64_KHR,
12859 VK_COMPONENT_TYPE_SINT8_NV = VK_COMPONENT_TYPE_SINT8_KHR,
12860 VK_COMPONENT_TYPE_SINT16_NV = VK_COMPONENT_TYPE_SINT16_KHR,
12861 VK_COMPONENT_TYPE_SINT32_NV = VK_COMPONENT_TYPE_SINT32_KHR,
12862 VK_COMPONENT_TYPE_SINT64_NV = VK_COMPONENT_TYPE_SINT64_KHR,
12863 VK_COMPONENT_TYPE_UINT8_NV = VK_COMPONENT_TYPE_UINT8_KHR,
12864 VK_COMPONENT_TYPE_UINT16_NV = VK_COMPONENT_TYPE_UINT16_KHR,
12865 VK_COMPONENT_TYPE_UINT32_NV = VK_COMPONENT_TYPE_UINT32_KHR,
12866 VK_COMPONENT_TYPE_UINT64_NV = VK_COMPONENT_TYPE_UINT64_KHR,
12867 VK_COMPONENT_TYPE_FLOAT_E4M3_NV = VK_COMPONENT_TYPE_FLOAT8_E4M3_EXT,
12868 VK_COMPONENT_TYPE_FLOAT_E5M2_NV = VK_COMPONENT_TYPE_FLOAT8_E5M2_EXT,
12869 VK_COMPONENT_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
12870} VkComponentTypeKHR;
12871
12872typedef enum VkScopeKHR {
12873 VK_SCOPE_DEVICE_KHR = 1,
12874 VK_SCOPE_WORKGROUP_KHR = 2,
12875 VK_SCOPE_SUBGROUP_KHR = 3,
12876 VK_SCOPE_QUEUE_FAMILY_KHR = 5,
12877 VK_SCOPE_DEVICE_NV = VK_SCOPE_DEVICE_KHR,
12878 VK_SCOPE_WORKGROUP_NV = VK_SCOPE_WORKGROUP_KHR,
12879 VK_SCOPE_SUBGROUP_NV = VK_SCOPE_SUBGROUP_KHR,
12880 VK_SCOPE_QUEUE_FAMILY_NV = VK_SCOPE_QUEUE_FAMILY_KHR,
12881 VK_SCOPE_MAX_ENUM_KHR = 0x7FFFFFFF
12882} VkScopeKHR;
12883typedef struct VkCooperativeMatrixPropertiesKHR {
12884 VkStructureType sType;
12885 void* pNext;
12886 uint32_t MSize;
12887 uint32_t NSize;
12888 uint32_t KSize;
12889 VkComponentTypeKHR AType;
12890 VkComponentTypeKHR BType;
12891 VkComponentTypeKHR CType;
12892 VkComponentTypeKHR ResultType;
12893 VkBool32 saturatingAccumulation;
12894 VkScopeKHR scope;
12895} VkCooperativeMatrixPropertiesKHR;
12896
12897typedef struct VkPhysicalDeviceCooperativeMatrixFeaturesKHR {
12898 VkStructureType sType;
12899 void* pNext;
12900 VkBool32 cooperativeMatrix;
12901 VkBool32 cooperativeMatrixRobustBufferAccess;
12902} VkPhysicalDeviceCooperativeMatrixFeaturesKHR;
12903
12904typedef struct VkPhysicalDeviceCooperativeMatrixPropertiesKHR {
12905 VkStructureType sType;
12906 void* pNext;
12907 VkShaderStageFlags cooperativeMatrixSupportedStages;
12908} VkPhysicalDeviceCooperativeMatrixPropertiesKHR;
12909
12910typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesKHR* pProperties);
12911
12912#ifndef VK_NO_PROTOTYPES
12913#ifndef VK_ONLY_EXPORTED_PROTOTYPES
12914VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR(
12915 VkPhysicalDevice physicalDevice,
12916 uint32_t* pPropertyCount,
12917 VkCooperativeMatrixPropertiesKHR* pProperties);
12918#endif
12919#endif
12920
12921
12922// VK_KHR_compute_shader_derivatives is a preprocessor guard. Do not pass it to API calls.
12923#define VK_KHR_compute_shader_derivatives 1
12924#define VK_KHR_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION 1
12925#define VK_KHR_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_KHR_compute_shader_derivatives"
12926typedef struct VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR {
12927 VkStructureType sType;
12928 void* pNext;
12929 VkBool32 computeDerivativeGroupQuads;
12930 VkBool32 computeDerivativeGroupLinear;
12931} VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR;
12932
12933typedef struct VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR {
12934 VkStructureType sType;
12935 void* pNext;
12936 VkBool32 meshAndTaskShaderDerivatives;
12937} VkPhysicalDeviceComputeShaderDerivativesPropertiesKHR;
12938
12939
12940
12941// VK_KHR_video_decode_av1 is a preprocessor guard. Do not pass it to API calls.
12942#define VK_KHR_video_decode_av1 1
12943#include "vk_video/vulkan_video_codec_av1std.h"
12944#include "vk_video/vulkan_video_codec_av1std_decode.h"
12945#define VK_MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR 7U
12946#define VK_KHR_VIDEO_DECODE_AV1_SPEC_VERSION 1
12947#define VK_KHR_VIDEO_DECODE_AV1_EXTENSION_NAME "VK_KHR_video_decode_av1"
12948typedef struct VkVideoDecodeAV1ProfileInfoKHR {
12949 VkStructureType sType;
12950 const void* pNext;
12951 StdVideoAV1Profile stdProfile;
12952 VkBool32 filmGrainSupport;
12953} VkVideoDecodeAV1ProfileInfoKHR;
12954
12955typedef struct VkVideoDecodeAV1CapabilitiesKHR {
12956 VkStructureType sType;
12957 void* pNext;
12958 StdVideoAV1Level maxLevel;
12959} VkVideoDecodeAV1CapabilitiesKHR;
12960
12961typedef struct VkVideoDecodeAV1SessionParametersCreateInfoKHR {
12962 VkStructureType sType;
12963 const void* pNext;
12964 const StdVideoAV1SequenceHeader* pStdSequenceHeader;
12965} VkVideoDecodeAV1SessionParametersCreateInfoKHR;
12966
12967typedef struct VkVideoDecodeAV1PictureInfoKHR {
12968 VkStructureType sType;
12969 const void* pNext;
12970 const StdVideoDecodeAV1PictureInfo* pStdPictureInfo;
12971 int32_t referenceNameSlotIndices[VK_MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR];
12972 uint32_t frameHeaderOffset;
12973 uint32_t tileCount;
12974 const uint32_t* pTileOffsets;
12975 const uint32_t* pTileSizes;
12976} VkVideoDecodeAV1PictureInfoKHR;
12977
12978typedef struct VkVideoDecodeAV1DpbSlotInfoKHR {
12979 VkStructureType sType;
12980 const void* pNext;
12981 const StdVideoDecodeAV1ReferenceInfo* pStdReferenceInfo;
12982} VkVideoDecodeAV1DpbSlotInfoKHR;
12983
12984
12985
12986// VK_KHR_video_encode_av1 is a preprocessor guard. Do not pass it to API calls.
12987#define VK_KHR_video_encode_av1 1
12988#include "vk_video/vulkan_video_codec_av1std_encode.h"
12989#define VK_KHR_VIDEO_ENCODE_AV1_SPEC_VERSION 1
12990#define VK_KHR_VIDEO_ENCODE_AV1_EXTENSION_NAME "VK_KHR_video_encode_av1"
12991
12992typedef enum VkVideoEncodeAV1PredictionModeKHR {
12993 VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_INTRA_ONLY_KHR = 0,
12994 VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_SINGLE_REFERENCE_KHR = 1,
12995 VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_UNIDIRECTIONAL_COMPOUND_KHR = 2,
12996 VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_BIDIRECTIONAL_COMPOUND_KHR = 3,
12997 VK_VIDEO_ENCODE_AV1_PREDICTION_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
12998} VkVideoEncodeAV1PredictionModeKHR;
12999
13000typedef enum VkVideoEncodeAV1RateControlGroupKHR {
13001 VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_INTRA_KHR = 0,
13002 VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_PREDICTIVE_KHR = 1,
13003 VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_BIPREDICTIVE_KHR = 2,
13004 VK_VIDEO_ENCODE_AV1_RATE_CONTROL_GROUP_MAX_ENUM_KHR = 0x7FFFFFFF
13005} VkVideoEncodeAV1RateControlGroupKHR;
13006
13007typedef enum VkVideoEncodeAV1CapabilityFlagBitsKHR {
13008 VK_VIDEO_ENCODE_AV1_CAPABILITY_PER_RATE_CONTROL_GROUP_MIN_MAX_Q_INDEX_BIT_KHR = 0x00000001,
13009 VK_VIDEO_ENCODE_AV1_CAPABILITY_GENERATE_OBU_EXTENSION_HEADER_BIT_KHR = 0x00000002,
13010 VK_VIDEO_ENCODE_AV1_CAPABILITY_PRIMARY_REFERENCE_CDF_ONLY_BIT_KHR = 0x00000004,
13011 VK_VIDEO_ENCODE_AV1_CAPABILITY_FRAME_SIZE_OVERRIDE_BIT_KHR = 0x00000008,
13012 VK_VIDEO_ENCODE_AV1_CAPABILITY_MOTION_VECTOR_SCALING_BIT_KHR = 0x00000010,
13013 VK_VIDEO_ENCODE_AV1_CAPABILITY_COMPOUND_PREDICTION_INTRA_REFRESH_BIT_KHR = 0x00000020,
13014 VK_VIDEO_ENCODE_AV1_CAPABILITY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
13015} VkVideoEncodeAV1CapabilityFlagBitsKHR;
13016typedef VkFlags VkVideoEncodeAV1CapabilityFlagsKHR;
13017
13018typedef enum VkVideoEncodeAV1StdFlagBitsKHR {
13019 VK_VIDEO_ENCODE_AV1_STD_UNIFORM_TILE_SPACING_FLAG_SET_BIT_KHR = 0x00000001,
13020 VK_VIDEO_ENCODE_AV1_STD_SKIP_MODE_PRESENT_UNSET_BIT_KHR = 0x00000002,
13021 VK_VIDEO_ENCODE_AV1_STD_PRIMARY_REF_FRAME_BIT_KHR = 0x00000004,
13022 VK_VIDEO_ENCODE_AV1_STD_DELTA_Q_BIT_KHR = 0x00000008,
13023 VK_VIDEO_ENCODE_AV1_STD_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
13024} VkVideoEncodeAV1StdFlagBitsKHR;
13025typedef VkFlags VkVideoEncodeAV1StdFlagsKHR;
13026
13027typedef enum VkVideoEncodeAV1SuperblockSizeFlagBitsKHR {
13028 VK_VIDEO_ENCODE_AV1_SUPERBLOCK_SIZE_64_BIT_KHR = 0x00000001,
13029 VK_VIDEO_ENCODE_AV1_SUPERBLOCK_SIZE_128_BIT_KHR = 0x00000002,
13030 VK_VIDEO_ENCODE_AV1_SUPERBLOCK_SIZE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
13031} VkVideoEncodeAV1SuperblockSizeFlagBitsKHR;
13032typedef VkFlags VkVideoEncodeAV1SuperblockSizeFlagsKHR;
13033
13034typedef enum VkVideoEncodeAV1RateControlFlagBitsKHR {
13035 VK_VIDEO_ENCODE_AV1_RATE_CONTROL_REGULAR_GOP_BIT_KHR = 0x00000001,
13036 VK_VIDEO_ENCODE_AV1_RATE_CONTROL_TEMPORAL_LAYER_PATTERN_DYADIC_BIT_KHR = 0x00000002,
13037 VK_VIDEO_ENCODE_AV1_RATE_CONTROL_REFERENCE_PATTERN_FLAT_BIT_KHR = 0x00000004,
13038 VK_VIDEO_ENCODE_AV1_RATE_CONTROL_REFERENCE_PATTERN_DYADIC_BIT_KHR = 0x00000008,
13039 VK_VIDEO_ENCODE_AV1_RATE_CONTROL_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
13040} VkVideoEncodeAV1RateControlFlagBitsKHR;
13041typedef VkFlags VkVideoEncodeAV1RateControlFlagsKHR;
13042typedef struct VkPhysicalDeviceVideoEncodeAV1FeaturesKHR {
13043 VkStructureType sType;
13044 void* pNext;
13045 VkBool32 videoEncodeAV1;
13046} VkPhysicalDeviceVideoEncodeAV1FeaturesKHR;
13047
13048typedef struct VkVideoEncodeAV1CapabilitiesKHR {
13049 VkStructureType sType;
13050 void* pNext;
13051 VkVideoEncodeAV1CapabilityFlagsKHR flags;
13052 StdVideoAV1Level maxLevel;
13053 VkExtent2D codedPictureAlignment;
13054 VkExtent2D maxTiles;
13055 VkExtent2D minTileSize;
13056 VkExtent2D maxTileSize;
13057 VkVideoEncodeAV1SuperblockSizeFlagsKHR superblockSizes;
13058 uint32_t maxSingleReferenceCount;
13059 uint32_t singleReferenceNameMask;
13060 uint32_t maxUnidirectionalCompoundReferenceCount;
13061 uint32_t maxUnidirectionalCompoundGroup1ReferenceCount;
13062 uint32_t unidirectionalCompoundReferenceNameMask;
13063 uint32_t maxBidirectionalCompoundReferenceCount;
13064 uint32_t maxBidirectionalCompoundGroup1ReferenceCount;
13065 uint32_t maxBidirectionalCompoundGroup2ReferenceCount;
13066 uint32_t bidirectionalCompoundReferenceNameMask;
13067 uint32_t maxTemporalLayerCount;
13068 uint32_t maxSpatialLayerCount;
13069 uint32_t maxOperatingPoints;
13070 uint32_t minQIndex;
13071 uint32_t maxQIndex;
13072 VkBool32 prefersGopRemainingFrames;
13073 VkBool32 requiresGopRemainingFrames;
13074 VkVideoEncodeAV1StdFlagsKHR stdSyntaxFlags;
13075} VkVideoEncodeAV1CapabilitiesKHR;
13076
13077typedef struct VkVideoEncodeAV1QIndexKHR {
13078 uint32_t intraQIndex;
13079 uint32_t predictiveQIndex;
13080 uint32_t bipredictiveQIndex;
13081} VkVideoEncodeAV1QIndexKHR;
13082
13083typedef struct VkVideoEncodeAV1QualityLevelPropertiesKHR {
13084 VkStructureType sType;
13085 void* pNext;
13086 VkVideoEncodeAV1RateControlFlagsKHR preferredRateControlFlags;
13087 uint32_t preferredGopFrameCount;
13088 uint32_t preferredKeyFramePeriod;
13089 uint32_t preferredConsecutiveBipredictiveFrameCount;
13090 uint32_t preferredTemporalLayerCount;
13091 VkVideoEncodeAV1QIndexKHR preferredConstantQIndex;
13092 uint32_t preferredMaxSingleReferenceCount;
13093 uint32_t preferredSingleReferenceNameMask;
13094 uint32_t preferredMaxUnidirectionalCompoundReferenceCount;
13095 uint32_t preferredMaxUnidirectionalCompoundGroup1ReferenceCount;
13096 uint32_t preferredUnidirectionalCompoundReferenceNameMask;
13097 uint32_t preferredMaxBidirectionalCompoundReferenceCount;
13098 uint32_t preferredMaxBidirectionalCompoundGroup1ReferenceCount;
13099 uint32_t preferredMaxBidirectionalCompoundGroup2ReferenceCount;
13100 uint32_t preferredBidirectionalCompoundReferenceNameMask;
13101} VkVideoEncodeAV1QualityLevelPropertiesKHR;
13102
13103typedef struct VkVideoEncodeAV1SessionCreateInfoKHR {
13104 VkStructureType sType;
13105 const void* pNext;
13106 VkBool32 useMaxLevel;
13107 StdVideoAV1Level maxLevel;
13108} VkVideoEncodeAV1SessionCreateInfoKHR;
13109
13110typedef struct VkVideoEncodeAV1SessionParametersCreateInfoKHR {
13111 VkStructureType sType;
13112 const void* pNext;
13113 const StdVideoAV1SequenceHeader* pStdSequenceHeader;
13114 const StdVideoEncodeAV1DecoderModelInfo* pStdDecoderModelInfo;
13115 uint32_t stdOperatingPointCount;
13116 const StdVideoEncodeAV1OperatingPointInfo* pStdOperatingPoints;
13117} VkVideoEncodeAV1SessionParametersCreateInfoKHR;
13118
13119typedef struct VkVideoEncodeAV1PictureInfoKHR {
13120 VkStructureType sType;
13121 const void* pNext;
13122 VkVideoEncodeAV1PredictionModeKHR predictionMode;
13123 VkVideoEncodeAV1RateControlGroupKHR rateControlGroup;
13124 uint32_t constantQIndex;
13125 const StdVideoEncodeAV1PictureInfo* pStdPictureInfo;
13126 int32_t referenceNameSlotIndices[VK_MAX_VIDEO_AV1_REFERENCES_PER_FRAME_KHR];
13127 VkBool32 primaryReferenceCdfOnly;
13128 VkBool32 generateObuExtensionHeader;
13129} VkVideoEncodeAV1PictureInfoKHR;
13130
13131typedef struct VkVideoEncodeAV1DpbSlotInfoKHR {
13132 VkStructureType sType;
13133 const void* pNext;
13134 const StdVideoEncodeAV1ReferenceInfo* pStdReferenceInfo;
13135} VkVideoEncodeAV1DpbSlotInfoKHR;
13136
13137typedef struct VkVideoEncodeAV1ProfileInfoKHR {
13138 VkStructureType sType;
13139 const void* pNext;
13140 StdVideoAV1Profile stdProfile;
13141} VkVideoEncodeAV1ProfileInfoKHR;
13142
13143typedef struct VkVideoEncodeAV1FrameSizeKHR {
13144 uint32_t intraFrameSize;
13145 uint32_t predictiveFrameSize;
13146 uint32_t bipredictiveFrameSize;
13147} VkVideoEncodeAV1FrameSizeKHR;
13148
13149typedef struct VkVideoEncodeAV1GopRemainingFrameInfoKHR {
13150 VkStructureType sType;
13151 const void* pNext;
13152 VkBool32 useGopRemainingFrames;
13153 uint32_t gopRemainingIntra;
13154 uint32_t gopRemainingPredictive;
13155 uint32_t gopRemainingBipredictive;
13156} VkVideoEncodeAV1GopRemainingFrameInfoKHR;
13157
13158typedef struct VkVideoEncodeAV1RateControlInfoKHR {
13159 VkStructureType sType;
13160 const void* pNext;
13161 VkVideoEncodeAV1RateControlFlagsKHR flags;
13162 uint32_t gopFrameCount;
13163 uint32_t keyFramePeriod;
13164 uint32_t consecutiveBipredictiveFrameCount;
13165 uint32_t temporalLayerCount;
13166} VkVideoEncodeAV1RateControlInfoKHR;
13167
13168typedef struct VkVideoEncodeAV1RateControlLayerInfoKHR {
13169 VkStructureType sType;
13170 const void* pNext;
13171 VkBool32 useMinQIndex;
13172 VkVideoEncodeAV1QIndexKHR minQIndex;
13173 VkBool32 useMaxQIndex;
13174 VkVideoEncodeAV1QIndexKHR maxQIndex;
13175 VkBool32 useMaxFrameSize;
13176 VkVideoEncodeAV1FrameSizeKHR maxFrameSize;
13177} VkVideoEncodeAV1RateControlLayerInfoKHR;
13178
13179
13180
13181// VK_KHR_video_decode_vp9 is a preprocessor guard. Do not pass it to API calls.
13182#define VK_KHR_video_decode_vp9 1
13183#include "vk_video/vulkan_video_codec_vp9std.h"
13184#include "vk_video/vulkan_video_codec_vp9std_decode.h"
13185#define VK_MAX_VIDEO_VP9_REFERENCES_PER_FRAME_KHR 3U
13186#define VK_KHR_VIDEO_DECODE_VP9_SPEC_VERSION 1
13187#define VK_KHR_VIDEO_DECODE_VP9_EXTENSION_NAME "VK_KHR_video_decode_vp9"
13188typedef struct VkPhysicalDeviceVideoDecodeVP9FeaturesKHR {
13189 VkStructureType sType;
13190 void* pNext;
13191 VkBool32 videoDecodeVP9;
13192} VkPhysicalDeviceVideoDecodeVP9FeaturesKHR;
13193
13194typedef struct VkVideoDecodeVP9ProfileInfoKHR {
13195 VkStructureType sType;
13196 const void* pNext;
13197 StdVideoVP9Profile stdProfile;
13198} VkVideoDecodeVP9ProfileInfoKHR;
13199
13200typedef struct VkVideoDecodeVP9CapabilitiesKHR {
13201 VkStructureType sType;
13202 void* pNext;
13203 StdVideoVP9Level maxLevel;
13204} VkVideoDecodeVP9CapabilitiesKHR;
13205
13206typedef struct VkVideoDecodeVP9PictureInfoKHR {
13207 VkStructureType sType;
13208 const void* pNext;
13209 const StdVideoDecodeVP9PictureInfo* pStdPictureInfo;
13210 int32_t referenceNameSlotIndices[VK_MAX_VIDEO_VP9_REFERENCES_PER_FRAME_KHR];
13211 uint32_t uncompressedHeaderOffset;
13212 uint32_t compressedHeaderOffset;
13213 uint32_t tilesOffset;
13214} VkVideoDecodeVP9PictureInfoKHR;
13215
13216
13217
13218// VK_KHR_video_maintenance1 is a preprocessor guard. Do not pass it to API calls.
13219#define VK_KHR_video_maintenance1 1
13220#define VK_KHR_VIDEO_MAINTENANCE_1_SPEC_VERSION 1
13221#define VK_KHR_VIDEO_MAINTENANCE_1_EXTENSION_NAME "VK_KHR_video_maintenance1"
13222typedef struct VkPhysicalDeviceVideoMaintenance1FeaturesKHR {
13223 VkStructureType sType;
13224 void* pNext;
13225 VkBool32 videoMaintenance1;
13226} VkPhysicalDeviceVideoMaintenance1FeaturesKHR;
13227
13228typedef struct VkVideoInlineQueryInfoKHR {
13229 VkStructureType sType;
13230 const void* pNext;
13231 VkQueryPool queryPool;
13232 uint32_t firstQuery;
13233 uint32_t queryCount;
13234} VkVideoInlineQueryInfoKHR;
13235
13236
13237
13238// VK_KHR_vertex_attribute_divisor is a preprocessor guard. Do not pass it to API calls.
13239#define VK_KHR_vertex_attribute_divisor 1
13240#define VK_KHR_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 1
13241#define VK_KHR_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_KHR_vertex_attribute_divisor"
13242typedef VkPhysicalDeviceVertexAttributeDivisorProperties VkPhysicalDeviceVertexAttributeDivisorPropertiesKHR;
13243
13244typedef VkVertexInputBindingDivisorDescription VkVertexInputBindingDivisorDescriptionKHR;
13245
13246typedef VkPipelineVertexInputDivisorStateCreateInfo VkPipelineVertexInputDivisorStateCreateInfoKHR;
13247
13248typedef VkPhysicalDeviceVertexAttributeDivisorFeatures VkPhysicalDeviceVertexAttributeDivisorFeaturesKHR;
13249
13250
13251
13252// VK_KHR_load_store_op_none is a preprocessor guard. Do not pass it to API calls.
13253#define VK_KHR_load_store_op_none 1
13254#define VK_KHR_LOAD_STORE_OP_NONE_SPEC_VERSION 1
13255#define VK_KHR_LOAD_STORE_OP_NONE_EXTENSION_NAME "VK_KHR_load_store_op_none"
13256
13257
13258// VK_KHR_unified_image_layouts is a preprocessor guard. Do not pass it to API calls.
13259#define VK_KHR_unified_image_layouts 1
13260#define VK_KHR_UNIFIED_IMAGE_LAYOUTS_SPEC_VERSION 1
13261#define VK_KHR_UNIFIED_IMAGE_LAYOUTS_EXTENSION_NAME "VK_KHR_unified_image_layouts"
13262typedef struct VkPhysicalDeviceUnifiedImageLayoutsFeaturesKHR {
13263 VkStructureType sType;
13264 void* pNext;
13265 VkBool32 unifiedImageLayouts;
13266 VkBool32 unifiedImageLayoutsVideo;
13267} VkPhysicalDeviceUnifiedImageLayoutsFeaturesKHR;
13268
13269typedef struct VkAttachmentFeedbackLoopInfoEXT {
13270 VkStructureType sType;
13271 const void* pNext;
13272 VkBool32 feedbackLoopEnable;
13273} VkAttachmentFeedbackLoopInfoEXT;
13274
13275
13276
13277// VK_KHR_shader_float_controls2 is a preprocessor guard. Do not pass it to API calls.
13278#define VK_KHR_shader_float_controls2 1
13279#define VK_KHR_SHADER_FLOAT_CONTROLS_2_SPEC_VERSION 1
13280#define VK_KHR_SHADER_FLOAT_CONTROLS_2_EXTENSION_NAME "VK_KHR_shader_float_controls2"
13281typedef VkPhysicalDeviceShaderFloatControls2Features VkPhysicalDeviceShaderFloatControls2FeaturesKHR;
13282
13283
13284
13285// VK_KHR_index_type_uint8 is a preprocessor guard. Do not pass it to API calls.
13286#define VK_KHR_index_type_uint8 1
13287#define VK_KHR_INDEX_TYPE_UINT8_SPEC_VERSION 1
13288#define VK_KHR_INDEX_TYPE_UINT8_EXTENSION_NAME "VK_KHR_index_type_uint8"
13289typedef VkPhysicalDeviceIndexTypeUint8Features VkPhysicalDeviceIndexTypeUint8FeaturesKHR;
13290
13291
13292
13293// VK_KHR_line_rasterization is a preprocessor guard. Do not pass it to API calls.
13294#define VK_KHR_line_rasterization 1
13295#define VK_KHR_LINE_RASTERIZATION_SPEC_VERSION 1
13296#define VK_KHR_LINE_RASTERIZATION_EXTENSION_NAME "VK_KHR_line_rasterization"
13297typedef VkLineRasterizationMode VkLineRasterizationModeKHR;
13298
13299typedef VkPhysicalDeviceLineRasterizationFeatures VkPhysicalDeviceLineRasterizationFeaturesKHR;
13300
13301typedef VkPhysicalDeviceLineRasterizationProperties VkPhysicalDeviceLineRasterizationPropertiesKHR;
13302
13303typedef VkPipelineRasterizationLineStateCreateInfo VkPipelineRasterizationLineStateCreateInfoKHR;
13304
13305typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleKHR)(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern);
13306
13307#ifndef VK_NO_PROTOTYPES
13308#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13309VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleKHR(
13310 VkCommandBuffer commandBuffer,
13311 uint32_t lineStippleFactor,
13312 uint16_t lineStipplePattern);
13313#endif
13314#endif
13315
13316
13317// VK_KHR_calibrated_timestamps is a preprocessor guard. Do not pass it to API calls.
13318#define VK_KHR_calibrated_timestamps 1
13319#define VK_KHR_CALIBRATED_TIMESTAMPS_SPEC_VERSION 1
13320#define VK_KHR_CALIBRATED_TIMESTAMPS_EXTENSION_NAME "VK_KHR_calibrated_timestamps"
13321
13322typedef enum VkTimeDomainKHR {
13323 VK_TIME_DOMAIN_DEVICE_KHR = 0,
13324 VK_TIME_DOMAIN_CLOCK_MONOTONIC_KHR = 1,
13325 VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR = 2,
13326 VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR = 3,
13327 VK_TIME_DOMAIN_DEVICE_EXT = VK_TIME_DOMAIN_DEVICE_KHR,
13328 VK_TIME_DOMAIN_CLOCK_MONOTONIC_EXT = VK_TIME_DOMAIN_CLOCK_MONOTONIC_KHR,
13329 VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_EXT = VK_TIME_DOMAIN_CLOCK_MONOTONIC_RAW_KHR,
13330 VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_EXT = VK_TIME_DOMAIN_QUERY_PERFORMANCE_COUNTER_KHR,
13331 VK_TIME_DOMAIN_MAX_ENUM_KHR = 0x7FFFFFFF
13332} VkTimeDomainKHR;
13333typedef struct VkCalibratedTimestampInfoKHR {
13334 VkStructureType sType;
13335 const void* pNext;
13336 VkTimeDomainKHR timeDomain;
13337} VkCalibratedTimestampInfoKHR;
13338
13339typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsKHR)(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainKHR* pTimeDomains);
13340typedef VkResult (VKAPI_PTR *PFN_vkGetCalibratedTimestampsKHR)(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation);
13341
13342#ifndef VK_NO_PROTOTYPES
13343#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13344VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCalibrateableTimeDomainsKHR(
13345 VkPhysicalDevice physicalDevice,
13346 uint32_t* pTimeDomainCount,
13347 VkTimeDomainKHR* pTimeDomains);
13348#endif
13349
13350#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13351VKAPI_ATTR VkResult VKAPI_CALL vkGetCalibratedTimestampsKHR(
13352 VkDevice device,
13353 uint32_t timestampCount,
13354 const VkCalibratedTimestampInfoKHR* pTimestampInfos,
13355 uint64_t* pTimestamps,
13356 uint64_t* pMaxDeviation);
13357#endif
13358#endif
13359
13360
13361// VK_KHR_shader_expect_assume is a preprocessor guard. Do not pass it to API calls.
13362#define VK_KHR_shader_expect_assume 1
13363#define VK_KHR_SHADER_EXPECT_ASSUME_SPEC_VERSION 1
13364#define VK_KHR_SHADER_EXPECT_ASSUME_EXTENSION_NAME "VK_KHR_shader_expect_assume"
13365typedef VkPhysicalDeviceShaderExpectAssumeFeatures VkPhysicalDeviceShaderExpectAssumeFeaturesKHR;
13366
13367
13368
13369// VK_KHR_maintenance6 is a preprocessor guard. Do not pass it to API calls.
13370#define VK_KHR_maintenance6 1
13371#define VK_KHR_MAINTENANCE_6_SPEC_VERSION 1
13372#define VK_KHR_MAINTENANCE_6_EXTENSION_NAME "VK_KHR_maintenance6"
13373typedef VkPhysicalDeviceMaintenance6Features VkPhysicalDeviceMaintenance6FeaturesKHR;
13374
13375typedef VkPhysicalDeviceMaintenance6Properties VkPhysicalDeviceMaintenance6PropertiesKHR;
13376
13377typedef VkBindMemoryStatus VkBindMemoryStatusKHR;
13378
13379typedef VkBindDescriptorSetsInfo VkBindDescriptorSetsInfoKHR;
13380
13381typedef VkPushConstantsInfo VkPushConstantsInfoKHR;
13382
13383typedef VkPushDescriptorSetInfo VkPushDescriptorSetInfoKHR;
13384
13385typedef VkPushDescriptorSetWithTemplateInfo VkPushDescriptorSetWithTemplateInfoKHR;
13386
13387typedef struct VkSetDescriptorBufferOffsetsInfoEXT {
13388 VkStructureType sType;
13389 const void* pNext;
13390 VkShaderStageFlags stageFlags;
13391 VkPipelineLayout layout;
13392 uint32_t firstSet;
13393 uint32_t setCount;
13394 const uint32_t* pBufferIndices;
13395 const VkDeviceSize* pOffsets;
13396} VkSetDescriptorBufferOffsetsInfoEXT;
13397
13398typedef struct VkBindDescriptorBufferEmbeddedSamplersInfoEXT {
13399 VkStructureType sType;
13400 const void* pNext;
13401 VkShaderStageFlags stageFlags;
13402 VkPipelineLayout layout;
13403 uint32_t set;
13404} VkBindDescriptorBufferEmbeddedSamplersInfoEXT;
13405
13406typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorSets2KHR)(VkCommandBuffer commandBuffer, const VkBindDescriptorSetsInfo* pBindDescriptorSetsInfo);
13407typedef void (VKAPI_PTR *PFN_vkCmdPushConstants2KHR)(VkCommandBuffer commandBuffer, const VkPushConstantsInfo* pPushConstantsInfo);
13408typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSet2KHR)(VkCommandBuffer commandBuffer, const VkPushDescriptorSetInfo* pPushDescriptorSetInfo);
13409typedef void (VKAPI_PTR *PFN_vkCmdPushDescriptorSetWithTemplate2KHR)(VkCommandBuffer commandBuffer, const VkPushDescriptorSetWithTemplateInfo* pPushDescriptorSetWithTemplateInfo);
13410typedef void (VKAPI_PTR *PFN_vkCmdSetDescriptorBufferOffsets2EXT)(VkCommandBuffer commandBuffer, const VkSetDescriptorBufferOffsetsInfoEXT* pSetDescriptorBufferOffsetsInfo);
13411typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorBufferEmbeddedSamplers2EXT)(VkCommandBuffer commandBuffer, const VkBindDescriptorBufferEmbeddedSamplersInfoEXT* pBindDescriptorBufferEmbeddedSamplersInfo);
13412
13413#ifndef VK_NO_PROTOTYPES
13414#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13415VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorSets2KHR(
13416 VkCommandBuffer commandBuffer,
13417 const VkBindDescriptorSetsInfo* pBindDescriptorSetsInfo);
13418#endif
13419
13420#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13421VKAPI_ATTR void VKAPI_CALL vkCmdPushConstants2KHR(
13422 VkCommandBuffer commandBuffer,
13423 const VkPushConstantsInfo* pPushConstantsInfo);
13424#endif
13425
13426#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13427VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSet2KHR(
13428 VkCommandBuffer commandBuffer,
13429 const VkPushDescriptorSetInfo* pPushDescriptorSetInfo);
13430#endif
13431
13432#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13433VKAPI_ATTR void VKAPI_CALL vkCmdPushDescriptorSetWithTemplate2KHR(
13434 VkCommandBuffer commandBuffer,
13435 const VkPushDescriptorSetWithTemplateInfo* pPushDescriptorSetWithTemplateInfo);
13436#endif
13437
13438#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13439VKAPI_ATTR void VKAPI_CALL vkCmdSetDescriptorBufferOffsets2EXT(
13440 VkCommandBuffer commandBuffer,
13441 const VkSetDescriptorBufferOffsetsInfoEXT* pSetDescriptorBufferOffsetsInfo);
13442#endif
13443
13444#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13445VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorBufferEmbeddedSamplers2EXT(
13446 VkCommandBuffer commandBuffer,
13447 const VkBindDescriptorBufferEmbeddedSamplersInfoEXT* pBindDescriptorBufferEmbeddedSamplersInfo);
13448#endif
13449#endif
13450
13451
13452// VK_KHR_copy_memory_indirect is a preprocessor guard. Do not pass it to API calls.
13453#define VK_KHR_copy_memory_indirect 1
13454#define VK_KHR_COPY_MEMORY_INDIRECT_SPEC_VERSION 1
13455#define VK_KHR_COPY_MEMORY_INDIRECT_EXTENSION_NAME "VK_KHR_copy_memory_indirect"
13456
13457typedef enum VkAddressCopyFlagBitsKHR {
13458 VK_ADDRESS_COPY_DEVICE_LOCAL_BIT_KHR = 0x00000001,
13459 VK_ADDRESS_COPY_SPARSE_BIT_KHR = 0x00000002,
13460 VK_ADDRESS_COPY_PROTECTED_BIT_KHR = 0x00000004,
13461 VK_ADDRESS_COPY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
13462} VkAddressCopyFlagBitsKHR;
13463typedef VkFlags VkAddressCopyFlagsKHR;
13464typedef struct VkStridedDeviceAddressRangeKHR {
13465 VkDeviceAddress address;
13466 VkDeviceSize size;
13467 VkDeviceSize stride;
13468} VkStridedDeviceAddressRangeKHR;
13469
13470typedef struct VkCopyMemoryIndirectCommandKHR {
13471 VkDeviceAddress srcAddress;
13472 VkDeviceAddress dstAddress;
13473 VkDeviceSize size;
13474} VkCopyMemoryIndirectCommandKHR;
13475
13476typedef struct VkCopyMemoryIndirectInfoKHR {
13477 VkStructureType sType;
13478 const void* pNext;
13479 VkAddressCopyFlagsKHR srcCopyFlags;
13480 VkAddressCopyFlagsKHR dstCopyFlags;
13481 uint32_t copyCount;
13482 VkStridedDeviceAddressRangeKHR copyAddressRange;
13483} VkCopyMemoryIndirectInfoKHR;
13484
13485typedef struct VkCopyMemoryToImageIndirectCommandKHR {
13486 VkDeviceAddress srcAddress;
13487 uint32_t bufferRowLength;
13488 uint32_t bufferImageHeight;
13489 VkImageSubresourceLayers imageSubresource;
13490 VkOffset3D imageOffset;
13491 VkExtent3D imageExtent;
13492} VkCopyMemoryToImageIndirectCommandKHR;
13493
13494typedef struct VkCopyMemoryToImageIndirectInfoKHR {
13495 VkStructureType sType;
13496 const void* pNext;
13497 VkAddressCopyFlagsKHR srcCopyFlags;
13498 uint32_t copyCount;
13499 VkStridedDeviceAddressRangeKHR copyAddressRange;
13500 VkImage dstImage;
13501 VkImageLayout dstImageLayout;
13502 const VkImageSubresourceLayers* pImageSubresources;
13503} VkCopyMemoryToImageIndirectInfoKHR;
13504
13505typedef struct VkPhysicalDeviceCopyMemoryIndirectFeaturesKHR {
13506 VkStructureType sType;
13507 void* pNext;
13508 VkBool32 indirectMemoryCopy;
13509 VkBool32 indirectMemoryToImageCopy;
13510} VkPhysicalDeviceCopyMemoryIndirectFeaturesKHR;
13511
13512typedef struct VkPhysicalDeviceCopyMemoryIndirectPropertiesKHR {
13513 VkStructureType sType;
13514 void* pNext;
13515 VkQueueFlags supportedQueues;
13516} VkPhysicalDeviceCopyMemoryIndirectPropertiesKHR;
13517
13518typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryIndirectKHR)(VkCommandBuffer commandBuffer, const VkCopyMemoryIndirectInfoKHR* pCopyMemoryIndirectInfo);
13519typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToImageIndirectKHR)(VkCommandBuffer commandBuffer, const VkCopyMemoryToImageIndirectInfoKHR* pCopyMemoryToImageIndirectInfo);
13520
13521#ifndef VK_NO_PROTOTYPES
13522#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13523VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryIndirectKHR(
13524 VkCommandBuffer commandBuffer,
13525 const VkCopyMemoryIndirectInfoKHR* pCopyMemoryIndirectInfo);
13526#endif
13527
13528#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13529VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToImageIndirectKHR(
13530 VkCommandBuffer commandBuffer,
13531 const VkCopyMemoryToImageIndirectInfoKHR* pCopyMemoryToImageIndirectInfo);
13532#endif
13533#endif
13534
13535
13536// VK_KHR_video_encode_intra_refresh is a preprocessor guard. Do not pass it to API calls.
13537#define VK_KHR_video_encode_intra_refresh 1
13538#define VK_KHR_VIDEO_ENCODE_INTRA_REFRESH_SPEC_VERSION 1
13539#define VK_KHR_VIDEO_ENCODE_INTRA_REFRESH_EXTENSION_NAME "VK_KHR_video_encode_intra_refresh"
13540
13541typedef enum VkVideoEncodeIntraRefreshModeFlagBitsKHR {
13542 VK_VIDEO_ENCODE_INTRA_REFRESH_MODE_NONE_KHR = 0,
13543 VK_VIDEO_ENCODE_INTRA_REFRESH_MODE_PER_PICTURE_PARTITION_BIT_KHR = 0x00000001,
13544 VK_VIDEO_ENCODE_INTRA_REFRESH_MODE_BLOCK_BASED_BIT_KHR = 0x00000002,
13545 VK_VIDEO_ENCODE_INTRA_REFRESH_MODE_BLOCK_ROW_BASED_BIT_KHR = 0x00000004,
13546 VK_VIDEO_ENCODE_INTRA_REFRESH_MODE_BLOCK_COLUMN_BASED_BIT_KHR = 0x00000008,
13547 VK_VIDEO_ENCODE_INTRA_REFRESH_MODE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
13548} VkVideoEncodeIntraRefreshModeFlagBitsKHR;
13549typedef VkFlags VkVideoEncodeIntraRefreshModeFlagsKHR;
13550typedef struct VkVideoEncodeIntraRefreshCapabilitiesKHR {
13551 VkStructureType sType;
13552 void* pNext;
13553 VkVideoEncodeIntraRefreshModeFlagsKHR intraRefreshModes;
13554 uint32_t maxIntraRefreshCycleDuration;
13555 uint32_t maxIntraRefreshActiveReferencePictures;
13556 VkBool32 partitionIndependentIntraRefreshRegions;
13557 VkBool32 nonRectangularIntraRefreshRegions;
13558} VkVideoEncodeIntraRefreshCapabilitiesKHR;
13559
13560typedef struct VkVideoEncodeSessionIntraRefreshCreateInfoKHR {
13561 VkStructureType sType;
13562 const void* pNext;
13563 VkVideoEncodeIntraRefreshModeFlagBitsKHR intraRefreshMode;
13564} VkVideoEncodeSessionIntraRefreshCreateInfoKHR;
13565
13566typedef struct VkVideoEncodeIntraRefreshInfoKHR {
13567 VkStructureType sType;
13568 const void* pNext;
13569 uint32_t intraRefreshCycleDuration;
13570 uint32_t intraRefreshIndex;
13571} VkVideoEncodeIntraRefreshInfoKHR;
13572
13573typedef struct VkVideoReferenceIntraRefreshInfoKHR {
13574 VkStructureType sType;
13575 const void* pNext;
13576 uint32_t dirtyIntraRefreshRegions;
13577} VkVideoReferenceIntraRefreshInfoKHR;
13578
13579typedef struct VkPhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR {
13580 VkStructureType sType;
13581 void* pNext;
13582 VkBool32 videoEncodeIntraRefresh;
13583} VkPhysicalDeviceVideoEncodeIntraRefreshFeaturesKHR;
13584
13585
13586
13587// VK_KHR_video_encode_quantization_map is a preprocessor guard. Do not pass it to API calls.
13588#define VK_KHR_video_encode_quantization_map 1
13589#define VK_KHR_VIDEO_ENCODE_QUANTIZATION_MAP_SPEC_VERSION 2
13590#define VK_KHR_VIDEO_ENCODE_QUANTIZATION_MAP_EXTENSION_NAME "VK_KHR_video_encode_quantization_map"
13591typedef struct VkVideoEncodeQuantizationMapCapabilitiesKHR {
13592 VkStructureType sType;
13593 void* pNext;
13594 VkExtent2D maxQuantizationMapExtent;
13595} VkVideoEncodeQuantizationMapCapabilitiesKHR;
13596
13597typedef struct VkVideoFormatQuantizationMapPropertiesKHR {
13598 VkStructureType sType;
13599 void* pNext;
13600 VkExtent2D quantizationMapTexelSize;
13601} VkVideoFormatQuantizationMapPropertiesKHR;
13602
13603typedef struct VkVideoEncodeQuantizationMapInfoKHR {
13604 VkStructureType sType;
13605 const void* pNext;
13606 VkImageView quantizationMap;
13607 VkExtent2D quantizationMapExtent;
13608} VkVideoEncodeQuantizationMapInfoKHR;
13609
13610typedef struct VkVideoEncodeQuantizationMapSessionParametersCreateInfoKHR {
13611 VkStructureType sType;
13612 const void* pNext;
13613 VkExtent2D quantizationMapTexelSize;
13614} VkVideoEncodeQuantizationMapSessionParametersCreateInfoKHR;
13615
13616typedef struct VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR {
13617 VkStructureType sType;
13618 void* pNext;
13619 VkBool32 videoEncodeQuantizationMap;
13620} VkPhysicalDeviceVideoEncodeQuantizationMapFeaturesKHR;
13621
13622typedef struct VkVideoEncodeH264QuantizationMapCapabilitiesKHR {
13623 VkStructureType sType;
13624 void* pNext;
13625 int32_t minQpDelta;
13626 int32_t maxQpDelta;
13627} VkVideoEncodeH264QuantizationMapCapabilitiesKHR;
13628
13629typedef struct VkVideoEncodeH265QuantizationMapCapabilitiesKHR {
13630 VkStructureType sType;
13631 void* pNext;
13632 int32_t minQpDelta;
13633 int32_t maxQpDelta;
13634} VkVideoEncodeH265QuantizationMapCapabilitiesKHR;
13635
13636typedef struct VkVideoFormatH265QuantizationMapPropertiesKHR {
13637 VkStructureType sType;
13638 void* pNext;
13639 VkVideoEncodeH265CtbSizeFlagsKHR compatibleCtbSizes;
13640} VkVideoFormatH265QuantizationMapPropertiesKHR;
13641
13642typedef struct VkVideoEncodeAV1QuantizationMapCapabilitiesKHR {
13643 VkStructureType sType;
13644 void* pNext;
13645 int32_t minQIndexDelta;
13646 int32_t maxQIndexDelta;
13647} VkVideoEncodeAV1QuantizationMapCapabilitiesKHR;
13648
13649typedef struct VkVideoFormatAV1QuantizationMapPropertiesKHR {
13650 VkStructureType sType;
13651 void* pNext;
13652 VkVideoEncodeAV1SuperblockSizeFlagsKHR compatibleSuperblockSizes;
13653} VkVideoFormatAV1QuantizationMapPropertiesKHR;
13654
13655
13656
13657// VK_KHR_shader_relaxed_extended_instruction is a preprocessor guard. Do not pass it to API calls.
13658#define VK_KHR_shader_relaxed_extended_instruction 1
13659#define VK_KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_SPEC_VERSION 1
13660#define VK_KHR_SHADER_RELAXED_EXTENDED_INSTRUCTION_EXTENSION_NAME "VK_KHR_shader_relaxed_extended_instruction"
13661typedef struct VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR {
13662 VkStructureType sType;
13663 void* pNext;
13664 VkBool32 shaderRelaxedExtendedInstruction;
13665} VkPhysicalDeviceShaderRelaxedExtendedInstructionFeaturesKHR;
13666
13667
13668
13669// VK_KHR_maintenance7 is a preprocessor guard. Do not pass it to API calls.
13670#define VK_KHR_maintenance7 1
13671#define VK_KHR_MAINTENANCE_7_SPEC_VERSION 1
13672#define VK_KHR_MAINTENANCE_7_EXTENSION_NAME "VK_KHR_maintenance7"
13673
13674typedef enum VkPhysicalDeviceLayeredApiKHR {
13675 VK_PHYSICAL_DEVICE_LAYERED_API_VULKAN_KHR = 0,
13676 VK_PHYSICAL_DEVICE_LAYERED_API_D3D12_KHR = 1,
13677 VK_PHYSICAL_DEVICE_LAYERED_API_METAL_KHR = 2,
13678 VK_PHYSICAL_DEVICE_LAYERED_API_OPENGL_KHR = 3,
13679 VK_PHYSICAL_DEVICE_LAYERED_API_OPENGLES_KHR = 4,
13680 VK_PHYSICAL_DEVICE_LAYERED_API_MAX_ENUM_KHR = 0x7FFFFFFF
13681} VkPhysicalDeviceLayeredApiKHR;
13682typedef struct VkPhysicalDeviceMaintenance7FeaturesKHR {
13683 VkStructureType sType;
13684 void* pNext;
13685 VkBool32 maintenance7;
13686} VkPhysicalDeviceMaintenance7FeaturesKHR;
13687
13688typedef struct VkPhysicalDeviceMaintenance7PropertiesKHR {
13689 VkStructureType sType;
13690 void* pNext;
13691 VkBool32 robustFragmentShadingRateAttachmentAccess;
13692 VkBool32 separateDepthStencilAttachmentAccess;
13693 uint32_t maxDescriptorSetTotalUniformBuffersDynamic;
13694 uint32_t maxDescriptorSetTotalStorageBuffersDynamic;
13695 uint32_t maxDescriptorSetTotalBuffersDynamic;
13696 uint32_t maxDescriptorSetUpdateAfterBindTotalUniformBuffersDynamic;
13697 uint32_t maxDescriptorSetUpdateAfterBindTotalStorageBuffersDynamic;
13698 uint32_t maxDescriptorSetUpdateAfterBindTotalBuffersDynamic;
13699} VkPhysicalDeviceMaintenance7PropertiesKHR;
13700
13701typedef struct VkPhysicalDeviceLayeredApiPropertiesKHR {
13702 VkStructureType sType;
13703 void* pNext;
13704 uint32_t vendorID;
13705 uint32_t deviceID;
13706 VkPhysicalDeviceLayeredApiKHR layeredAPI;
13707 char deviceName[VK_MAX_PHYSICAL_DEVICE_NAME_SIZE];
13708} VkPhysicalDeviceLayeredApiPropertiesKHR;
13709
13710typedef struct VkPhysicalDeviceLayeredApiPropertiesListKHR {
13711 VkStructureType sType;
13712 void* pNext;
13713 uint32_t layeredApiCount;
13714 VkPhysicalDeviceLayeredApiPropertiesKHR* pLayeredApis;
13715} VkPhysicalDeviceLayeredApiPropertiesListKHR;
13716
13717typedef struct VkPhysicalDeviceLayeredApiVulkanPropertiesKHR {
13718 VkStructureType sType;
13719 void* pNext;
13720 VkPhysicalDeviceProperties2 properties;
13721} VkPhysicalDeviceLayeredApiVulkanPropertiesKHR;
13722
13723
13724
13725// VK_KHR_maintenance8 is a preprocessor guard. Do not pass it to API calls.
13726#define VK_KHR_maintenance8 1
13727#define VK_KHR_MAINTENANCE_8_SPEC_VERSION 1
13728#define VK_KHR_MAINTENANCE_8_EXTENSION_NAME "VK_KHR_maintenance8"
13729typedef VkFlags64 VkAccessFlags3KHR;
13730
13731// Flag bits for VkAccessFlagBits3KHR
13732typedef VkFlags64 VkAccessFlagBits3KHR;
13733static const VkAccessFlagBits3KHR VK_ACCESS_3_NONE_KHR = 0ULL;
13734
13735typedef struct VkMemoryBarrierAccessFlags3KHR {
13736 VkStructureType sType;
13737 const void* pNext;
13738 VkAccessFlags3KHR srcAccessMask3;
13739 VkAccessFlags3KHR dstAccessMask3;
13740} VkMemoryBarrierAccessFlags3KHR;
13741
13742typedef struct VkPhysicalDeviceMaintenance8FeaturesKHR {
13743 VkStructureType sType;
13744 void* pNext;
13745 VkBool32 maintenance8;
13746} VkPhysicalDeviceMaintenance8FeaturesKHR;
13747
13748
13749
13750// VK_KHR_maintenance9 is a preprocessor guard. Do not pass it to API calls.
13751#define VK_KHR_maintenance9 1
13752#define VK_KHR_MAINTENANCE_9_SPEC_VERSION 1
13753#define VK_KHR_MAINTENANCE_9_EXTENSION_NAME "VK_KHR_maintenance9"
13754
13755typedef enum VkDefaultVertexAttributeValueKHR {
13756 VK_DEFAULT_VERTEX_ATTRIBUTE_VALUE_ZERO_ZERO_ZERO_ZERO_KHR = 0,
13757 VK_DEFAULT_VERTEX_ATTRIBUTE_VALUE_ZERO_ZERO_ZERO_ONE_KHR = 1,
13758 VK_DEFAULT_VERTEX_ATTRIBUTE_VALUE_MAX_ENUM_KHR = 0x7FFFFFFF
13759} VkDefaultVertexAttributeValueKHR;
13760typedef struct VkPhysicalDeviceMaintenance9FeaturesKHR {
13761 VkStructureType sType;
13762 void* pNext;
13763 VkBool32 maintenance9;
13764} VkPhysicalDeviceMaintenance9FeaturesKHR;
13765
13766typedef struct VkPhysicalDeviceMaintenance9PropertiesKHR {
13767 VkStructureType sType;
13768 void* pNext;
13769 VkBool32 image2DViewOf3DSparse;
13770 VkDefaultVertexAttributeValueKHR defaultVertexAttributeValue;
13771} VkPhysicalDeviceMaintenance9PropertiesKHR;
13772
13773typedef struct VkQueueFamilyOwnershipTransferPropertiesKHR {
13774 VkStructureType sType;
13775 void* pNext;
13776 uint32_t optimalImageTransferToQueueFamilies;
13777} VkQueueFamilyOwnershipTransferPropertiesKHR;
13778
13779
13780
13781// VK_KHR_video_maintenance2 is a preprocessor guard. Do not pass it to API calls.
13782#define VK_KHR_video_maintenance2 1
13783#define VK_KHR_VIDEO_MAINTENANCE_2_SPEC_VERSION 1
13784#define VK_KHR_VIDEO_MAINTENANCE_2_EXTENSION_NAME "VK_KHR_video_maintenance2"
13785typedef struct VkPhysicalDeviceVideoMaintenance2FeaturesKHR {
13786 VkStructureType sType;
13787 void* pNext;
13788 VkBool32 videoMaintenance2;
13789} VkPhysicalDeviceVideoMaintenance2FeaturesKHR;
13790
13791typedef struct VkVideoDecodeH264InlineSessionParametersInfoKHR {
13792 VkStructureType sType;
13793 const void* pNext;
13794 const StdVideoH264SequenceParameterSet* pStdSPS;
13795 const StdVideoH264PictureParameterSet* pStdPPS;
13796} VkVideoDecodeH264InlineSessionParametersInfoKHR;
13797
13798typedef struct VkVideoDecodeH265InlineSessionParametersInfoKHR {
13799 VkStructureType sType;
13800 const void* pNext;
13801 const StdVideoH265VideoParameterSet* pStdVPS;
13802 const StdVideoH265SequenceParameterSet* pStdSPS;
13803 const StdVideoH265PictureParameterSet* pStdPPS;
13804} VkVideoDecodeH265InlineSessionParametersInfoKHR;
13805
13806typedef struct VkVideoDecodeAV1InlineSessionParametersInfoKHR {
13807 VkStructureType sType;
13808 const void* pNext;
13809 const StdVideoAV1SequenceHeader* pStdSequenceHeader;
13810} VkVideoDecodeAV1InlineSessionParametersInfoKHR;
13811
13812
13813
13814// VK_KHR_depth_clamp_zero_one is a preprocessor guard. Do not pass it to API calls.
13815#define VK_KHR_depth_clamp_zero_one 1
13816#define VK_KHR_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION 1
13817#define VK_KHR_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME "VK_KHR_depth_clamp_zero_one"
13818typedef struct VkPhysicalDeviceDepthClampZeroOneFeaturesKHR {
13819 VkStructureType sType;
13820 void* pNext;
13821 VkBool32 depthClampZeroOne;
13822} VkPhysicalDeviceDepthClampZeroOneFeaturesKHR;
13823
13824
13825
13826// VK_KHR_robustness2 is a preprocessor guard. Do not pass it to API calls.
13827#define VK_KHR_robustness2 1
13828#define VK_KHR_ROBUSTNESS_2_SPEC_VERSION 1
13829#define VK_KHR_ROBUSTNESS_2_EXTENSION_NAME "VK_KHR_robustness2"
13830typedef struct VkPhysicalDeviceRobustness2FeaturesKHR {
13831 VkStructureType sType;
13832 void* pNext;
13833 VkBool32 robustBufferAccess2;
13834 VkBool32 robustImageAccess2;
13835 VkBool32 nullDescriptor;
13836} VkPhysicalDeviceRobustness2FeaturesKHR;
13837
13838typedef struct VkPhysicalDeviceRobustness2PropertiesKHR {
13839 VkStructureType sType;
13840 void* pNext;
13841 VkDeviceSize robustStorageBufferAccessSizeAlignment;
13842 VkDeviceSize robustUniformBufferAccessSizeAlignment;
13843} VkPhysicalDeviceRobustness2PropertiesKHR;
13844
13845
13846
13847// VK_KHR_present_mode_fifo_latest_ready is a preprocessor guard. Do not pass it to API calls.
13848#define VK_KHR_present_mode_fifo_latest_ready 1
13849#define VK_KHR_PRESENT_MODE_FIFO_LATEST_READY_SPEC_VERSION 1
13850#define VK_KHR_PRESENT_MODE_FIFO_LATEST_READY_EXTENSION_NAME "VK_KHR_present_mode_fifo_latest_ready"
13851typedef struct VkPhysicalDevicePresentModeFifoLatestReadyFeaturesKHR {
13852 VkStructureType sType;
13853 void* pNext;
13854 VkBool32 presentModeFifoLatestReady;
13855} VkPhysicalDevicePresentModeFifoLatestReadyFeaturesKHR;
13856
13857
13858
13859// VK_EXT_debug_report is a preprocessor guard. Do not pass it to API calls.
13860#define VK_EXT_debug_report 1
13861VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugReportCallbackEXT)
13862#define VK_EXT_DEBUG_REPORT_SPEC_VERSION 10
13863#define VK_EXT_DEBUG_REPORT_EXTENSION_NAME "VK_EXT_debug_report"
13864
13865typedef enum VkDebugReportObjectTypeEXT {
13866 VK_DEBUG_REPORT_OBJECT_TYPE_UNKNOWN_EXT = 0,
13867 VK_DEBUG_REPORT_OBJECT_TYPE_INSTANCE_EXT = 1,
13868 VK_DEBUG_REPORT_OBJECT_TYPE_PHYSICAL_DEVICE_EXT = 2,
13869 VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_EXT = 3,
13870 VK_DEBUG_REPORT_OBJECT_TYPE_QUEUE_EXT = 4,
13871 VK_DEBUG_REPORT_OBJECT_TYPE_SEMAPHORE_EXT = 5,
13872 VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_BUFFER_EXT = 6,
13873 VK_DEBUG_REPORT_OBJECT_TYPE_FENCE_EXT = 7,
13874 VK_DEBUG_REPORT_OBJECT_TYPE_DEVICE_MEMORY_EXT = 8,
13875 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT = 9,
13876 VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_EXT = 10,
13877 VK_DEBUG_REPORT_OBJECT_TYPE_EVENT_EXT = 11,
13878 VK_DEBUG_REPORT_OBJECT_TYPE_QUERY_POOL_EXT = 12,
13879 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT = 13,
13880 VK_DEBUG_REPORT_OBJECT_TYPE_IMAGE_VIEW_EXT = 14,
13881 VK_DEBUG_REPORT_OBJECT_TYPE_SHADER_MODULE_EXT = 15,
13882 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_CACHE_EXT = 16,
13883 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_LAYOUT_EXT = 17,
13884 VK_DEBUG_REPORT_OBJECT_TYPE_RENDER_PASS_EXT = 18,
13885 VK_DEBUG_REPORT_OBJECT_TYPE_PIPELINE_EXT = 19,
13886 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_LAYOUT_EXT = 20,
13887 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_EXT = 21,
13888 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_POOL_EXT = 22,
13889 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_SET_EXT = 23,
13890 VK_DEBUG_REPORT_OBJECT_TYPE_FRAMEBUFFER_EXT = 24,
13891 VK_DEBUG_REPORT_OBJECT_TYPE_COMMAND_POOL_EXT = 25,
13892 VK_DEBUG_REPORT_OBJECT_TYPE_SURFACE_KHR_EXT = 26,
13893 VK_DEBUG_REPORT_OBJECT_TYPE_SWAPCHAIN_KHR_EXT = 27,
13894 VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT = 28,
13895 VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_KHR_EXT = 29,
13896 VK_DEBUG_REPORT_OBJECT_TYPE_DISPLAY_MODE_KHR_EXT = 30,
13897 VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT = 33,
13898 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT = 1000156000,
13899 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT = 1000085000,
13900 VK_DEBUG_REPORT_OBJECT_TYPE_CU_MODULE_NVX_EXT = 1000029000,
13901 VK_DEBUG_REPORT_OBJECT_TYPE_CU_FUNCTION_NVX_EXT = 1000029001,
13902 VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_KHR_EXT = 1000150000,
13903 VK_DEBUG_REPORT_OBJECT_TYPE_ACCELERATION_STRUCTURE_NV_EXT = 1000165000,
13904 VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_MODULE_NV_EXT = 1000307000,
13905 VK_DEBUG_REPORT_OBJECT_TYPE_CUDA_FUNCTION_NV_EXT = 1000307001,
13906 VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_COLLECTION_FUCHSIA_EXT = 1000366000,
13907 // VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT is a deprecated alias
13908 VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DEBUG_REPORT_CALLBACK_EXT_EXT,
13909 // VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT is a deprecated alias
13910 VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_VALIDATION_CACHE_EXT_EXT,
13911 VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_DESCRIPTOR_UPDATE_TEMPLATE_EXT,
13912 VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_KHR_EXT = VK_DEBUG_REPORT_OBJECT_TYPE_SAMPLER_YCBCR_CONVERSION_EXT,
13913 VK_DEBUG_REPORT_OBJECT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
13914} VkDebugReportObjectTypeEXT;
13915
13916typedef enum VkDebugReportFlagBitsEXT {
13917 VK_DEBUG_REPORT_INFORMATION_BIT_EXT = 0x00000001,
13918 VK_DEBUG_REPORT_WARNING_BIT_EXT = 0x00000002,
13919 VK_DEBUG_REPORT_PERFORMANCE_WARNING_BIT_EXT = 0x00000004,
13920 VK_DEBUG_REPORT_ERROR_BIT_EXT = 0x00000008,
13921 VK_DEBUG_REPORT_DEBUG_BIT_EXT = 0x00000010,
13922 VK_DEBUG_REPORT_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
13923} VkDebugReportFlagBitsEXT;
13924typedef VkFlags VkDebugReportFlagsEXT;
13925typedef VkBool32 (VKAPI_PTR *PFN_vkDebugReportCallbackEXT)(
13926 VkDebugReportFlagsEXT flags,
13927 VkDebugReportObjectTypeEXT objectType,
13928 uint64_t object,
13929 size_t location,
13930 int32_t messageCode,
13931 const char* pLayerPrefix,
13932 const char* pMessage,
13933 void* pUserData);
13934
13935typedef struct VkDebugReportCallbackCreateInfoEXT {
13936 VkStructureType sType;
13937 const void* pNext;
13938 VkDebugReportFlagsEXT flags;
13939 PFN_vkDebugReportCallbackEXT pfnCallback;
13940 void* pUserData;
13941} VkDebugReportCallbackCreateInfoEXT;
13942
13943typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugReportCallbackEXT)(VkInstance instance, const VkDebugReportCallbackCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugReportCallbackEXT* pCallback);
13944typedef void (VKAPI_PTR *PFN_vkDestroyDebugReportCallbackEXT)(VkInstance instance, VkDebugReportCallbackEXT callback, const VkAllocationCallbacks* pAllocator);
13945typedef 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);
13946
13947#ifndef VK_NO_PROTOTYPES
13948#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13949VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugReportCallbackEXT(
13950 VkInstance instance,
13951 const VkDebugReportCallbackCreateInfoEXT* pCreateInfo,
13952 const VkAllocationCallbacks* pAllocator,
13953 VkDebugReportCallbackEXT* pCallback);
13954#endif
13955
13956#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13957VKAPI_ATTR void VKAPI_CALL vkDestroyDebugReportCallbackEXT(
13958 VkInstance instance,
13959 VkDebugReportCallbackEXT callback,
13960 const VkAllocationCallbacks* pAllocator);
13961#endif
13962
13963#ifndef VK_ONLY_EXPORTED_PROTOTYPES
13964VKAPI_ATTR void VKAPI_CALL vkDebugReportMessageEXT(
13965 VkInstance instance,
13966 VkDebugReportFlagsEXT flags,
13967 VkDebugReportObjectTypeEXT objectType,
13968 uint64_t object,
13969 size_t location,
13970 int32_t messageCode,
13971 const char* pLayerPrefix,
13972 const char* pMessage);
13973#endif
13974#endif
13975
13976
13977// VK_NV_glsl_shader is a preprocessor guard. Do not pass it to API calls.
13978#define VK_NV_glsl_shader 1
13979#define VK_NV_GLSL_SHADER_SPEC_VERSION 1
13980#define VK_NV_GLSL_SHADER_EXTENSION_NAME "VK_NV_glsl_shader"
13981
13982
13983// VK_EXT_depth_range_unrestricted is a preprocessor guard. Do not pass it to API calls.
13984#define VK_EXT_depth_range_unrestricted 1
13985#define VK_EXT_DEPTH_RANGE_UNRESTRICTED_SPEC_VERSION 1
13986#define VK_EXT_DEPTH_RANGE_UNRESTRICTED_EXTENSION_NAME "VK_EXT_depth_range_unrestricted"
13987
13988
13989// VK_IMG_filter_cubic is a preprocessor guard. Do not pass it to API calls.
13990#define VK_IMG_filter_cubic 1
13991#define VK_IMG_FILTER_CUBIC_SPEC_VERSION 1
13992#define VK_IMG_FILTER_CUBIC_EXTENSION_NAME "VK_IMG_filter_cubic"
13993
13994
13995// VK_AMD_rasterization_order is a preprocessor guard. Do not pass it to API calls.
13996#define VK_AMD_rasterization_order 1
13997#define VK_AMD_RASTERIZATION_ORDER_SPEC_VERSION 1
13998#define VK_AMD_RASTERIZATION_ORDER_EXTENSION_NAME "VK_AMD_rasterization_order"
13999
14000typedef enum VkRasterizationOrderAMD {
14001 VK_RASTERIZATION_ORDER_STRICT_AMD = 0,
14002 VK_RASTERIZATION_ORDER_RELAXED_AMD = 1,
14003 VK_RASTERIZATION_ORDER_MAX_ENUM_AMD = 0x7FFFFFFF
14004} VkRasterizationOrderAMD;
14005typedef struct VkPipelineRasterizationStateRasterizationOrderAMD {
14006 VkStructureType sType;
14007 const void* pNext;
14008 VkRasterizationOrderAMD rasterizationOrder;
14009} VkPipelineRasterizationStateRasterizationOrderAMD;
14010
14011
14012
14013// VK_AMD_shader_trinary_minmax is a preprocessor guard. Do not pass it to API calls.
14014#define VK_AMD_shader_trinary_minmax 1
14015#define VK_AMD_SHADER_TRINARY_MINMAX_SPEC_VERSION 1
14016#define VK_AMD_SHADER_TRINARY_MINMAX_EXTENSION_NAME "VK_AMD_shader_trinary_minmax"
14017
14018
14019// VK_AMD_shader_explicit_vertex_parameter is a preprocessor guard. Do not pass it to API calls.
14020#define VK_AMD_shader_explicit_vertex_parameter 1
14021#define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_SPEC_VERSION 1
14022#define VK_AMD_SHADER_EXPLICIT_VERTEX_PARAMETER_EXTENSION_NAME "VK_AMD_shader_explicit_vertex_parameter"
14023
14024
14025// VK_EXT_debug_marker is a preprocessor guard. Do not pass it to API calls.
14026#define VK_EXT_debug_marker 1
14027#define VK_EXT_DEBUG_MARKER_SPEC_VERSION 4
14028#define VK_EXT_DEBUG_MARKER_EXTENSION_NAME "VK_EXT_debug_marker"
14029typedef struct VkDebugMarkerObjectNameInfoEXT {
14030 VkStructureType sType;
14031 const void* pNext;
14032 VkDebugReportObjectTypeEXT objectType;
14033 uint64_t object;
14034 const char* pObjectName;
14035} VkDebugMarkerObjectNameInfoEXT;
14036
14037typedef struct VkDebugMarkerObjectTagInfoEXT {
14038 VkStructureType sType;
14039 const void* pNext;
14040 VkDebugReportObjectTypeEXT objectType;
14041 uint64_t object;
14042 uint64_t tagName;
14043 size_t tagSize;
14044 const void* pTag;
14045} VkDebugMarkerObjectTagInfoEXT;
14046
14047typedef struct VkDebugMarkerMarkerInfoEXT {
14048 VkStructureType sType;
14049 const void* pNext;
14050 const char* pMarkerName;
14051 float color[4];
14052} VkDebugMarkerMarkerInfoEXT;
14053
14054typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectTagEXT)(VkDevice device, const VkDebugMarkerObjectTagInfoEXT* pTagInfo);
14055typedef VkResult (VKAPI_PTR *PFN_vkDebugMarkerSetObjectNameEXT)(VkDevice device, const VkDebugMarkerObjectNameInfoEXT* pNameInfo);
14056typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerBeginEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
14057typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerEndEXT)(VkCommandBuffer commandBuffer);
14058typedef void (VKAPI_PTR *PFN_vkCmdDebugMarkerInsertEXT)(VkCommandBuffer commandBuffer, const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
14059
14060#ifndef VK_NO_PROTOTYPES
14061#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14062VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectTagEXT(
14063 VkDevice device,
14064 const VkDebugMarkerObjectTagInfoEXT* pTagInfo);
14065#endif
14066
14067#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14068VKAPI_ATTR VkResult VKAPI_CALL vkDebugMarkerSetObjectNameEXT(
14069 VkDevice device,
14070 const VkDebugMarkerObjectNameInfoEXT* pNameInfo);
14071#endif
14072
14073#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14074VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerBeginEXT(
14075 VkCommandBuffer commandBuffer,
14076 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
14077#endif
14078
14079#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14080VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerEndEXT(
14081 VkCommandBuffer commandBuffer);
14082#endif
14083
14084#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14085VKAPI_ATTR void VKAPI_CALL vkCmdDebugMarkerInsertEXT(
14086 VkCommandBuffer commandBuffer,
14087 const VkDebugMarkerMarkerInfoEXT* pMarkerInfo);
14088#endif
14089#endif
14090
14091
14092// VK_AMD_gcn_shader is a preprocessor guard. Do not pass it to API calls.
14093#define VK_AMD_gcn_shader 1
14094#define VK_AMD_GCN_SHADER_SPEC_VERSION 1
14095#define VK_AMD_GCN_SHADER_EXTENSION_NAME "VK_AMD_gcn_shader"
14096
14097
14098// VK_NV_dedicated_allocation is a preprocessor guard. Do not pass it to API calls.
14099#define VK_NV_dedicated_allocation 1
14100#define VK_NV_DEDICATED_ALLOCATION_SPEC_VERSION 1
14101#define VK_NV_DEDICATED_ALLOCATION_EXTENSION_NAME "VK_NV_dedicated_allocation"
14102typedef struct VkDedicatedAllocationImageCreateInfoNV {
14103 VkStructureType sType;
14104 const void* pNext;
14105 VkBool32 dedicatedAllocation;
14106} VkDedicatedAllocationImageCreateInfoNV;
14107
14108typedef struct VkDedicatedAllocationBufferCreateInfoNV {
14109 VkStructureType sType;
14110 const void* pNext;
14111 VkBool32 dedicatedAllocation;
14112} VkDedicatedAllocationBufferCreateInfoNV;
14113
14114typedef struct VkDedicatedAllocationMemoryAllocateInfoNV {
14115 VkStructureType sType;
14116 const void* pNext;
14117 VkImage image;
14118 VkBuffer buffer;
14119} VkDedicatedAllocationMemoryAllocateInfoNV;
14120
14121
14122
14123// VK_EXT_transform_feedback is a preprocessor guard. Do not pass it to API calls.
14124#define VK_EXT_transform_feedback 1
14125#define VK_EXT_TRANSFORM_FEEDBACK_SPEC_VERSION 1
14126#define VK_EXT_TRANSFORM_FEEDBACK_EXTENSION_NAME "VK_EXT_transform_feedback"
14127typedef VkFlags VkPipelineRasterizationStateStreamCreateFlagsEXT;
14128typedef struct VkPhysicalDeviceTransformFeedbackFeaturesEXT {
14129 VkStructureType sType;
14130 void* pNext;
14131 VkBool32 transformFeedback;
14132 VkBool32 geometryStreams;
14133} VkPhysicalDeviceTransformFeedbackFeaturesEXT;
14134
14135typedef struct VkPhysicalDeviceTransformFeedbackPropertiesEXT {
14136 VkStructureType sType;
14137 void* pNext;
14138 uint32_t maxTransformFeedbackStreams;
14139 uint32_t maxTransformFeedbackBuffers;
14140 VkDeviceSize maxTransformFeedbackBufferSize;
14141 uint32_t maxTransformFeedbackStreamDataSize;
14142 uint32_t maxTransformFeedbackBufferDataSize;
14143 uint32_t maxTransformFeedbackBufferDataStride;
14144 VkBool32 transformFeedbackQueries;
14145 VkBool32 transformFeedbackStreamsLinesTriangles;
14146 VkBool32 transformFeedbackRasterizationStreamSelect;
14147 VkBool32 transformFeedbackDraw;
14148} VkPhysicalDeviceTransformFeedbackPropertiesEXT;
14149
14150typedef struct VkPipelineRasterizationStateStreamCreateInfoEXT {
14151 VkStructureType sType;
14152 const void* pNext;
14153 VkPipelineRasterizationStateStreamCreateFlagsEXT flags;
14154 uint32_t rasterizationStream;
14155} VkPipelineRasterizationStateStreamCreateInfoEXT;
14156
14157typedef void (VKAPI_PTR *PFN_vkCmdBindTransformFeedbackBuffersEXT)(VkCommandBuffer commandBuffer, uint32_t firstBinding, uint32_t bindingCount, const VkBuffer* pBuffers, const VkDeviceSize* pOffsets, const VkDeviceSize* pSizes);
14158typedef void (VKAPI_PTR *PFN_vkCmdBeginTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets);
14159typedef void (VKAPI_PTR *PFN_vkCmdEndTransformFeedbackEXT)(VkCommandBuffer commandBuffer, uint32_t firstCounterBuffer, uint32_t counterBufferCount, const VkBuffer* pCounterBuffers, const VkDeviceSize* pCounterBufferOffsets);
14160typedef void (VKAPI_PTR *PFN_vkCmdBeginQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, VkQueryControlFlags flags, uint32_t index);
14161typedef void (VKAPI_PTR *PFN_vkCmdEndQueryIndexedEXT)(VkCommandBuffer commandBuffer, VkQueryPool queryPool, uint32_t query, uint32_t index);
14162typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectByteCountEXT)(VkCommandBuffer commandBuffer, uint32_t instanceCount, uint32_t firstInstance, VkBuffer counterBuffer, VkDeviceSize counterBufferOffset, uint32_t counterOffset, uint32_t vertexStride);
14163
14164#ifndef VK_NO_PROTOTYPES
14165#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14166VKAPI_ATTR void VKAPI_CALL vkCmdBindTransformFeedbackBuffersEXT(
14167 VkCommandBuffer commandBuffer,
14168 uint32_t firstBinding,
14169 uint32_t bindingCount,
14170 const VkBuffer* pBuffers,
14171 const VkDeviceSize* pOffsets,
14172 const VkDeviceSize* pSizes);
14173#endif
14174
14175#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14176VKAPI_ATTR void VKAPI_CALL vkCmdBeginTransformFeedbackEXT(
14177 VkCommandBuffer commandBuffer,
14178 uint32_t firstCounterBuffer,
14179 uint32_t counterBufferCount,
14180 const VkBuffer* pCounterBuffers,
14181 const VkDeviceSize* pCounterBufferOffsets);
14182#endif
14183
14184#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14185VKAPI_ATTR void VKAPI_CALL vkCmdEndTransformFeedbackEXT(
14186 VkCommandBuffer commandBuffer,
14187 uint32_t firstCounterBuffer,
14188 uint32_t counterBufferCount,
14189 const VkBuffer* pCounterBuffers,
14190 const VkDeviceSize* pCounterBufferOffsets);
14191#endif
14192
14193#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14194VKAPI_ATTR void VKAPI_CALL vkCmdBeginQueryIndexedEXT(
14195 VkCommandBuffer commandBuffer,
14196 VkQueryPool queryPool,
14197 uint32_t query,
14198 VkQueryControlFlags flags,
14199 uint32_t index);
14200#endif
14201
14202#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14203VKAPI_ATTR void VKAPI_CALL vkCmdEndQueryIndexedEXT(
14204 VkCommandBuffer commandBuffer,
14205 VkQueryPool queryPool,
14206 uint32_t query,
14207 uint32_t index);
14208#endif
14209
14210#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14211VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectByteCountEXT(
14212 VkCommandBuffer commandBuffer,
14213 uint32_t instanceCount,
14214 uint32_t firstInstance,
14215 VkBuffer counterBuffer,
14216 VkDeviceSize counterBufferOffset,
14217 uint32_t counterOffset,
14218 uint32_t vertexStride);
14219#endif
14220#endif
14221
14222
14223// VK_NVX_binary_import is a preprocessor guard. Do not pass it to API calls.
14224#define VK_NVX_binary_import 1
14225VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuModuleNVX)
14226VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkCuFunctionNVX)
14227#define VK_NVX_BINARY_IMPORT_SPEC_VERSION 2
14228#define VK_NVX_BINARY_IMPORT_EXTENSION_NAME "VK_NVX_binary_import"
14229typedef struct VkCuModuleCreateInfoNVX {
14230 VkStructureType sType;
14231 const void* pNext;
14232 size_t dataSize;
14233 const void* pData;
14234} VkCuModuleCreateInfoNVX;
14235
14236typedef struct VkCuModuleTexturingModeCreateInfoNVX {
14237 VkStructureType sType;
14238 const void* pNext;
14239 VkBool32 use64bitTexturing;
14240} VkCuModuleTexturingModeCreateInfoNVX;
14241
14242typedef struct VkCuFunctionCreateInfoNVX {
14243 VkStructureType sType;
14244 const void* pNext;
14245 VkCuModuleNVX module;
14246 const char* pName;
14247} VkCuFunctionCreateInfoNVX;
14248
14249typedef struct VkCuLaunchInfoNVX {
14250 VkStructureType sType;
14251 const void* pNext;
14252 VkCuFunctionNVX function;
14253 uint32_t gridDimX;
14254 uint32_t gridDimY;
14255 uint32_t gridDimZ;
14256 uint32_t blockDimX;
14257 uint32_t blockDimY;
14258 uint32_t blockDimZ;
14259 uint32_t sharedMemBytes;
14260 size_t paramCount;
14261 const void* const * pParams;
14262 size_t extraCount;
14263 const void* const * pExtras;
14264} VkCuLaunchInfoNVX;
14265
14266typedef VkResult (VKAPI_PTR *PFN_vkCreateCuModuleNVX)(VkDevice device, const VkCuModuleCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuModuleNVX* pModule);
14267typedef VkResult (VKAPI_PTR *PFN_vkCreateCuFunctionNVX)(VkDevice device, const VkCuFunctionCreateInfoNVX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCuFunctionNVX* pFunction);
14268typedef void (VKAPI_PTR *PFN_vkDestroyCuModuleNVX)(VkDevice device, VkCuModuleNVX module, const VkAllocationCallbacks* pAllocator);
14269typedef void (VKAPI_PTR *PFN_vkDestroyCuFunctionNVX)(VkDevice device, VkCuFunctionNVX function, const VkAllocationCallbacks* pAllocator);
14270typedef void (VKAPI_PTR *PFN_vkCmdCuLaunchKernelNVX)(VkCommandBuffer commandBuffer, const VkCuLaunchInfoNVX* pLaunchInfo);
14271
14272#ifndef VK_NO_PROTOTYPES
14273#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14274VKAPI_ATTR VkResult VKAPI_CALL vkCreateCuModuleNVX(
14275 VkDevice device,
14276 const VkCuModuleCreateInfoNVX* pCreateInfo,
14277 const VkAllocationCallbacks* pAllocator,
14278 VkCuModuleNVX* pModule);
14279#endif
14280
14281#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14282VKAPI_ATTR VkResult VKAPI_CALL vkCreateCuFunctionNVX(
14283 VkDevice device,
14284 const VkCuFunctionCreateInfoNVX* pCreateInfo,
14285 const VkAllocationCallbacks* pAllocator,
14286 VkCuFunctionNVX* pFunction);
14287#endif
14288
14289#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14290VKAPI_ATTR void VKAPI_CALL vkDestroyCuModuleNVX(
14291 VkDevice device,
14292 VkCuModuleNVX module,
14293 const VkAllocationCallbacks* pAllocator);
14294#endif
14295
14296#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14297VKAPI_ATTR void VKAPI_CALL vkDestroyCuFunctionNVX(
14298 VkDevice device,
14299 VkCuFunctionNVX function,
14300 const VkAllocationCallbacks* pAllocator);
14301#endif
14302
14303#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14304VKAPI_ATTR void VKAPI_CALL vkCmdCuLaunchKernelNVX(
14305 VkCommandBuffer commandBuffer,
14306 const VkCuLaunchInfoNVX* pLaunchInfo);
14307#endif
14308#endif
14309
14310
14311// VK_NVX_image_view_handle is a preprocessor guard. Do not pass it to API calls.
14312#define VK_NVX_image_view_handle 1
14313#define VK_NVX_IMAGE_VIEW_HANDLE_SPEC_VERSION 3
14314#define VK_NVX_IMAGE_VIEW_HANDLE_EXTENSION_NAME "VK_NVX_image_view_handle"
14315typedef struct VkImageViewHandleInfoNVX {
14316 VkStructureType sType;
14317 const void* pNext;
14318 VkImageView imageView;
14319 VkDescriptorType descriptorType;
14320 VkSampler sampler;
14321} VkImageViewHandleInfoNVX;
14322
14323typedef struct VkImageViewAddressPropertiesNVX {
14324 VkStructureType sType;
14325 void* pNext;
14326 VkDeviceAddress deviceAddress;
14327 VkDeviceSize size;
14328} VkImageViewAddressPropertiesNVX;
14329
14330typedef uint32_t (VKAPI_PTR *PFN_vkGetImageViewHandleNVX)(VkDevice device, const VkImageViewHandleInfoNVX* pInfo);
14331typedef uint64_t (VKAPI_PTR *PFN_vkGetImageViewHandle64NVX)(VkDevice device, const VkImageViewHandleInfoNVX* pInfo);
14332typedef VkResult (VKAPI_PTR *PFN_vkGetImageViewAddressNVX)(VkDevice device, VkImageView imageView, VkImageViewAddressPropertiesNVX* pProperties);
14333
14334#ifndef VK_NO_PROTOTYPES
14335#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14336VKAPI_ATTR uint32_t VKAPI_CALL vkGetImageViewHandleNVX(
14337 VkDevice device,
14338 const VkImageViewHandleInfoNVX* pInfo);
14339#endif
14340
14341#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14342VKAPI_ATTR uint64_t VKAPI_CALL vkGetImageViewHandle64NVX(
14343 VkDevice device,
14344 const VkImageViewHandleInfoNVX* pInfo);
14345#endif
14346
14347#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14348VKAPI_ATTR VkResult VKAPI_CALL vkGetImageViewAddressNVX(
14349 VkDevice device,
14350 VkImageView imageView,
14351 VkImageViewAddressPropertiesNVX* pProperties);
14352#endif
14353#endif
14354
14355
14356// VK_AMD_draw_indirect_count is a preprocessor guard. Do not pass it to API calls.
14357#define VK_AMD_draw_indirect_count 1
14358#define VK_AMD_DRAW_INDIRECT_COUNT_SPEC_VERSION 2
14359#define VK_AMD_DRAW_INDIRECT_COUNT_EXTENSION_NAME "VK_AMD_draw_indirect_count"
14360typedef void (VKAPI_PTR *PFN_vkCmdDrawIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
14361typedef void (VKAPI_PTR *PFN_vkCmdDrawIndexedIndirectCountAMD)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
14362
14363#ifndef VK_NO_PROTOTYPES
14364#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14365VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndirectCountAMD(
14366 VkCommandBuffer commandBuffer,
14367 VkBuffer buffer,
14368 VkDeviceSize offset,
14369 VkBuffer countBuffer,
14370 VkDeviceSize countBufferOffset,
14371 uint32_t maxDrawCount,
14372 uint32_t stride);
14373#endif
14374
14375#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14376VKAPI_ATTR void VKAPI_CALL vkCmdDrawIndexedIndirectCountAMD(
14377 VkCommandBuffer commandBuffer,
14378 VkBuffer buffer,
14379 VkDeviceSize offset,
14380 VkBuffer countBuffer,
14381 VkDeviceSize countBufferOffset,
14382 uint32_t maxDrawCount,
14383 uint32_t stride);
14384#endif
14385#endif
14386
14387
14388// VK_AMD_negative_viewport_height is a preprocessor guard. Do not pass it to API calls.
14389#define VK_AMD_negative_viewport_height 1
14390#define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_SPEC_VERSION 1
14391#define VK_AMD_NEGATIVE_VIEWPORT_HEIGHT_EXTENSION_NAME "VK_AMD_negative_viewport_height"
14392
14393
14394// VK_AMD_gpu_shader_half_float is a preprocessor guard. Do not pass it to API calls.
14395#define VK_AMD_gpu_shader_half_float 1
14396#define VK_AMD_GPU_SHADER_HALF_FLOAT_SPEC_VERSION 2
14397#define VK_AMD_GPU_SHADER_HALF_FLOAT_EXTENSION_NAME "VK_AMD_gpu_shader_half_float"
14398
14399
14400// VK_AMD_shader_ballot is a preprocessor guard. Do not pass it to API calls.
14401#define VK_AMD_shader_ballot 1
14402#define VK_AMD_SHADER_BALLOT_SPEC_VERSION 1
14403#define VK_AMD_SHADER_BALLOT_EXTENSION_NAME "VK_AMD_shader_ballot"
14404
14405
14406// VK_AMD_texture_gather_bias_lod is a preprocessor guard. Do not pass it to API calls.
14407#define VK_AMD_texture_gather_bias_lod 1
14408#define VK_AMD_TEXTURE_GATHER_BIAS_LOD_SPEC_VERSION 1
14409#define VK_AMD_TEXTURE_GATHER_BIAS_LOD_EXTENSION_NAME "VK_AMD_texture_gather_bias_lod"
14410typedef struct VkTextureLODGatherFormatPropertiesAMD {
14411 VkStructureType sType;
14412 void* pNext;
14413 VkBool32 supportsTextureGatherLODBiasAMD;
14414} VkTextureLODGatherFormatPropertiesAMD;
14415
14416
14417
14418// VK_AMD_shader_info is a preprocessor guard. Do not pass it to API calls.
14419#define VK_AMD_shader_info 1
14420#define VK_AMD_SHADER_INFO_SPEC_VERSION 1
14421#define VK_AMD_SHADER_INFO_EXTENSION_NAME "VK_AMD_shader_info"
14422
14423typedef enum VkShaderInfoTypeAMD {
14424 VK_SHADER_INFO_TYPE_STATISTICS_AMD = 0,
14425 VK_SHADER_INFO_TYPE_BINARY_AMD = 1,
14426 VK_SHADER_INFO_TYPE_DISASSEMBLY_AMD = 2,
14427 VK_SHADER_INFO_TYPE_MAX_ENUM_AMD = 0x7FFFFFFF
14428} VkShaderInfoTypeAMD;
14429typedef struct VkShaderResourceUsageAMD {
14430 uint32_t numUsedVgprs;
14431 uint32_t numUsedSgprs;
14432 uint32_t ldsSizePerLocalWorkGroup;
14433 size_t ldsUsageSizeInBytes;
14434 size_t scratchMemUsageInBytes;
14435} VkShaderResourceUsageAMD;
14436
14437typedef struct VkShaderStatisticsInfoAMD {
14438 VkShaderStageFlags shaderStageMask;
14439 VkShaderResourceUsageAMD resourceUsage;
14440 uint32_t numPhysicalVgprs;
14441 uint32_t numPhysicalSgprs;
14442 uint32_t numAvailableVgprs;
14443 uint32_t numAvailableSgprs;
14444 uint32_t computeWorkGroupSize[3];
14445} VkShaderStatisticsInfoAMD;
14446
14447typedef VkResult (VKAPI_PTR *PFN_vkGetShaderInfoAMD)(VkDevice device, VkPipeline pipeline, VkShaderStageFlagBits shaderStage, VkShaderInfoTypeAMD infoType, size_t* pInfoSize, void* pInfo);
14448
14449#ifndef VK_NO_PROTOTYPES
14450#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14451VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderInfoAMD(
14452 VkDevice device,
14453 VkPipeline pipeline,
14454 VkShaderStageFlagBits shaderStage,
14455 VkShaderInfoTypeAMD infoType,
14456 size_t* pInfoSize,
14457 void* pInfo);
14458#endif
14459#endif
14460
14461
14462// VK_AMD_shader_image_load_store_lod is a preprocessor guard. Do not pass it to API calls.
14463#define VK_AMD_shader_image_load_store_lod 1
14464#define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_SPEC_VERSION 1
14465#define VK_AMD_SHADER_IMAGE_LOAD_STORE_LOD_EXTENSION_NAME "VK_AMD_shader_image_load_store_lod"
14466
14467
14468// VK_NV_corner_sampled_image is a preprocessor guard. Do not pass it to API calls.
14469#define VK_NV_corner_sampled_image 1
14470#define VK_NV_CORNER_SAMPLED_IMAGE_SPEC_VERSION 2
14471#define VK_NV_CORNER_SAMPLED_IMAGE_EXTENSION_NAME "VK_NV_corner_sampled_image"
14472typedef struct VkPhysicalDeviceCornerSampledImageFeaturesNV {
14473 VkStructureType sType;
14474 void* pNext;
14475 VkBool32 cornerSampledImage;
14476} VkPhysicalDeviceCornerSampledImageFeaturesNV;
14477
14478
14479
14480// VK_IMG_format_pvrtc is a preprocessor guard. Do not pass it to API calls.
14481#define VK_IMG_format_pvrtc 1
14482#define VK_IMG_FORMAT_PVRTC_SPEC_VERSION 1
14483#define VK_IMG_FORMAT_PVRTC_EXTENSION_NAME "VK_IMG_format_pvrtc"
14484
14485
14486// VK_NV_external_memory_capabilities is a preprocessor guard. Do not pass it to API calls.
14487#define VK_NV_external_memory_capabilities 1
14488#define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_SPEC_VERSION 1
14489#define VK_NV_EXTERNAL_MEMORY_CAPABILITIES_EXTENSION_NAME "VK_NV_external_memory_capabilities"
14490
14491typedef enum VkExternalMemoryHandleTypeFlagBitsNV {
14492 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_BIT_NV = 0x00000001,
14493 VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_WIN32_KMT_BIT_NV = 0x00000002,
14494 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_BIT_NV = 0x00000004,
14495 VK_EXTERNAL_MEMORY_HANDLE_TYPE_D3D11_IMAGE_KMT_BIT_NV = 0x00000008,
14496 VK_EXTERNAL_MEMORY_HANDLE_TYPE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
14497} VkExternalMemoryHandleTypeFlagBitsNV;
14498typedef VkFlags VkExternalMemoryHandleTypeFlagsNV;
14499
14500typedef enum VkExternalMemoryFeatureFlagBitsNV {
14501 VK_EXTERNAL_MEMORY_FEATURE_DEDICATED_ONLY_BIT_NV = 0x00000001,
14502 VK_EXTERNAL_MEMORY_FEATURE_EXPORTABLE_BIT_NV = 0x00000002,
14503 VK_EXTERNAL_MEMORY_FEATURE_IMPORTABLE_BIT_NV = 0x00000004,
14504 VK_EXTERNAL_MEMORY_FEATURE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
14505} VkExternalMemoryFeatureFlagBitsNV;
14506typedef VkFlags VkExternalMemoryFeatureFlagsNV;
14507typedef struct VkExternalImageFormatPropertiesNV {
14508 VkImageFormatProperties imageFormatProperties;
14509 VkExternalMemoryFeatureFlagsNV externalMemoryFeatures;
14510 VkExternalMemoryHandleTypeFlagsNV exportFromImportedHandleTypes;
14511 VkExternalMemoryHandleTypeFlagsNV compatibleHandleTypes;
14512} VkExternalImageFormatPropertiesNV;
14513
14514typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalImageFormatPropertiesNV)(VkPhysicalDevice physicalDevice, VkFormat format, VkImageType type, VkImageTiling tiling, VkImageUsageFlags usage, VkImageCreateFlags flags, VkExternalMemoryHandleTypeFlagsNV externalHandleType, VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
14515
14516#ifndef VK_NO_PROTOTYPES
14517#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14518VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceExternalImageFormatPropertiesNV(
14519 VkPhysicalDevice physicalDevice,
14520 VkFormat format,
14521 VkImageType type,
14522 VkImageTiling tiling,
14523 VkImageUsageFlags usage,
14524 VkImageCreateFlags flags,
14525 VkExternalMemoryHandleTypeFlagsNV externalHandleType,
14526 VkExternalImageFormatPropertiesNV* pExternalImageFormatProperties);
14527#endif
14528#endif
14529
14530
14531// VK_NV_external_memory is a preprocessor guard. Do not pass it to API calls.
14532#define VK_NV_external_memory 1
14533#define VK_NV_EXTERNAL_MEMORY_SPEC_VERSION 1
14534#define VK_NV_EXTERNAL_MEMORY_EXTENSION_NAME "VK_NV_external_memory"
14535typedef struct VkExternalMemoryImageCreateInfoNV {
14536 VkStructureType sType;
14537 const void* pNext;
14538 VkExternalMemoryHandleTypeFlagsNV handleTypes;
14539} VkExternalMemoryImageCreateInfoNV;
14540
14541typedef struct VkExportMemoryAllocateInfoNV {
14542 VkStructureType sType;
14543 const void* pNext;
14544 VkExternalMemoryHandleTypeFlagsNV handleTypes;
14545} VkExportMemoryAllocateInfoNV;
14546
14547
14548
14549// VK_EXT_validation_flags is a preprocessor guard. Do not pass it to API calls.
14550#define VK_EXT_validation_flags 1
14551#define VK_EXT_VALIDATION_FLAGS_SPEC_VERSION 3
14552#define VK_EXT_VALIDATION_FLAGS_EXTENSION_NAME "VK_EXT_validation_flags"
14553
14554typedef enum VkValidationCheckEXT {
14555 VK_VALIDATION_CHECK_ALL_EXT = 0,
14556 VK_VALIDATION_CHECK_SHADERS_EXT = 1,
14557 VK_VALIDATION_CHECK_MAX_ENUM_EXT = 0x7FFFFFFF
14558} VkValidationCheckEXT;
14559typedef struct VkValidationFlagsEXT {
14560 VkStructureType sType;
14561 const void* pNext;
14562 uint32_t disabledValidationCheckCount;
14563 const VkValidationCheckEXT* pDisabledValidationChecks;
14564} VkValidationFlagsEXT;
14565
14566
14567
14568// VK_EXT_shader_subgroup_ballot is a preprocessor guard. Do not pass it to API calls.
14569#define VK_EXT_shader_subgroup_ballot 1
14570#define VK_EXT_SHADER_SUBGROUP_BALLOT_SPEC_VERSION 1
14571#define VK_EXT_SHADER_SUBGROUP_BALLOT_EXTENSION_NAME "VK_EXT_shader_subgroup_ballot"
14572
14573
14574// VK_EXT_shader_subgroup_vote is a preprocessor guard. Do not pass it to API calls.
14575#define VK_EXT_shader_subgroup_vote 1
14576#define VK_EXT_SHADER_SUBGROUP_VOTE_SPEC_VERSION 1
14577#define VK_EXT_SHADER_SUBGROUP_VOTE_EXTENSION_NAME "VK_EXT_shader_subgroup_vote"
14578
14579
14580// VK_EXT_texture_compression_astc_hdr is a preprocessor guard. Do not pass it to API calls.
14581#define VK_EXT_texture_compression_astc_hdr 1
14582#define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_SPEC_VERSION 1
14583#define VK_EXT_TEXTURE_COMPRESSION_ASTC_HDR_EXTENSION_NAME "VK_EXT_texture_compression_astc_hdr"
14584typedef VkPhysicalDeviceTextureCompressionASTCHDRFeatures VkPhysicalDeviceTextureCompressionASTCHDRFeaturesEXT;
14585
14586
14587
14588// VK_EXT_astc_decode_mode is a preprocessor guard. Do not pass it to API calls.
14589#define VK_EXT_astc_decode_mode 1
14590#define VK_EXT_ASTC_DECODE_MODE_SPEC_VERSION 1
14591#define VK_EXT_ASTC_DECODE_MODE_EXTENSION_NAME "VK_EXT_astc_decode_mode"
14592typedef struct VkImageViewASTCDecodeModeEXT {
14593 VkStructureType sType;
14594 const void* pNext;
14595 VkFormat decodeMode;
14596} VkImageViewASTCDecodeModeEXT;
14597
14598typedef struct VkPhysicalDeviceASTCDecodeFeaturesEXT {
14599 VkStructureType sType;
14600 void* pNext;
14601 VkBool32 decodeModeSharedExponent;
14602} VkPhysicalDeviceASTCDecodeFeaturesEXT;
14603
14604
14605
14606// VK_EXT_pipeline_robustness is a preprocessor guard. Do not pass it to API calls.
14607#define VK_EXT_pipeline_robustness 1
14608#define VK_EXT_PIPELINE_ROBUSTNESS_SPEC_VERSION 1
14609#define VK_EXT_PIPELINE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_pipeline_robustness"
14610typedef VkPipelineRobustnessBufferBehavior VkPipelineRobustnessBufferBehaviorEXT;
14611
14612typedef VkPipelineRobustnessImageBehavior VkPipelineRobustnessImageBehaviorEXT;
14613
14614typedef VkPhysicalDevicePipelineRobustnessFeatures VkPhysicalDevicePipelineRobustnessFeaturesEXT;
14615
14616typedef VkPhysicalDevicePipelineRobustnessProperties VkPhysicalDevicePipelineRobustnessPropertiesEXT;
14617
14618typedef VkPipelineRobustnessCreateInfo VkPipelineRobustnessCreateInfoEXT;
14619
14620
14621
14622// VK_EXT_conditional_rendering is a preprocessor guard. Do not pass it to API calls.
14623#define VK_EXT_conditional_rendering 1
14624#define VK_EXT_CONDITIONAL_RENDERING_SPEC_VERSION 2
14625#define VK_EXT_CONDITIONAL_RENDERING_EXTENSION_NAME "VK_EXT_conditional_rendering"
14626
14627typedef enum VkConditionalRenderingFlagBitsEXT {
14628 VK_CONDITIONAL_RENDERING_INVERTED_BIT_EXT = 0x00000001,
14629 VK_CONDITIONAL_RENDERING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
14630} VkConditionalRenderingFlagBitsEXT;
14631typedef VkFlags VkConditionalRenderingFlagsEXT;
14632typedef struct VkConditionalRenderingBeginInfoEXT {
14633 VkStructureType sType;
14634 const void* pNext;
14635 VkBuffer buffer;
14636 VkDeviceSize offset;
14637 VkConditionalRenderingFlagsEXT flags;
14638} VkConditionalRenderingBeginInfoEXT;
14639
14640typedef struct VkPhysicalDeviceConditionalRenderingFeaturesEXT {
14641 VkStructureType sType;
14642 void* pNext;
14643 VkBool32 conditionalRendering;
14644 VkBool32 inheritedConditionalRendering;
14645} VkPhysicalDeviceConditionalRenderingFeaturesEXT;
14646
14647typedef struct VkCommandBufferInheritanceConditionalRenderingInfoEXT {
14648 VkStructureType sType;
14649 const void* pNext;
14650 VkBool32 conditionalRenderingEnable;
14651} VkCommandBufferInheritanceConditionalRenderingInfoEXT;
14652
14653typedef void (VKAPI_PTR *PFN_vkCmdBeginConditionalRenderingEXT)(VkCommandBuffer commandBuffer, const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin);
14654typedef void (VKAPI_PTR *PFN_vkCmdEndConditionalRenderingEXT)(VkCommandBuffer commandBuffer);
14655
14656#ifndef VK_NO_PROTOTYPES
14657#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14658VKAPI_ATTR void VKAPI_CALL vkCmdBeginConditionalRenderingEXT(
14659 VkCommandBuffer commandBuffer,
14660 const VkConditionalRenderingBeginInfoEXT* pConditionalRenderingBegin);
14661#endif
14662
14663#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14664VKAPI_ATTR void VKAPI_CALL vkCmdEndConditionalRenderingEXT(
14665 VkCommandBuffer commandBuffer);
14666#endif
14667#endif
14668
14669
14670// VK_NV_clip_space_w_scaling is a preprocessor guard. Do not pass it to API calls.
14671#define VK_NV_clip_space_w_scaling 1
14672#define VK_NV_CLIP_SPACE_W_SCALING_SPEC_VERSION 1
14673#define VK_NV_CLIP_SPACE_W_SCALING_EXTENSION_NAME "VK_NV_clip_space_w_scaling"
14674typedef struct VkViewportWScalingNV {
14675 float xcoeff;
14676 float ycoeff;
14677} VkViewportWScalingNV;
14678
14679typedef struct VkPipelineViewportWScalingStateCreateInfoNV {
14680 VkStructureType sType;
14681 const void* pNext;
14682 VkBool32 viewportWScalingEnable;
14683 uint32_t viewportCount;
14684 const VkViewportWScalingNV* pViewportWScalings;
14685} VkPipelineViewportWScalingStateCreateInfoNV;
14686
14687typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWScalingNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportWScalingNV* pViewportWScalings);
14688
14689#ifndef VK_NO_PROTOTYPES
14690#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14691VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWScalingNV(
14692 VkCommandBuffer commandBuffer,
14693 uint32_t firstViewport,
14694 uint32_t viewportCount,
14695 const VkViewportWScalingNV* pViewportWScalings);
14696#endif
14697#endif
14698
14699
14700// VK_EXT_direct_mode_display is a preprocessor guard. Do not pass it to API calls.
14701#define VK_EXT_direct_mode_display 1
14702#define VK_EXT_DIRECT_MODE_DISPLAY_SPEC_VERSION 1
14703#define VK_EXT_DIRECT_MODE_DISPLAY_EXTENSION_NAME "VK_EXT_direct_mode_display"
14704typedef VkResult (VKAPI_PTR *PFN_vkReleaseDisplayEXT)(VkPhysicalDevice physicalDevice, VkDisplayKHR display);
14705
14706#ifndef VK_NO_PROTOTYPES
14707#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14708VKAPI_ATTR VkResult VKAPI_CALL vkReleaseDisplayEXT(
14709 VkPhysicalDevice physicalDevice,
14710 VkDisplayKHR display);
14711#endif
14712#endif
14713
14714
14715// VK_EXT_display_surface_counter is a preprocessor guard. Do not pass it to API calls.
14716#define VK_EXT_display_surface_counter 1
14717#define VK_EXT_DISPLAY_SURFACE_COUNTER_SPEC_VERSION 1
14718#define VK_EXT_DISPLAY_SURFACE_COUNTER_EXTENSION_NAME "VK_EXT_display_surface_counter"
14719
14720typedef enum VkSurfaceCounterFlagBitsEXT {
14721 VK_SURFACE_COUNTER_VBLANK_BIT_EXT = 0x00000001,
14722 // VK_SURFACE_COUNTER_VBLANK_EXT is a deprecated alias
14723 VK_SURFACE_COUNTER_VBLANK_EXT = VK_SURFACE_COUNTER_VBLANK_BIT_EXT,
14724 VK_SURFACE_COUNTER_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
14725} VkSurfaceCounterFlagBitsEXT;
14726typedef VkFlags VkSurfaceCounterFlagsEXT;
14727typedef struct VkSurfaceCapabilities2EXT {
14728 VkStructureType sType;
14729 void* pNext;
14730 uint32_t minImageCount;
14731 uint32_t maxImageCount;
14732 VkExtent2D currentExtent;
14733 VkExtent2D minImageExtent;
14734 VkExtent2D maxImageExtent;
14735 uint32_t maxImageArrayLayers;
14736 VkSurfaceTransformFlagsKHR supportedTransforms;
14737 VkSurfaceTransformFlagBitsKHR currentTransform;
14738 VkCompositeAlphaFlagsKHR supportedCompositeAlpha;
14739 VkImageUsageFlags supportedUsageFlags;
14740 VkSurfaceCounterFlagsEXT supportedSurfaceCounters;
14741} VkSurfaceCapabilities2EXT;
14742
14743typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSurfaceCapabilities2EXT)(VkPhysicalDevice physicalDevice, VkSurfaceKHR surface, VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
14744
14745#ifndef VK_NO_PROTOTYPES
14746#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14747VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSurfaceCapabilities2EXT(
14748 VkPhysicalDevice physicalDevice,
14749 VkSurfaceKHR surface,
14750 VkSurfaceCapabilities2EXT* pSurfaceCapabilities);
14751#endif
14752#endif
14753
14754
14755// VK_EXT_display_control is a preprocessor guard. Do not pass it to API calls.
14756#define VK_EXT_display_control 1
14757#define VK_EXT_DISPLAY_CONTROL_SPEC_VERSION 1
14758#define VK_EXT_DISPLAY_CONTROL_EXTENSION_NAME "VK_EXT_display_control"
14759
14760typedef enum VkDisplayPowerStateEXT {
14761 VK_DISPLAY_POWER_STATE_OFF_EXT = 0,
14762 VK_DISPLAY_POWER_STATE_SUSPEND_EXT = 1,
14763 VK_DISPLAY_POWER_STATE_ON_EXT = 2,
14764 VK_DISPLAY_POWER_STATE_MAX_ENUM_EXT = 0x7FFFFFFF
14765} VkDisplayPowerStateEXT;
14766
14767typedef enum VkDeviceEventTypeEXT {
14768 VK_DEVICE_EVENT_TYPE_DISPLAY_HOTPLUG_EXT = 0,
14769 VK_DEVICE_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
14770} VkDeviceEventTypeEXT;
14771
14772typedef enum VkDisplayEventTypeEXT {
14773 VK_DISPLAY_EVENT_TYPE_FIRST_PIXEL_OUT_EXT = 0,
14774 VK_DISPLAY_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
14775} VkDisplayEventTypeEXT;
14776typedef struct VkDisplayPowerInfoEXT {
14777 VkStructureType sType;
14778 const void* pNext;
14779 VkDisplayPowerStateEXT powerState;
14780} VkDisplayPowerInfoEXT;
14781
14782typedef struct VkDeviceEventInfoEXT {
14783 VkStructureType sType;
14784 const void* pNext;
14785 VkDeviceEventTypeEXT deviceEvent;
14786} VkDeviceEventInfoEXT;
14787
14788typedef struct VkDisplayEventInfoEXT {
14789 VkStructureType sType;
14790 const void* pNext;
14791 VkDisplayEventTypeEXT displayEvent;
14792} VkDisplayEventInfoEXT;
14793
14794typedef struct VkSwapchainCounterCreateInfoEXT {
14795 VkStructureType sType;
14796 const void* pNext;
14797 VkSurfaceCounterFlagsEXT surfaceCounters;
14798} VkSwapchainCounterCreateInfoEXT;
14799
14800typedef VkResult (VKAPI_PTR *PFN_vkDisplayPowerControlEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayPowerInfoEXT* pDisplayPowerInfo);
14801typedef VkResult (VKAPI_PTR *PFN_vkRegisterDeviceEventEXT)(VkDevice device, const VkDeviceEventInfoEXT* pDeviceEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
14802typedef VkResult (VKAPI_PTR *PFN_vkRegisterDisplayEventEXT)(VkDevice device, VkDisplayKHR display, const VkDisplayEventInfoEXT* pDisplayEventInfo, const VkAllocationCallbacks* pAllocator, VkFence* pFence);
14803typedef VkResult (VKAPI_PTR *PFN_vkGetSwapchainCounterEXT)(VkDevice device, VkSwapchainKHR swapchain, VkSurfaceCounterFlagBitsEXT counter, uint64_t* pCounterValue);
14804
14805#ifndef VK_NO_PROTOTYPES
14806#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14807VKAPI_ATTR VkResult VKAPI_CALL vkDisplayPowerControlEXT(
14808 VkDevice device,
14809 VkDisplayKHR display,
14810 const VkDisplayPowerInfoEXT* pDisplayPowerInfo);
14811#endif
14812
14813#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14814VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDeviceEventEXT(
14815 VkDevice device,
14816 const VkDeviceEventInfoEXT* pDeviceEventInfo,
14817 const VkAllocationCallbacks* pAllocator,
14818 VkFence* pFence);
14819#endif
14820
14821#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14822VKAPI_ATTR VkResult VKAPI_CALL vkRegisterDisplayEventEXT(
14823 VkDevice device,
14824 VkDisplayKHR display,
14825 const VkDisplayEventInfoEXT* pDisplayEventInfo,
14826 const VkAllocationCallbacks* pAllocator,
14827 VkFence* pFence);
14828#endif
14829
14830#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14831VKAPI_ATTR VkResult VKAPI_CALL vkGetSwapchainCounterEXT(
14832 VkDevice device,
14833 VkSwapchainKHR swapchain,
14834 VkSurfaceCounterFlagBitsEXT counter,
14835 uint64_t* pCounterValue);
14836#endif
14837#endif
14838
14839
14840// VK_GOOGLE_display_timing is a preprocessor guard. Do not pass it to API calls.
14841#define VK_GOOGLE_display_timing 1
14842#define VK_GOOGLE_DISPLAY_TIMING_SPEC_VERSION 1
14843#define VK_GOOGLE_DISPLAY_TIMING_EXTENSION_NAME "VK_GOOGLE_display_timing"
14844typedef struct VkRefreshCycleDurationGOOGLE {
14845 uint64_t refreshDuration;
14846} VkRefreshCycleDurationGOOGLE;
14847
14848typedef struct VkPastPresentationTimingGOOGLE {
14849 uint32_t presentID;
14850 uint64_t desiredPresentTime;
14851 uint64_t actualPresentTime;
14852 uint64_t earliestPresentTime;
14853 uint64_t presentMargin;
14854} VkPastPresentationTimingGOOGLE;
14855
14856typedef struct VkPresentTimeGOOGLE {
14857 uint32_t presentID;
14858 uint64_t desiredPresentTime;
14859} VkPresentTimeGOOGLE;
14860
14861typedef struct VkPresentTimesInfoGOOGLE {
14862 VkStructureType sType;
14863 const void* pNext;
14864 uint32_t swapchainCount;
14865 const VkPresentTimeGOOGLE* pTimes;
14866} VkPresentTimesInfoGOOGLE;
14867
14868typedef VkResult (VKAPI_PTR *PFN_vkGetRefreshCycleDurationGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties);
14869typedef VkResult (VKAPI_PTR *PFN_vkGetPastPresentationTimingGOOGLE)(VkDevice device, VkSwapchainKHR swapchain, uint32_t* pPresentationTimingCount, VkPastPresentationTimingGOOGLE* pPresentationTimings);
14870
14871#ifndef VK_NO_PROTOTYPES
14872#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14873VKAPI_ATTR VkResult VKAPI_CALL vkGetRefreshCycleDurationGOOGLE(
14874 VkDevice device,
14875 VkSwapchainKHR swapchain,
14876 VkRefreshCycleDurationGOOGLE* pDisplayTimingProperties);
14877#endif
14878
14879#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14880VKAPI_ATTR VkResult VKAPI_CALL vkGetPastPresentationTimingGOOGLE(
14881 VkDevice device,
14882 VkSwapchainKHR swapchain,
14883 uint32_t* pPresentationTimingCount,
14884 VkPastPresentationTimingGOOGLE* pPresentationTimings);
14885#endif
14886#endif
14887
14888
14889// VK_NV_sample_mask_override_coverage is a preprocessor guard. Do not pass it to API calls.
14890#define VK_NV_sample_mask_override_coverage 1
14891#define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_SPEC_VERSION 1
14892#define VK_NV_SAMPLE_MASK_OVERRIDE_COVERAGE_EXTENSION_NAME "VK_NV_sample_mask_override_coverage"
14893
14894
14895// VK_NV_geometry_shader_passthrough is a preprocessor guard. Do not pass it to API calls.
14896#define VK_NV_geometry_shader_passthrough 1
14897#define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_SPEC_VERSION 1
14898#define VK_NV_GEOMETRY_SHADER_PASSTHROUGH_EXTENSION_NAME "VK_NV_geometry_shader_passthrough"
14899
14900
14901// VK_NV_viewport_array2 is a preprocessor guard. Do not pass it to API calls.
14902#define VK_NV_viewport_array2 1
14903#define VK_NV_VIEWPORT_ARRAY_2_SPEC_VERSION 1
14904#define VK_NV_VIEWPORT_ARRAY_2_EXTENSION_NAME "VK_NV_viewport_array2"
14905// VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION is a deprecated alias
14906#define VK_NV_VIEWPORT_ARRAY2_SPEC_VERSION VK_NV_VIEWPORT_ARRAY_2_SPEC_VERSION
14907// VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME is a deprecated alias
14908#define VK_NV_VIEWPORT_ARRAY2_EXTENSION_NAME VK_NV_VIEWPORT_ARRAY_2_EXTENSION_NAME
14909
14910
14911// VK_NVX_multiview_per_view_attributes is a preprocessor guard. Do not pass it to API calls.
14912#define VK_NVX_multiview_per_view_attributes 1
14913#define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_SPEC_VERSION 1
14914#define VK_NVX_MULTIVIEW_PER_VIEW_ATTRIBUTES_EXTENSION_NAME "VK_NVX_multiview_per_view_attributes"
14915typedef struct VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX {
14916 VkStructureType sType;
14917 void* pNext;
14918 VkBool32 perViewPositionAllComponents;
14919} VkPhysicalDeviceMultiviewPerViewAttributesPropertiesNVX;
14920
14921typedef struct VkMultiviewPerViewAttributesInfoNVX {
14922 VkStructureType sType;
14923 const void* pNext;
14924 VkBool32 perViewAttributes;
14925 VkBool32 perViewAttributesPositionXOnly;
14926} VkMultiviewPerViewAttributesInfoNVX;
14927
14928
14929
14930// VK_NV_viewport_swizzle is a preprocessor guard. Do not pass it to API calls.
14931#define VK_NV_viewport_swizzle 1
14932#define VK_NV_VIEWPORT_SWIZZLE_SPEC_VERSION 1
14933#define VK_NV_VIEWPORT_SWIZZLE_EXTENSION_NAME "VK_NV_viewport_swizzle"
14934
14935typedef enum VkViewportCoordinateSwizzleNV {
14936 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_X_NV = 0,
14937 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_X_NV = 1,
14938 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Y_NV = 2,
14939 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Y_NV = 3,
14940 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_Z_NV = 4,
14941 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_Z_NV = 5,
14942 VK_VIEWPORT_COORDINATE_SWIZZLE_POSITIVE_W_NV = 6,
14943 VK_VIEWPORT_COORDINATE_SWIZZLE_NEGATIVE_W_NV = 7,
14944 VK_VIEWPORT_COORDINATE_SWIZZLE_MAX_ENUM_NV = 0x7FFFFFFF
14945} VkViewportCoordinateSwizzleNV;
14946typedef VkFlags VkPipelineViewportSwizzleStateCreateFlagsNV;
14947typedef struct VkViewportSwizzleNV {
14948 VkViewportCoordinateSwizzleNV x;
14949 VkViewportCoordinateSwizzleNV y;
14950 VkViewportCoordinateSwizzleNV z;
14951 VkViewportCoordinateSwizzleNV w;
14952} VkViewportSwizzleNV;
14953
14954typedef struct VkPipelineViewportSwizzleStateCreateInfoNV {
14955 VkStructureType sType;
14956 const void* pNext;
14957 VkPipelineViewportSwizzleStateCreateFlagsNV flags;
14958 uint32_t viewportCount;
14959 const VkViewportSwizzleNV* pViewportSwizzles;
14960} VkPipelineViewportSwizzleStateCreateInfoNV;
14961
14962
14963
14964// VK_EXT_discard_rectangles is a preprocessor guard. Do not pass it to API calls.
14965#define VK_EXT_discard_rectangles 1
14966#define VK_EXT_DISCARD_RECTANGLES_SPEC_VERSION 2
14967#define VK_EXT_DISCARD_RECTANGLES_EXTENSION_NAME "VK_EXT_discard_rectangles"
14968
14969typedef enum VkDiscardRectangleModeEXT {
14970 VK_DISCARD_RECTANGLE_MODE_INCLUSIVE_EXT = 0,
14971 VK_DISCARD_RECTANGLE_MODE_EXCLUSIVE_EXT = 1,
14972 VK_DISCARD_RECTANGLE_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
14973} VkDiscardRectangleModeEXT;
14974typedef VkFlags VkPipelineDiscardRectangleStateCreateFlagsEXT;
14975typedef struct VkPhysicalDeviceDiscardRectanglePropertiesEXT {
14976 VkStructureType sType;
14977 void* pNext;
14978 uint32_t maxDiscardRectangles;
14979} VkPhysicalDeviceDiscardRectanglePropertiesEXT;
14980
14981typedef struct VkPipelineDiscardRectangleStateCreateInfoEXT {
14982 VkStructureType sType;
14983 const void* pNext;
14984 VkPipelineDiscardRectangleStateCreateFlagsEXT flags;
14985 VkDiscardRectangleModeEXT discardRectangleMode;
14986 uint32_t discardRectangleCount;
14987 const VkRect2D* pDiscardRectangles;
14988} VkPipelineDiscardRectangleStateCreateInfoEXT;
14989
14990typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEXT)(VkCommandBuffer commandBuffer, uint32_t firstDiscardRectangle, uint32_t discardRectangleCount, const VkRect2D* pDiscardRectangles);
14991typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 discardRectangleEnable);
14992typedef void (VKAPI_PTR *PFN_vkCmdSetDiscardRectangleModeEXT)(VkCommandBuffer commandBuffer, VkDiscardRectangleModeEXT discardRectangleMode);
14993
14994#ifndef VK_NO_PROTOTYPES
14995#ifndef VK_ONLY_EXPORTED_PROTOTYPES
14996VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEXT(
14997 VkCommandBuffer commandBuffer,
14998 uint32_t firstDiscardRectangle,
14999 uint32_t discardRectangleCount,
15000 const VkRect2D* pDiscardRectangles);
15001#endif
15002
15003#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15004VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleEnableEXT(
15005 VkCommandBuffer commandBuffer,
15006 VkBool32 discardRectangleEnable);
15007#endif
15008
15009#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15010VKAPI_ATTR void VKAPI_CALL vkCmdSetDiscardRectangleModeEXT(
15011 VkCommandBuffer commandBuffer,
15012 VkDiscardRectangleModeEXT discardRectangleMode);
15013#endif
15014#endif
15015
15016
15017// VK_EXT_conservative_rasterization is a preprocessor guard. Do not pass it to API calls.
15018#define VK_EXT_conservative_rasterization 1
15019#define VK_EXT_CONSERVATIVE_RASTERIZATION_SPEC_VERSION 1
15020#define VK_EXT_CONSERVATIVE_RASTERIZATION_EXTENSION_NAME "VK_EXT_conservative_rasterization"
15021
15022typedef enum VkConservativeRasterizationModeEXT {
15023 VK_CONSERVATIVE_RASTERIZATION_MODE_DISABLED_EXT = 0,
15024 VK_CONSERVATIVE_RASTERIZATION_MODE_OVERESTIMATE_EXT = 1,
15025 VK_CONSERVATIVE_RASTERIZATION_MODE_UNDERESTIMATE_EXT = 2,
15026 VK_CONSERVATIVE_RASTERIZATION_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
15027} VkConservativeRasterizationModeEXT;
15028typedef VkFlags VkPipelineRasterizationConservativeStateCreateFlagsEXT;
15029typedef struct VkPhysicalDeviceConservativeRasterizationPropertiesEXT {
15030 VkStructureType sType;
15031 void* pNext;
15032 float primitiveOverestimationSize;
15033 float maxExtraPrimitiveOverestimationSize;
15034 float extraPrimitiveOverestimationSizeGranularity;
15035 VkBool32 primitiveUnderestimation;
15036 VkBool32 conservativePointAndLineRasterization;
15037 VkBool32 degenerateTrianglesRasterized;
15038 VkBool32 degenerateLinesRasterized;
15039 VkBool32 fullyCoveredFragmentShaderInputVariable;
15040 VkBool32 conservativeRasterizationPostDepthCoverage;
15041} VkPhysicalDeviceConservativeRasterizationPropertiesEXT;
15042
15043typedef struct VkPipelineRasterizationConservativeStateCreateInfoEXT {
15044 VkStructureType sType;
15045 const void* pNext;
15046 VkPipelineRasterizationConservativeStateCreateFlagsEXT flags;
15047 VkConservativeRasterizationModeEXT conservativeRasterizationMode;
15048 float extraPrimitiveOverestimationSize;
15049} VkPipelineRasterizationConservativeStateCreateInfoEXT;
15050
15051
15052
15053// VK_EXT_depth_clip_enable is a preprocessor guard. Do not pass it to API calls.
15054#define VK_EXT_depth_clip_enable 1
15055#define VK_EXT_DEPTH_CLIP_ENABLE_SPEC_VERSION 1
15056#define VK_EXT_DEPTH_CLIP_ENABLE_EXTENSION_NAME "VK_EXT_depth_clip_enable"
15057typedef VkFlags VkPipelineRasterizationDepthClipStateCreateFlagsEXT;
15058typedef struct VkPhysicalDeviceDepthClipEnableFeaturesEXT {
15059 VkStructureType sType;
15060 void* pNext;
15061 VkBool32 depthClipEnable;
15062} VkPhysicalDeviceDepthClipEnableFeaturesEXT;
15063
15064typedef struct VkPipelineRasterizationDepthClipStateCreateInfoEXT {
15065 VkStructureType sType;
15066 const void* pNext;
15067 VkPipelineRasterizationDepthClipStateCreateFlagsEXT flags;
15068 VkBool32 depthClipEnable;
15069} VkPipelineRasterizationDepthClipStateCreateInfoEXT;
15070
15071
15072
15073// VK_EXT_swapchain_colorspace is a preprocessor guard. Do not pass it to API calls.
15074#define VK_EXT_swapchain_colorspace 1
15075#define VK_EXT_SWAPCHAIN_COLOR_SPACE_SPEC_VERSION 5
15076#define VK_EXT_SWAPCHAIN_COLOR_SPACE_EXTENSION_NAME "VK_EXT_swapchain_colorspace"
15077
15078
15079// VK_EXT_hdr_metadata is a preprocessor guard. Do not pass it to API calls.
15080#define VK_EXT_hdr_metadata 1
15081#define VK_EXT_HDR_METADATA_SPEC_VERSION 3
15082#define VK_EXT_HDR_METADATA_EXTENSION_NAME "VK_EXT_hdr_metadata"
15083typedef struct VkXYColorEXT {
15084 float x;
15085 float y;
15086} VkXYColorEXT;
15087
15088typedef struct VkHdrMetadataEXT {
15089 VkStructureType sType;
15090 const void* pNext;
15091 VkXYColorEXT displayPrimaryRed;
15092 VkXYColorEXT displayPrimaryGreen;
15093 VkXYColorEXT displayPrimaryBlue;
15094 VkXYColorEXT whitePoint;
15095 float maxLuminance;
15096 float minLuminance;
15097 float maxContentLightLevel;
15098 float maxFrameAverageLightLevel;
15099} VkHdrMetadataEXT;
15100
15101typedef void (VKAPI_PTR *PFN_vkSetHdrMetadataEXT)(VkDevice device, uint32_t swapchainCount, const VkSwapchainKHR* pSwapchains, const VkHdrMetadataEXT* pMetadata);
15102
15103#ifndef VK_NO_PROTOTYPES
15104#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15105VKAPI_ATTR void VKAPI_CALL vkSetHdrMetadataEXT(
15106 VkDevice device,
15107 uint32_t swapchainCount,
15108 const VkSwapchainKHR* pSwapchains,
15109 const VkHdrMetadataEXT* pMetadata);
15110#endif
15111#endif
15112
15113
15114// VK_IMG_relaxed_line_rasterization is a preprocessor guard. Do not pass it to API calls.
15115#define VK_IMG_relaxed_line_rasterization 1
15116#define VK_IMG_RELAXED_LINE_RASTERIZATION_SPEC_VERSION 1
15117#define VK_IMG_RELAXED_LINE_RASTERIZATION_EXTENSION_NAME "VK_IMG_relaxed_line_rasterization"
15118typedef struct VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG {
15119 VkStructureType sType;
15120 void* pNext;
15121 VkBool32 relaxedLineRasterization;
15122} VkPhysicalDeviceRelaxedLineRasterizationFeaturesIMG;
15123
15124
15125
15126// VK_EXT_external_memory_dma_buf is a preprocessor guard. Do not pass it to API calls.
15127#define VK_EXT_external_memory_dma_buf 1
15128#define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_SPEC_VERSION 1
15129#define VK_EXT_EXTERNAL_MEMORY_DMA_BUF_EXTENSION_NAME "VK_EXT_external_memory_dma_buf"
15130
15131
15132// VK_EXT_queue_family_foreign is a preprocessor guard. Do not pass it to API calls.
15133#define VK_EXT_queue_family_foreign 1
15134#define VK_EXT_QUEUE_FAMILY_FOREIGN_SPEC_VERSION 1
15135#define VK_EXT_QUEUE_FAMILY_FOREIGN_EXTENSION_NAME "VK_EXT_queue_family_foreign"
15136#define VK_QUEUE_FAMILY_FOREIGN_EXT (~2U)
15137
15138
15139// VK_EXT_debug_utils is a preprocessor guard. Do not pass it to API calls.
15140#define VK_EXT_debug_utils 1
15141VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDebugUtilsMessengerEXT)
15142#define VK_EXT_DEBUG_UTILS_SPEC_VERSION 2
15143#define VK_EXT_DEBUG_UTILS_EXTENSION_NAME "VK_EXT_debug_utils"
15144typedef VkFlags VkDebugUtilsMessengerCallbackDataFlagsEXT;
15145
15146typedef enum VkDebugUtilsMessageSeverityFlagBitsEXT {
15147 VK_DEBUG_UTILS_MESSAGE_SEVERITY_VERBOSE_BIT_EXT = 0x00000001,
15148 VK_DEBUG_UTILS_MESSAGE_SEVERITY_INFO_BIT_EXT = 0x00000010,
15149 VK_DEBUG_UTILS_MESSAGE_SEVERITY_WARNING_BIT_EXT = 0x00000100,
15150 VK_DEBUG_UTILS_MESSAGE_SEVERITY_ERROR_BIT_EXT = 0x00001000,
15151 VK_DEBUG_UTILS_MESSAGE_SEVERITY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
15152} VkDebugUtilsMessageSeverityFlagBitsEXT;
15153
15154typedef enum VkDebugUtilsMessageTypeFlagBitsEXT {
15155 VK_DEBUG_UTILS_MESSAGE_TYPE_GENERAL_BIT_EXT = 0x00000001,
15156 VK_DEBUG_UTILS_MESSAGE_TYPE_VALIDATION_BIT_EXT = 0x00000002,
15157 VK_DEBUG_UTILS_MESSAGE_TYPE_PERFORMANCE_BIT_EXT = 0x00000004,
15158 VK_DEBUG_UTILS_MESSAGE_TYPE_DEVICE_ADDRESS_BINDING_BIT_EXT = 0x00000008,
15159 VK_DEBUG_UTILS_MESSAGE_TYPE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
15160} VkDebugUtilsMessageTypeFlagBitsEXT;
15161typedef VkFlags VkDebugUtilsMessageTypeFlagsEXT;
15162typedef VkFlags VkDebugUtilsMessageSeverityFlagsEXT;
15163typedef VkFlags VkDebugUtilsMessengerCreateFlagsEXT;
15164typedef struct VkDebugUtilsLabelEXT {
15165 VkStructureType sType;
15166 const void* pNext;
15167 const char* pLabelName;
15168 float color[4];
15169} VkDebugUtilsLabelEXT;
15170
15171typedef struct VkDebugUtilsObjectNameInfoEXT {
15172 VkStructureType sType;
15173 const void* pNext;
15174 VkObjectType objectType;
15175 uint64_t objectHandle;
15176 const char* pObjectName;
15177} VkDebugUtilsObjectNameInfoEXT;
15178
15179typedef struct VkDebugUtilsMessengerCallbackDataEXT {
15180 VkStructureType sType;
15181 const void* pNext;
15182 VkDebugUtilsMessengerCallbackDataFlagsEXT flags;
15183 const char* pMessageIdName;
15184 int32_t messageIdNumber;
15185 const char* pMessage;
15186 uint32_t queueLabelCount;
15187 const VkDebugUtilsLabelEXT* pQueueLabels;
15188 uint32_t cmdBufLabelCount;
15189 const VkDebugUtilsLabelEXT* pCmdBufLabels;
15190 uint32_t objectCount;
15191 const VkDebugUtilsObjectNameInfoEXT* pObjects;
15192} VkDebugUtilsMessengerCallbackDataEXT;
15193
15194typedef VkBool32 (VKAPI_PTR *PFN_vkDebugUtilsMessengerCallbackEXT)(
15195 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
15196 VkDebugUtilsMessageTypeFlagsEXT messageTypes,
15197 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData,
15198 void* pUserData);
15199
15200typedef struct VkDebugUtilsMessengerCreateInfoEXT {
15201 VkStructureType sType;
15202 const void* pNext;
15203 VkDebugUtilsMessengerCreateFlagsEXT flags;
15204 VkDebugUtilsMessageSeverityFlagsEXT messageSeverity;
15205 VkDebugUtilsMessageTypeFlagsEXT messageType;
15206 PFN_vkDebugUtilsMessengerCallbackEXT pfnUserCallback;
15207 void* pUserData;
15208} VkDebugUtilsMessengerCreateInfoEXT;
15209
15210typedef struct VkDebugUtilsObjectTagInfoEXT {
15211 VkStructureType sType;
15212 const void* pNext;
15213 VkObjectType objectType;
15214 uint64_t objectHandle;
15215 uint64_t tagName;
15216 size_t tagSize;
15217 const void* pTag;
15218} VkDebugUtilsObjectTagInfoEXT;
15219
15220typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectNameEXT)(VkDevice device, const VkDebugUtilsObjectNameInfoEXT* pNameInfo);
15221typedef VkResult (VKAPI_PTR *PFN_vkSetDebugUtilsObjectTagEXT)(VkDevice device, const VkDebugUtilsObjectTagInfoEXT* pTagInfo);
15222typedef void (VKAPI_PTR *PFN_vkQueueBeginDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo);
15223typedef void (VKAPI_PTR *PFN_vkQueueEndDebugUtilsLabelEXT)(VkQueue queue);
15224typedef void (VKAPI_PTR *PFN_vkQueueInsertDebugUtilsLabelEXT)(VkQueue queue, const VkDebugUtilsLabelEXT* pLabelInfo);
15225typedef void (VKAPI_PTR *PFN_vkCmdBeginDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo);
15226typedef void (VKAPI_PTR *PFN_vkCmdEndDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer);
15227typedef void (VKAPI_PTR *PFN_vkCmdInsertDebugUtilsLabelEXT)(VkCommandBuffer commandBuffer, const VkDebugUtilsLabelEXT* pLabelInfo);
15228typedef VkResult (VKAPI_PTR *PFN_vkCreateDebugUtilsMessengerEXT)(VkInstance instance, const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDebugUtilsMessengerEXT* pMessenger);
15229typedef void (VKAPI_PTR *PFN_vkDestroyDebugUtilsMessengerEXT)(VkInstance instance, VkDebugUtilsMessengerEXT messenger, const VkAllocationCallbacks* pAllocator);
15230typedef void (VKAPI_PTR *PFN_vkSubmitDebugUtilsMessageEXT)(VkInstance instance, VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity, VkDebugUtilsMessageTypeFlagsEXT messageTypes, const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData);
15231
15232#ifndef VK_NO_PROTOTYPES
15233#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15234VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectNameEXT(
15235 VkDevice device,
15236 const VkDebugUtilsObjectNameInfoEXT* pNameInfo);
15237#endif
15238
15239#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15240VKAPI_ATTR VkResult VKAPI_CALL vkSetDebugUtilsObjectTagEXT(
15241 VkDevice device,
15242 const VkDebugUtilsObjectTagInfoEXT* pTagInfo);
15243#endif
15244
15245#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15246VKAPI_ATTR void VKAPI_CALL vkQueueBeginDebugUtilsLabelEXT(
15247 VkQueue queue,
15248 const VkDebugUtilsLabelEXT* pLabelInfo);
15249#endif
15250
15251#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15252VKAPI_ATTR void VKAPI_CALL vkQueueEndDebugUtilsLabelEXT(
15253 VkQueue queue);
15254#endif
15255
15256#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15257VKAPI_ATTR void VKAPI_CALL vkQueueInsertDebugUtilsLabelEXT(
15258 VkQueue queue,
15259 const VkDebugUtilsLabelEXT* pLabelInfo);
15260#endif
15261
15262#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15263VKAPI_ATTR void VKAPI_CALL vkCmdBeginDebugUtilsLabelEXT(
15264 VkCommandBuffer commandBuffer,
15265 const VkDebugUtilsLabelEXT* pLabelInfo);
15266#endif
15267
15268#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15269VKAPI_ATTR void VKAPI_CALL vkCmdEndDebugUtilsLabelEXT(
15270 VkCommandBuffer commandBuffer);
15271#endif
15272
15273#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15274VKAPI_ATTR void VKAPI_CALL vkCmdInsertDebugUtilsLabelEXT(
15275 VkCommandBuffer commandBuffer,
15276 const VkDebugUtilsLabelEXT* pLabelInfo);
15277#endif
15278
15279#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15280VKAPI_ATTR VkResult VKAPI_CALL vkCreateDebugUtilsMessengerEXT(
15281 VkInstance instance,
15282 const VkDebugUtilsMessengerCreateInfoEXT* pCreateInfo,
15283 const VkAllocationCallbacks* pAllocator,
15284 VkDebugUtilsMessengerEXT* pMessenger);
15285#endif
15286
15287#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15288VKAPI_ATTR void VKAPI_CALL vkDestroyDebugUtilsMessengerEXT(
15289 VkInstance instance,
15290 VkDebugUtilsMessengerEXT messenger,
15291 const VkAllocationCallbacks* pAllocator);
15292#endif
15293
15294#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15295VKAPI_ATTR void VKAPI_CALL vkSubmitDebugUtilsMessageEXT(
15296 VkInstance instance,
15297 VkDebugUtilsMessageSeverityFlagBitsEXT messageSeverity,
15298 VkDebugUtilsMessageTypeFlagsEXT messageTypes,
15299 const VkDebugUtilsMessengerCallbackDataEXT* pCallbackData);
15300#endif
15301#endif
15302
15303
15304// VK_EXT_sampler_filter_minmax is a preprocessor guard. Do not pass it to API calls.
15305#define VK_EXT_sampler_filter_minmax 1
15306#define VK_EXT_SAMPLER_FILTER_MINMAX_SPEC_VERSION 2
15307#define VK_EXT_SAMPLER_FILTER_MINMAX_EXTENSION_NAME "VK_EXT_sampler_filter_minmax"
15308typedef VkSamplerReductionMode VkSamplerReductionModeEXT;
15309
15310typedef VkSamplerReductionModeCreateInfo VkSamplerReductionModeCreateInfoEXT;
15311
15312typedef VkPhysicalDeviceSamplerFilterMinmaxProperties VkPhysicalDeviceSamplerFilterMinmaxPropertiesEXT;
15313
15314
15315
15316// VK_AMD_gpu_shader_int16 is a preprocessor guard. Do not pass it to API calls.
15317#define VK_AMD_gpu_shader_int16 1
15318#define VK_AMD_GPU_SHADER_INT16_SPEC_VERSION 2
15319#define VK_AMD_GPU_SHADER_INT16_EXTENSION_NAME "VK_AMD_gpu_shader_int16"
15320
15321
15322// VK_AMD_mixed_attachment_samples is a preprocessor guard. Do not pass it to API calls.
15323#define VK_AMD_mixed_attachment_samples 1
15324#define VK_AMD_MIXED_ATTACHMENT_SAMPLES_SPEC_VERSION 1
15325#define VK_AMD_MIXED_ATTACHMENT_SAMPLES_EXTENSION_NAME "VK_AMD_mixed_attachment_samples"
15326typedef struct VkAttachmentSampleCountInfoAMD {
15327 VkStructureType sType;
15328 const void* pNext;
15329 uint32_t colorAttachmentCount;
15330 const VkSampleCountFlagBits* pColorAttachmentSamples;
15331 VkSampleCountFlagBits depthStencilAttachmentSamples;
15332} VkAttachmentSampleCountInfoAMD;
15333
15334
15335
15336// VK_AMD_shader_fragment_mask is a preprocessor guard. Do not pass it to API calls.
15337#define VK_AMD_shader_fragment_mask 1
15338#define VK_AMD_SHADER_FRAGMENT_MASK_SPEC_VERSION 1
15339#define VK_AMD_SHADER_FRAGMENT_MASK_EXTENSION_NAME "VK_AMD_shader_fragment_mask"
15340
15341
15342// VK_EXT_inline_uniform_block is a preprocessor guard. Do not pass it to API calls.
15343#define VK_EXT_inline_uniform_block 1
15344#define VK_EXT_INLINE_UNIFORM_BLOCK_SPEC_VERSION 1
15345#define VK_EXT_INLINE_UNIFORM_BLOCK_EXTENSION_NAME "VK_EXT_inline_uniform_block"
15346typedef VkPhysicalDeviceInlineUniformBlockFeatures VkPhysicalDeviceInlineUniformBlockFeaturesEXT;
15347
15348typedef VkPhysicalDeviceInlineUniformBlockProperties VkPhysicalDeviceInlineUniformBlockPropertiesEXT;
15349
15350typedef VkWriteDescriptorSetInlineUniformBlock VkWriteDescriptorSetInlineUniformBlockEXT;
15351
15352typedef VkDescriptorPoolInlineUniformBlockCreateInfo VkDescriptorPoolInlineUniformBlockCreateInfoEXT;
15353
15354
15355
15356// VK_EXT_shader_stencil_export is a preprocessor guard. Do not pass it to API calls.
15357#define VK_EXT_shader_stencil_export 1
15358#define VK_EXT_SHADER_STENCIL_EXPORT_SPEC_VERSION 1
15359#define VK_EXT_SHADER_STENCIL_EXPORT_EXTENSION_NAME "VK_EXT_shader_stencil_export"
15360
15361
15362// VK_EXT_sample_locations is a preprocessor guard. Do not pass it to API calls.
15363#define VK_EXT_sample_locations 1
15364#define VK_EXT_SAMPLE_LOCATIONS_SPEC_VERSION 1
15365#define VK_EXT_SAMPLE_LOCATIONS_EXTENSION_NAME "VK_EXT_sample_locations"
15366typedef struct VkSampleLocationEXT {
15367 float x;
15368 float y;
15369} VkSampleLocationEXT;
15370
15371typedef struct VkSampleLocationsInfoEXT {
15372 VkStructureType sType;
15373 const void* pNext;
15374 VkSampleCountFlagBits sampleLocationsPerPixel;
15375 VkExtent2D sampleLocationGridSize;
15376 uint32_t sampleLocationsCount;
15377 const VkSampleLocationEXT* pSampleLocations;
15378} VkSampleLocationsInfoEXT;
15379
15380typedef struct VkAttachmentSampleLocationsEXT {
15381 uint32_t attachmentIndex;
15382 VkSampleLocationsInfoEXT sampleLocationsInfo;
15383} VkAttachmentSampleLocationsEXT;
15384
15385typedef struct VkSubpassSampleLocationsEXT {
15386 uint32_t subpassIndex;
15387 VkSampleLocationsInfoEXT sampleLocationsInfo;
15388} VkSubpassSampleLocationsEXT;
15389
15390typedef struct VkRenderPassSampleLocationsBeginInfoEXT {
15391 VkStructureType sType;
15392 const void* pNext;
15393 uint32_t attachmentInitialSampleLocationsCount;
15394 const VkAttachmentSampleLocationsEXT* pAttachmentInitialSampleLocations;
15395 uint32_t postSubpassSampleLocationsCount;
15396 const VkSubpassSampleLocationsEXT* pPostSubpassSampleLocations;
15397} VkRenderPassSampleLocationsBeginInfoEXT;
15398
15399typedef struct VkPipelineSampleLocationsStateCreateInfoEXT {
15400 VkStructureType sType;
15401 const void* pNext;
15402 VkBool32 sampleLocationsEnable;
15403 VkSampleLocationsInfoEXT sampleLocationsInfo;
15404} VkPipelineSampleLocationsStateCreateInfoEXT;
15405
15406typedef struct VkPhysicalDeviceSampleLocationsPropertiesEXT {
15407 VkStructureType sType;
15408 void* pNext;
15409 VkSampleCountFlags sampleLocationSampleCounts;
15410 VkExtent2D maxSampleLocationGridSize;
15411 float sampleLocationCoordinateRange[2];
15412 uint32_t sampleLocationSubPixelBits;
15413 VkBool32 variableSampleLocations;
15414} VkPhysicalDeviceSampleLocationsPropertiesEXT;
15415
15416typedef struct VkMultisamplePropertiesEXT {
15417 VkStructureType sType;
15418 void* pNext;
15419 VkExtent2D maxSampleLocationGridSize;
15420} VkMultisamplePropertiesEXT;
15421
15422typedef void (VKAPI_PTR *PFN_vkCmdSetSampleLocationsEXT)(VkCommandBuffer commandBuffer, const VkSampleLocationsInfoEXT* pSampleLocationsInfo);
15423typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceMultisamplePropertiesEXT)(VkPhysicalDevice physicalDevice, VkSampleCountFlagBits samples, VkMultisamplePropertiesEXT* pMultisampleProperties);
15424
15425#ifndef VK_NO_PROTOTYPES
15426#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15427VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleLocationsEXT(
15428 VkCommandBuffer commandBuffer,
15429 const VkSampleLocationsInfoEXT* pSampleLocationsInfo);
15430#endif
15431
15432#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15433VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceMultisamplePropertiesEXT(
15434 VkPhysicalDevice physicalDevice,
15435 VkSampleCountFlagBits samples,
15436 VkMultisamplePropertiesEXT* pMultisampleProperties);
15437#endif
15438#endif
15439
15440
15441// VK_EXT_blend_operation_advanced is a preprocessor guard. Do not pass it to API calls.
15442#define VK_EXT_blend_operation_advanced 1
15443#define VK_EXT_BLEND_OPERATION_ADVANCED_SPEC_VERSION 2
15444#define VK_EXT_BLEND_OPERATION_ADVANCED_EXTENSION_NAME "VK_EXT_blend_operation_advanced"
15445
15446typedef enum VkBlendOverlapEXT {
15447 VK_BLEND_OVERLAP_UNCORRELATED_EXT = 0,
15448 VK_BLEND_OVERLAP_DISJOINT_EXT = 1,
15449 VK_BLEND_OVERLAP_CONJOINT_EXT = 2,
15450 VK_BLEND_OVERLAP_MAX_ENUM_EXT = 0x7FFFFFFF
15451} VkBlendOverlapEXT;
15452typedef struct VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT {
15453 VkStructureType sType;
15454 void* pNext;
15455 VkBool32 advancedBlendCoherentOperations;
15456} VkPhysicalDeviceBlendOperationAdvancedFeaturesEXT;
15457
15458typedef struct VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT {
15459 VkStructureType sType;
15460 void* pNext;
15461 uint32_t advancedBlendMaxColorAttachments;
15462 VkBool32 advancedBlendIndependentBlend;
15463 VkBool32 advancedBlendNonPremultipliedSrcColor;
15464 VkBool32 advancedBlendNonPremultipliedDstColor;
15465 VkBool32 advancedBlendCorrelatedOverlap;
15466 VkBool32 advancedBlendAllOperations;
15467} VkPhysicalDeviceBlendOperationAdvancedPropertiesEXT;
15468
15469typedef struct VkPipelineColorBlendAdvancedStateCreateInfoEXT {
15470 VkStructureType sType;
15471 const void* pNext;
15472 VkBool32 srcPremultiplied;
15473 VkBool32 dstPremultiplied;
15474 VkBlendOverlapEXT blendOverlap;
15475} VkPipelineColorBlendAdvancedStateCreateInfoEXT;
15476
15477
15478
15479// VK_NV_fragment_coverage_to_color is a preprocessor guard. Do not pass it to API calls.
15480#define VK_NV_fragment_coverage_to_color 1
15481#define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_SPEC_VERSION 1
15482#define VK_NV_FRAGMENT_COVERAGE_TO_COLOR_EXTENSION_NAME "VK_NV_fragment_coverage_to_color"
15483typedef VkFlags VkPipelineCoverageToColorStateCreateFlagsNV;
15484typedef struct VkPipelineCoverageToColorStateCreateInfoNV {
15485 VkStructureType sType;
15486 const void* pNext;
15487 VkPipelineCoverageToColorStateCreateFlagsNV flags;
15488 VkBool32 coverageToColorEnable;
15489 uint32_t coverageToColorLocation;
15490} VkPipelineCoverageToColorStateCreateInfoNV;
15491
15492
15493
15494// VK_NV_framebuffer_mixed_samples is a preprocessor guard. Do not pass it to API calls.
15495#define VK_NV_framebuffer_mixed_samples 1
15496#define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_SPEC_VERSION 1
15497#define VK_NV_FRAMEBUFFER_MIXED_SAMPLES_EXTENSION_NAME "VK_NV_framebuffer_mixed_samples"
15498
15499typedef enum VkCoverageModulationModeNV {
15500 VK_COVERAGE_MODULATION_MODE_NONE_NV = 0,
15501 VK_COVERAGE_MODULATION_MODE_RGB_NV = 1,
15502 VK_COVERAGE_MODULATION_MODE_ALPHA_NV = 2,
15503 VK_COVERAGE_MODULATION_MODE_RGBA_NV = 3,
15504 VK_COVERAGE_MODULATION_MODE_MAX_ENUM_NV = 0x7FFFFFFF
15505} VkCoverageModulationModeNV;
15506typedef VkFlags VkPipelineCoverageModulationStateCreateFlagsNV;
15507typedef struct VkPipelineCoverageModulationStateCreateInfoNV {
15508 VkStructureType sType;
15509 const void* pNext;
15510 VkPipelineCoverageModulationStateCreateFlagsNV flags;
15511 VkCoverageModulationModeNV coverageModulationMode;
15512 VkBool32 coverageModulationTableEnable;
15513 uint32_t coverageModulationTableCount;
15514 const float* pCoverageModulationTable;
15515} VkPipelineCoverageModulationStateCreateInfoNV;
15516
15517typedef VkAttachmentSampleCountInfoAMD VkAttachmentSampleCountInfoNV;
15518
15519
15520
15521// VK_NV_fill_rectangle is a preprocessor guard. Do not pass it to API calls.
15522#define VK_NV_fill_rectangle 1
15523#define VK_NV_FILL_RECTANGLE_SPEC_VERSION 1
15524#define VK_NV_FILL_RECTANGLE_EXTENSION_NAME "VK_NV_fill_rectangle"
15525
15526
15527// VK_NV_shader_sm_builtins is a preprocessor guard. Do not pass it to API calls.
15528#define VK_NV_shader_sm_builtins 1
15529#define VK_NV_SHADER_SM_BUILTINS_SPEC_VERSION 1
15530#define VK_NV_SHADER_SM_BUILTINS_EXTENSION_NAME "VK_NV_shader_sm_builtins"
15531typedef struct VkPhysicalDeviceShaderSMBuiltinsPropertiesNV {
15532 VkStructureType sType;
15533 void* pNext;
15534 uint32_t shaderSMCount;
15535 uint32_t shaderWarpsPerSM;
15536} VkPhysicalDeviceShaderSMBuiltinsPropertiesNV;
15537
15538typedef struct VkPhysicalDeviceShaderSMBuiltinsFeaturesNV {
15539 VkStructureType sType;
15540 void* pNext;
15541 VkBool32 shaderSMBuiltins;
15542} VkPhysicalDeviceShaderSMBuiltinsFeaturesNV;
15543
15544
15545
15546// VK_EXT_post_depth_coverage is a preprocessor guard. Do not pass it to API calls.
15547#define VK_EXT_post_depth_coverage 1
15548#define VK_EXT_POST_DEPTH_COVERAGE_SPEC_VERSION 1
15549#define VK_EXT_POST_DEPTH_COVERAGE_EXTENSION_NAME "VK_EXT_post_depth_coverage"
15550
15551
15552// VK_EXT_image_drm_format_modifier is a preprocessor guard. Do not pass it to API calls.
15553#define VK_EXT_image_drm_format_modifier 1
15554#define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_SPEC_VERSION 2
15555#define VK_EXT_IMAGE_DRM_FORMAT_MODIFIER_EXTENSION_NAME "VK_EXT_image_drm_format_modifier"
15556typedef struct VkDrmFormatModifierPropertiesEXT {
15557 uint64_t drmFormatModifier;
15558 uint32_t drmFormatModifierPlaneCount;
15559 VkFormatFeatureFlags drmFormatModifierTilingFeatures;
15560} VkDrmFormatModifierPropertiesEXT;
15561
15562typedef struct VkDrmFormatModifierPropertiesListEXT {
15563 VkStructureType sType;
15564 void* pNext;
15565 uint32_t drmFormatModifierCount;
15566 VkDrmFormatModifierPropertiesEXT* pDrmFormatModifierProperties;
15567} VkDrmFormatModifierPropertiesListEXT;
15568
15569typedef struct VkPhysicalDeviceImageDrmFormatModifierInfoEXT {
15570 VkStructureType sType;
15571 const void* pNext;
15572 uint64_t drmFormatModifier;
15573 VkSharingMode sharingMode;
15574 uint32_t queueFamilyIndexCount;
15575 const uint32_t* pQueueFamilyIndices;
15576} VkPhysicalDeviceImageDrmFormatModifierInfoEXT;
15577
15578typedef struct VkImageDrmFormatModifierListCreateInfoEXT {
15579 VkStructureType sType;
15580 const void* pNext;
15581 uint32_t drmFormatModifierCount;
15582 const uint64_t* pDrmFormatModifiers;
15583} VkImageDrmFormatModifierListCreateInfoEXT;
15584
15585typedef struct VkImageDrmFormatModifierExplicitCreateInfoEXT {
15586 VkStructureType sType;
15587 const void* pNext;
15588 uint64_t drmFormatModifier;
15589 uint32_t drmFormatModifierPlaneCount;
15590 const VkSubresourceLayout* pPlaneLayouts;
15591} VkImageDrmFormatModifierExplicitCreateInfoEXT;
15592
15593typedef struct VkImageDrmFormatModifierPropertiesEXT {
15594 VkStructureType sType;
15595 void* pNext;
15596 uint64_t drmFormatModifier;
15597} VkImageDrmFormatModifierPropertiesEXT;
15598
15599typedef struct VkDrmFormatModifierProperties2EXT {
15600 uint64_t drmFormatModifier;
15601 uint32_t drmFormatModifierPlaneCount;
15602 VkFormatFeatureFlags2 drmFormatModifierTilingFeatures;
15603} VkDrmFormatModifierProperties2EXT;
15604
15605typedef struct VkDrmFormatModifierPropertiesList2EXT {
15606 VkStructureType sType;
15607 void* pNext;
15608 uint32_t drmFormatModifierCount;
15609 VkDrmFormatModifierProperties2EXT* pDrmFormatModifierProperties;
15610} VkDrmFormatModifierPropertiesList2EXT;
15611
15612typedef VkResult (VKAPI_PTR *PFN_vkGetImageDrmFormatModifierPropertiesEXT)(VkDevice device, VkImage image, VkImageDrmFormatModifierPropertiesEXT* pProperties);
15613
15614#ifndef VK_NO_PROTOTYPES
15615#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15616VKAPI_ATTR VkResult VKAPI_CALL vkGetImageDrmFormatModifierPropertiesEXT(
15617 VkDevice device,
15618 VkImage image,
15619 VkImageDrmFormatModifierPropertiesEXT* pProperties);
15620#endif
15621#endif
15622
15623
15624// VK_EXT_validation_cache is a preprocessor guard. Do not pass it to API calls.
15625#define VK_EXT_validation_cache 1
15626VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkValidationCacheEXT)
15627#define VK_EXT_VALIDATION_CACHE_SPEC_VERSION 1
15628#define VK_EXT_VALIDATION_CACHE_EXTENSION_NAME "VK_EXT_validation_cache"
15629
15630typedef enum VkValidationCacheHeaderVersionEXT {
15631 VK_VALIDATION_CACHE_HEADER_VERSION_ONE_EXT = 1,
15632 VK_VALIDATION_CACHE_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF
15633} VkValidationCacheHeaderVersionEXT;
15634typedef VkFlags VkValidationCacheCreateFlagsEXT;
15635typedef struct VkValidationCacheCreateInfoEXT {
15636 VkStructureType sType;
15637 const void* pNext;
15638 VkValidationCacheCreateFlagsEXT flags;
15639 size_t initialDataSize;
15640 const void* pInitialData;
15641} VkValidationCacheCreateInfoEXT;
15642
15643typedef struct VkShaderModuleValidationCacheCreateInfoEXT {
15644 VkStructureType sType;
15645 const void* pNext;
15646 VkValidationCacheEXT validationCache;
15647} VkShaderModuleValidationCacheCreateInfoEXT;
15648
15649typedef VkResult (VKAPI_PTR *PFN_vkCreateValidationCacheEXT)(VkDevice device, const VkValidationCacheCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkValidationCacheEXT* pValidationCache);
15650typedef void (VKAPI_PTR *PFN_vkDestroyValidationCacheEXT)(VkDevice device, VkValidationCacheEXT validationCache, const VkAllocationCallbacks* pAllocator);
15651typedef VkResult (VKAPI_PTR *PFN_vkMergeValidationCachesEXT)(VkDevice device, VkValidationCacheEXT dstCache, uint32_t srcCacheCount, const VkValidationCacheEXT* pSrcCaches);
15652typedef VkResult (VKAPI_PTR *PFN_vkGetValidationCacheDataEXT)(VkDevice device, VkValidationCacheEXT validationCache, size_t* pDataSize, void* pData);
15653
15654#ifndef VK_NO_PROTOTYPES
15655#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15656VKAPI_ATTR VkResult VKAPI_CALL vkCreateValidationCacheEXT(
15657 VkDevice device,
15658 const VkValidationCacheCreateInfoEXT* pCreateInfo,
15659 const VkAllocationCallbacks* pAllocator,
15660 VkValidationCacheEXT* pValidationCache);
15661#endif
15662
15663#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15664VKAPI_ATTR void VKAPI_CALL vkDestroyValidationCacheEXT(
15665 VkDevice device,
15666 VkValidationCacheEXT validationCache,
15667 const VkAllocationCallbacks* pAllocator);
15668#endif
15669
15670#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15671VKAPI_ATTR VkResult VKAPI_CALL vkMergeValidationCachesEXT(
15672 VkDevice device,
15673 VkValidationCacheEXT dstCache,
15674 uint32_t srcCacheCount,
15675 const VkValidationCacheEXT* pSrcCaches);
15676#endif
15677
15678#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15679VKAPI_ATTR VkResult VKAPI_CALL vkGetValidationCacheDataEXT(
15680 VkDevice device,
15681 VkValidationCacheEXT validationCache,
15682 size_t* pDataSize,
15683 void* pData);
15684#endif
15685#endif
15686
15687
15688// VK_EXT_descriptor_indexing is a preprocessor guard. Do not pass it to API calls.
15689#define VK_EXT_descriptor_indexing 1
15690#define VK_EXT_DESCRIPTOR_INDEXING_SPEC_VERSION 2
15691#define VK_EXT_DESCRIPTOR_INDEXING_EXTENSION_NAME "VK_EXT_descriptor_indexing"
15692typedef VkDescriptorBindingFlagBits VkDescriptorBindingFlagBitsEXT;
15693
15694typedef VkDescriptorBindingFlags VkDescriptorBindingFlagsEXT;
15695
15696typedef VkDescriptorSetLayoutBindingFlagsCreateInfo VkDescriptorSetLayoutBindingFlagsCreateInfoEXT;
15697
15698typedef VkPhysicalDeviceDescriptorIndexingFeatures VkPhysicalDeviceDescriptorIndexingFeaturesEXT;
15699
15700typedef VkPhysicalDeviceDescriptorIndexingProperties VkPhysicalDeviceDescriptorIndexingPropertiesEXT;
15701
15702typedef VkDescriptorSetVariableDescriptorCountAllocateInfo VkDescriptorSetVariableDescriptorCountAllocateInfoEXT;
15703
15704typedef VkDescriptorSetVariableDescriptorCountLayoutSupport VkDescriptorSetVariableDescriptorCountLayoutSupportEXT;
15705
15706
15707
15708// VK_EXT_shader_viewport_index_layer is a preprocessor guard. Do not pass it to API calls.
15709#define VK_EXT_shader_viewport_index_layer 1
15710#define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_SPEC_VERSION 1
15711#define VK_EXT_SHADER_VIEWPORT_INDEX_LAYER_EXTENSION_NAME "VK_EXT_shader_viewport_index_layer"
15712
15713
15714// VK_NV_shading_rate_image is a preprocessor guard. Do not pass it to API calls.
15715#define VK_NV_shading_rate_image 1
15716#define VK_NV_SHADING_RATE_IMAGE_SPEC_VERSION 3
15717#define VK_NV_SHADING_RATE_IMAGE_EXTENSION_NAME "VK_NV_shading_rate_image"
15718
15719typedef enum VkShadingRatePaletteEntryNV {
15720 VK_SHADING_RATE_PALETTE_ENTRY_NO_INVOCATIONS_NV = 0,
15721 VK_SHADING_RATE_PALETTE_ENTRY_16_INVOCATIONS_PER_PIXEL_NV = 1,
15722 VK_SHADING_RATE_PALETTE_ENTRY_8_INVOCATIONS_PER_PIXEL_NV = 2,
15723 VK_SHADING_RATE_PALETTE_ENTRY_4_INVOCATIONS_PER_PIXEL_NV = 3,
15724 VK_SHADING_RATE_PALETTE_ENTRY_2_INVOCATIONS_PER_PIXEL_NV = 4,
15725 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_PIXEL_NV = 5,
15726 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X1_PIXELS_NV = 6,
15727 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_1X2_PIXELS_NV = 7,
15728 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X2_PIXELS_NV = 8,
15729 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X2_PIXELS_NV = 9,
15730 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_2X4_PIXELS_NV = 10,
15731 VK_SHADING_RATE_PALETTE_ENTRY_1_INVOCATION_PER_4X4_PIXELS_NV = 11,
15732 VK_SHADING_RATE_PALETTE_ENTRY_MAX_ENUM_NV = 0x7FFFFFFF
15733} VkShadingRatePaletteEntryNV;
15734
15735typedef enum VkCoarseSampleOrderTypeNV {
15736 VK_COARSE_SAMPLE_ORDER_TYPE_DEFAULT_NV = 0,
15737 VK_COARSE_SAMPLE_ORDER_TYPE_CUSTOM_NV = 1,
15738 VK_COARSE_SAMPLE_ORDER_TYPE_PIXEL_MAJOR_NV = 2,
15739 VK_COARSE_SAMPLE_ORDER_TYPE_SAMPLE_MAJOR_NV = 3,
15740 VK_COARSE_SAMPLE_ORDER_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
15741} VkCoarseSampleOrderTypeNV;
15742typedef struct VkShadingRatePaletteNV {
15743 uint32_t shadingRatePaletteEntryCount;
15744 const VkShadingRatePaletteEntryNV* pShadingRatePaletteEntries;
15745} VkShadingRatePaletteNV;
15746
15747typedef struct VkPipelineViewportShadingRateImageStateCreateInfoNV {
15748 VkStructureType sType;
15749 const void* pNext;
15750 VkBool32 shadingRateImageEnable;
15751 uint32_t viewportCount;
15752 const VkShadingRatePaletteNV* pShadingRatePalettes;
15753} VkPipelineViewportShadingRateImageStateCreateInfoNV;
15754
15755typedef struct VkPhysicalDeviceShadingRateImageFeaturesNV {
15756 VkStructureType sType;
15757 void* pNext;
15758 VkBool32 shadingRateImage;
15759 VkBool32 shadingRateCoarseSampleOrder;
15760} VkPhysicalDeviceShadingRateImageFeaturesNV;
15761
15762typedef struct VkPhysicalDeviceShadingRateImagePropertiesNV {
15763 VkStructureType sType;
15764 void* pNext;
15765 VkExtent2D shadingRateTexelSize;
15766 uint32_t shadingRatePaletteSize;
15767 uint32_t shadingRateMaxCoarseSamples;
15768} VkPhysicalDeviceShadingRateImagePropertiesNV;
15769
15770typedef struct VkCoarseSampleLocationNV {
15771 uint32_t pixelX;
15772 uint32_t pixelY;
15773 uint32_t sample;
15774} VkCoarseSampleLocationNV;
15775
15776typedef struct VkCoarseSampleOrderCustomNV {
15777 VkShadingRatePaletteEntryNV shadingRate;
15778 uint32_t sampleCount;
15779 uint32_t sampleLocationCount;
15780 const VkCoarseSampleLocationNV* pSampleLocations;
15781} VkCoarseSampleOrderCustomNV;
15782
15783typedef struct VkPipelineViewportCoarseSampleOrderStateCreateInfoNV {
15784 VkStructureType sType;
15785 const void* pNext;
15786 VkCoarseSampleOrderTypeNV sampleOrderType;
15787 uint32_t customSampleOrderCount;
15788 const VkCoarseSampleOrderCustomNV* pCustomSampleOrders;
15789} VkPipelineViewportCoarseSampleOrderStateCreateInfoNV;
15790
15791typedef void (VKAPI_PTR *PFN_vkCmdBindShadingRateImageNV)(VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout);
15792typedef void (VKAPI_PTR *PFN_vkCmdSetViewportShadingRatePaletteNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkShadingRatePaletteNV* pShadingRatePalettes);
15793typedef void (VKAPI_PTR *PFN_vkCmdSetCoarseSampleOrderNV)(VkCommandBuffer commandBuffer, VkCoarseSampleOrderTypeNV sampleOrderType, uint32_t customSampleOrderCount, const VkCoarseSampleOrderCustomNV* pCustomSampleOrders);
15794
15795#ifndef VK_NO_PROTOTYPES
15796#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15797VKAPI_ATTR void VKAPI_CALL vkCmdBindShadingRateImageNV(
15798 VkCommandBuffer commandBuffer,
15799 VkImageView imageView,
15800 VkImageLayout imageLayout);
15801#endif
15802
15803#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15804VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportShadingRatePaletteNV(
15805 VkCommandBuffer commandBuffer,
15806 uint32_t firstViewport,
15807 uint32_t viewportCount,
15808 const VkShadingRatePaletteNV* pShadingRatePalettes);
15809#endif
15810
15811#ifndef VK_ONLY_EXPORTED_PROTOTYPES
15812VKAPI_ATTR void VKAPI_CALL vkCmdSetCoarseSampleOrderNV(
15813 VkCommandBuffer commandBuffer,
15814 VkCoarseSampleOrderTypeNV sampleOrderType,
15815 uint32_t customSampleOrderCount,
15816 const VkCoarseSampleOrderCustomNV* pCustomSampleOrders);
15817#endif
15818#endif
15819
15820
15821// VK_NV_ray_tracing is a preprocessor guard. Do not pass it to API calls.
15822#define VK_NV_ray_tracing 1
15823VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureNV)
15824#define VK_NV_RAY_TRACING_SPEC_VERSION 3
15825#define VK_NV_RAY_TRACING_EXTENSION_NAME "VK_NV_ray_tracing"
15826#define VK_SHADER_UNUSED_KHR (~0U)
15827#define VK_SHADER_UNUSED_NV VK_SHADER_UNUSED_KHR
15828
15829typedef enum VkRayTracingShaderGroupTypeKHR {
15830 VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR = 0,
15831 VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR = 1,
15832 VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR = 2,
15833 VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_GENERAL_KHR,
15834 VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_TRIANGLES_HIT_GROUP_KHR,
15835 VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_NV = VK_RAY_TRACING_SHADER_GROUP_TYPE_PROCEDURAL_HIT_GROUP_KHR,
15836 VK_RAY_TRACING_SHADER_GROUP_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
15837} VkRayTracingShaderGroupTypeKHR;
15838typedef VkRayTracingShaderGroupTypeKHR VkRayTracingShaderGroupTypeNV;
15839
15840
15841typedef enum VkGeometryTypeKHR {
15842 VK_GEOMETRY_TYPE_TRIANGLES_KHR = 0,
15843 VK_GEOMETRY_TYPE_AABBS_KHR = 1,
15844 VK_GEOMETRY_TYPE_INSTANCES_KHR = 2,
15845 VK_GEOMETRY_TYPE_SPHERES_NV = 1000429004,
15846 VK_GEOMETRY_TYPE_LINEAR_SWEPT_SPHERES_NV = 1000429005,
15847#ifdef VK_ENABLE_BETA_EXTENSIONS
15848 VK_GEOMETRY_TYPE_DENSE_GEOMETRY_FORMAT_TRIANGLES_AMDX = 1000478000,
15849#endif
15850 VK_GEOMETRY_TYPE_TRIANGLES_NV = VK_GEOMETRY_TYPE_TRIANGLES_KHR,
15851 VK_GEOMETRY_TYPE_AABBS_NV = VK_GEOMETRY_TYPE_AABBS_KHR,
15852 VK_GEOMETRY_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
15853} VkGeometryTypeKHR;
15854typedef VkGeometryTypeKHR VkGeometryTypeNV;
15855
15856
15857typedef enum VkAccelerationStructureTypeKHR {
15858 VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR = 0,
15859 VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR = 1,
15860 VK_ACCELERATION_STRUCTURE_TYPE_GENERIC_KHR = 2,
15861 VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_NV = VK_ACCELERATION_STRUCTURE_TYPE_TOP_LEVEL_KHR,
15862 VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_NV = VK_ACCELERATION_STRUCTURE_TYPE_BOTTOM_LEVEL_KHR,
15863 VK_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
15864} VkAccelerationStructureTypeKHR;
15865typedef VkAccelerationStructureTypeKHR VkAccelerationStructureTypeNV;
15866
15867
15868typedef enum VkCopyAccelerationStructureModeKHR {
15869 VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR = 0,
15870 VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR = 1,
15871 VK_COPY_ACCELERATION_STRUCTURE_MODE_SERIALIZE_KHR = 2,
15872 VK_COPY_ACCELERATION_STRUCTURE_MODE_DESERIALIZE_KHR = 3,
15873 VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_CLONE_KHR,
15874 VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_NV = VK_COPY_ACCELERATION_STRUCTURE_MODE_COMPACT_KHR,
15875 VK_COPY_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
15876} VkCopyAccelerationStructureModeKHR;
15877typedef VkCopyAccelerationStructureModeKHR VkCopyAccelerationStructureModeNV;
15878
15879
15880typedef enum VkAccelerationStructureMemoryRequirementsTypeNV {
15881 VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_OBJECT_NV = 0,
15882 VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_BUILD_SCRATCH_NV = 1,
15883 VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_UPDATE_SCRATCH_NV = 2,
15884 VK_ACCELERATION_STRUCTURE_MEMORY_REQUIREMENTS_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
15885} VkAccelerationStructureMemoryRequirementsTypeNV;
15886
15887typedef enum VkGeometryFlagBitsKHR {
15888 VK_GEOMETRY_OPAQUE_BIT_KHR = 0x00000001,
15889 VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR = 0x00000002,
15890 VK_GEOMETRY_OPAQUE_BIT_NV = VK_GEOMETRY_OPAQUE_BIT_KHR,
15891 VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_NV = VK_GEOMETRY_NO_DUPLICATE_ANY_HIT_INVOCATION_BIT_KHR,
15892 VK_GEOMETRY_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
15893} VkGeometryFlagBitsKHR;
15894typedef VkFlags VkGeometryFlagsKHR;
15895typedef VkGeometryFlagsKHR VkGeometryFlagsNV;
15896
15897typedef VkGeometryFlagBitsKHR VkGeometryFlagBitsNV;
15898
15899
15900typedef enum VkGeometryInstanceFlagBitsKHR {
15901 VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR = 0x00000001,
15902 VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR = 0x00000002,
15903 VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR = 0x00000004,
15904 VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR = 0x00000008,
15905 VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_BIT_EXT = 0x00000010,
15906 VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_BIT_EXT = 0x00000020,
15907 VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR = VK_GEOMETRY_INSTANCE_TRIANGLE_FLIP_FACING_BIT_KHR,
15908 VK_GEOMETRY_INSTANCE_TRIANGLE_CULL_DISABLE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FACING_CULL_DISABLE_BIT_KHR,
15909 VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_NV = VK_GEOMETRY_INSTANCE_TRIANGLE_FRONT_COUNTERCLOCKWISE_BIT_KHR,
15910 VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_OPAQUE_BIT_KHR,
15911 VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_NV = VK_GEOMETRY_INSTANCE_FORCE_NO_OPAQUE_BIT_KHR,
15912 // VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT is a deprecated alias
15913 VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_EXT = VK_GEOMETRY_INSTANCE_FORCE_OPACITY_MICROMAP_2_STATE_BIT_EXT,
15914 // VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT is a deprecated alias
15915 VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_EXT = VK_GEOMETRY_INSTANCE_DISABLE_OPACITY_MICROMAPS_BIT_EXT,
15916 VK_GEOMETRY_INSTANCE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
15917} VkGeometryInstanceFlagBitsKHR;
15918typedef VkFlags VkGeometryInstanceFlagsKHR;
15919typedef VkGeometryInstanceFlagsKHR VkGeometryInstanceFlagsNV;
15920
15921typedef VkGeometryInstanceFlagBitsKHR VkGeometryInstanceFlagBitsNV;
15922
15923
15924typedef enum VkBuildAccelerationStructureFlagBitsKHR {
15925 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR = 0x00000001,
15926 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR = 0x00000002,
15927 VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR = 0x00000004,
15928 VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR = 0x00000008,
15929 VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR = 0x00000010,
15930 VK_BUILD_ACCELERATION_STRUCTURE_MOTION_BIT_NV = 0x00000020,
15931 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_BIT_EXT = 0x00000040,
15932 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_BIT_EXT = 0x00000080,
15933 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_BIT_EXT = 0x00000100,
15934#ifdef VK_ENABLE_BETA_EXTENSIONS
15935 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_BIT_NV = 0x00000200,
15936#endif
15937 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_BIT_KHR = 0x00000800,
15938 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_CLUSTER_OPACITY_MICROMAPS_BIT_NV = 0x00001000,
15939 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_UPDATE_BIT_KHR,
15940 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_COMPACTION_BIT_KHR,
15941 VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_TRACE_BIT_KHR,
15942 VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_PREFER_FAST_BUILD_BIT_KHR,
15943 VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_NV = VK_BUILD_ACCELERATION_STRUCTURE_LOW_MEMORY_BIT_KHR,
15944 // VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT is a deprecated alias
15945 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_EXT = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_UPDATE_BIT_EXT,
15946 // VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT is a deprecated alias
15947 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_EXT = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISABLE_OPACITY_MICROMAPS_BIT_EXT,
15948 // VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT is a deprecated alias
15949 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_EXT = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_OPACITY_MICROMAP_DATA_UPDATE_BIT_EXT,
15950#ifdef VK_ENABLE_BETA_EXTENSIONS
15951 // VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV is a deprecated alias
15952 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_NV = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DISPLACEMENT_MICROMAP_UPDATE_BIT_NV,
15953#endif
15954 // VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR is a deprecated alias
15955 VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_KHR = VK_BUILD_ACCELERATION_STRUCTURE_ALLOW_DATA_ACCESS_BIT_KHR,
15956 VK_BUILD_ACCELERATION_STRUCTURE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
15957} VkBuildAccelerationStructureFlagBitsKHR;
15958typedef VkFlags VkBuildAccelerationStructureFlagsKHR;
15959typedef VkBuildAccelerationStructureFlagsKHR VkBuildAccelerationStructureFlagsNV;
15960
15961typedef VkBuildAccelerationStructureFlagBitsKHR VkBuildAccelerationStructureFlagBitsNV;
15962
15963typedef struct VkRayTracingShaderGroupCreateInfoNV {
15964 VkStructureType sType;
15965 const void* pNext;
15966 VkRayTracingShaderGroupTypeKHR type;
15967 uint32_t generalShader;
15968 uint32_t closestHitShader;
15969 uint32_t anyHitShader;
15970 uint32_t intersectionShader;
15971} VkRayTracingShaderGroupCreateInfoNV;
15972
15973typedef struct VkRayTracingPipelineCreateInfoNV {
15974 VkStructureType sType;
15975 const void* pNext;
15976 VkPipelineCreateFlags flags;
15977 uint32_t stageCount;
15978 const VkPipelineShaderStageCreateInfo* pStages;
15979 uint32_t groupCount;
15980 const VkRayTracingShaderGroupCreateInfoNV* pGroups;
15981 uint32_t maxRecursionDepth;
15982 VkPipelineLayout layout;
15983 VkPipeline basePipelineHandle;
15984 int32_t basePipelineIndex;
15985} VkRayTracingPipelineCreateInfoNV;
15986
15987typedef struct VkGeometryTrianglesNV {
15988 VkStructureType sType;
15989 const void* pNext;
15990 VkBuffer vertexData;
15991 VkDeviceSize vertexOffset;
15992 uint32_t vertexCount;
15993 VkDeviceSize vertexStride;
15994 VkFormat vertexFormat;
15995 VkBuffer indexData;
15996 VkDeviceSize indexOffset;
15997 uint32_t indexCount;
15998 VkIndexType indexType;
15999 VkBuffer transformData;
16000 VkDeviceSize transformOffset;
16001} VkGeometryTrianglesNV;
16002
16003typedef struct VkGeometryAABBNV {
16004 VkStructureType sType;
16005 const void* pNext;
16006 VkBuffer aabbData;
16007 uint32_t numAABBs;
16008 uint32_t stride;
16009 VkDeviceSize offset;
16010} VkGeometryAABBNV;
16011
16012typedef struct VkGeometryDataNV {
16013 VkGeometryTrianglesNV triangles;
16014 VkGeometryAABBNV aabbs;
16015} VkGeometryDataNV;
16016
16017typedef struct VkGeometryNV {
16018 VkStructureType sType;
16019 const void* pNext;
16020 VkGeometryTypeKHR geometryType;
16021 VkGeometryDataNV geometry;
16022 VkGeometryFlagsKHR flags;
16023} VkGeometryNV;
16024
16025typedef struct VkAccelerationStructureInfoNV {
16026 VkStructureType sType;
16027 const void* pNext;
16028 VkAccelerationStructureTypeNV type;
16029 VkBuildAccelerationStructureFlagsNV flags;
16030 uint32_t instanceCount;
16031 uint32_t geometryCount;
16032 const VkGeometryNV* pGeometries;
16033} VkAccelerationStructureInfoNV;
16034
16035typedef struct VkAccelerationStructureCreateInfoNV {
16036 VkStructureType sType;
16037 const void* pNext;
16038 VkDeviceSize compactedSize;
16039 VkAccelerationStructureInfoNV info;
16040} VkAccelerationStructureCreateInfoNV;
16041
16042typedef struct VkBindAccelerationStructureMemoryInfoNV {
16043 VkStructureType sType;
16044 const void* pNext;
16045 VkAccelerationStructureNV accelerationStructure;
16046 VkDeviceMemory memory;
16047 VkDeviceSize memoryOffset;
16048 uint32_t deviceIndexCount;
16049 const uint32_t* pDeviceIndices;
16050} VkBindAccelerationStructureMemoryInfoNV;
16051
16052typedef struct VkWriteDescriptorSetAccelerationStructureNV {
16053 VkStructureType sType;
16054 const void* pNext;
16055 uint32_t accelerationStructureCount;
16056 const VkAccelerationStructureNV* pAccelerationStructures;
16057} VkWriteDescriptorSetAccelerationStructureNV;
16058
16059typedef struct VkAccelerationStructureMemoryRequirementsInfoNV {
16060 VkStructureType sType;
16061 const void* pNext;
16062 VkAccelerationStructureMemoryRequirementsTypeNV type;
16063 VkAccelerationStructureNV accelerationStructure;
16064} VkAccelerationStructureMemoryRequirementsInfoNV;
16065
16066typedef struct VkPhysicalDeviceRayTracingPropertiesNV {
16067 VkStructureType sType;
16068 void* pNext;
16069 uint32_t shaderGroupHandleSize;
16070 uint32_t maxRecursionDepth;
16071 uint32_t maxShaderGroupStride;
16072 uint32_t shaderGroupBaseAlignment;
16073 uint64_t maxGeometryCount;
16074 uint64_t maxInstanceCount;
16075 uint64_t maxTriangleCount;
16076 uint32_t maxDescriptorSetAccelerationStructures;
16077} VkPhysicalDeviceRayTracingPropertiesNV;
16078
16079typedef struct VkTransformMatrixKHR {
16080 float matrix[3][4];
16081} VkTransformMatrixKHR;
16082
16083typedef VkTransformMatrixKHR VkTransformMatrixNV;
16084
16085typedef struct VkAabbPositionsKHR {
16086 float minX;
16087 float minY;
16088 float minZ;
16089 float maxX;
16090 float maxY;
16091 float maxZ;
16092} VkAabbPositionsKHR;
16093
16094typedef VkAabbPositionsKHR VkAabbPositionsNV;
16095
16096typedef struct VkAccelerationStructureInstanceKHR {
16097 VkTransformMatrixKHR transform;
16098 uint32_t instanceCustomIndex:24;
16099 uint32_t mask:8;
16100 uint32_t instanceShaderBindingTableRecordOffset:24;
16101 VkGeometryInstanceFlagsKHR flags:8;
16102 uint64_t accelerationStructureReference;
16103} VkAccelerationStructureInstanceKHR;
16104
16105typedef VkAccelerationStructureInstanceKHR VkAccelerationStructureInstanceNV;
16106
16107typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureNV)(VkDevice device, const VkAccelerationStructureCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureNV* pAccelerationStructure);
16108typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, const VkAllocationCallbacks* pAllocator);
16109typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureMemoryRequirementsNV)(VkDevice device, const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2KHR* pMemoryRequirements);
16110typedef VkResult (VKAPI_PTR *PFN_vkBindAccelerationStructureMemoryNV)(VkDevice device, uint32_t bindInfoCount, const VkBindAccelerationStructureMemoryInfoNV* pBindInfos);
16111typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructureNV)(VkCommandBuffer commandBuffer, const VkAccelerationStructureInfoNV* pInfo, VkBuffer instanceData, VkDeviceSize instanceOffset, VkBool32 update, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkBuffer scratch, VkDeviceSize scratchOffset);
16112typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureNV)(VkCommandBuffer commandBuffer, VkAccelerationStructureNV dst, VkAccelerationStructureNV src, VkCopyAccelerationStructureModeKHR mode);
16113typedef 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);
16114typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesNV)(VkDevice device, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoNV* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
16115typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupHandlesKHR)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
16116typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupHandlesNV)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
16117typedef VkResult (VKAPI_PTR *PFN_vkGetAccelerationStructureHandleNV)(VkDevice device, VkAccelerationStructureNV accelerationStructure, size_t dataSize, void* pData);
16118typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesNV)(VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureNV* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
16119typedef VkResult (VKAPI_PTR *PFN_vkCompileDeferredNV)(VkDevice device, VkPipeline pipeline, uint32_t shader);
16120
16121#ifndef VK_NO_PROTOTYPES
16122#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16123VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureNV(
16124 VkDevice device,
16125 const VkAccelerationStructureCreateInfoNV* pCreateInfo,
16126 const VkAllocationCallbacks* pAllocator,
16127 VkAccelerationStructureNV* pAccelerationStructure);
16128#endif
16129
16130#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16131VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureNV(
16132 VkDevice device,
16133 VkAccelerationStructureNV accelerationStructure,
16134 const VkAllocationCallbacks* pAllocator);
16135#endif
16136
16137#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16138VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureMemoryRequirementsNV(
16139 VkDevice device,
16140 const VkAccelerationStructureMemoryRequirementsInfoNV* pInfo,
16141 VkMemoryRequirements2KHR* pMemoryRequirements);
16142#endif
16143
16144#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16145VKAPI_ATTR VkResult VKAPI_CALL vkBindAccelerationStructureMemoryNV(
16146 VkDevice device,
16147 uint32_t bindInfoCount,
16148 const VkBindAccelerationStructureMemoryInfoNV* pBindInfos);
16149#endif
16150
16151#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16152VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructureNV(
16153 VkCommandBuffer commandBuffer,
16154 const VkAccelerationStructureInfoNV* pInfo,
16155 VkBuffer instanceData,
16156 VkDeviceSize instanceOffset,
16157 VkBool32 update,
16158 VkAccelerationStructureNV dst,
16159 VkAccelerationStructureNV src,
16160 VkBuffer scratch,
16161 VkDeviceSize scratchOffset);
16162#endif
16163
16164#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16165VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureNV(
16166 VkCommandBuffer commandBuffer,
16167 VkAccelerationStructureNV dst,
16168 VkAccelerationStructureNV src,
16169 VkCopyAccelerationStructureModeKHR mode);
16170#endif
16171
16172#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16173VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysNV(
16174 VkCommandBuffer commandBuffer,
16175 VkBuffer raygenShaderBindingTableBuffer,
16176 VkDeviceSize raygenShaderBindingOffset,
16177 VkBuffer missShaderBindingTableBuffer,
16178 VkDeviceSize missShaderBindingOffset,
16179 VkDeviceSize missShaderBindingStride,
16180 VkBuffer hitShaderBindingTableBuffer,
16181 VkDeviceSize hitShaderBindingOffset,
16182 VkDeviceSize hitShaderBindingStride,
16183 VkBuffer callableShaderBindingTableBuffer,
16184 VkDeviceSize callableShaderBindingOffset,
16185 VkDeviceSize callableShaderBindingStride,
16186 uint32_t width,
16187 uint32_t height,
16188 uint32_t depth);
16189#endif
16190
16191#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16192VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesNV(
16193 VkDevice device,
16194 VkPipelineCache pipelineCache,
16195 uint32_t createInfoCount,
16196 const VkRayTracingPipelineCreateInfoNV* pCreateInfos,
16197 const VkAllocationCallbacks* pAllocator,
16198 VkPipeline* pPipelines);
16199#endif
16200
16201#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16202VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesKHR(
16203 VkDevice device,
16204 VkPipeline pipeline,
16205 uint32_t firstGroup,
16206 uint32_t groupCount,
16207 size_t dataSize,
16208 void* pData);
16209#endif
16210
16211#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16212VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingShaderGroupHandlesNV(
16213 VkDevice device,
16214 VkPipeline pipeline,
16215 uint32_t firstGroup,
16216 uint32_t groupCount,
16217 size_t dataSize,
16218 void* pData);
16219#endif
16220
16221#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16222VKAPI_ATTR VkResult VKAPI_CALL vkGetAccelerationStructureHandleNV(
16223 VkDevice device,
16224 VkAccelerationStructureNV accelerationStructure,
16225 size_t dataSize,
16226 void* pData);
16227#endif
16228
16229#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16230VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructuresPropertiesNV(
16231 VkCommandBuffer commandBuffer,
16232 uint32_t accelerationStructureCount,
16233 const VkAccelerationStructureNV* pAccelerationStructures,
16234 VkQueryType queryType,
16235 VkQueryPool queryPool,
16236 uint32_t firstQuery);
16237#endif
16238
16239#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16240VKAPI_ATTR VkResult VKAPI_CALL vkCompileDeferredNV(
16241 VkDevice device,
16242 VkPipeline pipeline,
16243 uint32_t shader);
16244#endif
16245#endif
16246
16247
16248// VK_NV_representative_fragment_test is a preprocessor guard. Do not pass it to API calls.
16249#define VK_NV_representative_fragment_test 1
16250#define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_SPEC_VERSION 2
16251#define VK_NV_REPRESENTATIVE_FRAGMENT_TEST_EXTENSION_NAME "VK_NV_representative_fragment_test"
16252typedef struct VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV {
16253 VkStructureType sType;
16254 void* pNext;
16255 VkBool32 representativeFragmentTest;
16256} VkPhysicalDeviceRepresentativeFragmentTestFeaturesNV;
16257
16258typedef struct VkPipelineRepresentativeFragmentTestStateCreateInfoNV {
16259 VkStructureType sType;
16260 const void* pNext;
16261 VkBool32 representativeFragmentTestEnable;
16262} VkPipelineRepresentativeFragmentTestStateCreateInfoNV;
16263
16264
16265
16266// VK_EXT_filter_cubic is a preprocessor guard. Do not pass it to API calls.
16267#define VK_EXT_filter_cubic 1
16268#define VK_EXT_FILTER_CUBIC_SPEC_VERSION 3
16269#define VK_EXT_FILTER_CUBIC_EXTENSION_NAME "VK_EXT_filter_cubic"
16270typedef struct VkPhysicalDeviceImageViewImageFormatInfoEXT {
16271 VkStructureType sType;
16272 void* pNext;
16273 VkImageViewType imageViewType;
16274} VkPhysicalDeviceImageViewImageFormatInfoEXT;
16275
16276typedef struct VkFilterCubicImageViewImageFormatPropertiesEXT {
16277 VkStructureType sType;
16278 void* pNext;
16279 VkBool32 filterCubic;
16280 VkBool32 filterCubicMinmax;
16281} VkFilterCubicImageViewImageFormatPropertiesEXT;
16282
16283
16284
16285// VK_QCOM_render_pass_shader_resolve is a preprocessor guard. Do not pass it to API calls.
16286#define VK_QCOM_render_pass_shader_resolve 1
16287#define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_SPEC_VERSION 4
16288#define VK_QCOM_RENDER_PASS_SHADER_RESOLVE_EXTENSION_NAME "VK_QCOM_render_pass_shader_resolve"
16289
16290
16291// VK_EXT_global_priority is a preprocessor guard. Do not pass it to API calls.
16292#define VK_EXT_global_priority 1
16293#define VK_EXT_GLOBAL_PRIORITY_SPEC_VERSION 2
16294#define VK_EXT_GLOBAL_PRIORITY_EXTENSION_NAME "VK_EXT_global_priority"
16295typedef VkQueueGlobalPriority VkQueueGlobalPriorityEXT;
16296
16297typedef VkDeviceQueueGlobalPriorityCreateInfo VkDeviceQueueGlobalPriorityCreateInfoEXT;
16298
16299
16300
16301// VK_EXT_external_memory_host is a preprocessor guard. Do not pass it to API calls.
16302#define VK_EXT_external_memory_host 1
16303#define VK_EXT_EXTERNAL_MEMORY_HOST_SPEC_VERSION 1
16304#define VK_EXT_EXTERNAL_MEMORY_HOST_EXTENSION_NAME "VK_EXT_external_memory_host"
16305typedef struct VkImportMemoryHostPointerInfoEXT {
16306 VkStructureType sType;
16307 const void* pNext;
16308 VkExternalMemoryHandleTypeFlagBits handleType;
16309 void* pHostPointer;
16310} VkImportMemoryHostPointerInfoEXT;
16311
16312typedef struct VkMemoryHostPointerPropertiesEXT {
16313 VkStructureType sType;
16314 void* pNext;
16315 uint32_t memoryTypeBits;
16316} VkMemoryHostPointerPropertiesEXT;
16317
16318typedef struct VkPhysicalDeviceExternalMemoryHostPropertiesEXT {
16319 VkStructureType sType;
16320 void* pNext;
16321 VkDeviceSize minImportedHostPointerAlignment;
16322} VkPhysicalDeviceExternalMemoryHostPropertiesEXT;
16323
16324typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryHostPointerPropertiesEXT)(VkDevice device, VkExternalMemoryHandleTypeFlagBits handleType, const void* pHostPointer, VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties);
16325
16326#ifndef VK_NO_PROTOTYPES
16327#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16328VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryHostPointerPropertiesEXT(
16329 VkDevice device,
16330 VkExternalMemoryHandleTypeFlagBits handleType,
16331 const void* pHostPointer,
16332 VkMemoryHostPointerPropertiesEXT* pMemoryHostPointerProperties);
16333#endif
16334#endif
16335
16336
16337// VK_AMD_buffer_marker is a preprocessor guard. Do not pass it to API calls.
16338#define VK_AMD_buffer_marker 1
16339#define VK_AMD_BUFFER_MARKER_SPEC_VERSION 1
16340#define VK_AMD_BUFFER_MARKER_EXTENSION_NAME "VK_AMD_buffer_marker"
16341typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarkerAMD)(VkCommandBuffer commandBuffer, VkPipelineStageFlagBits pipelineStage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker);
16342typedef void (VKAPI_PTR *PFN_vkCmdWriteBufferMarker2AMD)(VkCommandBuffer commandBuffer, VkPipelineStageFlags2 stage, VkBuffer dstBuffer, VkDeviceSize dstOffset, uint32_t marker);
16343
16344#ifndef VK_NO_PROTOTYPES
16345#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16346VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarkerAMD(
16347 VkCommandBuffer commandBuffer,
16348 VkPipelineStageFlagBits pipelineStage,
16349 VkBuffer dstBuffer,
16350 VkDeviceSize dstOffset,
16351 uint32_t marker);
16352#endif
16353
16354#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16355VKAPI_ATTR void VKAPI_CALL vkCmdWriteBufferMarker2AMD(
16356 VkCommandBuffer commandBuffer,
16357 VkPipelineStageFlags2 stage,
16358 VkBuffer dstBuffer,
16359 VkDeviceSize dstOffset,
16360 uint32_t marker);
16361#endif
16362#endif
16363
16364
16365// VK_AMD_pipeline_compiler_control is a preprocessor guard. Do not pass it to API calls.
16366#define VK_AMD_pipeline_compiler_control 1
16367#define VK_AMD_PIPELINE_COMPILER_CONTROL_SPEC_VERSION 1
16368#define VK_AMD_PIPELINE_COMPILER_CONTROL_EXTENSION_NAME "VK_AMD_pipeline_compiler_control"
16369
16370typedef enum VkPipelineCompilerControlFlagBitsAMD {
16371 VK_PIPELINE_COMPILER_CONTROL_FLAG_BITS_MAX_ENUM_AMD = 0x7FFFFFFF
16372} VkPipelineCompilerControlFlagBitsAMD;
16373typedef VkFlags VkPipelineCompilerControlFlagsAMD;
16374typedef struct VkPipelineCompilerControlCreateInfoAMD {
16375 VkStructureType sType;
16376 const void* pNext;
16377 VkPipelineCompilerControlFlagsAMD compilerControlFlags;
16378} VkPipelineCompilerControlCreateInfoAMD;
16379
16380
16381
16382// VK_EXT_calibrated_timestamps is a preprocessor guard. Do not pass it to API calls.
16383#define VK_EXT_calibrated_timestamps 1
16384#define VK_EXT_CALIBRATED_TIMESTAMPS_SPEC_VERSION 2
16385#define VK_EXT_CALIBRATED_TIMESTAMPS_EXTENSION_NAME "VK_EXT_calibrated_timestamps"
16386typedef VkTimeDomainKHR VkTimeDomainEXT;
16387
16388typedef VkCalibratedTimestampInfoKHR VkCalibratedTimestampInfoEXT;
16389
16390typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCalibrateableTimeDomainsEXT)(VkPhysicalDevice physicalDevice, uint32_t* pTimeDomainCount, VkTimeDomainKHR* pTimeDomains);
16391typedef VkResult (VKAPI_PTR *PFN_vkGetCalibratedTimestampsEXT)(VkDevice device, uint32_t timestampCount, const VkCalibratedTimestampInfoKHR* pTimestampInfos, uint64_t* pTimestamps, uint64_t* pMaxDeviation);
16392
16393#ifndef VK_NO_PROTOTYPES
16394#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16395VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(
16396 VkPhysicalDevice physicalDevice,
16397 uint32_t* pTimeDomainCount,
16398 VkTimeDomainKHR* pTimeDomains);
16399#endif
16400
16401#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16402VKAPI_ATTR VkResult VKAPI_CALL vkGetCalibratedTimestampsEXT(
16403 VkDevice device,
16404 uint32_t timestampCount,
16405 const VkCalibratedTimestampInfoKHR* pTimestampInfos,
16406 uint64_t* pTimestamps,
16407 uint64_t* pMaxDeviation);
16408#endif
16409#endif
16410
16411
16412// VK_AMD_shader_core_properties is a preprocessor guard. Do not pass it to API calls.
16413#define VK_AMD_shader_core_properties 1
16414#define VK_AMD_SHADER_CORE_PROPERTIES_SPEC_VERSION 2
16415#define VK_AMD_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_AMD_shader_core_properties"
16416typedef struct VkPhysicalDeviceShaderCorePropertiesAMD {
16417 VkStructureType sType;
16418 void* pNext;
16419 uint32_t shaderEngineCount;
16420 uint32_t shaderArraysPerEngineCount;
16421 uint32_t computeUnitsPerShaderArray;
16422 uint32_t simdPerComputeUnit;
16423 uint32_t wavefrontsPerSimd;
16424 uint32_t wavefrontSize;
16425 uint32_t sgprsPerSimd;
16426 uint32_t minSgprAllocation;
16427 uint32_t maxSgprAllocation;
16428 uint32_t sgprAllocationGranularity;
16429 uint32_t vgprsPerSimd;
16430 uint32_t minVgprAllocation;
16431 uint32_t maxVgprAllocation;
16432 uint32_t vgprAllocationGranularity;
16433} VkPhysicalDeviceShaderCorePropertiesAMD;
16434
16435
16436
16437// VK_AMD_memory_overallocation_behavior is a preprocessor guard. Do not pass it to API calls.
16438#define VK_AMD_memory_overallocation_behavior 1
16439#define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_SPEC_VERSION 1
16440#define VK_AMD_MEMORY_OVERALLOCATION_BEHAVIOR_EXTENSION_NAME "VK_AMD_memory_overallocation_behavior"
16441
16442typedef enum VkMemoryOverallocationBehaviorAMD {
16443 VK_MEMORY_OVERALLOCATION_BEHAVIOR_DEFAULT_AMD = 0,
16444 VK_MEMORY_OVERALLOCATION_BEHAVIOR_ALLOWED_AMD = 1,
16445 VK_MEMORY_OVERALLOCATION_BEHAVIOR_DISALLOWED_AMD = 2,
16446 VK_MEMORY_OVERALLOCATION_BEHAVIOR_MAX_ENUM_AMD = 0x7FFFFFFF
16447} VkMemoryOverallocationBehaviorAMD;
16448typedef struct VkDeviceMemoryOverallocationCreateInfoAMD {
16449 VkStructureType sType;
16450 const void* pNext;
16451 VkMemoryOverallocationBehaviorAMD overallocationBehavior;
16452} VkDeviceMemoryOverallocationCreateInfoAMD;
16453
16454
16455
16456// VK_EXT_vertex_attribute_divisor is a preprocessor guard. Do not pass it to API calls.
16457#define VK_EXT_vertex_attribute_divisor 1
16458#define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_SPEC_VERSION 3
16459#define VK_EXT_VERTEX_ATTRIBUTE_DIVISOR_EXTENSION_NAME "VK_EXT_vertex_attribute_divisor"
16460typedef struct VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT {
16461 VkStructureType sType;
16462 void* pNext;
16463 uint32_t maxVertexAttribDivisor;
16464} VkPhysicalDeviceVertexAttributeDivisorPropertiesEXT;
16465
16466typedef VkVertexInputBindingDivisorDescription VkVertexInputBindingDivisorDescriptionEXT;
16467
16468typedef VkPipelineVertexInputDivisorStateCreateInfo VkPipelineVertexInputDivisorStateCreateInfoEXT;
16469
16470typedef VkPhysicalDeviceVertexAttributeDivisorFeatures VkPhysicalDeviceVertexAttributeDivisorFeaturesEXT;
16471
16472
16473
16474// VK_EXT_pipeline_creation_feedback is a preprocessor guard. Do not pass it to API calls.
16475#define VK_EXT_pipeline_creation_feedback 1
16476#define VK_EXT_PIPELINE_CREATION_FEEDBACK_SPEC_VERSION 1
16477#define VK_EXT_PIPELINE_CREATION_FEEDBACK_EXTENSION_NAME "VK_EXT_pipeline_creation_feedback"
16478typedef VkPipelineCreationFeedbackFlagBits VkPipelineCreationFeedbackFlagBitsEXT;
16479
16480typedef VkPipelineCreationFeedbackFlags VkPipelineCreationFeedbackFlagsEXT;
16481
16482typedef VkPipelineCreationFeedbackCreateInfo VkPipelineCreationFeedbackCreateInfoEXT;
16483
16484typedef VkPipelineCreationFeedback VkPipelineCreationFeedbackEXT;
16485
16486
16487
16488// VK_NV_shader_subgroup_partitioned is a preprocessor guard. Do not pass it to API calls.
16489#define VK_NV_shader_subgroup_partitioned 1
16490#define VK_NV_SHADER_SUBGROUP_PARTITIONED_SPEC_VERSION 1
16491#define VK_NV_SHADER_SUBGROUP_PARTITIONED_EXTENSION_NAME "VK_NV_shader_subgroup_partitioned"
16492
16493
16494// VK_NV_compute_shader_derivatives is a preprocessor guard. Do not pass it to API calls.
16495#define VK_NV_compute_shader_derivatives 1
16496#define VK_NV_COMPUTE_SHADER_DERIVATIVES_SPEC_VERSION 1
16497#define VK_NV_COMPUTE_SHADER_DERIVATIVES_EXTENSION_NAME "VK_NV_compute_shader_derivatives"
16498typedef VkPhysicalDeviceComputeShaderDerivativesFeaturesKHR VkPhysicalDeviceComputeShaderDerivativesFeaturesNV;
16499
16500
16501
16502// VK_NV_mesh_shader is a preprocessor guard. Do not pass it to API calls.
16503#define VK_NV_mesh_shader 1
16504#define VK_NV_MESH_SHADER_SPEC_VERSION 1
16505#define VK_NV_MESH_SHADER_EXTENSION_NAME "VK_NV_mesh_shader"
16506typedef struct VkPhysicalDeviceMeshShaderFeaturesNV {
16507 VkStructureType sType;
16508 void* pNext;
16509 VkBool32 taskShader;
16510 VkBool32 meshShader;
16511} VkPhysicalDeviceMeshShaderFeaturesNV;
16512
16513typedef struct VkPhysicalDeviceMeshShaderPropertiesNV {
16514 VkStructureType sType;
16515 void* pNext;
16516 uint32_t maxDrawMeshTasksCount;
16517 uint32_t maxTaskWorkGroupInvocations;
16518 uint32_t maxTaskWorkGroupSize[3];
16519 uint32_t maxTaskTotalMemorySize;
16520 uint32_t maxTaskOutputCount;
16521 uint32_t maxMeshWorkGroupInvocations;
16522 uint32_t maxMeshWorkGroupSize[3];
16523 uint32_t maxMeshTotalMemorySize;
16524 uint32_t maxMeshOutputVertices;
16525 uint32_t maxMeshOutputPrimitives;
16526 uint32_t maxMeshMultiviewViewCount;
16527 uint32_t meshOutputPerVertexGranularity;
16528 uint32_t meshOutputPerPrimitiveGranularity;
16529} VkPhysicalDeviceMeshShaderPropertiesNV;
16530
16531typedef struct VkDrawMeshTasksIndirectCommandNV {
16532 uint32_t taskCount;
16533 uint32_t firstTask;
16534} VkDrawMeshTasksIndirectCommandNV;
16535
16536typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksNV)(VkCommandBuffer commandBuffer, uint32_t taskCount, uint32_t firstTask);
16537typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
16538typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectCountNV)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
16539
16540#ifndef VK_NO_PROTOTYPES
16541#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16542VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksNV(
16543 VkCommandBuffer commandBuffer,
16544 uint32_t taskCount,
16545 uint32_t firstTask);
16546#endif
16547
16548#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16549VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectNV(
16550 VkCommandBuffer commandBuffer,
16551 VkBuffer buffer,
16552 VkDeviceSize offset,
16553 uint32_t drawCount,
16554 uint32_t stride);
16555#endif
16556
16557#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16558VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectCountNV(
16559 VkCommandBuffer commandBuffer,
16560 VkBuffer buffer,
16561 VkDeviceSize offset,
16562 VkBuffer countBuffer,
16563 VkDeviceSize countBufferOffset,
16564 uint32_t maxDrawCount,
16565 uint32_t stride);
16566#endif
16567#endif
16568
16569
16570// VK_NV_fragment_shader_barycentric is a preprocessor guard. Do not pass it to API calls.
16571#define VK_NV_fragment_shader_barycentric 1
16572#define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_SPEC_VERSION 1
16573#define VK_NV_FRAGMENT_SHADER_BARYCENTRIC_EXTENSION_NAME "VK_NV_fragment_shader_barycentric"
16574typedef VkPhysicalDeviceFragmentShaderBarycentricFeaturesKHR VkPhysicalDeviceFragmentShaderBarycentricFeaturesNV;
16575
16576
16577
16578// VK_NV_shader_image_footprint is a preprocessor guard. Do not pass it to API calls.
16579#define VK_NV_shader_image_footprint 1
16580#define VK_NV_SHADER_IMAGE_FOOTPRINT_SPEC_VERSION 2
16581#define VK_NV_SHADER_IMAGE_FOOTPRINT_EXTENSION_NAME "VK_NV_shader_image_footprint"
16582typedef struct VkPhysicalDeviceShaderImageFootprintFeaturesNV {
16583 VkStructureType sType;
16584 void* pNext;
16585 VkBool32 imageFootprint;
16586} VkPhysicalDeviceShaderImageFootprintFeaturesNV;
16587
16588
16589
16590// VK_NV_scissor_exclusive is a preprocessor guard. Do not pass it to API calls.
16591#define VK_NV_scissor_exclusive 1
16592#define VK_NV_SCISSOR_EXCLUSIVE_SPEC_VERSION 2
16593#define VK_NV_SCISSOR_EXCLUSIVE_EXTENSION_NAME "VK_NV_scissor_exclusive"
16594typedef struct VkPipelineViewportExclusiveScissorStateCreateInfoNV {
16595 VkStructureType sType;
16596 const void* pNext;
16597 uint32_t exclusiveScissorCount;
16598 const VkRect2D* pExclusiveScissors;
16599} VkPipelineViewportExclusiveScissorStateCreateInfoNV;
16600
16601typedef struct VkPhysicalDeviceExclusiveScissorFeaturesNV {
16602 VkStructureType sType;
16603 void* pNext;
16604 VkBool32 exclusiveScissor;
16605} VkPhysicalDeviceExclusiveScissorFeaturesNV;
16606
16607typedef void (VKAPI_PTR *PFN_vkCmdSetExclusiveScissorEnableNV)(VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkBool32* pExclusiveScissorEnables);
16608typedef void (VKAPI_PTR *PFN_vkCmdSetExclusiveScissorNV)(VkCommandBuffer commandBuffer, uint32_t firstExclusiveScissor, uint32_t exclusiveScissorCount, const VkRect2D* pExclusiveScissors);
16609
16610#ifndef VK_NO_PROTOTYPES
16611#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16612VKAPI_ATTR void VKAPI_CALL vkCmdSetExclusiveScissorEnableNV(
16613 VkCommandBuffer commandBuffer,
16614 uint32_t firstExclusiveScissor,
16615 uint32_t exclusiveScissorCount,
16616 const VkBool32* pExclusiveScissorEnables);
16617#endif
16618
16619#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16620VKAPI_ATTR void VKAPI_CALL vkCmdSetExclusiveScissorNV(
16621 VkCommandBuffer commandBuffer,
16622 uint32_t firstExclusiveScissor,
16623 uint32_t exclusiveScissorCount,
16624 const VkRect2D* pExclusiveScissors);
16625#endif
16626#endif
16627
16628
16629// VK_NV_device_diagnostic_checkpoints is a preprocessor guard. Do not pass it to API calls.
16630#define VK_NV_device_diagnostic_checkpoints 1
16631#define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_SPEC_VERSION 2
16632#define VK_NV_DEVICE_DIAGNOSTIC_CHECKPOINTS_EXTENSION_NAME "VK_NV_device_diagnostic_checkpoints"
16633typedef struct VkQueueFamilyCheckpointPropertiesNV {
16634 VkStructureType sType;
16635 void* pNext;
16636 VkPipelineStageFlags checkpointExecutionStageMask;
16637} VkQueueFamilyCheckpointPropertiesNV;
16638
16639typedef struct VkCheckpointDataNV {
16640 VkStructureType sType;
16641 void* pNext;
16642 VkPipelineStageFlagBits stage;
16643 void* pCheckpointMarker;
16644} VkCheckpointDataNV;
16645
16646typedef struct VkQueueFamilyCheckpointProperties2NV {
16647 VkStructureType sType;
16648 void* pNext;
16649 VkPipelineStageFlags2 checkpointExecutionStageMask;
16650} VkQueueFamilyCheckpointProperties2NV;
16651
16652typedef struct VkCheckpointData2NV {
16653 VkStructureType sType;
16654 void* pNext;
16655 VkPipelineStageFlags2 stage;
16656 void* pCheckpointMarker;
16657} VkCheckpointData2NV;
16658
16659typedef void (VKAPI_PTR *PFN_vkCmdSetCheckpointNV)(VkCommandBuffer commandBuffer, const void* pCheckpointMarker);
16660typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointDataNV)(VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointDataNV* pCheckpointData);
16661typedef void (VKAPI_PTR *PFN_vkGetQueueCheckpointData2NV)(VkQueue queue, uint32_t* pCheckpointDataCount, VkCheckpointData2NV* pCheckpointData);
16662
16663#ifndef VK_NO_PROTOTYPES
16664#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16665VKAPI_ATTR void VKAPI_CALL vkCmdSetCheckpointNV(
16666 VkCommandBuffer commandBuffer,
16667 const void* pCheckpointMarker);
16668#endif
16669
16670#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16671VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointDataNV(
16672 VkQueue queue,
16673 uint32_t* pCheckpointDataCount,
16674 VkCheckpointDataNV* pCheckpointData);
16675#endif
16676
16677#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16678VKAPI_ATTR void VKAPI_CALL vkGetQueueCheckpointData2NV(
16679 VkQueue queue,
16680 uint32_t* pCheckpointDataCount,
16681 VkCheckpointData2NV* pCheckpointData);
16682#endif
16683#endif
16684
16685
16686// VK_INTEL_shader_integer_functions2 is a preprocessor guard. Do not pass it to API calls.
16687#define VK_INTEL_shader_integer_functions2 1
16688#define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_SPEC_VERSION 1
16689#define VK_INTEL_SHADER_INTEGER_FUNCTIONS_2_EXTENSION_NAME "VK_INTEL_shader_integer_functions2"
16690typedef struct VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL {
16691 VkStructureType sType;
16692 void* pNext;
16693 VkBool32 shaderIntegerFunctions2;
16694} VkPhysicalDeviceShaderIntegerFunctions2FeaturesINTEL;
16695
16696
16697
16698// VK_INTEL_performance_query is a preprocessor guard. Do not pass it to API calls.
16699#define VK_INTEL_performance_query 1
16700VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkPerformanceConfigurationINTEL)
16701#define VK_INTEL_PERFORMANCE_QUERY_SPEC_VERSION 2
16702#define VK_INTEL_PERFORMANCE_QUERY_EXTENSION_NAME "VK_INTEL_performance_query"
16703
16704typedef enum VkPerformanceConfigurationTypeINTEL {
16705 VK_PERFORMANCE_CONFIGURATION_TYPE_COMMAND_QUEUE_METRICS_DISCOVERY_ACTIVATED_INTEL = 0,
16706 VK_PERFORMANCE_CONFIGURATION_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
16707} VkPerformanceConfigurationTypeINTEL;
16708
16709typedef enum VkQueryPoolSamplingModeINTEL {
16710 VK_QUERY_POOL_SAMPLING_MODE_MANUAL_INTEL = 0,
16711 VK_QUERY_POOL_SAMPLING_MODE_MAX_ENUM_INTEL = 0x7FFFFFFF
16712} VkQueryPoolSamplingModeINTEL;
16713
16714typedef enum VkPerformanceOverrideTypeINTEL {
16715 VK_PERFORMANCE_OVERRIDE_TYPE_NULL_HARDWARE_INTEL = 0,
16716 VK_PERFORMANCE_OVERRIDE_TYPE_FLUSH_GPU_CACHES_INTEL = 1,
16717 VK_PERFORMANCE_OVERRIDE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
16718} VkPerformanceOverrideTypeINTEL;
16719
16720typedef enum VkPerformanceParameterTypeINTEL {
16721 VK_PERFORMANCE_PARAMETER_TYPE_HW_COUNTERS_SUPPORTED_INTEL = 0,
16722 VK_PERFORMANCE_PARAMETER_TYPE_STREAM_MARKER_VALID_BITS_INTEL = 1,
16723 VK_PERFORMANCE_PARAMETER_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
16724} VkPerformanceParameterTypeINTEL;
16725
16726typedef enum VkPerformanceValueTypeINTEL {
16727 VK_PERFORMANCE_VALUE_TYPE_UINT32_INTEL = 0,
16728 VK_PERFORMANCE_VALUE_TYPE_UINT64_INTEL = 1,
16729 VK_PERFORMANCE_VALUE_TYPE_FLOAT_INTEL = 2,
16730 VK_PERFORMANCE_VALUE_TYPE_BOOL_INTEL = 3,
16731 VK_PERFORMANCE_VALUE_TYPE_STRING_INTEL = 4,
16732 VK_PERFORMANCE_VALUE_TYPE_MAX_ENUM_INTEL = 0x7FFFFFFF
16733} VkPerformanceValueTypeINTEL;
16734typedef union VkPerformanceValueDataINTEL {
16735 uint32_t value32;
16736 uint64_t value64;
16737 float valueFloat;
16738 VkBool32 valueBool;
16739 const char* valueString;
16740} VkPerformanceValueDataINTEL;
16741
16742typedef struct VkPerformanceValueINTEL {
16743 VkPerformanceValueTypeINTEL type;
16744 VkPerformanceValueDataINTEL data;
16745} VkPerformanceValueINTEL;
16746
16747typedef struct VkInitializePerformanceApiInfoINTEL {
16748 VkStructureType sType;
16749 const void* pNext;
16750 void* pUserData;
16751} VkInitializePerformanceApiInfoINTEL;
16752
16753typedef struct VkQueryPoolPerformanceQueryCreateInfoINTEL {
16754 VkStructureType sType;
16755 const void* pNext;
16756 VkQueryPoolSamplingModeINTEL performanceCountersSampling;
16757} VkQueryPoolPerformanceQueryCreateInfoINTEL;
16758
16759typedef VkQueryPoolPerformanceQueryCreateInfoINTEL VkQueryPoolCreateInfoINTEL;
16760
16761typedef struct VkPerformanceMarkerInfoINTEL {
16762 VkStructureType sType;
16763 const void* pNext;
16764 uint64_t marker;
16765} VkPerformanceMarkerInfoINTEL;
16766
16767typedef struct VkPerformanceStreamMarkerInfoINTEL {
16768 VkStructureType sType;
16769 const void* pNext;
16770 uint32_t marker;
16771} VkPerformanceStreamMarkerInfoINTEL;
16772
16773typedef struct VkPerformanceOverrideInfoINTEL {
16774 VkStructureType sType;
16775 const void* pNext;
16776 VkPerformanceOverrideTypeINTEL type;
16777 VkBool32 enable;
16778 uint64_t parameter;
16779} VkPerformanceOverrideInfoINTEL;
16780
16781typedef struct VkPerformanceConfigurationAcquireInfoINTEL {
16782 VkStructureType sType;
16783 const void* pNext;
16784 VkPerformanceConfigurationTypeINTEL type;
16785} VkPerformanceConfigurationAcquireInfoINTEL;
16786
16787typedef VkResult (VKAPI_PTR *PFN_vkInitializePerformanceApiINTEL)(VkDevice device, const VkInitializePerformanceApiInfoINTEL* pInitializeInfo);
16788typedef void (VKAPI_PTR *PFN_vkUninitializePerformanceApiINTEL)(VkDevice device);
16789typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceMarkerINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceMarkerInfoINTEL* pMarkerInfo);
16790typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceStreamMarkerINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo);
16791typedef VkResult (VKAPI_PTR *PFN_vkCmdSetPerformanceOverrideINTEL)(VkCommandBuffer commandBuffer, const VkPerformanceOverrideInfoINTEL* pOverrideInfo);
16792typedef VkResult (VKAPI_PTR *PFN_vkAcquirePerformanceConfigurationINTEL)(VkDevice device, const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo, VkPerformanceConfigurationINTEL* pConfiguration);
16793typedef VkResult (VKAPI_PTR *PFN_vkReleasePerformanceConfigurationINTEL)(VkDevice device, VkPerformanceConfigurationINTEL configuration);
16794typedef VkResult (VKAPI_PTR *PFN_vkQueueSetPerformanceConfigurationINTEL)(VkQueue queue, VkPerformanceConfigurationINTEL configuration);
16795typedef VkResult (VKAPI_PTR *PFN_vkGetPerformanceParameterINTEL)(VkDevice device, VkPerformanceParameterTypeINTEL parameter, VkPerformanceValueINTEL* pValue);
16796
16797#ifndef VK_NO_PROTOTYPES
16798#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16799VKAPI_ATTR VkResult VKAPI_CALL vkInitializePerformanceApiINTEL(
16800 VkDevice device,
16801 const VkInitializePerformanceApiInfoINTEL* pInitializeInfo);
16802#endif
16803
16804#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16805VKAPI_ATTR void VKAPI_CALL vkUninitializePerformanceApiINTEL(
16806 VkDevice device);
16807#endif
16808
16809#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16810VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceMarkerINTEL(
16811 VkCommandBuffer commandBuffer,
16812 const VkPerformanceMarkerInfoINTEL* pMarkerInfo);
16813#endif
16814
16815#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16816VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceStreamMarkerINTEL(
16817 VkCommandBuffer commandBuffer,
16818 const VkPerformanceStreamMarkerInfoINTEL* pMarkerInfo);
16819#endif
16820
16821#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16822VKAPI_ATTR VkResult VKAPI_CALL vkCmdSetPerformanceOverrideINTEL(
16823 VkCommandBuffer commandBuffer,
16824 const VkPerformanceOverrideInfoINTEL* pOverrideInfo);
16825#endif
16826
16827#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16828VKAPI_ATTR VkResult VKAPI_CALL vkAcquirePerformanceConfigurationINTEL(
16829 VkDevice device,
16830 const VkPerformanceConfigurationAcquireInfoINTEL* pAcquireInfo,
16831 VkPerformanceConfigurationINTEL* pConfiguration);
16832#endif
16833
16834#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16835VKAPI_ATTR VkResult VKAPI_CALL vkReleasePerformanceConfigurationINTEL(
16836 VkDevice device,
16837 VkPerformanceConfigurationINTEL configuration);
16838#endif
16839
16840#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16841VKAPI_ATTR VkResult VKAPI_CALL vkQueueSetPerformanceConfigurationINTEL(
16842 VkQueue queue,
16843 VkPerformanceConfigurationINTEL configuration);
16844#endif
16845
16846#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16847VKAPI_ATTR VkResult VKAPI_CALL vkGetPerformanceParameterINTEL(
16848 VkDevice device,
16849 VkPerformanceParameterTypeINTEL parameter,
16850 VkPerformanceValueINTEL* pValue);
16851#endif
16852#endif
16853
16854
16855// VK_EXT_pci_bus_info is a preprocessor guard. Do not pass it to API calls.
16856#define VK_EXT_pci_bus_info 1
16857#define VK_EXT_PCI_BUS_INFO_SPEC_VERSION 2
16858#define VK_EXT_PCI_BUS_INFO_EXTENSION_NAME "VK_EXT_pci_bus_info"
16859typedef struct VkPhysicalDevicePCIBusInfoPropertiesEXT {
16860 VkStructureType sType;
16861 void* pNext;
16862 uint32_t pciDomain;
16863 uint32_t pciBus;
16864 uint32_t pciDevice;
16865 uint32_t pciFunction;
16866} VkPhysicalDevicePCIBusInfoPropertiesEXT;
16867
16868
16869
16870// VK_AMD_display_native_hdr is a preprocessor guard. Do not pass it to API calls.
16871#define VK_AMD_display_native_hdr 1
16872#define VK_AMD_DISPLAY_NATIVE_HDR_SPEC_VERSION 1
16873#define VK_AMD_DISPLAY_NATIVE_HDR_EXTENSION_NAME "VK_AMD_display_native_hdr"
16874typedef struct VkDisplayNativeHdrSurfaceCapabilitiesAMD {
16875 VkStructureType sType;
16876 void* pNext;
16877 VkBool32 localDimmingSupport;
16878} VkDisplayNativeHdrSurfaceCapabilitiesAMD;
16879
16880typedef struct VkSwapchainDisplayNativeHdrCreateInfoAMD {
16881 VkStructureType sType;
16882 const void* pNext;
16883 VkBool32 localDimmingEnable;
16884} VkSwapchainDisplayNativeHdrCreateInfoAMD;
16885
16886typedef void (VKAPI_PTR *PFN_vkSetLocalDimmingAMD)(VkDevice device, VkSwapchainKHR swapChain, VkBool32 localDimmingEnable);
16887
16888#ifndef VK_NO_PROTOTYPES
16889#ifndef VK_ONLY_EXPORTED_PROTOTYPES
16890VKAPI_ATTR void VKAPI_CALL vkSetLocalDimmingAMD(
16891 VkDevice device,
16892 VkSwapchainKHR swapChain,
16893 VkBool32 localDimmingEnable);
16894#endif
16895#endif
16896
16897
16898// VK_EXT_fragment_density_map is a preprocessor guard. Do not pass it to API calls.
16899#define VK_EXT_fragment_density_map 1
16900#define VK_EXT_FRAGMENT_DENSITY_MAP_SPEC_VERSION 2
16901#define VK_EXT_FRAGMENT_DENSITY_MAP_EXTENSION_NAME "VK_EXT_fragment_density_map"
16902typedef struct VkPhysicalDeviceFragmentDensityMapFeaturesEXT {
16903 VkStructureType sType;
16904 void* pNext;
16905 VkBool32 fragmentDensityMap;
16906 VkBool32 fragmentDensityMapDynamic;
16907 VkBool32 fragmentDensityMapNonSubsampledImages;
16908} VkPhysicalDeviceFragmentDensityMapFeaturesEXT;
16909
16910typedef struct VkPhysicalDeviceFragmentDensityMapPropertiesEXT {
16911 VkStructureType sType;
16912 void* pNext;
16913 VkExtent2D minFragmentDensityTexelSize;
16914 VkExtent2D maxFragmentDensityTexelSize;
16915 VkBool32 fragmentDensityInvocations;
16916} VkPhysicalDeviceFragmentDensityMapPropertiesEXT;
16917
16918typedef struct VkRenderPassFragmentDensityMapCreateInfoEXT {
16919 VkStructureType sType;
16920 const void* pNext;
16921 VkAttachmentReference fragmentDensityMapAttachment;
16922} VkRenderPassFragmentDensityMapCreateInfoEXT;
16923
16924typedef struct VkRenderingFragmentDensityMapAttachmentInfoEXT {
16925 VkStructureType sType;
16926 const void* pNext;
16927 VkImageView imageView;
16928 VkImageLayout imageLayout;
16929} VkRenderingFragmentDensityMapAttachmentInfoEXT;
16930
16931
16932
16933// VK_EXT_scalar_block_layout is a preprocessor guard. Do not pass it to API calls.
16934#define VK_EXT_scalar_block_layout 1
16935#define VK_EXT_SCALAR_BLOCK_LAYOUT_SPEC_VERSION 1
16936#define VK_EXT_SCALAR_BLOCK_LAYOUT_EXTENSION_NAME "VK_EXT_scalar_block_layout"
16937typedef VkPhysicalDeviceScalarBlockLayoutFeatures VkPhysicalDeviceScalarBlockLayoutFeaturesEXT;
16938
16939
16940
16941// VK_GOOGLE_hlsl_functionality1 is a preprocessor guard. Do not pass it to API calls.
16942#define VK_GOOGLE_hlsl_functionality1 1
16943#define VK_GOOGLE_HLSL_FUNCTIONALITY_1_SPEC_VERSION 1
16944#define VK_GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME "VK_GOOGLE_hlsl_functionality1"
16945// VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION is a deprecated alias
16946#define VK_GOOGLE_HLSL_FUNCTIONALITY1_SPEC_VERSION VK_GOOGLE_HLSL_FUNCTIONALITY_1_SPEC_VERSION
16947// VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME is a deprecated alias
16948#define VK_GOOGLE_HLSL_FUNCTIONALITY1_EXTENSION_NAME VK_GOOGLE_HLSL_FUNCTIONALITY_1_EXTENSION_NAME
16949
16950
16951// VK_GOOGLE_decorate_string is a preprocessor guard. Do not pass it to API calls.
16952#define VK_GOOGLE_decorate_string 1
16953#define VK_GOOGLE_DECORATE_STRING_SPEC_VERSION 1
16954#define VK_GOOGLE_DECORATE_STRING_EXTENSION_NAME "VK_GOOGLE_decorate_string"
16955
16956
16957// VK_EXT_subgroup_size_control is a preprocessor guard. Do not pass it to API calls.
16958#define VK_EXT_subgroup_size_control 1
16959#define VK_EXT_SUBGROUP_SIZE_CONTROL_SPEC_VERSION 2
16960#define VK_EXT_SUBGROUP_SIZE_CONTROL_EXTENSION_NAME "VK_EXT_subgroup_size_control"
16961typedef VkPhysicalDeviceSubgroupSizeControlFeatures VkPhysicalDeviceSubgroupSizeControlFeaturesEXT;
16962
16963typedef VkPhysicalDeviceSubgroupSizeControlProperties VkPhysicalDeviceSubgroupSizeControlPropertiesEXT;
16964
16965typedef VkPipelineShaderStageRequiredSubgroupSizeCreateInfo VkPipelineShaderStageRequiredSubgroupSizeCreateInfoEXT;
16966
16967
16968
16969// VK_AMD_shader_core_properties2 is a preprocessor guard. Do not pass it to API calls.
16970#define VK_AMD_shader_core_properties2 1
16971#define VK_AMD_SHADER_CORE_PROPERTIES_2_SPEC_VERSION 1
16972#define VK_AMD_SHADER_CORE_PROPERTIES_2_EXTENSION_NAME "VK_AMD_shader_core_properties2"
16973
16974typedef enum VkShaderCorePropertiesFlagBitsAMD {
16975 VK_SHADER_CORE_PROPERTIES_FLAG_BITS_MAX_ENUM_AMD = 0x7FFFFFFF
16976} VkShaderCorePropertiesFlagBitsAMD;
16977typedef VkFlags VkShaderCorePropertiesFlagsAMD;
16978typedef struct VkPhysicalDeviceShaderCoreProperties2AMD {
16979 VkStructureType sType;
16980 void* pNext;
16981 VkShaderCorePropertiesFlagsAMD shaderCoreFeatures;
16982 uint32_t activeComputeUnitCount;
16983} VkPhysicalDeviceShaderCoreProperties2AMD;
16984
16985
16986
16987// VK_AMD_device_coherent_memory is a preprocessor guard. Do not pass it to API calls.
16988#define VK_AMD_device_coherent_memory 1
16989#define VK_AMD_DEVICE_COHERENT_MEMORY_SPEC_VERSION 1
16990#define VK_AMD_DEVICE_COHERENT_MEMORY_EXTENSION_NAME "VK_AMD_device_coherent_memory"
16991typedef struct VkPhysicalDeviceCoherentMemoryFeaturesAMD {
16992 VkStructureType sType;
16993 void* pNext;
16994 VkBool32 deviceCoherentMemory;
16995} VkPhysicalDeviceCoherentMemoryFeaturesAMD;
16996
16997
16998
16999// VK_EXT_shader_image_atomic_int64 is a preprocessor guard. Do not pass it to API calls.
17000#define VK_EXT_shader_image_atomic_int64 1
17001#define VK_EXT_SHADER_IMAGE_ATOMIC_INT64_SPEC_VERSION 1
17002#define VK_EXT_SHADER_IMAGE_ATOMIC_INT64_EXTENSION_NAME "VK_EXT_shader_image_atomic_int64"
17003typedef struct VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT {
17004 VkStructureType sType;
17005 void* pNext;
17006 VkBool32 shaderImageInt64Atomics;
17007 VkBool32 sparseImageInt64Atomics;
17008} VkPhysicalDeviceShaderImageAtomicInt64FeaturesEXT;
17009
17010
17011
17012// VK_EXT_memory_budget is a preprocessor guard. Do not pass it to API calls.
17013#define VK_EXT_memory_budget 1
17014#define VK_EXT_MEMORY_BUDGET_SPEC_VERSION 1
17015#define VK_EXT_MEMORY_BUDGET_EXTENSION_NAME "VK_EXT_memory_budget"
17016typedef struct VkPhysicalDeviceMemoryBudgetPropertiesEXT {
17017 VkStructureType sType;
17018 void* pNext;
17019 VkDeviceSize heapBudget[VK_MAX_MEMORY_HEAPS];
17020 VkDeviceSize heapUsage[VK_MAX_MEMORY_HEAPS];
17021} VkPhysicalDeviceMemoryBudgetPropertiesEXT;
17022
17023
17024
17025// VK_EXT_memory_priority is a preprocessor guard. Do not pass it to API calls.
17026#define VK_EXT_memory_priority 1
17027#define VK_EXT_MEMORY_PRIORITY_SPEC_VERSION 1
17028#define VK_EXT_MEMORY_PRIORITY_EXTENSION_NAME "VK_EXT_memory_priority"
17029typedef struct VkPhysicalDeviceMemoryPriorityFeaturesEXT {
17030 VkStructureType sType;
17031 void* pNext;
17032 VkBool32 memoryPriority;
17033} VkPhysicalDeviceMemoryPriorityFeaturesEXT;
17034
17035typedef struct VkMemoryPriorityAllocateInfoEXT {
17036 VkStructureType sType;
17037 const void* pNext;
17038 float priority;
17039} VkMemoryPriorityAllocateInfoEXT;
17040
17041
17042
17043// VK_NV_dedicated_allocation_image_aliasing is a preprocessor guard. Do not pass it to API calls.
17044#define VK_NV_dedicated_allocation_image_aliasing 1
17045#define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_SPEC_VERSION 1
17046#define VK_NV_DEDICATED_ALLOCATION_IMAGE_ALIASING_EXTENSION_NAME "VK_NV_dedicated_allocation_image_aliasing"
17047typedef struct VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV {
17048 VkStructureType sType;
17049 void* pNext;
17050 VkBool32 dedicatedAllocationImageAliasing;
17051} VkPhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV;
17052
17053
17054
17055// VK_EXT_buffer_device_address is a preprocessor guard. Do not pass it to API calls.
17056#define VK_EXT_buffer_device_address 1
17057#define VK_EXT_BUFFER_DEVICE_ADDRESS_SPEC_VERSION 2
17058#define VK_EXT_BUFFER_DEVICE_ADDRESS_EXTENSION_NAME "VK_EXT_buffer_device_address"
17059typedef struct VkPhysicalDeviceBufferDeviceAddressFeaturesEXT {
17060 VkStructureType sType;
17061 void* pNext;
17062 VkBool32 bufferDeviceAddress;
17063 VkBool32 bufferDeviceAddressCaptureReplay;
17064 VkBool32 bufferDeviceAddressMultiDevice;
17065} VkPhysicalDeviceBufferDeviceAddressFeaturesEXT;
17066
17067typedef VkPhysicalDeviceBufferDeviceAddressFeaturesEXT VkPhysicalDeviceBufferAddressFeaturesEXT;
17068
17069typedef VkBufferDeviceAddressInfo VkBufferDeviceAddressInfoEXT;
17070
17071typedef struct VkBufferDeviceAddressCreateInfoEXT {
17072 VkStructureType sType;
17073 const void* pNext;
17074 VkDeviceAddress deviceAddress;
17075} VkBufferDeviceAddressCreateInfoEXT;
17076
17077typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetBufferDeviceAddressEXT)(VkDevice device, const VkBufferDeviceAddressInfo* pInfo);
17078
17079#ifndef VK_NO_PROTOTYPES
17080#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17081VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetBufferDeviceAddressEXT(
17082 VkDevice device,
17083 const VkBufferDeviceAddressInfo* pInfo);
17084#endif
17085#endif
17086
17087
17088// VK_EXT_tooling_info is a preprocessor guard. Do not pass it to API calls.
17089#define VK_EXT_tooling_info 1
17090#define VK_EXT_TOOLING_INFO_SPEC_VERSION 1
17091#define VK_EXT_TOOLING_INFO_EXTENSION_NAME "VK_EXT_tooling_info"
17092typedef VkToolPurposeFlagBits VkToolPurposeFlagBitsEXT;
17093
17094typedef VkToolPurposeFlags VkToolPurposeFlagsEXT;
17095
17096typedef VkPhysicalDeviceToolProperties VkPhysicalDeviceToolPropertiesEXT;
17097
17098typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceToolPropertiesEXT)(VkPhysicalDevice physicalDevice, uint32_t* pToolCount, VkPhysicalDeviceToolProperties* pToolProperties);
17099
17100#ifndef VK_NO_PROTOTYPES
17101#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17102VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceToolPropertiesEXT(
17103 VkPhysicalDevice physicalDevice,
17104 uint32_t* pToolCount,
17105 VkPhysicalDeviceToolProperties* pToolProperties);
17106#endif
17107#endif
17108
17109
17110// VK_EXT_separate_stencil_usage is a preprocessor guard. Do not pass it to API calls.
17111#define VK_EXT_separate_stencil_usage 1
17112#define VK_EXT_SEPARATE_STENCIL_USAGE_SPEC_VERSION 1
17113#define VK_EXT_SEPARATE_STENCIL_USAGE_EXTENSION_NAME "VK_EXT_separate_stencil_usage"
17114typedef VkImageStencilUsageCreateInfo VkImageStencilUsageCreateInfoEXT;
17115
17116
17117
17118// VK_EXT_validation_features is a preprocessor guard. Do not pass it to API calls.
17119#define VK_EXT_validation_features 1
17120#define VK_EXT_VALIDATION_FEATURES_SPEC_VERSION 6
17121#define VK_EXT_VALIDATION_FEATURES_EXTENSION_NAME "VK_EXT_validation_features"
17122
17123typedef enum VkValidationFeatureEnableEXT {
17124 VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_EXT = 0,
17125 VK_VALIDATION_FEATURE_ENABLE_GPU_ASSISTED_RESERVE_BINDING_SLOT_EXT = 1,
17126 VK_VALIDATION_FEATURE_ENABLE_BEST_PRACTICES_EXT = 2,
17127 VK_VALIDATION_FEATURE_ENABLE_DEBUG_PRINTF_EXT = 3,
17128 VK_VALIDATION_FEATURE_ENABLE_SYNCHRONIZATION_VALIDATION_EXT = 4,
17129 VK_VALIDATION_FEATURE_ENABLE_MAX_ENUM_EXT = 0x7FFFFFFF
17130} VkValidationFeatureEnableEXT;
17131
17132typedef enum VkValidationFeatureDisableEXT {
17133 VK_VALIDATION_FEATURE_DISABLE_ALL_EXT = 0,
17134 VK_VALIDATION_FEATURE_DISABLE_SHADERS_EXT = 1,
17135 VK_VALIDATION_FEATURE_DISABLE_THREAD_SAFETY_EXT = 2,
17136 VK_VALIDATION_FEATURE_DISABLE_API_PARAMETERS_EXT = 3,
17137 VK_VALIDATION_FEATURE_DISABLE_OBJECT_LIFETIMES_EXT = 4,
17138 VK_VALIDATION_FEATURE_DISABLE_CORE_CHECKS_EXT = 5,
17139 VK_VALIDATION_FEATURE_DISABLE_UNIQUE_HANDLES_EXT = 6,
17140 VK_VALIDATION_FEATURE_DISABLE_SHADER_VALIDATION_CACHE_EXT = 7,
17141 VK_VALIDATION_FEATURE_DISABLE_MAX_ENUM_EXT = 0x7FFFFFFF
17142} VkValidationFeatureDisableEXT;
17143typedef struct VkValidationFeaturesEXT {
17144 VkStructureType sType;
17145 const void* pNext;
17146 uint32_t enabledValidationFeatureCount;
17147 const VkValidationFeatureEnableEXT* pEnabledValidationFeatures;
17148 uint32_t disabledValidationFeatureCount;
17149 const VkValidationFeatureDisableEXT* pDisabledValidationFeatures;
17150} VkValidationFeaturesEXT;
17151
17152
17153
17154// VK_NV_cooperative_matrix is a preprocessor guard. Do not pass it to API calls.
17155#define VK_NV_cooperative_matrix 1
17156#define VK_NV_COOPERATIVE_MATRIX_SPEC_VERSION 1
17157#define VK_NV_COOPERATIVE_MATRIX_EXTENSION_NAME "VK_NV_cooperative_matrix"
17158typedef VkComponentTypeKHR VkComponentTypeNV;
17159
17160typedef VkScopeKHR VkScopeNV;
17161
17162typedef struct VkCooperativeMatrixPropertiesNV {
17163 VkStructureType sType;
17164 void* pNext;
17165 uint32_t MSize;
17166 uint32_t NSize;
17167 uint32_t KSize;
17168 VkComponentTypeNV AType;
17169 VkComponentTypeNV BType;
17170 VkComponentTypeNV CType;
17171 VkComponentTypeNV DType;
17172 VkScopeNV scope;
17173} VkCooperativeMatrixPropertiesNV;
17174
17175typedef struct VkPhysicalDeviceCooperativeMatrixFeaturesNV {
17176 VkStructureType sType;
17177 void* pNext;
17178 VkBool32 cooperativeMatrix;
17179 VkBool32 cooperativeMatrixRobustBufferAccess;
17180} VkPhysicalDeviceCooperativeMatrixFeaturesNV;
17181
17182typedef struct VkPhysicalDeviceCooperativeMatrixPropertiesNV {
17183 VkStructureType sType;
17184 void* pNext;
17185 VkShaderStageFlags cooperativeMatrixSupportedStages;
17186} VkPhysicalDeviceCooperativeMatrixPropertiesNV;
17187
17188typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeMatrixPropertiesNV)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixPropertiesNV* pProperties);
17189
17190#ifndef VK_NO_PROTOTYPES
17191#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17192VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(
17193 VkPhysicalDevice physicalDevice,
17194 uint32_t* pPropertyCount,
17195 VkCooperativeMatrixPropertiesNV* pProperties);
17196#endif
17197#endif
17198
17199
17200// VK_NV_coverage_reduction_mode is a preprocessor guard. Do not pass it to API calls.
17201#define VK_NV_coverage_reduction_mode 1
17202#define VK_NV_COVERAGE_REDUCTION_MODE_SPEC_VERSION 1
17203#define VK_NV_COVERAGE_REDUCTION_MODE_EXTENSION_NAME "VK_NV_coverage_reduction_mode"
17204
17205typedef enum VkCoverageReductionModeNV {
17206 VK_COVERAGE_REDUCTION_MODE_MERGE_NV = 0,
17207 VK_COVERAGE_REDUCTION_MODE_TRUNCATE_NV = 1,
17208 VK_COVERAGE_REDUCTION_MODE_MAX_ENUM_NV = 0x7FFFFFFF
17209} VkCoverageReductionModeNV;
17210typedef VkFlags VkPipelineCoverageReductionStateCreateFlagsNV;
17211typedef struct VkPhysicalDeviceCoverageReductionModeFeaturesNV {
17212 VkStructureType sType;
17213 void* pNext;
17214 VkBool32 coverageReductionMode;
17215} VkPhysicalDeviceCoverageReductionModeFeaturesNV;
17216
17217typedef struct VkPipelineCoverageReductionStateCreateInfoNV {
17218 VkStructureType sType;
17219 const void* pNext;
17220 VkPipelineCoverageReductionStateCreateFlagsNV flags;
17221 VkCoverageReductionModeNV coverageReductionMode;
17222} VkPipelineCoverageReductionStateCreateInfoNV;
17223
17224typedef struct VkFramebufferMixedSamplesCombinationNV {
17225 VkStructureType sType;
17226 void* pNext;
17227 VkCoverageReductionModeNV coverageReductionMode;
17228 VkSampleCountFlagBits rasterizationSamples;
17229 VkSampleCountFlags depthStencilSamples;
17230 VkSampleCountFlags colorSamples;
17231} VkFramebufferMixedSamplesCombinationNV;
17232
17233typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV)(VkPhysicalDevice physicalDevice, uint32_t* pCombinationCount, VkFramebufferMixedSamplesCombinationNV* pCombinations);
17234
17235#ifndef VK_NO_PROTOTYPES
17236#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17237VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
17238 VkPhysicalDevice physicalDevice,
17239 uint32_t* pCombinationCount,
17240 VkFramebufferMixedSamplesCombinationNV* pCombinations);
17241#endif
17242#endif
17243
17244
17245// VK_EXT_fragment_shader_interlock is a preprocessor guard. Do not pass it to API calls.
17246#define VK_EXT_fragment_shader_interlock 1
17247#define VK_EXT_FRAGMENT_SHADER_INTERLOCK_SPEC_VERSION 1
17248#define VK_EXT_FRAGMENT_SHADER_INTERLOCK_EXTENSION_NAME "VK_EXT_fragment_shader_interlock"
17249typedef struct VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT {
17250 VkStructureType sType;
17251 void* pNext;
17252 VkBool32 fragmentShaderSampleInterlock;
17253 VkBool32 fragmentShaderPixelInterlock;
17254 VkBool32 fragmentShaderShadingRateInterlock;
17255} VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT;
17256
17257
17258
17259// VK_EXT_ycbcr_image_arrays is a preprocessor guard. Do not pass it to API calls.
17260#define VK_EXT_ycbcr_image_arrays 1
17261#define VK_EXT_YCBCR_IMAGE_ARRAYS_SPEC_VERSION 1
17262#define VK_EXT_YCBCR_IMAGE_ARRAYS_EXTENSION_NAME "VK_EXT_ycbcr_image_arrays"
17263typedef struct VkPhysicalDeviceYcbcrImageArraysFeaturesEXT {
17264 VkStructureType sType;
17265 void* pNext;
17266 VkBool32 ycbcrImageArrays;
17267} VkPhysicalDeviceYcbcrImageArraysFeaturesEXT;
17268
17269
17270
17271// VK_EXT_provoking_vertex is a preprocessor guard. Do not pass it to API calls.
17272#define VK_EXT_provoking_vertex 1
17273#define VK_EXT_PROVOKING_VERTEX_SPEC_VERSION 1
17274#define VK_EXT_PROVOKING_VERTEX_EXTENSION_NAME "VK_EXT_provoking_vertex"
17275
17276typedef enum VkProvokingVertexModeEXT {
17277 VK_PROVOKING_VERTEX_MODE_FIRST_VERTEX_EXT = 0,
17278 VK_PROVOKING_VERTEX_MODE_LAST_VERTEX_EXT = 1,
17279 VK_PROVOKING_VERTEX_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
17280} VkProvokingVertexModeEXT;
17281typedef struct VkPhysicalDeviceProvokingVertexFeaturesEXT {
17282 VkStructureType sType;
17283 void* pNext;
17284 VkBool32 provokingVertexLast;
17285 VkBool32 transformFeedbackPreservesProvokingVertex;
17286} VkPhysicalDeviceProvokingVertexFeaturesEXT;
17287
17288typedef struct VkPhysicalDeviceProvokingVertexPropertiesEXT {
17289 VkStructureType sType;
17290 void* pNext;
17291 VkBool32 provokingVertexModePerPipeline;
17292 VkBool32 transformFeedbackPreservesTriangleFanProvokingVertex;
17293} VkPhysicalDeviceProvokingVertexPropertiesEXT;
17294
17295typedef struct VkPipelineRasterizationProvokingVertexStateCreateInfoEXT {
17296 VkStructureType sType;
17297 const void* pNext;
17298 VkProvokingVertexModeEXT provokingVertexMode;
17299} VkPipelineRasterizationProvokingVertexStateCreateInfoEXT;
17300
17301
17302
17303// VK_EXT_headless_surface is a preprocessor guard. Do not pass it to API calls.
17304#define VK_EXT_headless_surface 1
17305#define VK_EXT_HEADLESS_SURFACE_SPEC_VERSION 1
17306#define VK_EXT_HEADLESS_SURFACE_EXTENSION_NAME "VK_EXT_headless_surface"
17307typedef VkFlags VkHeadlessSurfaceCreateFlagsEXT;
17308typedef struct VkHeadlessSurfaceCreateInfoEXT {
17309 VkStructureType sType;
17310 const void* pNext;
17311 VkHeadlessSurfaceCreateFlagsEXT flags;
17312} VkHeadlessSurfaceCreateInfoEXT;
17313
17314typedef VkResult (VKAPI_PTR *PFN_vkCreateHeadlessSurfaceEXT)(VkInstance instance, const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
17315
17316#ifndef VK_NO_PROTOTYPES
17317#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17318VKAPI_ATTR VkResult VKAPI_CALL vkCreateHeadlessSurfaceEXT(
17319 VkInstance instance,
17320 const VkHeadlessSurfaceCreateInfoEXT* pCreateInfo,
17321 const VkAllocationCallbacks* pAllocator,
17322 VkSurfaceKHR* pSurface);
17323#endif
17324#endif
17325
17326
17327// VK_EXT_line_rasterization is a preprocessor guard. Do not pass it to API calls.
17328#define VK_EXT_line_rasterization 1
17329#define VK_EXT_LINE_RASTERIZATION_SPEC_VERSION 1
17330#define VK_EXT_LINE_RASTERIZATION_EXTENSION_NAME "VK_EXT_line_rasterization"
17331typedef VkLineRasterizationMode VkLineRasterizationModeEXT;
17332
17333typedef VkPhysicalDeviceLineRasterizationFeatures VkPhysicalDeviceLineRasterizationFeaturesEXT;
17334
17335typedef VkPhysicalDeviceLineRasterizationProperties VkPhysicalDeviceLineRasterizationPropertiesEXT;
17336
17337typedef VkPipelineRasterizationLineStateCreateInfo VkPipelineRasterizationLineStateCreateInfoEXT;
17338
17339typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleEXT)(VkCommandBuffer commandBuffer, uint32_t lineStippleFactor, uint16_t lineStipplePattern);
17340
17341#ifndef VK_NO_PROTOTYPES
17342#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17343VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleEXT(
17344 VkCommandBuffer commandBuffer,
17345 uint32_t lineStippleFactor,
17346 uint16_t lineStipplePattern);
17347#endif
17348#endif
17349
17350
17351// VK_EXT_shader_atomic_float is a preprocessor guard. Do not pass it to API calls.
17352#define VK_EXT_shader_atomic_float 1
17353#define VK_EXT_SHADER_ATOMIC_FLOAT_SPEC_VERSION 1
17354#define VK_EXT_SHADER_ATOMIC_FLOAT_EXTENSION_NAME "VK_EXT_shader_atomic_float"
17355typedef struct VkPhysicalDeviceShaderAtomicFloatFeaturesEXT {
17356 VkStructureType sType;
17357 void* pNext;
17358 VkBool32 shaderBufferFloat32Atomics;
17359 VkBool32 shaderBufferFloat32AtomicAdd;
17360 VkBool32 shaderBufferFloat64Atomics;
17361 VkBool32 shaderBufferFloat64AtomicAdd;
17362 VkBool32 shaderSharedFloat32Atomics;
17363 VkBool32 shaderSharedFloat32AtomicAdd;
17364 VkBool32 shaderSharedFloat64Atomics;
17365 VkBool32 shaderSharedFloat64AtomicAdd;
17366 VkBool32 shaderImageFloat32Atomics;
17367 VkBool32 shaderImageFloat32AtomicAdd;
17368 VkBool32 sparseImageFloat32Atomics;
17369 VkBool32 sparseImageFloat32AtomicAdd;
17370} VkPhysicalDeviceShaderAtomicFloatFeaturesEXT;
17371
17372
17373
17374// VK_EXT_host_query_reset is a preprocessor guard. Do not pass it to API calls.
17375#define VK_EXT_host_query_reset 1
17376#define VK_EXT_HOST_QUERY_RESET_SPEC_VERSION 1
17377#define VK_EXT_HOST_QUERY_RESET_EXTENSION_NAME "VK_EXT_host_query_reset"
17378typedef VkPhysicalDeviceHostQueryResetFeatures VkPhysicalDeviceHostQueryResetFeaturesEXT;
17379
17380typedef void (VKAPI_PTR *PFN_vkResetQueryPoolEXT)(VkDevice device, VkQueryPool queryPool, uint32_t firstQuery, uint32_t queryCount);
17381
17382#ifndef VK_NO_PROTOTYPES
17383#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17384VKAPI_ATTR void VKAPI_CALL vkResetQueryPoolEXT(
17385 VkDevice device,
17386 VkQueryPool queryPool,
17387 uint32_t firstQuery,
17388 uint32_t queryCount);
17389#endif
17390#endif
17391
17392
17393// VK_EXT_index_type_uint8 is a preprocessor guard. Do not pass it to API calls.
17394#define VK_EXT_index_type_uint8 1
17395#define VK_EXT_INDEX_TYPE_UINT8_SPEC_VERSION 1
17396#define VK_EXT_INDEX_TYPE_UINT8_EXTENSION_NAME "VK_EXT_index_type_uint8"
17397typedef VkPhysicalDeviceIndexTypeUint8Features VkPhysicalDeviceIndexTypeUint8FeaturesEXT;
17398
17399
17400
17401// VK_EXT_extended_dynamic_state is a preprocessor guard. Do not pass it to API calls.
17402#define VK_EXT_extended_dynamic_state 1
17403#define VK_EXT_EXTENDED_DYNAMIC_STATE_SPEC_VERSION 1
17404#define VK_EXT_EXTENDED_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_extended_dynamic_state"
17405typedef struct VkPhysicalDeviceExtendedDynamicStateFeaturesEXT {
17406 VkStructureType sType;
17407 void* pNext;
17408 VkBool32 extendedDynamicState;
17409} VkPhysicalDeviceExtendedDynamicStateFeaturesEXT;
17410
17411typedef void (VKAPI_PTR *PFN_vkCmdSetCullModeEXT)(VkCommandBuffer commandBuffer, VkCullModeFlags cullMode);
17412typedef void (VKAPI_PTR *PFN_vkCmdSetFrontFaceEXT)(VkCommandBuffer commandBuffer, VkFrontFace frontFace);
17413typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveTopologyEXT)(VkCommandBuffer commandBuffer, VkPrimitiveTopology primitiveTopology);
17414typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWithCountEXT)(VkCommandBuffer commandBuffer, uint32_t viewportCount, const VkViewport* pViewports);
17415typedef void (VKAPI_PTR *PFN_vkCmdSetScissorWithCountEXT)(VkCommandBuffer commandBuffer, uint32_t scissorCount, const VkRect2D* pScissors);
17416typedef 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);
17417typedef void (VKAPI_PTR *PFN_vkCmdSetDepthTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthTestEnable);
17418typedef void (VKAPI_PTR *PFN_vkCmdSetDepthWriteEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthWriteEnable);
17419typedef void (VKAPI_PTR *PFN_vkCmdSetDepthCompareOpEXT)(VkCommandBuffer commandBuffer, VkCompareOp depthCompareOp);
17420typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBoundsTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthBoundsTestEnable);
17421typedef void (VKAPI_PTR *PFN_vkCmdSetStencilTestEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 stencilTestEnable);
17422typedef void (VKAPI_PTR *PFN_vkCmdSetStencilOpEXT)(VkCommandBuffer commandBuffer, VkStencilFaceFlags faceMask, VkStencilOp failOp, VkStencilOp passOp, VkStencilOp depthFailOp, VkCompareOp compareOp);
17423
17424#ifndef VK_NO_PROTOTYPES
17425#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17426VKAPI_ATTR void VKAPI_CALL vkCmdSetCullModeEXT(
17427 VkCommandBuffer commandBuffer,
17428 VkCullModeFlags cullMode);
17429#endif
17430
17431#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17432VKAPI_ATTR void VKAPI_CALL vkCmdSetFrontFaceEXT(
17433 VkCommandBuffer commandBuffer,
17434 VkFrontFace frontFace);
17435#endif
17436
17437#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17438VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveTopologyEXT(
17439 VkCommandBuffer commandBuffer,
17440 VkPrimitiveTopology primitiveTopology);
17441#endif
17442
17443#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17444VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWithCountEXT(
17445 VkCommandBuffer commandBuffer,
17446 uint32_t viewportCount,
17447 const VkViewport* pViewports);
17448#endif
17449
17450#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17451VKAPI_ATTR void VKAPI_CALL vkCmdSetScissorWithCountEXT(
17452 VkCommandBuffer commandBuffer,
17453 uint32_t scissorCount,
17454 const VkRect2D* pScissors);
17455#endif
17456
17457#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17458VKAPI_ATTR void VKAPI_CALL vkCmdBindVertexBuffers2EXT(
17459 VkCommandBuffer commandBuffer,
17460 uint32_t firstBinding,
17461 uint32_t bindingCount,
17462 const VkBuffer* pBuffers,
17463 const VkDeviceSize* pOffsets,
17464 const VkDeviceSize* pSizes,
17465 const VkDeviceSize* pStrides);
17466#endif
17467
17468#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17469VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthTestEnableEXT(
17470 VkCommandBuffer commandBuffer,
17471 VkBool32 depthTestEnable);
17472#endif
17473
17474#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17475VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthWriteEnableEXT(
17476 VkCommandBuffer commandBuffer,
17477 VkBool32 depthWriteEnable);
17478#endif
17479
17480#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17481VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthCompareOpEXT(
17482 VkCommandBuffer commandBuffer,
17483 VkCompareOp depthCompareOp);
17484#endif
17485
17486#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17487VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBoundsTestEnableEXT(
17488 VkCommandBuffer commandBuffer,
17489 VkBool32 depthBoundsTestEnable);
17490#endif
17491
17492#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17493VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilTestEnableEXT(
17494 VkCommandBuffer commandBuffer,
17495 VkBool32 stencilTestEnable);
17496#endif
17497
17498#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17499VKAPI_ATTR void VKAPI_CALL vkCmdSetStencilOpEXT(
17500 VkCommandBuffer commandBuffer,
17501 VkStencilFaceFlags faceMask,
17502 VkStencilOp failOp,
17503 VkStencilOp passOp,
17504 VkStencilOp depthFailOp,
17505 VkCompareOp compareOp);
17506#endif
17507#endif
17508
17509
17510// VK_EXT_host_image_copy is a preprocessor guard. Do not pass it to API calls.
17511#define VK_EXT_host_image_copy 1
17512#define VK_EXT_HOST_IMAGE_COPY_SPEC_VERSION 1
17513#define VK_EXT_HOST_IMAGE_COPY_EXTENSION_NAME "VK_EXT_host_image_copy"
17514typedef VkHostImageCopyFlagBits VkHostImageCopyFlagBitsEXT;
17515
17516typedef VkHostImageCopyFlags VkHostImageCopyFlagsEXT;
17517
17518typedef VkPhysicalDeviceHostImageCopyFeatures VkPhysicalDeviceHostImageCopyFeaturesEXT;
17519
17520typedef VkPhysicalDeviceHostImageCopyProperties VkPhysicalDeviceHostImageCopyPropertiesEXT;
17521
17522typedef VkMemoryToImageCopy VkMemoryToImageCopyEXT;
17523
17524typedef VkImageToMemoryCopy VkImageToMemoryCopyEXT;
17525
17526typedef VkCopyMemoryToImageInfo VkCopyMemoryToImageInfoEXT;
17527
17528typedef VkCopyImageToMemoryInfo VkCopyImageToMemoryInfoEXT;
17529
17530typedef VkCopyImageToImageInfo VkCopyImageToImageInfoEXT;
17531
17532typedef VkHostImageLayoutTransitionInfo VkHostImageLayoutTransitionInfoEXT;
17533
17534typedef VkSubresourceHostMemcpySize VkSubresourceHostMemcpySizeEXT;
17535
17536typedef VkHostImageCopyDevicePerformanceQuery VkHostImageCopyDevicePerformanceQueryEXT;
17537
17538typedef VkSubresourceLayout2 VkSubresourceLayout2EXT;
17539
17540typedef VkImageSubresource2 VkImageSubresource2EXT;
17541
17542typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToImageEXT)(VkDevice device, const VkCopyMemoryToImageInfo* pCopyMemoryToImageInfo);
17543typedef VkResult (VKAPI_PTR *PFN_vkCopyImageToMemoryEXT)(VkDevice device, const VkCopyImageToMemoryInfo* pCopyImageToMemoryInfo);
17544typedef VkResult (VKAPI_PTR *PFN_vkCopyImageToImageEXT)(VkDevice device, const VkCopyImageToImageInfo* pCopyImageToImageInfo);
17545typedef VkResult (VKAPI_PTR *PFN_vkTransitionImageLayoutEXT)(VkDevice device, uint32_t transitionCount, const VkHostImageLayoutTransitionInfo* pTransitions);
17546typedef void (VKAPI_PTR *PFN_vkGetImageSubresourceLayout2EXT)(VkDevice device, VkImage image, const VkImageSubresource2* pSubresource, VkSubresourceLayout2* pLayout);
17547
17548#ifndef VK_NO_PROTOTYPES
17549#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17550VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToImageEXT(
17551 VkDevice device,
17552 const VkCopyMemoryToImageInfo* pCopyMemoryToImageInfo);
17553#endif
17554
17555#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17556VKAPI_ATTR VkResult VKAPI_CALL vkCopyImageToMemoryEXT(
17557 VkDevice device,
17558 const VkCopyImageToMemoryInfo* pCopyImageToMemoryInfo);
17559#endif
17560
17561#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17562VKAPI_ATTR VkResult VKAPI_CALL vkCopyImageToImageEXT(
17563 VkDevice device,
17564 const VkCopyImageToImageInfo* pCopyImageToImageInfo);
17565#endif
17566
17567#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17568VKAPI_ATTR VkResult VKAPI_CALL vkTransitionImageLayoutEXT(
17569 VkDevice device,
17570 uint32_t transitionCount,
17571 const VkHostImageLayoutTransitionInfo* pTransitions);
17572#endif
17573
17574#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17575VKAPI_ATTR void VKAPI_CALL vkGetImageSubresourceLayout2EXT(
17576 VkDevice device,
17577 VkImage image,
17578 const VkImageSubresource2* pSubresource,
17579 VkSubresourceLayout2* pLayout);
17580#endif
17581#endif
17582
17583
17584// VK_EXT_map_memory_placed is a preprocessor guard. Do not pass it to API calls.
17585#define VK_EXT_map_memory_placed 1
17586#define VK_EXT_MAP_MEMORY_PLACED_SPEC_VERSION 1
17587#define VK_EXT_MAP_MEMORY_PLACED_EXTENSION_NAME "VK_EXT_map_memory_placed"
17588typedef struct VkPhysicalDeviceMapMemoryPlacedFeaturesEXT {
17589 VkStructureType sType;
17590 void* pNext;
17591 VkBool32 memoryMapPlaced;
17592 VkBool32 memoryMapRangePlaced;
17593 VkBool32 memoryUnmapReserve;
17594} VkPhysicalDeviceMapMemoryPlacedFeaturesEXT;
17595
17596typedef struct VkPhysicalDeviceMapMemoryPlacedPropertiesEXT {
17597 VkStructureType sType;
17598 void* pNext;
17599 VkDeviceSize minPlacedMemoryMapAlignment;
17600} VkPhysicalDeviceMapMemoryPlacedPropertiesEXT;
17601
17602typedef struct VkMemoryMapPlacedInfoEXT {
17603 VkStructureType sType;
17604 const void* pNext;
17605 void* pPlacedAddress;
17606} VkMemoryMapPlacedInfoEXT;
17607
17608
17609
17610// VK_EXT_shader_atomic_float2 is a preprocessor guard. Do not pass it to API calls.
17611#define VK_EXT_shader_atomic_float2 1
17612#define VK_EXT_SHADER_ATOMIC_FLOAT_2_SPEC_VERSION 1
17613#define VK_EXT_SHADER_ATOMIC_FLOAT_2_EXTENSION_NAME "VK_EXT_shader_atomic_float2"
17614typedef struct VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT {
17615 VkStructureType sType;
17616 void* pNext;
17617 VkBool32 shaderBufferFloat16Atomics;
17618 VkBool32 shaderBufferFloat16AtomicAdd;
17619 VkBool32 shaderBufferFloat16AtomicMinMax;
17620 VkBool32 shaderBufferFloat32AtomicMinMax;
17621 VkBool32 shaderBufferFloat64AtomicMinMax;
17622 VkBool32 shaderSharedFloat16Atomics;
17623 VkBool32 shaderSharedFloat16AtomicAdd;
17624 VkBool32 shaderSharedFloat16AtomicMinMax;
17625 VkBool32 shaderSharedFloat32AtomicMinMax;
17626 VkBool32 shaderSharedFloat64AtomicMinMax;
17627 VkBool32 shaderImageFloat32AtomicMinMax;
17628 VkBool32 sparseImageFloat32AtomicMinMax;
17629} VkPhysicalDeviceShaderAtomicFloat2FeaturesEXT;
17630
17631
17632
17633// VK_EXT_surface_maintenance1 is a preprocessor guard. Do not pass it to API calls.
17634#define VK_EXT_surface_maintenance1 1
17635#define VK_EXT_SURFACE_MAINTENANCE_1_SPEC_VERSION 1
17636#define VK_EXT_SURFACE_MAINTENANCE_1_EXTENSION_NAME "VK_EXT_surface_maintenance1"
17637typedef VkPresentScalingFlagBitsKHR VkPresentScalingFlagBitsEXT;
17638
17639typedef VkPresentScalingFlagsKHR VkPresentScalingFlagsEXT;
17640
17641typedef VkPresentGravityFlagBitsKHR VkPresentGravityFlagBitsEXT;
17642
17643typedef VkPresentGravityFlagsKHR VkPresentGravityFlagsEXT;
17644
17645typedef VkSurfacePresentModeKHR VkSurfacePresentModeEXT;
17646
17647typedef VkSurfacePresentScalingCapabilitiesKHR VkSurfacePresentScalingCapabilitiesEXT;
17648
17649typedef VkSurfacePresentModeCompatibilityKHR VkSurfacePresentModeCompatibilityEXT;
17650
17651
17652
17653// VK_EXT_swapchain_maintenance1 is a preprocessor guard. Do not pass it to API calls.
17654#define VK_EXT_swapchain_maintenance1 1
17655#define VK_EXT_SWAPCHAIN_MAINTENANCE_1_SPEC_VERSION 1
17656#define VK_EXT_SWAPCHAIN_MAINTENANCE_1_EXTENSION_NAME "VK_EXT_swapchain_maintenance1"
17657typedef VkPhysicalDeviceSwapchainMaintenance1FeaturesKHR VkPhysicalDeviceSwapchainMaintenance1FeaturesEXT;
17658
17659typedef VkSwapchainPresentFenceInfoKHR VkSwapchainPresentFenceInfoEXT;
17660
17661typedef VkSwapchainPresentModesCreateInfoKHR VkSwapchainPresentModesCreateInfoEXT;
17662
17663typedef VkSwapchainPresentModeInfoKHR VkSwapchainPresentModeInfoEXT;
17664
17665typedef VkSwapchainPresentScalingCreateInfoKHR VkSwapchainPresentScalingCreateInfoEXT;
17666
17667typedef VkReleaseSwapchainImagesInfoKHR VkReleaseSwapchainImagesInfoEXT;
17668
17669typedef VkResult (VKAPI_PTR *PFN_vkReleaseSwapchainImagesEXT)(VkDevice device, const VkReleaseSwapchainImagesInfoKHR* pReleaseInfo);
17670
17671#ifndef VK_NO_PROTOTYPES
17672#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17673VKAPI_ATTR VkResult VKAPI_CALL vkReleaseSwapchainImagesEXT(
17674 VkDevice device,
17675 const VkReleaseSwapchainImagesInfoKHR* pReleaseInfo);
17676#endif
17677#endif
17678
17679
17680// VK_EXT_shader_demote_to_helper_invocation is a preprocessor guard. Do not pass it to API calls.
17681#define VK_EXT_shader_demote_to_helper_invocation 1
17682#define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_SPEC_VERSION 1
17683#define VK_EXT_SHADER_DEMOTE_TO_HELPER_INVOCATION_EXTENSION_NAME "VK_EXT_shader_demote_to_helper_invocation"
17684typedef VkPhysicalDeviceShaderDemoteToHelperInvocationFeatures VkPhysicalDeviceShaderDemoteToHelperInvocationFeaturesEXT;
17685
17686
17687
17688// VK_NV_device_generated_commands is a preprocessor guard. Do not pass it to API calls.
17689#define VK_NV_device_generated_commands 1
17690VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutNV)
17691#define VK_NV_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 3
17692#define VK_NV_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_NV_device_generated_commands"
17693
17694typedef enum VkIndirectCommandsTokenTypeNV {
17695 VK_INDIRECT_COMMANDS_TOKEN_TYPE_SHADER_GROUP_NV = 0,
17696 VK_INDIRECT_COMMANDS_TOKEN_TYPE_STATE_FLAGS_NV = 1,
17697 VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_NV = 2,
17698 VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_NV = 3,
17699 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_NV = 4,
17700 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_NV = 5,
17701 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_NV = 6,
17702 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_TASKS_NV = 7,
17703 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV = 1000328000,
17704 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PIPELINE_NV = 1000428003,
17705 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_NV = 1000428004,
17706 VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
17707} VkIndirectCommandsTokenTypeNV;
17708
17709typedef enum VkIndirectStateFlagBitsNV {
17710 VK_INDIRECT_STATE_FLAG_FRONTFACE_BIT_NV = 0x00000001,
17711 VK_INDIRECT_STATE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
17712} VkIndirectStateFlagBitsNV;
17713typedef VkFlags VkIndirectStateFlagsNV;
17714
17715typedef enum VkIndirectCommandsLayoutUsageFlagBitsNV {
17716 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_NV = 0x00000001,
17717 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_INDEXED_SEQUENCES_BIT_NV = 0x00000002,
17718 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_NV = 0x00000004,
17719 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
17720} VkIndirectCommandsLayoutUsageFlagBitsNV;
17721typedef VkFlags VkIndirectCommandsLayoutUsageFlagsNV;
17722typedef struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV {
17723 VkStructureType sType;
17724 void* pNext;
17725 uint32_t maxGraphicsShaderGroupCount;
17726 uint32_t maxIndirectSequenceCount;
17727 uint32_t maxIndirectCommandsTokenCount;
17728 uint32_t maxIndirectCommandsStreamCount;
17729 uint32_t maxIndirectCommandsTokenOffset;
17730 uint32_t maxIndirectCommandsStreamStride;
17731 uint32_t minSequencesCountBufferOffsetAlignment;
17732 uint32_t minSequencesIndexBufferOffsetAlignment;
17733 uint32_t minIndirectCommandsBufferOffsetAlignment;
17734} VkPhysicalDeviceDeviceGeneratedCommandsPropertiesNV;
17735
17736typedef struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV {
17737 VkStructureType sType;
17738 void* pNext;
17739 VkBool32 deviceGeneratedCommands;
17740} VkPhysicalDeviceDeviceGeneratedCommandsFeaturesNV;
17741
17742typedef struct VkGraphicsShaderGroupCreateInfoNV {
17743 VkStructureType sType;
17744 const void* pNext;
17745 uint32_t stageCount;
17746 const VkPipelineShaderStageCreateInfo* pStages;
17747 const VkPipelineVertexInputStateCreateInfo* pVertexInputState;
17748 const VkPipelineTessellationStateCreateInfo* pTessellationState;
17749} VkGraphicsShaderGroupCreateInfoNV;
17750
17751typedef struct VkGraphicsPipelineShaderGroupsCreateInfoNV {
17752 VkStructureType sType;
17753 const void* pNext;
17754 uint32_t groupCount;
17755 const VkGraphicsShaderGroupCreateInfoNV* pGroups;
17756 uint32_t pipelineCount;
17757 const VkPipeline* pPipelines;
17758} VkGraphicsPipelineShaderGroupsCreateInfoNV;
17759
17760typedef struct VkBindShaderGroupIndirectCommandNV {
17761 uint32_t groupIndex;
17762} VkBindShaderGroupIndirectCommandNV;
17763
17764typedef struct VkBindIndexBufferIndirectCommandNV {
17765 VkDeviceAddress bufferAddress;
17766 uint32_t size;
17767 VkIndexType indexType;
17768} VkBindIndexBufferIndirectCommandNV;
17769
17770typedef struct VkBindVertexBufferIndirectCommandNV {
17771 VkDeviceAddress bufferAddress;
17772 uint32_t size;
17773 uint32_t stride;
17774} VkBindVertexBufferIndirectCommandNV;
17775
17776typedef struct VkSetStateFlagsIndirectCommandNV {
17777 uint32_t data;
17778} VkSetStateFlagsIndirectCommandNV;
17779
17780typedef struct VkIndirectCommandsStreamNV {
17781 VkBuffer buffer;
17782 VkDeviceSize offset;
17783} VkIndirectCommandsStreamNV;
17784
17785typedef struct VkIndirectCommandsLayoutTokenNV {
17786 VkStructureType sType;
17787 const void* pNext;
17788 VkIndirectCommandsTokenTypeNV tokenType;
17789 uint32_t stream;
17790 uint32_t offset;
17791 uint32_t vertexBindingUnit;
17792 VkBool32 vertexDynamicStride;
17793 VkPipelineLayout pushconstantPipelineLayout;
17794 VkShaderStageFlags pushconstantShaderStageFlags;
17795 uint32_t pushconstantOffset;
17796 uint32_t pushconstantSize;
17797 VkIndirectStateFlagsNV indirectStateFlags;
17798 uint32_t indexTypeCount;
17799 const VkIndexType* pIndexTypes;
17800 const uint32_t* pIndexTypeValues;
17801} VkIndirectCommandsLayoutTokenNV;
17802
17803typedef struct VkIndirectCommandsLayoutCreateInfoNV {
17804 VkStructureType sType;
17805 const void* pNext;
17806 VkIndirectCommandsLayoutUsageFlagsNV flags;
17807 VkPipelineBindPoint pipelineBindPoint;
17808 uint32_t tokenCount;
17809 const VkIndirectCommandsLayoutTokenNV* pTokens;
17810 uint32_t streamCount;
17811 const uint32_t* pStreamStrides;
17812} VkIndirectCommandsLayoutCreateInfoNV;
17813
17814typedef struct VkGeneratedCommandsInfoNV {
17815 VkStructureType sType;
17816 const void* pNext;
17817 VkPipelineBindPoint pipelineBindPoint;
17818 VkPipeline pipeline;
17819 VkIndirectCommandsLayoutNV indirectCommandsLayout;
17820 uint32_t streamCount;
17821 const VkIndirectCommandsStreamNV* pStreams;
17822 uint32_t sequencesCount;
17823 VkBuffer preprocessBuffer;
17824 VkDeviceSize preprocessOffset;
17825 VkDeviceSize preprocessSize;
17826 VkBuffer sequencesCountBuffer;
17827 VkDeviceSize sequencesCountOffset;
17828 VkBuffer sequencesIndexBuffer;
17829 VkDeviceSize sequencesIndexOffset;
17830} VkGeneratedCommandsInfoNV;
17831
17832typedef struct VkGeneratedCommandsMemoryRequirementsInfoNV {
17833 VkStructureType sType;
17834 const void* pNext;
17835 VkPipelineBindPoint pipelineBindPoint;
17836 VkPipeline pipeline;
17837 VkIndirectCommandsLayoutNV indirectCommandsLayout;
17838 uint32_t maxSequencesCount;
17839} VkGeneratedCommandsMemoryRequirementsInfoNV;
17840
17841typedef void (VKAPI_PTR *PFN_vkGetGeneratedCommandsMemoryRequirementsNV)(VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo, VkMemoryRequirements2* pMemoryRequirements);
17842typedef void (VKAPI_PTR *PFN_vkCmdPreprocessGeneratedCommandsNV)(VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
17843typedef void (VKAPI_PTR *PFN_vkCmdExecuteGeneratedCommandsNV)(VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
17844typedef void (VKAPI_PTR *PFN_vkCmdBindPipelineShaderGroupNV)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline, uint32_t groupIndex);
17845typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutNV)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutNV* pIndirectCommandsLayout);
17846typedef void (VKAPI_PTR *PFN_vkDestroyIndirectCommandsLayoutNV)(VkDevice device, VkIndirectCommandsLayoutNV indirectCommandsLayout, const VkAllocationCallbacks* pAllocator);
17847
17848#ifndef VK_NO_PROTOTYPES
17849#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17850VKAPI_ATTR void VKAPI_CALL vkGetGeneratedCommandsMemoryRequirementsNV(
17851 VkDevice device,
17852 const VkGeneratedCommandsMemoryRequirementsInfoNV* pInfo,
17853 VkMemoryRequirements2* pMemoryRequirements);
17854#endif
17855
17856#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17857VKAPI_ATTR void VKAPI_CALL vkCmdPreprocessGeneratedCommandsNV(
17858 VkCommandBuffer commandBuffer,
17859 const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
17860#endif
17861
17862#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17863VKAPI_ATTR void VKAPI_CALL vkCmdExecuteGeneratedCommandsNV(
17864 VkCommandBuffer commandBuffer,
17865 VkBool32 isPreprocessed,
17866 const VkGeneratedCommandsInfoNV* pGeneratedCommandsInfo);
17867#endif
17868
17869#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17870VKAPI_ATTR void VKAPI_CALL vkCmdBindPipelineShaderGroupNV(
17871 VkCommandBuffer commandBuffer,
17872 VkPipelineBindPoint pipelineBindPoint,
17873 VkPipeline pipeline,
17874 uint32_t groupIndex);
17875#endif
17876
17877#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17878VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutNV(
17879 VkDevice device,
17880 const VkIndirectCommandsLayoutCreateInfoNV* pCreateInfo,
17881 const VkAllocationCallbacks* pAllocator,
17882 VkIndirectCommandsLayoutNV* pIndirectCommandsLayout);
17883#endif
17884
17885#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17886VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutNV(
17887 VkDevice device,
17888 VkIndirectCommandsLayoutNV indirectCommandsLayout,
17889 const VkAllocationCallbacks* pAllocator);
17890#endif
17891#endif
17892
17893
17894// VK_NV_inherited_viewport_scissor is a preprocessor guard. Do not pass it to API calls.
17895#define VK_NV_inherited_viewport_scissor 1
17896#define VK_NV_INHERITED_VIEWPORT_SCISSOR_SPEC_VERSION 1
17897#define VK_NV_INHERITED_VIEWPORT_SCISSOR_EXTENSION_NAME "VK_NV_inherited_viewport_scissor"
17898typedef struct VkPhysicalDeviceInheritedViewportScissorFeaturesNV {
17899 VkStructureType sType;
17900 void* pNext;
17901 VkBool32 inheritedViewportScissor2D;
17902} VkPhysicalDeviceInheritedViewportScissorFeaturesNV;
17903
17904typedef struct VkCommandBufferInheritanceViewportScissorInfoNV {
17905 VkStructureType sType;
17906 const void* pNext;
17907 VkBool32 viewportScissor2D;
17908 uint32_t viewportDepthCount;
17909 const VkViewport* pViewportDepths;
17910} VkCommandBufferInheritanceViewportScissorInfoNV;
17911
17912
17913
17914// VK_EXT_texel_buffer_alignment is a preprocessor guard. Do not pass it to API calls.
17915#define VK_EXT_texel_buffer_alignment 1
17916#define VK_EXT_TEXEL_BUFFER_ALIGNMENT_SPEC_VERSION 1
17917#define VK_EXT_TEXEL_BUFFER_ALIGNMENT_EXTENSION_NAME "VK_EXT_texel_buffer_alignment"
17918typedef struct VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT {
17919 VkStructureType sType;
17920 void* pNext;
17921 VkBool32 texelBufferAlignment;
17922} VkPhysicalDeviceTexelBufferAlignmentFeaturesEXT;
17923
17924typedef VkPhysicalDeviceTexelBufferAlignmentProperties VkPhysicalDeviceTexelBufferAlignmentPropertiesEXT;
17925
17926
17927
17928// VK_QCOM_render_pass_transform is a preprocessor guard. Do not pass it to API calls.
17929#define VK_QCOM_render_pass_transform 1
17930#define VK_QCOM_RENDER_PASS_TRANSFORM_SPEC_VERSION 5
17931#define VK_QCOM_RENDER_PASS_TRANSFORM_EXTENSION_NAME "VK_QCOM_render_pass_transform"
17932typedef struct VkRenderPassTransformBeginInfoQCOM {
17933 VkStructureType sType;
17934 const void* pNext;
17935 VkSurfaceTransformFlagBitsKHR transform;
17936} VkRenderPassTransformBeginInfoQCOM;
17937
17938typedef struct VkCommandBufferInheritanceRenderPassTransformInfoQCOM {
17939 VkStructureType sType;
17940 const void* pNext;
17941 VkSurfaceTransformFlagBitsKHR transform;
17942 VkRect2D renderArea;
17943} VkCommandBufferInheritanceRenderPassTransformInfoQCOM;
17944
17945
17946
17947// VK_EXT_depth_bias_control is a preprocessor guard. Do not pass it to API calls.
17948#define VK_EXT_depth_bias_control 1
17949#define VK_EXT_DEPTH_BIAS_CONTROL_SPEC_VERSION 1
17950#define VK_EXT_DEPTH_BIAS_CONTROL_EXTENSION_NAME "VK_EXT_depth_bias_control"
17951
17952typedef enum VkDepthBiasRepresentationEXT {
17953 VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORMAT_EXT = 0,
17954 VK_DEPTH_BIAS_REPRESENTATION_LEAST_REPRESENTABLE_VALUE_FORCE_UNORM_EXT = 1,
17955 VK_DEPTH_BIAS_REPRESENTATION_FLOAT_EXT = 2,
17956 VK_DEPTH_BIAS_REPRESENTATION_MAX_ENUM_EXT = 0x7FFFFFFF
17957} VkDepthBiasRepresentationEXT;
17958typedef struct VkPhysicalDeviceDepthBiasControlFeaturesEXT {
17959 VkStructureType sType;
17960 void* pNext;
17961 VkBool32 depthBiasControl;
17962 VkBool32 leastRepresentableValueForceUnormRepresentation;
17963 VkBool32 floatRepresentation;
17964 VkBool32 depthBiasExact;
17965} VkPhysicalDeviceDepthBiasControlFeaturesEXT;
17966
17967typedef struct VkDepthBiasInfoEXT {
17968 VkStructureType sType;
17969 const void* pNext;
17970 float depthBiasConstantFactor;
17971 float depthBiasClamp;
17972 float depthBiasSlopeFactor;
17973} VkDepthBiasInfoEXT;
17974
17975typedef struct VkDepthBiasRepresentationInfoEXT {
17976 VkStructureType sType;
17977 const void* pNext;
17978 VkDepthBiasRepresentationEXT depthBiasRepresentation;
17979 VkBool32 depthBiasExact;
17980} VkDepthBiasRepresentationInfoEXT;
17981
17982typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBias2EXT)(VkCommandBuffer commandBuffer, const VkDepthBiasInfoEXT* pDepthBiasInfo);
17983
17984#ifndef VK_NO_PROTOTYPES
17985#ifndef VK_ONLY_EXPORTED_PROTOTYPES
17986VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBias2EXT(
17987 VkCommandBuffer commandBuffer,
17988 const VkDepthBiasInfoEXT* pDepthBiasInfo);
17989#endif
17990#endif
17991
17992
17993// VK_EXT_device_memory_report is a preprocessor guard. Do not pass it to API calls.
17994#define VK_EXT_device_memory_report 1
17995#define VK_EXT_DEVICE_MEMORY_REPORT_SPEC_VERSION 2
17996#define VK_EXT_DEVICE_MEMORY_REPORT_EXTENSION_NAME "VK_EXT_device_memory_report"
17997
17998typedef enum VkDeviceMemoryReportEventTypeEXT {
17999 VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATE_EXT = 0,
18000 VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_FREE_EXT = 1,
18001 VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_IMPORT_EXT = 2,
18002 VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_UNIMPORT_EXT = 3,
18003 VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_ALLOCATION_FAILED_EXT = 4,
18004 VK_DEVICE_MEMORY_REPORT_EVENT_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
18005} VkDeviceMemoryReportEventTypeEXT;
18006typedef VkFlags VkDeviceMemoryReportFlagsEXT;
18007typedef struct VkPhysicalDeviceDeviceMemoryReportFeaturesEXT {
18008 VkStructureType sType;
18009 void* pNext;
18010 VkBool32 deviceMemoryReport;
18011} VkPhysicalDeviceDeviceMemoryReportFeaturesEXT;
18012
18013typedef struct VkDeviceMemoryReportCallbackDataEXT {
18014 VkStructureType sType;
18015 void* pNext;
18016 VkDeviceMemoryReportFlagsEXT flags;
18017 VkDeviceMemoryReportEventTypeEXT type;
18018 uint64_t memoryObjectId;
18019 VkDeviceSize size;
18020 VkObjectType objectType;
18021 uint64_t objectHandle;
18022 uint32_t heapIndex;
18023} VkDeviceMemoryReportCallbackDataEXT;
18024
18025typedef void (VKAPI_PTR *PFN_vkDeviceMemoryReportCallbackEXT)(
18026 const VkDeviceMemoryReportCallbackDataEXT* pCallbackData,
18027 void* pUserData);
18028
18029typedef struct VkDeviceDeviceMemoryReportCreateInfoEXT {
18030 VkStructureType sType;
18031 const void* pNext;
18032 VkDeviceMemoryReportFlagsEXT flags;
18033 PFN_vkDeviceMemoryReportCallbackEXT pfnUserCallback;
18034 void* pUserData;
18035} VkDeviceDeviceMemoryReportCreateInfoEXT;
18036
18037
18038
18039// VK_EXT_acquire_drm_display is a preprocessor guard. Do not pass it to API calls.
18040#define VK_EXT_acquire_drm_display 1
18041#define VK_EXT_ACQUIRE_DRM_DISPLAY_SPEC_VERSION 1
18042#define VK_EXT_ACQUIRE_DRM_DISPLAY_EXTENSION_NAME "VK_EXT_acquire_drm_display"
18043typedef VkResult (VKAPI_PTR *PFN_vkAcquireDrmDisplayEXT)(VkPhysicalDevice physicalDevice, int32_t drmFd, VkDisplayKHR display);
18044typedef VkResult (VKAPI_PTR *PFN_vkGetDrmDisplayEXT)(VkPhysicalDevice physicalDevice, int32_t drmFd, uint32_t connectorId, VkDisplayKHR* display);
18045
18046#ifndef VK_NO_PROTOTYPES
18047#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18048VKAPI_ATTR VkResult VKAPI_CALL vkAcquireDrmDisplayEXT(
18049 VkPhysicalDevice physicalDevice,
18050 int32_t drmFd,
18051 VkDisplayKHR display);
18052#endif
18053
18054#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18055VKAPI_ATTR VkResult VKAPI_CALL vkGetDrmDisplayEXT(
18056 VkPhysicalDevice physicalDevice,
18057 int32_t drmFd,
18058 uint32_t connectorId,
18059 VkDisplayKHR* display);
18060#endif
18061#endif
18062
18063
18064// VK_EXT_robustness2 is a preprocessor guard. Do not pass it to API calls.
18065#define VK_EXT_robustness2 1
18066#define VK_EXT_ROBUSTNESS_2_SPEC_VERSION 1
18067#define VK_EXT_ROBUSTNESS_2_EXTENSION_NAME "VK_EXT_robustness2"
18068typedef VkPhysicalDeviceRobustness2FeaturesKHR VkPhysicalDeviceRobustness2FeaturesEXT;
18069
18070typedef VkPhysicalDeviceRobustness2PropertiesKHR VkPhysicalDeviceRobustness2PropertiesEXT;
18071
18072
18073
18074// VK_EXT_custom_border_color is a preprocessor guard. Do not pass it to API calls.
18075#define VK_EXT_custom_border_color 1
18076#define VK_EXT_CUSTOM_BORDER_COLOR_SPEC_VERSION 12
18077#define VK_EXT_CUSTOM_BORDER_COLOR_EXTENSION_NAME "VK_EXT_custom_border_color"
18078typedef struct VkSamplerCustomBorderColorCreateInfoEXT {
18079 VkStructureType sType;
18080 const void* pNext;
18081 VkClearColorValue customBorderColor;
18082 VkFormat format;
18083} VkSamplerCustomBorderColorCreateInfoEXT;
18084
18085typedef struct VkPhysicalDeviceCustomBorderColorPropertiesEXT {
18086 VkStructureType sType;
18087 void* pNext;
18088 uint32_t maxCustomBorderColorSamplers;
18089} VkPhysicalDeviceCustomBorderColorPropertiesEXT;
18090
18091typedef struct VkPhysicalDeviceCustomBorderColorFeaturesEXT {
18092 VkStructureType sType;
18093 void* pNext;
18094 VkBool32 customBorderColors;
18095 VkBool32 customBorderColorWithoutFormat;
18096} VkPhysicalDeviceCustomBorderColorFeaturesEXT;
18097
18098
18099
18100// VK_GOOGLE_user_type is a preprocessor guard. Do not pass it to API calls.
18101#define VK_GOOGLE_user_type 1
18102#define VK_GOOGLE_USER_TYPE_SPEC_VERSION 1
18103#define VK_GOOGLE_USER_TYPE_EXTENSION_NAME "VK_GOOGLE_user_type"
18104
18105
18106// VK_NV_present_barrier is a preprocessor guard. Do not pass it to API calls.
18107#define VK_NV_present_barrier 1
18108#define VK_NV_PRESENT_BARRIER_SPEC_VERSION 1
18109#define VK_NV_PRESENT_BARRIER_EXTENSION_NAME "VK_NV_present_barrier"
18110typedef struct VkPhysicalDevicePresentBarrierFeaturesNV {
18111 VkStructureType sType;
18112 void* pNext;
18113 VkBool32 presentBarrier;
18114} VkPhysicalDevicePresentBarrierFeaturesNV;
18115
18116typedef struct VkSurfaceCapabilitiesPresentBarrierNV {
18117 VkStructureType sType;
18118 void* pNext;
18119 VkBool32 presentBarrierSupported;
18120} VkSurfaceCapabilitiesPresentBarrierNV;
18121
18122typedef struct VkSwapchainPresentBarrierCreateInfoNV {
18123 VkStructureType sType;
18124 void* pNext;
18125 VkBool32 presentBarrierEnable;
18126} VkSwapchainPresentBarrierCreateInfoNV;
18127
18128
18129
18130// VK_EXT_private_data is a preprocessor guard. Do not pass it to API calls.
18131#define VK_EXT_private_data 1
18132typedef VkPrivateDataSlot VkPrivateDataSlotEXT;
18133
18134#define VK_EXT_PRIVATE_DATA_SPEC_VERSION 1
18135#define VK_EXT_PRIVATE_DATA_EXTENSION_NAME "VK_EXT_private_data"
18136typedef VkPrivateDataSlotCreateFlags VkPrivateDataSlotCreateFlagsEXT;
18137
18138typedef VkPhysicalDevicePrivateDataFeatures VkPhysicalDevicePrivateDataFeaturesEXT;
18139
18140typedef VkDevicePrivateDataCreateInfo VkDevicePrivateDataCreateInfoEXT;
18141
18142typedef VkPrivateDataSlotCreateInfo VkPrivateDataSlotCreateInfoEXT;
18143
18144typedef VkResult (VKAPI_PTR *PFN_vkCreatePrivateDataSlotEXT)(VkDevice device, const VkPrivateDataSlotCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkPrivateDataSlot* pPrivateDataSlot);
18145typedef void (VKAPI_PTR *PFN_vkDestroyPrivateDataSlotEXT)(VkDevice device, VkPrivateDataSlot privateDataSlot, const VkAllocationCallbacks* pAllocator);
18146typedef VkResult (VKAPI_PTR *PFN_vkSetPrivateDataEXT)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t data);
18147typedef void (VKAPI_PTR *PFN_vkGetPrivateDataEXT)(VkDevice device, VkObjectType objectType, uint64_t objectHandle, VkPrivateDataSlot privateDataSlot, uint64_t* pData);
18148
18149#ifndef VK_NO_PROTOTYPES
18150#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18151VKAPI_ATTR VkResult VKAPI_CALL vkCreatePrivateDataSlotEXT(
18152 VkDevice device,
18153 const VkPrivateDataSlotCreateInfo* pCreateInfo,
18154 const VkAllocationCallbacks* pAllocator,
18155 VkPrivateDataSlot* pPrivateDataSlot);
18156#endif
18157
18158#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18159VKAPI_ATTR void VKAPI_CALL vkDestroyPrivateDataSlotEXT(
18160 VkDevice device,
18161 VkPrivateDataSlot privateDataSlot,
18162 const VkAllocationCallbacks* pAllocator);
18163#endif
18164
18165#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18166VKAPI_ATTR VkResult VKAPI_CALL vkSetPrivateDataEXT(
18167 VkDevice device,
18168 VkObjectType objectType,
18169 uint64_t objectHandle,
18170 VkPrivateDataSlot privateDataSlot,
18171 uint64_t data);
18172#endif
18173
18174#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18175VKAPI_ATTR void VKAPI_CALL vkGetPrivateDataEXT(
18176 VkDevice device,
18177 VkObjectType objectType,
18178 uint64_t objectHandle,
18179 VkPrivateDataSlot privateDataSlot,
18180 uint64_t* pData);
18181#endif
18182#endif
18183
18184
18185// VK_EXT_pipeline_creation_cache_control is a preprocessor guard. Do not pass it to API calls.
18186#define VK_EXT_pipeline_creation_cache_control 1
18187#define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_SPEC_VERSION 3
18188#define VK_EXT_PIPELINE_CREATION_CACHE_CONTROL_EXTENSION_NAME "VK_EXT_pipeline_creation_cache_control"
18189typedef VkPhysicalDevicePipelineCreationCacheControlFeatures VkPhysicalDevicePipelineCreationCacheControlFeaturesEXT;
18190
18191
18192
18193// VK_NV_device_diagnostics_config is a preprocessor guard. Do not pass it to API calls.
18194#define VK_NV_device_diagnostics_config 1
18195#define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_SPEC_VERSION 2
18196#define VK_NV_DEVICE_DIAGNOSTICS_CONFIG_EXTENSION_NAME "VK_NV_device_diagnostics_config"
18197
18198typedef enum VkDeviceDiagnosticsConfigFlagBitsNV {
18199 VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_DEBUG_INFO_BIT_NV = 0x00000001,
18200 VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_RESOURCE_TRACKING_BIT_NV = 0x00000002,
18201 VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_AUTOMATIC_CHECKPOINTS_BIT_NV = 0x00000004,
18202 VK_DEVICE_DIAGNOSTICS_CONFIG_ENABLE_SHADER_ERROR_REPORTING_BIT_NV = 0x00000008,
18203 VK_DEVICE_DIAGNOSTICS_CONFIG_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
18204} VkDeviceDiagnosticsConfigFlagBitsNV;
18205typedef VkFlags VkDeviceDiagnosticsConfigFlagsNV;
18206typedef struct VkPhysicalDeviceDiagnosticsConfigFeaturesNV {
18207 VkStructureType sType;
18208 void* pNext;
18209 VkBool32 diagnosticsConfig;
18210} VkPhysicalDeviceDiagnosticsConfigFeaturesNV;
18211
18212typedef struct VkDeviceDiagnosticsConfigCreateInfoNV {
18213 VkStructureType sType;
18214 const void* pNext;
18215 VkDeviceDiagnosticsConfigFlagsNV flags;
18216} VkDeviceDiagnosticsConfigCreateInfoNV;
18217
18218
18219
18220// VK_QCOM_render_pass_store_ops is a preprocessor guard. Do not pass it to API calls.
18221#define VK_QCOM_render_pass_store_ops 1
18222#define VK_QCOM_RENDER_PASS_STORE_OPS_SPEC_VERSION 2
18223#define VK_QCOM_RENDER_PASS_STORE_OPS_EXTENSION_NAME "VK_QCOM_render_pass_store_ops"
18224
18225
18226// VK_QCOM_tile_shading is a preprocessor guard. Do not pass it to API calls.
18227#define VK_QCOM_tile_shading 1
18228#define VK_QCOM_TILE_SHADING_SPEC_VERSION 2
18229#define VK_QCOM_TILE_SHADING_EXTENSION_NAME "VK_QCOM_tile_shading"
18230
18231typedef enum VkTileShadingRenderPassFlagBitsQCOM {
18232 VK_TILE_SHADING_RENDER_PASS_ENABLE_BIT_QCOM = 0x00000001,
18233 VK_TILE_SHADING_RENDER_PASS_PER_TILE_EXECUTION_BIT_QCOM = 0x00000002,
18234 VK_TILE_SHADING_RENDER_PASS_FLAG_BITS_MAX_ENUM_QCOM = 0x7FFFFFFF
18235} VkTileShadingRenderPassFlagBitsQCOM;
18236typedef VkFlags VkTileShadingRenderPassFlagsQCOM;
18237typedef struct VkPhysicalDeviceTileShadingFeaturesQCOM {
18238 VkStructureType sType;
18239 void* pNext;
18240 VkBool32 tileShading;
18241 VkBool32 tileShadingFragmentStage;
18242 VkBool32 tileShadingColorAttachments;
18243 VkBool32 tileShadingDepthAttachments;
18244 VkBool32 tileShadingStencilAttachments;
18245 VkBool32 tileShadingInputAttachments;
18246 VkBool32 tileShadingSampledAttachments;
18247 VkBool32 tileShadingPerTileDraw;
18248 VkBool32 tileShadingPerTileDispatch;
18249 VkBool32 tileShadingDispatchTile;
18250 VkBool32 tileShadingApron;
18251 VkBool32 tileShadingAnisotropicApron;
18252 VkBool32 tileShadingAtomicOps;
18253 VkBool32 tileShadingImageProcessing;
18254} VkPhysicalDeviceTileShadingFeaturesQCOM;
18255
18256typedef struct VkPhysicalDeviceTileShadingPropertiesQCOM {
18257 VkStructureType sType;
18258 void* pNext;
18259 uint32_t maxApronSize;
18260 VkBool32 preferNonCoherent;
18261 VkExtent2D tileGranularity;
18262 VkExtent2D maxTileShadingRate;
18263} VkPhysicalDeviceTileShadingPropertiesQCOM;
18264
18265typedef struct VkRenderPassTileShadingCreateInfoQCOM {
18266 VkStructureType sType;
18267 const void* pNext;
18268 VkTileShadingRenderPassFlagsQCOM flags;
18269 VkExtent2D tileApronSize;
18270} VkRenderPassTileShadingCreateInfoQCOM;
18271
18272typedef struct VkPerTileBeginInfoQCOM {
18273 VkStructureType sType;
18274 const void* pNext;
18275} VkPerTileBeginInfoQCOM;
18276
18277typedef struct VkPerTileEndInfoQCOM {
18278 VkStructureType sType;
18279 const void* pNext;
18280} VkPerTileEndInfoQCOM;
18281
18282typedef struct VkDispatchTileInfoQCOM {
18283 VkStructureType sType;
18284 const void* pNext;
18285} VkDispatchTileInfoQCOM;
18286
18287typedef void (VKAPI_PTR *PFN_vkCmdDispatchTileQCOM)(VkCommandBuffer commandBuffer, const VkDispatchTileInfoQCOM* pDispatchTileInfo);
18288typedef void (VKAPI_PTR *PFN_vkCmdBeginPerTileExecutionQCOM)(VkCommandBuffer commandBuffer, const VkPerTileBeginInfoQCOM* pPerTileBeginInfo);
18289typedef void (VKAPI_PTR *PFN_vkCmdEndPerTileExecutionQCOM)(VkCommandBuffer commandBuffer, const VkPerTileEndInfoQCOM* pPerTileEndInfo);
18290
18291#ifndef VK_NO_PROTOTYPES
18292#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18293VKAPI_ATTR void VKAPI_CALL vkCmdDispatchTileQCOM(
18294 VkCommandBuffer commandBuffer,
18295 const VkDispatchTileInfoQCOM* pDispatchTileInfo);
18296#endif
18297
18298#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18299VKAPI_ATTR void VKAPI_CALL vkCmdBeginPerTileExecutionQCOM(
18300 VkCommandBuffer commandBuffer,
18301 const VkPerTileBeginInfoQCOM* pPerTileBeginInfo);
18302#endif
18303
18304#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18305VKAPI_ATTR void VKAPI_CALL vkCmdEndPerTileExecutionQCOM(
18306 VkCommandBuffer commandBuffer,
18307 const VkPerTileEndInfoQCOM* pPerTileEndInfo);
18308#endif
18309#endif
18310
18311
18312// VK_NV_low_latency is a preprocessor guard. Do not pass it to API calls.
18313#define VK_NV_low_latency 1
18314#define VK_NV_LOW_LATENCY_SPEC_VERSION 1
18315#define VK_NV_LOW_LATENCY_EXTENSION_NAME "VK_NV_low_latency"
18316typedef struct VkQueryLowLatencySupportNV {
18317 VkStructureType sType;
18318 const void* pNext;
18319 void* pQueriedLowLatencyData;
18320} VkQueryLowLatencySupportNV;
18321
18322
18323
18324// VK_EXT_descriptor_buffer is a preprocessor guard. Do not pass it to API calls.
18325#define VK_EXT_descriptor_buffer 1
18326VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkAccelerationStructureKHR)
18327#define VK_EXT_DESCRIPTOR_BUFFER_SPEC_VERSION 1
18328#define VK_EXT_DESCRIPTOR_BUFFER_EXTENSION_NAME "VK_EXT_descriptor_buffer"
18329typedef struct VkPhysicalDeviceDescriptorBufferPropertiesEXT {
18330 VkStructureType sType;
18331 void* pNext;
18332 VkBool32 combinedImageSamplerDescriptorSingleArray;
18333 VkBool32 bufferlessPushDescriptors;
18334 VkBool32 allowSamplerImageViewPostSubmitCreation;
18335 VkDeviceSize descriptorBufferOffsetAlignment;
18336 uint32_t maxDescriptorBufferBindings;
18337 uint32_t maxResourceDescriptorBufferBindings;
18338 uint32_t maxSamplerDescriptorBufferBindings;
18339 uint32_t maxEmbeddedImmutableSamplerBindings;
18340 uint32_t maxEmbeddedImmutableSamplers;
18341 size_t bufferCaptureReplayDescriptorDataSize;
18342 size_t imageCaptureReplayDescriptorDataSize;
18343 size_t imageViewCaptureReplayDescriptorDataSize;
18344 size_t samplerCaptureReplayDescriptorDataSize;
18345 size_t accelerationStructureCaptureReplayDescriptorDataSize;
18346 size_t samplerDescriptorSize;
18347 size_t combinedImageSamplerDescriptorSize;
18348 size_t sampledImageDescriptorSize;
18349 size_t storageImageDescriptorSize;
18350 size_t uniformTexelBufferDescriptorSize;
18351 size_t robustUniformTexelBufferDescriptorSize;
18352 size_t storageTexelBufferDescriptorSize;
18353 size_t robustStorageTexelBufferDescriptorSize;
18354 size_t uniformBufferDescriptorSize;
18355 size_t robustUniformBufferDescriptorSize;
18356 size_t storageBufferDescriptorSize;
18357 size_t robustStorageBufferDescriptorSize;
18358 size_t inputAttachmentDescriptorSize;
18359 size_t accelerationStructureDescriptorSize;
18360 VkDeviceSize maxSamplerDescriptorBufferRange;
18361 VkDeviceSize maxResourceDescriptorBufferRange;
18362 VkDeviceSize samplerDescriptorBufferAddressSpaceSize;
18363 VkDeviceSize resourceDescriptorBufferAddressSpaceSize;
18364 VkDeviceSize descriptorBufferAddressSpaceSize;
18365} VkPhysicalDeviceDescriptorBufferPropertiesEXT;
18366
18367typedef struct VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT {
18368 VkStructureType sType;
18369 void* pNext;
18370 size_t combinedImageSamplerDensityMapDescriptorSize;
18371} VkPhysicalDeviceDescriptorBufferDensityMapPropertiesEXT;
18372
18373typedef struct VkPhysicalDeviceDescriptorBufferFeaturesEXT {
18374 VkStructureType sType;
18375 void* pNext;
18376 VkBool32 descriptorBuffer;
18377 VkBool32 descriptorBufferCaptureReplay;
18378 VkBool32 descriptorBufferImageLayoutIgnored;
18379 VkBool32 descriptorBufferPushDescriptors;
18380} VkPhysicalDeviceDescriptorBufferFeaturesEXT;
18381
18382typedef struct VkDescriptorAddressInfoEXT {
18383 VkStructureType sType;
18384 void* pNext;
18385 VkDeviceAddress address;
18386 VkDeviceSize range;
18387 VkFormat format;
18388} VkDescriptorAddressInfoEXT;
18389
18390typedef struct VkDescriptorBufferBindingInfoEXT {
18391 VkStructureType sType;
18392 const void* pNext;
18393 VkDeviceAddress address;
18394 VkBufferUsageFlags usage;
18395} VkDescriptorBufferBindingInfoEXT;
18396
18397typedef struct VkDescriptorBufferBindingPushDescriptorBufferHandleEXT {
18398 VkStructureType sType;
18399 const void* pNext;
18400 VkBuffer buffer;
18401} VkDescriptorBufferBindingPushDescriptorBufferHandleEXT;
18402
18403typedef union VkDescriptorDataEXT {
18404 const VkSampler* pSampler;
18405 const VkDescriptorImageInfo* pCombinedImageSampler;
18406 const VkDescriptorImageInfo* pInputAttachmentImage;
18407 const VkDescriptorImageInfo* pSampledImage;
18408 const VkDescriptorImageInfo* pStorageImage;
18409 const VkDescriptorAddressInfoEXT* pUniformTexelBuffer;
18410 const VkDescriptorAddressInfoEXT* pStorageTexelBuffer;
18411 const VkDescriptorAddressInfoEXT* pUniformBuffer;
18412 const VkDescriptorAddressInfoEXT* pStorageBuffer;
18413 VkDeviceAddress accelerationStructure;
18414} VkDescriptorDataEXT;
18415
18416typedef struct VkDescriptorGetInfoEXT {
18417 VkStructureType sType;
18418 const void* pNext;
18419 VkDescriptorType type;
18420 VkDescriptorDataEXT data;
18421} VkDescriptorGetInfoEXT;
18422
18423typedef struct VkBufferCaptureDescriptorDataInfoEXT {
18424 VkStructureType sType;
18425 const void* pNext;
18426 VkBuffer buffer;
18427} VkBufferCaptureDescriptorDataInfoEXT;
18428
18429typedef struct VkImageCaptureDescriptorDataInfoEXT {
18430 VkStructureType sType;
18431 const void* pNext;
18432 VkImage image;
18433} VkImageCaptureDescriptorDataInfoEXT;
18434
18435typedef struct VkImageViewCaptureDescriptorDataInfoEXT {
18436 VkStructureType sType;
18437 const void* pNext;
18438 VkImageView imageView;
18439} VkImageViewCaptureDescriptorDataInfoEXT;
18440
18441typedef struct VkSamplerCaptureDescriptorDataInfoEXT {
18442 VkStructureType sType;
18443 const void* pNext;
18444 VkSampler sampler;
18445} VkSamplerCaptureDescriptorDataInfoEXT;
18446
18447typedef struct VkOpaqueCaptureDescriptorDataCreateInfoEXT {
18448 VkStructureType sType;
18449 const void* pNext;
18450 const void* opaqueCaptureDescriptorData;
18451} VkOpaqueCaptureDescriptorDataCreateInfoEXT;
18452
18453typedef struct VkAccelerationStructureCaptureDescriptorDataInfoEXT {
18454 VkStructureType sType;
18455 const void* pNext;
18456 VkAccelerationStructureKHR accelerationStructure;
18457 VkAccelerationStructureNV accelerationStructureNV;
18458} VkAccelerationStructureCaptureDescriptorDataInfoEXT;
18459
18460typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutSizeEXT)(VkDevice device, VkDescriptorSetLayout layout, VkDeviceSize* pLayoutSizeInBytes);
18461typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutBindingOffsetEXT)(VkDevice device, VkDescriptorSetLayout layout, uint32_t binding, VkDeviceSize* pOffset);
18462typedef void (VKAPI_PTR *PFN_vkGetDescriptorEXT)(VkDevice device, const VkDescriptorGetInfoEXT* pDescriptorInfo, size_t dataSize, void* pDescriptor);
18463typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorBuffersEXT)(VkCommandBuffer commandBuffer, uint32_t bufferCount, const VkDescriptorBufferBindingInfoEXT* pBindingInfos);
18464typedef void (VKAPI_PTR *PFN_vkCmdSetDescriptorBufferOffsetsEXT)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t firstSet, uint32_t setCount, const uint32_t* pBufferIndices, const VkDeviceSize* pOffsets);
18465typedef void (VKAPI_PTR *PFN_vkCmdBindDescriptorBufferEmbeddedSamplersEXT)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipelineLayout layout, uint32_t set);
18466typedef VkResult (VKAPI_PTR *PFN_vkGetBufferOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkBufferCaptureDescriptorDataInfoEXT* pInfo, void* pData);
18467typedef VkResult (VKAPI_PTR *PFN_vkGetImageOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkImageCaptureDescriptorDataInfoEXT* pInfo, void* pData);
18468typedef VkResult (VKAPI_PTR *PFN_vkGetImageViewOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkImageViewCaptureDescriptorDataInfoEXT* pInfo, void* pData);
18469typedef VkResult (VKAPI_PTR *PFN_vkGetSamplerOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkSamplerCaptureDescriptorDataInfoEXT* pInfo, void* pData);
18470typedef VkResult (VKAPI_PTR *PFN_vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT)(VkDevice device, const VkAccelerationStructureCaptureDescriptorDataInfoEXT* pInfo, void* pData);
18471
18472#ifndef VK_NO_PROTOTYPES
18473#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18474VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutSizeEXT(
18475 VkDevice device,
18476 VkDescriptorSetLayout layout,
18477 VkDeviceSize* pLayoutSizeInBytes);
18478#endif
18479
18480#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18481VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutBindingOffsetEXT(
18482 VkDevice device,
18483 VkDescriptorSetLayout layout,
18484 uint32_t binding,
18485 VkDeviceSize* pOffset);
18486#endif
18487
18488#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18489VKAPI_ATTR void VKAPI_CALL vkGetDescriptorEXT(
18490 VkDevice device,
18491 const VkDescriptorGetInfoEXT* pDescriptorInfo,
18492 size_t dataSize,
18493 void* pDescriptor);
18494#endif
18495
18496#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18497VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorBuffersEXT(
18498 VkCommandBuffer commandBuffer,
18499 uint32_t bufferCount,
18500 const VkDescriptorBufferBindingInfoEXT* pBindingInfos);
18501#endif
18502
18503#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18504VKAPI_ATTR void VKAPI_CALL vkCmdSetDescriptorBufferOffsetsEXT(
18505 VkCommandBuffer commandBuffer,
18506 VkPipelineBindPoint pipelineBindPoint,
18507 VkPipelineLayout layout,
18508 uint32_t firstSet,
18509 uint32_t setCount,
18510 const uint32_t* pBufferIndices,
18511 const VkDeviceSize* pOffsets);
18512#endif
18513
18514#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18515VKAPI_ATTR void VKAPI_CALL vkCmdBindDescriptorBufferEmbeddedSamplersEXT(
18516 VkCommandBuffer commandBuffer,
18517 VkPipelineBindPoint pipelineBindPoint,
18518 VkPipelineLayout layout,
18519 uint32_t set);
18520#endif
18521
18522#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18523VKAPI_ATTR VkResult VKAPI_CALL vkGetBufferOpaqueCaptureDescriptorDataEXT(
18524 VkDevice device,
18525 const VkBufferCaptureDescriptorDataInfoEXT* pInfo,
18526 void* pData);
18527#endif
18528
18529#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18530VKAPI_ATTR VkResult VKAPI_CALL vkGetImageOpaqueCaptureDescriptorDataEXT(
18531 VkDevice device,
18532 const VkImageCaptureDescriptorDataInfoEXT* pInfo,
18533 void* pData);
18534#endif
18535
18536#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18537VKAPI_ATTR VkResult VKAPI_CALL vkGetImageViewOpaqueCaptureDescriptorDataEXT(
18538 VkDevice device,
18539 const VkImageViewCaptureDescriptorDataInfoEXT* pInfo,
18540 void* pData);
18541#endif
18542
18543#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18544VKAPI_ATTR VkResult VKAPI_CALL vkGetSamplerOpaqueCaptureDescriptorDataEXT(
18545 VkDevice device,
18546 const VkSamplerCaptureDescriptorDataInfoEXT* pInfo,
18547 void* pData);
18548#endif
18549
18550#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18551VKAPI_ATTR VkResult VKAPI_CALL vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(
18552 VkDevice device,
18553 const VkAccelerationStructureCaptureDescriptorDataInfoEXT* pInfo,
18554 void* pData);
18555#endif
18556#endif
18557
18558
18559// VK_EXT_graphics_pipeline_library is a preprocessor guard. Do not pass it to API calls.
18560#define VK_EXT_graphics_pipeline_library 1
18561#define VK_EXT_GRAPHICS_PIPELINE_LIBRARY_SPEC_VERSION 1
18562#define VK_EXT_GRAPHICS_PIPELINE_LIBRARY_EXTENSION_NAME "VK_EXT_graphics_pipeline_library"
18563
18564typedef enum VkGraphicsPipelineLibraryFlagBitsEXT {
18565 VK_GRAPHICS_PIPELINE_LIBRARY_VERTEX_INPUT_INTERFACE_BIT_EXT = 0x00000001,
18566 VK_GRAPHICS_PIPELINE_LIBRARY_PRE_RASTERIZATION_SHADERS_BIT_EXT = 0x00000002,
18567 VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_SHADER_BIT_EXT = 0x00000004,
18568 VK_GRAPHICS_PIPELINE_LIBRARY_FRAGMENT_OUTPUT_INTERFACE_BIT_EXT = 0x00000008,
18569 VK_GRAPHICS_PIPELINE_LIBRARY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
18570} VkGraphicsPipelineLibraryFlagBitsEXT;
18571typedef VkFlags VkGraphicsPipelineLibraryFlagsEXT;
18572typedef struct VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT {
18573 VkStructureType sType;
18574 void* pNext;
18575 VkBool32 graphicsPipelineLibrary;
18576} VkPhysicalDeviceGraphicsPipelineLibraryFeaturesEXT;
18577
18578typedef struct VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT {
18579 VkStructureType sType;
18580 void* pNext;
18581 VkBool32 graphicsPipelineLibraryFastLinking;
18582 VkBool32 graphicsPipelineLibraryIndependentInterpolationDecoration;
18583} VkPhysicalDeviceGraphicsPipelineLibraryPropertiesEXT;
18584
18585typedef struct VkGraphicsPipelineLibraryCreateInfoEXT {
18586 VkStructureType sType;
18587 const void* pNext;
18588 VkGraphicsPipelineLibraryFlagsEXT flags;
18589} VkGraphicsPipelineLibraryCreateInfoEXT;
18590
18591
18592
18593// VK_AMD_shader_early_and_late_fragment_tests is a preprocessor guard. Do not pass it to API calls.
18594#define VK_AMD_shader_early_and_late_fragment_tests 1
18595#define VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_SPEC_VERSION 1
18596#define VK_AMD_SHADER_EARLY_AND_LATE_FRAGMENT_TESTS_EXTENSION_NAME "VK_AMD_shader_early_and_late_fragment_tests"
18597typedef struct VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD {
18598 VkStructureType sType;
18599 void* pNext;
18600 VkBool32 shaderEarlyAndLateFragmentTests;
18601} VkPhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD;
18602
18603
18604
18605// VK_NV_fragment_shading_rate_enums is a preprocessor guard. Do not pass it to API calls.
18606#define VK_NV_fragment_shading_rate_enums 1
18607#define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_SPEC_VERSION 1
18608#define VK_NV_FRAGMENT_SHADING_RATE_ENUMS_EXTENSION_NAME "VK_NV_fragment_shading_rate_enums"
18609
18610typedef enum VkFragmentShadingRateTypeNV {
18611 VK_FRAGMENT_SHADING_RATE_TYPE_FRAGMENT_SIZE_NV = 0,
18612 VK_FRAGMENT_SHADING_RATE_TYPE_ENUMS_NV = 1,
18613 VK_FRAGMENT_SHADING_RATE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
18614} VkFragmentShadingRateTypeNV;
18615
18616typedef enum VkFragmentShadingRateNV {
18617 VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_PIXEL_NV = 0,
18618 VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_1X2_PIXELS_NV = 1,
18619 VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X1_PIXELS_NV = 4,
18620 VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X2_PIXELS_NV = 5,
18621 VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_2X4_PIXELS_NV = 6,
18622 VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X2_PIXELS_NV = 9,
18623 VK_FRAGMENT_SHADING_RATE_1_INVOCATION_PER_4X4_PIXELS_NV = 10,
18624 VK_FRAGMENT_SHADING_RATE_2_INVOCATIONS_PER_PIXEL_NV = 11,
18625 VK_FRAGMENT_SHADING_RATE_4_INVOCATIONS_PER_PIXEL_NV = 12,
18626 VK_FRAGMENT_SHADING_RATE_8_INVOCATIONS_PER_PIXEL_NV = 13,
18627 VK_FRAGMENT_SHADING_RATE_16_INVOCATIONS_PER_PIXEL_NV = 14,
18628 VK_FRAGMENT_SHADING_RATE_NO_INVOCATIONS_NV = 15,
18629 VK_FRAGMENT_SHADING_RATE_MAX_ENUM_NV = 0x7FFFFFFF
18630} VkFragmentShadingRateNV;
18631typedef struct VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV {
18632 VkStructureType sType;
18633 void* pNext;
18634 VkBool32 fragmentShadingRateEnums;
18635 VkBool32 supersampleFragmentShadingRates;
18636 VkBool32 noInvocationFragmentShadingRates;
18637} VkPhysicalDeviceFragmentShadingRateEnumsFeaturesNV;
18638
18639typedef struct VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV {
18640 VkStructureType sType;
18641 void* pNext;
18642 VkSampleCountFlagBits maxFragmentShadingRateInvocationCount;
18643} VkPhysicalDeviceFragmentShadingRateEnumsPropertiesNV;
18644
18645typedef struct VkPipelineFragmentShadingRateEnumStateCreateInfoNV {
18646 VkStructureType sType;
18647 const void* pNext;
18648 VkFragmentShadingRateTypeNV shadingRateType;
18649 VkFragmentShadingRateNV shadingRate;
18650 VkFragmentShadingRateCombinerOpKHR combinerOps[2];
18651} VkPipelineFragmentShadingRateEnumStateCreateInfoNV;
18652
18653typedef void (VKAPI_PTR *PFN_vkCmdSetFragmentShadingRateEnumNV)(VkCommandBuffer commandBuffer, VkFragmentShadingRateNV shadingRate, const VkFragmentShadingRateCombinerOpKHR combinerOps[2]);
18654
18655#ifndef VK_NO_PROTOTYPES
18656#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18657VKAPI_ATTR void VKAPI_CALL vkCmdSetFragmentShadingRateEnumNV(
18658 VkCommandBuffer commandBuffer,
18659 VkFragmentShadingRateNV shadingRate,
18660 const VkFragmentShadingRateCombinerOpKHR combinerOps[2]);
18661#endif
18662#endif
18663
18664
18665// VK_NV_ray_tracing_motion_blur is a preprocessor guard. Do not pass it to API calls.
18666#define VK_NV_ray_tracing_motion_blur 1
18667#define VK_NV_RAY_TRACING_MOTION_BLUR_SPEC_VERSION 1
18668#define VK_NV_RAY_TRACING_MOTION_BLUR_EXTENSION_NAME "VK_NV_ray_tracing_motion_blur"
18669
18670typedef enum VkAccelerationStructureMotionInstanceTypeNV {
18671 VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_STATIC_NV = 0,
18672 VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MATRIX_MOTION_NV = 1,
18673 VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_SRT_MOTION_NV = 2,
18674 VK_ACCELERATION_STRUCTURE_MOTION_INSTANCE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
18675} VkAccelerationStructureMotionInstanceTypeNV;
18676typedef VkFlags VkAccelerationStructureMotionInfoFlagsNV;
18677typedef VkFlags VkAccelerationStructureMotionInstanceFlagsNV;
18678typedef union VkDeviceOrHostAddressConstKHR {
18679 VkDeviceAddress deviceAddress;
18680 const void* hostAddress;
18681} VkDeviceOrHostAddressConstKHR;
18682
18683typedef struct VkAccelerationStructureGeometryMotionTrianglesDataNV {
18684 VkStructureType sType;
18685 const void* pNext;
18686 VkDeviceOrHostAddressConstKHR vertexData;
18687} VkAccelerationStructureGeometryMotionTrianglesDataNV;
18688
18689typedef struct VkAccelerationStructureMotionInfoNV {
18690 VkStructureType sType;
18691 const void* pNext;
18692 uint32_t maxInstances;
18693 VkAccelerationStructureMotionInfoFlagsNV flags;
18694} VkAccelerationStructureMotionInfoNV;
18695
18696typedef struct VkAccelerationStructureMatrixMotionInstanceNV {
18697 VkTransformMatrixKHR transformT0;
18698 VkTransformMatrixKHR transformT1;
18699 uint32_t instanceCustomIndex:24;
18700 uint32_t mask:8;
18701 uint32_t instanceShaderBindingTableRecordOffset:24;
18702 VkGeometryInstanceFlagsKHR flags:8;
18703 uint64_t accelerationStructureReference;
18704} VkAccelerationStructureMatrixMotionInstanceNV;
18705
18706typedef struct VkSRTDataNV {
18707 float sx;
18708 float a;
18709 float b;
18710 float pvx;
18711 float sy;
18712 float c;
18713 float pvy;
18714 float sz;
18715 float pvz;
18716 float qx;
18717 float qy;
18718 float qz;
18719 float qw;
18720 float tx;
18721 float ty;
18722 float tz;
18723} VkSRTDataNV;
18724
18725typedef struct VkAccelerationStructureSRTMotionInstanceNV {
18726 VkSRTDataNV transformT0;
18727 VkSRTDataNV transformT1;
18728 uint32_t instanceCustomIndex:24;
18729 uint32_t mask:8;
18730 uint32_t instanceShaderBindingTableRecordOffset:24;
18731 VkGeometryInstanceFlagsKHR flags:8;
18732 uint64_t accelerationStructureReference;
18733} VkAccelerationStructureSRTMotionInstanceNV;
18734
18735typedef union VkAccelerationStructureMotionInstanceDataNV {
18736 VkAccelerationStructureInstanceKHR staticInstance;
18737 VkAccelerationStructureMatrixMotionInstanceNV matrixMotionInstance;
18738 VkAccelerationStructureSRTMotionInstanceNV srtMotionInstance;
18739} VkAccelerationStructureMotionInstanceDataNV;
18740
18741typedef struct VkAccelerationStructureMotionInstanceNV {
18742 VkAccelerationStructureMotionInstanceTypeNV type;
18743 VkAccelerationStructureMotionInstanceFlagsNV flags;
18744 VkAccelerationStructureMotionInstanceDataNV data;
18745} VkAccelerationStructureMotionInstanceNV;
18746
18747typedef struct VkPhysicalDeviceRayTracingMotionBlurFeaturesNV {
18748 VkStructureType sType;
18749 void* pNext;
18750 VkBool32 rayTracingMotionBlur;
18751 VkBool32 rayTracingMotionBlurPipelineTraceRaysIndirect;
18752} VkPhysicalDeviceRayTracingMotionBlurFeaturesNV;
18753
18754
18755
18756// VK_EXT_ycbcr_2plane_444_formats is a preprocessor guard. Do not pass it to API calls.
18757#define VK_EXT_ycbcr_2plane_444_formats 1
18758#define VK_EXT_YCBCR_2PLANE_444_FORMATS_SPEC_VERSION 1
18759#define VK_EXT_YCBCR_2PLANE_444_FORMATS_EXTENSION_NAME "VK_EXT_ycbcr_2plane_444_formats"
18760typedef struct VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT {
18761 VkStructureType sType;
18762 void* pNext;
18763 VkBool32 ycbcr2plane444Formats;
18764} VkPhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT;
18765
18766
18767
18768// VK_EXT_fragment_density_map2 is a preprocessor guard. Do not pass it to API calls.
18769#define VK_EXT_fragment_density_map2 1
18770#define VK_EXT_FRAGMENT_DENSITY_MAP_2_SPEC_VERSION 1
18771#define VK_EXT_FRAGMENT_DENSITY_MAP_2_EXTENSION_NAME "VK_EXT_fragment_density_map2"
18772typedef struct VkPhysicalDeviceFragmentDensityMap2FeaturesEXT {
18773 VkStructureType sType;
18774 void* pNext;
18775 VkBool32 fragmentDensityMapDeferred;
18776} VkPhysicalDeviceFragmentDensityMap2FeaturesEXT;
18777
18778typedef struct VkPhysicalDeviceFragmentDensityMap2PropertiesEXT {
18779 VkStructureType sType;
18780 void* pNext;
18781 VkBool32 subsampledLoads;
18782 VkBool32 subsampledCoarseReconstructionEarlyAccess;
18783 uint32_t maxSubsampledArrayLayers;
18784 uint32_t maxDescriptorSetSubsampledSamplers;
18785} VkPhysicalDeviceFragmentDensityMap2PropertiesEXT;
18786
18787
18788
18789// VK_QCOM_rotated_copy_commands is a preprocessor guard. Do not pass it to API calls.
18790#define VK_QCOM_rotated_copy_commands 1
18791#define VK_QCOM_ROTATED_COPY_COMMANDS_SPEC_VERSION 2
18792#define VK_QCOM_ROTATED_COPY_COMMANDS_EXTENSION_NAME "VK_QCOM_rotated_copy_commands"
18793typedef struct VkCopyCommandTransformInfoQCOM {
18794 VkStructureType sType;
18795 const void* pNext;
18796 VkSurfaceTransformFlagBitsKHR transform;
18797} VkCopyCommandTransformInfoQCOM;
18798
18799
18800
18801// VK_EXT_image_robustness is a preprocessor guard. Do not pass it to API calls.
18802#define VK_EXT_image_robustness 1
18803#define VK_EXT_IMAGE_ROBUSTNESS_SPEC_VERSION 1
18804#define VK_EXT_IMAGE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_image_robustness"
18805typedef VkPhysicalDeviceImageRobustnessFeatures VkPhysicalDeviceImageRobustnessFeaturesEXT;
18806
18807
18808
18809// VK_EXT_image_compression_control is a preprocessor guard. Do not pass it to API calls.
18810#define VK_EXT_image_compression_control 1
18811#define VK_EXT_IMAGE_COMPRESSION_CONTROL_SPEC_VERSION 1
18812#define VK_EXT_IMAGE_COMPRESSION_CONTROL_EXTENSION_NAME "VK_EXT_image_compression_control"
18813
18814typedef enum VkImageCompressionFlagBitsEXT {
18815 VK_IMAGE_COMPRESSION_DEFAULT_EXT = 0,
18816 VK_IMAGE_COMPRESSION_FIXED_RATE_DEFAULT_EXT = 0x00000001,
18817 VK_IMAGE_COMPRESSION_FIXED_RATE_EXPLICIT_EXT = 0x00000002,
18818 VK_IMAGE_COMPRESSION_DISABLED_EXT = 0x00000004,
18819 VK_IMAGE_COMPRESSION_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
18820} VkImageCompressionFlagBitsEXT;
18821typedef VkFlags VkImageCompressionFlagsEXT;
18822
18823typedef enum VkImageCompressionFixedRateFlagBitsEXT {
18824 VK_IMAGE_COMPRESSION_FIXED_RATE_NONE_EXT = 0,
18825 VK_IMAGE_COMPRESSION_FIXED_RATE_1BPC_BIT_EXT = 0x00000001,
18826 VK_IMAGE_COMPRESSION_FIXED_RATE_2BPC_BIT_EXT = 0x00000002,
18827 VK_IMAGE_COMPRESSION_FIXED_RATE_3BPC_BIT_EXT = 0x00000004,
18828 VK_IMAGE_COMPRESSION_FIXED_RATE_4BPC_BIT_EXT = 0x00000008,
18829 VK_IMAGE_COMPRESSION_FIXED_RATE_5BPC_BIT_EXT = 0x00000010,
18830 VK_IMAGE_COMPRESSION_FIXED_RATE_6BPC_BIT_EXT = 0x00000020,
18831 VK_IMAGE_COMPRESSION_FIXED_RATE_7BPC_BIT_EXT = 0x00000040,
18832 VK_IMAGE_COMPRESSION_FIXED_RATE_8BPC_BIT_EXT = 0x00000080,
18833 VK_IMAGE_COMPRESSION_FIXED_RATE_9BPC_BIT_EXT = 0x00000100,
18834 VK_IMAGE_COMPRESSION_FIXED_RATE_10BPC_BIT_EXT = 0x00000200,
18835 VK_IMAGE_COMPRESSION_FIXED_RATE_11BPC_BIT_EXT = 0x00000400,
18836 VK_IMAGE_COMPRESSION_FIXED_RATE_12BPC_BIT_EXT = 0x00000800,
18837 VK_IMAGE_COMPRESSION_FIXED_RATE_13BPC_BIT_EXT = 0x00001000,
18838 VK_IMAGE_COMPRESSION_FIXED_RATE_14BPC_BIT_EXT = 0x00002000,
18839 VK_IMAGE_COMPRESSION_FIXED_RATE_15BPC_BIT_EXT = 0x00004000,
18840 VK_IMAGE_COMPRESSION_FIXED_RATE_16BPC_BIT_EXT = 0x00008000,
18841 VK_IMAGE_COMPRESSION_FIXED_RATE_17BPC_BIT_EXT = 0x00010000,
18842 VK_IMAGE_COMPRESSION_FIXED_RATE_18BPC_BIT_EXT = 0x00020000,
18843 VK_IMAGE_COMPRESSION_FIXED_RATE_19BPC_BIT_EXT = 0x00040000,
18844 VK_IMAGE_COMPRESSION_FIXED_RATE_20BPC_BIT_EXT = 0x00080000,
18845 VK_IMAGE_COMPRESSION_FIXED_RATE_21BPC_BIT_EXT = 0x00100000,
18846 VK_IMAGE_COMPRESSION_FIXED_RATE_22BPC_BIT_EXT = 0x00200000,
18847 VK_IMAGE_COMPRESSION_FIXED_RATE_23BPC_BIT_EXT = 0x00400000,
18848 VK_IMAGE_COMPRESSION_FIXED_RATE_24BPC_BIT_EXT = 0x00800000,
18849 VK_IMAGE_COMPRESSION_FIXED_RATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
18850} VkImageCompressionFixedRateFlagBitsEXT;
18851typedef VkFlags VkImageCompressionFixedRateFlagsEXT;
18852typedef struct VkPhysicalDeviceImageCompressionControlFeaturesEXT {
18853 VkStructureType sType;
18854 void* pNext;
18855 VkBool32 imageCompressionControl;
18856} VkPhysicalDeviceImageCompressionControlFeaturesEXT;
18857
18858typedef struct VkImageCompressionControlEXT {
18859 VkStructureType sType;
18860 const void* pNext;
18861 VkImageCompressionFlagsEXT flags;
18862 uint32_t compressionControlPlaneCount;
18863 VkImageCompressionFixedRateFlagsEXT* pFixedRateFlags;
18864} VkImageCompressionControlEXT;
18865
18866typedef struct VkImageCompressionPropertiesEXT {
18867 VkStructureType sType;
18868 void* pNext;
18869 VkImageCompressionFlagsEXT imageCompressionFlags;
18870 VkImageCompressionFixedRateFlagsEXT imageCompressionFixedRateFlags;
18871} VkImageCompressionPropertiesEXT;
18872
18873
18874
18875// VK_EXT_attachment_feedback_loop_layout is a preprocessor guard. Do not pass it to API calls.
18876#define VK_EXT_attachment_feedback_loop_layout 1
18877#define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_SPEC_VERSION 2
18878#define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_LAYOUT_EXTENSION_NAME "VK_EXT_attachment_feedback_loop_layout"
18879typedef struct VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT {
18880 VkStructureType sType;
18881 void* pNext;
18882 VkBool32 attachmentFeedbackLoopLayout;
18883} VkPhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT;
18884
18885
18886
18887// VK_EXT_4444_formats is a preprocessor guard. Do not pass it to API calls.
18888#define VK_EXT_4444_formats 1
18889#define VK_EXT_4444_FORMATS_SPEC_VERSION 1
18890#define VK_EXT_4444_FORMATS_EXTENSION_NAME "VK_EXT_4444_formats"
18891typedef struct VkPhysicalDevice4444FormatsFeaturesEXT {
18892 VkStructureType sType;
18893 void* pNext;
18894 VkBool32 formatA4R4G4B4;
18895 VkBool32 formatA4B4G4R4;
18896} VkPhysicalDevice4444FormatsFeaturesEXT;
18897
18898
18899
18900// VK_EXT_device_fault is a preprocessor guard. Do not pass it to API calls.
18901#define VK_EXT_device_fault 1
18902#define VK_EXT_DEVICE_FAULT_SPEC_VERSION 2
18903#define VK_EXT_DEVICE_FAULT_EXTENSION_NAME "VK_EXT_device_fault"
18904
18905typedef enum VkDeviceFaultAddressTypeEXT {
18906 VK_DEVICE_FAULT_ADDRESS_TYPE_NONE_EXT = 0,
18907 VK_DEVICE_FAULT_ADDRESS_TYPE_READ_INVALID_EXT = 1,
18908 VK_DEVICE_FAULT_ADDRESS_TYPE_WRITE_INVALID_EXT = 2,
18909 VK_DEVICE_FAULT_ADDRESS_TYPE_EXECUTE_INVALID_EXT = 3,
18910 VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_UNKNOWN_EXT = 4,
18911 VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_INVALID_EXT = 5,
18912 VK_DEVICE_FAULT_ADDRESS_TYPE_INSTRUCTION_POINTER_FAULT_EXT = 6,
18913 VK_DEVICE_FAULT_ADDRESS_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
18914} VkDeviceFaultAddressTypeEXT;
18915
18916typedef enum VkDeviceFaultVendorBinaryHeaderVersionEXT {
18917 VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_ONE_EXT = 1,
18918 VK_DEVICE_FAULT_VENDOR_BINARY_HEADER_VERSION_MAX_ENUM_EXT = 0x7FFFFFFF
18919} VkDeviceFaultVendorBinaryHeaderVersionEXT;
18920typedef struct VkPhysicalDeviceFaultFeaturesEXT {
18921 VkStructureType sType;
18922 void* pNext;
18923 VkBool32 deviceFault;
18924 VkBool32 deviceFaultVendorBinary;
18925} VkPhysicalDeviceFaultFeaturesEXT;
18926
18927typedef struct VkDeviceFaultCountsEXT {
18928 VkStructureType sType;
18929 void* pNext;
18930 uint32_t addressInfoCount;
18931 uint32_t vendorInfoCount;
18932 VkDeviceSize vendorBinarySize;
18933} VkDeviceFaultCountsEXT;
18934
18935typedef struct VkDeviceFaultAddressInfoEXT {
18936 VkDeviceFaultAddressTypeEXT addressType;
18937 VkDeviceAddress reportedAddress;
18938 VkDeviceSize addressPrecision;
18939} VkDeviceFaultAddressInfoEXT;
18940
18941typedef struct VkDeviceFaultVendorInfoEXT {
18942 char description[VK_MAX_DESCRIPTION_SIZE];
18943 uint64_t vendorFaultCode;
18944 uint64_t vendorFaultData;
18945} VkDeviceFaultVendorInfoEXT;
18946
18947typedef struct VkDeviceFaultInfoEXT {
18948 VkStructureType sType;
18949 void* pNext;
18950 char description[VK_MAX_DESCRIPTION_SIZE];
18951 VkDeviceFaultAddressInfoEXT* pAddressInfos;
18952 VkDeviceFaultVendorInfoEXT* pVendorInfos;
18953 void* pVendorBinaryData;
18954} VkDeviceFaultInfoEXT;
18955
18956typedef struct VkDeviceFaultVendorBinaryHeaderVersionOneEXT {
18957 uint32_t headerSize;
18958 VkDeviceFaultVendorBinaryHeaderVersionEXT headerVersion;
18959 uint32_t vendorID;
18960 uint32_t deviceID;
18961 uint32_t driverVersion;
18962 uint8_t pipelineCacheUUID[VK_UUID_SIZE];
18963 uint32_t applicationNameOffset;
18964 uint32_t applicationVersion;
18965 uint32_t engineNameOffset;
18966 uint32_t engineVersion;
18967 uint32_t apiVersion;
18968} VkDeviceFaultVendorBinaryHeaderVersionOneEXT;
18969
18970typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceFaultInfoEXT)(VkDevice device, VkDeviceFaultCountsEXT* pFaultCounts, VkDeviceFaultInfoEXT* pFaultInfo);
18971
18972#ifndef VK_NO_PROTOTYPES
18973#ifndef VK_ONLY_EXPORTED_PROTOTYPES
18974VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceFaultInfoEXT(
18975 VkDevice device,
18976 VkDeviceFaultCountsEXT* pFaultCounts,
18977 VkDeviceFaultInfoEXT* pFaultInfo);
18978#endif
18979#endif
18980
18981
18982// VK_ARM_rasterization_order_attachment_access is a preprocessor guard. Do not pass it to API calls.
18983#define VK_ARM_rasterization_order_attachment_access 1
18984#define VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION 1
18985#define VK_ARM_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME "VK_ARM_rasterization_order_attachment_access"
18986typedef struct VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT {
18987 VkStructureType sType;
18988 void* pNext;
18989 VkBool32 rasterizationOrderColorAttachmentAccess;
18990 VkBool32 rasterizationOrderDepthAttachmentAccess;
18991 VkBool32 rasterizationOrderStencilAttachmentAccess;
18992} VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT;
18993
18994typedef VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT VkPhysicalDeviceRasterizationOrderAttachmentAccessFeaturesARM;
18995
18996
18997
18998// VK_EXT_rgba10x6_formats is a preprocessor guard. Do not pass it to API calls.
18999#define VK_EXT_rgba10x6_formats 1
19000#define VK_EXT_RGBA10X6_FORMATS_SPEC_VERSION 1
19001#define VK_EXT_RGBA10X6_FORMATS_EXTENSION_NAME "VK_EXT_rgba10x6_formats"
19002typedef struct VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT {
19003 VkStructureType sType;
19004 void* pNext;
19005 VkBool32 formatRgba10x6WithoutYCbCrSampler;
19006} VkPhysicalDeviceRGBA10X6FormatsFeaturesEXT;
19007
19008
19009
19010// VK_VALVE_mutable_descriptor_type is a preprocessor guard. Do not pass it to API calls.
19011#define VK_VALVE_mutable_descriptor_type 1
19012#define VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION 1
19013#define VK_VALVE_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME "VK_VALVE_mutable_descriptor_type"
19014typedef struct VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT {
19015 VkStructureType sType;
19016 void* pNext;
19017 VkBool32 mutableDescriptorType;
19018} VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT;
19019
19020typedef VkPhysicalDeviceMutableDescriptorTypeFeaturesEXT VkPhysicalDeviceMutableDescriptorTypeFeaturesVALVE;
19021
19022typedef struct VkMutableDescriptorTypeListEXT {
19023 uint32_t descriptorTypeCount;
19024 const VkDescriptorType* pDescriptorTypes;
19025} VkMutableDescriptorTypeListEXT;
19026
19027typedef VkMutableDescriptorTypeListEXT VkMutableDescriptorTypeListVALVE;
19028
19029typedef struct VkMutableDescriptorTypeCreateInfoEXT {
19030 VkStructureType sType;
19031 const void* pNext;
19032 uint32_t mutableDescriptorTypeListCount;
19033 const VkMutableDescriptorTypeListEXT* pMutableDescriptorTypeLists;
19034} VkMutableDescriptorTypeCreateInfoEXT;
19035
19036typedef VkMutableDescriptorTypeCreateInfoEXT VkMutableDescriptorTypeCreateInfoVALVE;
19037
19038
19039
19040// VK_EXT_vertex_input_dynamic_state is a preprocessor guard. Do not pass it to API calls.
19041#define VK_EXT_vertex_input_dynamic_state 1
19042#define VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_SPEC_VERSION 2
19043#define VK_EXT_VERTEX_INPUT_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_vertex_input_dynamic_state"
19044typedef struct VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT {
19045 VkStructureType sType;
19046 void* pNext;
19047 VkBool32 vertexInputDynamicState;
19048} VkPhysicalDeviceVertexInputDynamicStateFeaturesEXT;
19049
19050typedef struct VkVertexInputBindingDescription2EXT {
19051 VkStructureType sType;
19052 void* pNext;
19053 uint32_t binding;
19054 uint32_t stride;
19055 VkVertexInputRate inputRate;
19056 uint32_t divisor;
19057} VkVertexInputBindingDescription2EXT;
19058
19059typedef struct VkVertexInputAttributeDescription2EXT {
19060 VkStructureType sType;
19061 void* pNext;
19062 uint32_t location;
19063 uint32_t binding;
19064 VkFormat format;
19065 uint32_t offset;
19066} VkVertexInputAttributeDescription2EXT;
19067
19068typedef void (VKAPI_PTR *PFN_vkCmdSetVertexInputEXT)(VkCommandBuffer commandBuffer, uint32_t vertexBindingDescriptionCount, const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions, uint32_t vertexAttributeDescriptionCount, const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions);
19069
19070#ifndef VK_NO_PROTOTYPES
19071#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19072VKAPI_ATTR void VKAPI_CALL vkCmdSetVertexInputEXT(
19073 VkCommandBuffer commandBuffer,
19074 uint32_t vertexBindingDescriptionCount,
19075 const VkVertexInputBindingDescription2EXT* pVertexBindingDescriptions,
19076 uint32_t vertexAttributeDescriptionCount,
19077 const VkVertexInputAttributeDescription2EXT* pVertexAttributeDescriptions);
19078#endif
19079#endif
19080
19081
19082// VK_EXT_physical_device_drm is a preprocessor guard. Do not pass it to API calls.
19083#define VK_EXT_physical_device_drm 1
19084#define VK_EXT_PHYSICAL_DEVICE_DRM_SPEC_VERSION 1
19085#define VK_EXT_PHYSICAL_DEVICE_DRM_EXTENSION_NAME "VK_EXT_physical_device_drm"
19086typedef struct VkPhysicalDeviceDrmPropertiesEXT {
19087 VkStructureType sType;
19088 void* pNext;
19089 VkBool32 hasPrimary;
19090 VkBool32 hasRender;
19091 int64_t primaryMajor;
19092 int64_t primaryMinor;
19093 int64_t renderMajor;
19094 int64_t renderMinor;
19095} VkPhysicalDeviceDrmPropertiesEXT;
19096
19097
19098
19099// VK_EXT_device_address_binding_report is a preprocessor guard. Do not pass it to API calls.
19100#define VK_EXT_device_address_binding_report 1
19101#define VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_SPEC_VERSION 1
19102#define VK_EXT_DEVICE_ADDRESS_BINDING_REPORT_EXTENSION_NAME "VK_EXT_device_address_binding_report"
19103
19104typedef enum VkDeviceAddressBindingTypeEXT {
19105 VK_DEVICE_ADDRESS_BINDING_TYPE_BIND_EXT = 0,
19106 VK_DEVICE_ADDRESS_BINDING_TYPE_UNBIND_EXT = 1,
19107 VK_DEVICE_ADDRESS_BINDING_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
19108} VkDeviceAddressBindingTypeEXT;
19109
19110typedef enum VkDeviceAddressBindingFlagBitsEXT {
19111 VK_DEVICE_ADDRESS_BINDING_INTERNAL_OBJECT_BIT_EXT = 0x00000001,
19112 VK_DEVICE_ADDRESS_BINDING_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
19113} VkDeviceAddressBindingFlagBitsEXT;
19114typedef VkFlags VkDeviceAddressBindingFlagsEXT;
19115typedef struct VkPhysicalDeviceAddressBindingReportFeaturesEXT {
19116 VkStructureType sType;
19117 void* pNext;
19118 VkBool32 reportAddressBinding;
19119} VkPhysicalDeviceAddressBindingReportFeaturesEXT;
19120
19121typedef struct VkDeviceAddressBindingCallbackDataEXT {
19122 VkStructureType sType;
19123 void* pNext;
19124 VkDeviceAddressBindingFlagsEXT flags;
19125 VkDeviceAddress baseAddress;
19126 VkDeviceSize size;
19127 VkDeviceAddressBindingTypeEXT bindingType;
19128} VkDeviceAddressBindingCallbackDataEXT;
19129
19130
19131
19132// VK_EXT_depth_clip_control is a preprocessor guard. Do not pass it to API calls.
19133#define VK_EXT_depth_clip_control 1
19134#define VK_EXT_DEPTH_CLIP_CONTROL_SPEC_VERSION 1
19135#define VK_EXT_DEPTH_CLIP_CONTROL_EXTENSION_NAME "VK_EXT_depth_clip_control"
19136typedef struct VkPhysicalDeviceDepthClipControlFeaturesEXT {
19137 VkStructureType sType;
19138 void* pNext;
19139 VkBool32 depthClipControl;
19140} VkPhysicalDeviceDepthClipControlFeaturesEXT;
19141
19142typedef struct VkPipelineViewportDepthClipControlCreateInfoEXT {
19143 VkStructureType sType;
19144 const void* pNext;
19145 VkBool32 negativeOneToOne;
19146} VkPipelineViewportDepthClipControlCreateInfoEXT;
19147
19148
19149
19150// VK_EXT_primitive_topology_list_restart is a preprocessor guard. Do not pass it to API calls.
19151#define VK_EXT_primitive_topology_list_restart 1
19152#define VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_SPEC_VERSION 1
19153#define VK_EXT_PRIMITIVE_TOPOLOGY_LIST_RESTART_EXTENSION_NAME "VK_EXT_primitive_topology_list_restart"
19154typedef struct VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT {
19155 VkStructureType sType;
19156 void* pNext;
19157 VkBool32 primitiveTopologyListRestart;
19158 VkBool32 primitiveTopologyPatchListRestart;
19159} VkPhysicalDevicePrimitiveTopologyListRestartFeaturesEXT;
19160
19161
19162
19163// VK_EXT_present_mode_fifo_latest_ready is a preprocessor guard. Do not pass it to API calls.
19164#define VK_EXT_present_mode_fifo_latest_ready 1
19165#define VK_EXT_PRESENT_MODE_FIFO_LATEST_READY_SPEC_VERSION 1
19166#define VK_EXT_PRESENT_MODE_FIFO_LATEST_READY_EXTENSION_NAME "VK_EXT_present_mode_fifo_latest_ready"
19167typedef VkPhysicalDevicePresentModeFifoLatestReadyFeaturesKHR VkPhysicalDevicePresentModeFifoLatestReadyFeaturesEXT;
19168
19169
19170
19171// VK_HUAWEI_subpass_shading is a preprocessor guard. Do not pass it to API calls.
19172#define VK_HUAWEI_subpass_shading 1
19173#define VK_HUAWEI_SUBPASS_SHADING_SPEC_VERSION 3
19174#define VK_HUAWEI_SUBPASS_SHADING_EXTENSION_NAME "VK_HUAWEI_subpass_shading"
19175typedef struct VkSubpassShadingPipelineCreateInfoHUAWEI {
19176 VkStructureType sType;
19177 void* pNext;
19178 VkRenderPass renderPass;
19179 uint32_t subpass;
19180} VkSubpassShadingPipelineCreateInfoHUAWEI;
19181
19182typedef struct VkPhysicalDeviceSubpassShadingFeaturesHUAWEI {
19183 VkStructureType sType;
19184 void* pNext;
19185 VkBool32 subpassShading;
19186} VkPhysicalDeviceSubpassShadingFeaturesHUAWEI;
19187
19188typedef struct VkPhysicalDeviceSubpassShadingPropertiesHUAWEI {
19189 VkStructureType sType;
19190 void* pNext;
19191 uint32_t maxSubpassShadingWorkgroupSizeAspectRatio;
19192} VkPhysicalDeviceSubpassShadingPropertiesHUAWEI;
19193
19194typedef VkResult (VKAPI_PTR *PFN_vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI)(VkDevice device, VkRenderPass renderpass, VkExtent2D* pMaxWorkgroupSize);
19195typedef void (VKAPI_PTR *PFN_vkCmdSubpassShadingHUAWEI)(VkCommandBuffer commandBuffer);
19196
19197#ifndef VK_NO_PROTOTYPES
19198#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19199VKAPI_ATTR VkResult VKAPI_CALL vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(
19200 VkDevice device,
19201 VkRenderPass renderpass,
19202 VkExtent2D* pMaxWorkgroupSize);
19203#endif
19204
19205#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19206VKAPI_ATTR void VKAPI_CALL vkCmdSubpassShadingHUAWEI(
19207 VkCommandBuffer commandBuffer);
19208#endif
19209#endif
19210
19211
19212// VK_HUAWEI_invocation_mask is a preprocessor guard. Do not pass it to API calls.
19213#define VK_HUAWEI_invocation_mask 1
19214#define VK_HUAWEI_INVOCATION_MASK_SPEC_VERSION 1
19215#define VK_HUAWEI_INVOCATION_MASK_EXTENSION_NAME "VK_HUAWEI_invocation_mask"
19216typedef struct VkPhysicalDeviceInvocationMaskFeaturesHUAWEI {
19217 VkStructureType sType;
19218 void* pNext;
19219 VkBool32 invocationMask;
19220} VkPhysicalDeviceInvocationMaskFeaturesHUAWEI;
19221
19222typedef void (VKAPI_PTR *PFN_vkCmdBindInvocationMaskHUAWEI)(VkCommandBuffer commandBuffer, VkImageView imageView, VkImageLayout imageLayout);
19223
19224#ifndef VK_NO_PROTOTYPES
19225#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19226VKAPI_ATTR void VKAPI_CALL vkCmdBindInvocationMaskHUAWEI(
19227 VkCommandBuffer commandBuffer,
19228 VkImageView imageView,
19229 VkImageLayout imageLayout);
19230#endif
19231#endif
19232
19233
19234// VK_NV_external_memory_rdma is a preprocessor guard. Do not pass it to API calls.
19235#define VK_NV_external_memory_rdma 1
19236typedef void* VkRemoteAddressNV;
19237#define VK_NV_EXTERNAL_MEMORY_RDMA_SPEC_VERSION 1
19238#define VK_NV_EXTERNAL_MEMORY_RDMA_EXTENSION_NAME "VK_NV_external_memory_rdma"
19239typedef struct VkMemoryGetRemoteAddressInfoNV {
19240 VkStructureType sType;
19241 const void* pNext;
19242 VkDeviceMemory memory;
19243 VkExternalMemoryHandleTypeFlagBits handleType;
19244} VkMemoryGetRemoteAddressInfoNV;
19245
19246typedef struct VkPhysicalDeviceExternalMemoryRDMAFeaturesNV {
19247 VkStructureType sType;
19248 void* pNext;
19249 VkBool32 externalMemoryRDMA;
19250} VkPhysicalDeviceExternalMemoryRDMAFeaturesNV;
19251
19252typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryRemoteAddressNV)(VkDevice device, const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo, VkRemoteAddressNV* pAddress);
19253
19254#ifndef VK_NO_PROTOTYPES
19255#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19256VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryRemoteAddressNV(
19257 VkDevice device,
19258 const VkMemoryGetRemoteAddressInfoNV* pMemoryGetRemoteAddressInfo,
19259 VkRemoteAddressNV* pAddress);
19260#endif
19261#endif
19262
19263
19264// VK_EXT_pipeline_properties is a preprocessor guard. Do not pass it to API calls.
19265#define VK_EXT_pipeline_properties 1
19266#define VK_EXT_PIPELINE_PROPERTIES_SPEC_VERSION 1
19267#define VK_EXT_PIPELINE_PROPERTIES_EXTENSION_NAME "VK_EXT_pipeline_properties"
19268typedef VkPipelineInfoKHR VkPipelineInfoEXT;
19269
19270typedef struct VkPipelinePropertiesIdentifierEXT {
19271 VkStructureType sType;
19272 void* pNext;
19273 uint8_t pipelineIdentifier[VK_UUID_SIZE];
19274} VkPipelinePropertiesIdentifierEXT;
19275
19276typedef struct VkPhysicalDevicePipelinePropertiesFeaturesEXT {
19277 VkStructureType sType;
19278 void* pNext;
19279 VkBool32 pipelinePropertiesIdentifier;
19280} VkPhysicalDevicePipelinePropertiesFeaturesEXT;
19281
19282typedef VkResult (VKAPI_PTR *PFN_vkGetPipelinePropertiesEXT)(VkDevice device, const VkPipelineInfoEXT* pPipelineInfo, VkBaseOutStructure* pPipelineProperties);
19283
19284#ifndef VK_NO_PROTOTYPES
19285#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19286VKAPI_ATTR VkResult VKAPI_CALL vkGetPipelinePropertiesEXT(
19287 VkDevice device,
19288 const VkPipelineInfoEXT* pPipelineInfo,
19289 VkBaseOutStructure* pPipelineProperties);
19290#endif
19291#endif
19292
19293
19294// VK_EXT_frame_boundary is a preprocessor guard. Do not pass it to API calls.
19295#define VK_EXT_frame_boundary 1
19296#define VK_EXT_FRAME_BOUNDARY_SPEC_VERSION 1
19297#define VK_EXT_FRAME_BOUNDARY_EXTENSION_NAME "VK_EXT_frame_boundary"
19298
19299typedef enum VkFrameBoundaryFlagBitsEXT {
19300 VK_FRAME_BOUNDARY_FRAME_END_BIT_EXT = 0x00000001,
19301 VK_FRAME_BOUNDARY_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
19302} VkFrameBoundaryFlagBitsEXT;
19303typedef VkFlags VkFrameBoundaryFlagsEXT;
19304typedef struct VkPhysicalDeviceFrameBoundaryFeaturesEXT {
19305 VkStructureType sType;
19306 void* pNext;
19307 VkBool32 frameBoundary;
19308} VkPhysicalDeviceFrameBoundaryFeaturesEXT;
19309
19310typedef struct VkFrameBoundaryEXT {
19311 VkStructureType sType;
19312 const void* pNext;
19313 VkFrameBoundaryFlagsEXT flags;
19314 uint64_t frameID;
19315 uint32_t imageCount;
19316 const VkImage* pImages;
19317 uint32_t bufferCount;
19318 const VkBuffer* pBuffers;
19319 uint64_t tagName;
19320 size_t tagSize;
19321 const void* pTag;
19322} VkFrameBoundaryEXT;
19323
19324
19325
19326// VK_EXT_multisampled_render_to_single_sampled is a preprocessor guard. Do not pass it to API calls.
19327#define VK_EXT_multisampled_render_to_single_sampled 1
19328#define VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_SPEC_VERSION 1
19329#define VK_EXT_MULTISAMPLED_RENDER_TO_SINGLE_SAMPLED_EXTENSION_NAME "VK_EXT_multisampled_render_to_single_sampled"
19330typedef struct VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT {
19331 VkStructureType sType;
19332 void* pNext;
19333 VkBool32 multisampledRenderToSingleSampled;
19334} VkPhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT;
19335
19336typedef struct VkSubpassResolvePerformanceQueryEXT {
19337 VkStructureType sType;
19338 void* pNext;
19339 VkBool32 optimal;
19340} VkSubpassResolvePerformanceQueryEXT;
19341
19342typedef struct VkMultisampledRenderToSingleSampledInfoEXT {
19343 VkStructureType sType;
19344 const void* pNext;
19345 VkBool32 multisampledRenderToSingleSampledEnable;
19346 VkSampleCountFlagBits rasterizationSamples;
19347} VkMultisampledRenderToSingleSampledInfoEXT;
19348
19349
19350
19351// VK_EXT_extended_dynamic_state2 is a preprocessor guard. Do not pass it to API calls.
19352#define VK_EXT_extended_dynamic_state2 1
19353#define VK_EXT_EXTENDED_DYNAMIC_STATE_2_SPEC_VERSION 1
19354#define VK_EXT_EXTENDED_DYNAMIC_STATE_2_EXTENSION_NAME "VK_EXT_extended_dynamic_state2"
19355typedef struct VkPhysicalDeviceExtendedDynamicState2FeaturesEXT {
19356 VkStructureType sType;
19357 void* pNext;
19358 VkBool32 extendedDynamicState2;
19359 VkBool32 extendedDynamicState2LogicOp;
19360 VkBool32 extendedDynamicState2PatchControlPoints;
19361} VkPhysicalDeviceExtendedDynamicState2FeaturesEXT;
19362
19363typedef void (VKAPI_PTR *PFN_vkCmdSetPatchControlPointsEXT)(VkCommandBuffer commandBuffer, uint32_t patchControlPoints);
19364typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizerDiscardEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 rasterizerDiscardEnable);
19365typedef void (VKAPI_PTR *PFN_vkCmdSetDepthBiasEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthBiasEnable);
19366typedef void (VKAPI_PTR *PFN_vkCmdSetLogicOpEXT)(VkCommandBuffer commandBuffer, VkLogicOp logicOp);
19367typedef void (VKAPI_PTR *PFN_vkCmdSetPrimitiveRestartEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 primitiveRestartEnable);
19368
19369#ifndef VK_NO_PROTOTYPES
19370#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19371VKAPI_ATTR void VKAPI_CALL vkCmdSetPatchControlPointsEXT(
19372 VkCommandBuffer commandBuffer,
19373 uint32_t patchControlPoints);
19374#endif
19375
19376#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19377VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizerDiscardEnableEXT(
19378 VkCommandBuffer commandBuffer,
19379 VkBool32 rasterizerDiscardEnable);
19380#endif
19381
19382#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19383VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthBiasEnableEXT(
19384 VkCommandBuffer commandBuffer,
19385 VkBool32 depthBiasEnable);
19386#endif
19387
19388#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19389VKAPI_ATTR void VKAPI_CALL vkCmdSetLogicOpEXT(
19390 VkCommandBuffer commandBuffer,
19391 VkLogicOp logicOp);
19392#endif
19393
19394#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19395VKAPI_ATTR void VKAPI_CALL vkCmdSetPrimitiveRestartEnableEXT(
19396 VkCommandBuffer commandBuffer,
19397 VkBool32 primitiveRestartEnable);
19398#endif
19399#endif
19400
19401
19402// VK_EXT_color_write_enable is a preprocessor guard. Do not pass it to API calls.
19403#define VK_EXT_color_write_enable 1
19404#define VK_EXT_COLOR_WRITE_ENABLE_SPEC_VERSION 1
19405#define VK_EXT_COLOR_WRITE_ENABLE_EXTENSION_NAME "VK_EXT_color_write_enable"
19406typedef struct VkPhysicalDeviceColorWriteEnableFeaturesEXT {
19407 VkStructureType sType;
19408 void* pNext;
19409 VkBool32 colorWriteEnable;
19410} VkPhysicalDeviceColorWriteEnableFeaturesEXT;
19411
19412typedef struct VkPipelineColorWriteCreateInfoEXT {
19413 VkStructureType sType;
19414 const void* pNext;
19415 uint32_t attachmentCount;
19416 const VkBool32* pColorWriteEnables;
19417} VkPipelineColorWriteCreateInfoEXT;
19418
19419typedef void (VKAPI_PTR *PFN_vkCmdSetColorWriteEnableEXT)(VkCommandBuffer commandBuffer, uint32_t attachmentCount, const VkBool32* pColorWriteEnables);
19420
19421#ifndef VK_NO_PROTOTYPES
19422#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19423VKAPI_ATTR void VKAPI_CALL vkCmdSetColorWriteEnableEXT(
19424 VkCommandBuffer commandBuffer,
19425 uint32_t attachmentCount,
19426 const VkBool32* pColorWriteEnables);
19427#endif
19428#endif
19429
19430
19431// VK_EXT_primitives_generated_query is a preprocessor guard. Do not pass it to API calls.
19432#define VK_EXT_primitives_generated_query 1
19433#define VK_EXT_PRIMITIVES_GENERATED_QUERY_SPEC_VERSION 1
19434#define VK_EXT_PRIMITIVES_GENERATED_QUERY_EXTENSION_NAME "VK_EXT_primitives_generated_query"
19435typedef struct VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT {
19436 VkStructureType sType;
19437 void* pNext;
19438 VkBool32 primitivesGeneratedQuery;
19439 VkBool32 primitivesGeneratedQueryWithRasterizerDiscard;
19440 VkBool32 primitivesGeneratedQueryWithNonZeroStreams;
19441} VkPhysicalDevicePrimitivesGeneratedQueryFeaturesEXT;
19442
19443
19444
19445// VK_EXT_global_priority_query is a preprocessor guard. Do not pass it to API calls.
19446#define VK_EXT_global_priority_query 1
19447#define VK_EXT_GLOBAL_PRIORITY_QUERY_SPEC_VERSION 1
19448#define VK_EXT_GLOBAL_PRIORITY_QUERY_EXTENSION_NAME "VK_EXT_global_priority_query"
19449#define VK_MAX_GLOBAL_PRIORITY_SIZE_EXT VK_MAX_GLOBAL_PRIORITY_SIZE
19450typedef VkPhysicalDeviceGlobalPriorityQueryFeatures VkPhysicalDeviceGlobalPriorityQueryFeaturesEXT;
19451
19452typedef VkQueueFamilyGlobalPriorityProperties VkQueueFamilyGlobalPriorityPropertiesEXT;
19453
19454
19455
19456// VK_VALVE_video_encode_rgb_conversion is a preprocessor guard. Do not pass it to API calls.
19457#define VK_VALVE_video_encode_rgb_conversion 1
19458#define VK_VALVE_VIDEO_ENCODE_RGB_CONVERSION_SPEC_VERSION 1
19459#define VK_VALVE_VIDEO_ENCODE_RGB_CONVERSION_EXTENSION_NAME "VK_VALVE_video_encode_rgb_conversion"
19460
19461typedef enum VkVideoEncodeRgbModelConversionFlagBitsVALVE {
19462 VK_VIDEO_ENCODE_RGB_MODEL_CONVERSION_RGB_IDENTITY_BIT_VALVE = 0x00000001,
19463 VK_VIDEO_ENCODE_RGB_MODEL_CONVERSION_YCBCR_IDENTITY_BIT_VALVE = 0x00000002,
19464 VK_VIDEO_ENCODE_RGB_MODEL_CONVERSION_YCBCR_709_BIT_VALVE = 0x00000004,
19465 VK_VIDEO_ENCODE_RGB_MODEL_CONVERSION_YCBCR_601_BIT_VALVE = 0x00000008,
19466 VK_VIDEO_ENCODE_RGB_MODEL_CONVERSION_YCBCR_2020_BIT_VALVE = 0x00000010,
19467 VK_VIDEO_ENCODE_RGB_MODEL_CONVERSION_FLAG_BITS_MAX_ENUM_VALVE = 0x7FFFFFFF
19468} VkVideoEncodeRgbModelConversionFlagBitsVALVE;
19469typedef VkFlags VkVideoEncodeRgbModelConversionFlagsVALVE;
19470
19471typedef enum VkVideoEncodeRgbRangeCompressionFlagBitsVALVE {
19472 VK_VIDEO_ENCODE_RGB_RANGE_COMPRESSION_FULL_RANGE_BIT_VALVE = 0x00000001,
19473 VK_VIDEO_ENCODE_RGB_RANGE_COMPRESSION_NARROW_RANGE_BIT_VALVE = 0x00000002,
19474 VK_VIDEO_ENCODE_RGB_RANGE_COMPRESSION_FLAG_BITS_MAX_ENUM_VALVE = 0x7FFFFFFF
19475} VkVideoEncodeRgbRangeCompressionFlagBitsVALVE;
19476typedef VkFlags VkVideoEncodeRgbRangeCompressionFlagsVALVE;
19477
19478typedef enum VkVideoEncodeRgbChromaOffsetFlagBitsVALVE {
19479 VK_VIDEO_ENCODE_RGB_CHROMA_OFFSET_COSITED_EVEN_BIT_VALVE = 0x00000001,
19480 VK_VIDEO_ENCODE_RGB_CHROMA_OFFSET_MIDPOINT_BIT_VALVE = 0x00000002,
19481 VK_VIDEO_ENCODE_RGB_CHROMA_OFFSET_FLAG_BITS_MAX_ENUM_VALVE = 0x7FFFFFFF
19482} VkVideoEncodeRgbChromaOffsetFlagBitsVALVE;
19483typedef VkFlags VkVideoEncodeRgbChromaOffsetFlagsVALVE;
19484typedef struct VkPhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE {
19485 VkStructureType sType;
19486 void* pNext;
19487 VkBool32 videoEncodeRgbConversion;
19488} VkPhysicalDeviceVideoEncodeRgbConversionFeaturesVALVE;
19489
19490typedef struct VkVideoEncodeRgbConversionCapabilitiesVALVE {
19491 VkStructureType sType;
19492 void* pNext;
19493 VkVideoEncodeRgbModelConversionFlagsVALVE rgbModels;
19494 VkVideoEncodeRgbRangeCompressionFlagsVALVE rgbRanges;
19495 VkVideoEncodeRgbChromaOffsetFlagsVALVE xChromaOffsets;
19496 VkVideoEncodeRgbChromaOffsetFlagsVALVE yChromaOffsets;
19497} VkVideoEncodeRgbConversionCapabilitiesVALVE;
19498
19499typedef struct VkVideoEncodeProfileRgbConversionInfoVALVE {
19500 VkStructureType sType;
19501 const void* pNext;
19502 VkBool32 performEncodeRgbConversion;
19503} VkVideoEncodeProfileRgbConversionInfoVALVE;
19504
19505typedef struct VkVideoEncodeSessionRgbConversionCreateInfoVALVE {
19506 VkStructureType sType;
19507 const void* pNext;
19508 VkVideoEncodeRgbModelConversionFlagBitsVALVE rgbModel;
19509 VkVideoEncodeRgbRangeCompressionFlagBitsVALVE rgbRange;
19510 VkVideoEncodeRgbChromaOffsetFlagBitsVALVE xChromaOffset;
19511 VkVideoEncodeRgbChromaOffsetFlagBitsVALVE yChromaOffset;
19512} VkVideoEncodeSessionRgbConversionCreateInfoVALVE;
19513
19514
19515
19516// VK_EXT_image_view_min_lod is a preprocessor guard. Do not pass it to API calls.
19517#define VK_EXT_image_view_min_lod 1
19518#define VK_EXT_IMAGE_VIEW_MIN_LOD_SPEC_VERSION 1
19519#define VK_EXT_IMAGE_VIEW_MIN_LOD_EXTENSION_NAME "VK_EXT_image_view_min_lod"
19520typedef struct VkPhysicalDeviceImageViewMinLodFeaturesEXT {
19521 VkStructureType sType;
19522 void* pNext;
19523 VkBool32 minLod;
19524} VkPhysicalDeviceImageViewMinLodFeaturesEXT;
19525
19526typedef struct VkImageViewMinLodCreateInfoEXT {
19527 VkStructureType sType;
19528 const void* pNext;
19529 float minLod;
19530} VkImageViewMinLodCreateInfoEXT;
19531
19532
19533
19534// VK_EXT_multi_draw is a preprocessor guard. Do not pass it to API calls.
19535#define VK_EXT_multi_draw 1
19536#define VK_EXT_MULTI_DRAW_SPEC_VERSION 1
19537#define VK_EXT_MULTI_DRAW_EXTENSION_NAME "VK_EXT_multi_draw"
19538typedef struct VkPhysicalDeviceMultiDrawFeaturesEXT {
19539 VkStructureType sType;
19540 void* pNext;
19541 VkBool32 multiDraw;
19542} VkPhysicalDeviceMultiDrawFeaturesEXT;
19543
19544typedef struct VkPhysicalDeviceMultiDrawPropertiesEXT {
19545 VkStructureType sType;
19546 void* pNext;
19547 uint32_t maxMultiDrawCount;
19548} VkPhysicalDeviceMultiDrawPropertiesEXT;
19549
19550typedef struct VkMultiDrawInfoEXT {
19551 uint32_t firstVertex;
19552 uint32_t vertexCount;
19553} VkMultiDrawInfoEXT;
19554
19555typedef struct VkMultiDrawIndexedInfoEXT {
19556 uint32_t firstIndex;
19557 uint32_t indexCount;
19558 int32_t vertexOffset;
19559} VkMultiDrawIndexedInfoEXT;
19560
19561typedef void (VKAPI_PTR *PFN_vkCmdDrawMultiEXT)(VkCommandBuffer commandBuffer, uint32_t drawCount, const VkMultiDrawInfoEXT* pVertexInfo, uint32_t instanceCount, uint32_t firstInstance, uint32_t stride);
19562typedef 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);
19563
19564#ifndef VK_NO_PROTOTYPES
19565#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19566VKAPI_ATTR void VKAPI_CALL vkCmdDrawMultiEXT(
19567 VkCommandBuffer commandBuffer,
19568 uint32_t drawCount,
19569 const VkMultiDrawInfoEXT* pVertexInfo,
19570 uint32_t instanceCount,
19571 uint32_t firstInstance,
19572 uint32_t stride);
19573#endif
19574
19575#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19576VKAPI_ATTR void VKAPI_CALL vkCmdDrawMultiIndexedEXT(
19577 VkCommandBuffer commandBuffer,
19578 uint32_t drawCount,
19579 const VkMultiDrawIndexedInfoEXT* pIndexInfo,
19580 uint32_t instanceCount,
19581 uint32_t firstInstance,
19582 uint32_t stride,
19583 const int32_t* pVertexOffset);
19584#endif
19585#endif
19586
19587
19588// VK_EXT_image_2d_view_of_3d is a preprocessor guard. Do not pass it to API calls.
19589#define VK_EXT_image_2d_view_of_3d 1
19590#define VK_EXT_IMAGE_2D_VIEW_OF_3D_SPEC_VERSION 1
19591#define VK_EXT_IMAGE_2D_VIEW_OF_3D_EXTENSION_NAME "VK_EXT_image_2d_view_of_3d"
19592typedef struct VkPhysicalDeviceImage2DViewOf3DFeaturesEXT {
19593 VkStructureType sType;
19594 void* pNext;
19595 VkBool32 image2DViewOf3D;
19596 VkBool32 sampler2DViewOf3D;
19597} VkPhysicalDeviceImage2DViewOf3DFeaturesEXT;
19598
19599
19600
19601// VK_EXT_shader_tile_image is a preprocessor guard. Do not pass it to API calls.
19602#define VK_EXT_shader_tile_image 1
19603#define VK_EXT_SHADER_TILE_IMAGE_SPEC_VERSION 1
19604#define VK_EXT_SHADER_TILE_IMAGE_EXTENSION_NAME "VK_EXT_shader_tile_image"
19605typedef struct VkPhysicalDeviceShaderTileImageFeaturesEXT {
19606 VkStructureType sType;
19607 void* pNext;
19608 VkBool32 shaderTileImageColorReadAccess;
19609 VkBool32 shaderTileImageDepthReadAccess;
19610 VkBool32 shaderTileImageStencilReadAccess;
19611} VkPhysicalDeviceShaderTileImageFeaturesEXT;
19612
19613typedef struct VkPhysicalDeviceShaderTileImagePropertiesEXT {
19614 VkStructureType sType;
19615 void* pNext;
19616 VkBool32 shaderTileImageCoherentReadAccelerated;
19617 VkBool32 shaderTileImageReadSampleFromPixelRateInvocation;
19618 VkBool32 shaderTileImageReadFromHelperInvocation;
19619} VkPhysicalDeviceShaderTileImagePropertiesEXT;
19620
19621
19622
19623// VK_EXT_opacity_micromap is a preprocessor guard. Do not pass it to API calls.
19624#define VK_EXT_opacity_micromap 1
19625VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkMicromapEXT)
19626#define VK_EXT_OPACITY_MICROMAP_SPEC_VERSION 2
19627#define VK_EXT_OPACITY_MICROMAP_EXTENSION_NAME "VK_EXT_opacity_micromap"
19628
19629typedef enum VkMicromapTypeEXT {
19630 VK_MICROMAP_TYPE_OPACITY_MICROMAP_EXT = 0,
19631#ifdef VK_ENABLE_BETA_EXTENSIONS
19632 VK_MICROMAP_TYPE_DISPLACEMENT_MICROMAP_NV = 1000397000,
19633#endif
19634 VK_MICROMAP_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
19635} VkMicromapTypeEXT;
19636
19637typedef enum VkBuildMicromapModeEXT {
19638 VK_BUILD_MICROMAP_MODE_BUILD_EXT = 0,
19639 VK_BUILD_MICROMAP_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
19640} VkBuildMicromapModeEXT;
19641
19642typedef enum VkCopyMicromapModeEXT {
19643 VK_COPY_MICROMAP_MODE_CLONE_EXT = 0,
19644 VK_COPY_MICROMAP_MODE_SERIALIZE_EXT = 1,
19645 VK_COPY_MICROMAP_MODE_DESERIALIZE_EXT = 2,
19646 VK_COPY_MICROMAP_MODE_COMPACT_EXT = 3,
19647 VK_COPY_MICROMAP_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
19648} VkCopyMicromapModeEXT;
19649
19650typedef enum VkOpacityMicromapFormatEXT {
19651 VK_OPACITY_MICROMAP_FORMAT_2_STATE_EXT = 1,
19652 VK_OPACITY_MICROMAP_FORMAT_4_STATE_EXT = 2,
19653 VK_OPACITY_MICROMAP_FORMAT_MAX_ENUM_EXT = 0x7FFFFFFF
19654} VkOpacityMicromapFormatEXT;
19655
19656typedef enum VkOpacityMicromapSpecialIndexEXT {
19657 VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_TRANSPARENT_EXT = -1,
19658 VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_OPAQUE_EXT = -2,
19659 VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_TRANSPARENT_EXT = -3,
19660 VK_OPACITY_MICROMAP_SPECIAL_INDEX_FULLY_UNKNOWN_OPAQUE_EXT = -4,
19661 VK_OPACITY_MICROMAP_SPECIAL_INDEX_CLUSTER_GEOMETRY_DISABLE_OPACITY_MICROMAP_NV = -5,
19662 VK_OPACITY_MICROMAP_SPECIAL_INDEX_MAX_ENUM_EXT = 0x7FFFFFFF
19663} VkOpacityMicromapSpecialIndexEXT;
19664
19665typedef enum VkAccelerationStructureCompatibilityKHR {
19666 VK_ACCELERATION_STRUCTURE_COMPATIBILITY_COMPATIBLE_KHR = 0,
19667 VK_ACCELERATION_STRUCTURE_COMPATIBILITY_INCOMPATIBLE_KHR = 1,
19668 VK_ACCELERATION_STRUCTURE_COMPATIBILITY_MAX_ENUM_KHR = 0x7FFFFFFF
19669} VkAccelerationStructureCompatibilityKHR;
19670
19671typedef enum VkAccelerationStructureBuildTypeKHR {
19672 VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_KHR = 0,
19673 VK_ACCELERATION_STRUCTURE_BUILD_TYPE_DEVICE_KHR = 1,
19674 VK_ACCELERATION_STRUCTURE_BUILD_TYPE_HOST_OR_DEVICE_KHR = 2,
19675 VK_ACCELERATION_STRUCTURE_BUILD_TYPE_MAX_ENUM_KHR = 0x7FFFFFFF
19676} VkAccelerationStructureBuildTypeKHR;
19677
19678typedef enum VkBuildMicromapFlagBitsEXT {
19679 VK_BUILD_MICROMAP_PREFER_FAST_TRACE_BIT_EXT = 0x00000001,
19680 VK_BUILD_MICROMAP_PREFER_FAST_BUILD_BIT_EXT = 0x00000002,
19681 VK_BUILD_MICROMAP_ALLOW_COMPACTION_BIT_EXT = 0x00000004,
19682 VK_BUILD_MICROMAP_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
19683} VkBuildMicromapFlagBitsEXT;
19684typedef VkFlags VkBuildMicromapFlagsEXT;
19685
19686typedef enum VkMicromapCreateFlagBitsEXT {
19687 VK_MICROMAP_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_EXT = 0x00000001,
19688 VK_MICROMAP_CREATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
19689} VkMicromapCreateFlagBitsEXT;
19690typedef VkFlags VkMicromapCreateFlagsEXT;
19691typedef struct VkMicromapUsageEXT {
19692 uint32_t count;
19693 uint32_t subdivisionLevel;
19694 uint32_t format;
19695} VkMicromapUsageEXT;
19696
19697typedef union VkDeviceOrHostAddressKHR {
19698 VkDeviceAddress deviceAddress;
19699 void* hostAddress;
19700} VkDeviceOrHostAddressKHR;
19701
19702typedef struct VkMicromapBuildInfoEXT {
19703 VkStructureType sType;
19704 const void* pNext;
19705 VkMicromapTypeEXT type;
19706 VkBuildMicromapFlagsEXT flags;
19707 VkBuildMicromapModeEXT mode;
19708 VkMicromapEXT dstMicromap;
19709 uint32_t usageCountsCount;
19710 const VkMicromapUsageEXT* pUsageCounts;
19711 const VkMicromapUsageEXT* const* ppUsageCounts;
19712 VkDeviceOrHostAddressConstKHR data;
19713 VkDeviceOrHostAddressKHR scratchData;
19714 VkDeviceOrHostAddressConstKHR triangleArray;
19715 VkDeviceSize triangleArrayStride;
19716} VkMicromapBuildInfoEXT;
19717
19718typedef struct VkMicromapCreateInfoEXT {
19719 VkStructureType sType;
19720 const void* pNext;
19721 VkMicromapCreateFlagsEXT createFlags;
19722 VkBuffer buffer;
19723 VkDeviceSize offset;
19724 VkDeviceSize size;
19725 VkMicromapTypeEXT type;
19726 VkDeviceAddress deviceAddress;
19727} VkMicromapCreateInfoEXT;
19728
19729typedef struct VkPhysicalDeviceOpacityMicromapFeaturesEXT {
19730 VkStructureType sType;
19731 void* pNext;
19732 VkBool32 micromap;
19733 VkBool32 micromapCaptureReplay;
19734 VkBool32 micromapHostCommands;
19735} VkPhysicalDeviceOpacityMicromapFeaturesEXT;
19736
19737typedef struct VkPhysicalDeviceOpacityMicromapPropertiesEXT {
19738 VkStructureType sType;
19739 void* pNext;
19740 uint32_t maxOpacity2StateSubdivisionLevel;
19741 uint32_t maxOpacity4StateSubdivisionLevel;
19742} VkPhysicalDeviceOpacityMicromapPropertiesEXT;
19743
19744typedef struct VkMicromapVersionInfoEXT {
19745 VkStructureType sType;
19746 const void* pNext;
19747 const uint8_t* pVersionData;
19748} VkMicromapVersionInfoEXT;
19749
19750typedef struct VkCopyMicromapToMemoryInfoEXT {
19751 VkStructureType sType;
19752 const void* pNext;
19753 VkMicromapEXT src;
19754 VkDeviceOrHostAddressKHR dst;
19755 VkCopyMicromapModeEXT mode;
19756} VkCopyMicromapToMemoryInfoEXT;
19757
19758typedef struct VkCopyMemoryToMicromapInfoEXT {
19759 VkStructureType sType;
19760 const void* pNext;
19761 VkDeviceOrHostAddressConstKHR src;
19762 VkMicromapEXT dst;
19763 VkCopyMicromapModeEXT mode;
19764} VkCopyMemoryToMicromapInfoEXT;
19765
19766typedef struct VkCopyMicromapInfoEXT {
19767 VkStructureType sType;
19768 const void* pNext;
19769 VkMicromapEXT src;
19770 VkMicromapEXT dst;
19771 VkCopyMicromapModeEXT mode;
19772} VkCopyMicromapInfoEXT;
19773
19774typedef struct VkMicromapBuildSizesInfoEXT {
19775 VkStructureType sType;
19776 const void* pNext;
19777 VkDeviceSize micromapSize;
19778 VkDeviceSize buildScratchSize;
19779 VkBool32 discardable;
19780} VkMicromapBuildSizesInfoEXT;
19781
19782typedef struct VkAccelerationStructureTrianglesOpacityMicromapEXT {
19783 VkStructureType sType;
19784 void* pNext;
19785 VkIndexType indexType;
19786 VkDeviceOrHostAddressConstKHR indexBuffer;
19787 VkDeviceSize indexStride;
19788 uint32_t baseTriangle;
19789 uint32_t usageCountsCount;
19790 const VkMicromapUsageEXT* pUsageCounts;
19791 const VkMicromapUsageEXT* const* ppUsageCounts;
19792 VkMicromapEXT micromap;
19793} VkAccelerationStructureTrianglesOpacityMicromapEXT;
19794
19795typedef struct VkMicromapTriangleEXT {
19796 uint32_t dataOffset;
19797 uint16_t subdivisionLevel;
19798 uint16_t format;
19799} VkMicromapTriangleEXT;
19800
19801typedef VkResult (VKAPI_PTR *PFN_vkCreateMicromapEXT)(VkDevice device, const VkMicromapCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkMicromapEXT* pMicromap);
19802typedef void (VKAPI_PTR *PFN_vkDestroyMicromapEXT)(VkDevice device, VkMicromapEXT micromap, const VkAllocationCallbacks* pAllocator);
19803typedef void (VKAPI_PTR *PFN_vkCmdBuildMicromapsEXT)(VkCommandBuffer commandBuffer, uint32_t infoCount, const VkMicromapBuildInfoEXT* pInfos);
19804typedef VkResult (VKAPI_PTR *PFN_vkBuildMicromapsEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const VkMicromapBuildInfoEXT* pInfos);
19805typedef VkResult (VKAPI_PTR *PFN_vkCopyMicromapEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMicromapInfoEXT* pInfo);
19806typedef VkResult (VKAPI_PTR *PFN_vkCopyMicromapToMemoryEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMicromapToMemoryInfoEXT* pInfo);
19807typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToMicromapEXT)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToMicromapInfoEXT* pInfo);
19808typedef VkResult (VKAPI_PTR *PFN_vkWriteMicromapsPropertiesEXT)(VkDevice device, uint32_t micromapCount, const VkMicromapEXT* pMicromaps, VkQueryType queryType, size_t dataSize, void* pData, size_t stride);
19809typedef void (VKAPI_PTR *PFN_vkCmdCopyMicromapEXT)(VkCommandBuffer commandBuffer, const VkCopyMicromapInfoEXT* pInfo);
19810typedef void (VKAPI_PTR *PFN_vkCmdCopyMicromapToMemoryEXT)(VkCommandBuffer commandBuffer, const VkCopyMicromapToMemoryInfoEXT* pInfo);
19811typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToMicromapEXT)(VkCommandBuffer commandBuffer, const VkCopyMemoryToMicromapInfoEXT* pInfo);
19812typedef void (VKAPI_PTR *PFN_vkCmdWriteMicromapsPropertiesEXT)(VkCommandBuffer commandBuffer, uint32_t micromapCount, const VkMicromapEXT* pMicromaps, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
19813typedef void (VKAPI_PTR *PFN_vkGetDeviceMicromapCompatibilityEXT)(VkDevice device, const VkMicromapVersionInfoEXT* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility);
19814typedef void (VKAPI_PTR *PFN_vkGetMicromapBuildSizesEXT)(VkDevice device, VkAccelerationStructureBuildTypeKHR buildType, const VkMicromapBuildInfoEXT* pBuildInfo, VkMicromapBuildSizesInfoEXT* pSizeInfo);
19815
19816#ifndef VK_NO_PROTOTYPES
19817#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19818VKAPI_ATTR VkResult VKAPI_CALL vkCreateMicromapEXT(
19819 VkDevice device,
19820 const VkMicromapCreateInfoEXT* pCreateInfo,
19821 const VkAllocationCallbacks* pAllocator,
19822 VkMicromapEXT* pMicromap);
19823#endif
19824
19825#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19826VKAPI_ATTR void VKAPI_CALL vkDestroyMicromapEXT(
19827 VkDevice device,
19828 VkMicromapEXT micromap,
19829 const VkAllocationCallbacks* pAllocator);
19830#endif
19831
19832#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19833VKAPI_ATTR void VKAPI_CALL vkCmdBuildMicromapsEXT(
19834 VkCommandBuffer commandBuffer,
19835 uint32_t infoCount,
19836 const VkMicromapBuildInfoEXT* pInfos);
19837#endif
19838
19839#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19840VKAPI_ATTR VkResult VKAPI_CALL vkBuildMicromapsEXT(
19841 VkDevice device,
19842 VkDeferredOperationKHR deferredOperation,
19843 uint32_t infoCount,
19844 const VkMicromapBuildInfoEXT* pInfos);
19845#endif
19846
19847#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19848VKAPI_ATTR VkResult VKAPI_CALL vkCopyMicromapEXT(
19849 VkDevice device,
19850 VkDeferredOperationKHR deferredOperation,
19851 const VkCopyMicromapInfoEXT* pInfo);
19852#endif
19853
19854#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19855VKAPI_ATTR VkResult VKAPI_CALL vkCopyMicromapToMemoryEXT(
19856 VkDevice device,
19857 VkDeferredOperationKHR deferredOperation,
19858 const VkCopyMicromapToMemoryInfoEXT* pInfo);
19859#endif
19860
19861#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19862VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToMicromapEXT(
19863 VkDevice device,
19864 VkDeferredOperationKHR deferredOperation,
19865 const VkCopyMemoryToMicromapInfoEXT* pInfo);
19866#endif
19867
19868#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19869VKAPI_ATTR VkResult VKAPI_CALL vkWriteMicromapsPropertiesEXT(
19870 VkDevice device,
19871 uint32_t micromapCount,
19872 const VkMicromapEXT* pMicromaps,
19873 VkQueryType queryType,
19874 size_t dataSize,
19875 void* pData,
19876 size_t stride);
19877#endif
19878
19879#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19880VKAPI_ATTR void VKAPI_CALL vkCmdCopyMicromapEXT(
19881 VkCommandBuffer commandBuffer,
19882 const VkCopyMicromapInfoEXT* pInfo);
19883#endif
19884
19885#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19886VKAPI_ATTR void VKAPI_CALL vkCmdCopyMicromapToMemoryEXT(
19887 VkCommandBuffer commandBuffer,
19888 const VkCopyMicromapToMemoryInfoEXT* pInfo);
19889#endif
19890
19891#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19892VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToMicromapEXT(
19893 VkCommandBuffer commandBuffer,
19894 const VkCopyMemoryToMicromapInfoEXT* pInfo);
19895#endif
19896
19897#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19898VKAPI_ATTR void VKAPI_CALL vkCmdWriteMicromapsPropertiesEXT(
19899 VkCommandBuffer commandBuffer,
19900 uint32_t micromapCount,
19901 const VkMicromapEXT* pMicromaps,
19902 VkQueryType queryType,
19903 VkQueryPool queryPool,
19904 uint32_t firstQuery);
19905#endif
19906
19907#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19908VKAPI_ATTR void VKAPI_CALL vkGetDeviceMicromapCompatibilityEXT(
19909 VkDevice device,
19910 const VkMicromapVersionInfoEXT* pVersionInfo,
19911 VkAccelerationStructureCompatibilityKHR* pCompatibility);
19912#endif
19913
19914#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19915VKAPI_ATTR void VKAPI_CALL vkGetMicromapBuildSizesEXT(
19916 VkDevice device,
19917 VkAccelerationStructureBuildTypeKHR buildType,
19918 const VkMicromapBuildInfoEXT* pBuildInfo,
19919 VkMicromapBuildSizesInfoEXT* pSizeInfo);
19920#endif
19921#endif
19922
19923
19924// VK_EXT_load_store_op_none is a preprocessor guard. Do not pass it to API calls.
19925#define VK_EXT_load_store_op_none 1
19926#define VK_EXT_LOAD_STORE_OP_NONE_SPEC_VERSION 1
19927#define VK_EXT_LOAD_STORE_OP_NONE_EXTENSION_NAME "VK_EXT_load_store_op_none"
19928
19929
19930// VK_HUAWEI_cluster_culling_shader is a preprocessor guard. Do not pass it to API calls.
19931#define VK_HUAWEI_cluster_culling_shader 1
19932#define VK_HUAWEI_CLUSTER_CULLING_SHADER_SPEC_VERSION 3
19933#define VK_HUAWEI_CLUSTER_CULLING_SHADER_EXTENSION_NAME "VK_HUAWEI_cluster_culling_shader"
19934typedef struct VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI {
19935 VkStructureType sType;
19936 void* pNext;
19937 VkBool32 clustercullingShader;
19938 VkBool32 multiviewClusterCullingShader;
19939} VkPhysicalDeviceClusterCullingShaderFeaturesHUAWEI;
19940
19941typedef struct VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI {
19942 VkStructureType sType;
19943 void* pNext;
19944 uint32_t maxWorkGroupCount[3];
19945 uint32_t maxWorkGroupSize[3];
19946 uint32_t maxOutputClusterCount;
19947 VkDeviceSize indirectBufferOffsetAlignment;
19948} VkPhysicalDeviceClusterCullingShaderPropertiesHUAWEI;
19949
19950typedef struct VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI {
19951 VkStructureType sType;
19952 void* pNext;
19953 VkBool32 clusterShadingRate;
19954} VkPhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI;
19955
19956typedef void (VKAPI_PTR *PFN_vkCmdDrawClusterHUAWEI)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
19957typedef void (VKAPI_PTR *PFN_vkCmdDrawClusterIndirectHUAWEI)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset);
19958
19959#ifndef VK_NO_PROTOTYPES
19960#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19961VKAPI_ATTR void VKAPI_CALL vkCmdDrawClusterHUAWEI(
19962 VkCommandBuffer commandBuffer,
19963 uint32_t groupCountX,
19964 uint32_t groupCountY,
19965 uint32_t groupCountZ);
19966#endif
19967
19968#ifndef VK_ONLY_EXPORTED_PROTOTYPES
19969VKAPI_ATTR void VKAPI_CALL vkCmdDrawClusterIndirectHUAWEI(
19970 VkCommandBuffer commandBuffer,
19971 VkBuffer buffer,
19972 VkDeviceSize offset);
19973#endif
19974#endif
19975
19976
19977// VK_EXT_border_color_swizzle is a preprocessor guard. Do not pass it to API calls.
19978#define VK_EXT_border_color_swizzle 1
19979#define VK_EXT_BORDER_COLOR_SWIZZLE_SPEC_VERSION 1
19980#define VK_EXT_BORDER_COLOR_SWIZZLE_EXTENSION_NAME "VK_EXT_border_color_swizzle"
19981typedef struct VkPhysicalDeviceBorderColorSwizzleFeaturesEXT {
19982 VkStructureType sType;
19983 void* pNext;
19984 VkBool32 borderColorSwizzle;
19985 VkBool32 borderColorSwizzleFromImage;
19986} VkPhysicalDeviceBorderColorSwizzleFeaturesEXT;
19987
19988typedef struct VkSamplerBorderColorComponentMappingCreateInfoEXT {
19989 VkStructureType sType;
19990 const void* pNext;
19991 VkComponentMapping components;
19992 VkBool32 srgb;
19993} VkSamplerBorderColorComponentMappingCreateInfoEXT;
19994
19995
19996
19997// VK_EXT_pageable_device_local_memory is a preprocessor guard. Do not pass it to API calls.
19998#define VK_EXT_pageable_device_local_memory 1
19999#define VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_SPEC_VERSION 1
20000#define VK_EXT_PAGEABLE_DEVICE_LOCAL_MEMORY_EXTENSION_NAME "VK_EXT_pageable_device_local_memory"
20001typedef struct VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT {
20002 VkStructureType sType;
20003 void* pNext;
20004 VkBool32 pageableDeviceLocalMemory;
20005} VkPhysicalDevicePageableDeviceLocalMemoryFeaturesEXT;
20006
20007typedef void (VKAPI_PTR *PFN_vkSetDeviceMemoryPriorityEXT)(VkDevice device, VkDeviceMemory memory, float priority);
20008
20009#ifndef VK_NO_PROTOTYPES
20010#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20011VKAPI_ATTR void VKAPI_CALL vkSetDeviceMemoryPriorityEXT(
20012 VkDevice device,
20013 VkDeviceMemory memory,
20014 float priority);
20015#endif
20016#endif
20017
20018
20019// VK_ARM_shader_core_properties is a preprocessor guard. Do not pass it to API calls.
20020#define VK_ARM_shader_core_properties 1
20021#define VK_ARM_SHADER_CORE_PROPERTIES_SPEC_VERSION 1
20022#define VK_ARM_SHADER_CORE_PROPERTIES_EXTENSION_NAME "VK_ARM_shader_core_properties"
20023typedef struct VkPhysicalDeviceShaderCorePropertiesARM {
20024 VkStructureType sType;
20025 void* pNext;
20026 uint32_t pixelRate;
20027 uint32_t texelRate;
20028 uint32_t fmaRate;
20029} VkPhysicalDeviceShaderCorePropertiesARM;
20030
20031
20032
20033// VK_ARM_scheduling_controls is a preprocessor guard. Do not pass it to API calls.
20034#define VK_ARM_scheduling_controls 1
20035#define VK_ARM_SCHEDULING_CONTROLS_SPEC_VERSION 1
20036#define VK_ARM_SCHEDULING_CONTROLS_EXTENSION_NAME "VK_ARM_scheduling_controls"
20037typedef VkFlags64 VkPhysicalDeviceSchedulingControlsFlagsARM;
20038
20039// Flag bits for VkPhysicalDeviceSchedulingControlsFlagBitsARM
20040typedef VkFlags64 VkPhysicalDeviceSchedulingControlsFlagBitsARM;
20041static const VkPhysicalDeviceSchedulingControlsFlagBitsARM VK_PHYSICAL_DEVICE_SCHEDULING_CONTROLS_SHADER_CORE_COUNT_ARM = 0x00000001ULL;
20042
20043typedef struct VkDeviceQueueShaderCoreControlCreateInfoARM {
20044 VkStructureType sType;
20045 void* pNext;
20046 uint32_t shaderCoreCount;
20047} VkDeviceQueueShaderCoreControlCreateInfoARM;
20048
20049typedef struct VkPhysicalDeviceSchedulingControlsFeaturesARM {
20050 VkStructureType sType;
20051 void* pNext;
20052 VkBool32 schedulingControls;
20053} VkPhysicalDeviceSchedulingControlsFeaturesARM;
20054
20055typedef struct VkPhysicalDeviceSchedulingControlsPropertiesARM {
20056 VkStructureType sType;
20057 void* pNext;
20058 VkPhysicalDeviceSchedulingControlsFlagsARM schedulingControlsFlags;
20059} VkPhysicalDeviceSchedulingControlsPropertiesARM;
20060
20061
20062
20063// VK_EXT_image_sliced_view_of_3d is a preprocessor guard. Do not pass it to API calls.
20064#define VK_EXT_image_sliced_view_of_3d 1
20065#define VK_EXT_IMAGE_SLICED_VIEW_OF_3D_SPEC_VERSION 1
20066#define VK_EXT_IMAGE_SLICED_VIEW_OF_3D_EXTENSION_NAME "VK_EXT_image_sliced_view_of_3d"
20067#define VK_REMAINING_3D_SLICES_EXT (~0U)
20068typedef struct VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT {
20069 VkStructureType sType;
20070 void* pNext;
20071 VkBool32 imageSlicedViewOf3D;
20072} VkPhysicalDeviceImageSlicedViewOf3DFeaturesEXT;
20073
20074typedef struct VkImageViewSlicedCreateInfoEXT {
20075 VkStructureType sType;
20076 const void* pNext;
20077 uint32_t sliceOffset;
20078 uint32_t sliceCount;
20079} VkImageViewSlicedCreateInfoEXT;
20080
20081
20082
20083// VK_VALVE_descriptor_set_host_mapping is a preprocessor guard. Do not pass it to API calls.
20084#define VK_VALVE_descriptor_set_host_mapping 1
20085#define VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_SPEC_VERSION 1
20086#define VK_VALVE_DESCRIPTOR_SET_HOST_MAPPING_EXTENSION_NAME "VK_VALVE_descriptor_set_host_mapping"
20087typedef struct VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE {
20088 VkStructureType sType;
20089 void* pNext;
20090 VkBool32 descriptorSetHostMapping;
20091} VkPhysicalDeviceDescriptorSetHostMappingFeaturesVALVE;
20092
20093typedef struct VkDescriptorSetBindingReferenceVALVE {
20094 VkStructureType sType;
20095 const void* pNext;
20096 VkDescriptorSetLayout descriptorSetLayout;
20097 uint32_t binding;
20098} VkDescriptorSetBindingReferenceVALVE;
20099
20100typedef struct VkDescriptorSetLayoutHostMappingInfoVALVE {
20101 VkStructureType sType;
20102 void* pNext;
20103 size_t descriptorOffset;
20104 uint32_t descriptorSize;
20105} VkDescriptorSetLayoutHostMappingInfoVALVE;
20106
20107typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetLayoutHostMappingInfoVALVE)(VkDevice device, const VkDescriptorSetBindingReferenceVALVE* pBindingReference, VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping);
20108typedef void (VKAPI_PTR *PFN_vkGetDescriptorSetHostMappingVALVE)(VkDevice device, VkDescriptorSet descriptorSet, void** ppData);
20109
20110#ifndef VK_NO_PROTOTYPES
20111#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20112VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetLayoutHostMappingInfoVALVE(
20113 VkDevice device,
20114 const VkDescriptorSetBindingReferenceVALVE* pBindingReference,
20115 VkDescriptorSetLayoutHostMappingInfoVALVE* pHostMapping);
20116#endif
20117
20118#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20119VKAPI_ATTR void VKAPI_CALL vkGetDescriptorSetHostMappingVALVE(
20120 VkDevice device,
20121 VkDescriptorSet descriptorSet,
20122 void** ppData);
20123#endif
20124#endif
20125
20126
20127// VK_EXT_depth_clamp_zero_one is a preprocessor guard. Do not pass it to API calls.
20128#define VK_EXT_depth_clamp_zero_one 1
20129#define VK_EXT_DEPTH_CLAMP_ZERO_ONE_SPEC_VERSION 1
20130#define VK_EXT_DEPTH_CLAMP_ZERO_ONE_EXTENSION_NAME "VK_EXT_depth_clamp_zero_one"
20131typedef VkPhysicalDeviceDepthClampZeroOneFeaturesKHR VkPhysicalDeviceDepthClampZeroOneFeaturesEXT;
20132
20133
20134
20135// VK_EXT_non_seamless_cube_map is a preprocessor guard. Do not pass it to API calls.
20136#define VK_EXT_non_seamless_cube_map 1
20137#define VK_EXT_NON_SEAMLESS_CUBE_MAP_SPEC_VERSION 1
20138#define VK_EXT_NON_SEAMLESS_CUBE_MAP_EXTENSION_NAME "VK_EXT_non_seamless_cube_map"
20139typedef struct VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT {
20140 VkStructureType sType;
20141 void* pNext;
20142 VkBool32 nonSeamlessCubeMap;
20143} VkPhysicalDeviceNonSeamlessCubeMapFeaturesEXT;
20144
20145
20146
20147// VK_ARM_render_pass_striped is a preprocessor guard. Do not pass it to API calls.
20148#define VK_ARM_render_pass_striped 1
20149#define VK_ARM_RENDER_PASS_STRIPED_SPEC_VERSION 1
20150#define VK_ARM_RENDER_PASS_STRIPED_EXTENSION_NAME "VK_ARM_render_pass_striped"
20151typedef struct VkPhysicalDeviceRenderPassStripedFeaturesARM {
20152 VkStructureType sType;
20153 void* pNext;
20154 VkBool32 renderPassStriped;
20155} VkPhysicalDeviceRenderPassStripedFeaturesARM;
20156
20157typedef struct VkPhysicalDeviceRenderPassStripedPropertiesARM {
20158 VkStructureType sType;
20159 void* pNext;
20160 VkExtent2D renderPassStripeGranularity;
20161 uint32_t maxRenderPassStripes;
20162} VkPhysicalDeviceRenderPassStripedPropertiesARM;
20163
20164typedef struct VkRenderPassStripeInfoARM {
20165 VkStructureType sType;
20166 const void* pNext;
20167 VkRect2D stripeArea;
20168} VkRenderPassStripeInfoARM;
20169
20170typedef struct VkRenderPassStripeBeginInfoARM {
20171 VkStructureType sType;
20172 const void* pNext;
20173 uint32_t stripeInfoCount;
20174 const VkRenderPassStripeInfoARM* pStripeInfos;
20175} VkRenderPassStripeBeginInfoARM;
20176
20177typedef struct VkRenderPassStripeSubmitInfoARM {
20178 VkStructureType sType;
20179 const void* pNext;
20180 uint32_t stripeSemaphoreInfoCount;
20181 const VkSemaphoreSubmitInfo* pStripeSemaphoreInfos;
20182} VkRenderPassStripeSubmitInfoARM;
20183
20184
20185
20186// VK_QCOM_fragment_density_map_offset is a preprocessor guard. Do not pass it to API calls.
20187#define VK_QCOM_fragment_density_map_offset 1
20188#define VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION 3
20189#define VK_QCOM_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME "VK_QCOM_fragment_density_map_offset"
20190typedef struct VkPhysicalDeviceFragmentDensityMapOffsetFeaturesEXT {
20191 VkStructureType sType;
20192 void* pNext;
20193 VkBool32 fragmentDensityMapOffset;
20194} VkPhysicalDeviceFragmentDensityMapOffsetFeaturesEXT;
20195
20196typedef VkPhysicalDeviceFragmentDensityMapOffsetFeaturesEXT VkPhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM;
20197
20198typedef struct VkPhysicalDeviceFragmentDensityMapOffsetPropertiesEXT {
20199 VkStructureType sType;
20200 void* pNext;
20201 VkExtent2D fragmentDensityOffsetGranularity;
20202} VkPhysicalDeviceFragmentDensityMapOffsetPropertiesEXT;
20203
20204typedef VkPhysicalDeviceFragmentDensityMapOffsetPropertiesEXT VkPhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM;
20205
20206typedef struct VkRenderPassFragmentDensityMapOffsetEndInfoEXT {
20207 VkStructureType sType;
20208 const void* pNext;
20209 uint32_t fragmentDensityOffsetCount;
20210 const VkOffset2D* pFragmentDensityOffsets;
20211} VkRenderPassFragmentDensityMapOffsetEndInfoEXT;
20212
20213typedef VkRenderPassFragmentDensityMapOffsetEndInfoEXT VkSubpassFragmentDensityMapOffsetEndInfoQCOM;
20214
20215
20216
20217// VK_NV_copy_memory_indirect is a preprocessor guard. Do not pass it to API calls.
20218#define VK_NV_copy_memory_indirect 1
20219#define VK_NV_COPY_MEMORY_INDIRECT_SPEC_VERSION 1
20220#define VK_NV_COPY_MEMORY_INDIRECT_EXTENSION_NAME "VK_NV_copy_memory_indirect"
20221typedef VkCopyMemoryIndirectCommandKHR VkCopyMemoryIndirectCommandNV;
20222
20223typedef VkCopyMemoryToImageIndirectCommandKHR VkCopyMemoryToImageIndirectCommandNV;
20224
20225typedef struct VkPhysicalDeviceCopyMemoryIndirectFeaturesNV {
20226 VkStructureType sType;
20227 void* pNext;
20228 VkBool32 indirectCopy;
20229} VkPhysicalDeviceCopyMemoryIndirectFeaturesNV;
20230
20231typedef VkPhysicalDeviceCopyMemoryIndirectPropertiesKHR VkPhysicalDeviceCopyMemoryIndirectPropertiesNV;
20232
20233typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryIndirectNV)(VkCommandBuffer commandBuffer, VkDeviceAddress copyBufferAddress, uint32_t copyCount, uint32_t stride);
20234typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToImageIndirectNV)(VkCommandBuffer commandBuffer, VkDeviceAddress copyBufferAddress, uint32_t copyCount, uint32_t stride, VkImage dstImage, VkImageLayout dstImageLayout, const VkImageSubresourceLayers* pImageSubresources);
20235
20236#ifndef VK_NO_PROTOTYPES
20237#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20238VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryIndirectNV(
20239 VkCommandBuffer commandBuffer,
20240 VkDeviceAddress copyBufferAddress,
20241 uint32_t copyCount,
20242 uint32_t stride);
20243#endif
20244
20245#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20246VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToImageIndirectNV(
20247 VkCommandBuffer commandBuffer,
20248 VkDeviceAddress copyBufferAddress,
20249 uint32_t copyCount,
20250 uint32_t stride,
20251 VkImage dstImage,
20252 VkImageLayout dstImageLayout,
20253 const VkImageSubresourceLayers* pImageSubresources);
20254#endif
20255#endif
20256
20257
20258// VK_NV_memory_decompression is a preprocessor guard. Do not pass it to API calls.
20259#define VK_NV_memory_decompression 1
20260#define VK_NV_MEMORY_DECOMPRESSION_SPEC_VERSION 1
20261#define VK_NV_MEMORY_DECOMPRESSION_EXTENSION_NAME "VK_NV_memory_decompression"
20262
20263// Flag bits for VkMemoryDecompressionMethodFlagBitsNV
20264typedef VkFlags64 VkMemoryDecompressionMethodFlagBitsNV;
20265static const VkMemoryDecompressionMethodFlagBitsNV VK_MEMORY_DECOMPRESSION_METHOD_GDEFLATE_1_0_BIT_NV = 0x00000001ULL;
20266
20267typedef VkFlags64 VkMemoryDecompressionMethodFlagsNV;
20268typedef struct VkDecompressMemoryRegionNV {
20269 VkDeviceAddress srcAddress;
20270 VkDeviceAddress dstAddress;
20271 VkDeviceSize compressedSize;
20272 VkDeviceSize decompressedSize;
20273 VkMemoryDecompressionMethodFlagsNV decompressionMethod;
20274} VkDecompressMemoryRegionNV;
20275
20276typedef struct VkPhysicalDeviceMemoryDecompressionFeaturesNV {
20277 VkStructureType sType;
20278 void* pNext;
20279 VkBool32 memoryDecompression;
20280} VkPhysicalDeviceMemoryDecompressionFeaturesNV;
20281
20282typedef struct VkPhysicalDeviceMemoryDecompressionPropertiesNV {
20283 VkStructureType sType;
20284 void* pNext;
20285 VkMemoryDecompressionMethodFlagsNV decompressionMethods;
20286 uint64_t maxDecompressionIndirectCount;
20287} VkPhysicalDeviceMemoryDecompressionPropertiesNV;
20288
20289typedef void (VKAPI_PTR *PFN_vkCmdDecompressMemoryNV)(VkCommandBuffer commandBuffer, uint32_t decompressRegionCount, const VkDecompressMemoryRegionNV* pDecompressMemoryRegions);
20290typedef void (VKAPI_PTR *PFN_vkCmdDecompressMemoryIndirectCountNV)(VkCommandBuffer commandBuffer, VkDeviceAddress indirectCommandsAddress, VkDeviceAddress indirectCommandsCountAddress, uint32_t stride);
20291
20292#ifndef VK_NO_PROTOTYPES
20293#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20294VKAPI_ATTR void VKAPI_CALL vkCmdDecompressMemoryNV(
20295 VkCommandBuffer commandBuffer,
20296 uint32_t decompressRegionCount,
20297 const VkDecompressMemoryRegionNV* pDecompressMemoryRegions);
20298#endif
20299
20300#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20301VKAPI_ATTR void VKAPI_CALL vkCmdDecompressMemoryIndirectCountNV(
20302 VkCommandBuffer commandBuffer,
20303 VkDeviceAddress indirectCommandsAddress,
20304 VkDeviceAddress indirectCommandsCountAddress,
20305 uint32_t stride);
20306#endif
20307#endif
20308
20309
20310// VK_NV_device_generated_commands_compute is a preprocessor guard. Do not pass it to API calls.
20311#define VK_NV_device_generated_commands_compute 1
20312#define VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_SPEC_VERSION 2
20313#define VK_NV_DEVICE_GENERATED_COMMANDS_COMPUTE_EXTENSION_NAME "VK_NV_device_generated_commands_compute"
20314typedef struct VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV {
20315 VkStructureType sType;
20316 void* pNext;
20317 VkBool32 deviceGeneratedCompute;
20318 VkBool32 deviceGeneratedComputePipelines;
20319 VkBool32 deviceGeneratedComputeCaptureReplay;
20320} VkPhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV;
20321
20322typedef struct VkComputePipelineIndirectBufferInfoNV {
20323 VkStructureType sType;
20324 const void* pNext;
20325 VkDeviceAddress deviceAddress;
20326 VkDeviceSize size;
20327 VkDeviceAddress pipelineDeviceAddressCaptureReplay;
20328} VkComputePipelineIndirectBufferInfoNV;
20329
20330typedef struct VkPipelineIndirectDeviceAddressInfoNV {
20331 VkStructureType sType;
20332 const void* pNext;
20333 VkPipelineBindPoint pipelineBindPoint;
20334 VkPipeline pipeline;
20335} VkPipelineIndirectDeviceAddressInfoNV;
20336
20337typedef struct VkBindPipelineIndirectCommandNV {
20338 VkDeviceAddress pipelineAddress;
20339} VkBindPipelineIndirectCommandNV;
20340
20341typedef void (VKAPI_PTR *PFN_vkGetPipelineIndirectMemoryRequirementsNV)(VkDevice device, const VkComputePipelineCreateInfo* pCreateInfo, VkMemoryRequirements2* pMemoryRequirements);
20342typedef void (VKAPI_PTR *PFN_vkCmdUpdatePipelineIndirectBufferNV)(VkCommandBuffer commandBuffer, VkPipelineBindPoint pipelineBindPoint, VkPipeline pipeline);
20343typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetPipelineIndirectDeviceAddressNV)(VkDevice device, const VkPipelineIndirectDeviceAddressInfoNV* pInfo);
20344
20345#ifndef VK_NO_PROTOTYPES
20346#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20347VKAPI_ATTR void VKAPI_CALL vkGetPipelineIndirectMemoryRequirementsNV(
20348 VkDevice device,
20349 const VkComputePipelineCreateInfo* pCreateInfo,
20350 VkMemoryRequirements2* pMemoryRequirements);
20351#endif
20352
20353#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20354VKAPI_ATTR void VKAPI_CALL vkCmdUpdatePipelineIndirectBufferNV(
20355 VkCommandBuffer commandBuffer,
20356 VkPipelineBindPoint pipelineBindPoint,
20357 VkPipeline pipeline);
20358#endif
20359
20360#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20361VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetPipelineIndirectDeviceAddressNV(
20362 VkDevice device,
20363 const VkPipelineIndirectDeviceAddressInfoNV* pInfo);
20364#endif
20365#endif
20366
20367
20368// VK_NV_ray_tracing_linear_swept_spheres is a preprocessor guard. Do not pass it to API calls.
20369#define VK_NV_ray_tracing_linear_swept_spheres 1
20370#define VK_NV_RAY_TRACING_LINEAR_SWEPT_SPHERES_SPEC_VERSION 1
20371#define VK_NV_RAY_TRACING_LINEAR_SWEPT_SPHERES_EXTENSION_NAME "VK_NV_ray_tracing_linear_swept_spheres"
20372
20373typedef enum VkRayTracingLssIndexingModeNV {
20374 VK_RAY_TRACING_LSS_INDEXING_MODE_LIST_NV = 0,
20375 VK_RAY_TRACING_LSS_INDEXING_MODE_SUCCESSIVE_NV = 1,
20376 VK_RAY_TRACING_LSS_INDEXING_MODE_MAX_ENUM_NV = 0x7FFFFFFF
20377} VkRayTracingLssIndexingModeNV;
20378
20379typedef enum VkRayTracingLssPrimitiveEndCapsModeNV {
20380 VK_RAY_TRACING_LSS_PRIMITIVE_END_CAPS_MODE_NONE_NV = 0,
20381 VK_RAY_TRACING_LSS_PRIMITIVE_END_CAPS_MODE_CHAINED_NV = 1,
20382 VK_RAY_TRACING_LSS_PRIMITIVE_END_CAPS_MODE_MAX_ENUM_NV = 0x7FFFFFFF
20383} VkRayTracingLssPrimitiveEndCapsModeNV;
20384typedef struct VkPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV {
20385 VkStructureType sType;
20386 void* pNext;
20387 VkBool32 spheres;
20388 VkBool32 linearSweptSpheres;
20389} VkPhysicalDeviceRayTracingLinearSweptSpheresFeaturesNV;
20390
20391typedef struct VkAccelerationStructureGeometryLinearSweptSpheresDataNV {
20392 VkStructureType sType;
20393 const void* pNext;
20394 VkFormat vertexFormat;
20395 VkDeviceOrHostAddressConstKHR vertexData;
20396 VkDeviceSize vertexStride;
20397 VkFormat radiusFormat;
20398 VkDeviceOrHostAddressConstKHR radiusData;
20399 VkDeviceSize radiusStride;
20400 VkIndexType indexType;
20401 VkDeviceOrHostAddressConstKHR indexData;
20402 VkDeviceSize indexStride;
20403 VkRayTracingLssIndexingModeNV indexingMode;
20404 VkRayTracingLssPrimitiveEndCapsModeNV endCapsMode;
20405} VkAccelerationStructureGeometryLinearSweptSpheresDataNV;
20406
20407typedef struct VkAccelerationStructureGeometrySpheresDataNV {
20408 VkStructureType sType;
20409 const void* pNext;
20410 VkFormat vertexFormat;
20411 VkDeviceOrHostAddressConstKHR vertexData;
20412 VkDeviceSize vertexStride;
20413 VkFormat radiusFormat;
20414 VkDeviceOrHostAddressConstKHR radiusData;
20415 VkDeviceSize radiusStride;
20416 VkIndexType indexType;
20417 VkDeviceOrHostAddressConstKHR indexData;
20418 VkDeviceSize indexStride;
20419} VkAccelerationStructureGeometrySpheresDataNV;
20420
20421
20422
20423// VK_NV_linear_color_attachment is a preprocessor guard. Do not pass it to API calls.
20424#define VK_NV_linear_color_attachment 1
20425#define VK_NV_LINEAR_COLOR_ATTACHMENT_SPEC_VERSION 1
20426#define VK_NV_LINEAR_COLOR_ATTACHMENT_EXTENSION_NAME "VK_NV_linear_color_attachment"
20427typedef struct VkPhysicalDeviceLinearColorAttachmentFeaturesNV {
20428 VkStructureType sType;
20429 void* pNext;
20430 VkBool32 linearColorAttachment;
20431} VkPhysicalDeviceLinearColorAttachmentFeaturesNV;
20432
20433
20434
20435// VK_GOOGLE_surfaceless_query is a preprocessor guard. Do not pass it to API calls.
20436#define VK_GOOGLE_surfaceless_query 1
20437#define VK_GOOGLE_SURFACELESS_QUERY_SPEC_VERSION 2
20438#define VK_GOOGLE_SURFACELESS_QUERY_EXTENSION_NAME "VK_GOOGLE_surfaceless_query"
20439
20440
20441// VK_EXT_image_compression_control_swapchain is a preprocessor guard. Do not pass it to API calls.
20442#define VK_EXT_image_compression_control_swapchain 1
20443#define VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_SPEC_VERSION 1
20444#define VK_EXT_IMAGE_COMPRESSION_CONTROL_SWAPCHAIN_EXTENSION_NAME "VK_EXT_image_compression_control_swapchain"
20445typedef struct VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT {
20446 VkStructureType sType;
20447 void* pNext;
20448 VkBool32 imageCompressionControlSwapchain;
20449} VkPhysicalDeviceImageCompressionControlSwapchainFeaturesEXT;
20450
20451
20452
20453// VK_QCOM_image_processing is a preprocessor guard. Do not pass it to API calls.
20454#define VK_QCOM_image_processing 1
20455#define VK_QCOM_IMAGE_PROCESSING_SPEC_VERSION 1
20456#define VK_QCOM_IMAGE_PROCESSING_EXTENSION_NAME "VK_QCOM_image_processing"
20457typedef struct VkImageViewSampleWeightCreateInfoQCOM {
20458 VkStructureType sType;
20459 const void* pNext;
20460 VkOffset2D filterCenter;
20461 VkExtent2D filterSize;
20462 uint32_t numPhases;
20463} VkImageViewSampleWeightCreateInfoQCOM;
20464
20465typedef struct VkPhysicalDeviceImageProcessingFeaturesQCOM {
20466 VkStructureType sType;
20467 void* pNext;
20468 VkBool32 textureSampleWeighted;
20469 VkBool32 textureBoxFilter;
20470 VkBool32 textureBlockMatch;
20471} VkPhysicalDeviceImageProcessingFeaturesQCOM;
20472
20473typedef struct VkPhysicalDeviceImageProcessingPropertiesQCOM {
20474 VkStructureType sType;
20475 void* pNext;
20476 uint32_t maxWeightFilterPhases;
20477 VkExtent2D maxWeightFilterDimension;
20478 VkExtent2D maxBlockMatchRegion;
20479 VkExtent2D maxBoxFilterBlockSize;
20480} VkPhysicalDeviceImageProcessingPropertiesQCOM;
20481
20482
20483
20484// VK_EXT_nested_command_buffer is a preprocessor guard. Do not pass it to API calls.
20485#define VK_EXT_nested_command_buffer 1
20486#define VK_EXT_NESTED_COMMAND_BUFFER_SPEC_VERSION 1
20487#define VK_EXT_NESTED_COMMAND_BUFFER_EXTENSION_NAME "VK_EXT_nested_command_buffer"
20488typedef struct VkPhysicalDeviceNestedCommandBufferFeaturesEXT {
20489 VkStructureType sType;
20490 void* pNext;
20491 VkBool32 nestedCommandBuffer;
20492 VkBool32 nestedCommandBufferRendering;
20493 VkBool32 nestedCommandBufferSimultaneousUse;
20494} VkPhysicalDeviceNestedCommandBufferFeaturesEXT;
20495
20496typedef struct VkPhysicalDeviceNestedCommandBufferPropertiesEXT {
20497 VkStructureType sType;
20498 void* pNext;
20499 uint32_t maxCommandBufferNestingLevel;
20500} VkPhysicalDeviceNestedCommandBufferPropertiesEXT;
20501
20502
20503
20504// VK_EXT_external_memory_acquire_unmodified is a preprocessor guard. Do not pass it to API calls.
20505#define VK_EXT_external_memory_acquire_unmodified 1
20506#define VK_EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_SPEC_VERSION 1
20507#define VK_EXT_EXTERNAL_MEMORY_ACQUIRE_UNMODIFIED_EXTENSION_NAME "VK_EXT_external_memory_acquire_unmodified"
20508typedef struct VkExternalMemoryAcquireUnmodifiedEXT {
20509 VkStructureType sType;
20510 const void* pNext;
20511 VkBool32 acquireUnmodifiedMemory;
20512} VkExternalMemoryAcquireUnmodifiedEXT;
20513
20514
20515
20516// VK_EXT_extended_dynamic_state3 is a preprocessor guard. Do not pass it to API calls.
20517#define VK_EXT_extended_dynamic_state3 1
20518#define VK_EXT_EXTENDED_DYNAMIC_STATE_3_SPEC_VERSION 2
20519#define VK_EXT_EXTENDED_DYNAMIC_STATE_3_EXTENSION_NAME "VK_EXT_extended_dynamic_state3"
20520typedef struct VkPhysicalDeviceExtendedDynamicState3FeaturesEXT {
20521 VkStructureType sType;
20522 void* pNext;
20523 VkBool32 extendedDynamicState3TessellationDomainOrigin;
20524 VkBool32 extendedDynamicState3DepthClampEnable;
20525 VkBool32 extendedDynamicState3PolygonMode;
20526 VkBool32 extendedDynamicState3RasterizationSamples;
20527 VkBool32 extendedDynamicState3SampleMask;
20528 VkBool32 extendedDynamicState3AlphaToCoverageEnable;
20529 VkBool32 extendedDynamicState3AlphaToOneEnable;
20530 VkBool32 extendedDynamicState3LogicOpEnable;
20531 VkBool32 extendedDynamicState3ColorBlendEnable;
20532 VkBool32 extendedDynamicState3ColorBlendEquation;
20533 VkBool32 extendedDynamicState3ColorWriteMask;
20534 VkBool32 extendedDynamicState3RasterizationStream;
20535 VkBool32 extendedDynamicState3ConservativeRasterizationMode;
20536 VkBool32 extendedDynamicState3ExtraPrimitiveOverestimationSize;
20537 VkBool32 extendedDynamicState3DepthClipEnable;
20538 VkBool32 extendedDynamicState3SampleLocationsEnable;
20539 VkBool32 extendedDynamicState3ColorBlendAdvanced;
20540 VkBool32 extendedDynamicState3ProvokingVertexMode;
20541 VkBool32 extendedDynamicState3LineRasterizationMode;
20542 VkBool32 extendedDynamicState3LineStippleEnable;
20543 VkBool32 extendedDynamicState3DepthClipNegativeOneToOne;
20544 VkBool32 extendedDynamicState3ViewportWScalingEnable;
20545 VkBool32 extendedDynamicState3ViewportSwizzle;
20546 VkBool32 extendedDynamicState3CoverageToColorEnable;
20547 VkBool32 extendedDynamicState3CoverageToColorLocation;
20548 VkBool32 extendedDynamicState3CoverageModulationMode;
20549 VkBool32 extendedDynamicState3CoverageModulationTableEnable;
20550 VkBool32 extendedDynamicState3CoverageModulationTable;
20551 VkBool32 extendedDynamicState3CoverageReductionMode;
20552 VkBool32 extendedDynamicState3RepresentativeFragmentTestEnable;
20553 VkBool32 extendedDynamicState3ShadingRateImageEnable;
20554} VkPhysicalDeviceExtendedDynamicState3FeaturesEXT;
20555
20556typedef struct VkPhysicalDeviceExtendedDynamicState3PropertiesEXT {
20557 VkStructureType sType;
20558 void* pNext;
20559 VkBool32 dynamicPrimitiveTopologyUnrestricted;
20560} VkPhysicalDeviceExtendedDynamicState3PropertiesEXT;
20561
20562typedef struct VkColorBlendEquationEXT {
20563 VkBlendFactor srcColorBlendFactor;
20564 VkBlendFactor dstColorBlendFactor;
20565 VkBlendOp colorBlendOp;
20566 VkBlendFactor srcAlphaBlendFactor;
20567 VkBlendFactor dstAlphaBlendFactor;
20568 VkBlendOp alphaBlendOp;
20569} VkColorBlendEquationEXT;
20570
20571typedef struct VkColorBlendAdvancedEXT {
20572 VkBlendOp advancedBlendOp;
20573 VkBool32 srcPremultiplied;
20574 VkBool32 dstPremultiplied;
20575 VkBlendOverlapEXT blendOverlap;
20576 VkBool32 clampResults;
20577} VkColorBlendAdvancedEXT;
20578
20579typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClampEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthClampEnable);
20580typedef void (VKAPI_PTR *PFN_vkCmdSetPolygonModeEXT)(VkCommandBuffer commandBuffer, VkPolygonMode polygonMode);
20581typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizationSamplesEXT)(VkCommandBuffer commandBuffer, VkSampleCountFlagBits rasterizationSamples);
20582typedef void (VKAPI_PTR *PFN_vkCmdSetSampleMaskEXT)(VkCommandBuffer commandBuffer, VkSampleCountFlagBits samples, const VkSampleMask* pSampleMask);
20583typedef void (VKAPI_PTR *PFN_vkCmdSetAlphaToCoverageEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 alphaToCoverageEnable);
20584typedef void (VKAPI_PTR *PFN_vkCmdSetAlphaToOneEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 alphaToOneEnable);
20585typedef void (VKAPI_PTR *PFN_vkCmdSetLogicOpEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 logicOpEnable);
20586typedef void (VKAPI_PTR *PFN_vkCmdSetColorBlendEnableEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkBool32* pColorBlendEnables);
20587typedef void (VKAPI_PTR *PFN_vkCmdSetColorBlendEquationEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkColorBlendEquationEXT* pColorBlendEquations);
20588typedef void (VKAPI_PTR *PFN_vkCmdSetColorWriteMaskEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkColorComponentFlags* pColorWriteMasks);
20589typedef void (VKAPI_PTR *PFN_vkCmdSetTessellationDomainOriginEXT)(VkCommandBuffer commandBuffer, VkTessellationDomainOrigin domainOrigin);
20590typedef void (VKAPI_PTR *PFN_vkCmdSetRasterizationStreamEXT)(VkCommandBuffer commandBuffer, uint32_t rasterizationStream);
20591typedef void (VKAPI_PTR *PFN_vkCmdSetConservativeRasterizationModeEXT)(VkCommandBuffer commandBuffer, VkConservativeRasterizationModeEXT conservativeRasterizationMode);
20592typedef void (VKAPI_PTR *PFN_vkCmdSetExtraPrimitiveOverestimationSizeEXT)(VkCommandBuffer commandBuffer, float extraPrimitiveOverestimationSize);
20593typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClipEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 depthClipEnable);
20594typedef void (VKAPI_PTR *PFN_vkCmdSetSampleLocationsEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 sampleLocationsEnable);
20595typedef void (VKAPI_PTR *PFN_vkCmdSetColorBlendAdvancedEXT)(VkCommandBuffer commandBuffer, uint32_t firstAttachment, uint32_t attachmentCount, const VkColorBlendAdvancedEXT* pColorBlendAdvanced);
20596typedef void (VKAPI_PTR *PFN_vkCmdSetProvokingVertexModeEXT)(VkCommandBuffer commandBuffer, VkProvokingVertexModeEXT provokingVertexMode);
20597typedef void (VKAPI_PTR *PFN_vkCmdSetLineRasterizationModeEXT)(VkCommandBuffer commandBuffer, VkLineRasterizationModeEXT lineRasterizationMode);
20598typedef void (VKAPI_PTR *PFN_vkCmdSetLineStippleEnableEXT)(VkCommandBuffer commandBuffer, VkBool32 stippledLineEnable);
20599typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClipNegativeOneToOneEXT)(VkCommandBuffer commandBuffer, VkBool32 negativeOneToOne);
20600typedef void (VKAPI_PTR *PFN_vkCmdSetViewportWScalingEnableNV)(VkCommandBuffer commandBuffer, VkBool32 viewportWScalingEnable);
20601typedef void (VKAPI_PTR *PFN_vkCmdSetViewportSwizzleNV)(VkCommandBuffer commandBuffer, uint32_t firstViewport, uint32_t viewportCount, const VkViewportSwizzleNV* pViewportSwizzles);
20602typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageToColorEnableNV)(VkCommandBuffer commandBuffer, VkBool32 coverageToColorEnable);
20603typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageToColorLocationNV)(VkCommandBuffer commandBuffer, uint32_t coverageToColorLocation);
20604typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageModulationModeNV)(VkCommandBuffer commandBuffer, VkCoverageModulationModeNV coverageModulationMode);
20605typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageModulationTableEnableNV)(VkCommandBuffer commandBuffer, VkBool32 coverageModulationTableEnable);
20606typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageModulationTableNV)(VkCommandBuffer commandBuffer, uint32_t coverageModulationTableCount, const float* pCoverageModulationTable);
20607typedef void (VKAPI_PTR *PFN_vkCmdSetShadingRateImageEnableNV)(VkCommandBuffer commandBuffer, VkBool32 shadingRateImageEnable);
20608typedef void (VKAPI_PTR *PFN_vkCmdSetRepresentativeFragmentTestEnableNV)(VkCommandBuffer commandBuffer, VkBool32 representativeFragmentTestEnable);
20609typedef void (VKAPI_PTR *PFN_vkCmdSetCoverageReductionModeNV)(VkCommandBuffer commandBuffer, VkCoverageReductionModeNV coverageReductionMode);
20610
20611#ifndef VK_NO_PROTOTYPES
20612#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20613VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClampEnableEXT(
20614 VkCommandBuffer commandBuffer,
20615 VkBool32 depthClampEnable);
20616#endif
20617
20618#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20619VKAPI_ATTR void VKAPI_CALL vkCmdSetPolygonModeEXT(
20620 VkCommandBuffer commandBuffer,
20621 VkPolygonMode polygonMode);
20622#endif
20623
20624#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20625VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizationSamplesEXT(
20626 VkCommandBuffer commandBuffer,
20627 VkSampleCountFlagBits rasterizationSamples);
20628#endif
20629
20630#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20631VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleMaskEXT(
20632 VkCommandBuffer commandBuffer,
20633 VkSampleCountFlagBits samples,
20634 const VkSampleMask* pSampleMask);
20635#endif
20636
20637#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20638VKAPI_ATTR void VKAPI_CALL vkCmdSetAlphaToCoverageEnableEXT(
20639 VkCommandBuffer commandBuffer,
20640 VkBool32 alphaToCoverageEnable);
20641#endif
20642
20643#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20644VKAPI_ATTR void VKAPI_CALL vkCmdSetAlphaToOneEnableEXT(
20645 VkCommandBuffer commandBuffer,
20646 VkBool32 alphaToOneEnable);
20647#endif
20648
20649#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20650VKAPI_ATTR void VKAPI_CALL vkCmdSetLogicOpEnableEXT(
20651 VkCommandBuffer commandBuffer,
20652 VkBool32 logicOpEnable);
20653#endif
20654
20655#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20656VKAPI_ATTR void VKAPI_CALL vkCmdSetColorBlendEnableEXT(
20657 VkCommandBuffer commandBuffer,
20658 uint32_t firstAttachment,
20659 uint32_t attachmentCount,
20660 const VkBool32* pColorBlendEnables);
20661#endif
20662
20663#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20664VKAPI_ATTR void VKAPI_CALL vkCmdSetColorBlendEquationEXT(
20665 VkCommandBuffer commandBuffer,
20666 uint32_t firstAttachment,
20667 uint32_t attachmentCount,
20668 const VkColorBlendEquationEXT* pColorBlendEquations);
20669#endif
20670
20671#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20672VKAPI_ATTR void VKAPI_CALL vkCmdSetColorWriteMaskEXT(
20673 VkCommandBuffer commandBuffer,
20674 uint32_t firstAttachment,
20675 uint32_t attachmentCount,
20676 const VkColorComponentFlags* pColorWriteMasks);
20677#endif
20678
20679#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20680VKAPI_ATTR void VKAPI_CALL vkCmdSetTessellationDomainOriginEXT(
20681 VkCommandBuffer commandBuffer,
20682 VkTessellationDomainOrigin domainOrigin);
20683#endif
20684
20685#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20686VKAPI_ATTR void VKAPI_CALL vkCmdSetRasterizationStreamEXT(
20687 VkCommandBuffer commandBuffer,
20688 uint32_t rasterizationStream);
20689#endif
20690
20691#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20692VKAPI_ATTR void VKAPI_CALL vkCmdSetConservativeRasterizationModeEXT(
20693 VkCommandBuffer commandBuffer,
20694 VkConservativeRasterizationModeEXT conservativeRasterizationMode);
20695#endif
20696
20697#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20698VKAPI_ATTR void VKAPI_CALL vkCmdSetExtraPrimitiveOverestimationSizeEXT(
20699 VkCommandBuffer commandBuffer,
20700 float extraPrimitiveOverestimationSize);
20701#endif
20702
20703#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20704VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClipEnableEXT(
20705 VkCommandBuffer commandBuffer,
20706 VkBool32 depthClipEnable);
20707#endif
20708
20709#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20710VKAPI_ATTR void VKAPI_CALL vkCmdSetSampleLocationsEnableEXT(
20711 VkCommandBuffer commandBuffer,
20712 VkBool32 sampleLocationsEnable);
20713#endif
20714
20715#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20716VKAPI_ATTR void VKAPI_CALL vkCmdSetColorBlendAdvancedEXT(
20717 VkCommandBuffer commandBuffer,
20718 uint32_t firstAttachment,
20719 uint32_t attachmentCount,
20720 const VkColorBlendAdvancedEXT* pColorBlendAdvanced);
20721#endif
20722
20723#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20724VKAPI_ATTR void VKAPI_CALL vkCmdSetProvokingVertexModeEXT(
20725 VkCommandBuffer commandBuffer,
20726 VkProvokingVertexModeEXT provokingVertexMode);
20727#endif
20728
20729#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20730VKAPI_ATTR void VKAPI_CALL vkCmdSetLineRasterizationModeEXT(
20731 VkCommandBuffer commandBuffer,
20732 VkLineRasterizationModeEXT lineRasterizationMode);
20733#endif
20734
20735#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20736VKAPI_ATTR void VKAPI_CALL vkCmdSetLineStippleEnableEXT(
20737 VkCommandBuffer commandBuffer,
20738 VkBool32 stippledLineEnable);
20739#endif
20740
20741#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20742VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClipNegativeOneToOneEXT(
20743 VkCommandBuffer commandBuffer,
20744 VkBool32 negativeOneToOne);
20745#endif
20746
20747#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20748VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportWScalingEnableNV(
20749 VkCommandBuffer commandBuffer,
20750 VkBool32 viewportWScalingEnable);
20751#endif
20752
20753#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20754VKAPI_ATTR void VKAPI_CALL vkCmdSetViewportSwizzleNV(
20755 VkCommandBuffer commandBuffer,
20756 uint32_t firstViewport,
20757 uint32_t viewportCount,
20758 const VkViewportSwizzleNV* pViewportSwizzles);
20759#endif
20760
20761#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20762VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageToColorEnableNV(
20763 VkCommandBuffer commandBuffer,
20764 VkBool32 coverageToColorEnable);
20765#endif
20766
20767#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20768VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageToColorLocationNV(
20769 VkCommandBuffer commandBuffer,
20770 uint32_t coverageToColorLocation);
20771#endif
20772
20773#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20774VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageModulationModeNV(
20775 VkCommandBuffer commandBuffer,
20776 VkCoverageModulationModeNV coverageModulationMode);
20777#endif
20778
20779#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20780VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageModulationTableEnableNV(
20781 VkCommandBuffer commandBuffer,
20782 VkBool32 coverageModulationTableEnable);
20783#endif
20784
20785#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20786VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageModulationTableNV(
20787 VkCommandBuffer commandBuffer,
20788 uint32_t coverageModulationTableCount,
20789 const float* pCoverageModulationTable);
20790#endif
20791
20792#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20793VKAPI_ATTR void VKAPI_CALL vkCmdSetShadingRateImageEnableNV(
20794 VkCommandBuffer commandBuffer,
20795 VkBool32 shadingRateImageEnable);
20796#endif
20797
20798#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20799VKAPI_ATTR void VKAPI_CALL vkCmdSetRepresentativeFragmentTestEnableNV(
20800 VkCommandBuffer commandBuffer,
20801 VkBool32 representativeFragmentTestEnable);
20802#endif
20803
20804#ifndef VK_ONLY_EXPORTED_PROTOTYPES
20805VKAPI_ATTR void VKAPI_CALL vkCmdSetCoverageReductionModeNV(
20806 VkCommandBuffer commandBuffer,
20807 VkCoverageReductionModeNV coverageReductionMode);
20808#endif
20809#endif
20810
20811
20812// VK_EXT_subpass_merge_feedback is a preprocessor guard. Do not pass it to API calls.
20813#define VK_EXT_subpass_merge_feedback 1
20814#define VK_EXT_SUBPASS_MERGE_FEEDBACK_SPEC_VERSION 2
20815#define VK_EXT_SUBPASS_MERGE_FEEDBACK_EXTENSION_NAME "VK_EXT_subpass_merge_feedback"
20816
20817typedef enum VkSubpassMergeStatusEXT {
20818 VK_SUBPASS_MERGE_STATUS_MERGED_EXT = 0,
20819 VK_SUBPASS_MERGE_STATUS_DISALLOWED_EXT = 1,
20820 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SIDE_EFFECTS_EXT = 2,
20821 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SAMPLES_MISMATCH_EXT = 3,
20822 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_VIEWS_MISMATCH_EXT = 4,
20823 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_ALIASING_EXT = 5,
20824 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPENDENCIES_EXT = 6,
20825 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INCOMPATIBLE_INPUT_ATTACHMENT_EXT = 7,
20826 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_TOO_MANY_ATTACHMENTS_EXT = 8,
20827 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_INSUFFICIENT_STORAGE_EXT = 9,
20828 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_DEPTH_STENCIL_COUNT_EXT = 10,
20829 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_RESOLVE_ATTACHMENT_REUSE_EXT = 11,
20830 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_SINGLE_SUBPASS_EXT = 12,
20831 VK_SUBPASS_MERGE_STATUS_NOT_MERGED_UNSPECIFIED_EXT = 13,
20832 VK_SUBPASS_MERGE_STATUS_MAX_ENUM_EXT = 0x7FFFFFFF
20833} VkSubpassMergeStatusEXT;
20834typedef struct VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT {
20835 VkStructureType sType;
20836 void* pNext;
20837 VkBool32 subpassMergeFeedback;
20838} VkPhysicalDeviceSubpassMergeFeedbackFeaturesEXT;
20839
20840typedef struct VkRenderPassCreationControlEXT {
20841 VkStructureType sType;
20842 const void* pNext;
20843 VkBool32 disallowMerging;
20844} VkRenderPassCreationControlEXT;
20845
20846typedef struct VkRenderPassCreationFeedbackInfoEXT {
20847 uint32_t postMergeSubpassCount;
20848} VkRenderPassCreationFeedbackInfoEXT;
20849
20850typedef struct VkRenderPassCreationFeedbackCreateInfoEXT {
20851 VkStructureType sType;
20852 const void* pNext;
20853 VkRenderPassCreationFeedbackInfoEXT* pRenderPassFeedback;
20854} VkRenderPassCreationFeedbackCreateInfoEXT;
20855
20856typedef struct VkRenderPassSubpassFeedbackInfoEXT {
20857 VkSubpassMergeStatusEXT subpassMergeStatus;
20858 char description[VK_MAX_DESCRIPTION_SIZE];
20859 uint32_t postMergeIndex;
20860} VkRenderPassSubpassFeedbackInfoEXT;
20861
20862typedef struct VkRenderPassSubpassFeedbackCreateInfoEXT {
20863 VkStructureType sType;
20864 const void* pNext;
20865 VkRenderPassSubpassFeedbackInfoEXT* pSubpassFeedback;
20866} VkRenderPassSubpassFeedbackCreateInfoEXT;
20867
20868
20869
20870// VK_LUNARG_direct_driver_loading is a preprocessor guard. Do not pass it to API calls.
20871#define VK_LUNARG_direct_driver_loading 1
20872#define VK_LUNARG_DIRECT_DRIVER_LOADING_SPEC_VERSION 1
20873#define VK_LUNARG_DIRECT_DRIVER_LOADING_EXTENSION_NAME "VK_LUNARG_direct_driver_loading"
20874
20875typedef enum VkDirectDriverLoadingModeLUNARG {
20876 VK_DIRECT_DRIVER_LOADING_MODE_EXCLUSIVE_LUNARG = 0,
20877 VK_DIRECT_DRIVER_LOADING_MODE_INCLUSIVE_LUNARG = 1,
20878 VK_DIRECT_DRIVER_LOADING_MODE_MAX_ENUM_LUNARG = 0x7FFFFFFF
20879} VkDirectDriverLoadingModeLUNARG;
20880typedef VkFlags VkDirectDriverLoadingFlagsLUNARG;
20881typedef PFN_vkVoidFunction (VKAPI_PTR *PFN_vkGetInstanceProcAddrLUNARG)(
20882 VkInstance instance, const char* pName);
20883
20884typedef struct VkDirectDriverLoadingInfoLUNARG {
20885 VkStructureType sType;
20886 void* pNext;
20887 VkDirectDriverLoadingFlagsLUNARG flags;
20888 PFN_vkGetInstanceProcAddrLUNARG pfnGetInstanceProcAddr;
20889} VkDirectDriverLoadingInfoLUNARG;
20890
20891typedef struct VkDirectDriverLoadingListLUNARG {
20892 VkStructureType sType;
20893 const void* pNext;
20894 VkDirectDriverLoadingModeLUNARG mode;
20895 uint32_t driverCount;
20896 const VkDirectDriverLoadingInfoLUNARG* pDrivers;
20897} VkDirectDriverLoadingListLUNARG;
20898
20899
20900
20901// VK_ARM_tensors is a preprocessor guard. Do not pass it to API calls.
20902#define VK_ARM_tensors 1
20903VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkTensorARM)
20904VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkTensorViewARM)
20905#define VK_ARM_TENSORS_SPEC_VERSION 1
20906#define VK_ARM_TENSORS_EXTENSION_NAME "VK_ARM_tensors"
20907
20908typedef enum VkTensorTilingARM {
20909 VK_TENSOR_TILING_OPTIMAL_ARM = 0,
20910 VK_TENSOR_TILING_LINEAR_ARM = 1,
20911 VK_TENSOR_TILING_MAX_ENUM_ARM = 0x7FFFFFFF
20912} VkTensorTilingARM;
20913typedef VkFlags64 VkTensorCreateFlagsARM;
20914
20915// Flag bits for VkTensorCreateFlagBitsARM
20916typedef VkFlags64 VkTensorCreateFlagBitsARM;
20917static const VkTensorCreateFlagBitsARM VK_TENSOR_CREATE_MUTABLE_FORMAT_BIT_ARM = 0x00000001ULL;
20918static const VkTensorCreateFlagBitsARM VK_TENSOR_CREATE_PROTECTED_BIT_ARM = 0x00000002ULL;
20919static const VkTensorCreateFlagBitsARM VK_TENSOR_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_ARM = 0x00000004ULL;
20920
20921typedef VkFlags64 VkTensorViewCreateFlagsARM;
20922
20923// Flag bits for VkTensorViewCreateFlagBitsARM
20924typedef VkFlags64 VkTensorViewCreateFlagBitsARM;
20925static const VkTensorViewCreateFlagBitsARM VK_TENSOR_VIEW_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_ARM = 0x00000001ULL;
20926
20927typedef VkFlags64 VkTensorUsageFlagsARM;
20928
20929// Flag bits for VkTensorUsageFlagBitsARM
20930typedef VkFlags64 VkTensorUsageFlagBitsARM;
20931static const VkTensorUsageFlagBitsARM VK_TENSOR_USAGE_SHADER_BIT_ARM = 0x00000002ULL;
20932static const VkTensorUsageFlagBitsARM VK_TENSOR_USAGE_TRANSFER_SRC_BIT_ARM = 0x00000004ULL;
20933static const VkTensorUsageFlagBitsARM VK_TENSOR_USAGE_TRANSFER_DST_BIT_ARM = 0x00000008ULL;
20934static const VkTensorUsageFlagBitsARM VK_TENSOR_USAGE_IMAGE_ALIASING_BIT_ARM = 0x00000010ULL;
20935static const VkTensorUsageFlagBitsARM VK_TENSOR_USAGE_DATA_GRAPH_BIT_ARM = 0x00000020ULL;
20936
20937typedef struct VkTensorDescriptionARM {
20938 VkStructureType sType;
20939 const void* pNext;
20940 VkTensorTilingARM tiling;
20941 VkFormat format;
20942 uint32_t dimensionCount;
20943 const int64_t* pDimensions;
20944 const int64_t* pStrides;
20945 VkTensorUsageFlagsARM usage;
20946} VkTensorDescriptionARM;
20947
20948typedef struct VkTensorCreateInfoARM {
20949 VkStructureType sType;
20950 const void* pNext;
20951 VkTensorCreateFlagsARM flags;
20952 const VkTensorDescriptionARM* pDescription;
20953 VkSharingMode sharingMode;
20954 uint32_t queueFamilyIndexCount;
20955 const uint32_t* pQueueFamilyIndices;
20956} VkTensorCreateInfoARM;
20957
20958typedef struct VkTensorViewCreateInfoARM {
20959 VkStructureType sType;
20960 const void* pNext;
20961 VkTensorViewCreateFlagsARM flags;
20962 VkTensorARM tensor;
20963 VkFormat format;
20964} VkTensorViewCreateInfoARM;
20965
20966typedef struct VkTensorMemoryRequirementsInfoARM {
20967 VkStructureType sType;
20968 const void* pNext;
20969 VkTensorARM tensor;
20970} VkTensorMemoryRequirementsInfoARM;
20971
20972typedef struct VkBindTensorMemoryInfoARM {
20973 VkStructureType sType;
20974 const void* pNext;
20975 VkTensorARM tensor;
20976 VkDeviceMemory memory;
20977 VkDeviceSize memoryOffset;
20978} VkBindTensorMemoryInfoARM;
20979
20980typedef struct VkWriteDescriptorSetTensorARM {
20981 VkStructureType sType;
20982 const void* pNext;
20983 uint32_t tensorViewCount;
20984 const VkTensorViewARM* pTensorViews;
20985} VkWriteDescriptorSetTensorARM;
20986
20987typedef struct VkTensorFormatPropertiesARM {
20988 VkStructureType sType;
20989 const void* pNext;
20990 VkFormatFeatureFlags2 optimalTilingTensorFeatures;
20991 VkFormatFeatureFlags2 linearTilingTensorFeatures;
20992} VkTensorFormatPropertiesARM;
20993
20994typedef struct VkPhysicalDeviceTensorPropertiesARM {
20995 VkStructureType sType;
20996 void* pNext;
20997 uint32_t maxTensorDimensionCount;
20998 uint64_t maxTensorElements;
20999 uint64_t maxPerDimensionTensorElements;
21000 int64_t maxTensorStride;
21001 uint64_t maxTensorSize;
21002 uint32_t maxTensorShaderAccessArrayLength;
21003 uint32_t maxTensorShaderAccessSize;
21004 uint32_t maxDescriptorSetStorageTensors;
21005 uint32_t maxPerStageDescriptorSetStorageTensors;
21006 uint32_t maxDescriptorSetUpdateAfterBindStorageTensors;
21007 uint32_t maxPerStageDescriptorUpdateAfterBindStorageTensors;
21008 VkBool32 shaderStorageTensorArrayNonUniformIndexingNative;
21009 VkShaderStageFlags shaderTensorSupportedStages;
21010} VkPhysicalDeviceTensorPropertiesARM;
21011
21012typedef struct VkTensorMemoryBarrierARM {
21013 VkStructureType sType;
21014 const void* pNext;
21015 VkPipelineStageFlags2 srcStageMask;
21016 VkAccessFlags2 srcAccessMask;
21017 VkPipelineStageFlags2 dstStageMask;
21018 VkAccessFlags2 dstAccessMask;
21019 uint32_t srcQueueFamilyIndex;
21020 uint32_t dstQueueFamilyIndex;
21021 VkTensorARM tensor;
21022} VkTensorMemoryBarrierARM;
21023
21024typedef struct VkTensorDependencyInfoARM {
21025 VkStructureType sType;
21026 const void* pNext;
21027 uint32_t tensorMemoryBarrierCount;
21028 const VkTensorMemoryBarrierARM* pTensorMemoryBarriers;
21029} VkTensorDependencyInfoARM;
21030
21031typedef struct VkPhysicalDeviceTensorFeaturesARM {
21032 VkStructureType sType;
21033 void* pNext;
21034 VkBool32 tensorNonPacked;
21035 VkBool32 shaderTensorAccess;
21036 VkBool32 shaderStorageTensorArrayDynamicIndexing;
21037 VkBool32 shaderStorageTensorArrayNonUniformIndexing;
21038 VkBool32 descriptorBindingStorageTensorUpdateAfterBind;
21039 VkBool32 tensors;
21040} VkPhysicalDeviceTensorFeaturesARM;
21041
21042typedef struct VkDeviceTensorMemoryRequirementsARM {
21043 VkStructureType sType;
21044 const void* pNext;
21045 const VkTensorCreateInfoARM* pCreateInfo;
21046} VkDeviceTensorMemoryRequirementsARM;
21047
21048typedef struct VkTensorCopyARM {
21049 VkStructureType sType;
21050 const void* pNext;
21051 uint32_t dimensionCount;
21052 const uint64_t* pSrcOffset;
21053 const uint64_t* pDstOffset;
21054 const uint64_t* pExtent;
21055} VkTensorCopyARM;
21056
21057typedef struct VkCopyTensorInfoARM {
21058 VkStructureType sType;
21059 const void* pNext;
21060 VkTensorARM srcTensor;
21061 VkTensorARM dstTensor;
21062 uint32_t regionCount;
21063 const VkTensorCopyARM* pRegions;
21064} VkCopyTensorInfoARM;
21065
21066typedef struct VkMemoryDedicatedAllocateInfoTensorARM {
21067 VkStructureType sType;
21068 const void* pNext;
21069 VkTensorARM tensor;
21070} VkMemoryDedicatedAllocateInfoTensorARM;
21071
21072typedef struct VkPhysicalDeviceExternalTensorInfoARM {
21073 VkStructureType sType;
21074 const void* pNext;
21075 VkTensorCreateFlagsARM flags;
21076 const VkTensorDescriptionARM* pDescription;
21077 VkExternalMemoryHandleTypeFlagBits handleType;
21078} VkPhysicalDeviceExternalTensorInfoARM;
21079
21080typedef struct VkExternalTensorPropertiesARM {
21081 VkStructureType sType;
21082 const void* pNext;
21083 VkExternalMemoryProperties externalMemoryProperties;
21084} VkExternalTensorPropertiesARM;
21085
21086typedef struct VkExternalMemoryTensorCreateInfoARM {
21087 VkStructureType sType;
21088 const void* pNext;
21089 VkExternalMemoryHandleTypeFlags handleTypes;
21090} VkExternalMemoryTensorCreateInfoARM;
21091
21092typedef struct VkPhysicalDeviceDescriptorBufferTensorFeaturesARM {
21093 VkStructureType sType;
21094 void* pNext;
21095 VkBool32 descriptorBufferTensorDescriptors;
21096} VkPhysicalDeviceDescriptorBufferTensorFeaturesARM;
21097
21098typedef struct VkPhysicalDeviceDescriptorBufferTensorPropertiesARM {
21099 VkStructureType sType;
21100 void* pNext;
21101 size_t tensorCaptureReplayDescriptorDataSize;
21102 size_t tensorViewCaptureReplayDescriptorDataSize;
21103 size_t tensorDescriptorSize;
21104} VkPhysicalDeviceDescriptorBufferTensorPropertiesARM;
21105
21106typedef struct VkDescriptorGetTensorInfoARM {
21107 VkStructureType sType;
21108 const void* pNext;
21109 VkTensorViewARM tensorView;
21110} VkDescriptorGetTensorInfoARM;
21111
21112typedef struct VkTensorCaptureDescriptorDataInfoARM {
21113 VkStructureType sType;
21114 const void* pNext;
21115 VkTensorARM tensor;
21116} VkTensorCaptureDescriptorDataInfoARM;
21117
21118typedef struct VkTensorViewCaptureDescriptorDataInfoARM {
21119 VkStructureType sType;
21120 const void* pNext;
21121 VkTensorViewARM tensorView;
21122} VkTensorViewCaptureDescriptorDataInfoARM;
21123
21124typedef struct VkFrameBoundaryTensorsARM {
21125 VkStructureType sType;
21126 const void* pNext;
21127 uint32_t tensorCount;
21128 const VkTensorARM* pTensors;
21129} VkFrameBoundaryTensorsARM;
21130
21131typedef VkResult (VKAPI_PTR *PFN_vkCreateTensorARM)(VkDevice device, const VkTensorCreateInfoARM* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkTensorARM* pTensor);
21132typedef void (VKAPI_PTR *PFN_vkDestroyTensorARM)(VkDevice device, VkTensorARM tensor, const VkAllocationCallbacks* pAllocator);
21133typedef VkResult (VKAPI_PTR *PFN_vkCreateTensorViewARM)(VkDevice device, const VkTensorViewCreateInfoARM* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkTensorViewARM* pView);
21134typedef void (VKAPI_PTR *PFN_vkDestroyTensorViewARM)(VkDevice device, VkTensorViewARM tensorView, const VkAllocationCallbacks* pAllocator);
21135typedef void (VKAPI_PTR *PFN_vkGetTensorMemoryRequirementsARM)(VkDevice device, const VkTensorMemoryRequirementsInfoARM* pInfo, VkMemoryRequirements2* pMemoryRequirements);
21136typedef VkResult (VKAPI_PTR *PFN_vkBindTensorMemoryARM)(VkDevice device, uint32_t bindInfoCount, const VkBindTensorMemoryInfoARM* pBindInfos);
21137typedef void (VKAPI_PTR *PFN_vkGetDeviceTensorMemoryRequirementsARM)(VkDevice device, const VkDeviceTensorMemoryRequirementsARM* pInfo, VkMemoryRequirements2* pMemoryRequirements);
21138typedef void (VKAPI_PTR *PFN_vkCmdCopyTensorARM)(VkCommandBuffer commandBuffer, const VkCopyTensorInfoARM* pCopyTensorInfo);
21139typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceExternalTensorPropertiesARM)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceExternalTensorInfoARM* pExternalTensorInfo, VkExternalTensorPropertiesARM* pExternalTensorProperties);
21140typedef VkResult (VKAPI_PTR *PFN_vkGetTensorOpaqueCaptureDescriptorDataARM)(VkDevice device, const VkTensorCaptureDescriptorDataInfoARM* pInfo, void* pData);
21141typedef VkResult (VKAPI_PTR *PFN_vkGetTensorViewOpaqueCaptureDescriptorDataARM)(VkDevice device, const VkTensorViewCaptureDescriptorDataInfoARM* pInfo, void* pData);
21142
21143#ifndef VK_NO_PROTOTYPES
21144#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21145VKAPI_ATTR VkResult VKAPI_CALL vkCreateTensorARM(
21146 VkDevice device,
21147 const VkTensorCreateInfoARM* pCreateInfo,
21148 const VkAllocationCallbacks* pAllocator,
21149 VkTensorARM* pTensor);
21150#endif
21151
21152#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21153VKAPI_ATTR void VKAPI_CALL vkDestroyTensorARM(
21154 VkDevice device,
21155 VkTensorARM tensor,
21156 const VkAllocationCallbacks* pAllocator);
21157#endif
21158
21159#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21160VKAPI_ATTR VkResult VKAPI_CALL vkCreateTensorViewARM(
21161 VkDevice device,
21162 const VkTensorViewCreateInfoARM* pCreateInfo,
21163 const VkAllocationCallbacks* pAllocator,
21164 VkTensorViewARM* pView);
21165#endif
21166
21167#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21168VKAPI_ATTR void VKAPI_CALL vkDestroyTensorViewARM(
21169 VkDevice device,
21170 VkTensorViewARM tensorView,
21171 const VkAllocationCallbacks* pAllocator);
21172#endif
21173
21174#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21175VKAPI_ATTR void VKAPI_CALL vkGetTensorMemoryRequirementsARM(
21176 VkDevice device,
21177 const VkTensorMemoryRequirementsInfoARM* pInfo,
21178 VkMemoryRequirements2* pMemoryRequirements);
21179#endif
21180
21181#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21182VKAPI_ATTR VkResult VKAPI_CALL vkBindTensorMemoryARM(
21183 VkDevice device,
21184 uint32_t bindInfoCount,
21185 const VkBindTensorMemoryInfoARM* pBindInfos);
21186#endif
21187
21188#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21189VKAPI_ATTR void VKAPI_CALL vkGetDeviceTensorMemoryRequirementsARM(
21190 VkDevice device,
21191 const VkDeviceTensorMemoryRequirementsARM* pInfo,
21192 VkMemoryRequirements2* pMemoryRequirements);
21193#endif
21194
21195#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21196VKAPI_ATTR void VKAPI_CALL vkCmdCopyTensorARM(
21197 VkCommandBuffer commandBuffer,
21198 const VkCopyTensorInfoARM* pCopyTensorInfo);
21199#endif
21200
21201#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21202VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceExternalTensorPropertiesARM(
21203 VkPhysicalDevice physicalDevice,
21204 const VkPhysicalDeviceExternalTensorInfoARM* pExternalTensorInfo,
21205 VkExternalTensorPropertiesARM* pExternalTensorProperties);
21206#endif
21207
21208#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21209VKAPI_ATTR VkResult VKAPI_CALL vkGetTensorOpaqueCaptureDescriptorDataARM(
21210 VkDevice device,
21211 const VkTensorCaptureDescriptorDataInfoARM* pInfo,
21212 void* pData);
21213#endif
21214
21215#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21216VKAPI_ATTR VkResult VKAPI_CALL vkGetTensorViewOpaqueCaptureDescriptorDataARM(
21217 VkDevice device,
21218 const VkTensorViewCaptureDescriptorDataInfoARM* pInfo,
21219 void* pData);
21220#endif
21221#endif
21222
21223
21224// VK_EXT_shader_module_identifier is a preprocessor guard. Do not pass it to API calls.
21225#define VK_EXT_shader_module_identifier 1
21226#define VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT 32U
21227#define VK_EXT_SHADER_MODULE_IDENTIFIER_SPEC_VERSION 1
21228#define VK_EXT_SHADER_MODULE_IDENTIFIER_EXTENSION_NAME "VK_EXT_shader_module_identifier"
21229typedef struct VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT {
21230 VkStructureType sType;
21231 void* pNext;
21232 VkBool32 shaderModuleIdentifier;
21233} VkPhysicalDeviceShaderModuleIdentifierFeaturesEXT;
21234
21235typedef struct VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT {
21236 VkStructureType sType;
21237 void* pNext;
21238 uint8_t shaderModuleIdentifierAlgorithmUUID[VK_UUID_SIZE];
21239} VkPhysicalDeviceShaderModuleIdentifierPropertiesEXT;
21240
21241typedef struct VkPipelineShaderStageModuleIdentifierCreateInfoEXT {
21242 VkStructureType sType;
21243 const void* pNext;
21244 uint32_t identifierSize;
21245 const uint8_t* pIdentifier;
21246} VkPipelineShaderStageModuleIdentifierCreateInfoEXT;
21247
21248typedef struct VkShaderModuleIdentifierEXT {
21249 VkStructureType sType;
21250 void* pNext;
21251 uint32_t identifierSize;
21252 uint8_t identifier[VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT];
21253} VkShaderModuleIdentifierEXT;
21254
21255typedef void (VKAPI_PTR *PFN_vkGetShaderModuleIdentifierEXT)(VkDevice device, VkShaderModule shaderModule, VkShaderModuleIdentifierEXT* pIdentifier);
21256typedef void (VKAPI_PTR *PFN_vkGetShaderModuleCreateInfoIdentifierEXT)(VkDevice device, const VkShaderModuleCreateInfo* pCreateInfo, VkShaderModuleIdentifierEXT* pIdentifier);
21257
21258#ifndef VK_NO_PROTOTYPES
21259#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21260VKAPI_ATTR void VKAPI_CALL vkGetShaderModuleIdentifierEXT(
21261 VkDevice device,
21262 VkShaderModule shaderModule,
21263 VkShaderModuleIdentifierEXT* pIdentifier);
21264#endif
21265
21266#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21267VKAPI_ATTR void VKAPI_CALL vkGetShaderModuleCreateInfoIdentifierEXT(
21268 VkDevice device,
21269 const VkShaderModuleCreateInfo* pCreateInfo,
21270 VkShaderModuleIdentifierEXT* pIdentifier);
21271#endif
21272#endif
21273
21274
21275// VK_EXT_rasterization_order_attachment_access is a preprocessor guard. Do not pass it to API calls.
21276#define VK_EXT_rasterization_order_attachment_access 1
21277#define VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_SPEC_VERSION 1
21278#define VK_EXT_RASTERIZATION_ORDER_ATTACHMENT_ACCESS_EXTENSION_NAME "VK_EXT_rasterization_order_attachment_access"
21279
21280
21281// VK_NV_optical_flow is a preprocessor guard. Do not pass it to API calls.
21282#define VK_NV_optical_flow 1
21283VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkOpticalFlowSessionNV)
21284#define VK_NV_OPTICAL_FLOW_SPEC_VERSION 1
21285#define VK_NV_OPTICAL_FLOW_EXTENSION_NAME "VK_NV_optical_flow"
21286
21287typedef enum VkOpticalFlowPerformanceLevelNV {
21288 VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_UNKNOWN_NV = 0,
21289 VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_SLOW_NV = 1,
21290 VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MEDIUM_NV = 2,
21291 VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_FAST_NV = 3,
21292 VK_OPTICAL_FLOW_PERFORMANCE_LEVEL_MAX_ENUM_NV = 0x7FFFFFFF
21293} VkOpticalFlowPerformanceLevelNV;
21294
21295typedef enum VkOpticalFlowSessionBindingPointNV {
21296 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_UNKNOWN_NV = 0,
21297 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_INPUT_NV = 1,
21298 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_REFERENCE_NV = 2,
21299 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_HINT_NV = 3,
21300 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_FLOW_VECTOR_NV = 4,
21301 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_FLOW_VECTOR_NV = 5,
21302 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_COST_NV = 6,
21303 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_BACKWARD_COST_NV = 7,
21304 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_GLOBAL_FLOW_NV = 8,
21305 VK_OPTICAL_FLOW_SESSION_BINDING_POINT_MAX_ENUM_NV = 0x7FFFFFFF
21306} VkOpticalFlowSessionBindingPointNV;
21307
21308typedef enum VkOpticalFlowGridSizeFlagBitsNV {
21309 VK_OPTICAL_FLOW_GRID_SIZE_UNKNOWN_NV = 0,
21310 VK_OPTICAL_FLOW_GRID_SIZE_1X1_BIT_NV = 0x00000001,
21311 VK_OPTICAL_FLOW_GRID_SIZE_2X2_BIT_NV = 0x00000002,
21312 VK_OPTICAL_FLOW_GRID_SIZE_4X4_BIT_NV = 0x00000004,
21313 VK_OPTICAL_FLOW_GRID_SIZE_8X8_BIT_NV = 0x00000008,
21314 VK_OPTICAL_FLOW_GRID_SIZE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
21315} VkOpticalFlowGridSizeFlagBitsNV;
21316typedef VkFlags VkOpticalFlowGridSizeFlagsNV;
21317
21318typedef enum VkOpticalFlowUsageFlagBitsNV {
21319 VK_OPTICAL_FLOW_USAGE_UNKNOWN_NV = 0,
21320 VK_OPTICAL_FLOW_USAGE_INPUT_BIT_NV = 0x00000001,
21321 VK_OPTICAL_FLOW_USAGE_OUTPUT_BIT_NV = 0x00000002,
21322 VK_OPTICAL_FLOW_USAGE_HINT_BIT_NV = 0x00000004,
21323 VK_OPTICAL_FLOW_USAGE_COST_BIT_NV = 0x00000008,
21324 VK_OPTICAL_FLOW_USAGE_GLOBAL_FLOW_BIT_NV = 0x00000010,
21325 VK_OPTICAL_FLOW_USAGE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
21326} VkOpticalFlowUsageFlagBitsNV;
21327typedef VkFlags VkOpticalFlowUsageFlagsNV;
21328
21329typedef enum VkOpticalFlowSessionCreateFlagBitsNV {
21330 VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_HINT_BIT_NV = 0x00000001,
21331 VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_COST_BIT_NV = 0x00000002,
21332 VK_OPTICAL_FLOW_SESSION_CREATE_ENABLE_GLOBAL_FLOW_BIT_NV = 0x00000004,
21333 VK_OPTICAL_FLOW_SESSION_CREATE_ALLOW_REGIONS_BIT_NV = 0x00000008,
21334 VK_OPTICAL_FLOW_SESSION_CREATE_BOTH_DIRECTIONS_BIT_NV = 0x00000010,
21335 VK_OPTICAL_FLOW_SESSION_CREATE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
21336} VkOpticalFlowSessionCreateFlagBitsNV;
21337typedef VkFlags VkOpticalFlowSessionCreateFlagsNV;
21338
21339typedef enum VkOpticalFlowExecuteFlagBitsNV {
21340 VK_OPTICAL_FLOW_EXECUTE_DISABLE_TEMPORAL_HINTS_BIT_NV = 0x00000001,
21341 VK_OPTICAL_FLOW_EXECUTE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
21342} VkOpticalFlowExecuteFlagBitsNV;
21343typedef VkFlags VkOpticalFlowExecuteFlagsNV;
21344typedef struct VkPhysicalDeviceOpticalFlowFeaturesNV {
21345 VkStructureType sType;
21346 void* pNext;
21347 VkBool32 opticalFlow;
21348} VkPhysicalDeviceOpticalFlowFeaturesNV;
21349
21350typedef struct VkPhysicalDeviceOpticalFlowPropertiesNV {
21351 VkStructureType sType;
21352 void* pNext;
21353 VkOpticalFlowGridSizeFlagsNV supportedOutputGridSizes;
21354 VkOpticalFlowGridSizeFlagsNV supportedHintGridSizes;
21355 VkBool32 hintSupported;
21356 VkBool32 costSupported;
21357 VkBool32 bidirectionalFlowSupported;
21358 VkBool32 globalFlowSupported;
21359 uint32_t minWidth;
21360 uint32_t minHeight;
21361 uint32_t maxWidth;
21362 uint32_t maxHeight;
21363 uint32_t maxNumRegionsOfInterest;
21364} VkPhysicalDeviceOpticalFlowPropertiesNV;
21365
21366typedef struct VkOpticalFlowImageFormatInfoNV {
21367 VkStructureType sType;
21368 const void* pNext;
21369 VkOpticalFlowUsageFlagsNV usage;
21370} VkOpticalFlowImageFormatInfoNV;
21371
21372typedef struct VkOpticalFlowImageFormatPropertiesNV {
21373 VkStructureType sType;
21374 const void* pNext;
21375 VkFormat format;
21376} VkOpticalFlowImageFormatPropertiesNV;
21377
21378typedef struct VkOpticalFlowSessionCreateInfoNV {
21379 VkStructureType sType;
21380 void* pNext;
21381 uint32_t width;
21382 uint32_t height;
21383 VkFormat imageFormat;
21384 VkFormat flowVectorFormat;
21385 VkFormat costFormat;
21386 VkOpticalFlowGridSizeFlagsNV outputGridSize;
21387 VkOpticalFlowGridSizeFlagsNV hintGridSize;
21388 VkOpticalFlowPerformanceLevelNV performanceLevel;
21389 VkOpticalFlowSessionCreateFlagsNV flags;
21390} VkOpticalFlowSessionCreateInfoNV;
21391
21392typedef struct VkOpticalFlowSessionCreatePrivateDataInfoNV {
21393 VkStructureType sType;
21394 void* pNext;
21395 uint32_t id;
21396 uint32_t size;
21397 const void* pPrivateData;
21398} VkOpticalFlowSessionCreatePrivateDataInfoNV;
21399
21400typedef struct VkOpticalFlowExecuteInfoNV {
21401 VkStructureType sType;
21402 void* pNext;
21403 VkOpticalFlowExecuteFlagsNV flags;
21404 uint32_t regionCount;
21405 const VkRect2D* pRegions;
21406} VkOpticalFlowExecuteInfoNV;
21407
21408typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceOpticalFlowImageFormatsNV)(VkPhysicalDevice physicalDevice, const VkOpticalFlowImageFormatInfoNV* pOpticalFlowImageFormatInfo, uint32_t* pFormatCount, VkOpticalFlowImageFormatPropertiesNV* pImageFormatProperties);
21409typedef VkResult (VKAPI_PTR *PFN_vkCreateOpticalFlowSessionNV)(VkDevice device, const VkOpticalFlowSessionCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkOpticalFlowSessionNV* pSession);
21410typedef void (VKAPI_PTR *PFN_vkDestroyOpticalFlowSessionNV)(VkDevice device, VkOpticalFlowSessionNV session, const VkAllocationCallbacks* pAllocator);
21411typedef VkResult (VKAPI_PTR *PFN_vkBindOpticalFlowSessionImageNV)(VkDevice device, VkOpticalFlowSessionNV session, VkOpticalFlowSessionBindingPointNV bindingPoint, VkImageView view, VkImageLayout layout);
21412typedef void (VKAPI_PTR *PFN_vkCmdOpticalFlowExecuteNV)(VkCommandBuffer commandBuffer, VkOpticalFlowSessionNV session, const VkOpticalFlowExecuteInfoNV* pExecuteInfo);
21413
21414#ifndef VK_NO_PROTOTYPES
21415#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21416VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceOpticalFlowImageFormatsNV(
21417 VkPhysicalDevice physicalDevice,
21418 const VkOpticalFlowImageFormatInfoNV* pOpticalFlowImageFormatInfo,
21419 uint32_t* pFormatCount,
21420 VkOpticalFlowImageFormatPropertiesNV* pImageFormatProperties);
21421#endif
21422
21423#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21424VKAPI_ATTR VkResult VKAPI_CALL vkCreateOpticalFlowSessionNV(
21425 VkDevice device,
21426 const VkOpticalFlowSessionCreateInfoNV* pCreateInfo,
21427 const VkAllocationCallbacks* pAllocator,
21428 VkOpticalFlowSessionNV* pSession);
21429#endif
21430
21431#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21432VKAPI_ATTR void VKAPI_CALL vkDestroyOpticalFlowSessionNV(
21433 VkDevice device,
21434 VkOpticalFlowSessionNV session,
21435 const VkAllocationCallbacks* pAllocator);
21436#endif
21437
21438#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21439VKAPI_ATTR VkResult VKAPI_CALL vkBindOpticalFlowSessionImageNV(
21440 VkDevice device,
21441 VkOpticalFlowSessionNV session,
21442 VkOpticalFlowSessionBindingPointNV bindingPoint,
21443 VkImageView view,
21444 VkImageLayout layout);
21445#endif
21446
21447#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21448VKAPI_ATTR void VKAPI_CALL vkCmdOpticalFlowExecuteNV(
21449 VkCommandBuffer commandBuffer,
21450 VkOpticalFlowSessionNV session,
21451 const VkOpticalFlowExecuteInfoNV* pExecuteInfo);
21452#endif
21453#endif
21454
21455
21456// VK_EXT_legacy_dithering is a preprocessor guard. Do not pass it to API calls.
21457#define VK_EXT_legacy_dithering 1
21458#define VK_EXT_LEGACY_DITHERING_SPEC_VERSION 2
21459#define VK_EXT_LEGACY_DITHERING_EXTENSION_NAME "VK_EXT_legacy_dithering"
21460typedef struct VkPhysicalDeviceLegacyDitheringFeaturesEXT {
21461 VkStructureType sType;
21462 void* pNext;
21463 VkBool32 legacyDithering;
21464} VkPhysicalDeviceLegacyDitheringFeaturesEXT;
21465
21466
21467
21468// VK_EXT_pipeline_protected_access is a preprocessor guard. Do not pass it to API calls.
21469#define VK_EXT_pipeline_protected_access 1
21470#define VK_EXT_PIPELINE_PROTECTED_ACCESS_SPEC_VERSION 1
21471#define VK_EXT_PIPELINE_PROTECTED_ACCESS_EXTENSION_NAME "VK_EXT_pipeline_protected_access"
21472typedef VkPhysicalDevicePipelineProtectedAccessFeatures VkPhysicalDevicePipelineProtectedAccessFeaturesEXT;
21473
21474
21475
21476// VK_AMD_anti_lag is a preprocessor guard. Do not pass it to API calls.
21477#define VK_AMD_anti_lag 1
21478#define VK_AMD_ANTI_LAG_SPEC_VERSION 1
21479#define VK_AMD_ANTI_LAG_EXTENSION_NAME "VK_AMD_anti_lag"
21480
21481typedef enum VkAntiLagModeAMD {
21482 VK_ANTI_LAG_MODE_DRIVER_CONTROL_AMD = 0,
21483 VK_ANTI_LAG_MODE_ON_AMD = 1,
21484 VK_ANTI_LAG_MODE_OFF_AMD = 2,
21485 VK_ANTI_LAG_MODE_MAX_ENUM_AMD = 0x7FFFFFFF
21486} VkAntiLagModeAMD;
21487
21488typedef enum VkAntiLagStageAMD {
21489 VK_ANTI_LAG_STAGE_INPUT_AMD = 0,
21490 VK_ANTI_LAG_STAGE_PRESENT_AMD = 1,
21491 VK_ANTI_LAG_STAGE_MAX_ENUM_AMD = 0x7FFFFFFF
21492} VkAntiLagStageAMD;
21493typedef struct VkPhysicalDeviceAntiLagFeaturesAMD {
21494 VkStructureType sType;
21495 void* pNext;
21496 VkBool32 antiLag;
21497} VkPhysicalDeviceAntiLagFeaturesAMD;
21498
21499typedef struct VkAntiLagPresentationInfoAMD {
21500 VkStructureType sType;
21501 void* pNext;
21502 VkAntiLagStageAMD stage;
21503 uint64_t frameIndex;
21504} VkAntiLagPresentationInfoAMD;
21505
21506typedef struct VkAntiLagDataAMD {
21507 VkStructureType sType;
21508 const void* pNext;
21509 VkAntiLagModeAMD mode;
21510 uint32_t maxFPS;
21511 const VkAntiLagPresentationInfoAMD* pPresentationInfo;
21512} VkAntiLagDataAMD;
21513
21514typedef void (VKAPI_PTR *PFN_vkAntiLagUpdateAMD)(VkDevice device, const VkAntiLagDataAMD* pData);
21515
21516#ifndef VK_NO_PROTOTYPES
21517#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21518VKAPI_ATTR void VKAPI_CALL vkAntiLagUpdateAMD(
21519 VkDevice device,
21520 const VkAntiLagDataAMD* pData);
21521#endif
21522#endif
21523
21524
21525// VK_EXT_shader_object is a preprocessor guard. Do not pass it to API calls.
21526#define VK_EXT_shader_object 1
21527VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkShaderEXT)
21528#define VK_EXT_SHADER_OBJECT_SPEC_VERSION 1
21529#define VK_EXT_SHADER_OBJECT_EXTENSION_NAME "VK_EXT_shader_object"
21530
21531typedef enum VkShaderCodeTypeEXT {
21532 VK_SHADER_CODE_TYPE_BINARY_EXT = 0,
21533 VK_SHADER_CODE_TYPE_SPIRV_EXT = 1,
21534 VK_SHADER_CODE_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
21535} VkShaderCodeTypeEXT;
21536
21537typedef enum VkDepthClampModeEXT {
21538 VK_DEPTH_CLAMP_MODE_VIEWPORT_RANGE_EXT = 0,
21539 VK_DEPTH_CLAMP_MODE_USER_DEFINED_RANGE_EXT = 1,
21540 VK_DEPTH_CLAMP_MODE_MAX_ENUM_EXT = 0x7FFFFFFF
21541} VkDepthClampModeEXT;
21542
21543typedef enum VkShaderCreateFlagBitsEXT {
21544 VK_SHADER_CREATE_LINK_STAGE_BIT_EXT = 0x00000001,
21545 VK_SHADER_CREATE_ALLOW_VARYING_SUBGROUP_SIZE_BIT_EXT = 0x00000002,
21546 VK_SHADER_CREATE_REQUIRE_FULL_SUBGROUPS_BIT_EXT = 0x00000004,
21547 VK_SHADER_CREATE_NO_TASK_SHADER_BIT_EXT = 0x00000008,
21548 VK_SHADER_CREATE_DISPATCH_BASE_BIT_EXT = 0x00000010,
21549 VK_SHADER_CREATE_FRAGMENT_SHADING_RATE_ATTACHMENT_BIT_EXT = 0x00000020,
21550 VK_SHADER_CREATE_FRAGMENT_DENSITY_MAP_ATTACHMENT_BIT_EXT = 0x00000040,
21551 VK_SHADER_CREATE_INDIRECT_BINDABLE_BIT_EXT = 0x00000080,
21552 VK_SHADER_CREATE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
21553} VkShaderCreateFlagBitsEXT;
21554typedef VkFlags VkShaderCreateFlagsEXT;
21555typedef struct VkPhysicalDeviceShaderObjectFeaturesEXT {
21556 VkStructureType sType;
21557 void* pNext;
21558 VkBool32 shaderObject;
21559} VkPhysicalDeviceShaderObjectFeaturesEXT;
21560
21561typedef struct VkPhysicalDeviceShaderObjectPropertiesEXT {
21562 VkStructureType sType;
21563 void* pNext;
21564 uint8_t shaderBinaryUUID[VK_UUID_SIZE];
21565 uint32_t shaderBinaryVersion;
21566} VkPhysicalDeviceShaderObjectPropertiesEXT;
21567
21568typedef struct VkShaderCreateInfoEXT {
21569 VkStructureType sType;
21570 const void* pNext;
21571 VkShaderCreateFlagsEXT flags;
21572 VkShaderStageFlagBits stage;
21573 VkShaderStageFlags nextStage;
21574 VkShaderCodeTypeEXT codeType;
21575 size_t codeSize;
21576 const void* pCode;
21577 const char* pName;
21578 uint32_t setLayoutCount;
21579 const VkDescriptorSetLayout* pSetLayouts;
21580 uint32_t pushConstantRangeCount;
21581 const VkPushConstantRange* pPushConstantRanges;
21582 const VkSpecializationInfo* pSpecializationInfo;
21583} VkShaderCreateInfoEXT;
21584
21585typedef VkPipelineShaderStageRequiredSubgroupSizeCreateInfo VkShaderRequiredSubgroupSizeCreateInfoEXT;
21586
21587typedef struct VkDepthClampRangeEXT {
21588 float minDepthClamp;
21589 float maxDepthClamp;
21590} VkDepthClampRangeEXT;
21591
21592typedef VkResult (VKAPI_PTR *PFN_vkCreateShadersEXT)(VkDevice device, uint32_t createInfoCount, const VkShaderCreateInfoEXT* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkShaderEXT* pShaders);
21593typedef void (VKAPI_PTR *PFN_vkDestroyShaderEXT)(VkDevice device, VkShaderEXT shader, const VkAllocationCallbacks* pAllocator);
21594typedef VkResult (VKAPI_PTR *PFN_vkGetShaderBinaryDataEXT)(VkDevice device, VkShaderEXT shader, size_t* pDataSize, void* pData);
21595typedef void (VKAPI_PTR *PFN_vkCmdBindShadersEXT)(VkCommandBuffer commandBuffer, uint32_t stageCount, const VkShaderStageFlagBits* pStages, const VkShaderEXT* pShaders);
21596typedef void (VKAPI_PTR *PFN_vkCmdSetDepthClampRangeEXT)(VkCommandBuffer commandBuffer, VkDepthClampModeEXT depthClampMode, const VkDepthClampRangeEXT* pDepthClampRange);
21597
21598#ifndef VK_NO_PROTOTYPES
21599#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21600VKAPI_ATTR VkResult VKAPI_CALL vkCreateShadersEXT(
21601 VkDevice device,
21602 uint32_t createInfoCount,
21603 const VkShaderCreateInfoEXT* pCreateInfos,
21604 const VkAllocationCallbacks* pAllocator,
21605 VkShaderEXT* pShaders);
21606#endif
21607
21608#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21609VKAPI_ATTR void VKAPI_CALL vkDestroyShaderEXT(
21610 VkDevice device,
21611 VkShaderEXT shader,
21612 const VkAllocationCallbacks* pAllocator);
21613#endif
21614
21615#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21616VKAPI_ATTR VkResult VKAPI_CALL vkGetShaderBinaryDataEXT(
21617 VkDevice device,
21618 VkShaderEXT shader,
21619 size_t* pDataSize,
21620 void* pData);
21621#endif
21622
21623#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21624VKAPI_ATTR void VKAPI_CALL vkCmdBindShadersEXT(
21625 VkCommandBuffer commandBuffer,
21626 uint32_t stageCount,
21627 const VkShaderStageFlagBits* pStages,
21628 const VkShaderEXT* pShaders);
21629#endif
21630
21631#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21632VKAPI_ATTR void VKAPI_CALL vkCmdSetDepthClampRangeEXT(
21633 VkCommandBuffer commandBuffer,
21634 VkDepthClampModeEXT depthClampMode,
21635 const VkDepthClampRangeEXT* pDepthClampRange);
21636#endif
21637#endif
21638
21639
21640// VK_QCOM_tile_properties is a preprocessor guard. Do not pass it to API calls.
21641#define VK_QCOM_tile_properties 1
21642#define VK_QCOM_TILE_PROPERTIES_SPEC_VERSION 1
21643#define VK_QCOM_TILE_PROPERTIES_EXTENSION_NAME "VK_QCOM_tile_properties"
21644typedef struct VkPhysicalDeviceTilePropertiesFeaturesQCOM {
21645 VkStructureType sType;
21646 void* pNext;
21647 VkBool32 tileProperties;
21648} VkPhysicalDeviceTilePropertiesFeaturesQCOM;
21649
21650typedef struct VkTilePropertiesQCOM {
21651 VkStructureType sType;
21652 void* pNext;
21653 VkExtent3D tileSize;
21654 VkExtent2D apronSize;
21655 VkOffset2D origin;
21656} VkTilePropertiesQCOM;
21657
21658typedef VkResult (VKAPI_PTR *PFN_vkGetFramebufferTilePropertiesQCOM)(VkDevice device, VkFramebuffer framebuffer, uint32_t* pPropertiesCount, VkTilePropertiesQCOM* pProperties);
21659typedef VkResult (VKAPI_PTR *PFN_vkGetDynamicRenderingTilePropertiesQCOM)(VkDevice device, const VkRenderingInfo* pRenderingInfo, VkTilePropertiesQCOM* pProperties);
21660
21661#ifndef VK_NO_PROTOTYPES
21662#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21663VKAPI_ATTR VkResult VKAPI_CALL vkGetFramebufferTilePropertiesQCOM(
21664 VkDevice device,
21665 VkFramebuffer framebuffer,
21666 uint32_t* pPropertiesCount,
21667 VkTilePropertiesQCOM* pProperties);
21668#endif
21669
21670#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21671VKAPI_ATTR VkResult VKAPI_CALL vkGetDynamicRenderingTilePropertiesQCOM(
21672 VkDevice device,
21673 const VkRenderingInfo* pRenderingInfo,
21674 VkTilePropertiesQCOM* pProperties);
21675#endif
21676#endif
21677
21678
21679// VK_SEC_amigo_profiling is a preprocessor guard. Do not pass it to API calls.
21680#define VK_SEC_amigo_profiling 1
21681#define VK_SEC_AMIGO_PROFILING_SPEC_VERSION 1
21682#define VK_SEC_AMIGO_PROFILING_EXTENSION_NAME "VK_SEC_amigo_profiling"
21683typedef struct VkPhysicalDeviceAmigoProfilingFeaturesSEC {
21684 VkStructureType sType;
21685 void* pNext;
21686 VkBool32 amigoProfiling;
21687} VkPhysicalDeviceAmigoProfilingFeaturesSEC;
21688
21689typedef struct VkAmigoProfilingSubmitInfoSEC {
21690 VkStructureType sType;
21691 const void* pNext;
21692 uint64_t firstDrawTimestamp;
21693 uint64_t swapBufferTimestamp;
21694} VkAmigoProfilingSubmitInfoSEC;
21695
21696
21697
21698// VK_QCOM_multiview_per_view_viewports is a preprocessor guard. Do not pass it to API calls.
21699#define VK_QCOM_multiview_per_view_viewports 1
21700#define VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_SPEC_VERSION 1
21701#define VK_QCOM_MULTIVIEW_PER_VIEW_VIEWPORTS_EXTENSION_NAME "VK_QCOM_multiview_per_view_viewports"
21702typedef struct VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM {
21703 VkStructureType sType;
21704 void* pNext;
21705 VkBool32 multiviewPerViewViewports;
21706} VkPhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM;
21707
21708
21709
21710// VK_NV_ray_tracing_invocation_reorder is a preprocessor guard. Do not pass it to API calls.
21711#define VK_NV_ray_tracing_invocation_reorder 1
21712#define VK_NV_RAY_TRACING_INVOCATION_REORDER_SPEC_VERSION 1
21713#define VK_NV_RAY_TRACING_INVOCATION_REORDER_EXTENSION_NAME "VK_NV_ray_tracing_invocation_reorder"
21714
21715typedef enum VkRayTracingInvocationReorderModeNV {
21716 VK_RAY_TRACING_INVOCATION_REORDER_MODE_NONE_NV = 0,
21717 VK_RAY_TRACING_INVOCATION_REORDER_MODE_REORDER_NV = 1,
21718 VK_RAY_TRACING_INVOCATION_REORDER_MODE_MAX_ENUM_NV = 0x7FFFFFFF
21719} VkRayTracingInvocationReorderModeNV;
21720typedef struct VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV {
21721 VkStructureType sType;
21722 void* pNext;
21723 VkRayTracingInvocationReorderModeNV rayTracingInvocationReorderReorderingHint;
21724} VkPhysicalDeviceRayTracingInvocationReorderPropertiesNV;
21725
21726typedef struct VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV {
21727 VkStructureType sType;
21728 void* pNext;
21729 VkBool32 rayTracingInvocationReorder;
21730} VkPhysicalDeviceRayTracingInvocationReorderFeaturesNV;
21731
21732
21733
21734// VK_NV_cooperative_vector is a preprocessor guard. Do not pass it to API calls.
21735#define VK_NV_cooperative_vector 1
21736#define VK_NV_COOPERATIVE_VECTOR_SPEC_VERSION 4
21737#define VK_NV_COOPERATIVE_VECTOR_EXTENSION_NAME "VK_NV_cooperative_vector"
21738
21739typedef enum VkCooperativeVectorMatrixLayoutNV {
21740 VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_ROW_MAJOR_NV = 0,
21741 VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_COLUMN_MAJOR_NV = 1,
21742 VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_INFERENCING_OPTIMAL_NV = 2,
21743 VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_TRAINING_OPTIMAL_NV = 3,
21744 VK_COOPERATIVE_VECTOR_MATRIX_LAYOUT_MAX_ENUM_NV = 0x7FFFFFFF
21745} VkCooperativeVectorMatrixLayoutNV;
21746typedef struct VkPhysicalDeviceCooperativeVectorPropertiesNV {
21747 VkStructureType sType;
21748 void* pNext;
21749 VkShaderStageFlags cooperativeVectorSupportedStages;
21750 VkBool32 cooperativeVectorTrainingFloat16Accumulation;
21751 VkBool32 cooperativeVectorTrainingFloat32Accumulation;
21752 uint32_t maxCooperativeVectorComponents;
21753} VkPhysicalDeviceCooperativeVectorPropertiesNV;
21754
21755typedef struct VkPhysicalDeviceCooperativeVectorFeaturesNV {
21756 VkStructureType sType;
21757 void* pNext;
21758 VkBool32 cooperativeVector;
21759 VkBool32 cooperativeVectorTraining;
21760} VkPhysicalDeviceCooperativeVectorFeaturesNV;
21761
21762typedef struct VkCooperativeVectorPropertiesNV {
21763 VkStructureType sType;
21764 void* pNext;
21765 VkComponentTypeKHR inputType;
21766 VkComponentTypeKHR inputInterpretation;
21767 VkComponentTypeKHR matrixInterpretation;
21768 VkComponentTypeKHR biasInterpretation;
21769 VkComponentTypeKHR resultType;
21770 VkBool32 transpose;
21771} VkCooperativeVectorPropertiesNV;
21772
21773typedef struct VkConvertCooperativeVectorMatrixInfoNV {
21774 VkStructureType sType;
21775 const void* pNext;
21776 size_t srcSize;
21777 VkDeviceOrHostAddressConstKHR srcData;
21778 size_t* pDstSize;
21779 VkDeviceOrHostAddressKHR dstData;
21780 VkComponentTypeKHR srcComponentType;
21781 VkComponentTypeKHR dstComponentType;
21782 uint32_t numRows;
21783 uint32_t numColumns;
21784 VkCooperativeVectorMatrixLayoutNV srcLayout;
21785 size_t srcStride;
21786 VkCooperativeVectorMatrixLayoutNV dstLayout;
21787 size_t dstStride;
21788} VkConvertCooperativeVectorMatrixInfoNV;
21789
21790typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeVectorPropertiesNV)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeVectorPropertiesNV* pProperties);
21791typedef VkResult (VKAPI_PTR *PFN_vkConvertCooperativeVectorMatrixNV)(VkDevice device, const VkConvertCooperativeVectorMatrixInfoNV* pInfo);
21792typedef void (VKAPI_PTR *PFN_vkCmdConvertCooperativeVectorMatrixNV)(VkCommandBuffer commandBuffer, uint32_t infoCount, const VkConvertCooperativeVectorMatrixInfoNV* pInfos);
21793
21794#ifndef VK_NO_PROTOTYPES
21795#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21796VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeVectorPropertiesNV(
21797 VkPhysicalDevice physicalDevice,
21798 uint32_t* pPropertyCount,
21799 VkCooperativeVectorPropertiesNV* pProperties);
21800#endif
21801
21802#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21803VKAPI_ATTR VkResult VKAPI_CALL vkConvertCooperativeVectorMatrixNV(
21804 VkDevice device,
21805 const VkConvertCooperativeVectorMatrixInfoNV* pInfo);
21806#endif
21807
21808#ifndef VK_ONLY_EXPORTED_PROTOTYPES
21809VKAPI_ATTR void VKAPI_CALL vkCmdConvertCooperativeVectorMatrixNV(
21810 VkCommandBuffer commandBuffer,
21811 uint32_t infoCount,
21812 const VkConvertCooperativeVectorMatrixInfoNV* pInfos);
21813#endif
21814#endif
21815
21816
21817// VK_NV_extended_sparse_address_space is a preprocessor guard. Do not pass it to API calls.
21818#define VK_NV_extended_sparse_address_space 1
21819#define VK_NV_EXTENDED_SPARSE_ADDRESS_SPACE_SPEC_VERSION 1
21820#define VK_NV_EXTENDED_SPARSE_ADDRESS_SPACE_EXTENSION_NAME "VK_NV_extended_sparse_address_space"
21821typedef struct VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV {
21822 VkStructureType sType;
21823 void* pNext;
21824 VkBool32 extendedSparseAddressSpace;
21825} VkPhysicalDeviceExtendedSparseAddressSpaceFeaturesNV;
21826
21827typedef struct VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV {
21828 VkStructureType sType;
21829 void* pNext;
21830 VkDeviceSize extendedSparseAddressSpaceSize;
21831 VkImageUsageFlags extendedSparseImageUsageFlags;
21832 VkBufferUsageFlags extendedSparseBufferUsageFlags;
21833} VkPhysicalDeviceExtendedSparseAddressSpacePropertiesNV;
21834
21835
21836
21837// VK_EXT_mutable_descriptor_type is a preprocessor guard. Do not pass it to API calls.
21838#define VK_EXT_mutable_descriptor_type 1
21839#define VK_EXT_MUTABLE_DESCRIPTOR_TYPE_SPEC_VERSION 1
21840#define VK_EXT_MUTABLE_DESCRIPTOR_TYPE_EXTENSION_NAME "VK_EXT_mutable_descriptor_type"
21841
21842
21843// VK_EXT_legacy_vertex_attributes is a preprocessor guard. Do not pass it to API calls.
21844#define VK_EXT_legacy_vertex_attributes 1
21845#define VK_EXT_LEGACY_VERTEX_ATTRIBUTES_SPEC_VERSION 1
21846#define VK_EXT_LEGACY_VERTEX_ATTRIBUTES_EXTENSION_NAME "VK_EXT_legacy_vertex_attributes"
21847typedef struct VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT {
21848 VkStructureType sType;
21849 void* pNext;
21850 VkBool32 legacyVertexAttributes;
21851} VkPhysicalDeviceLegacyVertexAttributesFeaturesEXT;
21852
21853typedef struct VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT {
21854 VkStructureType sType;
21855 void* pNext;
21856 VkBool32 nativeUnalignedPerformance;
21857} VkPhysicalDeviceLegacyVertexAttributesPropertiesEXT;
21858
21859
21860
21861// VK_EXT_layer_settings is a preprocessor guard. Do not pass it to API calls.
21862#define VK_EXT_layer_settings 1
21863#define VK_EXT_LAYER_SETTINGS_SPEC_VERSION 2
21864#define VK_EXT_LAYER_SETTINGS_EXTENSION_NAME "VK_EXT_layer_settings"
21865
21866typedef enum VkLayerSettingTypeEXT {
21867 VK_LAYER_SETTING_TYPE_BOOL32_EXT = 0,
21868 VK_LAYER_SETTING_TYPE_INT32_EXT = 1,
21869 VK_LAYER_SETTING_TYPE_INT64_EXT = 2,
21870 VK_LAYER_SETTING_TYPE_UINT32_EXT = 3,
21871 VK_LAYER_SETTING_TYPE_UINT64_EXT = 4,
21872 VK_LAYER_SETTING_TYPE_FLOAT32_EXT = 5,
21873 VK_LAYER_SETTING_TYPE_FLOAT64_EXT = 6,
21874 VK_LAYER_SETTING_TYPE_STRING_EXT = 7,
21875 VK_LAYER_SETTING_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
21876} VkLayerSettingTypeEXT;
21877typedef struct VkLayerSettingEXT {
21878 const char* pLayerName;
21879 const char* pSettingName;
21880 VkLayerSettingTypeEXT type;
21881 uint32_t valueCount;
21882 const void* pValues;
21883} VkLayerSettingEXT;
21884
21885typedef struct VkLayerSettingsCreateInfoEXT {
21886 VkStructureType sType;
21887 const void* pNext;
21888 uint32_t settingCount;
21889 const VkLayerSettingEXT* pSettings;
21890} VkLayerSettingsCreateInfoEXT;
21891
21892
21893
21894// VK_ARM_shader_core_builtins is a preprocessor guard. Do not pass it to API calls.
21895#define VK_ARM_shader_core_builtins 1
21896#define VK_ARM_SHADER_CORE_BUILTINS_SPEC_VERSION 2
21897#define VK_ARM_SHADER_CORE_BUILTINS_EXTENSION_NAME "VK_ARM_shader_core_builtins"
21898typedef struct VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM {
21899 VkStructureType sType;
21900 void* pNext;
21901 VkBool32 shaderCoreBuiltins;
21902} VkPhysicalDeviceShaderCoreBuiltinsFeaturesARM;
21903
21904typedef struct VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM {
21905 VkStructureType sType;
21906 void* pNext;
21907 uint64_t shaderCoreMask;
21908 uint32_t shaderCoreCount;
21909 uint32_t shaderWarpsPerCore;
21910} VkPhysicalDeviceShaderCoreBuiltinsPropertiesARM;
21911
21912
21913
21914// VK_EXT_pipeline_library_group_handles is a preprocessor guard. Do not pass it to API calls.
21915#define VK_EXT_pipeline_library_group_handles 1
21916#define VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_SPEC_VERSION 1
21917#define VK_EXT_PIPELINE_LIBRARY_GROUP_HANDLES_EXTENSION_NAME "VK_EXT_pipeline_library_group_handles"
21918typedef struct VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT {
21919 VkStructureType sType;
21920 void* pNext;
21921 VkBool32 pipelineLibraryGroupHandles;
21922} VkPhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT;
21923
21924
21925
21926// VK_EXT_dynamic_rendering_unused_attachments is a preprocessor guard. Do not pass it to API calls.
21927#define VK_EXT_dynamic_rendering_unused_attachments 1
21928#define VK_EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_SPEC_VERSION 1
21929#define VK_EXT_DYNAMIC_RENDERING_UNUSED_ATTACHMENTS_EXTENSION_NAME "VK_EXT_dynamic_rendering_unused_attachments"
21930typedef struct VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT {
21931 VkStructureType sType;
21932 void* pNext;
21933 VkBool32 dynamicRenderingUnusedAttachments;
21934} VkPhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT;
21935
21936
21937
21938// VK_NV_low_latency2 is a preprocessor guard. Do not pass it to API calls.
21939#define VK_NV_low_latency2 1
21940#define VK_NV_LOW_LATENCY_2_SPEC_VERSION 2
21941#define VK_NV_LOW_LATENCY_2_EXTENSION_NAME "VK_NV_low_latency2"
21942
21943typedef enum VkLatencyMarkerNV {
21944 VK_LATENCY_MARKER_SIMULATION_START_NV = 0,
21945 VK_LATENCY_MARKER_SIMULATION_END_NV = 1,
21946 VK_LATENCY_MARKER_RENDERSUBMIT_START_NV = 2,
21947 VK_LATENCY_MARKER_RENDERSUBMIT_END_NV = 3,
21948 VK_LATENCY_MARKER_PRESENT_START_NV = 4,
21949 VK_LATENCY_MARKER_PRESENT_END_NV = 5,
21950 VK_LATENCY_MARKER_INPUT_SAMPLE_NV = 6,
21951 VK_LATENCY_MARKER_TRIGGER_FLASH_NV = 7,
21952 VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_START_NV = 8,
21953 VK_LATENCY_MARKER_OUT_OF_BAND_RENDERSUBMIT_END_NV = 9,
21954 VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_START_NV = 10,
21955 VK_LATENCY_MARKER_OUT_OF_BAND_PRESENT_END_NV = 11,
21956 VK_LATENCY_MARKER_MAX_ENUM_NV = 0x7FFFFFFF
21957} VkLatencyMarkerNV;
21958
21959typedef enum VkOutOfBandQueueTypeNV {
21960 VK_OUT_OF_BAND_QUEUE_TYPE_RENDER_NV = 0,
21961 VK_OUT_OF_BAND_QUEUE_TYPE_PRESENT_NV = 1,
21962 VK_OUT_OF_BAND_QUEUE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
21963} VkOutOfBandQueueTypeNV;
21964typedef struct VkLatencySleepModeInfoNV {
21965 VkStructureType sType;
21966 const void* pNext;
21967 VkBool32 lowLatencyMode;
21968 VkBool32 lowLatencyBoost;
21969 uint32_t minimumIntervalUs;
21970} VkLatencySleepModeInfoNV;
21971
21972typedef struct VkLatencySleepInfoNV {
21973 VkStructureType sType;
21974 const void* pNext;
21975 VkSemaphore signalSemaphore;
21976 uint64_t value;
21977} VkLatencySleepInfoNV;
21978
21979typedef struct VkSetLatencyMarkerInfoNV {
21980 VkStructureType sType;
21981 const void* pNext;
21982 uint64_t presentID;
21983 VkLatencyMarkerNV marker;
21984} VkSetLatencyMarkerInfoNV;
21985
21986typedef struct VkLatencyTimingsFrameReportNV {
21987 VkStructureType sType;
21988 const void* pNext;
21989 uint64_t presentID;
21990 uint64_t inputSampleTimeUs;
21991 uint64_t simStartTimeUs;
21992 uint64_t simEndTimeUs;
21993 uint64_t renderSubmitStartTimeUs;
21994 uint64_t renderSubmitEndTimeUs;
21995 uint64_t presentStartTimeUs;
21996 uint64_t presentEndTimeUs;
21997 uint64_t driverStartTimeUs;
21998 uint64_t driverEndTimeUs;
21999 uint64_t osRenderQueueStartTimeUs;
22000 uint64_t osRenderQueueEndTimeUs;
22001 uint64_t gpuRenderStartTimeUs;
22002 uint64_t gpuRenderEndTimeUs;
22003} VkLatencyTimingsFrameReportNV;
22004
22005typedef struct VkGetLatencyMarkerInfoNV {
22006 VkStructureType sType;
22007 const void* pNext;
22008 uint32_t timingCount;
22009 VkLatencyTimingsFrameReportNV* pTimings;
22010} VkGetLatencyMarkerInfoNV;
22011
22012typedef struct VkLatencySubmissionPresentIdNV {
22013 VkStructureType sType;
22014 const void* pNext;
22015 uint64_t presentID;
22016} VkLatencySubmissionPresentIdNV;
22017
22018typedef struct VkSwapchainLatencyCreateInfoNV {
22019 VkStructureType sType;
22020 const void* pNext;
22021 VkBool32 latencyModeEnable;
22022} VkSwapchainLatencyCreateInfoNV;
22023
22024typedef struct VkOutOfBandQueueTypeInfoNV {
22025 VkStructureType sType;
22026 const void* pNext;
22027 VkOutOfBandQueueTypeNV queueType;
22028} VkOutOfBandQueueTypeInfoNV;
22029
22030typedef struct VkLatencySurfaceCapabilitiesNV {
22031 VkStructureType sType;
22032 const void* pNext;
22033 uint32_t presentModeCount;
22034 VkPresentModeKHR* pPresentModes;
22035} VkLatencySurfaceCapabilitiesNV;
22036
22037typedef VkResult (VKAPI_PTR *PFN_vkSetLatencySleepModeNV)(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepModeInfoNV* pSleepModeInfo);
22038typedef VkResult (VKAPI_PTR *PFN_vkLatencySleepNV)(VkDevice device, VkSwapchainKHR swapchain, const VkLatencySleepInfoNV* pSleepInfo);
22039typedef void (VKAPI_PTR *PFN_vkSetLatencyMarkerNV)(VkDevice device, VkSwapchainKHR swapchain, const VkSetLatencyMarkerInfoNV* pLatencyMarkerInfo);
22040typedef void (VKAPI_PTR *PFN_vkGetLatencyTimingsNV)(VkDevice device, VkSwapchainKHR swapchain, VkGetLatencyMarkerInfoNV* pLatencyMarkerInfo);
22041typedef void (VKAPI_PTR *PFN_vkQueueNotifyOutOfBandNV)(VkQueue queue, const VkOutOfBandQueueTypeInfoNV* pQueueTypeInfo);
22042
22043#ifndef VK_NO_PROTOTYPES
22044#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22045VKAPI_ATTR VkResult VKAPI_CALL vkSetLatencySleepModeNV(
22046 VkDevice device,
22047 VkSwapchainKHR swapchain,
22048 const VkLatencySleepModeInfoNV* pSleepModeInfo);
22049#endif
22050
22051#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22052VKAPI_ATTR VkResult VKAPI_CALL vkLatencySleepNV(
22053 VkDevice device,
22054 VkSwapchainKHR swapchain,
22055 const VkLatencySleepInfoNV* pSleepInfo);
22056#endif
22057
22058#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22059VKAPI_ATTR void VKAPI_CALL vkSetLatencyMarkerNV(
22060 VkDevice device,
22061 VkSwapchainKHR swapchain,
22062 const VkSetLatencyMarkerInfoNV* pLatencyMarkerInfo);
22063#endif
22064
22065#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22066VKAPI_ATTR void VKAPI_CALL vkGetLatencyTimingsNV(
22067 VkDevice device,
22068 VkSwapchainKHR swapchain,
22069 VkGetLatencyMarkerInfoNV* pLatencyMarkerInfo);
22070#endif
22071
22072#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22073VKAPI_ATTR void VKAPI_CALL vkQueueNotifyOutOfBandNV(
22074 VkQueue queue,
22075 const VkOutOfBandQueueTypeInfoNV* pQueueTypeInfo);
22076#endif
22077#endif
22078
22079
22080// VK_ARM_data_graph is a preprocessor guard. Do not pass it to API calls.
22081#define VK_ARM_data_graph 1
22082VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkDataGraphPipelineSessionARM)
22083#define VK_MAX_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_SET_NAME_SIZE_ARM 128U
22084#define VK_ARM_DATA_GRAPH_SPEC_VERSION 1
22085#define VK_ARM_DATA_GRAPH_EXTENSION_NAME "VK_ARM_data_graph"
22086
22087typedef enum VkDataGraphPipelineSessionBindPointARM {
22088 VK_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_TRANSIENT_ARM = 0,
22089 VK_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_MAX_ENUM_ARM = 0x7FFFFFFF
22090} VkDataGraphPipelineSessionBindPointARM;
22091
22092typedef enum VkDataGraphPipelineSessionBindPointTypeARM {
22093 VK_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_TYPE_MEMORY_ARM = 0,
22094 VK_DATA_GRAPH_PIPELINE_SESSION_BIND_POINT_TYPE_MAX_ENUM_ARM = 0x7FFFFFFF
22095} VkDataGraphPipelineSessionBindPointTypeARM;
22096
22097typedef enum VkDataGraphPipelinePropertyARM {
22098 VK_DATA_GRAPH_PIPELINE_PROPERTY_CREATION_LOG_ARM = 0,
22099 VK_DATA_GRAPH_PIPELINE_PROPERTY_IDENTIFIER_ARM = 1,
22100 VK_DATA_GRAPH_PIPELINE_PROPERTY_MAX_ENUM_ARM = 0x7FFFFFFF
22101} VkDataGraphPipelinePropertyARM;
22102
22103typedef enum VkPhysicalDeviceDataGraphProcessingEngineTypeARM {
22104 VK_PHYSICAL_DEVICE_DATA_GRAPH_PROCESSING_ENGINE_TYPE_DEFAULT_ARM = 0,
22105 VK_PHYSICAL_DEVICE_DATA_GRAPH_PROCESSING_ENGINE_TYPE_MAX_ENUM_ARM = 0x7FFFFFFF
22106} VkPhysicalDeviceDataGraphProcessingEngineTypeARM;
22107
22108typedef enum VkPhysicalDeviceDataGraphOperationTypeARM {
22109 VK_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_TYPE_SPIRV_EXTENDED_INSTRUCTION_SET_ARM = 0,
22110 VK_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_TYPE_MAX_ENUM_ARM = 0x7FFFFFFF
22111} VkPhysicalDeviceDataGraphOperationTypeARM;
22112typedef VkFlags64 VkDataGraphPipelineSessionCreateFlagsARM;
22113
22114// Flag bits for VkDataGraphPipelineSessionCreateFlagBitsARM
22115typedef VkFlags64 VkDataGraphPipelineSessionCreateFlagBitsARM;
22116static const VkDataGraphPipelineSessionCreateFlagBitsARM VK_DATA_GRAPH_PIPELINE_SESSION_CREATE_PROTECTED_BIT_ARM = 0x00000001ULL;
22117
22118typedef VkFlags64 VkDataGraphPipelineDispatchFlagsARM;
22119
22120// Flag bits for VkDataGraphPipelineDispatchFlagBitsARM
22121typedef VkFlags64 VkDataGraphPipelineDispatchFlagBitsARM;
22122
22123typedef struct VkPhysicalDeviceDataGraphFeaturesARM {
22124 VkStructureType sType;
22125 void* pNext;
22126 VkBool32 dataGraph;
22127 VkBool32 dataGraphUpdateAfterBind;
22128 VkBool32 dataGraphSpecializationConstants;
22129 VkBool32 dataGraphDescriptorBuffer;
22130 VkBool32 dataGraphShaderModule;
22131} VkPhysicalDeviceDataGraphFeaturesARM;
22132
22133typedef struct VkDataGraphPipelineConstantARM {
22134 VkStructureType sType;
22135 const void* pNext;
22136 uint32_t id;
22137 const void* pConstantData;
22138} VkDataGraphPipelineConstantARM;
22139
22140typedef struct VkDataGraphPipelineResourceInfoARM {
22141 VkStructureType sType;
22142 const void* pNext;
22143 uint32_t descriptorSet;
22144 uint32_t binding;
22145 uint32_t arrayElement;
22146} VkDataGraphPipelineResourceInfoARM;
22147
22148typedef struct VkDataGraphPipelineCompilerControlCreateInfoARM {
22149 VkStructureType sType;
22150 const void* pNext;
22151 const char* pVendorOptions;
22152} VkDataGraphPipelineCompilerControlCreateInfoARM;
22153
22154typedef struct VkDataGraphPipelineCreateInfoARM {
22155 VkStructureType sType;
22156 const void* pNext;
22157 VkPipelineCreateFlags2KHR flags;
22158 VkPipelineLayout layout;
22159 uint32_t resourceInfoCount;
22160 const VkDataGraphPipelineResourceInfoARM* pResourceInfos;
22161} VkDataGraphPipelineCreateInfoARM;
22162
22163typedef struct VkDataGraphPipelineShaderModuleCreateInfoARM {
22164 VkStructureType sType;
22165 const void* pNext;
22166 VkShaderModule module;
22167 const char* pName;
22168 const VkSpecializationInfo* pSpecializationInfo;
22169 uint32_t constantCount;
22170 const VkDataGraphPipelineConstantARM* pConstants;
22171} VkDataGraphPipelineShaderModuleCreateInfoARM;
22172
22173typedef struct VkDataGraphPipelineSessionCreateInfoARM {
22174 VkStructureType sType;
22175 const void* pNext;
22176 VkDataGraphPipelineSessionCreateFlagsARM flags;
22177 VkPipeline dataGraphPipeline;
22178} VkDataGraphPipelineSessionCreateInfoARM;
22179
22180typedef struct VkDataGraphPipelineSessionBindPointRequirementsInfoARM {
22181 VkStructureType sType;
22182 const void* pNext;
22183 VkDataGraphPipelineSessionARM session;
22184} VkDataGraphPipelineSessionBindPointRequirementsInfoARM;
22185
22186typedef struct VkDataGraphPipelineSessionBindPointRequirementARM {
22187 VkStructureType sType;
22188 const void* pNext;
22189 VkDataGraphPipelineSessionBindPointARM bindPoint;
22190 VkDataGraphPipelineSessionBindPointTypeARM bindPointType;
22191 uint32_t numObjects;
22192} VkDataGraphPipelineSessionBindPointRequirementARM;
22193
22194typedef struct VkDataGraphPipelineSessionMemoryRequirementsInfoARM {
22195 VkStructureType sType;
22196 const void* pNext;
22197 VkDataGraphPipelineSessionARM session;
22198 VkDataGraphPipelineSessionBindPointARM bindPoint;
22199 uint32_t objectIndex;
22200} VkDataGraphPipelineSessionMemoryRequirementsInfoARM;
22201
22202typedef struct VkBindDataGraphPipelineSessionMemoryInfoARM {
22203 VkStructureType sType;
22204 const void* pNext;
22205 VkDataGraphPipelineSessionARM session;
22206 VkDataGraphPipelineSessionBindPointARM bindPoint;
22207 uint32_t objectIndex;
22208 VkDeviceMemory memory;
22209 VkDeviceSize memoryOffset;
22210} VkBindDataGraphPipelineSessionMemoryInfoARM;
22211
22212typedef struct VkDataGraphPipelineInfoARM {
22213 VkStructureType sType;
22214 const void* pNext;
22215 VkPipeline dataGraphPipeline;
22216} VkDataGraphPipelineInfoARM;
22217
22218typedef struct VkDataGraphPipelinePropertyQueryResultARM {
22219 VkStructureType sType;
22220 const void* pNext;
22221 VkDataGraphPipelinePropertyARM property;
22222 VkBool32 isText;
22223 size_t dataSize;
22224 void* pData;
22225} VkDataGraphPipelinePropertyQueryResultARM;
22226
22227typedef struct VkDataGraphPipelineIdentifierCreateInfoARM {
22228 VkStructureType sType;
22229 const void* pNext;
22230 uint32_t identifierSize;
22231 const uint8_t* pIdentifier;
22232} VkDataGraphPipelineIdentifierCreateInfoARM;
22233
22234typedef struct VkDataGraphPipelineDispatchInfoARM {
22235 VkStructureType sType;
22236 void* pNext;
22237 VkDataGraphPipelineDispatchFlagsARM flags;
22238} VkDataGraphPipelineDispatchInfoARM;
22239
22240typedef struct VkPhysicalDeviceDataGraphProcessingEngineARM {
22241 VkPhysicalDeviceDataGraphProcessingEngineTypeARM type;
22242 VkBool32 isForeign;
22243} VkPhysicalDeviceDataGraphProcessingEngineARM;
22244
22245typedef struct VkPhysicalDeviceDataGraphOperationSupportARM {
22246 VkPhysicalDeviceDataGraphOperationTypeARM operationType;
22247 char name[VK_MAX_PHYSICAL_DEVICE_DATA_GRAPH_OPERATION_SET_NAME_SIZE_ARM];
22248 uint32_t version;
22249} VkPhysicalDeviceDataGraphOperationSupportARM;
22250
22251typedef struct VkQueueFamilyDataGraphPropertiesARM {
22252 VkStructureType sType;
22253 const void* pNext;
22254 VkPhysicalDeviceDataGraphProcessingEngineARM engine;
22255 VkPhysicalDeviceDataGraphOperationSupportARM operation;
22256} VkQueueFamilyDataGraphPropertiesARM;
22257
22258typedef struct VkDataGraphProcessingEngineCreateInfoARM {
22259 VkStructureType sType;
22260 const void* pNext;
22261 uint32_t processingEngineCount;
22262 VkPhysicalDeviceDataGraphProcessingEngineARM* pProcessingEngines;
22263} VkDataGraphProcessingEngineCreateInfoARM;
22264
22265typedef struct VkPhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM {
22266 VkStructureType sType;
22267 const void* pNext;
22268 uint32_t queueFamilyIndex;
22269 VkPhysicalDeviceDataGraphProcessingEngineTypeARM engineType;
22270} VkPhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM;
22271
22272typedef struct VkQueueFamilyDataGraphProcessingEnginePropertiesARM {
22273 VkStructureType sType;
22274 const void* pNext;
22275 VkExternalSemaphoreHandleTypeFlags foreignSemaphoreHandleTypes;
22276 VkExternalMemoryHandleTypeFlags foreignMemoryHandleTypes;
22277} VkQueueFamilyDataGraphProcessingEnginePropertiesARM;
22278
22279typedef struct VkDataGraphPipelineConstantTensorSemiStructuredSparsityInfoARM {
22280 VkStructureType sType;
22281 const void* pNext;
22282 uint32_t dimension;
22283 uint32_t zeroCount;
22284 uint32_t groupSize;
22285} VkDataGraphPipelineConstantTensorSemiStructuredSparsityInfoARM;
22286
22287typedef VkResult (VKAPI_PTR *PFN_vkCreateDataGraphPipelinesARM)(VkDevice device, VkDeferredOperationKHR deferredOperation, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkDataGraphPipelineCreateInfoARM* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
22288typedef VkResult (VKAPI_PTR *PFN_vkCreateDataGraphPipelineSessionARM)(VkDevice device, const VkDataGraphPipelineSessionCreateInfoARM* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDataGraphPipelineSessionARM* pSession);
22289typedef VkResult (VKAPI_PTR *PFN_vkGetDataGraphPipelineSessionBindPointRequirementsARM)(VkDevice device, const VkDataGraphPipelineSessionBindPointRequirementsInfoARM* pInfo, uint32_t* pBindPointRequirementCount, VkDataGraphPipelineSessionBindPointRequirementARM* pBindPointRequirements);
22290typedef void (VKAPI_PTR *PFN_vkGetDataGraphPipelineSessionMemoryRequirementsARM)(VkDevice device, const VkDataGraphPipelineSessionMemoryRequirementsInfoARM* pInfo, VkMemoryRequirements2* pMemoryRequirements);
22291typedef VkResult (VKAPI_PTR *PFN_vkBindDataGraphPipelineSessionMemoryARM)(VkDevice device, uint32_t bindInfoCount, const VkBindDataGraphPipelineSessionMemoryInfoARM* pBindInfos);
22292typedef void (VKAPI_PTR *PFN_vkDestroyDataGraphPipelineSessionARM)(VkDevice device, VkDataGraphPipelineSessionARM session, const VkAllocationCallbacks* pAllocator);
22293typedef void (VKAPI_PTR *PFN_vkCmdDispatchDataGraphARM)(VkCommandBuffer commandBuffer, VkDataGraphPipelineSessionARM session, const VkDataGraphPipelineDispatchInfoARM* pInfo);
22294typedef VkResult (VKAPI_PTR *PFN_vkGetDataGraphPipelineAvailablePropertiesARM)(VkDevice device, const VkDataGraphPipelineInfoARM* pPipelineInfo, uint32_t* pPropertiesCount, VkDataGraphPipelinePropertyARM* pProperties);
22295typedef VkResult (VKAPI_PTR *PFN_vkGetDataGraphPipelinePropertiesARM)(VkDevice device, const VkDataGraphPipelineInfoARM* pPipelineInfo, uint32_t propertiesCount, VkDataGraphPipelinePropertyQueryResultARM* pProperties);
22296typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, uint32_t* pQueueFamilyDataGraphPropertyCount, VkQueueFamilyDataGraphPropertiesARM* pQueueFamilyDataGraphProperties);
22297typedef void (VKAPI_PTR *PFN_vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM)(VkPhysicalDevice physicalDevice, const VkPhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM* pQueueFamilyDataGraphProcessingEngineInfo, VkQueueFamilyDataGraphProcessingEnginePropertiesARM* pQueueFamilyDataGraphProcessingEngineProperties);
22298
22299#ifndef VK_NO_PROTOTYPES
22300#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22301VKAPI_ATTR VkResult VKAPI_CALL vkCreateDataGraphPipelinesARM(
22302 VkDevice device,
22303 VkDeferredOperationKHR deferredOperation,
22304 VkPipelineCache pipelineCache,
22305 uint32_t createInfoCount,
22306 const VkDataGraphPipelineCreateInfoARM* pCreateInfos,
22307 const VkAllocationCallbacks* pAllocator,
22308 VkPipeline* pPipelines);
22309#endif
22310
22311#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22312VKAPI_ATTR VkResult VKAPI_CALL vkCreateDataGraphPipelineSessionARM(
22313 VkDevice device,
22314 const VkDataGraphPipelineSessionCreateInfoARM* pCreateInfo,
22315 const VkAllocationCallbacks* pAllocator,
22316 VkDataGraphPipelineSessionARM* pSession);
22317#endif
22318
22319#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22320VKAPI_ATTR VkResult VKAPI_CALL vkGetDataGraphPipelineSessionBindPointRequirementsARM(
22321 VkDevice device,
22322 const VkDataGraphPipelineSessionBindPointRequirementsInfoARM* pInfo,
22323 uint32_t* pBindPointRequirementCount,
22324 VkDataGraphPipelineSessionBindPointRequirementARM* pBindPointRequirements);
22325#endif
22326
22327#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22328VKAPI_ATTR void VKAPI_CALL vkGetDataGraphPipelineSessionMemoryRequirementsARM(
22329 VkDevice device,
22330 const VkDataGraphPipelineSessionMemoryRequirementsInfoARM* pInfo,
22331 VkMemoryRequirements2* pMemoryRequirements);
22332#endif
22333
22334#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22335VKAPI_ATTR VkResult VKAPI_CALL vkBindDataGraphPipelineSessionMemoryARM(
22336 VkDevice device,
22337 uint32_t bindInfoCount,
22338 const VkBindDataGraphPipelineSessionMemoryInfoARM* pBindInfos);
22339#endif
22340
22341#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22342VKAPI_ATTR void VKAPI_CALL vkDestroyDataGraphPipelineSessionARM(
22343 VkDevice device,
22344 VkDataGraphPipelineSessionARM session,
22345 const VkAllocationCallbacks* pAllocator);
22346#endif
22347
22348#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22349VKAPI_ATTR void VKAPI_CALL vkCmdDispatchDataGraphARM(
22350 VkCommandBuffer commandBuffer,
22351 VkDataGraphPipelineSessionARM session,
22352 const VkDataGraphPipelineDispatchInfoARM* pInfo);
22353#endif
22354
22355#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22356VKAPI_ATTR VkResult VKAPI_CALL vkGetDataGraphPipelineAvailablePropertiesARM(
22357 VkDevice device,
22358 const VkDataGraphPipelineInfoARM* pPipelineInfo,
22359 uint32_t* pPropertiesCount,
22360 VkDataGraphPipelinePropertyARM* pProperties);
22361#endif
22362
22363#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22364VKAPI_ATTR VkResult VKAPI_CALL vkGetDataGraphPipelinePropertiesARM(
22365 VkDevice device,
22366 const VkDataGraphPipelineInfoARM* pPipelineInfo,
22367 uint32_t propertiesCount,
22368 VkDataGraphPipelinePropertyQueryResultARM* pProperties);
22369#endif
22370
22371#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22372VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceQueueFamilyDataGraphPropertiesARM(
22373 VkPhysicalDevice physicalDevice,
22374 uint32_t queueFamilyIndex,
22375 uint32_t* pQueueFamilyDataGraphPropertyCount,
22376 VkQueueFamilyDataGraphPropertiesARM* pQueueFamilyDataGraphProperties);
22377#endif
22378
22379#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22380VKAPI_ATTR void VKAPI_CALL vkGetPhysicalDeviceQueueFamilyDataGraphProcessingEnginePropertiesARM(
22381 VkPhysicalDevice physicalDevice,
22382 const VkPhysicalDeviceQueueFamilyDataGraphProcessingEngineInfoARM* pQueueFamilyDataGraphProcessingEngineInfo,
22383 VkQueueFamilyDataGraphProcessingEnginePropertiesARM* pQueueFamilyDataGraphProcessingEngineProperties);
22384#endif
22385#endif
22386
22387
22388// VK_QCOM_multiview_per_view_render_areas is a preprocessor guard. Do not pass it to API calls.
22389#define VK_QCOM_multiview_per_view_render_areas 1
22390#define VK_QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_SPEC_VERSION 1
22391#define VK_QCOM_MULTIVIEW_PER_VIEW_RENDER_AREAS_EXTENSION_NAME "VK_QCOM_multiview_per_view_render_areas"
22392typedef struct VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM {
22393 VkStructureType sType;
22394 void* pNext;
22395 VkBool32 multiviewPerViewRenderAreas;
22396} VkPhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM;
22397
22398typedef struct VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM {
22399 VkStructureType sType;
22400 const void* pNext;
22401 uint32_t perViewRenderAreaCount;
22402 const VkRect2D* pPerViewRenderAreas;
22403} VkMultiviewPerViewRenderAreasRenderPassBeginInfoQCOM;
22404
22405
22406
22407// VK_NV_per_stage_descriptor_set is a preprocessor guard. Do not pass it to API calls.
22408#define VK_NV_per_stage_descriptor_set 1
22409#define VK_NV_PER_STAGE_DESCRIPTOR_SET_SPEC_VERSION 1
22410#define VK_NV_PER_STAGE_DESCRIPTOR_SET_EXTENSION_NAME "VK_NV_per_stage_descriptor_set"
22411typedef struct VkPhysicalDevicePerStageDescriptorSetFeaturesNV {
22412 VkStructureType sType;
22413 void* pNext;
22414 VkBool32 perStageDescriptorSet;
22415 VkBool32 dynamicPipelineLayout;
22416} VkPhysicalDevicePerStageDescriptorSetFeaturesNV;
22417
22418
22419
22420// VK_QCOM_image_processing2 is a preprocessor guard. Do not pass it to API calls.
22421#define VK_QCOM_image_processing2 1
22422#define VK_QCOM_IMAGE_PROCESSING_2_SPEC_VERSION 1
22423#define VK_QCOM_IMAGE_PROCESSING_2_EXTENSION_NAME "VK_QCOM_image_processing2"
22424
22425typedef enum VkBlockMatchWindowCompareModeQCOM {
22426 VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MIN_QCOM = 0,
22427 VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_QCOM = 1,
22428 VK_BLOCK_MATCH_WINDOW_COMPARE_MODE_MAX_ENUM_QCOM = 0x7FFFFFFF
22429} VkBlockMatchWindowCompareModeQCOM;
22430typedef struct VkPhysicalDeviceImageProcessing2FeaturesQCOM {
22431 VkStructureType sType;
22432 void* pNext;
22433 VkBool32 textureBlockMatch2;
22434} VkPhysicalDeviceImageProcessing2FeaturesQCOM;
22435
22436typedef struct VkPhysicalDeviceImageProcessing2PropertiesQCOM {
22437 VkStructureType sType;
22438 void* pNext;
22439 VkExtent2D maxBlockMatchWindow;
22440} VkPhysicalDeviceImageProcessing2PropertiesQCOM;
22441
22442typedef struct VkSamplerBlockMatchWindowCreateInfoQCOM {
22443 VkStructureType sType;
22444 const void* pNext;
22445 VkExtent2D windowExtent;
22446 VkBlockMatchWindowCompareModeQCOM windowCompareMode;
22447} VkSamplerBlockMatchWindowCreateInfoQCOM;
22448
22449
22450
22451// VK_QCOM_filter_cubic_weights is a preprocessor guard. Do not pass it to API calls.
22452#define VK_QCOM_filter_cubic_weights 1
22453#define VK_QCOM_FILTER_CUBIC_WEIGHTS_SPEC_VERSION 1
22454#define VK_QCOM_FILTER_CUBIC_WEIGHTS_EXTENSION_NAME "VK_QCOM_filter_cubic_weights"
22455
22456typedef enum VkCubicFilterWeightsQCOM {
22457 VK_CUBIC_FILTER_WEIGHTS_CATMULL_ROM_QCOM = 0,
22458 VK_CUBIC_FILTER_WEIGHTS_ZERO_TANGENT_CARDINAL_QCOM = 1,
22459 VK_CUBIC_FILTER_WEIGHTS_B_SPLINE_QCOM = 2,
22460 VK_CUBIC_FILTER_WEIGHTS_MITCHELL_NETRAVALI_QCOM = 3,
22461 VK_CUBIC_FILTER_WEIGHTS_MAX_ENUM_QCOM = 0x7FFFFFFF
22462} VkCubicFilterWeightsQCOM;
22463typedef struct VkPhysicalDeviceCubicWeightsFeaturesQCOM {
22464 VkStructureType sType;
22465 void* pNext;
22466 VkBool32 selectableCubicWeights;
22467} VkPhysicalDeviceCubicWeightsFeaturesQCOM;
22468
22469typedef struct VkSamplerCubicWeightsCreateInfoQCOM {
22470 VkStructureType sType;
22471 const void* pNext;
22472 VkCubicFilterWeightsQCOM cubicWeights;
22473} VkSamplerCubicWeightsCreateInfoQCOM;
22474
22475typedef struct VkBlitImageCubicWeightsInfoQCOM {
22476 VkStructureType sType;
22477 const void* pNext;
22478 VkCubicFilterWeightsQCOM cubicWeights;
22479} VkBlitImageCubicWeightsInfoQCOM;
22480
22481
22482
22483// VK_QCOM_ycbcr_degamma is a preprocessor guard. Do not pass it to API calls.
22484#define VK_QCOM_ycbcr_degamma 1
22485#define VK_QCOM_YCBCR_DEGAMMA_SPEC_VERSION 1
22486#define VK_QCOM_YCBCR_DEGAMMA_EXTENSION_NAME "VK_QCOM_ycbcr_degamma"
22487typedef struct VkPhysicalDeviceYcbcrDegammaFeaturesQCOM {
22488 VkStructureType sType;
22489 void* pNext;
22490 VkBool32 ycbcrDegamma;
22491} VkPhysicalDeviceYcbcrDegammaFeaturesQCOM;
22492
22493typedef struct VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM {
22494 VkStructureType sType;
22495 void* pNext;
22496 VkBool32 enableYDegamma;
22497 VkBool32 enableCbCrDegamma;
22498} VkSamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM;
22499
22500
22501
22502// VK_QCOM_filter_cubic_clamp is a preprocessor guard. Do not pass it to API calls.
22503#define VK_QCOM_filter_cubic_clamp 1
22504#define VK_QCOM_FILTER_CUBIC_CLAMP_SPEC_VERSION 1
22505#define VK_QCOM_FILTER_CUBIC_CLAMP_EXTENSION_NAME "VK_QCOM_filter_cubic_clamp"
22506typedef struct VkPhysicalDeviceCubicClampFeaturesQCOM {
22507 VkStructureType sType;
22508 void* pNext;
22509 VkBool32 cubicRangeClamp;
22510} VkPhysicalDeviceCubicClampFeaturesQCOM;
22511
22512
22513
22514// VK_EXT_attachment_feedback_loop_dynamic_state is a preprocessor guard. Do not pass it to API calls.
22515#define VK_EXT_attachment_feedback_loop_dynamic_state 1
22516#define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_SPEC_VERSION 1
22517#define VK_EXT_ATTACHMENT_FEEDBACK_LOOP_DYNAMIC_STATE_EXTENSION_NAME "VK_EXT_attachment_feedback_loop_dynamic_state"
22518typedef struct VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT {
22519 VkStructureType sType;
22520 void* pNext;
22521 VkBool32 attachmentFeedbackLoopDynamicState;
22522} VkPhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT;
22523
22524typedef void (VKAPI_PTR *PFN_vkCmdSetAttachmentFeedbackLoopEnableEXT)(VkCommandBuffer commandBuffer, VkImageAspectFlags aspectMask);
22525
22526#ifndef VK_NO_PROTOTYPES
22527#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22528VKAPI_ATTR void VKAPI_CALL vkCmdSetAttachmentFeedbackLoopEnableEXT(
22529 VkCommandBuffer commandBuffer,
22530 VkImageAspectFlags aspectMask);
22531#endif
22532#endif
22533
22534
22535// VK_MSFT_layered_driver is a preprocessor guard. Do not pass it to API calls.
22536#define VK_MSFT_layered_driver 1
22537#define VK_MSFT_LAYERED_DRIVER_SPEC_VERSION 1
22538#define VK_MSFT_LAYERED_DRIVER_EXTENSION_NAME "VK_MSFT_layered_driver"
22539
22540typedef enum VkLayeredDriverUnderlyingApiMSFT {
22541 VK_LAYERED_DRIVER_UNDERLYING_API_NONE_MSFT = 0,
22542 VK_LAYERED_DRIVER_UNDERLYING_API_D3D12_MSFT = 1,
22543 VK_LAYERED_DRIVER_UNDERLYING_API_MAX_ENUM_MSFT = 0x7FFFFFFF
22544} VkLayeredDriverUnderlyingApiMSFT;
22545typedef struct VkPhysicalDeviceLayeredDriverPropertiesMSFT {
22546 VkStructureType sType;
22547 void* pNext;
22548 VkLayeredDriverUnderlyingApiMSFT underlyingAPI;
22549} VkPhysicalDeviceLayeredDriverPropertiesMSFT;
22550
22551
22552
22553// VK_NV_descriptor_pool_overallocation is a preprocessor guard. Do not pass it to API calls.
22554#define VK_NV_descriptor_pool_overallocation 1
22555#define VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_SPEC_VERSION 1
22556#define VK_NV_DESCRIPTOR_POOL_OVERALLOCATION_EXTENSION_NAME "VK_NV_descriptor_pool_overallocation"
22557typedef struct VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV {
22558 VkStructureType sType;
22559 void* pNext;
22560 VkBool32 descriptorPoolOverallocation;
22561} VkPhysicalDeviceDescriptorPoolOverallocationFeaturesNV;
22562
22563
22564
22565// VK_QCOM_tile_memory_heap is a preprocessor guard. Do not pass it to API calls.
22566#define VK_QCOM_tile_memory_heap 1
22567#define VK_QCOM_TILE_MEMORY_HEAP_SPEC_VERSION 1
22568#define VK_QCOM_TILE_MEMORY_HEAP_EXTENSION_NAME "VK_QCOM_tile_memory_heap"
22569typedef struct VkPhysicalDeviceTileMemoryHeapFeaturesQCOM {
22570 VkStructureType sType;
22571 void* pNext;
22572 VkBool32 tileMemoryHeap;
22573} VkPhysicalDeviceTileMemoryHeapFeaturesQCOM;
22574
22575typedef struct VkPhysicalDeviceTileMemoryHeapPropertiesQCOM {
22576 VkStructureType sType;
22577 void* pNext;
22578 VkBool32 queueSubmitBoundary;
22579 VkBool32 tileBufferTransfers;
22580} VkPhysicalDeviceTileMemoryHeapPropertiesQCOM;
22581
22582typedef struct VkTileMemoryRequirementsQCOM {
22583 VkStructureType sType;
22584 void* pNext;
22585 VkDeviceSize size;
22586 VkDeviceSize alignment;
22587} VkTileMemoryRequirementsQCOM;
22588
22589typedef struct VkTileMemoryBindInfoQCOM {
22590 VkStructureType sType;
22591 const void* pNext;
22592 VkDeviceMemory memory;
22593} VkTileMemoryBindInfoQCOM;
22594
22595typedef struct VkTileMemorySizeInfoQCOM {
22596 VkStructureType sType;
22597 const void* pNext;
22598 VkDeviceSize size;
22599} VkTileMemorySizeInfoQCOM;
22600
22601typedef void (VKAPI_PTR *PFN_vkCmdBindTileMemoryQCOM)(VkCommandBuffer commandBuffer, const VkTileMemoryBindInfoQCOM* pTileMemoryBindInfo);
22602
22603#ifndef VK_NO_PROTOTYPES
22604#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22605VKAPI_ATTR void VKAPI_CALL vkCmdBindTileMemoryQCOM(
22606 VkCommandBuffer commandBuffer,
22607 const VkTileMemoryBindInfoQCOM* pTileMemoryBindInfo);
22608#endif
22609#endif
22610
22611
22612// VK_NV_display_stereo is a preprocessor guard. Do not pass it to API calls.
22613#define VK_NV_display_stereo 1
22614#define VK_NV_DISPLAY_STEREO_SPEC_VERSION 1
22615#define VK_NV_DISPLAY_STEREO_EXTENSION_NAME "VK_NV_display_stereo"
22616
22617typedef enum VkDisplaySurfaceStereoTypeNV {
22618 VK_DISPLAY_SURFACE_STEREO_TYPE_NONE_NV = 0,
22619 VK_DISPLAY_SURFACE_STEREO_TYPE_ONBOARD_DIN_NV = 1,
22620 VK_DISPLAY_SURFACE_STEREO_TYPE_HDMI_3D_NV = 2,
22621 VK_DISPLAY_SURFACE_STEREO_TYPE_INBAND_DISPLAYPORT_NV = 3,
22622 VK_DISPLAY_SURFACE_STEREO_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
22623} VkDisplaySurfaceStereoTypeNV;
22624typedef struct VkDisplaySurfaceStereoCreateInfoNV {
22625 VkStructureType sType;
22626 const void* pNext;
22627 VkDisplaySurfaceStereoTypeNV stereoType;
22628} VkDisplaySurfaceStereoCreateInfoNV;
22629
22630typedef struct VkDisplayModeStereoPropertiesNV {
22631 VkStructureType sType;
22632 const void* pNext;
22633 VkBool32 hdmi3DSupported;
22634} VkDisplayModeStereoPropertiesNV;
22635
22636
22637
22638// VK_NV_raw_access_chains is a preprocessor guard. Do not pass it to API calls.
22639#define VK_NV_raw_access_chains 1
22640#define VK_NV_RAW_ACCESS_CHAINS_SPEC_VERSION 1
22641#define VK_NV_RAW_ACCESS_CHAINS_EXTENSION_NAME "VK_NV_raw_access_chains"
22642typedef struct VkPhysicalDeviceRawAccessChainsFeaturesNV {
22643 VkStructureType sType;
22644 void* pNext;
22645 VkBool32 shaderRawAccessChains;
22646} VkPhysicalDeviceRawAccessChainsFeaturesNV;
22647
22648
22649
22650// VK_NV_external_compute_queue is a preprocessor guard. Do not pass it to API calls.
22651#define VK_NV_external_compute_queue 1
22652VK_DEFINE_HANDLE(VkExternalComputeQueueNV)
22653#define VK_NV_EXTERNAL_COMPUTE_QUEUE_SPEC_VERSION 1
22654#define VK_NV_EXTERNAL_COMPUTE_QUEUE_EXTENSION_NAME "VK_NV_external_compute_queue"
22655typedef struct VkExternalComputeQueueDeviceCreateInfoNV {
22656 VkStructureType sType;
22657 const void* pNext;
22658 uint32_t reservedExternalQueues;
22659} VkExternalComputeQueueDeviceCreateInfoNV;
22660
22661typedef struct VkExternalComputeQueueCreateInfoNV {
22662 VkStructureType sType;
22663 const void* pNext;
22664 VkQueue preferredQueue;
22665} VkExternalComputeQueueCreateInfoNV;
22666
22667typedef struct VkExternalComputeQueueDataParamsNV {
22668 VkStructureType sType;
22669 const void* pNext;
22670 uint32_t deviceIndex;
22671} VkExternalComputeQueueDataParamsNV;
22672
22673typedef struct VkPhysicalDeviceExternalComputeQueuePropertiesNV {
22674 VkStructureType sType;
22675 void* pNext;
22676 uint32_t externalDataSize;
22677 uint32_t maxExternalQueues;
22678} VkPhysicalDeviceExternalComputeQueuePropertiesNV;
22679
22680typedef VkResult (VKAPI_PTR *PFN_vkCreateExternalComputeQueueNV)(VkDevice device, const VkExternalComputeQueueCreateInfoNV* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkExternalComputeQueueNV* pExternalQueue);
22681typedef void (VKAPI_PTR *PFN_vkDestroyExternalComputeQueueNV)(VkDevice device, VkExternalComputeQueueNV externalQueue, const VkAllocationCallbacks* pAllocator);
22682typedef void (VKAPI_PTR *PFN_vkGetExternalComputeQueueDataNV)(VkExternalComputeQueueNV externalQueue, VkExternalComputeQueueDataParamsNV* params, void* pData);
22683
22684#ifndef VK_NO_PROTOTYPES
22685#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22686VKAPI_ATTR VkResult VKAPI_CALL vkCreateExternalComputeQueueNV(
22687 VkDevice device,
22688 const VkExternalComputeQueueCreateInfoNV* pCreateInfo,
22689 const VkAllocationCallbacks* pAllocator,
22690 VkExternalComputeQueueNV* pExternalQueue);
22691#endif
22692
22693#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22694VKAPI_ATTR void VKAPI_CALL vkDestroyExternalComputeQueueNV(
22695 VkDevice device,
22696 VkExternalComputeQueueNV externalQueue,
22697 const VkAllocationCallbacks* pAllocator);
22698#endif
22699
22700#ifndef VK_ONLY_EXPORTED_PROTOTYPES
22701VKAPI_ATTR void VKAPI_CALL vkGetExternalComputeQueueDataNV(
22702 VkExternalComputeQueueNV externalQueue,
22703 VkExternalComputeQueueDataParamsNV* params,
22704 void* pData);
22705#endif
22706#endif
22707
22708
22709// VK_NV_command_buffer_inheritance is a preprocessor guard. Do not pass it to API calls.
22710#define VK_NV_command_buffer_inheritance 1
22711#define VK_NV_COMMAND_BUFFER_INHERITANCE_SPEC_VERSION 1
22712#define VK_NV_COMMAND_BUFFER_INHERITANCE_EXTENSION_NAME "VK_NV_command_buffer_inheritance"
22713typedef struct VkPhysicalDeviceCommandBufferInheritanceFeaturesNV {
22714 VkStructureType sType;
22715 void* pNext;
22716 VkBool32 commandBufferInheritance;
22717} VkPhysicalDeviceCommandBufferInheritanceFeaturesNV;
22718
22719
22720
22721// VK_NV_shader_atomic_float16_vector is a preprocessor guard. Do not pass it to API calls.
22722#define VK_NV_shader_atomic_float16_vector 1
22723#define VK_NV_SHADER_ATOMIC_FLOAT16_VECTOR_SPEC_VERSION 1
22724#define VK_NV_SHADER_ATOMIC_FLOAT16_VECTOR_EXTENSION_NAME "VK_NV_shader_atomic_float16_vector"
22725typedef struct VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV {
22726 VkStructureType sType;
22727 void* pNext;
22728 VkBool32 shaderFloat16VectorAtomics;
22729} VkPhysicalDeviceShaderAtomicFloat16VectorFeaturesNV;
22730
22731
22732
22733// VK_EXT_shader_replicated_composites is a preprocessor guard. Do not pass it to API calls.
22734#define VK_EXT_shader_replicated_composites 1
22735#define VK_EXT_SHADER_REPLICATED_COMPOSITES_SPEC_VERSION 1
22736#define VK_EXT_SHADER_REPLICATED_COMPOSITES_EXTENSION_NAME "VK_EXT_shader_replicated_composites"
22737typedef struct VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT {
22738 VkStructureType sType;
22739 void* pNext;
22740 VkBool32 shaderReplicatedComposites;
22741} VkPhysicalDeviceShaderReplicatedCompositesFeaturesEXT;
22742
22743
22744
22745// VK_EXT_shader_float8 is a preprocessor guard. Do not pass it to API calls.
22746#define VK_EXT_shader_float8 1
22747#define VK_EXT_SHADER_FLOAT8_SPEC_VERSION 1
22748#define VK_EXT_SHADER_FLOAT8_EXTENSION_NAME "VK_EXT_shader_float8"
22749typedef struct VkPhysicalDeviceShaderFloat8FeaturesEXT {
22750 VkStructureType sType;
22751 void* pNext;
22752 VkBool32 shaderFloat8;
22753 VkBool32 shaderFloat8CooperativeMatrix;
22754} VkPhysicalDeviceShaderFloat8FeaturesEXT;
22755
22756
22757
22758// VK_NV_ray_tracing_validation is a preprocessor guard. Do not pass it to API calls.
22759#define VK_NV_ray_tracing_validation 1
22760#define VK_NV_RAY_TRACING_VALIDATION_SPEC_VERSION 1
22761#define VK_NV_RAY_TRACING_VALIDATION_EXTENSION_NAME "VK_NV_ray_tracing_validation"
22762typedef struct VkPhysicalDeviceRayTracingValidationFeaturesNV {
22763 VkStructureType sType;
22764 void* pNext;
22765 VkBool32 rayTracingValidation;
22766} VkPhysicalDeviceRayTracingValidationFeaturesNV;
22767
22768
22769
22770// VK_NV_cluster_acceleration_structure is a preprocessor guard. Do not pass it to API calls.
22771#define VK_NV_cluster_acceleration_structure 1
22772#define VK_NV_CLUSTER_ACCELERATION_STRUCTURE_SPEC_VERSION 4
22773#define VK_NV_CLUSTER_ACCELERATION_STRUCTURE_EXTENSION_NAME "VK_NV_cluster_acceleration_structure"
22774
22775typedef enum VkClusterAccelerationStructureTypeNV {
22776 VK_CLUSTER_ACCELERATION_STRUCTURE_TYPE_CLUSTERS_BOTTOM_LEVEL_NV = 0,
22777 VK_CLUSTER_ACCELERATION_STRUCTURE_TYPE_TRIANGLE_CLUSTER_NV = 1,
22778 VK_CLUSTER_ACCELERATION_STRUCTURE_TYPE_TRIANGLE_CLUSTER_TEMPLATE_NV = 2,
22779 VK_CLUSTER_ACCELERATION_STRUCTURE_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
22780} VkClusterAccelerationStructureTypeNV;
22781
22782typedef enum VkClusterAccelerationStructureOpTypeNV {
22783 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_MOVE_OBJECTS_NV = 0,
22784 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_BUILD_CLUSTERS_BOTTOM_LEVEL_NV = 1,
22785 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_BUILD_TRIANGLE_CLUSTER_NV = 2,
22786 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_BUILD_TRIANGLE_CLUSTER_TEMPLATE_NV = 3,
22787 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_INSTANTIATE_TRIANGLE_CLUSTER_NV = 4,
22788 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_GET_CLUSTER_TEMPLATE_INDICES_NV = 5,
22789 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
22790} VkClusterAccelerationStructureOpTypeNV;
22791
22792typedef enum VkClusterAccelerationStructureOpModeNV {
22793 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_IMPLICIT_DESTINATIONS_NV = 0,
22794 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_EXPLICIT_DESTINATIONS_NV = 1,
22795 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_COMPUTE_SIZES_NV = 2,
22796 VK_CLUSTER_ACCELERATION_STRUCTURE_OP_MODE_MAX_ENUM_NV = 0x7FFFFFFF
22797} VkClusterAccelerationStructureOpModeNV;
22798
22799typedef enum VkClusterAccelerationStructureAddressResolutionFlagBitsNV {
22800 VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_NONE_NV = 0,
22801 VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_DST_IMPLICIT_DATA_BIT_NV = 0x00000001,
22802 VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_SCRATCH_DATA_BIT_NV = 0x00000002,
22803 VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_DST_ADDRESS_ARRAY_BIT_NV = 0x00000004,
22804 VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_DST_SIZES_ARRAY_BIT_NV = 0x00000008,
22805 VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_SRC_INFOS_ARRAY_BIT_NV = 0x00000010,
22806 VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_INDIRECTED_SRC_INFOS_COUNT_BIT_NV = 0x00000020,
22807 VK_CLUSTER_ACCELERATION_STRUCTURE_ADDRESS_RESOLUTION_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
22808} VkClusterAccelerationStructureAddressResolutionFlagBitsNV;
22809typedef VkFlags VkClusterAccelerationStructureAddressResolutionFlagsNV;
22810
22811typedef enum VkClusterAccelerationStructureClusterFlagBitsNV {
22812 VK_CLUSTER_ACCELERATION_STRUCTURE_CLUSTER_ALLOW_DISABLE_OPACITY_MICROMAPS_NV = 0x00000001,
22813 VK_CLUSTER_ACCELERATION_STRUCTURE_CLUSTER_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
22814} VkClusterAccelerationStructureClusterFlagBitsNV;
22815typedef VkFlags VkClusterAccelerationStructureClusterFlagsNV;
22816
22817typedef enum VkClusterAccelerationStructureGeometryFlagBitsNV {
22818 VK_CLUSTER_ACCELERATION_STRUCTURE_GEOMETRY_CULL_DISABLE_BIT_NV = 0x00000001,
22819 VK_CLUSTER_ACCELERATION_STRUCTURE_GEOMETRY_NO_DUPLICATE_ANYHIT_INVOCATION_BIT_NV = 0x00000002,
22820 VK_CLUSTER_ACCELERATION_STRUCTURE_GEOMETRY_OPAQUE_BIT_NV = 0x00000004,
22821 VK_CLUSTER_ACCELERATION_STRUCTURE_GEOMETRY_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
22822} VkClusterAccelerationStructureGeometryFlagBitsNV;
22823typedef VkFlags VkClusterAccelerationStructureGeometryFlagsNV;
22824
22825typedef enum VkClusterAccelerationStructureIndexFormatFlagBitsNV {
22826 VK_CLUSTER_ACCELERATION_STRUCTURE_INDEX_FORMAT_8BIT_NV = 0x00000001,
22827 VK_CLUSTER_ACCELERATION_STRUCTURE_INDEX_FORMAT_16BIT_NV = 0x00000002,
22828 VK_CLUSTER_ACCELERATION_STRUCTURE_INDEX_FORMAT_32BIT_NV = 0x00000004,
22829 VK_CLUSTER_ACCELERATION_STRUCTURE_INDEX_FORMAT_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
22830} VkClusterAccelerationStructureIndexFormatFlagBitsNV;
22831typedef VkFlags VkClusterAccelerationStructureIndexFormatFlagsNV;
22832typedef struct VkPhysicalDeviceClusterAccelerationStructureFeaturesNV {
22833 VkStructureType sType;
22834 void* pNext;
22835 VkBool32 clusterAccelerationStructure;
22836} VkPhysicalDeviceClusterAccelerationStructureFeaturesNV;
22837
22838typedef struct VkPhysicalDeviceClusterAccelerationStructurePropertiesNV {
22839 VkStructureType sType;
22840 void* pNext;
22841 uint32_t maxVerticesPerCluster;
22842 uint32_t maxTrianglesPerCluster;
22843 uint32_t clusterScratchByteAlignment;
22844 uint32_t clusterByteAlignment;
22845 uint32_t clusterTemplateByteAlignment;
22846 uint32_t clusterBottomLevelByteAlignment;
22847 uint32_t clusterTemplateBoundsByteAlignment;
22848 uint32_t maxClusterGeometryIndex;
22849} VkPhysicalDeviceClusterAccelerationStructurePropertiesNV;
22850
22851typedef struct VkClusterAccelerationStructureClustersBottomLevelInputNV {
22852 VkStructureType sType;
22853 void* pNext;
22854 uint32_t maxTotalClusterCount;
22855 uint32_t maxClusterCountPerAccelerationStructure;
22856} VkClusterAccelerationStructureClustersBottomLevelInputNV;
22857
22858typedef struct VkClusterAccelerationStructureTriangleClusterInputNV {
22859 VkStructureType sType;
22860 void* pNext;
22861 VkFormat vertexFormat;
22862 uint32_t maxGeometryIndexValue;
22863 uint32_t maxClusterUniqueGeometryCount;
22864 uint32_t maxClusterTriangleCount;
22865 uint32_t maxClusterVertexCount;
22866 uint32_t maxTotalTriangleCount;
22867 uint32_t maxTotalVertexCount;
22868 uint32_t minPositionTruncateBitCount;
22869} VkClusterAccelerationStructureTriangleClusterInputNV;
22870
22871typedef struct VkClusterAccelerationStructureMoveObjectsInputNV {
22872 VkStructureType sType;
22873 void* pNext;
22874 VkClusterAccelerationStructureTypeNV type;
22875 VkBool32 noMoveOverlap;
22876 VkDeviceSize maxMovedBytes;
22877} VkClusterAccelerationStructureMoveObjectsInputNV;
22878
22879typedef union VkClusterAccelerationStructureOpInputNV {
22880 VkClusterAccelerationStructureClustersBottomLevelInputNV* pClustersBottomLevel;
22881 VkClusterAccelerationStructureTriangleClusterInputNV* pTriangleClusters;
22882 VkClusterAccelerationStructureMoveObjectsInputNV* pMoveObjects;
22883} VkClusterAccelerationStructureOpInputNV;
22884
22885typedef struct VkClusterAccelerationStructureInputInfoNV {
22886 VkStructureType sType;
22887 void* pNext;
22888 uint32_t maxAccelerationStructureCount;
22889 VkBuildAccelerationStructureFlagsKHR flags;
22890 VkClusterAccelerationStructureOpTypeNV opType;
22891 VkClusterAccelerationStructureOpModeNV opMode;
22892 VkClusterAccelerationStructureOpInputNV opInput;
22893} VkClusterAccelerationStructureInputInfoNV;
22894
22895typedef struct VkStridedDeviceAddressRegionKHR {
22896 VkDeviceAddress deviceAddress;
22897 VkDeviceSize stride;
22898 VkDeviceSize size;
22899} VkStridedDeviceAddressRegionKHR;
22900
22901typedef struct VkClusterAccelerationStructureCommandsInfoNV {
22902 VkStructureType sType;
22903 void* pNext;
22904 VkClusterAccelerationStructureInputInfoNV input;
22905 VkDeviceAddress dstImplicitData;
22906 VkDeviceAddress scratchData;
22907 VkStridedDeviceAddressRegionKHR dstAddressesArray;
22908 VkStridedDeviceAddressRegionKHR dstSizesArray;
22909 VkStridedDeviceAddressRegionKHR srcInfosArray;
22910 VkDeviceAddress srcInfosCount;
22911 VkClusterAccelerationStructureAddressResolutionFlagsNV addressResolutionFlags;
22912} VkClusterAccelerationStructureCommandsInfoNV;
22913
22914typedef struct VkStridedDeviceAddressNV {
22915 VkDeviceAddress startAddress;
22916 VkDeviceSize strideInBytes;
22917} VkStridedDeviceAddressNV;
22918
22919typedef struct VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV {
22920 uint32_t geometryIndex:24;
22921 uint32_t reserved:5;
22922 uint32_t geometryFlags:3;
22923} VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV;
22924
22925typedef struct VkClusterAccelerationStructureMoveObjectsInfoNV {
22926 VkDeviceAddress srcAccelerationStructure;
22927} VkClusterAccelerationStructureMoveObjectsInfoNV;
22928
22929typedef struct VkClusterAccelerationStructureBuildClustersBottomLevelInfoNV {
22930 uint32_t clusterReferencesCount;
22931 uint32_t clusterReferencesStride;
22932 VkDeviceAddress clusterReferences;
22933} VkClusterAccelerationStructureBuildClustersBottomLevelInfoNV;
22934
22935typedef struct VkClusterAccelerationStructureBuildTriangleClusterInfoNV {
22936 uint32_t clusterID;
22937 VkClusterAccelerationStructureClusterFlagsNV clusterFlags;
22938 uint32_t triangleCount:9;
22939 uint32_t vertexCount:9;
22940 uint32_t positionTruncateBitCount:6;
22941 uint32_t indexType:4;
22942 uint32_t opacityMicromapIndexType:4;
22943 VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV baseGeometryIndexAndGeometryFlags;
22944 uint16_t indexBufferStride;
22945 uint16_t vertexBufferStride;
22946 uint16_t geometryIndexAndFlagsBufferStride;
22947 uint16_t opacityMicromapIndexBufferStride;
22948 VkDeviceAddress indexBuffer;
22949 VkDeviceAddress vertexBuffer;
22950 VkDeviceAddress geometryIndexAndFlagsBuffer;
22951 VkDeviceAddress opacityMicromapArray;
22952 VkDeviceAddress opacityMicromapIndexBuffer;
22953} VkClusterAccelerationStructureBuildTriangleClusterInfoNV;
22954
22955typedef struct VkClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV {
22956 uint32_t clusterID;
22957 VkClusterAccelerationStructureClusterFlagsNV clusterFlags;
22958 uint32_t triangleCount:9;
22959 uint32_t vertexCount:9;
22960 uint32_t positionTruncateBitCount:6;
22961 uint32_t indexType:4;
22962 uint32_t opacityMicromapIndexType:4;
22963 VkClusterAccelerationStructureGeometryIndexAndGeometryFlagsNV baseGeometryIndexAndGeometryFlags;
22964 uint16_t indexBufferStride;
22965 uint16_t vertexBufferStride;
22966 uint16_t geometryIndexAndFlagsBufferStride;
22967 uint16_t opacityMicromapIndexBufferStride;
22968 VkDeviceAddress indexBuffer;
22969 VkDeviceAddress vertexBuffer;
22970 VkDeviceAddress geometryIndexAndFlagsBuffer;
22971 VkDeviceAddress opacityMicromapArray;
22972 VkDeviceAddress opacityMicromapIndexBuffer;
22973 VkDeviceAddress instantiationBoundingBoxLimit;
22974} VkClusterAccelerationStructureBuildTriangleClusterTemplateInfoNV;
22975
22976typedef struct VkClusterAccelerationStructureInstantiateClusterInfoNV {
22977 uint32_t clusterIdOffset;
22978 uint32_t geometryIndexOffset:24;
22979 uint32_t reserved:8;
22980 VkDeviceAddress clusterTemplateAddress;
22981 VkStridedDeviceAddressNV vertexBuffer;
22982} VkClusterAccelerationStructureInstantiateClusterInfoNV;
22983
22984typedef struct VkClusterAccelerationStructureGetTemplateIndicesInfoNV {
22985 VkDeviceAddress clusterTemplateAddress;
22986} VkClusterAccelerationStructureGetTemplateIndicesInfoNV;
22987
22988typedef struct VkAccelerationStructureBuildSizesInfoKHR {
22989 VkStructureType sType;
22990 const void* pNext;
22991 VkDeviceSize accelerationStructureSize;
22992 VkDeviceSize updateScratchSize;
22993 VkDeviceSize buildScratchSize;
22994} VkAccelerationStructureBuildSizesInfoKHR;
22995
22996typedef struct VkRayTracingPipelineClusterAccelerationStructureCreateInfoNV {
22997 VkStructureType sType;
22998 void* pNext;
22999 VkBool32 allowClusterAccelerationStructure;
23000} VkRayTracingPipelineClusterAccelerationStructureCreateInfoNV;
23001
23002typedef void (VKAPI_PTR *PFN_vkGetClusterAccelerationStructureBuildSizesNV)(VkDevice device, const VkClusterAccelerationStructureInputInfoNV* pInfo, VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo);
23003typedef void (VKAPI_PTR *PFN_vkCmdBuildClusterAccelerationStructureIndirectNV)(VkCommandBuffer commandBuffer, const VkClusterAccelerationStructureCommandsInfoNV* pCommandInfos);
23004
23005#ifndef VK_NO_PROTOTYPES
23006#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23007VKAPI_ATTR void VKAPI_CALL vkGetClusterAccelerationStructureBuildSizesNV(
23008 VkDevice device,
23009 const VkClusterAccelerationStructureInputInfoNV* pInfo,
23010 VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo);
23011#endif
23012
23013#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23014VKAPI_ATTR void VKAPI_CALL vkCmdBuildClusterAccelerationStructureIndirectNV(
23015 VkCommandBuffer commandBuffer,
23016 const VkClusterAccelerationStructureCommandsInfoNV* pCommandInfos);
23017#endif
23018#endif
23019
23020
23021// VK_NV_partitioned_acceleration_structure is a preprocessor guard. Do not pass it to API calls.
23022#define VK_NV_partitioned_acceleration_structure 1
23023#define VK_NV_PARTITIONED_ACCELERATION_STRUCTURE_SPEC_VERSION 1
23024#define VK_NV_PARTITIONED_ACCELERATION_STRUCTURE_EXTENSION_NAME "VK_NV_partitioned_acceleration_structure"
23025#define VK_PARTITIONED_ACCELERATION_STRUCTURE_PARTITION_INDEX_GLOBAL_NV (~0U)
23026
23027typedef enum VkPartitionedAccelerationStructureOpTypeNV {
23028 VK_PARTITIONED_ACCELERATION_STRUCTURE_OP_TYPE_WRITE_INSTANCE_NV = 0,
23029 VK_PARTITIONED_ACCELERATION_STRUCTURE_OP_TYPE_UPDATE_INSTANCE_NV = 1,
23030 VK_PARTITIONED_ACCELERATION_STRUCTURE_OP_TYPE_WRITE_PARTITION_TRANSLATION_NV = 2,
23031 VK_PARTITIONED_ACCELERATION_STRUCTURE_OP_TYPE_MAX_ENUM_NV = 0x7FFFFFFF
23032} VkPartitionedAccelerationStructureOpTypeNV;
23033
23034typedef enum VkPartitionedAccelerationStructureInstanceFlagBitsNV {
23035 VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_TRIANGLE_FACING_CULL_DISABLE_BIT_NV = 0x00000001,
23036 VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_TRIANGLE_FLIP_FACING_BIT_NV = 0x00000002,
23037 VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_FORCE_OPAQUE_BIT_NV = 0x00000004,
23038 VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_FORCE_NO_OPAQUE_BIT_NV = 0x00000008,
23039 VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_ENABLE_EXPLICIT_BOUNDING_BOX_NV = 0x00000010,
23040 VK_PARTITIONED_ACCELERATION_STRUCTURE_INSTANCE_FLAG_BITS_MAX_ENUM_NV = 0x7FFFFFFF
23041} VkPartitionedAccelerationStructureInstanceFlagBitsNV;
23042typedef VkFlags VkPartitionedAccelerationStructureInstanceFlagsNV;
23043typedef struct VkPhysicalDevicePartitionedAccelerationStructureFeaturesNV {
23044 VkStructureType sType;
23045 void* pNext;
23046 VkBool32 partitionedAccelerationStructure;
23047} VkPhysicalDevicePartitionedAccelerationStructureFeaturesNV;
23048
23049typedef struct VkPhysicalDevicePartitionedAccelerationStructurePropertiesNV {
23050 VkStructureType sType;
23051 void* pNext;
23052 uint32_t maxPartitionCount;
23053} VkPhysicalDevicePartitionedAccelerationStructurePropertiesNV;
23054
23055typedef struct VkPartitionedAccelerationStructureFlagsNV {
23056 VkStructureType sType;
23057 void* pNext;
23058 VkBool32 enablePartitionTranslation;
23059} VkPartitionedAccelerationStructureFlagsNV;
23060
23061typedef struct VkBuildPartitionedAccelerationStructureIndirectCommandNV {
23062 VkPartitionedAccelerationStructureOpTypeNV opType;
23063 uint32_t argCount;
23064 VkStridedDeviceAddressNV argData;
23065} VkBuildPartitionedAccelerationStructureIndirectCommandNV;
23066
23067typedef struct VkPartitionedAccelerationStructureWriteInstanceDataNV {
23068 VkTransformMatrixKHR transform;
23069 float explicitAABB[6];
23070 uint32_t instanceID;
23071 uint32_t instanceMask;
23072 uint32_t instanceContributionToHitGroupIndex;
23073 VkPartitionedAccelerationStructureInstanceFlagsNV instanceFlags;
23074 uint32_t instanceIndex;
23075 uint32_t partitionIndex;
23076 VkDeviceAddress accelerationStructure;
23077} VkPartitionedAccelerationStructureWriteInstanceDataNV;
23078
23079typedef struct VkPartitionedAccelerationStructureUpdateInstanceDataNV {
23080 uint32_t instanceIndex;
23081 uint32_t instanceContributionToHitGroupIndex;
23082 VkDeviceAddress accelerationStructure;
23083} VkPartitionedAccelerationStructureUpdateInstanceDataNV;
23084
23085typedef struct VkPartitionedAccelerationStructureWritePartitionTranslationDataNV {
23086 uint32_t partitionIndex;
23087 float partitionTranslation[3];
23088} VkPartitionedAccelerationStructureWritePartitionTranslationDataNV;
23089
23090typedef struct VkWriteDescriptorSetPartitionedAccelerationStructureNV {
23091 VkStructureType sType;
23092 void* pNext;
23093 uint32_t accelerationStructureCount;
23094 const VkDeviceAddress* pAccelerationStructures;
23095} VkWriteDescriptorSetPartitionedAccelerationStructureNV;
23096
23097typedef struct VkPartitionedAccelerationStructureInstancesInputNV {
23098 VkStructureType sType;
23099 void* pNext;
23100 VkBuildAccelerationStructureFlagsKHR flags;
23101 uint32_t instanceCount;
23102 uint32_t maxInstancePerPartitionCount;
23103 uint32_t partitionCount;
23104 uint32_t maxInstanceInGlobalPartitionCount;
23105} VkPartitionedAccelerationStructureInstancesInputNV;
23106
23107typedef struct VkBuildPartitionedAccelerationStructureInfoNV {
23108 VkStructureType sType;
23109 void* pNext;
23110 VkPartitionedAccelerationStructureInstancesInputNV input;
23111 VkDeviceAddress srcAccelerationStructureData;
23112 VkDeviceAddress dstAccelerationStructureData;
23113 VkDeviceAddress scratchData;
23114 VkDeviceAddress srcInfos;
23115 VkDeviceAddress srcInfosCount;
23116} VkBuildPartitionedAccelerationStructureInfoNV;
23117
23118typedef void (VKAPI_PTR *PFN_vkGetPartitionedAccelerationStructuresBuildSizesNV)(VkDevice device, const VkPartitionedAccelerationStructureInstancesInputNV* pInfo, VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo);
23119typedef void (VKAPI_PTR *PFN_vkCmdBuildPartitionedAccelerationStructuresNV)(VkCommandBuffer commandBuffer, const VkBuildPartitionedAccelerationStructureInfoNV* pBuildInfo);
23120
23121#ifndef VK_NO_PROTOTYPES
23122#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23123VKAPI_ATTR void VKAPI_CALL vkGetPartitionedAccelerationStructuresBuildSizesNV(
23124 VkDevice device,
23125 const VkPartitionedAccelerationStructureInstancesInputNV* pInfo,
23126 VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo);
23127#endif
23128
23129#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23130VKAPI_ATTR void VKAPI_CALL vkCmdBuildPartitionedAccelerationStructuresNV(
23131 VkCommandBuffer commandBuffer,
23132 const VkBuildPartitionedAccelerationStructureInfoNV* pBuildInfo);
23133#endif
23134#endif
23135
23136
23137// VK_EXT_device_generated_commands is a preprocessor guard. Do not pass it to API calls.
23138#define VK_EXT_device_generated_commands 1
23139VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectExecutionSetEXT)
23140VK_DEFINE_NON_DISPATCHABLE_HANDLE(VkIndirectCommandsLayoutEXT)
23141#define VK_EXT_DEVICE_GENERATED_COMMANDS_SPEC_VERSION 1
23142#define VK_EXT_DEVICE_GENERATED_COMMANDS_EXTENSION_NAME "VK_EXT_device_generated_commands"
23143
23144typedef enum VkIndirectExecutionSetInfoTypeEXT {
23145 VK_INDIRECT_EXECUTION_SET_INFO_TYPE_PIPELINES_EXT = 0,
23146 VK_INDIRECT_EXECUTION_SET_INFO_TYPE_SHADER_OBJECTS_EXT = 1,
23147 VK_INDIRECT_EXECUTION_SET_INFO_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
23148} VkIndirectExecutionSetInfoTypeEXT;
23149
23150typedef enum VkIndirectCommandsTokenTypeEXT {
23151 VK_INDIRECT_COMMANDS_TOKEN_TYPE_EXECUTION_SET_EXT = 0,
23152 VK_INDIRECT_COMMANDS_TOKEN_TYPE_PUSH_CONSTANT_EXT = 1,
23153 VK_INDIRECT_COMMANDS_TOKEN_TYPE_SEQUENCE_INDEX_EXT = 2,
23154 VK_INDIRECT_COMMANDS_TOKEN_TYPE_INDEX_BUFFER_EXT = 3,
23155 VK_INDIRECT_COMMANDS_TOKEN_TYPE_VERTEX_BUFFER_EXT = 4,
23156 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_EXT = 5,
23157 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_EXT = 6,
23158 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_INDEXED_COUNT_EXT = 7,
23159 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_COUNT_EXT = 8,
23160 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DISPATCH_EXT = 9,
23161 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_NV_EXT = 1000202002,
23162 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_NV_EXT = 1000202003,
23163 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_EXT = 1000328000,
23164 VK_INDIRECT_COMMANDS_TOKEN_TYPE_DRAW_MESH_TASKS_COUNT_EXT = 1000328001,
23165 VK_INDIRECT_COMMANDS_TOKEN_TYPE_TRACE_RAYS2_EXT = 1000386004,
23166 VK_INDIRECT_COMMANDS_TOKEN_TYPE_MAX_ENUM_EXT = 0x7FFFFFFF
23167} VkIndirectCommandsTokenTypeEXT;
23168
23169typedef enum VkIndirectCommandsInputModeFlagBitsEXT {
23170 VK_INDIRECT_COMMANDS_INPUT_MODE_VULKAN_INDEX_BUFFER_EXT = 0x00000001,
23171 VK_INDIRECT_COMMANDS_INPUT_MODE_DXGI_INDEX_BUFFER_EXT = 0x00000002,
23172 VK_INDIRECT_COMMANDS_INPUT_MODE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
23173} VkIndirectCommandsInputModeFlagBitsEXT;
23174typedef VkFlags VkIndirectCommandsInputModeFlagsEXT;
23175
23176typedef enum VkIndirectCommandsLayoutUsageFlagBitsEXT {
23177 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_EXPLICIT_PREPROCESS_BIT_EXT = 0x00000001,
23178 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_UNORDERED_SEQUENCES_BIT_EXT = 0x00000002,
23179 VK_INDIRECT_COMMANDS_LAYOUT_USAGE_FLAG_BITS_MAX_ENUM_EXT = 0x7FFFFFFF
23180} VkIndirectCommandsLayoutUsageFlagBitsEXT;
23181typedef VkFlags VkIndirectCommandsLayoutUsageFlagsEXT;
23182typedef struct VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT {
23183 VkStructureType sType;
23184 void* pNext;
23185 VkBool32 deviceGeneratedCommands;
23186 VkBool32 dynamicGeneratedPipelineLayout;
23187} VkPhysicalDeviceDeviceGeneratedCommandsFeaturesEXT;
23188
23189typedef struct VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT {
23190 VkStructureType sType;
23191 void* pNext;
23192 uint32_t maxIndirectPipelineCount;
23193 uint32_t maxIndirectShaderObjectCount;
23194 uint32_t maxIndirectSequenceCount;
23195 uint32_t maxIndirectCommandsTokenCount;
23196 uint32_t maxIndirectCommandsTokenOffset;
23197 uint32_t maxIndirectCommandsIndirectStride;
23198 VkIndirectCommandsInputModeFlagsEXT supportedIndirectCommandsInputModes;
23199 VkShaderStageFlags supportedIndirectCommandsShaderStages;
23200 VkShaderStageFlags supportedIndirectCommandsShaderStagesPipelineBinding;
23201 VkShaderStageFlags supportedIndirectCommandsShaderStagesShaderBinding;
23202 VkBool32 deviceGeneratedCommandsTransformFeedback;
23203 VkBool32 deviceGeneratedCommandsMultiDrawIndirectCount;
23204} VkPhysicalDeviceDeviceGeneratedCommandsPropertiesEXT;
23205
23206typedef struct VkGeneratedCommandsMemoryRequirementsInfoEXT {
23207 VkStructureType sType;
23208 const void* pNext;
23209 VkIndirectExecutionSetEXT indirectExecutionSet;
23210 VkIndirectCommandsLayoutEXT indirectCommandsLayout;
23211 uint32_t maxSequenceCount;
23212 uint32_t maxDrawCount;
23213} VkGeneratedCommandsMemoryRequirementsInfoEXT;
23214
23215typedef struct VkIndirectExecutionSetPipelineInfoEXT {
23216 VkStructureType sType;
23217 const void* pNext;
23218 VkPipeline initialPipeline;
23219 uint32_t maxPipelineCount;
23220} VkIndirectExecutionSetPipelineInfoEXT;
23221
23222typedef struct VkIndirectExecutionSetShaderLayoutInfoEXT {
23223 VkStructureType sType;
23224 const void* pNext;
23225 uint32_t setLayoutCount;
23226 const VkDescriptorSetLayout* pSetLayouts;
23227} VkIndirectExecutionSetShaderLayoutInfoEXT;
23228
23229typedef struct VkIndirectExecutionSetShaderInfoEXT {
23230 VkStructureType sType;
23231 const void* pNext;
23232 uint32_t shaderCount;
23233 const VkShaderEXT* pInitialShaders;
23234 const VkIndirectExecutionSetShaderLayoutInfoEXT* pSetLayoutInfos;
23235 uint32_t maxShaderCount;
23236 uint32_t pushConstantRangeCount;
23237 const VkPushConstantRange* pPushConstantRanges;
23238} VkIndirectExecutionSetShaderInfoEXT;
23239
23240typedef union VkIndirectExecutionSetInfoEXT {
23241 const VkIndirectExecutionSetPipelineInfoEXT* pPipelineInfo;
23242 const VkIndirectExecutionSetShaderInfoEXT* pShaderInfo;
23243} VkIndirectExecutionSetInfoEXT;
23244
23245typedef struct VkIndirectExecutionSetCreateInfoEXT {
23246 VkStructureType sType;
23247 const void* pNext;
23248 VkIndirectExecutionSetInfoTypeEXT type;
23249 VkIndirectExecutionSetInfoEXT info;
23250} VkIndirectExecutionSetCreateInfoEXT;
23251
23252typedef struct VkGeneratedCommandsInfoEXT {
23253 VkStructureType sType;
23254 const void* pNext;
23255 VkShaderStageFlags shaderStages;
23256 VkIndirectExecutionSetEXT indirectExecutionSet;
23257 VkIndirectCommandsLayoutEXT indirectCommandsLayout;
23258 VkDeviceAddress indirectAddress;
23259 VkDeviceSize indirectAddressSize;
23260 VkDeviceAddress preprocessAddress;
23261 VkDeviceSize preprocessSize;
23262 uint32_t maxSequenceCount;
23263 VkDeviceAddress sequenceCountAddress;
23264 uint32_t maxDrawCount;
23265} VkGeneratedCommandsInfoEXT;
23266
23267typedef struct VkWriteIndirectExecutionSetPipelineEXT {
23268 VkStructureType sType;
23269 const void* pNext;
23270 uint32_t index;
23271 VkPipeline pipeline;
23272} VkWriteIndirectExecutionSetPipelineEXT;
23273
23274typedef struct VkIndirectCommandsPushConstantTokenEXT {
23275 VkPushConstantRange updateRange;
23276} VkIndirectCommandsPushConstantTokenEXT;
23277
23278typedef struct VkIndirectCommandsVertexBufferTokenEXT {
23279 uint32_t vertexBindingUnit;
23280} VkIndirectCommandsVertexBufferTokenEXT;
23281
23282typedef struct VkIndirectCommandsIndexBufferTokenEXT {
23283 VkIndirectCommandsInputModeFlagBitsEXT mode;
23284} VkIndirectCommandsIndexBufferTokenEXT;
23285
23286typedef struct VkIndirectCommandsExecutionSetTokenEXT {
23287 VkIndirectExecutionSetInfoTypeEXT type;
23288 VkShaderStageFlags shaderStages;
23289} VkIndirectCommandsExecutionSetTokenEXT;
23290
23291typedef union VkIndirectCommandsTokenDataEXT {
23292 const VkIndirectCommandsPushConstantTokenEXT* pPushConstant;
23293 const VkIndirectCommandsVertexBufferTokenEXT* pVertexBuffer;
23294 const VkIndirectCommandsIndexBufferTokenEXT* pIndexBuffer;
23295 const VkIndirectCommandsExecutionSetTokenEXT* pExecutionSet;
23296} VkIndirectCommandsTokenDataEXT;
23297
23298typedef struct VkIndirectCommandsLayoutTokenEXT {
23299 VkStructureType sType;
23300 const void* pNext;
23301 VkIndirectCommandsTokenTypeEXT type;
23302 VkIndirectCommandsTokenDataEXT data;
23303 uint32_t offset;
23304} VkIndirectCommandsLayoutTokenEXT;
23305
23306typedef struct VkIndirectCommandsLayoutCreateInfoEXT {
23307 VkStructureType sType;
23308 const void* pNext;
23309 VkIndirectCommandsLayoutUsageFlagsEXT flags;
23310 VkShaderStageFlags shaderStages;
23311 uint32_t indirectStride;
23312 VkPipelineLayout pipelineLayout;
23313 uint32_t tokenCount;
23314 const VkIndirectCommandsLayoutTokenEXT* pTokens;
23315} VkIndirectCommandsLayoutCreateInfoEXT;
23316
23317typedef struct VkDrawIndirectCountIndirectCommandEXT {
23318 VkDeviceAddress bufferAddress;
23319 uint32_t stride;
23320 uint32_t commandCount;
23321} VkDrawIndirectCountIndirectCommandEXT;
23322
23323typedef struct VkBindVertexBufferIndirectCommandEXT {
23324 VkDeviceAddress bufferAddress;
23325 uint32_t size;
23326 uint32_t stride;
23327} VkBindVertexBufferIndirectCommandEXT;
23328
23329typedef struct VkBindIndexBufferIndirectCommandEXT {
23330 VkDeviceAddress bufferAddress;
23331 uint32_t size;
23332 VkIndexType indexType;
23333} VkBindIndexBufferIndirectCommandEXT;
23334
23335typedef struct VkGeneratedCommandsPipelineInfoEXT {
23336 VkStructureType sType;
23337 void* pNext;
23338 VkPipeline pipeline;
23339} VkGeneratedCommandsPipelineInfoEXT;
23340
23341typedef struct VkGeneratedCommandsShaderInfoEXT {
23342 VkStructureType sType;
23343 void* pNext;
23344 uint32_t shaderCount;
23345 const VkShaderEXT* pShaders;
23346} VkGeneratedCommandsShaderInfoEXT;
23347
23348typedef struct VkWriteIndirectExecutionSetShaderEXT {
23349 VkStructureType sType;
23350 const void* pNext;
23351 uint32_t index;
23352 VkShaderEXT shader;
23353} VkWriteIndirectExecutionSetShaderEXT;
23354
23355typedef void (VKAPI_PTR *PFN_vkGetGeneratedCommandsMemoryRequirementsEXT)(VkDevice device, const VkGeneratedCommandsMemoryRequirementsInfoEXT* pInfo, VkMemoryRequirements2* pMemoryRequirements);
23356typedef void (VKAPI_PTR *PFN_vkCmdPreprocessGeneratedCommandsEXT)(VkCommandBuffer commandBuffer, const VkGeneratedCommandsInfoEXT* pGeneratedCommandsInfo, VkCommandBuffer stateCommandBuffer);
23357typedef void (VKAPI_PTR *PFN_vkCmdExecuteGeneratedCommandsEXT)(VkCommandBuffer commandBuffer, VkBool32 isPreprocessed, const VkGeneratedCommandsInfoEXT* pGeneratedCommandsInfo);
23358typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectCommandsLayoutEXT)(VkDevice device, const VkIndirectCommandsLayoutCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectCommandsLayoutEXT* pIndirectCommandsLayout);
23359typedef void (VKAPI_PTR *PFN_vkDestroyIndirectCommandsLayoutEXT)(VkDevice device, VkIndirectCommandsLayoutEXT indirectCommandsLayout, const VkAllocationCallbacks* pAllocator);
23360typedef VkResult (VKAPI_PTR *PFN_vkCreateIndirectExecutionSetEXT)(VkDevice device, const VkIndirectExecutionSetCreateInfoEXT* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkIndirectExecutionSetEXT* pIndirectExecutionSet);
23361typedef void (VKAPI_PTR *PFN_vkDestroyIndirectExecutionSetEXT)(VkDevice device, VkIndirectExecutionSetEXT indirectExecutionSet, const VkAllocationCallbacks* pAllocator);
23362typedef void (VKAPI_PTR *PFN_vkUpdateIndirectExecutionSetPipelineEXT)(VkDevice device, VkIndirectExecutionSetEXT indirectExecutionSet, uint32_t executionSetWriteCount, const VkWriteIndirectExecutionSetPipelineEXT* pExecutionSetWrites);
23363typedef void (VKAPI_PTR *PFN_vkUpdateIndirectExecutionSetShaderEXT)(VkDevice device, VkIndirectExecutionSetEXT indirectExecutionSet, uint32_t executionSetWriteCount, const VkWriteIndirectExecutionSetShaderEXT* pExecutionSetWrites);
23364
23365#ifndef VK_NO_PROTOTYPES
23366#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23367VKAPI_ATTR void VKAPI_CALL vkGetGeneratedCommandsMemoryRequirementsEXT(
23368 VkDevice device,
23369 const VkGeneratedCommandsMemoryRequirementsInfoEXT* pInfo,
23370 VkMemoryRequirements2* pMemoryRequirements);
23371#endif
23372
23373#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23374VKAPI_ATTR void VKAPI_CALL vkCmdPreprocessGeneratedCommandsEXT(
23375 VkCommandBuffer commandBuffer,
23376 const VkGeneratedCommandsInfoEXT* pGeneratedCommandsInfo,
23377 VkCommandBuffer stateCommandBuffer);
23378#endif
23379
23380#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23381VKAPI_ATTR void VKAPI_CALL vkCmdExecuteGeneratedCommandsEXT(
23382 VkCommandBuffer commandBuffer,
23383 VkBool32 isPreprocessed,
23384 const VkGeneratedCommandsInfoEXT* pGeneratedCommandsInfo);
23385#endif
23386
23387#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23388VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectCommandsLayoutEXT(
23389 VkDevice device,
23390 const VkIndirectCommandsLayoutCreateInfoEXT* pCreateInfo,
23391 const VkAllocationCallbacks* pAllocator,
23392 VkIndirectCommandsLayoutEXT* pIndirectCommandsLayout);
23393#endif
23394
23395#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23396VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectCommandsLayoutEXT(
23397 VkDevice device,
23398 VkIndirectCommandsLayoutEXT indirectCommandsLayout,
23399 const VkAllocationCallbacks* pAllocator);
23400#endif
23401
23402#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23403VKAPI_ATTR VkResult VKAPI_CALL vkCreateIndirectExecutionSetEXT(
23404 VkDevice device,
23405 const VkIndirectExecutionSetCreateInfoEXT* pCreateInfo,
23406 const VkAllocationCallbacks* pAllocator,
23407 VkIndirectExecutionSetEXT* pIndirectExecutionSet);
23408#endif
23409
23410#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23411VKAPI_ATTR void VKAPI_CALL vkDestroyIndirectExecutionSetEXT(
23412 VkDevice device,
23413 VkIndirectExecutionSetEXT indirectExecutionSet,
23414 const VkAllocationCallbacks* pAllocator);
23415#endif
23416
23417#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23418VKAPI_ATTR void VKAPI_CALL vkUpdateIndirectExecutionSetPipelineEXT(
23419 VkDevice device,
23420 VkIndirectExecutionSetEXT indirectExecutionSet,
23421 uint32_t executionSetWriteCount,
23422 const VkWriteIndirectExecutionSetPipelineEXT* pExecutionSetWrites);
23423#endif
23424
23425#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23426VKAPI_ATTR void VKAPI_CALL vkUpdateIndirectExecutionSetShaderEXT(
23427 VkDevice device,
23428 VkIndirectExecutionSetEXT indirectExecutionSet,
23429 uint32_t executionSetWriteCount,
23430 const VkWriteIndirectExecutionSetShaderEXT* pExecutionSetWrites);
23431#endif
23432#endif
23433
23434
23435// VK_MESA_image_alignment_control is a preprocessor guard. Do not pass it to API calls.
23436#define VK_MESA_image_alignment_control 1
23437#define VK_MESA_IMAGE_ALIGNMENT_CONTROL_SPEC_VERSION 1
23438#define VK_MESA_IMAGE_ALIGNMENT_CONTROL_EXTENSION_NAME "VK_MESA_image_alignment_control"
23439typedef struct VkPhysicalDeviceImageAlignmentControlFeaturesMESA {
23440 VkStructureType sType;
23441 void* pNext;
23442 VkBool32 imageAlignmentControl;
23443} VkPhysicalDeviceImageAlignmentControlFeaturesMESA;
23444
23445typedef struct VkPhysicalDeviceImageAlignmentControlPropertiesMESA {
23446 VkStructureType sType;
23447 void* pNext;
23448 uint32_t supportedImageAlignmentMask;
23449} VkPhysicalDeviceImageAlignmentControlPropertiesMESA;
23450
23451typedef struct VkImageAlignmentControlCreateInfoMESA {
23452 VkStructureType sType;
23453 const void* pNext;
23454 uint32_t maximumRequestedAlignment;
23455} VkImageAlignmentControlCreateInfoMESA;
23456
23457
23458
23459// VK_EXT_depth_clamp_control is a preprocessor guard. Do not pass it to API calls.
23460#define VK_EXT_depth_clamp_control 1
23461#define VK_EXT_DEPTH_CLAMP_CONTROL_SPEC_VERSION 1
23462#define VK_EXT_DEPTH_CLAMP_CONTROL_EXTENSION_NAME "VK_EXT_depth_clamp_control"
23463typedef struct VkPhysicalDeviceDepthClampControlFeaturesEXT {
23464 VkStructureType sType;
23465 void* pNext;
23466 VkBool32 depthClampControl;
23467} VkPhysicalDeviceDepthClampControlFeaturesEXT;
23468
23469typedef struct VkPipelineViewportDepthClampControlCreateInfoEXT {
23470 VkStructureType sType;
23471 const void* pNext;
23472 VkDepthClampModeEXT depthClampMode;
23473 const VkDepthClampRangeEXT* pDepthClampRange;
23474} VkPipelineViewportDepthClampControlCreateInfoEXT;
23475
23476
23477
23478// VK_HUAWEI_hdr_vivid is a preprocessor guard. Do not pass it to API calls.
23479#define VK_HUAWEI_hdr_vivid 1
23480#define VK_HUAWEI_HDR_VIVID_SPEC_VERSION 1
23481#define VK_HUAWEI_HDR_VIVID_EXTENSION_NAME "VK_HUAWEI_hdr_vivid"
23482typedef struct VkPhysicalDeviceHdrVividFeaturesHUAWEI {
23483 VkStructureType sType;
23484 void* pNext;
23485 VkBool32 hdrVivid;
23486} VkPhysicalDeviceHdrVividFeaturesHUAWEI;
23487
23488typedef struct VkHdrVividDynamicMetadataHUAWEI {
23489 VkStructureType sType;
23490 const void* pNext;
23491 size_t dynamicMetadataSize;
23492 const void* pDynamicMetadata;
23493} VkHdrVividDynamicMetadataHUAWEI;
23494
23495
23496
23497// VK_NV_cooperative_matrix2 is a preprocessor guard. Do not pass it to API calls.
23498#define VK_NV_cooperative_matrix2 1
23499#define VK_NV_COOPERATIVE_MATRIX_2_SPEC_VERSION 1
23500#define VK_NV_COOPERATIVE_MATRIX_2_EXTENSION_NAME "VK_NV_cooperative_matrix2"
23501typedef struct VkCooperativeMatrixFlexibleDimensionsPropertiesNV {
23502 VkStructureType sType;
23503 void* pNext;
23504 uint32_t MGranularity;
23505 uint32_t NGranularity;
23506 uint32_t KGranularity;
23507 VkComponentTypeKHR AType;
23508 VkComponentTypeKHR BType;
23509 VkComponentTypeKHR CType;
23510 VkComponentTypeKHR ResultType;
23511 VkBool32 saturatingAccumulation;
23512 VkScopeKHR scope;
23513 uint32_t workgroupInvocations;
23514} VkCooperativeMatrixFlexibleDimensionsPropertiesNV;
23515
23516typedef struct VkPhysicalDeviceCooperativeMatrix2FeaturesNV {
23517 VkStructureType sType;
23518 void* pNext;
23519 VkBool32 cooperativeMatrixWorkgroupScope;
23520 VkBool32 cooperativeMatrixFlexibleDimensions;
23521 VkBool32 cooperativeMatrixReductions;
23522 VkBool32 cooperativeMatrixConversions;
23523 VkBool32 cooperativeMatrixPerElementOperations;
23524 VkBool32 cooperativeMatrixTensorAddressing;
23525 VkBool32 cooperativeMatrixBlockLoads;
23526} VkPhysicalDeviceCooperativeMatrix2FeaturesNV;
23527
23528typedef struct VkPhysicalDeviceCooperativeMatrix2PropertiesNV {
23529 VkStructureType sType;
23530 void* pNext;
23531 uint32_t cooperativeMatrixWorkgroupScopeMaxWorkgroupSize;
23532 uint32_t cooperativeMatrixFlexibleDimensionsMaxDimension;
23533 uint32_t cooperativeMatrixWorkgroupScopeReservedSharedMemory;
23534} VkPhysicalDeviceCooperativeMatrix2PropertiesNV;
23535
23536typedef VkResult (VKAPI_PTR *PFN_vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV)(VkPhysicalDevice physicalDevice, uint32_t* pPropertyCount, VkCooperativeMatrixFlexibleDimensionsPropertiesNV* pProperties);
23537
23538#ifndef VK_NO_PROTOTYPES
23539#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23540VKAPI_ATTR VkResult VKAPI_CALL vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV(
23541 VkPhysicalDevice physicalDevice,
23542 uint32_t* pPropertyCount,
23543 VkCooperativeMatrixFlexibleDimensionsPropertiesNV* pProperties);
23544#endif
23545#endif
23546
23547
23548// VK_ARM_pipeline_opacity_micromap is a preprocessor guard. Do not pass it to API calls.
23549#define VK_ARM_pipeline_opacity_micromap 1
23550#define VK_ARM_PIPELINE_OPACITY_MICROMAP_SPEC_VERSION 1
23551#define VK_ARM_PIPELINE_OPACITY_MICROMAP_EXTENSION_NAME "VK_ARM_pipeline_opacity_micromap"
23552typedef struct VkPhysicalDevicePipelineOpacityMicromapFeaturesARM {
23553 VkStructureType sType;
23554 void* pNext;
23555 VkBool32 pipelineOpacityMicromap;
23556} VkPhysicalDevicePipelineOpacityMicromapFeaturesARM;
23557
23558
23559
23560// VK_EXT_vertex_attribute_robustness is a preprocessor guard. Do not pass it to API calls.
23561#define VK_EXT_vertex_attribute_robustness 1
23562#define VK_EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_SPEC_VERSION 1
23563#define VK_EXT_VERTEX_ATTRIBUTE_ROBUSTNESS_EXTENSION_NAME "VK_EXT_vertex_attribute_robustness"
23564typedef struct VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT {
23565 VkStructureType sType;
23566 void* pNext;
23567 VkBool32 vertexAttributeRobustness;
23568} VkPhysicalDeviceVertexAttributeRobustnessFeaturesEXT;
23569
23570
23571
23572// VK_ARM_format_pack is a preprocessor guard. Do not pass it to API calls.
23573#define VK_ARM_format_pack 1
23574#define VK_ARM_FORMAT_PACK_SPEC_VERSION 1
23575#define VK_ARM_FORMAT_PACK_EXTENSION_NAME "VK_ARM_format_pack"
23576typedef struct VkPhysicalDeviceFormatPackFeaturesARM {
23577 VkStructureType sType;
23578 void* pNext;
23579 VkBool32 formatPack;
23580} VkPhysicalDeviceFormatPackFeaturesARM;
23581
23582
23583
23584// VK_VALVE_fragment_density_map_layered is a preprocessor guard. Do not pass it to API calls.
23585#define VK_VALVE_fragment_density_map_layered 1
23586#define VK_VALVE_FRAGMENT_DENSITY_MAP_LAYERED_SPEC_VERSION 1
23587#define VK_VALVE_FRAGMENT_DENSITY_MAP_LAYERED_EXTENSION_NAME "VK_VALVE_fragment_density_map_layered"
23588typedef struct VkPhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE {
23589 VkStructureType sType;
23590 void* pNext;
23591 VkBool32 fragmentDensityMapLayered;
23592} VkPhysicalDeviceFragmentDensityMapLayeredFeaturesVALVE;
23593
23594typedef struct VkPhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE {
23595 VkStructureType sType;
23596 void* pNext;
23597 uint32_t maxFragmentDensityMapLayers;
23598} VkPhysicalDeviceFragmentDensityMapLayeredPropertiesVALVE;
23599
23600typedef struct VkPipelineFragmentDensityMapLayeredCreateInfoVALVE {
23601 VkStructureType sType;
23602 const void* pNext;
23603 uint32_t maxFragmentDensityMapLayers;
23604} VkPipelineFragmentDensityMapLayeredCreateInfoVALVE;
23605
23606
23607
23608// VK_NV_present_metering is a preprocessor guard. Do not pass it to API calls.
23609#define VK_NV_present_metering 1
23610#define VK_NV_PRESENT_METERING_SPEC_VERSION 1
23611#define VK_NV_PRESENT_METERING_EXTENSION_NAME "VK_NV_present_metering"
23612typedef struct VkSetPresentConfigNV {
23613 VkStructureType sType;
23614 const void* pNext;
23615 uint32_t numFramesPerBatch;
23616 uint32_t presentConfigFeedback;
23617} VkSetPresentConfigNV;
23618
23619typedef struct VkPhysicalDevicePresentMeteringFeaturesNV {
23620 VkStructureType sType;
23621 void* pNext;
23622 VkBool32 presentMetering;
23623} VkPhysicalDevicePresentMeteringFeaturesNV;
23624
23625
23626
23627// VK_EXT_fragment_density_map_offset is a preprocessor guard. Do not pass it to API calls.
23628#define VK_EXT_fragment_density_map_offset 1
23629#define VK_EXT_FRAGMENT_DENSITY_MAP_OFFSET_SPEC_VERSION 1
23630#define VK_EXT_FRAGMENT_DENSITY_MAP_OFFSET_EXTENSION_NAME "VK_EXT_fragment_density_map_offset"
23631typedef struct VkRenderingEndInfoEXT {
23632 VkStructureType sType;
23633 const void* pNext;
23634} VkRenderingEndInfoEXT;
23635
23636typedef void (VKAPI_PTR *PFN_vkCmdEndRendering2EXT)(VkCommandBuffer commandBuffer, const VkRenderingEndInfoEXT* pRenderingEndInfo);
23637
23638#ifndef VK_NO_PROTOTYPES
23639#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23640VKAPI_ATTR void VKAPI_CALL vkCmdEndRendering2EXT(
23641 VkCommandBuffer commandBuffer,
23642 const VkRenderingEndInfoEXT* pRenderingEndInfo);
23643#endif
23644#endif
23645
23646
23647// VK_EXT_zero_initialize_device_memory is a preprocessor guard. Do not pass it to API calls.
23648#define VK_EXT_zero_initialize_device_memory 1
23649#define VK_EXT_ZERO_INITIALIZE_DEVICE_MEMORY_SPEC_VERSION 1
23650#define VK_EXT_ZERO_INITIALIZE_DEVICE_MEMORY_EXTENSION_NAME "VK_EXT_zero_initialize_device_memory"
23651typedef struct VkPhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT {
23652 VkStructureType sType;
23653 void* pNext;
23654 VkBool32 zeroInitializeDeviceMemory;
23655} VkPhysicalDeviceZeroInitializeDeviceMemoryFeaturesEXT;
23656
23657
23658
23659// VK_SEC_pipeline_cache_incremental_mode is a preprocessor guard. Do not pass it to API calls.
23660#define VK_SEC_pipeline_cache_incremental_mode 1
23661#define VK_SEC_PIPELINE_CACHE_INCREMENTAL_MODE_SPEC_VERSION 1
23662#define VK_SEC_PIPELINE_CACHE_INCREMENTAL_MODE_EXTENSION_NAME "VK_SEC_pipeline_cache_incremental_mode"
23663typedef struct VkPhysicalDevicePipelineCacheIncrementalModeFeaturesSEC {
23664 VkStructureType sType;
23665 void* pNext;
23666 VkBool32 pipelineCacheIncrementalMode;
23667} VkPhysicalDevicePipelineCacheIncrementalModeFeaturesSEC;
23668
23669
23670
23671// VK_KHR_acceleration_structure is a preprocessor guard. Do not pass it to API calls.
23672#define VK_KHR_acceleration_structure 1
23673#define VK_KHR_ACCELERATION_STRUCTURE_SPEC_VERSION 13
23674#define VK_KHR_ACCELERATION_STRUCTURE_EXTENSION_NAME "VK_KHR_acceleration_structure"
23675
23676typedef enum VkBuildAccelerationStructureModeKHR {
23677 VK_BUILD_ACCELERATION_STRUCTURE_MODE_BUILD_KHR = 0,
23678 VK_BUILD_ACCELERATION_STRUCTURE_MODE_UPDATE_KHR = 1,
23679 VK_BUILD_ACCELERATION_STRUCTURE_MODE_MAX_ENUM_KHR = 0x7FFFFFFF
23680} VkBuildAccelerationStructureModeKHR;
23681
23682typedef enum VkAccelerationStructureCreateFlagBitsKHR {
23683 VK_ACCELERATION_STRUCTURE_CREATE_DEVICE_ADDRESS_CAPTURE_REPLAY_BIT_KHR = 0x00000001,
23684 VK_ACCELERATION_STRUCTURE_CREATE_DESCRIPTOR_BUFFER_CAPTURE_REPLAY_BIT_EXT = 0x00000008,
23685 VK_ACCELERATION_STRUCTURE_CREATE_MOTION_BIT_NV = 0x00000004,
23686 VK_ACCELERATION_STRUCTURE_CREATE_FLAG_BITS_MAX_ENUM_KHR = 0x7FFFFFFF
23687} VkAccelerationStructureCreateFlagBitsKHR;
23688typedef VkFlags VkAccelerationStructureCreateFlagsKHR;
23689typedef struct VkAccelerationStructureBuildRangeInfoKHR {
23690 uint32_t primitiveCount;
23691 uint32_t primitiveOffset;
23692 uint32_t firstVertex;
23693 uint32_t transformOffset;
23694} VkAccelerationStructureBuildRangeInfoKHR;
23695
23696typedef struct VkAccelerationStructureGeometryTrianglesDataKHR {
23697 VkStructureType sType;
23698 const void* pNext;
23699 VkFormat vertexFormat;
23700 VkDeviceOrHostAddressConstKHR vertexData;
23701 VkDeviceSize vertexStride;
23702 uint32_t maxVertex;
23703 VkIndexType indexType;
23704 VkDeviceOrHostAddressConstKHR indexData;
23705 VkDeviceOrHostAddressConstKHR transformData;
23706} VkAccelerationStructureGeometryTrianglesDataKHR;
23707
23708typedef struct VkAccelerationStructureGeometryAabbsDataKHR {
23709 VkStructureType sType;
23710 const void* pNext;
23711 VkDeviceOrHostAddressConstKHR data;
23712 VkDeviceSize stride;
23713} VkAccelerationStructureGeometryAabbsDataKHR;
23714
23715typedef struct VkAccelerationStructureGeometryInstancesDataKHR {
23716 VkStructureType sType;
23717 const void* pNext;
23718 VkBool32 arrayOfPointers;
23719 VkDeviceOrHostAddressConstKHR data;
23720} VkAccelerationStructureGeometryInstancesDataKHR;
23721
23722typedef union VkAccelerationStructureGeometryDataKHR {
23723 VkAccelerationStructureGeometryTrianglesDataKHR triangles;
23724 VkAccelerationStructureGeometryAabbsDataKHR aabbs;
23725 VkAccelerationStructureGeometryInstancesDataKHR instances;
23726} VkAccelerationStructureGeometryDataKHR;
23727
23728typedef struct VkAccelerationStructureGeometryKHR {
23729 VkStructureType sType;
23730 const void* pNext;
23731 VkGeometryTypeKHR geometryType;
23732 VkAccelerationStructureGeometryDataKHR geometry;
23733 VkGeometryFlagsKHR flags;
23734} VkAccelerationStructureGeometryKHR;
23735
23736typedef struct VkAccelerationStructureBuildGeometryInfoKHR {
23737 VkStructureType sType;
23738 const void* pNext;
23739 VkAccelerationStructureTypeKHR type;
23740 VkBuildAccelerationStructureFlagsKHR flags;
23741 VkBuildAccelerationStructureModeKHR mode;
23742 VkAccelerationStructureKHR srcAccelerationStructure;
23743 VkAccelerationStructureKHR dstAccelerationStructure;
23744 uint32_t geometryCount;
23745 const VkAccelerationStructureGeometryKHR* pGeometries;
23746 const VkAccelerationStructureGeometryKHR* const* ppGeometries;
23747 VkDeviceOrHostAddressKHR scratchData;
23748} VkAccelerationStructureBuildGeometryInfoKHR;
23749
23750typedef struct VkAccelerationStructureCreateInfoKHR {
23751 VkStructureType sType;
23752 const void* pNext;
23753 VkAccelerationStructureCreateFlagsKHR createFlags;
23754 VkBuffer buffer;
23755 VkDeviceSize offset;
23756 VkDeviceSize size;
23757 VkAccelerationStructureTypeKHR type;
23758 VkDeviceAddress deviceAddress;
23759} VkAccelerationStructureCreateInfoKHR;
23760
23761typedef struct VkWriteDescriptorSetAccelerationStructureKHR {
23762 VkStructureType sType;
23763 const void* pNext;
23764 uint32_t accelerationStructureCount;
23765 const VkAccelerationStructureKHR* pAccelerationStructures;
23766} VkWriteDescriptorSetAccelerationStructureKHR;
23767
23768typedef struct VkPhysicalDeviceAccelerationStructureFeaturesKHR {
23769 VkStructureType sType;
23770 void* pNext;
23771 VkBool32 accelerationStructure;
23772 VkBool32 accelerationStructureCaptureReplay;
23773 VkBool32 accelerationStructureIndirectBuild;
23774 VkBool32 accelerationStructureHostCommands;
23775 VkBool32 descriptorBindingAccelerationStructureUpdateAfterBind;
23776} VkPhysicalDeviceAccelerationStructureFeaturesKHR;
23777
23778typedef struct VkPhysicalDeviceAccelerationStructurePropertiesKHR {
23779 VkStructureType sType;
23780 void* pNext;
23781 uint64_t maxGeometryCount;
23782 uint64_t maxInstanceCount;
23783 uint64_t maxPrimitiveCount;
23784 uint32_t maxPerStageDescriptorAccelerationStructures;
23785 uint32_t maxPerStageDescriptorUpdateAfterBindAccelerationStructures;
23786 uint32_t maxDescriptorSetAccelerationStructures;
23787 uint32_t maxDescriptorSetUpdateAfterBindAccelerationStructures;
23788 uint32_t minAccelerationStructureScratchOffsetAlignment;
23789} VkPhysicalDeviceAccelerationStructurePropertiesKHR;
23790
23791typedef struct VkAccelerationStructureDeviceAddressInfoKHR {
23792 VkStructureType sType;
23793 const void* pNext;
23794 VkAccelerationStructureKHR accelerationStructure;
23795} VkAccelerationStructureDeviceAddressInfoKHR;
23796
23797typedef struct VkAccelerationStructureVersionInfoKHR {
23798 VkStructureType sType;
23799 const void* pNext;
23800 const uint8_t* pVersionData;
23801} VkAccelerationStructureVersionInfoKHR;
23802
23803typedef struct VkCopyAccelerationStructureToMemoryInfoKHR {
23804 VkStructureType sType;
23805 const void* pNext;
23806 VkAccelerationStructureKHR src;
23807 VkDeviceOrHostAddressKHR dst;
23808 VkCopyAccelerationStructureModeKHR mode;
23809} VkCopyAccelerationStructureToMemoryInfoKHR;
23810
23811typedef struct VkCopyMemoryToAccelerationStructureInfoKHR {
23812 VkStructureType sType;
23813 const void* pNext;
23814 VkDeviceOrHostAddressConstKHR src;
23815 VkAccelerationStructureKHR dst;
23816 VkCopyAccelerationStructureModeKHR mode;
23817} VkCopyMemoryToAccelerationStructureInfoKHR;
23818
23819typedef struct VkCopyAccelerationStructureInfoKHR {
23820 VkStructureType sType;
23821 const void* pNext;
23822 VkAccelerationStructureKHR src;
23823 VkAccelerationStructureKHR dst;
23824 VkCopyAccelerationStructureModeKHR mode;
23825} VkCopyAccelerationStructureInfoKHR;
23826
23827typedef VkResult (VKAPI_PTR *PFN_vkCreateAccelerationStructureKHR)(VkDevice device, const VkAccelerationStructureCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkAccelerationStructureKHR* pAccelerationStructure);
23828typedef void (VKAPI_PTR *PFN_vkDestroyAccelerationStructureKHR)(VkDevice device, VkAccelerationStructureKHR accelerationStructure, const VkAllocationCallbacks* pAllocator);
23829typedef void (VKAPI_PTR *PFN_vkCmdBuildAccelerationStructuresKHR)(VkCommandBuffer commandBuffer, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
23830typedef 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);
23831typedef VkResult (VKAPI_PTR *PFN_vkBuildAccelerationStructuresKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, uint32_t infoCount, const VkAccelerationStructureBuildGeometryInfoKHR* pInfos, const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
23832typedef VkResult (VKAPI_PTR *PFN_vkCopyAccelerationStructureKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureInfoKHR* pInfo);
23833typedef VkResult (VKAPI_PTR *PFN_vkCopyAccelerationStructureToMemoryKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
23834typedef VkResult (VKAPI_PTR *PFN_vkCopyMemoryToAccelerationStructureKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
23835typedef VkResult (VKAPI_PTR *PFN_vkWriteAccelerationStructuresPropertiesKHR)(VkDevice device, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, size_t dataSize, void* pData, size_t stride);
23836typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureInfoKHR* pInfo);
23837typedef void (VKAPI_PTR *PFN_vkCmdCopyAccelerationStructureToMemoryKHR)(VkCommandBuffer commandBuffer, const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
23838typedef void (VKAPI_PTR *PFN_vkCmdCopyMemoryToAccelerationStructureKHR)(VkCommandBuffer commandBuffer, const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
23839typedef VkDeviceAddress (VKAPI_PTR *PFN_vkGetAccelerationStructureDeviceAddressKHR)(VkDevice device, const VkAccelerationStructureDeviceAddressInfoKHR* pInfo);
23840typedef void (VKAPI_PTR *PFN_vkCmdWriteAccelerationStructuresPropertiesKHR)(VkCommandBuffer commandBuffer, uint32_t accelerationStructureCount, const VkAccelerationStructureKHR* pAccelerationStructures, VkQueryType queryType, VkQueryPool queryPool, uint32_t firstQuery);
23841typedef void (VKAPI_PTR *PFN_vkGetDeviceAccelerationStructureCompatibilityKHR)(VkDevice device, const VkAccelerationStructureVersionInfoKHR* pVersionInfo, VkAccelerationStructureCompatibilityKHR* pCompatibility);
23842typedef void (VKAPI_PTR *PFN_vkGetAccelerationStructureBuildSizesKHR)(VkDevice device, VkAccelerationStructureBuildTypeKHR buildType, const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo, const uint32_t* pMaxPrimitiveCounts, VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo);
23843
23844#ifndef VK_NO_PROTOTYPES
23845#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23846VKAPI_ATTR VkResult VKAPI_CALL vkCreateAccelerationStructureKHR(
23847 VkDevice device,
23848 const VkAccelerationStructureCreateInfoKHR* pCreateInfo,
23849 const VkAllocationCallbacks* pAllocator,
23850 VkAccelerationStructureKHR* pAccelerationStructure);
23851#endif
23852
23853#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23854VKAPI_ATTR void VKAPI_CALL vkDestroyAccelerationStructureKHR(
23855 VkDevice device,
23856 VkAccelerationStructureKHR accelerationStructure,
23857 const VkAllocationCallbacks* pAllocator);
23858#endif
23859
23860#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23861VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructuresKHR(
23862 VkCommandBuffer commandBuffer,
23863 uint32_t infoCount,
23864 const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
23865 const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
23866#endif
23867
23868#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23869VKAPI_ATTR void VKAPI_CALL vkCmdBuildAccelerationStructuresIndirectKHR(
23870 VkCommandBuffer commandBuffer,
23871 uint32_t infoCount,
23872 const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
23873 const VkDeviceAddress* pIndirectDeviceAddresses,
23874 const uint32_t* pIndirectStrides,
23875 const uint32_t* const* ppMaxPrimitiveCounts);
23876#endif
23877
23878#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23879VKAPI_ATTR VkResult VKAPI_CALL vkBuildAccelerationStructuresKHR(
23880 VkDevice device,
23881 VkDeferredOperationKHR deferredOperation,
23882 uint32_t infoCount,
23883 const VkAccelerationStructureBuildGeometryInfoKHR* pInfos,
23884 const VkAccelerationStructureBuildRangeInfoKHR* const* ppBuildRangeInfos);
23885#endif
23886
23887#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23888VKAPI_ATTR VkResult VKAPI_CALL vkCopyAccelerationStructureKHR(
23889 VkDevice device,
23890 VkDeferredOperationKHR deferredOperation,
23891 const VkCopyAccelerationStructureInfoKHR* pInfo);
23892#endif
23893
23894#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23895VKAPI_ATTR VkResult VKAPI_CALL vkCopyAccelerationStructureToMemoryKHR(
23896 VkDevice device,
23897 VkDeferredOperationKHR deferredOperation,
23898 const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
23899#endif
23900
23901#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23902VKAPI_ATTR VkResult VKAPI_CALL vkCopyMemoryToAccelerationStructureKHR(
23903 VkDevice device,
23904 VkDeferredOperationKHR deferredOperation,
23905 const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
23906#endif
23907
23908#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23909VKAPI_ATTR VkResult VKAPI_CALL vkWriteAccelerationStructuresPropertiesKHR(
23910 VkDevice device,
23911 uint32_t accelerationStructureCount,
23912 const VkAccelerationStructureKHR* pAccelerationStructures,
23913 VkQueryType queryType,
23914 size_t dataSize,
23915 void* pData,
23916 size_t stride);
23917#endif
23918
23919#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23920VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureKHR(
23921 VkCommandBuffer commandBuffer,
23922 const VkCopyAccelerationStructureInfoKHR* pInfo);
23923#endif
23924
23925#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23926VKAPI_ATTR void VKAPI_CALL vkCmdCopyAccelerationStructureToMemoryKHR(
23927 VkCommandBuffer commandBuffer,
23928 const VkCopyAccelerationStructureToMemoryInfoKHR* pInfo);
23929#endif
23930
23931#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23932VKAPI_ATTR void VKAPI_CALL vkCmdCopyMemoryToAccelerationStructureKHR(
23933 VkCommandBuffer commandBuffer,
23934 const VkCopyMemoryToAccelerationStructureInfoKHR* pInfo);
23935#endif
23936
23937#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23938VKAPI_ATTR VkDeviceAddress VKAPI_CALL vkGetAccelerationStructureDeviceAddressKHR(
23939 VkDevice device,
23940 const VkAccelerationStructureDeviceAddressInfoKHR* pInfo);
23941#endif
23942
23943#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23944VKAPI_ATTR void VKAPI_CALL vkCmdWriteAccelerationStructuresPropertiesKHR(
23945 VkCommandBuffer commandBuffer,
23946 uint32_t accelerationStructureCount,
23947 const VkAccelerationStructureKHR* pAccelerationStructures,
23948 VkQueryType queryType,
23949 VkQueryPool queryPool,
23950 uint32_t firstQuery);
23951#endif
23952
23953#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23954VKAPI_ATTR void VKAPI_CALL vkGetDeviceAccelerationStructureCompatibilityKHR(
23955 VkDevice device,
23956 const VkAccelerationStructureVersionInfoKHR* pVersionInfo,
23957 VkAccelerationStructureCompatibilityKHR* pCompatibility);
23958#endif
23959
23960#ifndef VK_ONLY_EXPORTED_PROTOTYPES
23961VKAPI_ATTR void VKAPI_CALL vkGetAccelerationStructureBuildSizesKHR(
23962 VkDevice device,
23963 VkAccelerationStructureBuildTypeKHR buildType,
23964 const VkAccelerationStructureBuildGeometryInfoKHR* pBuildInfo,
23965 const uint32_t* pMaxPrimitiveCounts,
23966 VkAccelerationStructureBuildSizesInfoKHR* pSizeInfo);
23967#endif
23968#endif
23969
23970
23971// VK_KHR_ray_tracing_pipeline is a preprocessor guard. Do not pass it to API calls.
23972#define VK_KHR_ray_tracing_pipeline 1
23973#define VK_KHR_RAY_TRACING_PIPELINE_SPEC_VERSION 1
23974#define VK_KHR_RAY_TRACING_PIPELINE_EXTENSION_NAME "VK_KHR_ray_tracing_pipeline"
23975
23976typedef enum VkShaderGroupShaderKHR {
23977 VK_SHADER_GROUP_SHADER_GENERAL_KHR = 0,
23978 VK_SHADER_GROUP_SHADER_CLOSEST_HIT_KHR = 1,
23979 VK_SHADER_GROUP_SHADER_ANY_HIT_KHR = 2,
23980 VK_SHADER_GROUP_SHADER_INTERSECTION_KHR = 3,
23981 VK_SHADER_GROUP_SHADER_MAX_ENUM_KHR = 0x7FFFFFFF
23982} VkShaderGroupShaderKHR;
23983typedef struct VkRayTracingShaderGroupCreateInfoKHR {
23984 VkStructureType sType;
23985 const void* pNext;
23986 VkRayTracingShaderGroupTypeKHR type;
23987 uint32_t generalShader;
23988 uint32_t closestHitShader;
23989 uint32_t anyHitShader;
23990 uint32_t intersectionShader;
23991 const void* pShaderGroupCaptureReplayHandle;
23992} VkRayTracingShaderGroupCreateInfoKHR;
23993
23994typedef struct VkRayTracingPipelineInterfaceCreateInfoKHR {
23995 VkStructureType sType;
23996 const void* pNext;
23997 uint32_t maxPipelineRayPayloadSize;
23998 uint32_t maxPipelineRayHitAttributeSize;
23999} VkRayTracingPipelineInterfaceCreateInfoKHR;
24000
24001typedef struct VkRayTracingPipelineCreateInfoKHR {
24002 VkStructureType sType;
24003 const void* pNext;
24004 VkPipelineCreateFlags flags;
24005 uint32_t stageCount;
24006 const VkPipelineShaderStageCreateInfo* pStages;
24007 uint32_t groupCount;
24008 const VkRayTracingShaderGroupCreateInfoKHR* pGroups;
24009 uint32_t maxPipelineRayRecursionDepth;
24010 const VkPipelineLibraryCreateInfoKHR* pLibraryInfo;
24011 const VkRayTracingPipelineInterfaceCreateInfoKHR* pLibraryInterface;
24012 const VkPipelineDynamicStateCreateInfo* pDynamicState;
24013 VkPipelineLayout layout;
24014 VkPipeline basePipelineHandle;
24015 int32_t basePipelineIndex;
24016} VkRayTracingPipelineCreateInfoKHR;
24017
24018typedef struct VkPhysicalDeviceRayTracingPipelineFeaturesKHR {
24019 VkStructureType sType;
24020 void* pNext;
24021 VkBool32 rayTracingPipeline;
24022 VkBool32 rayTracingPipelineShaderGroupHandleCaptureReplay;
24023 VkBool32 rayTracingPipelineShaderGroupHandleCaptureReplayMixed;
24024 VkBool32 rayTracingPipelineTraceRaysIndirect;
24025 VkBool32 rayTraversalPrimitiveCulling;
24026} VkPhysicalDeviceRayTracingPipelineFeaturesKHR;
24027
24028typedef struct VkPhysicalDeviceRayTracingPipelinePropertiesKHR {
24029 VkStructureType sType;
24030 void* pNext;
24031 uint32_t shaderGroupHandleSize;
24032 uint32_t maxRayRecursionDepth;
24033 uint32_t maxShaderGroupStride;
24034 uint32_t shaderGroupBaseAlignment;
24035 uint32_t shaderGroupHandleCaptureReplaySize;
24036 uint32_t maxRayDispatchInvocationCount;
24037 uint32_t shaderGroupHandleAlignment;
24038 uint32_t maxRayHitAttributeSize;
24039} VkPhysicalDeviceRayTracingPipelinePropertiesKHR;
24040
24041typedef struct VkTraceRaysIndirectCommandKHR {
24042 uint32_t width;
24043 uint32_t height;
24044 uint32_t depth;
24045} VkTraceRaysIndirectCommandKHR;
24046
24047typedef 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);
24048typedef VkResult (VKAPI_PTR *PFN_vkCreateRayTracingPipelinesKHR)(VkDevice device, VkDeferredOperationKHR deferredOperation, VkPipelineCache pipelineCache, uint32_t createInfoCount, const VkRayTracingPipelineCreateInfoKHR* pCreateInfos, const VkAllocationCallbacks* pAllocator, VkPipeline* pPipelines);
24049typedef VkResult (VKAPI_PTR *PFN_vkGetRayTracingCaptureReplayShaderGroupHandlesKHR)(VkDevice device, VkPipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, void* pData);
24050typedef void (VKAPI_PTR *PFN_vkCmdTraceRaysIndirectKHR)(VkCommandBuffer commandBuffer, const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable, const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable, VkDeviceAddress indirectDeviceAddress);
24051typedef VkDeviceSize (VKAPI_PTR *PFN_vkGetRayTracingShaderGroupStackSizeKHR)(VkDevice device, VkPipeline pipeline, uint32_t group, VkShaderGroupShaderKHR groupShader);
24052typedef void (VKAPI_PTR *PFN_vkCmdSetRayTracingPipelineStackSizeKHR)(VkCommandBuffer commandBuffer, uint32_t pipelineStackSize);
24053
24054#ifndef VK_NO_PROTOTYPES
24055#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24056VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysKHR(
24057 VkCommandBuffer commandBuffer,
24058 const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable,
24059 const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable,
24060 const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable,
24061 const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable,
24062 uint32_t width,
24063 uint32_t height,
24064 uint32_t depth);
24065#endif
24066
24067#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24068VKAPI_ATTR VkResult VKAPI_CALL vkCreateRayTracingPipelinesKHR(
24069 VkDevice device,
24070 VkDeferredOperationKHR deferredOperation,
24071 VkPipelineCache pipelineCache,
24072 uint32_t createInfoCount,
24073 const VkRayTracingPipelineCreateInfoKHR* pCreateInfos,
24074 const VkAllocationCallbacks* pAllocator,
24075 VkPipeline* pPipelines);
24076#endif
24077
24078#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24079VKAPI_ATTR VkResult VKAPI_CALL vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(
24080 VkDevice device,
24081 VkPipeline pipeline,
24082 uint32_t firstGroup,
24083 uint32_t groupCount,
24084 size_t dataSize,
24085 void* pData);
24086#endif
24087
24088#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24089VKAPI_ATTR void VKAPI_CALL vkCmdTraceRaysIndirectKHR(
24090 VkCommandBuffer commandBuffer,
24091 const VkStridedDeviceAddressRegionKHR* pRaygenShaderBindingTable,
24092 const VkStridedDeviceAddressRegionKHR* pMissShaderBindingTable,
24093 const VkStridedDeviceAddressRegionKHR* pHitShaderBindingTable,
24094 const VkStridedDeviceAddressRegionKHR* pCallableShaderBindingTable,
24095 VkDeviceAddress indirectDeviceAddress);
24096#endif
24097
24098#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24099VKAPI_ATTR VkDeviceSize VKAPI_CALL vkGetRayTracingShaderGroupStackSizeKHR(
24100 VkDevice device,
24101 VkPipeline pipeline,
24102 uint32_t group,
24103 VkShaderGroupShaderKHR groupShader);
24104#endif
24105
24106#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24107VKAPI_ATTR void VKAPI_CALL vkCmdSetRayTracingPipelineStackSizeKHR(
24108 VkCommandBuffer commandBuffer,
24109 uint32_t pipelineStackSize);
24110#endif
24111#endif
24112
24113
24114// VK_KHR_ray_query is a preprocessor guard. Do not pass it to API calls.
24115#define VK_KHR_ray_query 1
24116#define VK_KHR_RAY_QUERY_SPEC_VERSION 1
24117#define VK_KHR_RAY_QUERY_EXTENSION_NAME "VK_KHR_ray_query"
24118typedef struct VkPhysicalDeviceRayQueryFeaturesKHR {
24119 VkStructureType sType;
24120 void* pNext;
24121 VkBool32 rayQuery;
24122} VkPhysicalDeviceRayQueryFeaturesKHR;
24123
24124
24125
24126// VK_EXT_mesh_shader is a preprocessor guard. Do not pass it to API calls.
24127#define VK_EXT_mesh_shader 1
24128#define VK_EXT_MESH_SHADER_SPEC_VERSION 1
24129#define VK_EXT_MESH_SHADER_EXTENSION_NAME "VK_EXT_mesh_shader"
24130typedef struct VkPhysicalDeviceMeshShaderFeaturesEXT {
24131 VkStructureType sType;
24132 void* pNext;
24133 VkBool32 taskShader;
24134 VkBool32 meshShader;
24135 VkBool32 multiviewMeshShader;
24136 VkBool32 primitiveFragmentShadingRateMeshShader;
24137 VkBool32 meshShaderQueries;
24138} VkPhysicalDeviceMeshShaderFeaturesEXT;
24139
24140typedef struct VkPhysicalDeviceMeshShaderPropertiesEXT {
24141 VkStructureType sType;
24142 void* pNext;
24143 uint32_t maxTaskWorkGroupTotalCount;
24144 uint32_t maxTaskWorkGroupCount[3];
24145 uint32_t maxTaskWorkGroupInvocations;
24146 uint32_t maxTaskWorkGroupSize[3];
24147 uint32_t maxTaskPayloadSize;
24148 uint32_t maxTaskSharedMemorySize;
24149 uint32_t maxTaskPayloadAndSharedMemorySize;
24150 uint32_t maxMeshWorkGroupTotalCount;
24151 uint32_t maxMeshWorkGroupCount[3];
24152 uint32_t maxMeshWorkGroupInvocations;
24153 uint32_t maxMeshWorkGroupSize[3];
24154 uint32_t maxMeshSharedMemorySize;
24155 uint32_t maxMeshPayloadAndSharedMemorySize;
24156 uint32_t maxMeshOutputMemorySize;
24157 uint32_t maxMeshPayloadAndOutputMemorySize;
24158 uint32_t maxMeshOutputComponents;
24159 uint32_t maxMeshOutputVertices;
24160 uint32_t maxMeshOutputPrimitives;
24161 uint32_t maxMeshOutputLayers;
24162 uint32_t maxMeshMultiviewViewCount;
24163 uint32_t meshOutputPerVertexGranularity;
24164 uint32_t meshOutputPerPrimitiveGranularity;
24165 uint32_t maxPreferredTaskWorkGroupInvocations;
24166 uint32_t maxPreferredMeshWorkGroupInvocations;
24167 VkBool32 prefersLocalInvocationVertexOutput;
24168 VkBool32 prefersLocalInvocationPrimitiveOutput;
24169 VkBool32 prefersCompactVertexOutput;
24170 VkBool32 prefersCompactPrimitiveOutput;
24171} VkPhysicalDeviceMeshShaderPropertiesEXT;
24172
24173typedef struct VkDrawMeshTasksIndirectCommandEXT {
24174 uint32_t groupCountX;
24175 uint32_t groupCountY;
24176 uint32_t groupCountZ;
24177} VkDrawMeshTasksIndirectCommandEXT;
24178
24179typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksEXT)(VkCommandBuffer commandBuffer, uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ);
24180typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectEXT)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, uint32_t drawCount, uint32_t stride);
24181typedef void (VKAPI_PTR *PFN_vkCmdDrawMeshTasksIndirectCountEXT)(VkCommandBuffer commandBuffer, VkBuffer buffer, VkDeviceSize offset, VkBuffer countBuffer, VkDeviceSize countBufferOffset, uint32_t maxDrawCount, uint32_t stride);
24182
24183#ifndef VK_NO_PROTOTYPES
24184#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24185VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksEXT(
24186 VkCommandBuffer commandBuffer,
24187 uint32_t groupCountX,
24188 uint32_t groupCountY,
24189 uint32_t groupCountZ);
24190#endif
24191
24192#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24193VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectEXT(
24194 VkCommandBuffer commandBuffer,
24195 VkBuffer buffer,
24196 VkDeviceSize offset,
24197 uint32_t drawCount,
24198 uint32_t stride);
24199#endif
24200
24201#ifndef VK_ONLY_EXPORTED_PROTOTYPES
24202VKAPI_ATTR void VKAPI_CALL vkCmdDrawMeshTasksIndirectCountEXT(
24203 VkCommandBuffer commandBuffer,
24204 VkBuffer buffer,
24205 VkDeviceSize offset,
24206 VkBuffer countBuffer,
24207 VkDeviceSize countBufferOffset,
24208 uint32_t maxDrawCount,
24209 uint32_t stride);
24210#endif
24211#endif
24212
24213#ifdef __cplusplus
24214}
24215#endif
24216
24217#endif
24218